!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.L={})}(this,function(t){"use strict"
function e(t){var e,i,n,o
for(i=1,n=arguments.length;i<n;i++){o=arguments[i]
for(e in o)t[e]=o[e]}return t}function i(t,e){var i=Array.prototype.slice
if(t.bind)return t.bind.apply(t,i.call(arguments,1))
var n=i.call(arguments,2)
return function(){return t.apply(e,n.length?n.concat(i.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++me,t._leaflet_id}function o(t,e,i){var n,o,s,r
return r=function(){n=!1,o&&(s.apply(i,o),o=!1)},s=function(){n?o=arguments:(t.apply(i,arguments),setTimeout(r,e),n=!0)}}function s(t,e,i){var n=e[1],o=e[0],s=n-o
return t===n&&i?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,e){var i=Math.pow(10,void 0===e?6:e)
return Math.round(t*i)/i}function h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function l(t){return h(t).split(/\s+/)}function u(t,e){t.hasOwnProperty("options")||(t.options=t.options?_e(t.options):{})
for(var i in e)t.options[i]=e[i]
return t.options}function c(t,e,i){var n=[]
for(var o in t)n.push(encodeURIComponent(i?o.toUpperCase():o)+"="+encodeURIComponent(t[o]))
return(e&&-1!==e.indexOf("?")?"&":"?")+n.join("&")}function d(t,e){return t.replace(fe,function(t,i){var n=e[i]
if(void 0===n)throw new Error("No value provided for variable "+t)
return"function"==typeof n&&(n=n(e)),n})}function p(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i
return-1}function _(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}function m(t){var e=+new Date,i=Math.max(0,16-(e-ye))
return ye=e+i,window.setTimeout(t,i)}function f(t,e,n){if(!n||Le!==m)return Le.call(window,i(t,e))
t.call(e)}function g(t){t&&we.call(window,t)}function v(){}function y(t){if("undefined"!=typeof L&&L&&L.Mixin){t=ge(t)?t:[t]
for(var e=0;e<t.length;e++)t[e]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}}function w(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e}function x(t,e,i){return t instanceof w?t:ge(t)?new w(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new w(t.x,t.y):new w(t,e,i)}function b(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function P(t,e){return!t||t instanceof b?t:new b(t,e)}function C(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function M(t,e){return t instanceof C?t:new C(t,e)}function T(t,e,i){isNaN(t)||isNaN(e)||(this.lat=+t,this.lng=+e,void 0!==i&&(this.alt=+i))}function k(t,e,i){return t instanceof T?t:ge(t)&&"object"!=typeof t[0]?3===t.length?new T(t[0],t[1],t[2]):2===t.length?new T(t[0],t[1]):null:void 0===t||null===t?t:"object"==typeof t&&"lat"in t?new T(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===e?null:new T(t,e,i)}function S(t,e,i,n){if(ge(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3])
this._a=t,this._b=e,this._c=i,this._d=n}function z(t,e,i,n){return new S(t,e,i,n)}function E(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function A(t,e){var i,n,o,s,r,a,h=""
for(i=0,o=t.length;i<o;i++){for(r=t[i],n=0,s=r.length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+" "+a.y
h+=e?ui?"z":"x":""}return h||"M0 0"}function Z(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function I(t,e,i,n){return"touchstart"===e?B(t,i,n):"touchmove"===e?F(t,i,n):"touchend"===e&&U(t,i,n),this}function O(t,e,i){var n=t["_leaflet_"+e+i]
return"touchstart"===e?t.removeEventListener(pi,n,!1):"touchmove"===e?t.removeEventListener(_i,n,!1):"touchend"===e&&(t.removeEventListener(mi,n,!1),t.removeEventListener(fi,n,!1)),this}function B(t,e,n){var o=i(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(gi.indexOf(t.target.tagName)<0))return
xt(t)}j(t,e)})
t["_leaflet_touchstart"+n]=o,t.addEventListener(pi,o,!1),yi||(document.documentElement.addEventListener(pi,D,!0),document.documentElement.addEventListener(_i,R,!0),document.documentElement.addEventListener(mi,N,!0),document.documentElement.addEventListener(fi,N,!0),yi=!0)}function D(t){vi[t.pointerId]=t,Li++}function R(t){vi[t.pointerId]&&(vi[t.pointerId]=t)}function N(t){delete vi[t.pointerId],Li--}function j(t,e){t.touches=[]
for(var i in vi)t.touches.push(vi[i])
t.changedTouches=[t],e(t)}function F(t,e,i){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,e)}
t["_leaflet_touchmove"+i]=n,t.addEventListener(_i,n,!1)}function U(t,e,i){var n=function(t){j(t,e)}
t["_leaflet_touchend"+i]=n,t.addEventListener(mi,n,!1),t.addEventListener(fi,n,!1)}function G(t,e,i){function n(t){var e
if(oi){if(!De||"mouse"===t.pointerType)return
e=Li}else e=t.touches.length
if(!(e>1)){var i=Date.now(),n=i-(s||i)
r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=i}}function o(t){if(a&&!r.cancelBubble){if(oi){if(!De||"mouse"===t.pointerType)return
var i,n,o={}
for(n in r)i=r[n],o[n]=i&&i.bind?i.bind(r):i
r=o}r.type="dblclick",e(r),s=null}}var s,r,a=!1,h=250
return t[bi+wi+i]=n,t[bi+xi+i]=o,t[bi+"dblclick"+i]=e,t.addEventListener(wi,n,!1),t.addEventListener(xi,o,!1),t.addEventListener("dblclick",e,!1),this}function W(t,e){var i=t[bi+wi+e],n=t[bi+xi+e],o=t[bi+"dblclick"+e]
return t.removeEventListener(wi,i,!1),t.removeEventListener(xi,n,!1),De||t.removeEventListener("dblclick",o,!1),this}function V(t){return"string"==typeof t?document.getElementById(t):t}function H(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e]
if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null)
i=n?n[e]:null}return"auto"===i?null:i}function q(t,e,i){var n=document.createElement(t)
return n.className=e||"",i&&i.appendChild(n),n}function $(t){var e=t.parentNode
e&&e.removeChild(t)}function K(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function Y(t){var e=t.parentNode
e.lastChild!==t&&e.appendChild(t)}function X(t){var e=t.parentNode
e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function J(t,e){if(void 0!==t.classList)return t.classList.contains(e)
var i=it(t)
return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function Q(t,e){if(void 0!==t.classList)for(var i=l(e),n=0,o=i.length;n<o;n++)t.classList.add(i[n])
else if(!J(t,e)){var s=it(t)
et(t,(s?s+" ":"")+e)}}function tt(t,e){void 0!==t.classList?t.classList.remove(e):et(t,h((" "+it(t)+" ").replace(" "+e+" "," ")))}function et(t,e){void 0===t.className.baseVal?t.className=e:t.className.baseVal=e}function it(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function nt(t,e){"opacity"in t.style?t.style.opacity=e:"filter"in t.style&&ot(t,e)}function ot(t,e){var i=!1,n="DXImageTransform.Microsoft.Alpha"
try{i=t.filters.item(n)}catch(t){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"}function st(t){for(var e=document.documentElement.style,i=0;i<t.length;i++)if(t[i]in e)return t[i]
return!1}function rt(t,e,i){var n=e||new w(0,0)
t.style[Pi]=(Ye?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(i?" scale("+i+")":"")}function at(t,e){t._leaflet_pos=e,Qe?rt(t,e):(t.style.left=e.x+"px",t.style.top=e.y+"px")}function ht(t){return t._leaflet_pos||new w(0,0)}function lt(){mt(window,"dragstart",xt)}function ut(){ft(window,"dragstart",xt)}function ct(t){for(;-1===t.tabIndex;)t=t.parentNode
t.style&&(dt(),ki=t,Si=t.style.outline,t.style.outline="none",mt(window,"keydown",dt))}function dt(){ki&&(ki.style.outline=Si,ki=void 0,Si=void 0,ft(window,"keydown",dt))}function pt(t){do{t=t.parentNode}while(!(t.offsetWidth&&t.offsetHeight||t===document.body))
return t}function _t(t){var e=t.getBoundingClientRect()
return{x:e.width/t.offsetWidth||1,y:e.height/t.offsetHeight||1,boundingClientRect:e}}function mt(t,e,i,n){if("object"==typeof e)for(var o in e)gt(t,o,e[o],i)
else{e=l(e)
for(var s=0,r=e.length;s<r;s++)gt(t,e[s],i,n)}return this}function ft(t,e,i,n){if("object"==typeof e)for(var o in e)vt(t,o,e[o],i)
else if(e){e=l(e)
for(var s=0,r=e.length;s<r;s++)vt(t,e[s],i,n)}else{for(var a in t[Ai])vt(t,a,t[Ai][a])
delete t[Ai]}return this}function gt(t,e,i,o){var s=e+n(i)+(o?"_"+n(o):"")
if(t[Ai]&&t[Ai][s])return this
var r=function(e){return i.call(o||t,e||window.event)},a=r
oi&&0===e.indexOf("touch")?I(t,e,r,s):!si||"dblclick"!==e||!G||oi&&We?"addEventListener"in t?"mousewheel"===e?t.addEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,kt(t,e)&&a(e)},t.addEventListener("mouseenter"===e?"mouseover":"mouseout",r,!1)):("click"===e&&Ne&&(r=function(t){St(t,a)}),t.addEventListener(e,r,!1)):"attachEvent"in t&&t.attachEvent("on"+e,r):G(t,r,s),t[Ai]=t[Ai]||{},t[Ai][s]=r}function vt(t,e,i,o){var s=e+n(i)+(o?"_"+n(o):""),r=t[Ai]&&t[Ai][s]
if(!r)return this
oi&&0===e.indexOf("touch")?O(t,e,s):!si||"dblclick"!==e||!W||oi&&We?"removeEventListener"in t?"mousewheel"===e?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===e?"mouseover":"mouseleave"===e?"mouseout":e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r):W(t,s),t[Ai][s]=null}function yt(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Tt(t),this}function Lt(t){return gt(t,"mousewheel",yt),this}function wt(t){return mt(t,"mousedown touchstart dblclick",yt),gt(t,"click",Mt),this}function xt(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function bt(t){return xt(t),yt(t),this}function Pt(t,e){if(!e)return new w(t.clientX,t.clientY)
var i=_t(e),n=i.boundingClientRect
return new w((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)}function Ct(t){return De?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Zi:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function Mt(t){Ii[t.type]=!0}function Tt(t){var e=Ii[t.type]
return Ii[t.type]=!1,e}function kt(t,e){var i=e.relatedTarget
if(!i)return!0
try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}function St(t,e){var i=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=zi&&i-zi
if(n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated)return void bt(t)
zi=i,e(t)}function zt(t,e){return new Di(t,e)}function Et(t,e){if(!e||!t.length)return t.slice()
var i=e*e
return t=Bt(t,i),t=It(t,i)}function At(t,e,i){return Math.sqrt(Ft(t,e,i,!0))}function Zt(t,e,i){return Ft(t,e,i)}function It(t,e){var i=t.length,n=typeof Uint8Array!=void 0+""?Uint8Array:Array,o=new n(i)
o[0]=o[i-1]=1,Ot(t,o,e,0,i-1)
var s,r=[]
for(s=0;s<i;s++)o[s]&&r.push(t[s])
return r}function Ot(t,e,i,n,o){var s,r,a,h=0
for(r=n+1;r<=o-1;r++)(a=Ft(t[r],t[n],t[o],!0))>h&&(s=r,h=a)
h>i&&(e[s]=1,Ot(t,e,i,n,s),Ot(t,e,i,s,o))}function Bt(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;n<s;n++)jt(t[n],t[o])>e&&(i.push(t[n]),o=n)
return o<s-1&&i.push(t[s-1]),i}function Dt(t,e,i,n,o){var s,r,a,h=n?Ki:Nt(t,i),l=Nt(e,i)
for(Ki=l;;){if(!(h|l))return[t,e]
if(h&l)return!1
s=h||l,r=Rt(t,e,s,i,o),a=Nt(r,i),s===h?(t=r,h=a):(e=r,l=a)}}function Rt(t,e,i,n,o){var s,r,a=e.x-t.x,h=e.y-t.y,l=n.min,u=n.max
return 8&i?(s=t.x+a*(u.y-t.y)/h,r=u.y):4&i?(s=t.x+a*(l.y-t.y)/h,r=l.y):2&i?(s=u.x,r=t.y+h*(u.x-t.x)/a):1&i&&(s=l.x,r=t.y+h*(l.x-t.x)/a),new w(s,r,o)}function Nt(t,e){var i=0
return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i}function jt(t,e){var i=e.x-t.x,n=e.y-t.y
return i*i+n*n}function Ft(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,l=a*a+h*h
return l>0&&(o=((t.x-s)*a+(t.y-r)*h)/l,o>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new w(s,r)}function Ut(t){return!ge(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Gt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Ut(t)}function Wt(t,e,i){var n,o,s,r,a,h,l,u,c,d=[1,4,2,8]
for(o=0,l=t.length;o<l;o++)t[o]._code=Nt(t[o],e)
for(r=0;r<4;r++){for(u=d[r],n=[],o=0,l=t.length,s=l-1;o<l;s=o++)a=t[o],h=t[s],a._code&u?h._code&u||(c=Rt(h,a,u,e,i),c._code=Nt(c,e),n.push(c)):(h._code&u&&(c=Rt(h,a,u,e,i),c._code=Nt(c,e),n.push(c)),n.push(a))
t=n}return t}function Vt(t){return new mn(t)}function Ht(t,e){return new vn(t,e)}function qt(t,e){return new Ln(t,e)}function $t(t,e,i){return new wn(t,e,i)}function Kt(t,e){return new xn(t,e)}function Yt(t,e){return new bn(t,e)}function Xt(t,e){var i,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],l=e&&e.pointToLayer,u=e&&e.coordsToLatLng||Jt
if(!a&&!r)return null
switch(r.type){case"Point":return i=u(a),l?l(t,i):new vn(i)
case"MultiPoint":for(o=0,s=a.length;o<s;o++)i=u(a[o]),h.push(l?l(t,i):new vn(i))
return new pn(h)
case"LineString":case"MultiLineString":return n=Qt(a,"LineString"===r.type?0:1,u),new xn(n,e)
case"Polygon":case"MultiPolygon":return n=Qt(a,"Polygon"===r.type?1:2,u),new bn(n,e)
case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Xt({geometry:r.geometries[o],type:"Feature",properties:t.properties},e)
c&&h.push(c)}return new pn(h)
default:throw new Error("Invalid GeoJSON object.")}}function Jt(t){return new T(t[1],t[0],t[2])}function Qt(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?Qt(t[s],e-1,i):(i||Jt)(t[s]),o.push(n)
return o}function te(t,e){return e="number"==typeof e?e:6,void 0!==t.alt?[a(t.lng,e),a(t.lat,e),a(t.alt,e)]:[a(t.lng,e),a(t.lat,e)]}function ee(t,e,i,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(e?ee(t[s],e-1,i,n):te(t[s],n))
return!e&&i&&o.push(o[0]),o}function ie(t,i){return t.feature?e({},t.feature,{geometry:i}):ne(i)}function ne(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function oe(t,e){return new Pn(t,e)}function se(t,e,i){return new Sn(t,e,i)}function re(t){return new On(t)}function ae(t){return new Bn(t)}function he(t,e){return new Dn(t,e)}function le(t,e){return new Rn(t,e)}function ue(t){return li?new jn(t):null}function ce(t){return ui||ci?new Wn(t):null}function de(t,e){return new Vn(t,e)}var pe=Object.freeze
Object.freeze=function(t){return t}
var _e=Object.create||function(){function t(){}return function(e){return t.prototype=e,new t}}(),me=0,fe=/\{ *([\w_-]+) *\}/g,ge=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},ve="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",ye=0,Le=window.requestAnimationFrame||_("RequestAnimationFrame")||m,we=window.cancelAnimationFrame||_("CancelAnimationFrame")||_("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},xe=(Object.freeze||Object)({freeze:pe,extend:e,create:_e,bind:i,lastId:me,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:l,setOptions:u,getParamString:c,template:d,isArray:ge,indexOf:p,emptyImageUrl:ve,requestFn:Le,cancelFn:we,requestAnimFrame:f,cancelAnimFrame:g})
v.extend=function(t){var i=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=i.__super__=this.prototype,o=_e(n)
o.constructor=i,i.prototype=o
for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(i[s]=this[s])
return t.statics&&(e(i,t.statics),delete t.statics),t.includes&&(y(t.includes),e.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=e(_e(o.options),t.options)),e(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0
for(var t=0,e=o._initHooks.length;t<e;t++)o._initHooks[t].call(this)}},i},v.include=function(t){return e(this.prototype,t),this},v.mergeOptions=function(t){return e(this.prototype.options,t),this},v.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)}
return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i),this}
var be={on:function(t,e,i){if("object"==typeof t)for(var n in t)this._on(n,t[n],e)
else{t=l(t)
for(var o=0,s=t.length;o<s;o++)this._on(t[o],e,i)}return this},off:function(t,e,i){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],e)
else{t=l(t)
for(var o=0,s=t.length;o<s;o++)this._off(t[o],e,i)}else delete this._events
return this},_on:function(t,e,i){this._events=this._events||{}
var n=this._events[t]
n||(n=[],this._events[t]=n),i===this&&(i=void 0)
for(var o={fn:e,ctx:i},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===e&&s[r].ctx===i)return
s.push(o)},_off:function(t,e,i){var n,o,s
if(this._events&&(n=this._events[t])){if(!e){for(o=0,s=n.length;o<s;o++)n[o].fn=r
return void delete this._events[t]}if(i===this&&(i=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o]
if(a.ctx===i&&a.fn===e)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}},fire:function(t,i,n){if(!this.listens(t,n))return this
var o=e({},i,{type:t,target:this,sourceTarget:i&&i.sourceTarget||this})
if(this._events){var s=this._events[t]
if(s){this._firingCount=this._firingCount+1||1
for(var r=0,a=s.length;r<a;r++){var h=s[r]
h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,e){var i=this._events&&this._events[t]
if(i&&i.length)return!0
if(e)for(var n in this._eventParents)if(this._eventParents[n].listens(t,e))return!0
return!1},once:function(t,e,n){if("object"==typeof t){for(var o in t)this.once(o,t[o],e)
return this}var s=i(function(){this.off(t,e,n).off(t,s,n)},this)
return this.on(t,e,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var i in this._eventParents)this._eventParents[i].fire(t.type,e({layer:t.target,propagatedFrom:t.target},t),!0)}}
be.addEventListener=be.on,be.removeEventListener=be.clearAllEventListeners=be.off,be.addOneTimeEventListener=be.once,be.fireEvent=be.fire,be.hasEventListeners=be.listens
var Pe=v.extend(be),Ce=Math.trunc||function(t){return t>0?Math.floor(t):Math.ceil(t)}
w.prototype={clone:function(){return new w(this.x,this.y)},add:function(t){return this.clone()._add(x(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(x(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new w(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new w(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=Ce(this.x),this.y=Ce(this.y),this},distanceTo:function(t){t=x(t)
var e=t.x-this.x,i=t.y-this.y
return Math.sqrt(e*e+i*i)},equals:function(t){return t=x(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=x(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},b.prototype={extend:function(t){return t=x(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new w((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new w(this.min.x,this.max.y)},getTopRight:function(){return new w(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i
return t="number"==typeof t[0]||t instanceof w?x(t):P(t),t instanceof b?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=P(t)
var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y
return s&&r},overlaps:function(t){t=P(t)
var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.x<i.x,r=o.y>e.y&&n.y<i.y
return s&&r},isValid:function(){return!(!this.min||!this.max)}},C.prototype={extend:function(t){var e,i,n=this._southWest,o=this._northEast
if(t instanceof T)e=t,i=t
else{if(!(t instanceof C))return t?this.extend(k(t)||M(t)):this
if(e=t._southWest,i=t._northEast,!e||!i)return this}return n||o?(n.lat=Math.min(e.lat,n.lat),n.lng=Math.min(e.lng,n.lng),o.lat=Math.max(i.lat,o.lat),o.lng=Math.max(i.lng,o.lng)):(this._southWest=new T(e.lat,e.lng),this._northEast=new T(i.lat,i.lng)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,o=Math.abs(e.lng-i.lng)*t
return new C(new T(e.lat-n,e.lng-o),new T(i.lat+n,i.lng+o))},getCenter:function(){return new T((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new T(this.getNorth(),this.getWest())},getSouthEast:function(){return new T(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof T||"lat"in t?k(t):M(t)
var e,i,n=this._southWest,o=this._northEast
return t instanceof C?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=M(t)
var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng
return s&&r},overlaps:function(t){t=M(t)
var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.lat<i.lat,r=o.lng>e.lng&&n.lng<i.lng
return s&&r},toBBoxString:function(){return[this.getSouth(),this.getWest(),this.getNorth(),this.getEast()].join(",")},equals:function(t,e){return!!t&&(t=M(t),this._southWest.equals(t.getSouthWest(),e)&&this._northEast.equals(t.getNorthEast(),e))},isValid:function(){return!(!this._southWest||!this._northEast)}},T.prototype={equals:function(t,e){return!!t&&(t=k(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===e?1e-9:e))},toString:function(t){return"LatLng("+a(this.lat,t)+", "+a(this.lng,t)+")"},distanceTo:function(t){return Te.distance(this,k(t))},wrap:function(){return Te.wrapLatLng(this)},toBounds:function(t){var e=180*t/40075017,i=e/Math.cos(Math.PI/180*this.lat)
return M([this.lat-e,this.lng-i],[this.lat+e,this.lng+i])},clone:function(){return new T(this.lat,this.lng,this.alt)}}
var Me={latLngToPoint:function(t,e){var i=this.projection.project(t),n=this.scale(e)
return this.transformation._transform(i,n)},pointToLatLng:function(t,e){var i=this.scale(e),n=this.transformation.untransform(t,i)
return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null
var e=this.projection.bounds,i=this.scale(t)
return new b(this.transformation.transform(e.min,i),this.transformation.transform(e.max,i))},infinite:!1,wrapLatLng:function(t){var e=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng
return new T(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,e,t.alt)},wrapLatLngBounds:function(t){var e=t.getCenter(),i=this.wrapLatLng(e),n=e.lat-i.lat,o=e.lng-i.lng
if(0===n&&0===o)return t
var s=t.getSouthWest(),r=t.getNorthEast()
return new C(new T(s.lat-n,s.lng-o),new T(r.lat-n,r.lng-o))}},Te=e({},Me,{wrapLng:[-180,180],R:6371e3,distance:function(t,e){var i=Math.PI/180,n=t.lat*i,o=e.lat*i,s=Math.sin((e.lat-t.lat)*i/2),r=Math.sin((e.lng-t.lng)*i/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))
return this.R*h}}),ke={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var e=Math.PI/180,i=this.MAX_LATITUDE,n=Math.max(Math.min(i,t.lat),-i),o=Math.sin(n*e)
return new w(this.R*t.lng*e,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var e=180/Math.PI
return new T((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*e,t.x*e/this.R)},bounds:function(){var t=6378137*Math.PI
return new b([-t,-t],[t,t])}()}
S.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return e=e||1,t.x=e*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return e=e||1,new w((t.x/e-this._b)/this._a,(t.y/e-this._d)/this._c)}}
var Se,ze,Ee,Ae=e({},Te,{code:"EPSG:3857",projection:ke,transformation:function(){var t=.5/(Math.PI*ke.R)
return z(t,.5,-t,.5)}()}),Ze=e({},Ae,{code:"EPSG:900913"}),Ie=document.documentElement.style,Oe="ActiveXObject"in window,Be=Oe&&!document.addEventListener,De="msLaunchUri"in navigator&&!("documentMode"in document),Re=Z("webkit"),Ne=Z("android"),je=Z("android 2")||Z("android 3"),Fe=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Ue=Ne&&Z("Google")&&Fe<537&&!("AudioNode"in window),Ge=!!window.opera,We=Z("chrome"),Ve=Z("gecko")&&!Re&&!Ge&&!Oe,He=!We&&Z("safari"),qe=Z("phantom"),$e="OTransition"in Ie,Ke=0===navigator.platform.indexOf("Win"),Ye=Oe&&"transition"in Ie,Xe="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!je,Je="MozPerspective"in Ie,Qe=!window.L_DISABLE_3D&&(Ye||Xe||Je)&&!$e&&!qe,ti="undefined"!=typeof orientation||Z("mobile"),ei=ti&&Re,ii=ti&&Xe,ni=!window.PointerEvent&&window.MSPointerEvent,oi=!(!window.PointerEvent&&!ni),si=!window.L_NO_TOUCH&&(oi||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),ri=ti&&Ge,ai=ti&&Ve,hi=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,li=function(){return!!document.createElement("canvas").getContext}(),ui=!(!document.createElementNS||!E("svg").createSVGRect),ci=!ui&&function(){try{var t=document.createElement("div")
t.innerHTML='<v:shape adj="1"/>'
var e=t.firstChild
return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),di=(Object.freeze||Object)({ie:Oe,ielt9:Be,edge:De,webkit:Re,android:Ne,android23:je,androidStock:Ue,opera:Ge,chrome:We,gecko:Ve,safari:He,phantom:qe,opera12:$e,win:Ke,ie3d:Ye,webkit3d:Xe,gecko3d:Je,any3d:Qe,mobile:ti,mobileWebkit:ei,mobileWebkit3d:ii,msPointer:ni,pointer:oi,touch:si,mobileOpera:ri,mobileGecko:ai,retina:hi,canvas:li,svg:ui,vml:ci}),pi=ni?"MSPointerDown":"pointerdown",_i=ni?"MSPointerMove":"pointermove",mi=ni?"MSPointerUp":"pointerup",fi=ni?"MSPointerCancel":"pointercancel",gi=["INPUT","SELECT","OPTION"],vi={},yi=!1,Li=0,wi=ni?"MSPointerDown":oi?"pointerdown":"touchstart",xi=ni?"MSPointerUp":oi?"pointerup":"touchend",bi="_leaflet_",Pi=st(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),Ci=st(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Mi="webkitTransition"===Ci||"OTransition"===Ci?Ci+"End":"transitionend"
if("onselectstart"in document)Se=function(){mt(window,"selectstart",xt)},ze=function(){ft(window,"selectstart",xt)}
else{var Ti=st(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"])
Se=function(){if(Ti){var t=document.documentElement.style
Ee=t[Ti],t[Ti]="none"}},ze=function(){Ti&&(document.documentElement.style[Ti]=Ee,Ee=void 0)}}var ki,Si,zi,Ei=(Object.freeze||Object)({TRANSFORM:Pi,TRANSITION:Ci,TRANSITION_END:Mi,get:V,getStyle:H,create:q,remove:$,empty:K,toFront:Y,toBack:X,hasClass:J,addClass:Q,removeClass:tt,setClass:et,getClass:it,setOpacity:nt,testProp:st,setTransform:rt,setPosition:at,getPosition:ht,disableTextSelection:Se,enableTextSelection:ze,disableImageDrag:lt,enableImageDrag:ut,preventOutline:ct,restoreOutline:dt,getSizedParentNode:pt,getScale:_t}),Ai="_leaflet_events",Zi=Ke&&We?2*window.devicePixelRatio:Ve?window.devicePixelRatio:1,Ii={},Oi=(Object.freeze||Object)({on:mt,off:ft,stopPropagation:yt,disableScrollPropagation:Lt,disableClickPropagation:wt,preventDefault:xt,stop:bt,getMousePosition:Pt,getWheelDelta:Ct,fakeStop:Mt,skipped:Tt,isExternalTarget:kt,addListener:mt,removeListener:ft}),Bi=Pe.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=ht(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration
e<i?this._runFrame(this._easeOut(e/i),t):(this._runFrame(1),this._complete())},_runFrame:function(t,e){var i=this._startPos.add(this._offset.multiplyBy(t))
e&&i._round(),at(this._el,i),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),Di=Pe.extend({options:{crs:Ae,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,e){e=u(this,e),this._initContainer(t),this._initLayout(),this._onResize=i(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),void 0!==e.zoom&&(this._zoom=this._limitZoom(e.zoom)),e.center&&void 0!==e.zoom&&this.setView(k(e.center),e.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=Ci&&Qe&&!ri&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),mt(this._proxy,Mi,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,i,n){if(i=void 0===i?this._zoom:this._limitZoom(i),t=this._limitCenter(k(t),i,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n){void 0!==n.animate&&(n.zoom=e({animate:n.animate},n.zoom),n.pan=e({animate:n.animate,duration:n.duration},n.pan))
if(this._zoom!==i?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,i,n.zoom):this._tryAnimatedPan(t,n.pan))return clearTimeout(this._sizeTimer),this}return this._resetView(t,i),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=t,this)},zoomIn:function(t,e){return t=t||(Qe?this.options.zoomDelta:1),this.setZoom(this._zoom+t,e)},zoomOut:function(t,e){return t=t||(Qe?this.options.zoomDelta:1),this.setZoom(this._zoom-t,e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),o=this.getSize().divideBy(2),s=t instanceof w?t:this.latLngToContainerPoint(t),r=s.subtract(o).multiplyBy(1-1/n),a=this.containerPointToLatLng(o.add(r))
return this.setView(a,e,{zoom:i})},_getBoundsCenterZoom:function(t,e){e=e||{},t=t.getBounds?t.getBounds():M(t)
var i=x(e.paddingTopLeft||e.padding||[0,0]),n=x(e.paddingBottomRight||e.padding||[0,0]),o=this.getBoundsZoom(t,!1,i.add(n))
if((o="number"==typeof e.maxZoom?Math.min(e.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o}
var s=n.subtract(i).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o)
return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,e){if(t=M(t),!t.isValid())throw new Error("Bounds are not valid.")
var i=this._getBoundsCenterZoom(t,e)
return this.setView(i.center,i.zoom,e)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t,e){if(t=x(t).round(),e=e||{},!t.x&&!t.y)return this.fire("moveend")
if(!0!==e.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this
if(this._panAnim||(this._panAnim=new Bi,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),!1!==e.animate){Q(this._mapPane,"leaflet-pan-anim")
var i=this._getMapPanePos().subtract(t).round()
this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend")
return this},flyTo:function(t,e,i){function n(t){var e=t?-1:1,i=t?g:m,n=g*g-m*m+e*L*L*v*v,o=2*i*L*v,s=n/o,r=Math.sqrt(s*s+1)-s
return r<1e-9?-18:Math.log(r)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/L}function l(t){return 1-Math.pow(1-t,1.5)}function u(){var i=(Date.now()-x)/P,n=l(i)*b
i<=1?(this._flyToFrame=f(u,this),this._move(this.unproject(c.add(d.subtract(c).multiplyBy(h(n)/v)),_),this.getScaleZoom(m/a(n),_),{flyTo:!0})):this._move(t,e)._moveEnd(!0)}if(i=i||{},!1===i.animate||!Qe)return this.setView(t,e,i)
this._stop()
var c=this.project(this.getCenter()),d=this.project(t),p=this.getSize(),_=this._zoom
t=k(t),e=void 0===e?_:e
var m=Math.max(p.x,p.y),g=m*this.getZoomScale(_,e),v=d.distanceTo(c)||1,y=1.42,L=y*y,w=n(0),x=Date.now(),b=(n(1)-w)/y,P=i.duration?1e3*i.duration:1e3*b*.8
return this._moveStart(!0,i.noMoveStart),u.call(this),this},flyToBounds:function(t,e){var i=this._getBoundsCenterZoom(t,e)
return this.flyTo(i.center,i.zoom,e)},setMaxBounds:function(t){return t=M(t),t.isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var e=this.options.minZoom
return this.options.minZoom=t,this._loaded&&e!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var e=this.options.maxZoom
return this.options.maxZoom=t,this._loaded&&e!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0
var i=this.getCenter(),n=this._limitCenter(i,this._zoom,M(t))
return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this
t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t)
var n=this.getSize()
this._sizeChanged=!0,this._lastCenter=null
var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r)
return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this
var n=i(this._handleGeolocationResponse,this),o=i(this._handleGeolocationError,this)
return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout")
this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new T(e,i),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions
if(s.setView){var r=this.getBoundsZoom(o)
this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var a={latlng:n,bounds:o,timestamp:t.timestamp}
for(var h in t.coords)"number"==typeof t.coords[h]&&(a[h]=t.coords[h])
this.fire("locationfound",a)},addHandler:function(t,e){if(!e)return this
var i=this[t]=new e(this)
return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance")
try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),$(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(g(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload")
var t
for(t in this._layers)this._layers[t].remove()
for(t in this._panes)$(this._panes[t])
return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=q("div",i,e||this._mapPane)
return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds()
return new C(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=M(t),i=x(i||[0,0])
var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),l=P(this.project(a,n),this.project(r,n)).getSize(),u=Qe?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,p=e?Math.max(c,d):Math.min(c,d)
return n=this.getScaleZoom(p,n),u&&(n=Math.round(n/(u/100))*(u/100),n=e?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new w(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e)
return new b(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs
return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs
e=void 0===e?this._zoom:e
var n=i.zoom(t*i.scale(e))
return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(k(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(x(t),e)},layerPointToLatLng:function(t){var e=x(t).add(this.getPixelOrigin())
return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(k(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(k(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(M(t))},distance:function(t,e){return this.options.crs.distance(k(t),k(e))},containerPointToLayerPoint:function(t){return x(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return x(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(x(t))
return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(k(t)))},mouseEventToContainerPoint:function(t){return Pt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=V(t)
if(!e)throw new Error("Map container not found.")
if(e._leaflet_id)throw new Error("Map container is already initialized.")
mt(e,"scroll",this._onScroll,this),this._containerId=n(e)},_initLayout:function(){var t=this._container
this._fadeAnimated=this.options.fadeAnimation&&Qe,Q(t,"leaflet-container"+(si?" leaflet-touch":"")+(hi?" leaflet-retina":"")+(Be?" leaflet-oldie":"")+(He?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""))
var e=H(t,"position")
"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={}
this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),at(this._mapPane,new w(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(Q(t.markerPane,"leaflet-zoom-hide"),Q(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){at(this._mapPane,new w(0,0))
var i=!this._loaded
this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset")
var n=this._zoom!==e
this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i){void 0===e&&(e=this._zoom)
var n=this._zoom!==e
return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){at(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this
var e=t?ft:mt
e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Qe&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos()
Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,o=[],s="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[n(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0
break}if(i&&i.listens(e,!0)){if(s&&!kt(r,t))break
if(o.push(i),s)break}if(r===this._container)break
r=r.parentNode}return o.length||a||s||!kt(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!Tt(t)){var e=t.type
"mousedown"!==e&&"keypress"!==e||ct(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t)
o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,i)),n.length)){var s=n[0]
"contextmenu"===i&&s.listens(i,!0)&&xt(t)
var r={originalEvent:t}
if("keypress"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10)
r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(i,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==p(this._mouseEvents,i))return}},_draggableMoved:function(t){return t=t.dragging&&t.dragging.enabled()?t:this,t.dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,e=this._handlers.length;t<e;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,{target:this}):this.on("load",t,e),this},_getMapPanePos:function(){return ht(this._mapPane)||new w(0,0)},_moved:function(){var t=this._getMapPanePos()
return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,e){return(t&&void 0!==e?this._getNewPixelOrigin(t,e):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2)
return this.project(t,e)._subtract(i)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,e,i){var n=this._getNewPixelOrigin(i,e)
return this.project(t,e)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,e,i){var n=this._getNewPixelOrigin(i,e)
return P([this.project(t.getSouthWest(),e)._subtract(n),this.project(t.getNorthWest(),e)._subtract(n),this.project(t.getSouthEast(),e)._subtract(n),this.project(t.getNorthEast(),e)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){if(!i)return t
var n=this.project(t,e),o=this.getSize().divideBy(2),s=new b(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,i,e)
return r.round().equals([0,0])?t:this.unproject(n.add(r),e)},_limitOffset:function(t,e){if(!e)return t
var i=this.getPixelBounds(),n=new b(i.min.add(t),i.max.add(t))
return t.add(this._getBoundsOffset(n,e))},_getBoundsOffset:function(t,e,i){var n=P(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),o=n.min.subtract(t.min),s=n.max.subtract(t.max)
return new w(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,e){return t+e>0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=Qe?this.options.zoomSnap:1
return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){tt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc()
return!(!0!==(e&&e.animate)&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=q("div","leaflet-proxy leaflet-zoom-animated")
this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var e=Pi,i=this._proxy.style[e]
rt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),e=this.getZoom()
rt(this._proxy,this.project(t,e),this.getZoomScale(e,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){$(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0
if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1
var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n)
return!(!0!==i.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,Q(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),setTimeout(i(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&tt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Ri=v.extend({options:{position:"topright"},initialize:function(t){u(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map
return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t
var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i]
return Q(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this},remove:function(){return this._map?($(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Ni=function(t){return new Ri(t)}
Di.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=i+t+" "+i+o
e[t+o]=q("div",s,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=q("div",i+"control-container",this._container)
t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)$(this._controlCorners[t])
$(this._controlContainer),delete this._controlCorners,delete this._controlContainer}})
var ji=Ri.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i<n?-1:n<i?1:0}},initialize:function(t,e,i){u(this,i),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1
for(var n in t)this._addLayer(t[n],n)
for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this)
for(var e=0;e<this._layers.length;e++)this._layers[e].layer.on("add remove",this._onLayerChange,this)
return this._container},addTo:function(t){return Ri.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this)
for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._map?this._update():this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this)
var e=this._getLayer(n(t))
return e&&this._layers.splice(this._layers.indexOf(e),1),this._map?this._update():this},expand:function(){Q(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null
var t=this._map.getSize().y-(this._container.offsetTop+50)
return t<this._form.clientHeight?(Q(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):tt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return tt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=q("div",t),i=this.options.collapsed
e.setAttribute("aria-haspopup",!0),wt(e),Lt(e)
var n=this._form=q("form",t+"-list")
i&&(this._map.on("click",this.collapse,this),Ne||mt(e,{mouseenter:this.expand,mouseleave:this.collapse},this))
var o=this._layersLink=q("a",t+"-toggle",e)
o.href="#",o.title="Layers",si?(mt(o,"click",bt),mt(o,"click",this.expand,this)):mt(o,"focus",this.expand,this),i||this.expand(),this._baseLayersList=q("div",t+"-base",n),this._separator=q("div",t+"-separator",n),this._overlaysList=q("div",t+"-overlays",n),e.appendChild(n)},_getLayer:function(t){for(var e=0;e<this._layers.length;e++)if(this._layers[e]&&n(this._layers[e].layer)===t)return this._layers[e]},_addLayer:function(t,e,n){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:e,overlay:n}),this.options.sortLayers&&this._layers.sort(i(function(t,e){return this.options.sortFunction(t.layer,e.layer,t.name,e.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this
K(this._baseLayersList),K(this._overlaysList),this._layerControlInputs=[]
var t,e,i,n,o=0
for(i=0;i<this._layers.length;i++)n=this._layers[i],this._addItem(n),e=e||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1
return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update()
var e=this._getLayer(n(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null
i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(e?' checked="checked"':"")+"/>",n=document.createElement("div")
return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),o=this._map.hasLayer(t.layer)
t.overlay?(e=document.createElement("input"),e.type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=o):e=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(e),e.layerId=n(t.layer),mt(e,"click",this._onInputClick,this)
var s=document.createElement("span")
s.innerHTML=" "+t.name
var r=document.createElement("div")
return i.appendChild(r),r.appendChild(e),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[]
this._handlingClick=!0
for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e)
for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s])
for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s])
this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,e,i=this._layerControlInputs,n=this._map.getZoom(),o=i.length-1;o>=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&n<e.options.minZoom||void 0!==e.options.maxZoom&&n>e.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Fi=function(t,e,i){return new ji(t,e,i)},Ui=Ri.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"&#x2212;",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=q("div",e+" leaflet-bar"),n=this.options
return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=q("a",i,n)
return s.innerHTML=t,s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),wt(s),mt(s,"click",bt),mt(s,"click",o,this),mt(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled"
tt(this._zoomInButton,e),tt(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&Q(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&Q(this._zoomInButton,e)}})
Di.mergeOptions({zoomControl:!0}),Di.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ui,this.addControl(this.zoomControl))})
var Gi=function(t){return new Ui(t)},Wi=Ri.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=q("div","leaflet-control-scale"),i=this.options
return this._addScales(i,"leaflet-control-scale-line",e),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=q("div",e,i)),t.imperial&&(this._iScale=q("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]))
this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km"
this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t
o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e
return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),Vi=function(t){return new Wi(t)},Hi=Ri.extend({options:{position:"bottomright",prefix:'<span www="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</span>'},initialize:function(t){u(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=q("div","leaflet-control-attribution"),wt(this._container)
for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution())
return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[]
for(var e in this._attributions)this._attributions[e]&&t.push(e)
var i=[]
this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}})
Di.mergeOptions({attributionControl:!0}),Di.addInitHook(function(){this.options.attributionControl&&(new Hi).addTo(this)})
var qi=function(t){return new Hi(t)}
Ri.Layers=ji,Ri.Zoom=Ui,Ri.Scale=Wi,Ri.Attribution=Hi,Ni.layers=Fi,Ni.zoom=Gi,Ni.scale=Vi,Ni.attribution=qi
var $i=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}})
$i.addTo=function(t,e){return t.addHandler(e,this),this}
var Ki,Yi={Events:be},Xi=si?"touchstart mousedown":"mousedown",Ji={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Qi={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},tn=Pe.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){u(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(mt(this._dragStartTarget,Xi,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(tn._dragging===this&&this.finishDrag(),ft(this._dragStartTarget,Xi,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!J(this._element,"leaflet-zoom-anim")&&!(tn._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(tn._dragging=this,this._preventOutline&&ct(this._element),lt(),Se(),this._moving)))){this.fire("down")
var e=t.touches?t.touches[0]:t,i=pt(this._element)
this._startPoint=new w(e.clientX,e.clientY),this._parentScale=_t(i),mt(document,Qi[t.type],this._onMove,this),mt(document,Ji[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled){if(t.touches&&t.touches.length>1)return void(this._moved=!0)
var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new w(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)<this.options.clickTolerance||(i.x/=this._parentScale.x,i.y/=this._parentScale.y,xt(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=ht(this._element).subtract(i),Q(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),Q(this._lastTarget,"leaflet-drag-target")),this._startPos&&(this._newPos=this._startPos.add(i)),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent}
this.fire("predrag",t),at(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){tt(document.body,"leaflet-dragging"),this._lastTarget&&(tt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null)
for(var t in Qi)ft(document,Qi[t],this._onMove,this),ft(document,Ji[t],this._onUp,this)
ut(),ze(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,tn._dragging=!1}}),en=(Object.freeze||Object)({simplify:Et,pointToSegmentDistance:At,closestPointOnSegment:Zt,clipSegment:Dt,_getEdgeIntersection:Rt,_getBitCode:Nt,_sqClosestPointOnSegment:Ft,isFlat:Ut,_flat:Gt}),nn=(Object.freeze||Object)({clipPolygon:Wt}),on={project:function(t){return new w(t.lng,t.lat)},unproject:function(t){return new T(t.y,t.x)},bounds:new b([-180,-90],[180,90])},sn={R:6378137,R_MINOR:6356752.314245179,bounds:new b([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2)
return n=-i*Math.log(Math.max(a,1e-10)),new w(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&Math.abs(l)>1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),l=Math.PI/2-2*Math.atan(r*e)-a,a+=l
return new T(a*i,t.x*i/n)}},rn=(Object.freeze||Object)({LonLat:on,Mercator:sn,SphericalMercator:ke}),an=e({},Te,{code:"EPSG:3395",projection:sn,transformation:function(){var t=.5/(Math.PI*sn.R)
return z(t,.5,-t,.5)}()}),hn=e({},Te,{code:"EPSG:4326",projection:on,transformation:z(1/180,1,-1/180,.5)}),ln=e({},Me,{projection:on,transformation:z(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat
return Math.sqrt(i*i+n*n)},infinite:!0})
Me.Earth=Te,Me.EPSG3395=an,Me.EPSG3857=Ae,Me.EPSG900913=Ze,Me.EPSG4326=hn,Me.Simple=ln
var un=Pe.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target
if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents()
e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}})
Di.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.")
var e=n(t)
return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=n(t)
return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i])
return this},_addLayers:function(t){t=t?ge(t)?t:[t]:[]
for(var e=0,i=t.length;e<i;e++)this.addLayer(t[e])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var e=n(t)
this._zoomBoundLayers[e]&&(delete this._zoomBoundLayers[e],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,e=-1/0,i=this._getZoomSpan()
for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options
t=void 0===o.minZoom?t:Math.min(t,o.minZoom),e=void 0===o.maxZoom?e:Math.max(e,o.maxZoom)}this._layersMaxZoom=e===-1/0?void 0:e,this._layersMinZoom=t===1/0?void 0:t,i!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}})
var cn=un.extend({initialize:function(t,e){u(this,e),this._layers={}
var i,n
if(t)for(i=0,n=t.length;i<n;i++)this.addLayer(t[i])},addLayer:function(t){var e=this.getLayerId(t)
return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var e=t in this._layers?t:this.getLayerId(t)
return this._map&&this._layers[e]&&this._map.removeLayer(this._layers[e]),delete this._layers[e],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1)
for(e in this._layers)i=this._layers[e],i[t]&&i[t].apply(i,n)
return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i])
return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[]
return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return n(t)}}),dn=function(t,e){return new cn(t,e)},pn=cn.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),cn.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),cn.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new C
for(var e in this._layers){var i=this._layers[e]
t.extend(i.getBounds?i.getBounds():i.getLatLng())}return t}}),_n=function(t){return new pn(t)},mn=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){u(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t)
if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).")
return null}var n=this._createImg(i,e&&"IMG"===e.tagName?e:null)
return this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"]
"number"==typeof n&&(n=[n,n])
var o=x(n),s=x("shadow"===e&&i.shadowAnchor||i.iconAnchor||o&&o.divideBy(2,!0))
t.className="leaflet-marker-"+e+" "+(i.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,e){return e=e||document.createElement("img"),e.src=t,e},_getIconUrl:function(t){return hi&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),fn=mn.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return fn.imagePath||(fn.imagePath=this._detectIconPath()),(this.options.imagePath||fn.imagePath)+mn.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=q("div","leaflet-default-icon-path",document.body),e=H(t,"background-image")||H(t,"backgroundImage")
return document.body.removeChild(t),e=null===e||0!==e.indexOf("url")?"":e.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),gn=$i.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon
this._draggable||(this._draggable=new tn(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),Q(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&tt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var e=this._marker,i=e._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=ht(e._icon),r=i.getPixelBounds(),a=i.getPixelOrigin(),h=P(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o))
if(!h.contains(s)){var l=x((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n)
i.panBy(l,{animate:!1}),this._draggable._newPos._add(l),this._draggable._startPos._add(l),at(e._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var e=this._marker,i=e._shadow,n=ht(e._icon),o=e._map.layerPointToLatLng(n)
i&&at(i,n),e._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,e.fire("move",t).fire("drag",t)},_onDragEnd:function(t){g(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),vn=un.extend({options:{icon:new fn,interactive:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1},initialize:function(t,e){u(this,e),this._latlng=k(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng
return this._latlng=k(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round()
this._setPos(t)}return this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1
i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),"IMG"===i.tagName&&(i.alt=t.alt||"")),Q(i,e),t.keyboard&&(i.tabIndex="0"),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex})
var o=t.icon.createShadow(this._shadow),s=!1
o!==this._shadow&&(this._removeShadow(),s=!0),o&&(Q(o,e),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),$(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&$(this._shadow),this._shadow=null},_setPos:function(t){at(this._icon,t),this._shadow&&at(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round()
this._setPos(e)},_initInteraction:function(){if(this.options.interactive&&(Q(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),gn)){var t=this.options.draggable
this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new gn(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity
nt(this._icon,t),this._shadow&&nt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}}),yn=un.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return u(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),Ln=yn.extend({options:{fill:!0,radius:10},initialize:function(t,e){u(this,e),this._latlng=k(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=k(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var e=t&&t.radius||this._radius
return yn.prototype.setStyle.call(this,t),this.setRadius(e),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,e=this._radiusY||t,i=this._clickTolerance(),n=[t+i,e+i]
this._pxBounds=new b(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),wn=Ln.extend({initialize:function(t,i,n){if("number"==typeof i&&(i=e({},n,{radius:i})),u(this,i),this._latlng=k(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN")
this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius]
return new C(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:yn.prototype.setStyle,_project:function(){var t=this._latlng.lng,e=this._latlng.lat,i=this._map,n=i.options.crs
if(n.distance===Te.distance){var o=Math.PI/180,s=this._mRadius/Te.R/o,r=i.project([e+s,t]),a=i.project([e-s,t]),h=r.add(a).divideBy(2),l=i.unproject(h).lat,u=Math.acos((Math.cos(s*o)-Math.sin(e*o)*Math.sin(l*o))/(Math.cos(e*o)*Math.cos(l*o)))/o;(isNaN(u)||0===u)&&(u=s/Math.cos(Math.PI/180*e)),this._point=h.subtract(i.getPixelOrigin()),this._radius=isNaN(u)?0:h.x-i.project([l,t-u]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]))
this._point=i.latLngToLayerPoint(this._latlng),this._radius=this._point.x-i.latLngToLayerPoint(c).x}this._updateBounds()}}),xn=yn.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){u(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e,i,n=1/0,o=null,s=Ft,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],l=1,u=h.length;l<u;l++){e=h[l-1],i=h[l]
var c=s(t,e,i,!0)
c<n&&(n=c,o=s(t,e,i))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()")
var t,e,i,n,o,s,r,a=this._rings[0],h=a.length
if(!h)return null
for(t=0,e=0;t<h-1;t++)e+=a[t].distanceTo(a[t+1])/2
if(0===e)return this._map.layerPointToLatLng(a[0])
for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],i=o.distanceTo(s),(n+=i)>e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=k(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new C,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Ut(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=Ut(t),n=0,o=t.length;n<o;n++)i?(e[n]=k(t[n]),this._bounds.extend(e[n])):e[n]=this._convertLatLngs(t[n])
return e},_project:function(){var t=new b
this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t)
var e=this._clickTolerance(),i=new w(e,e)
this._bounds.isValid()&&t.isValid()&&(t.min._subtract(i),t.max._add(i),this._pxBounds=t)},_projectLatlngs:function(t,e,i){var n,o,s=t[0]instanceof T,r=t.length
if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),i.extend(o[n])
e.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],e,i)},_clipPoints:function(){var t=this._renderer._bounds
if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings)
var e,i,n,o,s,r,a,h=this._parts
for(e=0,n=0,o=this._rings.length;e<o;e++)for(a=this._rings[e],i=0,s=a.length;i<s-1;i++)(r=Dt(a[i],a[i+1],t,i,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[i+1]&&i!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,e=this.options.smoothFactor,i=0,n=t.length;i<n;i++)t[i]=Et(t[i],e)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,e){var i,n,o,s,r,a,h=this._clickTolerance()
if(!this._pxBounds||!this._pxBounds.contains(t))return!1
for(i=0,s=this._parts.length;i<s;i++)for(a=this._parts[i],n=0,r=a.length,o=r-1;n<r;o=n++)if((e||0!==n)&&At(t,a[o],a[n])<=h)return!0
return!1}})
xn._flat=Gt
var bn=xn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()")
var t,e,i,n,o,s,r,a,h,l=this._rings[0],u=l.length
if(!u)return null
for(s=r=a=0,t=0,e=u-1;t<u;e=t++)i=l[t],n=l[e],o=i.y*n.x-n.y*i.x,r+=(i.x+n.x)*o,a+=(i.y+n.y)*o,s+=3*o
return h=0===s?l[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var e=xn.prototype._convertLatLngs.call(this,t),i=e.length
return i>=2&&e[0]instanceof T&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){xn.prototype._setLatLngs.call(this,t),Ut(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Ut(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new w(e,e)
if(t=new b(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings)
for(var n,o=0,s=this._rings.length;o<s;o++)n=Wt(this._rings[o],t,!0),n.length&&this._parts.push(n)}},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var e,i,n,o,s,r,a,h,l=!1
if(!this._pxBounds||!this._pxBounds.contains(t))return!1
for(o=0,a=this._parts.length;o<a;o++)for(e=this._parts[o],s=0,h=e.length,r=h-1;s<h;r=s++)i=e[s],n=e[r],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l)
return l||xn.prototype._containsPoint.call(this,t,!0)}}),Pn=pn.extend({initialize:function(t,e){u(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=ge(t)?t:t.features
if(o){for(e=0,i=o.length;e<i;e++)n=o[e],(n.geometries||n.geometry||n.features||n.coordinates)&&this.addData(n)
return this}var s=this.options
if(s.filter&&!s.filter(t))return this
var r=Xt(t,s)
return r?(r.feature=ne(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=e({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(e){this._setLayerStyle(e,t)},this)},_setLayerStyle:function(t,e){"function"==typeof e&&(e=e(t.feature)),t.setStyle&&t.setStyle(e)}}),Cn={toGeoJSON:function(t){return ie(this,{type:"Point",coordinates:te(this.getLatLng(),t)})}}
vn.include(Cn),wn.include(Cn),Ln.include(Cn),xn.include({toGeoJSON:function(t){var e=!Ut(this._latlngs),i=ee(this._latlngs,e?1:0,!1,t)
return ie(this,{type:(e?"Multi":"")+"LineString",coordinates:i})}}),bn.include({toGeoJSON:function(t){var e=!Ut(this._latlngs),i=e&&!Ut(this._latlngs[0]),n=ee(this._latlngs,i?2:e?1:0,!0,t)
return e||(n=[n]),ie(this,{type:(i?"Multi":"")+"Polygon",coordinates:n})}}),cn.include({toMultiPoint:function(t){var e=[]
return this.eachLayer(function(i){e.push(i.toGeoJSON(t).geometry.coordinates)}),ie(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type
if("MultiPoint"===e)return this.toMultiPoint(t)
var i="GeometryCollection"===e,n=[]
return this.eachLayer(function(e){if(e.toGeoJSON){var o=e.toGeoJSON(t)
if(i)n.push(o.geometry)
else{var s=ne(o)
"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),i?ie(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}})
var Mn=oe,Tn=un.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=M(e),u(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(Q(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){$(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&Y(this._image),this},bringToBack:function(){return this._map&&X(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=M(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset}
return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:q("img")
if(Q(e,"leaflet-image-layer"),this._zoomAnimated&&Q(e,"leaflet-zoom-animated"),this.options.className&&Q(e,this.options.className),e.onselectstart=r,e.onmousemove=r,e.onload=i(this.fire,this,"load"),e.onerror=i(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t)return void(this._url=e.src)
e.src=this._url,e.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min
rt(this._image,i,e)},_reset:function(){var t=this._image,e=new b(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize()
at(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){nt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error")
var t=this.options.errorOverlayUrl
t&&this._url!==t&&(this._url=t,this._image.src=t)}}),kn=function(t,e,i){return new Tn(t,e,i)},Sn=Tn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:q("video")
if(Q(e,"leaflet-image-layer"),this._zoomAnimated&&Q(e,"leaflet-zoom-animated"),e.onselectstart=r,e.onmousemove=r,e.onloadeddata=i(this.fire,this,"load"),t){for(var n=e.getElementsByTagName("source"),o=[],s=0;s<n.length;s++)o.push(n[s].src)
return void(this._url=n.length>0?o:[e.src])}ge(this._url)||(this._url=[this._url]),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop
for(var a=0;a<this._url.length;a++){var h=q("source")
h.src=this._url[a],e.appendChild(h)}}}),zn=un.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,e){u(this,t),this._source=e},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&nt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&nt(this._container,1),this.bringToFront()},onRemove:function(t){t&&t._fadeAnimated?(nt(this._container,0),this._removeTimeout=setTimeout(i($,void 0,this._container),200)):$(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=k(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition}
return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&Y(this._container),this},bringToBack:function(){return this._map&&X(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content
if("string"==typeof e)t.innerHTML=e
else{for(;t.hasChildNodes();)t.removeChild(t.firstChild)
t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=x(this.options.offset),i=this._getAnchor()
this._zoomAnimated?at(this._container,t.add(i)):e=e.add(t).add(i)
var n=this._containerBottom=-e.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+e.x
this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),En=zn.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){zn.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof yn||this._source.on("preclick",yt))},onRemove:function(t){zn.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof yn||this._source.off("preclick",yt))},getEvents:function(){var t=zn.prototype.getEvents.call(this)
return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",e=this._container=q("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),i=this._wrapper=q("div",t+"-content-wrapper",e)
if(this._contentNode=q("div",t+"-content",i),wt(i),Lt(this._contentNode),mt(i,"contextmenu",yt),this._tipContainer=q("div",t+"-tip-container",e),this._tip=q("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=q("a",t+"-close-button",e)
n.href="#close",n.innerHTML="&#215;",mt(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,e=t.style
e.width="",e.whiteSpace="nowrap"
var i=t.offsetWidth
i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height=""
var n=t.offsetHeight,o=this.options.maxHeight
o&&n>o?(e.height=o+"px",Q(t,"leaflet-popup-scrolled")):tt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor()
at(this._container,e.add(i))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(H(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new w(this._containerLeft,-i-this._containerBottom)
o._add(ht(this._container))
var s=t.layerPointToContainerPoint(o),r=x(this.options.autoPanPadding),a=x(this.options.autoPanPaddingTopLeft||r),h=x(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),u=0,c=0
s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-a.x<0&&(u=s.x-a.x),s.y+i+h.y>l.y&&(c=s.y+i-l.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(u||c)&&t.fire("autopanstart").panBy([u,c])}},_onCloseButtonClick:function(t){this._close(),bt(t)},_getAnchor:function(){return x(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),An=function(t,e){return new En(t,e)}
Di.mergeOptions({closePopupOnClick:!0}),Di.include({openPopup:function(t,e,i){return t instanceof En||(t=new En(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),un.include({bindPopup:function(t,e){return t instanceof En?(u(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new En(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){if(t instanceof un||(e=t,t=this),t instanceof pn)for(var i in this._layers){t=this._layers[i]
break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target
if(this._popup&&this._map){if(bt(t),e instanceof yn)return void this.openPopup(t.layer||t.target,t.latlng)
this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}})
var Zn=zn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){zn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){zn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=zn.prototype.getEvents.call(this)
return si&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide")
this._contentNode=this._container=q("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e=this._map,i=this._container,n=e.latLngToContainerPoint(e.getCenter()),o=e.layerPointToContainerPoint(t),s=this.options.direction,r=i.offsetWidth,a=i.offsetHeight,h=x(this.options.offset),l=this._getAnchor()
"top"===s?t=t.add(x(-r/2+h.x,-a+h.y+l.y,!0)):"bottom"===s?t=t.subtract(x(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(x(r/2+h.x,a/2-l.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(x(h.x+l.x,l.y-a/2+h.y,!0))):(s="left",t=t.subtract(x(r+l.x-h.x,a/2-l.y-h.y,!0))),tt(i,"leaflet-tooltip-right"),tt(i,"leaflet-tooltip-left"),tt(i,"leaflet-tooltip-top"),tt(i,"leaflet-tooltip-bottom"),Q(i,"leaflet-tooltip-"+s),at(i,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng)
this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&nt(this._container,t)},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center)
this._setPosition(e)},_getAnchor:function(){return x(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}}),In=function(t,e){return new Zn(t,e)}
Di.include({openTooltip:function(t,e,i){return t instanceof Zn||(t=new Zn(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),un.include({bindTooltip:function(t,e){return t instanceof Zn?(u(t,e),this._tooltip=t,t._source=this):(this._tooltip&&!e||(this._tooltip=new Zn(e,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var e=t?"off":"on",i={remove:this.closeTooltip,move:this._moveTooltip}
this._tooltip.options.permanent?i.add=this._openTooltip:(i.mouseover=this._openTooltip,i.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(i.mousemove=this._moveTooltip),si&&(i.click=this._openTooltip)),this[e](i),this._tooltipHandlersAdded=!t}},openTooltip:function(t,e){if(t instanceof un||(e=t,t=this),t instanceof pn)for(var i in this._layers){t=this._layers[i]
break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,e),this._tooltip.options.interactive&&this._tooltip._container&&(Q(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(tt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var e=t.layer||t.target
this._tooltip&&this._map&&this.openTooltip(e,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var e,i,n=t.latlng
this._tooltip.options.sticky&&t.originalEvent&&(e=this._map.mouseEventToContainerPoint(t.originalEvent),i=this._map.containerPointToLayerPoint(e),n=this._map.layerPointToLatLng(i)),this._tooltip.setLatLng(n)}})
var On=mn.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var e=t&&"DIV"===t.tagName?t:document.createElement("div"),i=this.options
if(e.innerHTML=!1!==i.html?i.html:"",i.bgPos){var n=x(i.bgPos)
e.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(e,"icon"),e},createShadow:function(){return null}})
mn.Default=fn
var Bn=un.extend({options:{tileSize:256,opacity:1,updateWhenIdle:ti,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){u(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),$(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(Y(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(X(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd}
return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize
return t instanceof w?t:new w(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-1/0,1/0),o=0,s=i.length;o<s;o++)e=i[o].style.zIndex,i[o]!==this._container&&e&&(n=t(n,+e))
isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Be){nt(this._container,this.options.opacity)
var t=+new Date,e=!1,i=!1
for(var n in this._tiles){var o=this._tiles[n]
if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200)
nt(o.el,s),s<1?e=!0:(o.active?i=!0:this._onOpaqueTile(o),o.active=!0)}}i&&!this._noPrune&&this._pruneTiles(),e&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=q("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom
if(void 0!==t){for(var i in this._levels)this._levels[i].el.children.length||i===t?(this._levels[i].el.style.zIndex=e-Math.abs(t-i),this._onUpdateLevel(i)):($(this._levels[i].el),this._removeTilesAtZoom(i),this._onRemoveLevel(i),delete this._levels[i])
var n=this._levels[t],o=this._map
return n||(n=this._levels[t]={},n.el=q("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=e,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,e,i=this._map.getZoom()
if(i>this.options.maxZoom||i<this.options.minZoom)return void this._removeAllTiles()
for(t in this._tiles)e=this._tiles[t],e.retain=e.current
for(t in this._tiles)if(e=this._tiles[t],e.current&&!e.active){var n=e.coords
this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}},_removeTilesAtZoom:function(t){for(var e in this._tiles)this._tiles[e].coords.z===t&&this._removeTile(e)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)$(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t]
this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,e,i,n){var o=Math.floor(t/2),s=Math.floor(e/2),r=i-1,a=new w(+o,+s)
a.z=+r
var h=this._tileCoordsToKey(a),l=this._tiles[h]
return l&&l.active?(l.retain=!0,!0):(l&&l.loaded&&(l.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new w(o,s)
r.z=i+1
var a=this._tileCoordsToKey(r),h=this._tiles[a]
h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1<n&&this._retainChildren(o,s,i+1,n))}},_resetView:function(t){var e=t&&(t.pinch||t.flyTo)
this._setView(this._map.getCenter(),this._map.getZoom(),e,e)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var e=this.options
return void 0!==e.minNativeZoom&&t<e.minNativeZoom?e.minNativeZoom:void 0!==e.maxNativeZoom&&e.maxNativeZoom<t?e.maxNativeZoom:t},_setView:function(t,e,i,n){var o=this._clampZoom(Math.round(e));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0)
var s=this.options.updateWhenZooming&&o!==this._tileZoom
n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),i||this._pruneTiles(),this._noPrune=!!i),this._setZoomTransforms(t,e)},_setZoomTransforms:function(t,e){for(var i in this._levels)this._setZoomTransform(this._levels[i],t,e)},_setZoomTransform:function(t,e,i){var n=this._map.getZoomScale(i,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e,i)).round()
Qe?rt(t.el,o,n):at(t.el,o)},_resetGrid:function(){var t=this._map,e=t.options.crs,i=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom)
o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=e.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,e.wrapLng[0]],n).x/i.x),Math.ceil(t.project([0,e.wrapLng[1]],n).x/i.y)],this._wrapY=e.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([e.wrapLat[0],0],n).y/i.x),Math.ceil(t.project([e.wrapLat[1],0],n).y/i.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),n=e.getZoomScale(i,this._tileZoom),o=e.project(t,this._tileZoom).floor(),s=e.getSize().divideBy(2*n)
return new b(o.subtract(s),o.add(s))},_update:function(t){var e=this._map
if(e){var i=this._clampZoom(e.getZoom())
if(void 0===t&&(t=e.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new b(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]))
if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles")
for(var l in this._tiles){var u=this._tiles[l].coords
u.z===this._tileZoom&&h.contains(new w(u.x,u.y))||(this._tiles[l].current=!1)}if(Math.abs(i-this._tileZoom)>1)return void this._setView(t,i)
for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var p=new w(d,c)
if(p.z=this._tileZoom,this._isValidTile(p)){var _=this._tiles[this._tileCoordsToKey(p)]
_?_.current=!0:r.push(p)}}if(r.sort(function(t,e){return t.distanceTo(s)-e.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"))
var m=document.createDocumentFragment()
for(d=0;d<r.length;d++)this._addTile(r[d],m)
this._level.el.appendChild(m)}}}},_isValidTile:function(t){var e=this._map.options.crs
if(!e.infinite){var i=this._globalTileRange
if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}if(!this.options.bounds)return!0
var n=this._tileCoordsToBounds(t)
return M(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i)
return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new C(e[0],e[1])
return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new w(+e[0],+e[1])
return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t]
e&&($(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){Q(t,"leaflet-tile")
var e=this.getTileSize()
t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=r,t.onmousemove=r,Be&&this.options.opacity<1&&nt(t,this.options.opacity),Ne&&!je&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),i(this._tileReady,this,t))
this._initTile(s),this.createTile.length<2&&f(i(this._tileReady,this,t,null,s)),at(s,n),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,n){e&&this.fire("tileerror",{error:e,tile:n,coords:t})
var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map&&this._map._fadeAnimated?(nt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),e||(Q(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Be||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(i(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new w(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y)
return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize()
return new b(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1
return!0}}),Dn=Bn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,e=u(this,e),e.detectRetina&&hi&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),Ne||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},createTile:function(t,e){var n=document.createElement("img")
return mt(n,"load",i(this._tileOnLoad,this,e,n)),mt(n,"error",i(this._tileOnError,this,e,n)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(n.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var i={r:hi?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()}
if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y
this.options.tms&&(i.y=n),i["-y"]=n}return d(this._url,e(i,this.options))},_tileOnLoad:function(t,e){Be?setTimeout(i(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl
n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset
return i&&(t=e-t),t+n},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length
return this.options.subdomains[e]},_abortLoading:function(){var t,e
for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=r,e.onerror=r,e.complete||(e.src=ve,$(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t]
if(e)return Ue||e.el.setAttribute("src",ve),Bn.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==ve))return Bn.prototype._tileReady.call(this,t,e,i)}}),Rn=Dn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t
var n=e({},this.defaultWmsParams)
for(var o in i)o in this.options||(n[o]=i[o])
i=u(this,i)
var s=i.detectRetina&&hi?2:1,r=this.getTileSize()
n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version)
var e=this._wmsVersion>=1.3?"crs":"srs"
this.wmsParams[e]=this._crs.code,Dn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=P(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===hn?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=Dn.prototype.getTileUrl.call(this,t)
return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}})
Dn.WMS=Rn,he.wms=le
var Nn=un.extend({options:{padding:.1,tolerance:0},initialize:function(t){u(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&Q(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd}
return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=ht(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e),a=r.subtract(s),h=o.multiplyBy(-i).add(n).add(o).subtract(a)
Qe?rt(this._container,h,i):at(this._container,h)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom)
for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round()
this._bounds=new b(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),jn=Nn.extend({getEvents:function(){var t=Nn.prototype.getEvents.call(this)
return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Nn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas")
mt(t,"mousemove",o(this._onMouseMove,32,this),this),mt(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),mt(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){g(this._redrawRequest),delete this._ctx,$(this._container),ft(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t
this._redrawBounds=null
for(var e in this._layers)t=this._layers[e],t._update()
this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},Nn.prototype._update.call(this)
var t=this._bounds,e=this._container,i=t.getSize(),n=hi?2:1
at(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",hi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){Nn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t
var e=t._order={layer:t,prev:this._drawLast,next:null}
this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,o=e.prev
i?i.prev=o:this._drawLast=o,o?o.next=i:this._drawFirst=i,delete this._drawnLayers[t._leaflet_id],delete t._order,delete this._layers[n(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i=t.options.dashArray.split(","),n=[]
for(e=0;e<i.length;e++)n.push(Number(i[e]))
t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var e=(t.options.weight||0)+1
this._redrawBounds=this._redrawBounds||new b,this._redrawBounds.extend(t._pxBounds.min.subtract([e,e])),this._redrawBounds.extend(t._pxBounds.max.add([e,e]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds
if(t){var e=t.getSize()
this._ctx.clearRect(t.min.x,t.min.y,e.x,e.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,e=this._redrawBounds
if(this._ctx.save(),e){var i=e.getSize()
this._ctx.beginPath(),this._ctx.rect(e.min.x,e.min.y,i.x,i.y),this._ctx.clip()}this._drawing=!0
for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!e||t._pxBounds&&t._pxBounds.intersects(e))&&t._updatePath()
this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,e){if(this._drawing){var i,n,o,s,r=t._parts,a=r.length,h=this._ctx
if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),i=0;i<a;i++){for(n=0,o=r[i].length;n<o;n++)s=r[i][n],h[n?"lineTo":"moveTo"](s.x,s.y)
e&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var e=t._point,i=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n
this._drawnLayers[t._leaflet_id]=t,1!==o&&(i.save(),i.scale(1,o)),i.beginPath(),i.arc(e.x,e.y/o,n,0,2*Math.PI,!1),1!==o&&i.restore(),this._fillStroke(i,t)}},_fillStroke:function(t,e){var i=e.options
i.fill&&(t.globalAlpha=i.fillOpacity,t.fillStyle=i.fillColor||i.color,t.fill(i.fillRule||"evenodd")),i.stroke&&0!==i.weight&&(t.setLineDash&&t.setLineDash(e.options&&e.options._dashArray||[]),t.globalAlpha=i.opacity,t.lineWidth=i.weight,t.strokeStyle=i.color,t.lineCap=i.lineCap,t.lineJoin=i.lineJoin,t.stroke())},_onClick:function(t){for(var e,i,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)e=o.layer,e.options.interactive&&e._containsPoint(n)&&!this._map._draggableMoved(e)&&(i=e)
i&&(Mt(t),this._fireEvent([i],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var e=this._map.mouseEventToLayerPoint(t)
this._handleMouseHover(t,e)}},_handleMouseOut:function(t){var e=this._hoveredLayer
e&&(tt(this._container,"leaflet-interactive"),this._fireEvent([e],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,e){for(var i,n,o=this._drawFirst;o;o=o.next)i=o.layer,i.options.interactive&&i._containsPoint(e)&&(n=i)
n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(Q(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,e,i){this._map._fireDOMEvent(e,i||e.type,t)},_bringToFront:function(t){var e=t._order,i=e.next,n=e.prev
i&&(i.prev=n,n?n.next=i:i&&(this._drawFirst=i),e.prev=this._drawLast,this._drawLast.next=e,e.next=null,this._drawLast=e,this._requestRedraw(t))},_bringToBack:function(t){var e=t._order,i=e.next,n=e.prev
n&&(n.next=i,i?i.prev=n:n&&(this._drawLast=n),e.prev=null,e.next=this._drawFirst,this._drawFirst.prev=e,this._drawFirst=e,this._requestRedraw(t))}}),Fn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),Un={_initContainer:function(){this._container=q("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Nn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Fn("shape")
Q(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Fn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var e=t._container
this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container
$(e),t.removeInteractiveTarget(e),delete this._layers[n(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container
o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=Fn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=ge(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=Fn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i)
this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){Y(t._container)},_bringToBack:function(t){X(t._container)}},Gn=ci?Fn:E,Wn=Nn.extend({getEvents:function(){var t=Nn.prototype.getEvents.call(this)
return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=Gn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Gn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){$(this._container),ft(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){Nn.prototype._update.call(this)
var t=this._bounds,e=t.getSize(),i=this._container
this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),at(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Gn("path")
t.options.className&&Q(e,t.options.className),t.options.interactive&&Q(e,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){$(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options
e&&(i&&i.classOpt&&Q(e,i.classOpt),i.dataId&&e.setAttribute("data-id",i.dataId),i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,A(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=Math.max(Math.round(t._radiusY),1)||i,o="a"+i+","+n+" 0 1,0 ",s=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+o+2*i+",0 "+o+2*-i+",0 "
this._setPath(t,s)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){Y(t._path)},_bringToBack:function(t){X(t._path)}})
ci&&Wn.include(Un),Di.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer
return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1
var e=this._paneRenderers[t]
return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&ue(t)||ce(t)}})
var Vn=bn.extend({initialize:function(t,e){bn.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=M(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}})
Wn.create=Gn,Wn.pointsToPath=A,Pn.geometryToLayer=Xt,Pn.coordsToLatLng=Jt,Pn.coordsToLatLngs=Qt,Pn.latLngToCoords=te,Pn.latLngsToCoords=ee,Pn.getFeature=ie,Pn.asFeature=ne,Di.mergeOptions({boxZoom:!0})
var Hn=$i.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){mt(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){ft(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){$(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1
this._clearDeferredResetState(),this._resetState(),Se(),lt(),this._startPoint=this._map.mouseEventToContainerPoint(t),mt(document,{contextmenu:bt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=q("div","leaflet-zoom-box",this._container),Q(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t)
var e=new b(this._point,this._startPoint),i=e.getSize()
at(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&($(this._box),tt(this._container,"leaflet-crosshair")),ze(),ut(),ft(document,{contextmenu:bt,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(i(this._resetState,this),0)
var e=new C(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point))
this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}})
Di.addInitHook("addHandler","boxZoom",Hn),Di.mergeOptions({doubleClickZoom:!0})
var qn=$i.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n
"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}})
Di.addInitHook("addHandler","doubleClickZoom",qn),Di.mergeOptions({dragging:!0,inertia:!je,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0})
var $n=$i.extend({addHooks:function(){if(!this._draggable){var t=this._map
this._draggable=new tn(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}Q(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){tt(this._map._container,"leaflet-grab"),tt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map
if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=M(this._map.options.maxBounds)
this._offsetLimit=P(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null
t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos
this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0])
this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit
t.x<e.min.x&&(t.x=this._viscousLimit(t.x,e.min.x)),t.y<e.min.y&&(t.y=this._viscousLimit(t.y,e.min.y)),t.x>e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)<Math.abs(s+i)?o:s
this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var e=this._map,i=e.options,n=!i.inertia||this._times.length<2
if(e.fire("dragend",t),n)e.fire("moveend")
else{this._prunePositions(+new Date)
var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=i.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),l=Math.min(i.inertiaMaxSpeed,h),u=a.multiplyBy(l/h),c=l/(i.inertiaDeceleration*r),d=u.multiplyBy(-c/2).round()
d.x||d.y?(d=e._limitOffset(d,e.options.maxBounds),f(function(){e.panBy(d,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):e.fire("moveend")}}})
Di.addInitHook("addHandler","dragging",$n),Di.mergeOptions({keyboard:!0,keyboardPanDelta:80})
var Kn=$i.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container
t.tabIndex<=0&&(t.tabIndex="0"),mt(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),ft(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,e=document.documentElement,i=t.scrollTop||e.scrollTop,n=t.scrollLeft||e.scrollLeft
this._map._container.focus(),window.scrollTo(n,i)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var e,i,n=this._panKeys={},o=this.keyCodes
for(e=0,i=o.left.length;e<i;e++)n[o.left[e]]=[-1*t,0]
for(e=0,i=o.right.length;e<i;e++)n[o.right[e]]=[t,0]
for(e=0,i=o.down.length;e<i;e++)n[o.down[e]]=[0,t]
for(e=0,i=o.up.length;e<i;e++)n[o.up[e]]=[0,-1*t]},_setZoomDelta:function(t){var e,i,n=this._zoomKeys={},o=this.keyCodes
for(e=0,i=o.zoomIn.length;e<i;e++)n[o.zoomIn[e]]=t
for(e=0,i=o.zoomOut.length;e<i;e++)n[o.zoomOut[e]]=-t},_addHooks:function(){mt(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){ft(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e,i=t.keyCode,n=this._map
if(i in this._panKeys)n._panAnim&&n._panAnim._inProgress||(e=this._panKeys[i],t.shiftKey&&(e=x(e).multiplyBy(3)),n.panBy(e),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds))
else if(i in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[i])
else{if(27!==i||!n._popup||!n._popup.options.closeOnEscapeKey)return
n.closePopup()}bt(t)}}})
Di.addInitHook("addHandler","keyboard",Kn),Di.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60})
var Yn=$i.extend({addHooks:function(){mt(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){ft(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var e=Ct(t),n=this._map.options.wheelDebounceTime
this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date)
var o=Math.max(n-(+new Date-this._startTime),0)
clearTimeout(this._timer),this._timer=setTimeout(i(this._performZoom,this),o),bt(t)},_performZoom:function(){var t=this._map,e=t.getZoom(),i=this._map.options.zoomSnap||0
t._stop()
var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=i?Math.ceil(o/i)*i:o,r=t._limitZoom(e+(this._delta>0?s:-s))-e
this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}})
Di.addInitHook("addHandler","scrollWheelZoom",Yn),Di.mergeOptions({tap:!0,tapTolerance:15})
var Xn=$i.extend({addHooks:function(){mt(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){ft(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(xt(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout)
var e=t.touches[0],n=e.target
this._startPos=this._newPos=new w(e.clientX,e.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&Q(n,"leaflet-active"),this._holdTimeout=setTimeout(i(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))},this),1e3),this._simulateEvent("mousedown",e),mt(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),ft(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target
i&&i.tagName&&"a"===i.tagName.toLowerCase()&&tt(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0]
this._newPos=new w(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents")
i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}})
si&&!oi&&Di.addInitHook("addHandler","tap",Xn),Di.mergeOptions({touchZoom:si&&!je,bounceAtZoomLimits:!0})
var Jn=$i.extend({addHooks:function(){Q(this._map._container,"leaflet-touch-zoom"),mt(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){tt(this._map._container,"leaflet-touch-zoom"),ft(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map
if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1])
this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),mt(document,"touchmove",this._onTouchMove,this),mt(document,"touchend",this._onTouchEnd,this),xt(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,n=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist
if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint)
if(1===s&&0===r.x&&0===r.y)return
this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),g(this._animRequest)
var a=i(e._move,e,this._center,this._zoom,{pinch:!0,round:!1})
this._animRequest=f(a,this,!0),xt(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1)
this._zooming=!1,g(this._animRequest),ft(document,"touchmove",this._onTouchMove),ft(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}})
Di.addInitHook("addHandler","touchZoom",Jn),Di.BoxZoom=Hn,Di.DoubleClickZoom=qn,Di.Drag=$n,Di.Keyboard=Kn,Di.ScrollWheelZoom=Yn,Di.Tap=Xn,Di.TouchZoom=Jn,Object.freeze=pe,t.version="1.3.3+HEAD.72f03a7",t.Control=Ri,t.control=Ni,t.Browser=di,t.Evented=Pe,t.Mixin=Yi,t.Util=xe,t.Class=v,t.Handler=$i,t.extend=e,t.bind=i,t.stamp=n,t.setOptions=u,t.DomEvent=Oi,t.DomUtil=Ei,t.PosAnimation=Bi,t.Draggable=tn,t.LineUtil=en,t.PolyUtil=nn,t.Point=w,t.point=x,t.Bounds=b,t.bounds=P,t.Transformation=S,t.transformation=z,t.Projection=rn,t.LatLng=T,t.latLng=k,t.LatLngBounds=C,t.latLngBounds=M,t.CRS=Me,t.GeoJSON=Pn,t.geoJSON=oe,t.geoJson=Mn,t.Layer=un,t.LayerGroup=cn,t.layerGroup=dn,t.FeatureGroup=pn,t.featureGroup=_n,t.ImageOverlay=Tn,t.imageOverlay=kn,t.VideoOverlay=Sn,t.videoOverlay=se,t.DivOverlay=zn,t.Popup=En,t.popup=An,t.Tooltip=Zn,t.tooltip=In,t.Icon=mn,t.icon=Vt,t.DivIcon=On,t.divIcon=re,t.Marker=vn,t.marker=Ht,t.TileLayer=Dn,t.tileLayer=he,t.GridLayer=Bn,t.gridLayer=ae,t.SVG=Wn,t.svg=ce,t.Renderer=Nn,t.Canvas=jn,t.canvas=ue,t.Path=yn,t.CircleMarker=Ln,t.circleMarker=qt,t.Circle=wn,t.circle=$t,t.Polyline=xn,t.polyline=Kt,t.Polygon=bn,t.polygon=Yt,t.Rectangle=Vn,t.rectangle=de,t.Map=Di,t.map=zt
var Qn=window.L
t.noConflict=function(){return window.L=Qn,this},window.L=t}),function(t){var e
if("function"==typeof define&&define.amd)define(["leaflet"],t)
else if("undefined"!=typeof module)e=require("leaflet"),module.exports=t(e)
else{if(void 0===window.L)throw new Error("Leaflet must be loaded first")
t(window.L)}}(function(t){t.Control.Fullscreen=t.Control.extend({options:{position:"topleft",title:{false:"View Fullscreen",true:"Exit Fullscreen"}},onAdd:function(e){var i=t.DomUtil.create("div","leaflet-control-fullscreen leaflet-bar leaflet-control")
return this.link=t.DomUtil.create("a","leaflet-control-fullscreen-button leaflet-bar-part",i),this.link.href="#",this._map=e,this._map.on("fullscreenchange",this._toggleTitle,this),this._toggleTitle(),t.DomEvent.on(this.link,"click",this._click,this),i},_click:function(e){t.DomEvent.stopPropagation(e),t.DomEvent.preventDefault(e),this._map.toggleFullscreen(this.options)},_toggleTitle:function(){this.link.title=this.options.title[this._map.isFullscreen()]}}),t.Map.include({isFullscreen:function(){return this._isFullscreen||!1},toggleFullscreen:function(t){var e=this.getContainer()
this.isFullscreen()?t&&t.pseudoFullscreen?this._disablePseudoFullscreen(e):document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():this._disablePseudoFullscreen(e):t&&t.pseudoFullscreen?this._enablePseudoFullscreen(e):e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):e.msRequestFullscreen?e.msRequestFullscreen():this._enablePseudoFullscreen(e)},_enablePseudoFullscreen:function(e){t.DomUtil.addClass(e,"leaflet-pseudo-fullscreen"),this._setFullscreen(!0),this.fire("fullscreenchange")},_disablePseudoFullscreen:function(e){t.DomUtil.removeClass(e,"leaflet-pseudo-fullscreen"),this._setFullscreen(!1),this.fire("fullscreenchange")},_setFullscreen:function(e){this._isFullscreen=e
var i=this.getContainer()
e?t.DomUtil.addClass(i,"leaflet-fullscreen-on"):t.DomUtil.removeClass(i,"leaflet-fullscreen-on"),this.invalidateSize()},_onFullscreenChange:function(t){var e=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement
e!==this.getContainer()||this._isFullscreen?e!==this.getContainer()&&this._isFullscreen&&(this._setFullscreen(!1),this.fire("fullscreenchange")):(this._setFullscreen(!0),this.fire("fullscreenchange"))}}),t.Map.mergeOptions({fullscreenControl:!1}),t.Map.addInitHook(function(){this.options.fullscreenControl&&(this.fullscreenControl=new t.Control.Fullscreen(this.options.fullscreenControl),this.addControl(this.fullscreenControl))
var e
if("onfullscreenchange"in document?e="fullscreenchange":"onmozfullscreenchange"in document?e="mozfullscreenchange":"onwebkitfullscreenchange"in document?e="webkitfullscreenchange":"onmsfullscreenchange"in document&&(e="MSFullscreenChange"),e){var i=t.bind(this._onFullscreenChange,this)
this.whenReady(function(){t.DomEvent.on(document,e,i)}),this.on("unload",function(){t.DomEvent.off(document,e,i)})}}),t.control.fullscreen=function(e){return new t.Control.Fullscreen(e)}}),function(){"use strict"
var t=function(t){return t="number"==typeof t?{precision:t}:t||{},t.precision=t.precision||5,t.factor=t.factor||Math.pow(10,t.precision),t.dimension=t.dimension||2,t},e={encode:function(e,i){i=t(i)
for(var n=[],o=0,s=e.length;o<s;++o){var r=e[o]
if(2===i.dimension)n.push(r.lat||r[0]),n.push(r.lng||r[1])
else for(var a=0;a<i.dimension;++a)n.push(r[a])}return this.encodeDeltas(n,i)},decode:function(e,i){i=t(i)
for(var n=this.decodeDeltas(e,i),o=[],s=0,r=n.length;s+(i.dimension-1)<r;){for(var a=[],h=0;h<i.dimension;++h)a.push(n[s++])
o.push(a)}return o},encodeDeltas:function(e,i){i=t(i)
for(var n=[],o=0,s=e.length;o<s;)for(var r=0;r<i.dimension;++r,++o){var a=e[o],h=a-(n[r]||0)
n[r]=a,e[o]=h}return this.encodeFloats(e,i)},decodeDeltas:function(e,i){i=t(i)
for(var n=[],o=this.decodeFloats(e,i),s=0,r=o.length;s<r;)for(var a=0;a<i.dimension;++a,++s)o[s]=Math.round((n[a]=o[s]+(n[a]||0))*i.factor)/i.factor
return o},encodeFloats:function(e,i){i=t(i)
for(var n=0,o=e.length;n<o;++n)e[n]=Math.round(e[n]*i.factor)
return this.encodeSignedIntegers(e)},encodeSignedIntegers:function(t){for(var e=0,i=t.length;e<i;++e){var n=t[e]
t[e]=n<0?~(n<<1):n<<1}return this.encodeUnsignedIntegers(t)},encodeUnsignedIntegers:function(t){for(var e="",i=0,n=t.length;i<n;++i)e+=this.encodeUnsignedInteger(t[i])
return e},wikiDecode:function(t){for(var e=0,i=[],n=0,o=0;e<t.length;){var s,r=0,a=0
do{s=t.charCodeAt(e++)-63,a|=(31&s)<<r,r+=5}while(s>=32)
o+=1&a?~(a>>1):a>>1,r=0,a=0
do{s=t.charCodeAt(e++)-63,a|=(31&s)<<r,r+=5}while(s>=32)
n+=1&a?~(a>>1):a>>1,i.push([n/1e6,o/1e6])}return i},decodeFloats:function(t,e){for(var i=[],n=0,o=0,s=0,r=t.length;s<r;++s){var a=t[s].toLowerCase(),h=t.charCodeAt(s)+(a>="a"&&a<="z"?a<"n"?13:-13:0)-63
n|=(31&h)<<o,h<32?(n=1&n?~(n>>1):n>>1,n/=e.factor,i.push(n),n=0,o=0):o+=5}return i},encodeSignedInteger:function(t){return t=t<0?~(t<<1):t<<1,this.encodeUnsignedInteger(t)},encodeUnsignedInteger:function(t){for(var e,i="";t>=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5
return e=t+63,i+=String.fromCharCode(e)}}
if("object"==typeof module&&"object"==typeof module.exports&&(module.exports=e),"object"==typeof L){L.Polyline.prototype.fromEncoded||(L.Polyline.fromEncoded=function(t,i){return L.polyline(e.decode(t),i)}),L.Polygon.prototype.fromEncoded||(L.Polygon.fromEncoded=function(t,i){return L.polygon(e.decode(t),i)})
var i={encodePath:function(){return e.encode(this.getLatLngs())}}
L.Polyline.prototype.encodePath||L.Polyline.include(i),L.Polygon.prototype.encodePath||L.Polygon.include(i),L.PolylineUtil=e}}(),function(t,e,i){L.Control.Custom=L.Control.extend({version:"1.0.1",options:{position:"topright",id:"",title:"",classes:"",content:"",style:{},datas:{},events:{}},container:null,onAdd:function(t){this.container=L.DomUtil.create("div"),this.container.id=this.options.id,this.container.title=this.options.title,this.container.className=this.options.classes,this.container.innerHTML=this.options.content
for(var e in this.options.style)this.container.style[e]=this.options.style[e]
for(var i in this.options.datas)this.container.dataset[i]=this.options.datas[i]
L.DomEvent.disableClickPropagation(this.container),L.DomEvent.on(this.container,"contextmenu",function(t){L.DomEvent.stopPropagation(t)}),L.DomEvent.disableScrollPropagation(this.container)
for(var n in this.options.events)L.DomEvent.on(this.container,n,this.options.events[n],this.container)
return this.container},onRemove:function(t){for(var e in this.options.events)L.DomEvent.off(this.container,e,this.options.events[e],this.container)}}),L.control.custom=function(t){return new L.Control.Custom(t)}}(window,document),function(t){"use strict"
function e(t,e){function i(t){return e.bgcolor&&(t.style.backgroundColor=e.bgcolor),e.width&&(t.style.width=e.width+"px"),e.height&&(t.style.height=e.height+"px"),e.style&&Object.keys(e.style).forEach(function(i){t.style[i]=e.style[i]}),t}return e=e||{},r(e),Promise.resolve(t).then(function(t){return h(t,e.filter,!0)}).then(l).then(u).then(i).then(function(i){return c(i,e.width||d.width(t),e.height||d.height(t))})}function i(t,e){return a(t,e||{}).then(function(e){return e.getContext("2d").getImageData(0,0,d.width(t),d.height(t)).data})}function n(t,e){return a(t,e||{}).then(function(t){return t.toDataURL()})}function o(t,e){return e=e||{},a(t,e).then(function(t){return t.toDataURL("image/jpeg",e.quality||1)})}function s(t,e){return a(t,e||{}).then(d.canvasToBlob)}function r(t){void 0===t.imagePlaceholder?g.impl.options.imagePlaceholder=f.imagePlaceholder:g.impl.options.imagePlaceholder=t.imagePlaceholder,void 0===t.cacheBust?g.impl.options.cacheBust=f.cacheBust:g.impl.options.cacheBust=t.cacheBust}function a(t,i){function n(t){var e=document.createElement("canvas")
if(e.width=i.width||d.width(t),e.height=i.height||d.height(t),i.bgcolor){var n=e.getContext("2d")
n.fillStyle=i.bgcolor,n.fillRect(0,0,e.width,e.height)}return e}return e(t,i).then(d.makeImage).then(d.delay(100)).then(function(e){var i=n(t)
return i.getContext("2d").drawImage(e,0,0),i})}function h(t,e,i){function n(t){return t instanceof HTMLCanvasElement?d.makeImage(t.toDataURL()):t.cloneNode(!1)}function o(t,e,i){var n=t.childNodes
return 0===n.length?Promise.resolve(e):function(t,e,i){var n=Promise.resolve()
return e.forEach(function(e){n=n.then(function(){return h(e,i)}).then(function(e){e&&t.appendChild(e)})}),n}(e,d.asArray(n),i).then(function(){return e})}function s(t,e){function i(){!function(t,e){t.cssText?e.cssText=t.cssText:function(t,e){d.asArray(t).forEach(function(i){e.setProperty(i,t.getPropertyValue(i),t.getPropertyPriority(i))})}(t,e)}(window.getComputedStyle(t),e.style)}function n(){function i(i){var n=window.getComputedStyle(t,i),o=n.getPropertyValue("content")
if(""!==o&&"none"!==o){var s=d.uid()
e.className=e.className+" "+s
var r=document.createElement("style")
r.appendChild(function(t,e,i){var n="."+t+":"+e,o=i.cssText?function(t){var e=t.getPropertyValue("content")
return t.cssText+" content: "+e+";"}(i):function(t){function e(e){return e+": "+t.getPropertyValue(e)+(t.getPropertyPriority(e)?" !important":"")}return d.asArray(t).map(e).join("; ")+";"}(i)
return document.createTextNode(n+"{"+o+"}")}(s,i,n)),e.appendChild(r)}}[":before",":after"].forEach(function(t){i(t)})}function o(){t instanceof HTMLTextAreaElement&&(e.innerHTML=t.value),t instanceof HTMLInputElement&&e.setAttribute("value",t.value)}function s(){e instanceof SVGElement&&(e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e instanceof SVGRectElement&&["width","height"].forEach(function(t){var i=e.getAttribute(t)
i&&e.style.setProperty(t,i)}))}return e instanceof Element?Promise.resolve().then(i).then(n).then(o).then(s).then(function(){return e}):e}return i||!e||e(t)?Promise.resolve(t).then(n).then(function(i){return o(t,i,e)}).then(function(e){return s(t,e)}):Promise.resolve()}function l(t){return _.resolveAll().then(function(e){var i=document.createElement("style")
return t.appendChild(i),i.appendChild(document.createTextNode(e)),t})}function u(t){return m.inlineAll(t).then(function(){return t})}function c(t,e,i){return Promise.resolve(t).then(function(t){return t.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(t)}).then(d.escapeXhtml).then(function(t){return'<foreignObject x="0" y="0" width="100%" height="100%">'+t+"</foreignObject>"}).then(function(t){return'<svg xmlns="http://www.w3.org/2000/svg" width="'+e+'" height="'+i+'">'+t+"</svg>"}).then(function(t){return"data:image/svg+xml;charset=utf-8,"+t})}var d=function(){function t(){var t="application/font-woff",e="image/jpeg"
return{woff:t,woff2:t,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:e,jpeg:e,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}function e(t){var e=/\.([^\.\/]*?)$/g.exec(t)
return e?e[1]:""}function i(i){var n=e(i).toLowerCase()
return t()[n]||""}function n(t){return-1!==t.search(/^(data:)/)}function o(t){return new Promise(function(e){for(var i=window.atob(t.toDataURL().split(",")[1]),n=i.length,o=new Uint8Array(n),s=0;s<n;s++)o[s]=i.charCodeAt(s)
e(new Blob([o],{type:"image/png"}))})}function s(t){return t.toBlob?new Promise(function(e){t.toBlob(e)}):o(t)}function r(t,e){var i=document.implementation.createHTMLDocument(),n=i.createElement("base")
i.head.appendChild(n)
var o=i.createElement("a")
return i.body.appendChild(o),n.href=e,o.href=t,o.href}function a(t){return new Promise(function(e,i){var n=new Image
n.onload=function(){e(n)},n.onerror=i,n.src=t})}function h(t){var e=3e4
return g.impl.options.cacheBust&&(t+=(/\?/.test(t)?"&":"?")+(new Date).getTime()),new Promise(function(i){function n(){if(4===r.readyState){if(200!==r.status)return void(a?i(a):s("cannot fetch resource: "+t+", status: "+r.status))
var e=new FileReader
e.onloadend=function(){var t=e.result.split(/,/)[1]
i(t)},e.readAsDataURL(r.response)}}function o(){a?i(a):s("timeout of "+e+"ms occured while fetching resource: "+t)}function s(t){console.error(t),i("")}var r=new XMLHttpRequest
r.onreadystatechange=n,r.ontimeout=o,r.responseType="blob",r.timeout=e,r.open("GET",t,!0),r.send()
var a
if(g.impl.options.imagePlaceholder){var h=g.impl.options.imagePlaceholder.split(/,/)
h&&h[1]&&(a=h[1])}})}function l(t,e){return"data:"+e+";base64,"+t}function u(t){return t.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")}function c(t){return function(e){return new Promise(function(i){setTimeout(function(){i(e)},t)})}}function d(t){for(var e=[],i=t.length,n=0;n<i;n++)e.push(t[n])
return e}function p(t){return t.replace(/#/g,"%23").replace(/\n/g,"%0A")}function _(t){var e=f(t,"border-left-width"),i=f(t,"border-right-width")
return t.scrollWidth+e+i}function m(t){var e=f(t,"border-top-width"),i=f(t,"border-bottom-width")
return t.scrollHeight+e+i}function f(t,e){var i=window.getComputedStyle(t).getPropertyValue(e)
return parseFloat(i.replace("px",""))}return{escape:u,parseExtension:e,mimeType:i,dataAsUrl:l,isDataUrl:n,canvasToBlob:s,resolveUrl:r,getAndEncode:h,uid:function(){var t=0
return function(){return"u"+function(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}()+t++}}(),delay:c,asArray:d,escapeXhtml:p,makeImage:a,width:_,height:m}}(),p=function(){function t(t){return-1!==t.search(o)}function e(t){for(var e,i=[];null!==(e=o.exec(t));)i.push(e[1])
return i.filter(function(t){return!d.isDataUrl(t)})}function i(t,e,i,n){function o(t){return new RegExp("(url\\(['\"]?)("+d.escape(t)+")(['\"]?\\))","g")}return Promise.resolve(e).then(function(t){return i?d.resolveUrl(t,i):t}).then(n||d.getAndEncode).then(function(t){return d.dataAsUrl(t,d.mimeType(e))}).then(function(i){return t.replace(o(e),"$1"+i+"$3")})}function n(n,o,s){return function(){return!t(n)}()?Promise.resolve(n):Promise.resolve(n).then(e).then(function(t){var e=Promise.resolve(n)
return t.forEach(function(t){e=e.then(function(e){return i(e,t,o,s)})}),e})}var o=/url\(['"]?([^'"]+?)['"]?\)/g
return{inlineAll:n,shouldProcess:t,impl:{readUrls:e,inline:i}}}(),_=function(){function t(){return e(document).then(function(t){return Promise.all(t.map(function(t){return t.resolve()}))}).then(function(t){return t.join("\n")})}function e(){function t(t){return t.filter(function(t){return t.type===CSSRule.FONT_FACE_RULE}).filter(function(t){return p.shouldProcess(t.style.getPropertyValue("src"))})}function e(t){var e=[]
return t.forEach(function(t){try{d.asArray(t.cssRules||[]).forEach(e.push.bind(e))}catch(e){console.log("Error while reading CSS rules from "+t.href,e.toString())}}),e}function i(t){return{resolve:function(){var e=(t.parentStyleSheet||{}).href
return p.inlineAll(t.cssText,e)},src:function(){return t.style.getPropertyValue("src")}}}return Promise.resolve(d.asArray(document.styleSheets)).then(e).then(t).then(function(t){return t.map(i)})}return{resolveAll:t,impl:{readAll:e}}}(),m=function(){function t(t){function e(e){return d.isDataUrl(t.src)?Promise.resolve():Promise.resolve(t.src).then(e||d.getAndEncode).then(function(e){return d.dataAsUrl(e,d.mimeType(t.src))}).then(function(e){return new Promise(function(i,n){t.onload=i,t.onerror=n,t.src=e})})}return{inline:e}}function e(i){return i instanceof Element?function(t){var e=t.style.getPropertyValue("background")
return e?p.inlineAll(e).then(function(e){t.style.setProperty("background",e,t.style.getPropertyPriority("background"))}).then(function(){return t}):Promise.resolve(t)}(i).then(function(){return i instanceof HTMLImageElement?t(i).inline():Promise.all(d.asArray(i.childNodes).map(function(t){return e(t)}))}):Promise.resolve(i)}return{inlineAll:e,impl:{newImage:t}}}(),f={imagePlaceholder:void 0,cacheBust:!1},g={toSvg:e,toPng:n,toJpeg:o,toBlob:s,toPixelData:i,impl:{fontFaces:_,images:m,util:d,inliner:p,options:{}}}
"undefined"!=typeof module?module.exports=g:t.domtoimage=g}(this),function(t,e){"function"==typeof define&&define.amd?define([],e):"undefined"!=typeof exports?e():(e(),t.FileSaver={exports:{}}.exports)}(this,function(){"use strict"
function t(t,e){return void 0===e?e={autoBom:!1}:"object"!=typeof e&&(console.warn("Deprecated: Expected third argument to be a object"),e={autoBom:!e}),e.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\ufeff",t],{type:t.type}):t}function e(t,e,i){var n=new XMLHttpRequest
n.open("GET",t),n.responseType="blob",n.onload=function(){s(n.response,e,i)},n.onerror=function(){console.error("could not download file")},n.send()}function i(t){var e=new XMLHttpRequest
e.open("HEAD",t,!1)
try{e.send()}catch(t){}return 200<=e.status&&299>=e.status}function n(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(i){var e=document.createEvent("MouseEvents")
e.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var o="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,s=o.saveAs||("object"!=typeof window||window!==o?function(){}:"download"in HTMLAnchorElement.prototype?function(t,s,r){var a=o.URL||o.webkitURL,h=document.createElement("a")
s=s||t.name||"download",h.download=s,h.rel="noopener","string"==typeof t?(h.href=t,h.origin===location.origin?n(h):i(h.href)?e(t,s,r):n(h,h.target="_blank")):(h.href=a.createObjectURL(t),setTimeout(function(){a.revokeObjectURL(h.href)},4e4),setTimeout(function(){n(h)},0))}:"msSaveOrOpenBlob"in navigator?function(o,s,r){if(s=s||o.name||"download","string"!=typeof o)navigator.msSaveOrOpenBlob(t(o,r),s)
else if(i(o))e(o,s,r)
else{var a=document.createElement("a")
a.href=o,a.target="_blank",setTimeout(function(){n(a)})}}:function(t,i,n,s){if(s=s||open("","_blank"),s&&(s.document.title=s.document.body.innerText="downloading..."),"string"==typeof t)return e(t,i,n)
var r="application/octet-stream"===t.type,a=/constructor/i.test(o.HTMLElement)||o.safari,h=/CriOS\/[\d]+/.test(navigator.userAgent)
if((h||r&&a)&&"undefined"!=typeof FileReader){var l=new FileReader
l.onloadend=function(){var t=l.result
t=h?t:t.replace(/^data:[^;]*;/,"data:attachment/file;"),s?s.location.href=t:location=t,s=null},l.readAsDataURL(t)}else{var u=o.URL||o.webkitURL,c=u.createObjectURL(t)
s?s.location=c:location.href=c,s=null,setTimeout(function(){u.revokeObjectURL(c)},4e4)}})
o.saveAs=s.saveAs=s,"undefined"!=typeof module&&(module.exports=s)}),function(t,e,i){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(t){L.Util.setOptions(this,t),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this.options.clusterPane||(this.options.clusterPane=L.Marker.prototype.options.pane),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd}
var e=L.DomUtil.TRANSITION&&this.options.animate
L.extend(this,e?this._withAnimation:this._noAnimation),this._markerCluster=e?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(t){if(t instanceof L.LayerGroup)return this.addLayers([t])
if(!t.getLatLng)return this._nonPointGroup.addLayer(t),this.fire("layeradd",{layer:t}),this
if(!this._map)return this._needsClustering.push(t),this.fire("layeradd",{layer:t}),this
if(this.hasLayer(t))return this
this._unspiderfy&&this._unspiderfy(),this._addLayer(t,this._maxZoom),this.fire("layeradd",{layer:t}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons()
var e=t,i=this._zoom
if(t.__parent)for(;e.__parent._zoom>=i;)e=e.__parent
return this._currentShownBounds.contains(e.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(t,e):this._animationAddLayerNonAnimated(t,e)),this},removeLayer:function(t){return t instanceof L.LayerGroup?this.removeLayers([t]):(t.getLatLng?this._map?t.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(t)),this._removeLayer(t,!0),this.fire("layerremove",{layer:t}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),t.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(t)&&(this._featureGroup.removeLayer(t),t.clusterShow&&t.clusterShow())):(!this._arraySplice(this._needsClustering,t)&&this.hasLayer(t)&&this._needsRemoving.push({layer:t,latlng:t._latlng}),this.fire("layerremove",{layer:t})):(this._nonPointGroup.removeLayer(t),this.fire("layerremove",{layer:t})),this)},addLayers:function(t,e){if(!L.Util.isArray(t))return this.addLayer(t)
var i,n=this._featureGroup,o=this._nonPointGroup,s=this.options.chunkedLoading,r=this.options.chunkInterval,a=this.options.chunkProgress,h=t.length,l=0,u=!0
if(this._map){var c=(new Date).getTime(),d=L.bind(function(){for(var p=(new Date).getTime();l<h;l++){if(s&&l%200==0){var _=(new Date).getTime()-p
if(r<_)break}if((i=t[l])instanceof L.LayerGroup)u&&(t=t.slice(),u=!1),this._extractNonGroupLayers(i,t),h=t.length
else if(i.getLatLng){if(!this.hasLayer(i)&&(this._addLayer(i,this._maxZoom),e||this.fire("layeradd",{layer:i}),i.__parent&&2===i.__parent.getChildCount())){var m=i.__parent.getAllChildMarkers(),f=m[0]===i?m[1]:m[0]
n.removeLayer(f)}}else o.addLayer(i),e||this.fire("layeradd",{layer:i})}a&&a(l,h,(new Date).getTime()-c),l===h?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(d,this.options.chunkDelay)},this)
d()}else for(var p=this._needsClustering;l<h;l++)(i=t[l])instanceof L.LayerGroup?(u&&(t=t.slice(),u=!1),this._extractNonGroupLayers(i,t),h=t.length):i.getLatLng?this.hasLayer(i)||p.push(i):o.addLayer(i)
return this},removeLayers:function(t){var e,i,n=t.length,o=this._featureGroup,s=this._nonPointGroup,r=!0
if(!this._map){for(e=0;e<n;e++)(i=t[e])instanceof L.LayerGroup?(r&&(t=t.slice(),r=!1),this._extractNonGroupLayers(i,t),n=t.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire("layerremove",{layer:i}))
return this}if(this._unspiderfy){this._unspiderfy()
var a=t.slice(),h=n
for(e=0;e<h;e++)(i=a[e])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(e=0;e<n;e++)(i=t[e])instanceof L.LayerGroup?(r&&(t=t.slice(),r=!1),this._extractNonGroupLayers(i,t),n=t.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire("layerremove",{layer:i}),o.hasLayer(i)&&(o.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire("layerremove",{layer:i}))
return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(t){t.off(this._childMarkerEventHandlers,this),delete t.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var t=new L.LatLngBounds
this._topClusterLevel&&t.extend(this._topClusterLevel._bounds)
for(var e=this._needsClustering.length-1;0<=e;e--)t.extend(this._needsClustering[e].getLatLng())
return t.extend(this._nonPointGroup.getBounds()),t},eachLayer:function(t,e){var i,n,o,s=this._needsClustering.slice(),r=this._needsRemoving
for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),n=s.length-1;0<=n;n--){for(i=!0,o=r.length-1;0<=o;o--)if(r[o].layer===s[n]){i=!1
break}i&&t.call(e,s[n])}this._nonPointGroup.eachLayer(t,e)},getLayers:function(){var t=[]
return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var e=null
return t=parseInt(t,10),this.eachLayer(function(i){L.stamp(i)===t&&(e=i)}),e},hasLayer:function(t){if(!t)return!1
var e,i=this._needsClustering
for(e=i.length-1;0<=e;e--)if(i[e]===t)return!0
for(e=(i=this._needsRemoving).length-1;0<=e;e--)if(i[e].layer===t)return!1
return!(!t.__parent||t.__parent._group!==this)||this._nonPointGroup.hasLayer(t)},zoomToShowLayer:function(t,e){"function"!=typeof e&&(e=function(){})
var i=function(){!t._icon&&!t.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",i,this),this.off("animationend",i,this),t._icon?e():t.__parent._icon&&(this.once("spiderfied",e,this),t.__parent.spiderfy()))}
t._icon&&this._map.getBounds().contains(t.getLatLng())?e():t.__parent._zoom<Math.round(this._map._zoom)?(this._map.on("moveend",i,this),this._map.panTo(t.getLatLng())):(this._map.on("moveend",i,this),this.on("animationend",i,this),t.__parent.zoomToBounds())},onAdd:function(t){var e,i,n
if(this._map=t,!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified"
for(this._featureGroup.addTo(t),this._nonPointGroup.addTo(t),this._gridClusters||this._generateInitialClusters(),this._maxLat=t.options.crs.projection.MAX_LATITUDE,e=0,i=this._needsRemoving.length;e<i;e++)(n=this._needsRemoving[e]).newlatlng=n.layer._latlng,n.layer._latlng=n.latlng
for(e=0,i=this._needsRemoving.length;e<i;e++)n=this._needsRemoving[e],this._removeLayer(n.layer,!0),n.layer._latlng=n.newlatlng
this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(t){t.off("zoomend",this._zoomEnd,this),t.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(t){for(var e=t;e&&!e._icon;)e=e.__parent
return e||null},_arraySplice:function(t,e){for(var i=t.length-1;0<=i;i--)if(t[i]===e)return t.splice(i,1),!0},_removeFromGridUnclustered:function(t,e){for(var i=this._map,n=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());o<=e&&n[e].removeObject(t,i.project(t.getLatLng(),e));e--);},_childMarkerDragStart:function(t){t.target.__dragStart=t.target._latlng},_childMarkerMoved:function(t){if(!this._ignoreMove&&!t.target.__dragStart){var e=t.target._popup&&t.target._popup.isOpen()
this._moveChild(t.target,t.oldLatLng,t.latlng),e&&t.target.openPopup()}},_moveChild:function(t,e,i){t._latlng=e,this.removeLayer(t),t._latlng=i,this.addLayer(t)},_childMarkerDragEnd:function(t){t.target.__dragStart&&this._moveChild(t.target,t.target.__dragStart,t.target._latlng),delete t.target.__dragStart},_removeLayer:function(t,e,i){var n=this._gridClusters,o=this._gridUnclustered,s=this._featureGroup,r=this._map,a=Math.floor(this._map.getMinZoom())
e&&this._removeFromGridUnclustered(t,this._maxZoom)
var h,l=t.__parent,u=l._markers
for(this._arraySplice(u,t);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)e&&l._childCount<=1?(h=l._markers[0]===t?l._markers[1]:l._markers[0],n[l._zoom].removeObject(l,r.project(l._cLatLng,l._zoom)),o[l._zoom].addObject(h,r.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent
delete t.__parent},_isOrIsParent:function(t,e){for(;e;){if(t===e)return!0
e=e.parentNode}return!1},fire:function(t,e,i){if(e&&e.layer instanceof L.MarkerCluster){if(e.originalEvent&&this._isOrIsParent(e.layer._icon,e.originalEvent.relatedTarget))return
t="cluster"+t}L.FeatureGroup.prototype.fire.call(this,t,e,i)},listens:function(t,e){return L.FeatureGroup.prototype.listens.call(this,t,e)||L.FeatureGroup.prototype.listens.call(this,"cluster"+t,e)},_defaultIconCreateFunction:function(t){var e=t.getChildCount(),i=" marker-cluster-"
return i+=e<10?"small":e<100?"medium":"large",new L.DivIcon({html:"<div><span>"+e+"</span></div>",className:"marker-cluster"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var t=this._map,e=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick;(e||n)&&this.on("clusterclick",this._zoomOrSpiderfy,this),i&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),t.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(t){for(var e=t.layer,i=e;1===i._childClusters.length;)i=i._childClusters[0]
i._zoom===this._maxZoom&&i._childCount===e._childCount&&this.options.spiderfyOnMaxZoom?e.spiderfy():this.options.zoomToBoundsOnClick&&e.zoomToBounds(),t.originalEvent&&13===t.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(t){var e=this._map
this._inZoomAnimation||(this._shownPolygon&&e.removeLayer(this._shownPolygon),2<t.layer.getChildCount()&&t.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(t.layer.getConvexHull(),this.options.polygonOptions),e.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var t=this.options.spiderfyOnMaxZoom,e=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,n=this._map;(t||i)&&this.off("clusterclick",this._zoomOrSpiderfy,this),e&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),n.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var t=this._getExpandedVisibleBounds()
this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),t),this._currentShownBounds=t}},_generateInitialClusters:function(){var t=Math.ceil(this._map.getMaxZoom()),e=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,n=i
"function"!=typeof i&&(n=function(){return i}),null!==this.options.disableClusteringAtZoom&&(t=this.options.disableClusteringAtZoom-1),this._maxZoom=t,this._gridClusters={},this._gridUnclustered={}
for(var o=t;e<=o;o--)this._gridClusters[o]=new L.DistanceGrid(n(o)),this._gridUnclustered[o]=new L.DistanceGrid(n(o))
this._topClusterLevel=new this._markerCluster(this,e-1)},_addLayer:function(t,e){var i,n,o=this._gridClusters,s=this._gridUnclustered,r=Math.floor(this._map.getMinZoom())
for(this.options.singleMarkerMode&&this._overrideMarkerIcon(t),t.on(this._childMarkerEventHandlers,this);r<=e;e--){i=this._map.project(t.getLatLng(),e)
var a=o[e].getNearObject(i)
if(a)return a._addChild(t),void(t.__parent=a)
if(a=s[e].getNearObject(i)){var h=a.__parent
h&&this._removeLayer(a,!1)
var l=new this._markerCluster(this,e,a,t)
o[e].addObject(l,this._map.project(l._cLatLng,e)),a.__parent=l
var u=t.__parent=l
for(n=e-1;n>h._zoom;n--)u=new this._markerCluster(this,n,u),o[n].addObject(u,this._map.project(a.getLatLng(),n))
return h._addChild(u),void this._removeFromGridUnclustered(a,e)}s[e].addObject(t,i)}this._topClusterLevel._addChild(t),t.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(t){t instanceof L.MarkerCluster&&t._iconNeedsUpdate&&t._updateIcon()})},_enqueue:function(t){this._queue.push(t),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var t=0;t<this._queue.length;t++)this._queue[t].call(this)
this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var t=Math.round(this._map._zoom)
this._processQueue(),this._zoom<t&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,t)):this._zoom>t?(this._animationStart(),this._animationZoomOut(this._zoom,t)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(t){var e=this._maxLat
return e!==i&&(t.getNorth()>=e&&(t._northEast.lat=1/0),t.getSouth()<=-e&&(t._southWest.lat=-1/0)),t},_animationAddLayerNonAnimated:function(t,e){if(e===t)this._featureGroup.addLayer(t)
else if(2===e._childCount){e._addToMap()
var i=e.getAllChildMarkers()
this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else e._updateIcon()},_extractNonGroupLayers:function(t,e){var i,n=t.getLayers(),o=0
for(e=e||[];o<n.length;o++)(i=n[o])instanceof L.LayerGroup?this._extractNonGroupLayers(i,e):e.push(i)
return e},_overrideMarkerIcon:function(t){return t.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[t]}})}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(t,e){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),t),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(t,e){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),t),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(t,e){this._animationAddLayerNonAnimated(t,e)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(t,e){var i,n=this._getExpandedVisibleBounds(),o=this._featureGroup,s=Math.floor(this._map.getMinZoom())
this._ignoreMove=!0,this._topClusterLevel._recursively(n,t,s,function(s){var r,a=s._latlng,h=s._markers
for(n.contains(a)||(a=null),s._isSingleParent()&&t+1===e?(o.removeLayer(s),s._recursivelyAddChildrenToMap(null,e,n)):(s.clusterHide(),s._recursivelyAddChildrenToMap(a,e,n)),i=h.length-1;0<=i;i--)r=h[i],n.contains(r._latlng)||o.removeLayer(r)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,e),o.eachLayer(function(t){t instanceof L.MarkerCluster||!t._icon||t.clusterShow()}),this._topClusterLevel._recursively(n,t,e,function(t){t._recursivelyRestoreChildPositions(e)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(n,t,s,function(t){o.removeLayer(t),t.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(t,e){this._animationZoomOutSingle(this._topClusterLevel,t-1,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,e,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),t,this._getExpandedVisibleBounds())},_animationAddLayer:function(t,e){var i=this,n=this._featureGroup
n.addLayer(t),e!==t&&(2<e._childCount?(e._updateIcon(),this._forceLayout(),this._animationStart(),t._setPos(this._map.latLngToLayerPoint(e.getLatLng())),t.clusterHide(),this._enqueue(function(){n.removeLayer(t),t.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(e,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,e,i){var n=this._getExpandedVisibleBounds(),o=Math.floor(this._map.getMinZoom())
t._recursivelyAnimateChildrenInAndAddSelfToMap(n,o,e+1,i)
var s=this
this._forceLayout(),t._recursivelyBecomeVisible(n,i),this._enqueue(function(){if(1===t._childCount){var r=t._markers[0]
this._ignoreMove=!0,r.setLatLng(r.getLatLng()),this._ignoreMove=!1,r.clusterShow&&r.clusterShow()}else t._recursively(n,i,o,function(t){t._recursivelyRemoveChildrenFromMap(n,o,e+1)})
s._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(e.body.offsetWidth)}}),L.markerClusterGroup=function(t){return new L.MarkerClusterGroup(t)},L.MarkerCluster=L.Marker.extend({initialize:function(t,e,i,n){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:t.options.clusterPane}),this._group=t,this._zoom=e,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),n&&this._addChild(n)},getAllChildMarkers:function(t){t=t||[]
for(var e=this._childClusters.length-1;0<=e;e--)this._childClusters[e].getAllChildMarkers(t)
for(var i=this._markers.length-1;0<=i;i--)t.push(this._markers[i])
return t},getChildCount:function(){return this._childCount},zoomToBounds:function(t){for(var e,i=this._childClusters.slice(),n=this._group._map,o=n.getBoundsZoom(this._bounds),s=this._zoom+1,r=n.getZoom();0<i.length&&s<o;){s++
var a=[]
for(e=0;e<i.length;e++)a=a.concat(i[e]._childClusters)
i=a}s<o?this._group._map.setView(this._latlng,s):o<=r?this._group._map.setView(this._latlng,r+1):this._group._map.fitBounds(this._bounds,t)},getBounds:function(){var t=new L.LatLngBounds
return t.extend(this._bounds),t},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(t,e){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(t),t instanceof L.MarkerCluster?(e||(this._childClusters.push(t),t.__parent=this),this._childCount+=t._childCount):(e||this._markers.push(t),this._childCount++),this.__parent&&this.__parent._addChild(t,!0)},_setClusterCenter:function(t){this._cLatLng||(this._cLatLng=t._cLatLng||t._latlng)},_resetBounds:function(){var t=this._bounds
t._southWest&&(t._southWest.lat=1/0,t._southWest.lng=1/0),t._northEast&&(t._northEast.lat=-1/0,t._northEast.lng=-1/0)},_recalculateBounds:function(){var t,e,i,n,o=this._markers,s=this._childClusters,r=0,a=0,h=this._childCount
if(0!==h){for(this._resetBounds(),t=0;t<o.length;t++)i=o[t]._latlng,this._bounds.extend(i),r+=i.lat,a+=i.lng
for(t=0;t<s.length;t++)(e=s[t])._boundsNeedUpdate&&e._recalculateBounds(),this._bounds.extend(e._bounds),i=e._wLatLng,n=e._childCount,r+=i.lat*n,a+=i.lng*n
this._latlng=this._wLatLng=new L.LatLng(r/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(t){t&&(this._backupLatlng=this._latlng,this.setLatLng(t)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(t,e,i){this._recursively(t,this._group._map.getMinZoom(),i-1,function(t){var i,n,o=t._markers
for(i=o.length-1;0<=i;i--)(n=o[i])._icon&&(n._setPos(e),n.clusterHide())},function(t){var i,n,o=t._childClusters
for(i=o.length-1;0<=i;i--)(n=o[i])._icon&&(n._setPos(e),n.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,e,i,n){this._recursively(t,n,e,function(o){o._recursivelyAnimateChildrenIn(t,o._group._map.latLngToLayerPoint(o.getLatLng()).round(),i),o._isSingleParent()&&i-1===n?(o.clusterShow(),o._recursivelyRemoveChildrenFromMap(t,e,i)):o.clusterHide(),o._addToMap()})},_recursivelyBecomeVisible:function(t,e){this._recursively(t,this._group._map.getMinZoom(),e,null,function(t){t.clusterShow()})},_recursivelyAddChildrenToMap:function(t,e,i){this._recursively(i,this._group._map.getMinZoom()-1,e,function(n){if(e!==n._zoom)for(var o=n._markers.length-1;0<=o;o--){var s=n._markers[o]
i.contains(s._latlng)&&(t&&(s._backupLatlng=s.getLatLng(),s.setLatLng(t),s.clusterHide&&s.clusterHide()),n._group._featureGroup.addLayer(s))}},function(e){e._addToMap(t)})},_recursivelyRestoreChildPositions:function(t){for(var e=this._markers.length-1;0<=e;e--){var i=this._markers[e]
i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(t-1===this._zoom)for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._restorePosition()
else for(var o=this._childClusters.length-1;0<=o;o--)this._childClusters[o]._recursivelyRestoreChildPositions(t)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(t,e,i,n){var o,s
this._recursively(t,e-1,i-1,function(t){for(s=t._markers.length-1;0<=s;s--)o=t._markers[s],n&&n.contains(o._latlng)||(t._group._featureGroup.removeLayer(o),o.clusterShow&&o.clusterShow())},function(t){for(s=t._childClusters.length-1;0<=s;s--)o=t._childClusters[s],n&&n.contains(o._latlng)||(t._group._featureGroup.removeLayer(o),o.clusterShow&&o.clusterShow())})},_recursively:function(t,e,i,n,o){var s,r,a=this._childClusters,h=this._zoom
if(e<=h&&(n&&n(this),o&&h===i&&o(this)),h<e||h<i)for(s=a.length-1;0<=s;s--)r=a[s],t.intersects(r._bounds)&&r._recursively(t,e,i,n,o)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var t=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered)
return delete this.options.opacityWhenUnclustered,t}}),L.DistanceGrid=function(t){this._cellSize=t,this._sqCellSize=t*t,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(t,e){var i=this._getCoord(e.x),n=this._getCoord(e.y),o=this._grid,s=o[n]=o[n]||{},r=s[i]=s[i]||[],a=L.Util.stamp(t)
this._objectPoint[a]=e,r.push(t)},updateObject:function(t,e){this.removeObject(t),this.addObject(t,e)},removeObject:function(t,e){var i,n,o=this._getCoord(e.x),s=this._getCoord(e.y),r=this._grid,a=r[s]=r[s]||{},h=a[o]=a[o]||[]
for(delete this._objectPoint[L.Util.stamp(t)],i=0,n=h.length;i<n;i++)if(h[i]===t)return h.splice(i,1),1===n&&delete a[o],!0},eachObject:function(t,e){var i,n,o,s,r,a,h=this._grid
for(i in h)for(n in r=h[i])for(o=0,s=(a=r[n]).length;o<s;o++)t.call(e,a[o])&&(o--,s--)},getNearObject:function(t){var e,i,n,o,s,r,a,h,l=this._getCoord(t.x),u=this._getCoord(t.y),c=this._objectPoint,d=this._sqCellSize,p=null
for(e=u-1;e<=u+1;e++)if(o=this._grid[e])for(i=l-1;i<=l+1;i++)if(s=o[i])for(n=0,r=s.length;n<r;n++)a=s[n],(h=this._sqDist(c[L.Util.stamp(a)],t))<d&&(d=h,p=a)
return p},_getCoord:function(t){return Math.floor(t/this._cellSize)},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y
return i*i+n*n}},L.QuickHull={getDistant:function(t,e){var i=e[1].lat-e[0].lat
return(e[0].lng-e[1].lng)*(t.lat-e[0].lat)+i*(t.lng-e[0].lng)},findMostDistantPointFromBaseLine:function(t,e){var i,n,o,s=0,r=null,a=[]
for(i=e.length-1;0<=i;i--)n=e[i],0<(o=this.getDistant(n,t))&&(a.push(n),s<o&&(s=o,r=n))
return{maxPoint:r,newPoints:a}},buildConvexHull:function(t,e){var i=[],n=this.findMostDistantPointFromBaseLine(t,e)
return n.maxPoint?i=(i=i.concat(this.buildConvexHull([t[0],n.maxPoint],n.newPoints))).concat(this.buildConvexHull([n.maxPoint,t[1]],n.newPoints)):[t[0]]},getConvexHull:function(t){var e,i=!1,n=!1,o=!1,s=!1,r=null,a=null,h=null,l=null,u=null,c=null
for(e=t.length-1;0<=e;e--){var d=t[e];(!1===i||d.lat>i)&&(i=(r=d).lat),(!1===n||d.lat<n)&&(n=(a=d).lat),(!1===o||d.lng>o)&&(o=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=n!==i?(c=a,r):(c=l,h),[].concat(this.buildConvexHull([c,u],t),this.buildConvexHull([u,c],t))}},L.MarkerCluster.include({getConvexHull:function(){var t,e,i=this.getAllChildMarkers(),n=[]
for(e=i.length-1;0<=e;e--)t=i[e].getLatLng(),n.push(t)
return L.QuickHull.getConvexHull(n)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var t,e=this.getAllChildMarkers(),i=this._group._map.latLngToLayerPoint(this._latlng)
this._group._unspiderfy(),this._group._spiderfied=this,t=e.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(e.length,i):(i.y+=10,this._generatePointsCircle(e.length,i)),this._animationSpiderfy(e,t)}},unspiderfy:function(t){this._group._inZoomAnimation||(this._animationUnspiderfy(t),this._group._spiderfied=null)},_generatePointsCircle:function(t,e){var i,n,o=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+t)/this._2PI,s=this._2PI/t,r=[]
for(i=(r.length=t)-1;0<=i;i--)n=this._circleStartAngle+i*s,r[i]=new L.Point(e.x+o*Math.cos(n),e.y+o*Math.sin(n))._round()
return r},_generatePointsSpiral:function(t,e){var i,n=this._group.options.spiderfyDistanceMultiplier,o=n*this._spiralLengthStart,s=n*this._spiralFootSeparation,r=n*this._spiralLengthFactor*this._2PI,a=0,h=[]
for(i=(h.length=t)-1;0<=i;i--)a+=s/o+5e-4*i,h[i]=new L.Point(e.x+o*Math.cos(a),e.y+o*Math.sin(a))._round(),o+=r/a
return h},_noanimationUnspiderfy:function(){var t,e,i=this._group,n=i._map,o=i._featureGroup,s=this.getAllChildMarkers()
for(i._ignoreMove=!0,this.setOpacity(1),e=s.length-1;0<=e;e--)t=s[e],o.removeLayer(t),t._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng),t.setZIndexOffset&&t.setZIndexOffset(0),t._spiderLeg&&(n.removeLayer(t._spiderLeg),delete t._spiderLeg)
i.fire("unspiderfied",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(t,e){var i,n,o,s,r=this._group,a=r._map,h=r._featureGroup,l=this._group.options.spiderLegPolylineOptions
for(r._ignoreMove=!0,i=0;i<t.length;i++)s=a.layerPointToLatLng(e[i]),n=t[i],o=new L.Polyline([this._latlng,s],l),a.addLayer(o),n._spiderLeg=o,n._preSpiderfyLatlng=n._latlng,n.setLatLng(s),n.setZIndexOffset&&n.setZIndexOffset(1e6),h.addLayer(n)
this.setOpacity(.3),r._ignoreMove=!1,r.fire("spiderfied",{cluster:this,markers:t})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(t,e){var n,o,s,r,a,h,l=this,u=this._group,c=u._map,d=u._featureGroup,p=this._latlng,_=c.latLngToLayerPoint(p),m=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),g=f.opacity
for(g===i&&(g=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),m?(f.opacity=0,f.className=(f.className||"")+" leaflet-cluster-spider-leg"):f.opacity=g,u._ignoreMove=!0,n=0;n<t.length;n++)o=t[n],h=c.layerPointToLatLng(e[n]),s=new L.Polyline([p,h],f),c.addLayer(s),o._spiderLeg=s,m&&(a=(r=s._path).getTotalLength()+.1,r.style.strokeDasharray=a,r.style.strokeDashoffset=a),o.setZIndexOffset&&o.setZIndexOffset(1e6),o.clusterHide&&o.clusterHide(),d.addLayer(o),o._setPos&&o._setPos(_)
for(u._forceLayout(),u._animationStart(),n=t.length-1;0<=n;n--)h=c.layerPointToLatLng(e[n]),(o=t[n])._preSpiderfyLatlng=o._latlng,o.setLatLng(h),o.clusterShow&&o.clusterShow(),m&&((r=(s=o._spiderLeg)._path).style.strokeDashoffset=0,s.setStyle({opacity:g}))
this.setOpacity(.3),u._ignoreMove=!1,setTimeout(function(){u._animationEnd(),u.fire("spiderfied",{cluster:l,markers:t})},200)},_animationUnspiderfy:function(t){var e,i,n,o,s,r,a=this,h=this._group,l=h._map,u=h._featureGroup,c=t?l._latLngToNewLayerPoint(this._latlng,t.zoom,t.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(),p=L.Path.SVG
for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(e=d[i])._preSpiderfyLatlng&&(e.closePopup(),e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng,r=!0,e._setPos&&(e._setPos(c),r=!1),e.clusterHide&&(e.clusterHide(),r=!1),r&&u.removeLayer(e),p&&(s=(o=(n=e._spiderLeg)._path).getTotalLength()+.1,o.style.strokeDashoffset=s,n.setStyle({opacity:0})))
h._ignoreMove=!1,setTimeout(function(){var t=0
for(i=d.length-1;0<=i;i--)(e=d[i])._spiderLeg&&t++
for(i=d.length-1;0<=i;i--)(e=d[i])._spiderLeg&&(e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),1<t&&u.removeLayer(e),l.removeLayer(e._spiderLeg),delete e._spiderLeg)
h._animationEnd(),h.fire("unspiderfied",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(t){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(t))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(t){this._spiderfied&&this._spiderfied.unspiderfy(t)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(t){t._spiderLeg&&(this._featureGroup.removeLayer(t),t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),this._map.removeLayer(t._spiderLeg),delete t._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(t){return t?t instanceof L.MarkerClusterGroup?t=t._topClusterLevel.getAllChildMarkers():t instanceof L.LayerGroup?t=t._layers:t instanceof L.MarkerCluster?t=t.getAllChildMarkers():t instanceof L.Marker&&(t=[t]):t=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(t),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(t),this},_flagParentsIconsNeedUpdate:function(t){var e,i
for(e in t)for(i=t[e].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(t){var e,i
for(e in t)i=t[e],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(t,e){var i=this.options.icon
return L.setOptions(i,t),this.setIcon(i),e&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document),functionRun.push(function(){var t={onAdd:function(t){var e=this
this._fOnClick=this.onClick.bind(this),e.wikiPediaLayerGroup=L.layerGroup().addTo(o.map),L.GridLayer.prototype.onAdd.call(e,t),e.render(),o.mapContainer.on("click","*[data-href]",this._fOnClick),this._fRenderDelay=this.renderDelay.bind(this),t.on("dragend",this._fRenderDelay).on("zoomend",this._fRenderDelay)},onRemove:function(t){o.map.removeLayer(this.wikiPediaLayerGroup),this.cache=this.pageOnMap=[],o.mapContainer.off("click","a[data-href]",this._fOnClick),t.off("dragend",this._fRenderDelay).off("zoomend",this._fRenderDelay)},inRadius:function(t,e){for(var i=0;i<this.cache.length;i++)if(111.2*Math.sqrt(Math.pow(this.cache[i][0]-t,2)+Math.pow((this.cache[i][1]-e)*Math.cos(Math.PI*this.cache[i][0]/180),2))<4)return!0
return!1},renderDelay:function(t){clearTimeout(this.renderTimeOut),this.renderTimeOut=setTimeout(this.render.bind(this),1e3)},render:function(){var t=this,e=L.divIcon({html:'<span class="glyphicon glyphicon-map-marker"></span>'}),i=o.map.getCenter()
o.map.getZoom()<9||t.inRadius(i.lat,i.lng)||function(n,s){loader(),t.paramsList.gscoord=i.lat+"|"+i.lng,$.post(t.wikiUrl,t.paramsList,function(i){var r,a=new L.MarkerClusterGroup
if(killloader(),t.cache.push([n,s]),i.query){i=i.query.geosearch
for(var h=0;h<i.length;h++)-1===t.pageOnMap.indexOf(i[h].pageid)&&(r=L.marker([i[h].lat,i[h].lon],{icon:e}).bindPopup('<div class="loader"></div>',{pageid:i[h].pageid,maxWidth:250,minWidth:150}),a.addLayer(r),o.isDesctop&&r.bindTooltip('<div class="popup-logo '+t.classId+'"></div>&nbsp;'+i[h].title.replace("File:",""),{sticky:!0}),t.pageOnMap.push(i[h].pageid))
a.addTo(t.wikiPediaLayerGroup).on("popupopen",function(e){e.popup&&e.popup.options&&e.popup.options.pageid&&!e.popup.options.loaded&&(t.paramsPage.pageids=e.popup.options.pageid,$.post(t.wikiUrl,t.paramsPage,function(i){var n="Error"
i&&i.query.pages&&(e.popup.options.loaded=!0,i=i.query.pages[Object.keys(i.query.pages)[0]],n=t.genPopupContent(i)),e.popup.setContent(n).update()}))})}},"json")}(i.lat,i.lng)},onClick:function(t){o.winOpen($(t.target).data("href"))}},e={wikiPediaLayerGroup:null,cache:[],pageOnMap:[],classId:"wikipedia",wikiUrl:"https://"+lng+".wikipedia.org/w/api.php",paramsList:{origin:"*",action:"query",list:"geosearch",gsradius:1e4,gslimit:500,format:"json"},paramsPage:{origin:"*",action:"query",prop:"pageimages|extracts",exintro:!0,exchars:90,explaintext:!0,format:"json"},genPopupContent:function(t){return'<a data-href="https://'+lng+".m.wikipedia.org/?curid="+t.pageid+'"><div class="popup-logo '+this.classId+'"></div>&nbsp;'+t.title+'</a><div class="popup-content-box">'+(t.thumbnail?'<div class="popup-content-img" style="background-image:url('+t.thumbnail.source+')"></div>':"")+(t.extract?t.extract:t.title)+"</div>"}},n={wikiPediaLayerGroup:null,cache:[],pageOnMap:[],wikiUrl:"https://commons.wikimedia.org/w/api.php",classId:"wikimedia",paramsList:{origin:"*",action:"query",list:"geosearch",gsprimary:"all",gsnamespace:6,gsradius:1e4,gslimit:500,format:"json"},paramsPage:{origin:"*",action:"query",prop:"imageinfo",iiprop:"url|extmetadata|dimensions",exintro:!0,exchars:90,iiurlwidth:320,explaintext:!0,format:"json"},genPopupContent:function(t){return'<a data-href="https://commons.m.wikimedia.org/w/index.php?curid='+t.pageid+'"><div class="popup-logo '+this.classId+'"></div>&nbsp;'+t.imageinfo[0].extmetadata.ObjectName.value+'</a><div class="popup-content-box"><img data-href="https://commons.m.wikimedia.org/w/index.php?curid='+t.pageid+'" src="'+t.imageinfo[0].thumburl+'"></div>'}}
e.__proto__=t,L.TileLayer.wikiPediaLayer=L.GridLayer.extend(e),n.__proto__=t,L.TileLayer.wikiMediaLayer=L.GridLayer.extend(n),L.TileLayer.wikiLayer=L.GridLayer.extend({wikiMapiaLayerGroup:null,lang:{ru:1,uk:37},onAdd:function(t){this.blockRender=!1,this.wikiMapiaLayerGroup=L.layerGroup().addTo(o.map),L.GridLayer.prototype.onAdd.call(this,t),this.createPolygon(),this._fDragEnd=this.dragEnd.bind(this),this._fDragStart=this.dragStart.bind(this),this._fZoomEnd=this.zoomEnd.bind(this),this._fZoomStart=this.zoomStart.bind(this),this._fOnClick=this.onClick.bind(this),o.mapContainer.on("click",".wikipoly[data-id]",this._fOnClick),t.on("dragstart",this._fDragStart).on("dragend",this._fDragEnd).on("zoomstart",this._fZoomStart).on("zoomend",this._fZoomEnd).on("baselayerchange",this.changeBaseLayer)},onRemove:function(t){this.blockRender=!0,o.map.removeLayer(this.wikiMapiaLayerGroup),o.mapContainer.off("click",".wikipoly[data-id]",this._fOnClick),t.off("dragstart",this._fDragStart).off("dragend",this._fDragEnd).off("zoomstart",this._fZoomStart).off("zoomend",this._fZoomEnd).off("baselayerchange",this.changeBaseLayer)},changeBaseLayer:function(t){var e=o.layers[t.layer.options.index].options.polyColor
o.mapContainer.find("path.wikipoly").attr("fill",e).attr("stroke",e)},zoomStart:function(t){this.blockRender=!0},zoomEnd:function(t){var e=this
clearTimeout(e.zoomTimeOut),e.zoomTimeOut=setTimeout(function(){e.blockRender=!1,L.GridLayer.prototype.redraw.call(e,t),e.createPolygon()},1200)},dragStart:function(){this.dragProgress=!0},dragEnd:function(t){var e=this
clearTimeout(e.dragTimeOut),e.dragTimeOut=setTimeout(function(){e.dragProgress=!1,e.createPolygon()},600)},isMaxZoom:function(t){return t<(o.isDesctop?9:10)},onClick:function(t){this.dragProgress||this.blockRender||o.winOpen("http://wikimapia.org/"+$(t.target).data("id")+"/"+lng+"/")},createTile:function(t){var e,i=this,n=L.DomUtil.create("canvas","leaflet-tile-wiki"),s=t.x,r=t.y,a=t.z,h=[]
if(!i.isMaxZoom(t.z)&&!this.blockRender){for(o.casheWiki[t.z]=o.casheWiki[t.z]||{},r=(1<<a)-r-1,a+=1;a;)h.push((1&s)+2*(1&r)),s>>=1,r>>=1,a--
e=h.reverse().slice(0,t.z-1).join("").replace(/(\d{3})(?!$)/g,"$1/"),o.casheWiki[t.z][e]||function(t,e){$.when($.post("/plugins/61/wiki.php",{z:t})).then(function(n){var s=n.split("\n"),r=e-(17-e)
s.splice(700)
for(var a=0;a<s.length;a++)s[a]=s[a].split("|1|"),s[a].length>2&&(s[a][0]=s[a][0]+"|1|"+s[a][1],s[a][1]=s[a][2],delete s[a][2]),s[a][0]=s[a][0].split("|"),!s[a]||!s[a][0][5]||!s[a][0][2]||s[a][0][3]<e-7||s[a][0][3]>r?delete s[a]:s[a][0][2]=s[a][0][2].split(",").map(function(t){return parseInt(t)/1e7})
o.casheWiki[e][t]=s,o.map&&e==o.map.getZoom()&&i.createPolygon(),n=s=a=r=null})}(e,t.z),o.casheWiki[t.z][e]=o.casheWiki[t.z][e]||!0}return n},createPolygon:function(){var t,e=o.map.getBounds(),i=[e.getWest(),e.getEast(),e.getSouth(),e.getNorth()],n=[],s=[],r=o.map.getZoom(),a=r>16
if(!this.blockRender&&!this.isMaxZoom(r)){this.wikiMapiaLayerGroup.clearLayers()
for(var h in o.casheWiki[r])o.casheWiki[r].hasOwnProperty(h)&&$.isArray(o.casheWiki[r][h])&&(n=n.concat(o.casheWiki[r][h]))
for(var l=0;l<n.length;l++)if(n[l]){var u=n[l][0][2][0]>i[0]&&n[l][0][2][0]<i[1]&&n[l][0][2][2]>i[2]&&n[l][0][2][2]<i[3],c=n[l][0][2][1]>i[0]&&n[l][0][2][1]<i[1]&&n[l][0][2][3]>i[2]&&n[l][0][2][3]<i[3],d=a?u||c:u&&c,p=L.PolylineUtil.wikiDecode(n[l][1]),_=this.prepareTitle(n[l][0][5])+" ("+this.polygonArea(p)+")"
if(-1==s.indexOf(n[l][0][0])&&d&&(t=L.polygon(p,{classOpt:"wikipoly",color:o.layers[o.currentBaseLayer].options.polyColor,weight:1,opacity:1,fillOpacity:.05,dataId:o.isDesctop?n[l][0][0]:"",wikiLayer:!0}).addTo(this.wikiMapiaLayerGroup),o.isDesctop?t.bindTooltip('<div class="popup-logo wikimapia"></div>&nbsp;'+_,{sticky:!0}):t.bindPopup('<a class="wikipoly" data-id="'+n[l][0][0]+'"><div class="popup-logo wikimapia"></div>&nbsp;'+_+"</a>"),s.push(n[l][0][0]),s.length>200))break}n.length>2e4&&(o.casheWiki[r]={})}},prepareTitle:function(t){var e={}
try{for(var i=t.split(""),n=0;n<i.length;n++){var o=i[n]
if(o.length>2){e[(o.charCodeAt(0)-32).toString()]=o.substring(1)}}}catch(t){!0,t}return e[this.lang[lng]]||e[Object.keys(e)[0]]},polygonArea:function(t){var e,i,n=t.length,o=0,s=Math.PI/180,r="m"
if(n>2){for(var a=0;a<n;a++)e=t[a],i=t[(a+1)%n],o+=(i[1]-e[1])*s*(2+Math.sin(e[0]*s)+Math.sin(i[0]*s))
o=Math.abs(6378137*o*6378137/2)}return o>1e5&&(o/=1e6,r="km"),(o>10?Math.round(o):o.toFixed(2))+" "+r+"<sup>2</sup>"}})
var o={map:null,mapContainer:$("#map_canvas"),casheWiki:{},currentBaseLayer:2,shareInputEl:"#leaflet-menu-map-url :text",layers:[L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{index:0,name:"Street",maxZoom:18,polyColor:"#1d0029",attribution:'&copy; <span www="https://www.openstreetmap.org/copyright">OpenStreetMap</span>'}),L.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",{index:1,name:"Topo",maxZoom:17,polyColor:"#000036",attribution:'Map data: &copy; <a www="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a www="http://viewfinderpanoramas.org">SRTM</a> | Map style: &copy; <a www="https://opentopomap.org">OpenTopoMap</a> (<a www="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'}),L.layerGroup([L.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"}),L.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/rastertiles/voyager_only_labels/{z}/{x}/{y}{r}.png",{attribution:'&copy; <span www="https://cartodb.com/attributions">CartoDB</span>',subdomains:"abcd"})],{index:2,maxZoom:18,polyColor:"#E6B801",name:"Satelite"}),L.tileLayer("https://maps.heigit.org/openmapsurfer/tiles/adminb/webmercator/{z}/{x}/{y}.png",{index:3,name:"Adminb",attribution:""}),L.layerGroup([new L.TileLayer.wikiLayer({index:4,name:"Wiki"}),L.tileLayer("https://{s}{hash}.wikimapia.org/?x={x}&y={y}&zoom={z}&r=4263933&type=hybrid&lng=37",{hash:function(t){return t.x%4+t.y%4*4},subdomains:"i"})],{name:"Wiki",minZoom:9,attribution:'<span www="http://wikimapia.org/">Wikimapia.org</span>'}),new L.TileLayer.wikiPediaLayer({index:5,minZoom:9,name:"WikiPedia",attribution:'<span www="http://wikipedia.org/">Wikipedia.org</span>'}),new L.TileLayer.wikiMediaLayer({index:6,minZoom:9,name:"WikiMedia",attribution:'<span www="https://www.wikimedia.org">Wikimedia.org</span>'})],setIsDesctop:function(){this.isDesctop=window.innerWidth>768},init:function(){var t=this
this.mapContainer.hasClass("leaflet-container")||(t.setIsDesctop(),t.initHashPreMap(),t.map=L.map("map_canvas",{center:[_gVar.mapLat,_gVar.mapLng],zoom:_gVar.mapZoom,zoomControl:!1}),t.initHash(),t.initLayers(),t.initControls(),_gVar.mapNoPage?($(".leaflet-control-container .leaflet-top.leaflet-left").remove(),this.mapContainer.find("ul.share").data("type","map").find("a").socialShare()):t.routeInit(),t.initEvents(),t.initMarkers(),this.mapContainer.find(".loader").remove())},initLayers:function(){var t=this,e={},i={}
t.getMapsLayersString().split(",").map(function(e){e<3&&(t.currentBaseLayer=e),t.map.addLayer(t.layers[e])}),e[_gVar.mapText[0]]=this.layers[0],e[_gVar.mapText[1]]=this.layers[2],e[_gVar.mapText[2]]=this.layers[1],i["Wikipedia ("+_gVar.mapText[8]+")"]=this.layers[5],i["Wikimedia ("+_gVar.mapText[9]+")"]=this.layers[6],i.Wikimapia=this.layers[4],L.control.layers(e,i,{collapsed:!this.isDesctop}).addTo(this.map)},initControls:function(){var t=this,e=$(".leaflet-top.leaflet-right .leaflet-control-layers.leaflet-control")
this.map.addControl(new L.Control.Fullscreen({position:"bottomright",title:{false:_gVar.mapText[4],true:_gVar.mapText[5]}})),L.control.scale({imperial:!1,position:"bottomleft"}).addTo(this.map),L.control.zoom({position:"bottomleft"}).addTo(this.map),L.control.custom({position:"topleft",content:'<div class="input-group'+(t.isDesctop?"":" no-road")+'"><span class="input-group-addon glyphicon glyphicon-road"></span><input class="form-control city-search city-search-main dropdown-offset" data-fixed="#map_canvas" data-done="routerMapDone" id="map-router" type="text" placeholder="'+_gVar.mapText[6]+'"/></div>'}).addTo(this.map),$(".leaflet-top.leaflet-left .glyphicon-road").click(function(){$(this).parent().toggleClass("no-road")}),$(".leaflet-control-fullscreen-button").html('<span class="glyphicon glyphicon-fullscreen"></span>')
var i=$('<span class="glyphicon glyphicon-remove"></span>'),n=$('<span class="glyphicon glyphicon-cog"></span>'),o=$("#leaflet-menu")
i.click(function(){e.removeClass("leaflet-control-layers-expanded"),sstorage("mapLayerMenu",1)}),n.click(function(){sstorage("mapLayerMenu","")}),$(".leaflet-control-layers-toggle").append(n).parent().addClass("leaflet-bar"),$(".leaflet-control-layers-list").append(o.html()).prepend(i),o.remove(),$(t.shareInputEl).val(_gVar.mapNoPage?getUrl(!0)+"#onmap":getUrl()),_gVar.mapNoPage&&t.linkGen(),sstorage("mapLayerMenu")&&t.isDesctop&&e.removeClass("leaflet-control-layers-expanded"),L.Browser.ie||L.Browser.edge?$(".leaflet-control-layers-list .leaflet-control-layers-save").remove():$(".leaflet-control-layers-list .leaflet-control-layers-save .save-map").click(function(){t.printMap()}),$("a[data-switch-map]").click(function(){var e=t.layers[$(this).attr("data-switch-map")]
e&&(t.map.hasLayer(e)||(t.map.removeLayer(t.layers[t.currentBaseLayer]),t.map.addLayer(e)),$(document).scrollTop($(t.mapContainer).offset().top-100))})},initEvents:function(){var t=this
this.map.on("fullscreenchange",function(){var e=t.map.isFullscreen(),i=$("#adder_map-router")
$(".leaflet-control-fullscreen-button").html('<span class="glyphicon glyphicon-'+(e?"resize-small":"fullscreen")+'"></span>'),e?t.mapContainer.append($(".progress.alles").clone()):t.mapContainer.find("progress.alles").remove(),i.length&&i.css({"max-height":t.mapContainer.height()-35-i.position().top})}).on("baselayerchange",function(e){t.currentBaseLayer=e.layer.options.index,t.map.setMaxZoom(e.layer.options.maxZoom),t.saveMapState(e)}).on("overlayadd",t.saveMapState).on("overlayremove",t.saveMapState).on("zoomend",t.linkGen).on("moveend",t.linkGen).on("resize",t.setIsDesctop)},initMarkers:function(){if(_gVar.mapMarkers){for(var t=L.divIcon({html:'<div class="text-icon leaflet-popup-content-wrapper ellips">'+(_gVar.mapMarkers.icon?'<img src="'+_gVar.mapMarkers.icon+'">':"")+_gVar.mapMarkers.title+'<div class="leaflet-popup-tip-container"><div class="leaflet-popup-tip"></div></div></div>'}),e=[],i=0;i<_gVar.mapMarkers.items.length;i++)_gVar.mapMarkers.items[i][0]&&(e.push([_gVar.mapMarkers.items[i][0],_gVar.mapMarkers.items[i][1]]),L.marker([_gVar.mapMarkers.items[i][0],_gVar.mapMarkers.items[i][1]],{icon:t}).addTo(this.map).bindPopup("<h4>"+_gVar.mapMarkers.title+'</h4><div class="popup-content-box">'+(_gVar.mapMarkers.icon?'<div class="popup-content-img" style="background-image:url('+_gVar.mapMarkers.icon+')"></div>':"")+"<div>"+_gVar.mapMarkers.items[i][2]+"</div></div>",{maxWidth:280,minWidth:250}))
this.hashParams&&this.hashParams.m||this.map.fitBounds(_gVar.mapMarkerSetCenter||e,{animate:!1,padding:[40,40],maxZoom:17})}},initHashPreMap:function(){var t=this
if(location.hash){if(this.hashParams=location.hash.replace("#","").split("&").map(function(t){return t=t.split("="),this[t[0]]=t[1],this}.bind({}))[0],this.hashParams.l){var e=this.hashParams.l.split(",")
e=e.filter(function(e){return!!t.layers[parseInt(e)]}),_gVar.mapSelectLayer=e.join(","),lstorage("mapLayer",_gVar.mapSelectLayer)}}else _gVar.mapSelectLayer&&lstorage("mapLayer",_gVar.mapSelectLayer)},initHash:function(){var t=this
if(t.hashParams){if(t.hashParams.c){var e=t.hashParams.c.split(",")
4==e.length?(e=e.map(function(t){return parseFloat(t)||0}),t.map.fitBounds([[e[0],e[1]],[e[2],e[3]]],{animate:!1})):delete t.hashParams.c,setTimeout(t.linkGen.apply(t),1e3)}if(t.hashParams.m)try{_gVar.mapMarkers=JSON.parse(decodeURIComponent(t.hashParams.m))}catch(t){}}},saveMapState:function(t){var e=[]
t.target.eachLayer(function(t){void 0!==t.options.index&&e.push(t.options.index)}),lstorage("mapLayer",e.join(",")),o.linkGen(),gtag("event","Map",{event_category:"changeLayer",event_label:t.layer.options.name+(t.overlay?"_"+t.type:"")})},linkGen:function(){var t,e=$("#cngLangLink"),i="#l="+o.getMapsLayersString()+"&c="+o.map.getBounds().toBBoxString()
if(_gVar.mapMarkers)try{i+="&m="+encodeURIComponent(JSON.stringify(_gVar.mapMarkers))}catch(t){}t=(_gVar.mapNoPage?location.origin+encodeURI(_gVar.mapURl):getUrl()).replace(location.hash,"")+i,_gVar.mapNoPage?o.mapContainer.find("ul.share").data("shareurl",t):($(o.shareInputEl).val(t),e.length&&e.attr("href",e.attr("href").replace(/#.+/,"")+i),historep(null,"",t))},winOpen:function(t){(self.windowWikiReference=window.open(t,o.isDesctop?"Details":"_blank",o.isDesctop?"resizable,scrollbars,status,height=500,width=500,top=100,left="+(window.innerWidth-500)/2:""))&&self.windowWikiReference.focus()},printMap:function(){var t=this
loader()||domtoimage.toPng(this.mapContainer[0],{width:this.mapContainer.width(),height:this.mapContainer.height(),filter:function(t){if($(t).hasClass("leaflet-control-container"))return!1
var e=$(t).attr("src")
return!e||-1==e.indexOf("wikimapia.org")}}).then(function(e){killloader()
for(var i=atob(e.split(",")[1]),n=new ArrayBuffer(i.length),o=new DataView(n),s=new Date,r=0;r<i.length;r++)o.setUint8(r,i.charCodeAt(r))
saveAs(new Blob([n],{type:e.split(",")[0].split(":")[1].split(";")[0]}),"MAP_"+location.hostname.replace(/\..+/,"")+"_"+s.getTime()+".png"),gtag("event","Map",{event_category:"saveImg",event_label:t.currentBaseLayer.toString()})}).catch(function(t){throw killloader(),"Operation failed "+t.message})},getMapsLayersString:function(){return lstorage("mapLayer")||_gVar.mapSelectLayer||this.currentBaseLayer.toString()},routeInit:function(){if(this.routeTableInit(),_gVar.polyArr&&_gVar.polyArr.length){var t,e,n=[],o=_gVar.polyArr.length,s=L.divIcon({html:'<span class="glyphicon glyphicon-map-marker"></span>'})
for(i=0;i<o;i++)n=n.concat(L.Polyline.fromEncoded(_gVar.polyArr[i]).getLatLngs())
e=n.length-1,t=L.polyline(n,{color:"#2196F3",weight:7,opacity:.8}).addTo(this.map),this.hashParams&&this.hashParams.c||this.map.fitBounds(t.getBounds(),{animate:!1}),L.marker([n[0].lat,n[0].lng],{icon:s}).addTo(this.map),L.marker([n[e].lat,n[e].lng],{icon:s}).addTo(this.map)}if(2==_gVar.mapCityId.length){var r=$('tr[id="'+_gVar.mapCityId[0]+"_"+_gVar.mapCityId[1]+'"]')
r.removeClass("info").addClass("danger"),$('.nav.nav-tabs a[href="#'+r.closest(".tab-pane").attr("id")+'"]').click()}},routeTableInit:function(){$("td a[knowd]").click(function(){gtag("event","Map",{event_category:"rout",event_label:$(this).attr("knowd")}),window.location=$(this).closest("tr").find("td:first a").attr("href")})
var t,e=!0,i=sstorage("map_table_sort")
$("table.table th").click(function(){var i=$(this).index()
t!=i&&(e=!0),sstorage("map_table_sort",i+","+(e?"1":"")),$("table.table").each(function(){var t=$(this).find("th:eq("+i+")"),n=t.closest("table")
n.find("td").filter(function(){return $(this).index()===i}).sortElements(function(t,n){var o
return t=$.text([t]),n=$.text([n]),i?(t=parseInt(t),n=parseInt(n),isNaN(t)&&(t=e?0:99999),isNaN(n)&&(n=e?0:99999),o=t>n):o=t.localeCompare(n)>0,t==n?0:o?e?-1:1:e?1:-1},function(){return this.parentNode})
var o=t.find(".caret")
o.length||(n.find(".caret").remove(),t.append(' <span class="caret"></span>'),o=t.find(".caret")),o.toggleClass("up",!e),n.find("tr:not(:first)").each(function(){$(this).toggleClass("info",!Boolean($(this).index()%2))})}),t=i,e=!e}),jQuery.fn.sortElements=function(){var t=[].sort
return function(e,i){i=i||function(){return this}
var n=this.map(function(){var t=i.call(this),e=t.parentNode,n=e.insertBefore(document.createTextNode(""),t.nextSibling)
return function(){e.insertBefore(this,n),e.removeChild(n)}})
return t.call(this,e).each(function(t){n[t].call(i.call(this))})}}(),i&&(i=i.split(","),i[1]||(e=Boolean(i[1]),t=parseInt(i[0])),$("table.table th:eq("+i[0]+")").trigger("click"))}}
o.init(),_gVar.maps=o})
