import{aF as tv,aG as rv,aH as ov,aI as iv,aJ as nv,aK as av,aL as sv,aM as uv,aN as pv,aO as lv,aP as cv,aQ as dv,aR as yv,aS as hv,aT as fv,aU as mv,aV as _v,aW as gv,Q as vv,aX as Ev,aY as xv,aZ as Pv,a_ as H,a$ as _t,b0 as bv,b1 as Av}from"./antd-B7v2hwFR.js";import{H as _p,I as r6,_ as Fv}from"./index-CL6hUm94.js";import{A as D0,E as rs,f as u2,c as uu,a as gc,n as rf,s as R3,d as p2,b as Rm,e as zg,g as Tv,h as Ph,i as dp,j as C3,k as Sv,l as $d,m as I3,t as bh,o as wv,p as Rv,q as Cv,_ as cp,r as pn,u as y1,v as Dn,w as F0,x as T0,y as Ad,z as Iv}from"./vec2-DjBoYTHr.js";import{o as Mv,j as Nv,a2 as Dv,a5 as Ov}from"./vue-DApy1uhY.js";function Vf(){var e=new D0(16);return D0!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Lv(e,t,r,i,s,u,n,y,m,g,x,b,F,R,I,U){var V=new D0(16);return V[0]=e,V[1]=t,V[2]=r,V[3]=i,V[4]=s,V[5]=u,V[6]=n,V[7]=y,V[8]=m,V[9]=g,V[10]=x,V[11]=b,V[12]=F,V[13]=R,V[14]=I,V[15]=U,V}function o6(e,t){var r=t[0],i=t[1],s=t[2],u=t[3],n=t[4],y=t[5],m=t[6],g=t[7],x=t[8],b=t[9],F=t[10],R=t[11],I=t[12],U=t[13],V=t[14],J=t[15],Q=r*y-i*n,te=r*m-s*n,ne=r*g-u*n,pe=i*m-s*y,Oe=i*g-u*y,Ee=s*g-u*m,He=x*U-b*I,ft=x*V-F*I,Ge=x*J-R*I,Ae=b*V-F*U,Be=b*J-R*U,ze=F*J-R*V,st=Q*ze-te*Be+ne*Ae+pe*Ge-Oe*ft+Ee*He;return st?(st=1/st,e[0]=(y*ze-m*Be+g*Ae)*st,e[1]=(s*Be-i*ze-u*Ae)*st,e[2]=(U*Ee-V*Oe+J*pe)*st,e[3]=(F*Oe-b*Ee-R*pe)*st,e[4]=(m*Ge-n*ze-g*ft)*st,e[5]=(r*ze-s*Ge+u*ft)*st,e[6]=(V*ne-I*Ee-J*te)*st,e[7]=(x*Ee-F*ne+R*te)*st,e[8]=(n*Be-y*Ge+g*He)*st,e[9]=(i*Ge-r*Be-u*He)*st,e[10]=(I*Oe-U*ne+J*Q)*st,e[11]=(b*ne-x*Oe-R*Q)*st,e[12]=(y*ft-n*Ae-m*He)*st,e[13]=(r*Ae-i*ft+s*He)*st,e[14]=(U*te-I*pe-V*Q)*st,e[15]=(x*pe-b*te+F*Q)*st,e):null}function S0(e,t,r){var i=t[0],s=t[1],u=t[2],n=t[3],y=t[4],m=t[5],g=t[6],x=t[7],b=t[8],F=t[9],R=t[10],I=t[11],U=t[12],V=t[13],J=t[14],Q=t[15],te=r[0],ne=r[1],pe=r[2],Oe=r[3];return e[0]=te*i+ne*y+pe*b+Oe*U,e[1]=te*s+ne*m+pe*F+Oe*V,e[2]=te*u+ne*g+pe*R+Oe*J,e[3]=te*n+ne*x+pe*I+Oe*Q,te=r[4],ne=r[5],pe=r[6],Oe=r[7],e[4]=te*i+ne*y+pe*b+Oe*U,e[5]=te*s+ne*m+pe*F+Oe*V,e[6]=te*u+ne*g+pe*R+Oe*J,e[7]=te*n+ne*x+pe*I+Oe*Q,te=r[8],ne=r[9],pe=r[10],Oe=r[11],e[8]=te*i+ne*y+pe*b+Oe*U,e[9]=te*s+ne*m+pe*F+Oe*V,e[10]=te*u+ne*g+pe*R+Oe*J,e[11]=te*n+ne*x+pe*I+Oe*Q,te=r[12],ne=r[13],pe=r[14],Oe=r[15],e[12]=te*i+ne*y+pe*b+Oe*U,e[13]=te*s+ne*m+pe*F+Oe*V,e[14]=te*u+ne*g+pe*R+Oe*J,e[15]=te*n+ne*x+pe*I+Oe*Q,e}function of(e,t,r){var i=r[0],s=r[1],u=r[2],n,y,m,g,x,b,F,R,I,U,V,J;return t===e?(e[12]=t[0]*i+t[4]*s+t[8]*u+t[12],e[13]=t[1]*i+t[5]*s+t[9]*u+t[13],e[14]=t[2]*i+t[6]*s+t[10]*u+t[14],e[15]=t[3]*i+t[7]*s+t[11]*u+t[15]):(n=t[0],y=t[1],m=t[2],g=t[3],x=t[4],b=t[5],F=t[6],R=t[7],I=t[8],U=t[9],V=t[10],J=t[11],e[0]=n,e[1]=y,e[2]=m,e[3]=g,e[4]=x,e[5]=b,e[6]=F,e[7]=R,e[8]=I,e[9]=U,e[10]=V,e[11]=J,e[12]=n*i+x*s+I*u+t[12],e[13]=y*i+b*s+U*u+t[13],e[14]=m*i+F*s+V*u+t[14],e[15]=g*i+R*s+J*u+t[15]),e}function nf(e,t,r){var i=r[0],s=r[1],u=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*s,e[5]=t[5]*s,e[6]=t[6]*s,e[7]=t[7]*s,e[8]=t[8]*u,e[9]=t[9]*u,e[10]=t[10]*u,e[11]=t[11]*u,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function i6(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[4],n=t[5],y=t[6],m=t[7],g=t[8],x=t[9],b=t[10],F=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=u*s+g*i,e[5]=n*s+x*i,e[6]=y*s+b*i,e[7]=m*s+F*i,e[8]=g*s-u*i,e[9]=x*s-n*i,e[10]=b*s-y*i,e[11]=F*s-m*i,e}function Vg(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[0],n=t[1],y=t[2],m=t[3],g=t[8],x=t[9],b=t[10],F=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=u*s-g*i,e[1]=n*s-x*i,e[2]=y*s-b*i,e[3]=m*s-F*i,e[8]=u*i+g*s,e[9]=n*i+x*s,e[10]=y*i+b*s,e[11]=m*i+F*s,e}function Hg(e,t,r){var i=Math.sin(r),s=Math.cos(r),u=t[0],n=t[1],y=t[2],m=t[3],g=t[4],x=t[5],b=t[6],F=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=u*s+g*i,e[1]=n*s+x*i,e[2]=y*s+b*i,e[3]=m*s+F*i,e[4]=g*s-u*i,e[5]=x*s-n*i,e[6]=b*s-y*i,e[7]=F*s-m*i,e}function Bv(e,t,r,i,s){var u=1/Math.tan(t/2),n;return e[0]=u/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,s!=null&&s!==1/0?(n=1/(i-s),e[10]=(s+i)*n,e[14]=2*s*i*n):(e[10]=-1,e[14]=-2*i),e}var Uv=Bv;function M3(e,t){var r=e[0],i=e[1],s=e[2],u=e[3],n=e[4],y=e[5],m=e[6],g=e[7],x=e[8],b=e[9],F=e[10],R=e[11],I=e[12],U=e[13],V=e[14],J=e[15],Q=t[0],te=t[1],ne=t[2],pe=t[3],Oe=t[4],Ee=t[5],He=t[6],ft=t[7],Ge=t[8],Ae=t[9],Be=t[10],ze=t[11],st=t[12],Vt=t[13],ir=t[14],Fr=t[15];return Math.abs(r-Q)<=rs*Math.max(1,Math.abs(r),Math.abs(Q))&&Math.abs(i-te)<=rs*Math.max(1,Math.abs(i),Math.abs(te))&&Math.abs(s-ne)<=rs*Math.max(1,Math.abs(s),Math.abs(ne))&&Math.abs(u-pe)<=rs*Math.max(1,Math.abs(u),Math.abs(pe))&&Math.abs(n-Oe)<=rs*Math.max(1,Math.abs(n),Math.abs(Oe))&&Math.abs(y-Ee)<=rs*Math.max(1,Math.abs(y),Math.abs(Ee))&&Math.abs(m-He)<=rs*Math.max(1,Math.abs(m),Math.abs(He))&&Math.abs(g-ft)<=rs*Math.max(1,Math.abs(g),Math.abs(ft))&&Math.abs(x-Ge)<=rs*Math.max(1,Math.abs(x),Math.abs(Ge))&&Math.abs(b-Ae)<=rs*Math.max(1,Math.abs(b),Math.abs(Ae))&&Math.abs(F-Be)<=rs*Math.max(1,Math.abs(F),Math.abs(Be))&&Math.abs(R-ze)<=rs*Math.max(1,Math.abs(R),Math.abs(ze))&&Math.abs(I-st)<=rs*Math.max(1,Math.abs(I),Math.abs(st))&&Math.abs(U-Vt)<=rs*Math.max(1,Math.abs(U),Math.abs(Vt))&&Math.abs(V-ir)<=rs*Math.max(1,Math.abs(V),Math.abs(ir))&&Math.abs(J-Fr)<=rs*Math.max(1,Math.abs(J),Math.abs(Fr))}function Gg(){var e=new D0(4);return D0!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function kv(e,t,r,i){var s=new D0(4);return s[0]=e,s[1]=t,s[2]=r,s[3]=i,s}function zv(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function n6(e,t,r){var i=t[0],s=t[1],u=t[2],n=t[3];return e[0]=r[0]*i+r[4]*s+r[8]*u+r[12]*n,e[1]=r[1]*i+r[5]*s+r[9]*u+r[13]*n,e[2]=r[2]*i+r[6]*s+r[10]*u+r[14]*n,e[3]=r[3]*i+r[7]*s+r[11]*u+r[15]*n,e}(function(){var e=Gg();return function(t,r,i,s,u,n){var y,m;for(r||(r=4),i||(i=0),s?m=Math.min(s*r+i,t.length):m=t.length,y=i;yWg[e],cu=(e,t)=>{Wg[e]=t},Vv=e=>jg[e],Z0=(e,t)=>{jg[e]=t},D3={},Cm={},Im=34,Fd=10,Mm=13;function Xg(e){return new Function("d","return {"+e.map(function(t,r){return JSON.stringify(t)+": d["+r+'] || ""'}).join(",")+"}")}function Hv(e,t){var r=Xg(e);return function(i,s){return t(r(i),s,e)}}function O3(e){var t=Object.create(null),r=[];return e.forEach(function(i){for(var s in i)s in t||r.push(t[s]=s)}),r}function Ls(e,t){var r=e+"",i=r.length;return i9999?"+"+Ls(e,6):Ls(e,4)}function jv(e){var t=e.getUTCHours(),r=e.getUTCMinutes(),i=e.getUTCSeconds(),s=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":Gv(e.getUTCFullYear())+"-"+Ls(e.getUTCMonth()+1,2)+"-"+Ls(e.getUTCDate(),2)+(s?"T"+Ls(t,2)+":"+Ls(r,2)+":"+Ls(i,2)+"."+Ls(s,3)+"Z":i?"T"+Ls(t,2)+":"+Ls(r,2)+":"+Ls(i,2)+"Z":r||t?"T"+Ls(t,2)+":"+Ls(r,2)+"Z":"")}function Wv(e){var t=new RegExp('["'+e+` \r]`),r=e.charCodeAt(0);function i(b,F){var R,I,U=s(b,function(V,J){if(R)return R(V,J-1);I=V,R=F?Hv(V,F):Xg(V)});return U.columns=I||[],U}function s(b,F){var R=[],I=b.length,U=0,V=0,J,Q=I<=0,te=!1;b.charCodeAt(I-1)===Fd&&--I,b.charCodeAt(I-1)===Mm&&--I;function ne(){if(Q)return Cm;if(te)return te=!1,D3;var Oe,Ee=U,He;if(b.charCodeAt(Ee)===Im){for(;U++=I?Q=!0:(He=b.charCodeAt(U++))===Fd?te=!0:He===Mm&&(te=!0,b.charCodeAt(U)===Fd&&++U),b.slice(Ee+1,Oe-1).replace(/""/g,'"')}for(;Ut in e?Qv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,s6=(e,t)=>{for(var r in t||(t={}))tE.call(t,r)&&U3(e,r,t[r]);if(B3)for(var r of B3(t))rE.call(t,r)&&U3(e,r,t[r]);return e},u6=(e,t)=>Jv(e,eE(t)),p6=e=>jh.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf("://"))],oE=class extends Error{constructor(e,t,r,i){super(`AJAXError: ${t} (${e}): ${r}`),this.status=e,this.statusText=t,this.url=r,this.body=i}};function qg(e,t){const r=new XMLHttpRequest,i=Array.isArray(e.url)?e.url[0]:e.url;r.open(e.method||"GET",i,!0),e.type==="arrayBuffer"&&(r.responseType="arraybuffer");for(const s in e.headers)e.headers.hasOwnProperty(s)&&r.setRequestHeader(s,e.headers[s]);return e.type==="json"&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials=e.credentials==="include",r.onerror=()=>{t(new Error(r.statusText))},r.onload=()=>{if((r.status>=200&&r.status<300||r.status===0)&&r.response!==null){let s=r.response;if(e.type==="json")try{s=JSON.parse(r.response)}catch(u){return t(u)}t(null,s,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"),r)}else{const s=new Blob([r.response],{type:r.getResponseHeader("Content-Type")});t(new oE(r.status,r.statusText,i.toString(),s))}},r.cancel=r.abort,r.send(e.body),r}function iE(e){return new Promise((t,r)=>{qg(e,(i,s,u,n,y)=>{i?r({err:i,data:null,xhr:y}):t({err:null,data:s,cacheControl:u,expires:n,xhr:y})})})}function l6(e,t){return qg(e,t)}var nE=(e,t)=>(p6(e.url)||l6)(u6(s6({},e),{type:"json"}),t),c6=(e,t)=>(p6(e.url)||l6)(u6(s6({},e),{type:"arrayBuffer"}),t),aE=(e,t)=>l6(u6(s6({},e),{method:"GET"}),t),k3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Kg(e,t){const r=new window.Image,i=window.URL||window.webkitURL;r.crossOrigin="anonymous",r.onload=()=>{t(null,r),i.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>{r.src=k3})},r.onerror=()=>t(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const s=new Blob([new Uint8Array(e)],{type:"image/png"});r.src=e.byteLength?i.createObjectURL(s):k3}function Qg(e,t){const r=new Blob([new Uint8Array(e)],{type:"image/png"});createImageBitmap(r).then(i=>{t(null,i)}).catch(i=>{t(new Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}var l2=(e,t,r)=>{const i=(s,u)=>{if(s)t(s);else if(u){const n=typeof createImageBitmap=="function",y=r?r(u):u;n?Qg(y,t):Kg(y,t)}};return e.type==="json"?nE(e,i):c6(e,i)},sE=(e,t)=>{typeof createImageBitmap=="function"?Qg(e,t):Kg(e,t)};function d6(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function Jg(e,t){var r=Object.create(e.prototype);for(var i in t)r[i]=t[i];return r}function My(){}var hy=.7,af=1/hy,w0="\\s*([+-]?\\d+)\\s*",fy="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Yp="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",uE=/^#([0-9a-f]{3,8})$/,pE=new RegExp("^rgb\\("+[w0,w0,w0]+"\\)$"),lE=new RegExp("^rgb\\("+[Yp,Yp,Yp]+"\\)$"),cE=new RegExp("^rgba\\("+[w0,w0,w0,fy]+"\\)$"),dE=new RegExp("^rgba\\("+[Yp,Yp,Yp,fy]+"\\)$"),yE=new RegExp("^hsl\\("+[fy,Yp,Yp]+"\\)$"),hE=new RegExp("^hsla\\("+[fy,Yp,Yp,fy]+"\\)$"),z3={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};d6(My,O0,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:V3,formatHex:V3,formatHsl:fE,formatRgb:H3,toString:H3});function V3(){return this.rgb().formatHex()}function fE(){return e8(this).formatHsl()}function H3(){return this.rgb().formatRgb()}function O0(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=uE.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?G3(t):r===3?new pu(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Ah(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Ah(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=pE.exec(e))?new pu(t[1],t[2],t[3],1):(t=lE.exec(e))?new pu(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=cE.exec(e))?Ah(t[1],t[2],t[3],t[4]):(t=dE.exec(e))?Ah(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=yE.exec(e))?X3(t[1],t[2]/100,t[3]/100,1):(t=hE.exec(e))?X3(t[1],t[2]/100,t[3]/100,t[4]):z3.hasOwnProperty(e)?G3(z3[e]):e==="transparent"?new pu(NaN,NaN,NaN,0):null}function G3(e){return new pu(e>>16&255,e>>8&255,e&255,1)}function Ah(e,t,r,i){return i<=0&&(e=t=r=NaN),new pu(e,t,r,i)}function mE(e){return e instanceof My||(e=O0(e)),e?(e=e.rgb(),new pu(e.r,e.g,e.b,e.opacity)):new pu}function sf(e,t,r,i){return arguments.length===1?mE(e):new pu(e,t,r,i??1)}function pu(e,t,r,i){this.r=+e,this.g=+t,this.b=+r,this.opacity=+i}d6(pu,sf,Jg(My,{brighter:function(e){return e=e==null?af:Math.pow(af,e),new pu(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=e==null?hy:Math.pow(hy,e),new pu(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:j3,formatHex:j3,formatRgb:W3,toString:W3}));function j3(){return"#"+Nm(this.r)+Nm(this.g)+Nm(this.b)}function W3(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(e===1?")":", "+e+")")}function Nm(e){return e=Math.max(0,Math.min(255,Math.round(e)||0)),(e<16?"0":"")+e.toString(16)}function X3(e,t,r,i){return i<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Zp(e,t,r,i)}function e8(e){if(e instanceof Zp)return new Zp(e.h,e.s,e.l,e.opacity);if(e instanceof My||(e=O0(e)),!e)return new Zp;if(e instanceof Zp)return e;e=e.rgb();var t=e.r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),u=Math.max(t,r,i),n=NaN,y=u-s,m=(u+s)/2;return y?(t===u?n=(r-i)/y+(r0&&m<1?0:n,new Zp(n,y,m,e.opacity)}function _E(e,t,r,i){return arguments.length===1?e8(e):new Zp(e,t,r,i??1)}function Zp(e,t,r,i){this.h=+e,this.s=+t,this.l=+r,this.opacity=+i}d6(Zp,_E,Jg(My,{brighter:function(e){return e=e==null?af:Math.pow(af,e),new Zp(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=e==null?hy:Math.pow(hy,e),new Zp(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,i=r+(r<.5?r:1-r)*t,s=2*r-i;return new pu(Dm(e>=240?e-240:e+120,s,i),Dm(e,s,i),Dm(e<120?e+240:e-120,s,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return e=isNaN(e)?1:Math.max(0,Math.min(1,e)),(e===1?"hsl(":"hsla(")+(this.h||0)+", "+(this.s||0)*100+"%, "+(this.l||0)*100+"%"+(e===1?")":", "+e+")")}}));function Dm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}function Mi(e){const t=O0(e),r=[0,0,0,0];return t!=null&&(r[0]=t.r/255,r[1]=t.g/255,r[2]=t.b/255,r[3]=t.opacity),r}function c1(e){const t=e&&e[0],r=e&&e[1],i=e&&e[2];return t+r*256+i*65536-1}function L0(e){return[e+1&255,e+1>>8&255,e+1>>8>>8&255]}function t8(e){let t=window.document.createElement("canvas"),r=t.getContext("2d");t.width=256,t.height=1;let i=null;const s=r.createLinearGradient(0,0,256,1),u=e.positions[0],n=e.positions[e.positions.length-1];for(let y=0;y{const n=Mi(e.colors[u]);i.data[s*4+0]=n[0]*255,i.data[s*4+1]=n[1]*255,i.data[s*4+2]=n[2]*255,i.data[s*4+3]=n[3]*255}),t=null,r=null,i}function EE(e){let t=window.document.createElement("canvas"),r=t.getContext("2d");r.globalAlpha=1,t.width=256,t.height=1;const i=256/e.colors.length;for(let n=0;n{e.classList.remove(i)}):i8(e,r8((" "+f6(e)+" ").replace(" "+t+" "," ")))}function AE(e,t){if(e.classList!==void 0)return e.classList.contains(t);const r=f6(e);return r.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(r)}function i8(e,t){e instanceof HTMLElement?e.className=t:e.className.baseVal=t}function f6(e){return e instanceof SVGElement&&(e=e.correspondingElement),e.className.baseVal===void 0?e.className:e.className.baseVal}bE(["transform","WebkitTransform"]);function FE(){var e;const t=window.document.querySelector('meta[name="viewport"]');if(!t)return 1;const i=((e=t.content)==null?void 0:e.split(",")).find(s=>{const[u]=s.split("=");return u==="initial-scale"});return i?i.split("=")[1]*1:1}var Bs=FE()<1?1:window.devicePixelRatio;function TE(e,t){e.setAttribute("style",`${e.style.cssText}${t}`)}function SE(e){return Object.entries(e).map(([t,r])=>`${t}: ${r}`).join(";")}function wE(e,t){return{left:e.left-t.left,top:e.top-t.top,right:t.left+t.width-e.left-e.width,bottom:t.top+t.height-e.top-e.height}}function n8(e){e.innerHTML=""}function RE(e){e.setAttribute("draggable","false")}function CE(e,t){var r;const i=Array.isArray(t)?t:[t];let s=e;for(;s instanceof Element&&s!==window.document.body;){if(i.find(u=>s==null?void 0:s.matches(u)))return s;s=(r=s==null?void 0:s.parentElement)!=null?r:null}}function IE(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap}var d2=navigator==null?void 0:navigator.userAgent;d2.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);d2.indexOf("Android")>-1||d2.indexOf("Adr")>-1;function y2(e){var t=[1/0,1/0,-1/0,-1/0];return Yg(e,function(r){t[0]>r[0]&&(t[0]=r[0]),t[1]>r[1]&&(t[1]=r[1]),t[2]r&&e.lng<=s&&e.lat>i&&e.lat<=u}function NE(e){const t=[1/0,1/0,-1/0,-1/0];return e.forEach(r=>{const{coordinates:i}=r;a8(t,i)}),t}function a8(e,t){return Array.isArray(t[0])?t.forEach(r=>{a8(e,r)}):(e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]180||e<-180)&&(e=e%360,e>180&&(e=-360+e),e<-180&&(e=360+e),e===0&&(e=0)),e}function OE(e){if(e==null)throw new Error("lat is required");return(e>90||e<-90)&&(e=e%180,e>90&&(e=-180+e),e<-90&&(e=180+e),e===0&&(e=0)),e}function LE(e,t){if(t===!1)return e;const r=DE(e[0]);let i=OE(e[1]);return i>85&&(i=85),i<-85&&(i=-85),e.length===3?[r,i,e[2]]:[r,i]}function Gu(e){const r=Math.max(Math.min(85.0511287798,e[1]),-85.0511287798),i=256<<20;let s=Math.PI/180,u=e[0]*s,n=r*s;n=Math.log(Math.tan(Math.PI/4+n/2));const y=.5/Math.PI,m=.5,g=-.5/Math.PI;return s=.5,u=i*(y*u+m),n=i*(g*n+s),[Math.floor(u),Math.floor(n)]}function m6(e,t){const r=Math.abs(e[1][1]-e[0][1])*t,i=Math.abs(e[1][0]-e[0][0])*t;return[[e[0][0]-i,e[0][1]-r],[e[1][0]+i,e[1][1]+r]]}function s8(e,t){return e[0][0]<=t[0][0]&&e[0][1]<=t[0][1]&&e[1][0]>=t[1][0]&&e[1][1]>=t[1][1]}function pf(e){return[[e[0],e[1]],[e[2],e[3]]]}function BE(e){const t=UE(e,[0,0]);return[e[0]/t,e[1]/t]}function UE(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function h1(e){if(Om(e[0]))return e;if(Om(e[0][0]))throw new Error("当前数据不支持标注");if(Om(e[0][0][0])){const t=e;let r=0,i=0,s=0;return t.forEach(u=>{u.forEach(n=>{r+=n[0],i+=n[1],s++})}),[r/s,i/s,0]}else throw new Error("当前数据不支持标注")}function kE(e){let t=e[0],r=e[1],i=e[0],s=e[1],u=0,n=0,y=0;for(let m=0;m{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var HE=class{constructor(e=50,t){this.limit=e,this.destroy=t||this.defaultDestroy,this.order=[],this.clear()}clear(){this.order.forEach(e=>{this.delete(e)}),this.cache={},this.order=[]}get(e){const t=this.cache[e];return t&&(this.deleteOrder(e),this.appendOrder(e)),t}set(e,t){this.cache[e]?(this.delete(e),this.cache[e]=t,this.appendOrder(e)):(Object.keys(this.cache).length===this.limit&&this.delete(this.order[0]),this.cache[e]=t,this.appendOrder(e))}delete(e){const t=this.cache[e];t&&(this.deleteCache(e),this.deleteOrder(e),this.destroy(t,e))}deleteCache(e){delete this.cache[e]}deleteOrder(e){const t=this.order.findIndex(r=>r===e);t>=0&&this.order.splice(t,1)}appendOrder(e){this.order.push(e)}defaultDestroy(e,t){return null}};function GE(e){if(e.length===0)throw new Error("max requires at least one data point");let t=e[0];for(let r=1;rt&&(t=e[r]);return t*1}function jE(e){if(e.length===0)throw new Error("min requires at least one data point");let t=e[0];for(let r=1;ri&&(i=s,r=t),s=1,t=e[u]):s++;return r*1}var p8={min:jE,max:GE,mean:WE,sum:u8,mode:XE};function l8(e,t){return e.map(r=>r[t])}function ZE(e,t){t===void 0&&(t={});var r=Number(e[0]),i=Number(e[1]),s=Number(e[2]),u=Number(e[3]);if(e.length===6)throw new Error("@turf/bbox-polygon does not support BBox with 6 positions");var n=[r,i],y=[r,u],m=[s,u],g=[s,i];return a6([[n,g,m,y,n]],t.properties,{bbox:e,id:t.id})}var c8={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function s(m,g,x){this.fn=m,this.context=g,this.once=x||!1}function u(m,g,x,b,F){if(typeof x!="function")throw new TypeError("The listener must be a function");var R=new s(x,b||m,F),I=r?r+g:g;return m._events[I]?m._events[I].fn?m._events[I]=[m._events[I],R]:m._events[I].push(R):(m._events[I]=R,m._eventsCount++),m}function n(m,g){--m._eventsCount===0?m._events=new i:delete m._events[g]}function y(){this._events=new i,this._eventsCount=0}y.prototype.eventNames=function(){var g=[],x,b;if(this._eventsCount===0)return g;for(b in x=this._events)t.call(x,b)&&g.push(r?b.slice(1):b);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(x)):g},y.prototype.listeners=function(g){var x=r?r+g:g,b=this._events[x];if(!b)return[];if(b.fn)return[b.fn];for(var F=0,R=b.length,I=new Array(R);F(e.Realtime="realtime",e.Overlap="overlap",e.Replace="replace",e))(sy||{}),ku=(e=>(e.Loading="Loading",e.Loaded="Loaded",e.Failure="Failure",e.Cancelled="Cancelled",e))(ku||{}),d8=0,Y3=1,Hf=2;function YE(e){e.forEach(t=>{t.isCurrent&&(t.isVisible=t.isLoaded)})}function $E(e){e.forEach(t=>{t.properties.state=d8}),e.forEach(t=>{t.isCurrent&&!y8(t)&&g6(t)}),e.forEach(t=>{t.isVisible=!!(t.properties.state&Hf)})}function qE(e){e.forEach(r=>{r.properties.state=d8}),e.forEach(r=>{r.isCurrent&&y8(r)}),e.slice().sort((r,i)=>r.z-i.z).forEach(r=>{r.isVisible=!!(r.properties.state&Hf),r.children.length&&(r.isVisible||r.properties.state&Y3)?r.children.forEach(i=>{i.properties.state=Y3}):r.isCurrent&&g6(r)})}function y8(e){for(;e;){if(e.isLoaded)return e.properties.state|=Hf,!0;e=e.parent}return!1}function g6(e){e.children.forEach(t=>{t.isLoaded?t.properties.state|=Hf:g6(t)})}var h8=[-1/0,-1/0,1/0,1/0],KE=.2,QE=5,JE={[sy.Realtime]:YE,[sy.Overlap]:$E,[sy.Replace]:qE},ex=()=>{};function h2(e,t,r){const i=Math.floor((e+180)/360*Math.pow(2,r)),s=Math.floor((1-Math.log(Math.tan(t*Math.PI/180)+1/Math.cos(t*Math.PI/180))/Math.PI)/2*Math.pow(2,r));return[i,s]}function $3(e,t,r){const i=e/Math.pow(2,r)*360-180,s=Math.PI-2*Math.PI*t/Math.pow(2,r),u=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,u]}var f8=(e,t,r)=>{const[i,s]=$3(e,t,r),[u,n]=$3(e+1,t+1,r);return[i,n,u,s]};function tx({zoom:e,latLonBounds:t,maxZoom:r=1/0,minZoom:i=0,zoomOffset:s=0,extent:u=h8}){let n=Math.ceil(e)+s;if(Number.isFinite(i)&&nr&&(n=r);const[y,m,g,x]=t,b=[Math.max(y,u[0]),Math.max(m,u[1]),Math.min(g,u[2]),Math.min(x,u[3])],F=[],[R,I]=h2(b[0],b[1],n),[U,V]=h2(b[2],b[3],n);for(let ne=R;ne<=U;ne++)for(let pe=V;pe<=I;pe++)F.push({x:ne,y:pe,z:n});const J=(U+R)/2,Q=(I+V)/2,te=(ne,pe)=>Math.abs(ne-J)+Math.abs(pe-Q);return F.sort((ne,pe)=>te(ne.x,ne.y)-te(pe.x,pe.y)),F}var rx=(e,t,r,i=!0)=>{const s=Math.pow(2,r),u=s-1,n=s;let y=e;const m=t;return i&&(y<0?y=y+n:y>u&&(y=y%n)),{warpX:y,warpY:m}},ox=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),ix=class extends du.EventEmitter{constructor(e){super(),this.tileSize=256,this.isVisible=!1,this.isCurrent=!1,this.isVisibleChange=!1,this.loadedLayers=0,this.isLayerLoaded=!1,this.isLoad=!1,this.isChildLoad=!1,this.parent=null,this.children=[],this.data=null,this.properties={},this.loadDataId=0;const{x:t,y:r,z:i,tileSize:s,warp:u=!0}=e;this.x=t,this.y=r,this.z=i,this.warp=u||!0,this.tileSize=s}get isLoading(){return this.loadStatus===ku.Loading}get isLoaded(){return this.loadStatus===ku.Loaded}get isFailure(){return this.loadStatus===ku.Failure}setTileLayerLoaded(){this.isLayerLoaded=!0}get isCancelled(){return this.loadStatus===ku.Cancelled}get isDone(){return[ku.Loaded,ku.Cancelled,ku.Failure].includes(this.loadStatus)}get bounds(){return f8(this.x,this.y,this.z)}get bboxPolygon(){const[e,t,r,i]=this.bounds,s=[(r-e)/2,(i-t)/2];return ZE(this.bounds,{properties:{key:this.key,id:this.key,bbox:this.bounds,center:s,meta:` ${this.key} `}})}get key(){return`${this.x}_${this.y}_${this.z}`}layerLoad(){this.loadedLayers++,this.emit("layerLoaded")}loadData(e){return ox(this,arguments,function*({getData:t,onLoad:r,onError:i}){this.loadDataId++;const s=this.loadDataId;this.isLoading&&this.abortLoad(),this.abortController=new AbortController,this.loadStatus=ku.Loading;let u=null,n;try{const{x:y,y:m,z:g,bounds:x,tileSize:b,warp:F}=this,{warpX:R,warpY:I}=rx(y,m,g,F),{signal:U}=this.abortController;u=yield t({x:R,y:I,z:g,bounds:x,tileSize:b,signal:U,warp:F},this)}catch(y){n=y}if(s===this.loadDataId&&!(this.isCancelled&&!u)){if(n||!u){this.loadStatus=ku.Failure,i(n,this);return}this.loadStatus=ku.Loaded,this.data=u,r(this)}})}reloadData(e){this.isLoading&&this.abortLoad(),this.loadData(e)}abortLoad(){this.isLoaded||this.isCancelled||(this.loadStatus=ku.Cancelled,this.abortController.abort(),this.xhrCancel&&this.xhrCancel())}},nx=(e,t)=>{const r=pf(e),i=m6(r,t),s=360*3-180;return[Math.max(i[0][0],-900),Math.max(i[0][1],-85.0511287798065),Math.min(i[1][0],s),Math.min(i[1][1],85.0511287798065)]},ax=(e,t)=>{const r=pf(e),i=pf(t);return s8(r,i)},sx=Object.defineProperty,ux=Object.defineProperties,px=Object.getOwnPropertyDescriptors,q3=Object.getOwnPropertySymbols,lx=Object.prototype.hasOwnProperty,cx=Object.prototype.propertyIsEnumerable,K3=(e,t,r)=>t in e?sx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Q3=(e,t)=>{for(var r in t||(t={}))lx.call(t,r)&&K3(e,r,t[r]);if(q3)for(var r of q3(t))cx.call(t,r)&&K3(e,r,t[r]);return e},dx=(e,t)=>ux(e,px(t)),{throttle:yx}=Qn,hx=class extends _6{constructor(e){super(),this.currentTiles=[],this.cacheTiles=new Map,this.throttleUpdate=yx((t,r)=>{this.update(t,r)},16),this.onTileLoad=t=>{this.emit("tile-loaded",t),this.updateTileVisible(),this.loadFinished()},this.onTileError=(t,r)=>{this.emit("tile-error",{error:t,tile:r}),this.updateTileVisible(),this.loadFinished()},this.onTileUnload=t=>{this.emit("tile-unload",t),this.loadFinished()},this.options={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,extent:h8,getTileData:ex,warp:!0,updateStrategy:sy.Replace},this.updateOptions(e)}get isLoaded(){return this.currentTiles.every(e=>e.isDone)}get tiles(){return Array.from(this.cacheTiles.values()).sort((t,r)=>t.z-r.z)}updateOptions(e){const t=e.minZoom===void 0?this.options.minZoom:Math.ceil(e.minZoom),r=e.maxZoom===void 0?this.options.maxZoom:Math.floor(e.maxZoom);this.options=dx(Q3(Q3({},this.options),e),{minZoom:t,maxZoom:r})}update(e,t){const r=Math.max(0,Math.ceil(e));if(this.lastViewStates&&this.lastViewStates.zoom===r&&ax(this.lastViewStates.latLonBoundsBuffer,t))return;const i=nx(t,KE);this.lastViewStates={zoom:r,latLonBounds:t,latLonBoundsBuffer:i},this.currentZoom=r;let s=!1;const u=this.getTileIndices(r,i).filter(n=>this.options.warp||n.x>=0&&n.x{let g=this.getTile(n,y,m);return g?(((g==null?void 0:g.isFailure)||(g==null?void 0:g.isCancelled))&&g.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}),g):(g=this.createTile(n,y,m),s=!0,g)}),s&&this.resizeCacheTiles(),this.updateTileVisible(),this.pruneRequests()}reloadAll(){for(const[e,t]of this.cacheTiles){if(!this.currentTiles.includes(t)){this.cacheTiles.delete(e),this.onTileUnload(t);return}this.onTileUnload(t),t.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError})}}reloadTileById(e,t,r){const i=this.cacheTiles.get(`${t},${r},${e}`);i&&(this.onTileUnload(i),i.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}))}reloadTileByLnglat(e,t,r){const i=this.getTileByLngLat(e,t,r);i&&this.reloadTileById(i.z,i.x,i.y)}reloadTileByExtent(e,t){this.getTileIndices(t,e).forEach(i=>{this.reloadTileById(i.z,i.x,i.y)})}pruneRequests(){const e=[];for(const t of this.cacheTiles.values())t.isLoading&&!t.isCurrent&&!t.isVisible&&e.push(t);for(;e.length>0;)e.shift().abortLoad()}getTileByLngLat(e,t,r){const{zoomOffset:i}=this.options,s=Math.ceil(r)+i,u=h2(e,t,s);return this.tiles.filter(y=>y.key===`${u[0]}_${u[1]}_${s}`)[0]}getTileExtent(e,t){return this.getTileIndices(t,e)}getTileByZXY(e,t,r){return this.tiles.filter(s=>s.key===`${t}_${r}_${e}`)[0]}clear(){for(const e of this.cacheTiles.values())e.isLoading?e.abortLoad():this.onTileUnload(e);this.lastViewStates=void 0,this.cacheTiles.clear(),this.currentTiles=[]}destroy(){this.clear(),this.removeAllListeners()}updateTileVisible(){const e=this.options.updateStrategy,t=new Map;for(const s of this.cacheTiles.values())t.set(s.key,s.isVisible),s.isCurrent=!1,s.isVisible=!1;for(const s of this.currentTiles)s.isCurrent=!0,s.isVisible=!0;const r=Array.from(this.cacheTiles.values());typeof e=="function"?e(r):JE[e](r);let i=!1;Array.from(this.cacheTiles.values()).forEach(s=>{s.isVisible!==t.get(s.key)?(s.isVisibleChange=!0,i=!0):s.isVisibleChange=!1}),i&&this.emit("tile-update")}getTileIndices(e,t){const{tileSize:r,extent:i,zoomOffset:s}=this.options,u=Math.floor(this.options.maxZoom),n=Math.ceil(this.options.minZoom);return tx({maxZoom:u,minZoom:n,zoomOffset:s,zoom:e,latLonBounds:t,extent:i})}getTileId(e,t,r){return`${e},${t},${r}`}loadFinished(){const e=!this.currentTiles.some(t=>!t.isDone);return e&&this.emit("tiles-load-finished"),e}getTile(e,t,r){const i=this.getTileId(e,t,r);return this.cacheTiles.get(i)}createTile(e,t,r){const i=this.getTileId(e,t,r),s=new ix({x:e,y:t,z:r,tileSize:this.options.tileSize,warp:this.options.warp});return this.cacheTiles.set(i,s),s.loadData({getData:this.options.getTileData,onLoad:this.onTileLoad,onError:this.onTileError}),s}resizeCacheTiles(){const e=QE*this.currentTiles.length;if(this.cacheTiles.size>e){for(const[r,i]of this.cacheTiles)if(!i.isVisible&&!this.currentTiles.includes(i)&&(this.cacheTiles.delete(r),this.onTileUnload(i)),this.cacheTiles.size<=e)break}this.rebuildTileTree()}rebuildTileTree(){for(const e of this.cacheTiles.values())e.parent=null,e.children.length=0;for(const e of this.cacheTiles.values()){const t=this.getNearestAncestor(e.x,e.y,e.z);e.parent=t,t!=null&&t.children&&t.children.push(e)}}getNearestAncestor(e,t,r){for(;r>this.options.minZoom;){e=Math.floor(e/2),t=Math.floor(t/2),r=r-1;const i=this.getTile(e,t,r);if(i)return i}return null}};function m8(e){const t=[];let r=/\{([a-z])-([a-z])\}/.exec(e);if(r){const i=r[1].charCodeAt(0),s=r[2].charCodeAt(0);let u;for(u=i;u<=s;++u)t.push(e.replace(r[0],String.fromCharCode(u)));return t}if(r=/\{(\d+)-(\d+)\}/.exec(e),r){const i=parseInt(r[2],10);for(let s=parseInt(r[1],10);s<=i;s++)t.push(e.replace(r[0],s.toString()));return t}return t.push(e),t}function R0(e,t){if(!e||!e.length)throw new Error("url is not allowed to be empty");const{x:r,y:i,z:s}=t,u=m8(e),n=Math.abs(r+i)%u.length;return(p6(u[n])?`${u[n]}/{z}/{x}/{y}`:u[n]).replace(/\{x\}/g,r.toString()).replace(/\{y\}/g,i.toString()).replace(/\{z\}/g,s.toString()).replace(/\{bbox\}/g,f8(r,i,s).join(",")).replace(/\{-y\}/g,(Math.pow(2,s)-i-1).toString())}function fx(e,t){const{x:r,y:i,z:s,layer:u,version:n="1.0.0",style:y="default",format:m,service:g="WMTS",tileMatrixset:x}=t,b=m8(e),F=Math.abs(r+i)%b.length;return`${b[F]}&SERVICE=${g}&REQUEST=GetTile&VERSION=${n}&LAYER=${u}&STYLE=${y}&TILEMATRIXSET=${x}&FORMAT=${m}&TILECOL=${r}&TILEROW=${i}&TILEMATRIX=${s}`}function Td(e,t){return e??t}var mx=Xh;function Xh(e,t){var r=e&&e.type,i;if(r==="FeatureCollection")for(i=0;i=Math.abs(y)?r-m+y:y-m+r,r=m}r+i>=0!=!!t&&e.reverse()}const _x=_p(mx);function gx(e,t){return e.map(r=>r[t]*1)}function _8(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number":!1}function f2(e){const t=Object.isFrozen(e)?Qn.cloneDeep(e):e;return _x(t,!0),t}function Y0(e,t){return e||[[t[0],t[3]],[t[2],t[3]],[t[2],t[1]],[t[0],t[1]]]}var vx=Object.defineProperty,Ex=Object.defineProperties,xx=Object.getOwnPropertyDescriptors,t_=Object.getOwnPropertySymbols,Px=Object.prototype.hasOwnProperty,bx=Object.prototype.propertyIsEnumerable,r_=(e,t,r)=>t in e?vx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,o_=(e,t)=>{for(var r in t||(t={}))Px.call(t,r)&&r_(e,r,t[r]);if(t_)for(var r of t_(t))bx.call(t,r)&&r_(e,r,t[r]);return e},i_=(e,t)=>Ex(e,xx(t));function g8(e,t){const{x:r,y:i,x1:s,y1:u,coordinates:n,geometry:y}=t,m=[];if(!Array.isArray(e))return{dataArray:[]};if(y)return e.filter(g=>g[y]&&g[y].type&&g[y].coordinates&&g[y].coordinates.length>0).forEach((g,x)=>{const b=f2(g[y]);$g(b,F=>{const R=Zg(F),I=i_(o_({},g),{_id:x,coordinates:R});m.push(I)})}),{dataArray:m};for(let g=0;gt in e?Fx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ix=(e,t)=>{for(var r in t||(t={}))Rx.call(t,r)&&a_(e,r,t[r]);if(n_)for(var r of n_(t))Cx.call(t,r)&&a_(e,r,t[r]);return e},Mx=(e,t)=>Tx(e,Sx(t));function Nx(e){const t=e.toString();let r=5381,i=t.length;for(;i;)r=r*33^t.charCodeAt(--i);return r>>>0}function Dx(e,t){return t===void 0?null:isNaN(e.properties[t]*1)?e.properties&&e.properties[t]?Nx(e.properties[t]+"")%1000019:null:e.properties[t]*1}function Ox(e,t){const r=[],i={};return e.features?(e.features=e.features.filter(s=>{const u=s.geometry;return s!=null&&u&&u.type&&u.coordinates&&u.coordinates.length>0}),e=f2(e),e.features.length===0?{dataArray:[],featureKeys:i}:($g(e,(s,u)=>{let n=Dx(s,t==null?void 0:t.featureId);n===null&&(n=u);const y=n,m=Zg(s),g=Mx(Ix({},s.properties),{coordinates:m,_id:y});r.push(g)}),{dataArray:r,featureKeys:i})):(e.features=[],{dataArray:[]})}function m2(e,t,r,i){for(var s=i,u=r-t>>1,n=r-t,y,m=e[t],g=e[t+1],x=e[r],b=e[r+1],F=t+3;Fs)y=F,s=R;else if(R===s){var I=Math.abs(F-u);Ii&&(y-t>3&&m2(e,t,y,i),e[y+2]=s,r-y>3&&m2(e,y,r,i))}function Lx(e,t,r,i,s,u){var n=s-r,y=u-i;if(n!==0||y!==0){var m=((e-r)*n+(t-i)*y)/(n*n+y*y);m>1?(r=s,i=u):m>0&&(r+=n*m,i+=y*m)}return n=e-r,y=t-i,n*n+y*y}function _y(e,t,r,i){var s={id:typeof e>"u"?null:e,type:t,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return Bx(s),s}function Bx(e){var t=e.geometry,r=e.type;if(r==="Point"||r==="MultiPoint"||r==="LineString")Lm(e,t);else if(r==="Polygon"||r==="MultiLineString")for(var i=0;i0&&(i?n+=(s*g-m*u)/2:n+=Math.sqrt(Math.pow(m-s,2)+Math.pow(g-u,2))),s=m,u=g}var x=t.length-3;t[2]=1,m2(t,0,x,r),t[x+2]=1,t.size=Math.abs(n),t.start=0,t.end=t.size}function Bm(e,t,r,i){for(var s=0;s1?1:r}function wl(e,t,r,i,s,u,n,y){if(r/=t,i/=t,u>=r&&n=i)return null;for(var m=[],g=0;g=r&&I=i)continue;var U=[];if(F==="Point"||F==="MultiPoint")kx(b,U,r,i,s);else if(F==="LineString")x8(b,U,r,i,s,!1,y.lineMetrics);else if(F==="MultiLineString")Um(b,U,r,i,s,!1);else if(F==="Polygon")Um(b,U,r,i,s,!0);else if(F==="MultiPolygon")for(var V=0;V=r&&n<=i&&(t.push(e[u]),t.push(e[u+1]),t.push(e[u+2]))}}function x8(e,t,r,i,s,u,n){for(var y=u_(e),m=s===0?zx:Vx,g=e.start,x,b,F=0;Fr&&(b=m(y,R,I,V,J,r),n&&(y.start=g+x*b)):Q>i?te=r&&(b=m(y,R,I,V,J,r),ne=!0),te>i&&Q<=i&&(b=m(y,R,I,V,J,i),ne=!0),!u&&ne&&(n&&(y.end=g+x*b),t.push(y),y=u_(e)),n&&(g+=x)}var pe=e.length-3;R=e[pe],I=e[pe+1],U=e[pe+2],Q=s===0?R:I,Q>=r&&Q<=i&&km(y,R,I,U),pe=y.length-3,u&&pe>=3&&(y[pe]!==y[0]||y[pe+1]!==y[1])&&km(y,y[0],y[1],y[2]),y.length&&t.push(y)}function u_(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function Um(e,t,r,i,s,u){for(var n=0;nn.maxX&&(n.maxX=x),b>n.maxY&&(n.maxY=b)}return n}function jx(e,t,r,i){var s=t.geometry,u=t.type,n=[];if(u==="Point"||u==="MultiPoint")for(var y=0;y0&&t.size<(s?n:i)){r.numPoints+=t.length/3;return}for(var y=[],m=0;mn)&&(r.numSimplified++,y.push(t[m]),y.push(t[m+1])),r.numPoints++;s&&Wx(y,u),e.push(y)}function Wx(e,t){for(var r=0,i=0,s=e.length,u=s-2;i0===t)for(i=0,s=e.length;i24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var i=Ux(e,t);this.tiles={},this.tileCoords=[],r&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",t.indexMaxZoom,t.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),i=Hx(i,t),i.length&&this.splitTile(i,0,0,0),r&&(i.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}Gf.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0};Gf.prototype.splitTile=function(e,t,r,i,s,u,n){for(var y=[e,t,r,i],m=this.options,g=m.debug;y.length;){i=y.pop(),r=y.pop(),t=y.pop(),e=y.pop();var x=1<1&&console.time("creation"),F=this.tiles[b]=Gx(e,t,r,i,m),this.tileCoords.push({z:t,x:r,y:i}),g)){g>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,i,F.numFeatures,F.numPoints,F.numSimplified),console.timeEnd("creation"));var R="z"+t;this.stats[R]=(this.stats[R]||0)+1,this.total++}if(F.source=e,s){if(t===m.maxZoom||t===s)continue;var I=1<1&&console.time("clipping");var U=.5*m.buffer/m.extent,V=.5-U,J=.5+U,Q=1+U,te,ne,pe,Oe,Ee,He;te=ne=pe=Oe=null,Ee=wl(e,x,r-U,r+J,0,F.minX,F.maxX,m),He=wl(e,x,r+V,r+Q,0,F.minX,F.maxX,m),e=null,Ee&&(te=wl(Ee,x,i-U,i+J,1,F.minY,F.maxY,m),ne=wl(Ee,x,i+V,i+Q,1,F.minY,F.maxY,m),Ee=null),He&&(pe=wl(He,x,i-U,i+J,1,F.minY,F.maxY,m),Oe=wl(He,x,i+V,i+Q,1,F.minY,F.maxY,m),He=null),g>1&&console.timeEnd("clipping"),y.push(te||[],t+1,r*2,i*2),y.push(ne||[],t+1,r*2,i*2+1),y.push(pe||[],t+1,r*2+1,i*2),y.push(Oe||[],t+1,r*2+1,i*2+1)}}};Gf.prototype.getTile=function(e,t,r){var i=this.options,s=i.extent,u=i.debug;if(e<0||e>24)return null;var n=1<1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var m=e,g=t,x=r,b;!b&&m>0;)m--,g=Math.floor(g/2),x=Math.floor(x/2),b=this.tiles[g2(m,g,x)];return!b||!b.source?null:(u>1&&console.log("found parent tile z%d-%d-%d",m,g,x),u>1&&console.time("drilling down"),this.splitTile(b.source,m,g,x,e,t,r),u>1&&console.timeEnd("drilling down"),this.tiles[y]?l_(this.tiles[y],s):null)};function g2(e,t,r){return((1<t in e?Yx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,lf=(e,t)=>{for(var r in t||(t={}))Kx.call(t,r)&&y_(e,r,t[r]);if(d_)for(var r of d_(t))Qx.call(t,r)&&y_(e,r,t[r]);return e},Jx=(e,t)=>$x(e,qx(t)),eP=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),tP={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0};function rP(e){let t=0;for(let r=0,i=e.length,s=i-1,u,n;reP(void 0,null,function*(){return new Promise(s=>{const u=t.getTile(e.z,e.x,e.y),y={layers:{defaultLayer:{features:u?u.features.map(g=>nP(i,r.x,r.y,r.z,g)):[]}}},m=new qd(y,e.x,e.y,e.z);s(m)})});function sP(e){const t={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!0,debug:0};return e===void 0||typeof e.geojsonvtOptions>"u"?t:lf(lf({},t),e.geojsonvtOptions)}function uP(e,t){const r=sP(t),i=r.extent||4096,s=Xx(e,r),u=(y,m)=>aP(m,s,y,i),n=Jx(lf(lf({},tP),t),{getTileData:u});return{data:e,dataArray:[],tilesetOptions:n,isTile:!0}}var pP=Object.defineProperty,lP=Object.defineProperties,cP=Object.getOwnPropertyDescriptors,h_=Object.getOwnPropertySymbols,dP=Object.prototype.hasOwnProperty,yP=Object.prototype.propertyIsEnumerable,f_=(e,t,r)=>t in e?pP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,m_=(e,t)=>{for(var r in t||(t={}))dP.call(t,r)&&f_(e,r,t[r]);if(h_)for(var r of h_(t))yP.call(t,r)&&f_(e,r,t[r]);return e},__=(e,t)=>lP(e,cP(t));function P8(e,t){const{extent:r=[121.168,30.2828,121.384,30.4219],coordinates:i,requestParameters:s={}}=t,u=new Promise(m=>{e instanceof HTMLImageElement||IE(e)?m([e]):hP(e,s,g=>{m(g)})}),n=Y0(i,r);return{originData:e,images:u,_id:1,dataArray:[{_id:0,coordinates:n}]}}function hP(e,t,r){const i=[];if(typeof e=="string")l2(__(m_({},t),{url:e}),(s,u)=>{u&&(i.push(u),r(i))});else{const s=e.length;let u=0;e.forEach(n=>{l2(__(m_({},t),{url:n}),(y,m)=>{u++,m&&i.push(m),u===s&&r(i)})})}return P8}var fP=Object.defineProperty,mP=Object.defineProperties,_P=Object.getOwnPropertyDescriptors,g_=Object.getOwnPropertySymbols,gP=Object.prototype.hasOwnProperty,vP=Object.prototype.propertyIsEnumerable,v_=(e,t,r)=>t in e?fP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,b8=(e,t)=>{for(var r in t||(t={}))gP.call(t,r)&&v_(e,r,t[r]);if(g_)for(var r of g_(t))vP.call(t,r)&&v_(e,r,t[r]);return e},A8=(e,t)=>mP(e,_P(t)),EP=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),xP=(e,t,r,i)=>EP(void 0,null,function*(){const s={x:t.x,y:t.y,z:t.z},u=R0(e,s);return new Promise(n=>{i?i(s,(y,m)=>{if(y||!m){const g={layers:{defaultLayer:{features:[]}}},x=new qd(g,t.x,t.y,t.z);n(x)}else{const g={layers:{defaultLayer:{features:m.features}}},x=new qd(g,t.x,t.y,t.z);n(x)}}):aE(A8(b8({},r),{url:u}),(y,m)=>{if(y||!m){const g={layers:{defaultLayer:{features:[]}}},x=new qd(g,t.x,t.y,t.z);n(x)}else{const x={layers:{defaultLayer:{features:JSON.parse(m)}}},b=new qd(x,t.x,t.y,t.z);n(b)}})})});function PP(e,t){const r=(s,u)=>xP(e,u,t==null?void 0:t.requestParameters,t.getCustomData),i=A8(b8({},t),{getTileData:r});return{dataArray:[],tilesetOptions:i,isTile:!0}}var bP=C0;function C0(e,t){this.x=e,this.y=t}C0.prototype={clone:function(){return new C0(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,r=e.y-this.y;return t*t+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,r=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=r,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),r=Math.sin(e),i=t*this.x-r*this.y,s=r*this.x+t*this.y;return this.x=i,this.y=s,this},_rotateAround:function(e,t){var r=Math.cos(e),i=Math.sin(e),s=t.x+r*(this.x-t.x)-i*(this.y-t.y),u=t.y+i*(this.x-t.x)+r*(this.y-t.y);return this.x=s,this.y=u,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}};C0.convert=function(e){return e instanceof C0?e:Array.isArray(e)?new C0(e[0],e[1]):e};var AP=bP,FP=B0;function B0(e,t,r,i,s){this.properties={},this.extent=r,this.type=0,this._pbf=e,this._geometry=-1,this._keys=i,this._values=s,e.readFields(TP,this,t)}function TP(e,t,r){e==1?t.id=r.readVarint():e==2?SP(r,t):e==3?t.type=r.readVarint():e==4&&(t._geometry=r.pos)}function SP(e,t){for(var r=e.readVarint()+e.pos;e.pos>3}if(i--,r===1||r===2)s+=e.readSVarint(),u+=e.readSVarint(),r===1&&(y&&n.push(y),y=[]),y.push(new AP(s,u));else if(r===7)y&&y.push(y[0].clone());else throw new Error("unknown command "+r)}return y&&n.push(y),n};B0.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,s=0,u=0,n=1/0,y=-1/0,m=1/0,g=-1/0;e.pos>3}if(i--,r===1||r===2)s+=e.readSVarint(),u+=e.readSVarint(),sy&&(y=s),ug&&(g=u);else if(r!==7)throw new Error("unknown command "+r)}return[n,m,y,g]};B0.prototype.toGeoJSON=function(e,t,r){var i=this.extent*Math.pow(2,r),s=this.extent*e,u=this.extent*t,n=this.loadGeometry(),y=B0.types[this.type],m,g;function x(R){for(var I=0;I>3;t=i===1?e.readString():i===2?e.readFloat():i===3?e.readDouble():i===4?e.readVarint64():i===5?e.readVarint():i===6?e.readSVarint():i===7?e.readBoolean():null}return t}F8.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new CP(this._pbf,t,this.extent,this._keys,this._values)};var DP=IP,OP=LP;function LP(e,t){this.layers=e.readFields(BP,{},t)}function BP(e,t,r){if(e===3){var i=new DP(r,r.readVarint()+r.pos);i.length&&(t[i.name]=i)}}var UP=OP,v6={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */v6.read=function(e,t,r,i,s){var u,n,y=s*8-i-1,m=(1<>1,x=-7,b=r?s-1:0,F=r?-1:1,R=e[t+b];for(b+=F,u=R&(1<<-x)-1,R>>=-x,x+=y;x>0;u=u*256+e[t+b],b+=F,x-=8);for(n=u&(1<<-x)-1,u>>=-x,x+=i;x>0;n=n*256+e[t+b],b+=F,x-=8);if(u===0)u=1-g;else{if(u===m)return n?NaN:(R?-1:1)*(1/0);n=n+Math.pow(2,i),u=u-g}return(R?-1:1)*n*Math.pow(2,u-i)};v6.write=function(e,t,r,i,s,u){var n,y,m,g=u*8-s-1,x=(1<>1,F=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,R=i?0:u-1,I=i?1:-1,U=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,n=x):(n=Math.floor(Math.log(t)/Math.LN2),t*(m=Math.pow(2,-n))<1&&(n--,m*=2),n+b>=1?t+=F/m:t+=F*Math.pow(2,1-b),t*m>=2&&(n++,m/=2),n+b>=x?(y=0,n=x):n+b>=1?(y=(t*m-1)*Math.pow(2,s),n=n+b):(y=t*Math.pow(2,b-1)*Math.pow(2,s),n=0));s>=8;e[r+R]=y&255,R+=I,y/=256,s-=8);for(n=n<0;e[r+R]=n&255,R+=I,n/=256,g-=8);e[r+R-I]|=U*128};var kP=vi,Fh=v6;function vi(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}vi.Varint=0;vi.Fixed64=1;vi.Bytes=2;vi.Fixed32=5;var v2=65536*65536,E_=1/v2,zP=12,T8=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");vi.prototype={destroy:function(){this.buf=null},readFields:function(e,t,r){for(r=r||this.length;this.pos>3,u=this.pos;this.type=i&7,e(s,t,this),this.pos===u&&this.skip(i)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=Th(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=P_(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=Th(this.buf,this.pos)+Th(this.buf,this.pos+4)*v2;return this.pos+=8,e},readSFixed64:function(){var e=Th(this.buf,this.pos)+P_(this.buf,this.pos+4)*v2;return this.pos+=8,e},readFloat:function(){var e=Fh.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=Fh.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,r,i;return i=t[this.pos++],r=i&127,i<128||(i=t[this.pos++],r|=(i&127)<<7,i<128)||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,VP(r,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=zP&&T8?tb(this.buf,t,e):eb(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==vi.Bytes)return e.push(this.readVarint(t));var r=Tl(this);for(e=e||[];this.pos127;);else if(t===vi.Bytes)this.pos=this.readVarint()+this.pos;else if(t===vi.Fixed32)this.pos+=4;else if(t===vi.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t268435455||e<0){HP(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(!!e)},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=rb(this.buf,e,this.pos);var r=this.pos-t;r>=128&&x_(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),Fh.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Fh.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var r=0;r=128&&x_(r,i,this),this.pos=r-1,this.writeVarint(i),this.pos+=i},writeMessage:function(e,t,r){this.writeTag(e,vi.Bytes),this.writeRawMessage(t,r)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,WP,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,XP,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,$P,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,ZP,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,YP,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,qP,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,KP,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,QP,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,JP,t)},writeBytesField:function(e,t){this.writeTag(e,vi.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,vi.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,vi.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,vi.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,vi.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,vi.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,vi.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,vi.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,vi.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,vi.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,!!t)}};function VP(e,t,r){var i=r.buf,s,u;if(u=i[r.pos++],s=(u&112)>>4,u<128||(u=i[r.pos++],s|=(u&127)<<3,u<128)||(u=i[r.pos++],s|=(u&127)<<10,u<128)||(u=i[r.pos++],s|=(u&127)<<17,u<128)||(u=i[r.pos++],s|=(u&127)<<24,u<128)||(u=i[r.pos++],s|=(u&1)<<31,u<128))return p0(e,s,t);throw new Error("Expected varint not more than 10 bytes")}function Tl(e){return e.type===vi.Bytes?e.readVarint()+e.pos:e.pos+1}function p0(e,t,r){return r?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function HP(e,t){var r,i;if(e>=0?(r=e%4294967296|0,i=e/4294967296|0):(r=~(-e%4294967296),i=~(-e/4294967296),r^4294967295?r=r+1|0:(r=0,i=i+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),GP(r,i,t),jP(i,t)}function GP(e,t,r){r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos]=e&127}function jP(e,t){var r=(e&7)<<4;t.buf[t.pos++]|=r|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function x_(e,t,r){var i=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));r.realloc(i);for(var s=r.pos-1;s>=e;s--)r.buf[s+i]=r.buf[s]}function WP(e,t){for(var r=0;r>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function P_(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function eb(e,t,r){for(var i="",s=t;s239?4:u>223?3:u>191?2:1;if(s+y>r)break;var m,g,x;y===1?u<128&&(n=u):y===2?(m=e[s+1],(m&192)===128&&(n=(u&31)<<6|m&63,n<=127&&(n=null))):y===3?(m=e[s+1],g=e[s+2],(m&192)===128&&(g&192)===128&&(n=(u&15)<<12|(m&63)<<6|g&63,(n<=2047||n>=55296&&n<=57343)&&(n=null))):y===4&&(m=e[s+1],g=e[s+2],x=e[s+3],(m&192)===128&&(g&192)===128&&(x&192)===128&&(n=(u&15)<<18|(m&63)<<12|(g&63)<<6|x&63,(n<=65535||n>=1114112)&&(n=null))),n===null?(n=65533,y=1):n>65535&&(n-=65536,i+=String.fromCharCode(n>>>10&1023|55296),n=56320|n&1023),i+=String.fromCharCode(n),s+=y}return i}function tb(e,t,r){return T8.decode(e.subarray(t,r))}function rb(e,t,r){for(var i=0,s,u;i55295&&s<57344)if(u)if(s<56320){e[r++]=239,e[r++]=191,e[r++]=189,u=s;continue}else s=u-55296<<10|s-56320|65536,u=null;else{s>56319||i+1===t.length?(e[r++]=239,e[r++]=191,e[r++]=189):u=s;continue}else u&&(e[r++]=239,e[r++]=191,e[r++]=189,u=null);s<128?e[r++]=s:(s<2048?e[r++]=s>>6|192:(s<65536?e[r++]=s>>12|224:(e[r++]=s>>18|240,e[r++]=s>>12&63|128),e[r++]=s>>6&63|128),e[r++]=s&63|128)}return r}const ob=_p(kP);var ib=Object.defineProperty,nb=Object.defineProperties,ab=Object.getOwnPropertyDescriptors,b_=Object.getOwnPropertySymbols,sb=Object.prototype.hasOwnProperty,ub=Object.prototype.propertyIsEnumerable,A_=(e,t,r)=>t in e?ib(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,F_=(e,t)=>{for(var r in t||(t={}))sb.call(t,r)&&A_(e,r,t[r]);if(b_)for(var r of b_(t))ub.call(t,r)&&A_(e,r,t[r]);return e},pb=(e,t)=>nb(e,ab(t)),T_=class{constructor(e,t,r,i){this.vectorLayerCache={},this.x=t,this.y=r,this.z=i,this.vectorTile=new UP(new ob(e))}getTileData(e){if(!e||!this.vectorTile.layers[e])return[];if(this.vectorLayerCache[e])return this.vectorLayerCache[e];const t=this.vectorTile.layers[e];if(Array.isArray(t.features))return this.vectorLayerCache[e]=t.features,t.features;const r=[];for(let i=0;it in e?lb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,E2=(e,t)=>{for(var r in t||(t={}))yb.call(t,r)&&w_(e,r,t[r]);if(S_)for(var r of S_(t))hb.call(t,r)&&w_(e,r,t[r]);return e},S8=(e,t)=>cb(e,db(t)),fb=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),mb={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,warp:!0},_b=(e,t,r,i,s)=>fb(void 0,null,function*(){const u=R0(e,t);return new Promise(n=>{if(s)s({x:r.x,y:r.y,z:r.z},(y,m)=>{if(y||!m)n(void 0);else{const g=new T_(m,r.x,r.y,r.z);n(g)}});else{const y=c6(S8(E2({},i),{url:u}),(m,g)=>{if(m||!g)n(void 0);else{const x=new T_(g,r.x,r.y,r.z);n(x)}});r.xhrCancel=()=>y.cancel()}})});function gb(e,t){const r=Array.isArray(e)?e[0]:e,i=(u,n)=>_b(r,u,n,t==null?void 0:t.requestParameters,t==null?void 0:t.getCustomData),s=S8(E2(E2({},mb),t),{getTileData:i});return{data:r,dataArray:[],tilesetOptions:s,isTile:!0}}function vb(e,t,r){switch(e){case"+":return t+r;case"-":return t-r;case"*":return t*r;case"/":return t/r;case"%":return t%r;case"^":return Math.pow(t,r);case"abs":return Math.abs(t);case"floor":return Math.floor(t);case"round":return Math.round(t);case"ceil":return Math.ceil(t);case"sin":return Math.sin(t);case"cos":return Math.cos(t);case"atan":return r===-1?Math.atan(t):Math.atan2(t,r);case"min":return Math.min(t,r);case"max":return Math.max(t,r);case"log10":return Math.log(t);case"log2":return Math.log2(t);default:return console.warn("Calculate symbol err! Return default 0"),0}}function uy(e,t){const{width:r,height:i}=t[0],s=t.map(m=>m.rasterData),u=r*i,n=[],y=JSON.stringify(e);for(let m=0;m{if(Array.isArray(i)&&i.length>0)switch(i[0]){case"band":try{e[s]=t[i[1]][r]}catch{console.warn("Raster Data err!"),e[s]=0}break;default:w8(i,t,r)}})}function Eb(e){const[t,r=-1,i=-1]=e;return t===void 0?(console.warn("Express err!"),["+",0,0]):[t.replace(/\s+/g,""),r,i]}function x2(e){const t=Eb(e),r=t[0];let i=t[1],s=t[2];return Array.isArray(i)&&(i=x2(e[1])),Array.isArray(s)&&(s=x2(e[2])),vb(r,i,s)}var xb={nd:{type:"operation",expression:["/",["-",["band",1],["band",0]],["+",["band",1],["band",0]]]},rgb:{type:"function",method:Pb}};function Pb(e,t){const r=e[0].rasterData,i=e[1].rasterData,s=e[2].rasterData,u=[],[n,y]=(t==null?void 0:t.countCut)||[2,98],m=(t==null?void 0:t.RMinMax)||I0(r,n,y),g=(t==null?void 0:t.GMinMax)||I0(i,n,y),x=(t==null?void 0:t.BMinMax)||I0(s,n,y);for(let b=0;by-m),s=i.length,u=i[Math.ceil(s*t/100)],n=i[Math.ceil(s*r/100)];return[u,n]}var bb=Object.defineProperty,Ab=Object.defineProperties,Fb=Object.getOwnPropertyDescriptors,R_=Object.getOwnPropertySymbols,Tb=Object.prototype.hasOwnProperty,Sb=Object.prototype.propertyIsEnumerable,C_=(e,t,r)=>t in e?bb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,wb=(e,t)=>{for(var r in t||(t={}))Tb.call(t,r)&&C_(e,r,t[r]);if(R_)for(var r of R_(t))Sb.call(t,r)&&C_(e,r,t[r]);return e},Rb=(e,t)=>Ab(e,Fb(t)),R8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())});function E6(e,t,r){return R8(this,null,function*(){if(e.length===0)return{rasterData:[0],width:1,heigh:1};const i=yield Promise.all(e.map(({data:m,bands:g=[0]})=>t(m,g))),s=[];i.forEach(m=>{Array.isArray(m)?s.push(...m):s.push(m)});const{width:u,height:n}=s[0];let y;switch(typeof r){case"function":y=r(s);break;case"object":Array.isArray(r)?y={rasterData:uy(r,s)}:y=Cb(r,s);break;default:y={rasterData:s[0].rasterData}}return Rb(wb({},y),{width:u,height:n})})}function Cb(e,t){const r=xb[e.type];if(r.type==="function")return r.method(t,e==null?void 0:e.options);if(r.type==="operation")return e.type==="rgb"?Ib(r.expression,t):{rasterData:uy(r.expression,t)}}function Ib(e,t){e.r===void 0&&console.warn("Channel R lost in Operation! Use band[0] to fill!"),e.g===void 0&&console.warn("Channel G lost in Operation! Use band[0] to fill!"),e.b===void 0&&console.warn("Channel B lost in Operation! Use band[0] to fill!");const r=uy(e.r||["band",0],t),i=uy(e.g||["band",0],t),s=uy(e.b||["band",0],t);return[r,i,s]}function P2(e,t,r,i){return R8(this,null,function*(){const s=yield E6(e,t,r);i(null,{data:s})})}function Mb(e,t){const{extent:r=[121.168,30.2828,121.384,30.4219],coordinates:i,width:s,height:u,min:n,max:y,format:m,operation:g}=t;let x,b,F;if(m===void 0||_8(e))x=Array.from(e),b=s,F=u;else{const U=Array.isArray(e)?e:[e];x=E6(U,m,g)}const R=Y0(i,r);return{_id:1,dataArray:[{_id:1,data:x,width:b,height:F,min:n,max:y,coordinates:R}]}}let Ny=function(e){return e.Normal="normal",e.PostProcessing="post-processing",e}({}),L=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.CULL_FACE=2884]="CULL_FACE",e[e.BLEND=3042]="BLEND",e[e.DITHER=3024]="DITHER",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.RED=6403]="RED",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.TEXTURE1=33985]="TEXTURE1",e[e.TEXTURE2=33986]="TEXTURE2",e[e.TEXTURE3=33987]="TEXTURE3",e[e.TEXTURE4=33988]="TEXTURE4",e[e.TEXTURE5=33989]="TEXTURE5",e[e.TEXTURE6=33990]="TEXTURE6",e[e.TEXTURE7=33991]="TEXTURE7",e[e.TEXTURE8=33992]="TEXTURE8",e[e.TEXTURE9=33993]="TEXTURE9",e[e.TEXTURE10=33994]="TEXTURE10",e[e.TEXTURE11=33995]="TEXTURE11",e[e.TEXTURE12=33996]="TEXTURE12",e[e.TEXTURE13=33997]="TEXTURE13",e[e.TEXTURE14=33998]="TEXTURE14",e[e.TEXTURE15=33999]="TEXTURE15",e[e.TEXTURE16=34e3]="TEXTURE16",e[e.TEXTURE17=34001]="TEXTURE17",e[e.TEXTURE18=34002]="TEXTURE18",e[e.TEXTURE19=34003]="TEXTURE19",e[e.TEXTURE20=34004]="TEXTURE20",e[e.TEXTURE21=34005]="TEXTURE21",e[e.TEXTURE22=34006]="TEXTURE22",e[e.TEXTURE23=34007]="TEXTURE23",e[e.TEXTURE24=34008]="TEXTURE24",e[e.TEXTURE25=34009]="TEXTURE25",e[e.TEXTURE26=34010]="TEXTURE26",e[e.TEXTURE27=34011]="TEXTURE27",e[e.TEXTURE28=34012]="TEXTURE28",e[e.TEXTURE29=34013]="TEXTURE29",e[e.TEXTURE30=34014]="TEXTURE30",e[e.TEXTURE31=34015]="TEXTURE31",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e}({});const Nb=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`,{camelCase:Db,isNil:Ob,upperFirst:Lb}=Qn;class Nl{constructor(){H(this,"shaderModuleService",void 0),H(this,"rendererService",void 0),H(this,"config",void 0),H(this,"quad",Nb),H(this,"enabled",!0),H(this,"renderToScreen",!1),H(this,"model",void 0),H(this,"name",void 0),H(this,"optionsToUpdate",{})}getName(){return this.name}setName(t){this.name=t}getType(){return Ny.PostProcessing}init(t,r){this.config=r,this.rendererService=t.getContainer().rendererService,this.shaderModuleService=t.getContainer().shaderModuleService;const{createAttribute:i,createBuffer:s,createModel:u}=this.rendererService,{vs:n,fs:y,uniforms:m}=this.setupShaders();this.model=u({vs:n,fs:y,attributes:{a_Position:i({buffer:s({data:[-4,-4,4,-4,0,4],type:L.FLOAT}),size:2})},uniforms:_t(_t({u_Texture:null},m),this.config&&this.convertOptionsToUniforms(this.config)),depth:{enable:!1},count:3,blend:{enable:this.getName()==="copy"}})}render(t,r){const i=t.multiPassRenderer.getPostProcessor(),{useFramebuffer:s,getViewportSize:u,clear:n}=this.rendererService,{width:y,height:m}=u();s(this.renderToScreen?null:i.getWriteFBO(),()=>{n({framebuffer:i.getWriteFBO(),color:[0,0,0,0],depth:1,stencil:0});const g=_t({u_BloomFinal:0,u_Texture:i.getReadFBO(),u_ViewportSize:[y,m]},this.convertOptionsToUniforms(this.optionsToUpdate));r&&(g.u_BloomFinal=1,g.u_Texture2=r),this.model.draw({uniforms:g})})}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}setRenderToScreen(t){this.renderToScreen=t}updateOptions(t){this.optionsToUpdate=_t(_t({},this.optionsToUpdate),t)}setupShaders(){throw new Error("Method not implemented.")}convertOptionsToUniforms(t){const r={};return Object.keys(t).forEach(i=>{Ob(t[i])||(r[`u_${Lb(Db(i))}`]=t[i])}),r}}function Bb(e){let t=0;switch(e){case"vec2":case"ivec2":t=2;break;case"vec3":case"ivec3":t=3;break;case"vec4":case"ivec4":case"mat2":t=4;break;case"mat3":t=9;break;case"mat4":t=16;break}return t}const C8=/uniform\s+(bool|float|int|vec2|vec3|vec4|ivec2|ivec3|ivec4|mat2|mat3|mat4|sampler2D|samplerCube)\s+([\s\S]*?);/g;function I_(e,t=!1){const r={};return e=e.replace(C8,(i,s,u)=>{const n=u.split(":"),y=n[0].trim();let m="";switch(n.length>1&&(m=n[1].trim()),s){case"bool":m=m==="true";break;case"float":case"int":m=Number(m);break;case"vec2":case"vec3":case"vec4":case"ivec2":case"ivec3":case"ivec4":case"mat2":case"mat3":case"mat4":m?m=m.replace("[","").replace("]","").split(",").reduce((g,x)=>(g.push(Number(x.trim())),g),[]):m=new Array(Bb(s)).fill(0);break}return r[y]=m,`${t?"uniform ":""}${s} ${y}; `}),{content:e,uniforms:r}}function Hm(e){let{content:t,uniforms:r}=I_(e,!0);return t=t.replace(/(\s*uniform\s*.*\s*){((?:\s*.*\s*)*?)};/g,(i,s,u)=>{u=u.trim().replace(/^.*$/gm,m=>`uniform ${m}`);const{content:n,uniforms:y}=I_(u);return Object.assign(r,y),`${s}{ ${n} };`}),{content:t,uniforms:r}}function M_(e){const t={};return e.replace(C8,(r,i,s)=>{const u=s.trim();return t[u]?"":(t[u]=!0,`uniform ${i} ${u}; `)})}const a1={ProjectionMatrix:"u_ProjectionMatrix",ViewMatrix:"u_ViewMatrix",ViewProjectionMatrix:"u_ViewProjectionMatrix",Zoom:"u_Zoom",ZoomScale:"u_ZoomScale",FocalDistance:"u_FocalDistance",CameraPosition:"u_CameraPosition"};let cf=function(e){return e.TOPRIGHT="topright",e.TOPLEFT="topleft",e.BOTTOMRIGHT="bottomright",e.BOTTOMLEFT="bottomleft",e.TOPCENTER="topcenter",e.BOTTOMCENTER="bottomcenter",e.LEFTCENTER="leftcenter",e.RIGHTCENTER="rightcenter",e.LEFTTOP="lefttop",e.RIGHTTOP="righttop",e.LEFTBOTTOM="leftbottom",e.RIGHTBOTTOM="rightbottom",e}({}),df=function(e){return e[e.LNGLAT=1]="LNGLAT",e[e.LNGLAT_OFFSET=2]="LNGLAT_OFFSET",e[e.VECTOR_TILE=3]="VECTOR_TILE",e[e.IDENTITY=4]="IDENTITY",e[e.METER_OFFSET=5]="METER_OFFSET",e}({});const c0={CoordinateSystem:"u_CoordinateSystem",ViewportCenter:"u_ViewportCenter",ViewportCenterProjection:"u_ViewportCenterProjection",PixelsPerDegree:"u_PixelsPerDegree",PixelsPerDegree2:"u_PixelsPerDegree2",PixelsPerMeter:"u_PixelsPerMeter"};var Ea={LayerInitStart:"layerInitStart",LayerInitEnd:"layerInitEnd",SourceInitStart:"sourceInitStart",SourceInitEnd:"sourceInitEnd",ScaleInitStart:"scaleInitStart",ScaleInitEnd:"scaleInitEnd",MappingStart:"mappingStart",MappingEnd:"mappingEnd",BuildModelStart:"buildModelStart",BuildModelEnd:"buildModelEnd"};let Us=function(e){return e.Hover="hover",e.Click="click",e.Select="select",e.Active="active",e.Drag="drag",e}({}),_c=function(e){return e.normal="normal",e.additive="additive",e.subtractive="subtractive",e.min="min",e.max="max",e.none="none",e}({}),p1=function(e){return e.MULTIPLE="MULTIPLE",e.SINGLE="SINGLE",e}({}),jf=function(e){return e.AND="and",e.OR="or",e}({}),Ga=function(e){return e.INIT="init",e.UPDATE="update",e}({}),Ei=function(e){return e.LINEAR="linear",e.SEQUENTIAL="sequential",e.POWER="power",e.LOG="log",e.IDENTITY="identity",e.TIME="time",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.CAT="cat",e.DIVERGING="diverging",e.CUSTOM="threshold",e}({}),d0=function(e){return e.CONSTANT="constant",e.VARIABLE="variable",e}({}),br=function(e){return e[e.Attribute=0]="Attribute",e[e.InstancedAttribute=1]="InstancedAttribute",e[e.Uniform=2]="Uniform",e}({});const Ub=["mapload","mapchange","mapAfterFrameChange"];var x6={exports:{}};x6.exports=Dy;x6.exports.default=Dy;var py=1e20;function Dy(e,t,r,i,s,u){this.fontSize=e||24,this.buffer=t===void 0?3:t,this.cutoff=i||.25,this.fontFamily=s||"sans-serif",this.fontWeight=u||"normal",this.radius=r||8;var n=this.size=this.fontSize+this.buffer*2,y=n+this.buffer*2;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=n,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textAlign="left",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(y*y),this.gridInner=new Float64Array(y*y),this.f=new Float64Array(y),this.z=new Float64Array(y+1),this.v=new Uint16Array(y),this.useMetrics=this.ctx.measureText("A").actualBoundingBoxLeft!==void 0,this.middle=Math.round(n/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function kb(e,t,r,i,s,u,n){u.fill(py,0,t*r),n.fill(0,0,t*r);for(var y=(t-i)/2,m=0;m-1);m++,u[m]=y,n[m]=g,n[m+1]=py}for(y=0,m=0;y{if(!u[b]){const R=t(b,F);g+Sd>s&&(g=0,m++),u[b]={x:g,y:y+m*Sd,width:Sd,height:Sd,advance:R},g+=Sd}});const x=r+i*2;return{mapping:u,xOffset:g,yOffset:y+m*x,canvasHeight:I8(y+(m+1)*x)}}function jb(e,t,r){let i=0,s=0,u=0,n=[];const y={};for(const g of e)if(!y[g.id]){const{size:x}=g;i+x+t>r&&(O_(y,n,s),i=0,s=u+s+t,u=0,n=[]),n.push({icon:g,xOffset:i}),i=i+x+t,u=Math.max(u,x)}n.length>0&&O_(y,n,s);const m=I8(u+s+t);return{mapping:y,canvasHeight:m}}function O_(e,t,r){for(const i of t){const{icon:s,xOffset:u}=i;e[s.id]=_t(_t({},s),{},{x:u,y:r,image:s.image,width:s.width,height:s.height})}}function I8(e){return Math.pow(2,Math.ceil(Math.log2(e)))}const Wb=eA(),Xb="sans-serif",Zb="normal",Yb=24,$b=3,qb=.25,Kb=8,L_=1024,Qb=1,B_=1,Jb=3;function eA(){const e=[];for(let t=32;t<128;t++)e.push(String.fromCharCode(t));return e}function U_(e,t,r,i){e.font=`${i} ${r}px ${t}`,e.fillStyle="black",e.textBaseline="middle"}function k_(e,t){for(let r=0;r{this.iconFontGlyphs[r.name]=r.unicode})}addIconFont(t,r){this.iconFontMap.set(t,r)}getIconFontKey(t){return this.iconFontMap.get(t)||t}getGlyph(t){return this.iconFontGlyphs[t]?String.fromCharCode(parseInt(this.iconFontGlyphs[t],16)):""}setFontOptions(t){this.fontOptions=_t(_t({},this.fontOptions),t),this.key=this.getKey();const r=this.getNewChars(this.key,this.fontOptions.characterSet),i=this.cache.get(this.key);if(i&&r.length===0)return;const s=this.generateFontAtlas(this.key,r,i);this.fontAtlas=s,this.cache.set(this.key,s)}addFontFace(t,r){const i=document.createElement("style");i.type="text/css",i.innerText=` @font-face{ font-family: '${t}'; src: url('${r}') format('woff2'), url('${r}') format('woff'), url('${r}') format('truetype'); }`,i.onload=()=>{if(document.fonts)try{document.fonts.load(`24px ${t}`,"L7text"),document.fonts.ready.then(()=>{this.emit("fontloaded",{fontFamily:t})})}catch(s){console.warn("当前环境不支持 document.fonts !"),console.warn("当前环境不支持 iconfont !"),console.warn(s)}},document.getElementsByTagName("head")[0].appendChild(i)}destroy(){this.cache.clear(),this.iconFontMap.clear()}generateFontAtlas(t,r,i){const{fontFamily:s,fontWeight:u,fontSize:n,buffer:y,sdf:m,radius:g,cutoff:x,iconfont:b}=this.fontOptions;let F=i&&i.data;F||(F=window.document.createElement("canvas"),F.width=L_);const R=F.getContext("2d",{willReadFrequently:!0});U_(R,s,n,u);const{mapping:I,canvasHeight:U,xOffset:V,yOffset:J}=Gb(_t({getFontWidth:te=>R.measureText(te).width,fontHeight:n*B_,buffer:y,characterSet:r,maxCanvasWidth:L_},i&&{mapping:i.mapping,xOffset:i.xOffset,yOffset:i.yOffset})),Q=R.getImageData(0,0,F.width,F.height);if(F.height=U,R.putImageData(Q,0,0),U_(R,s,n,u),m){const te=new Hb(n,y,g,x,s,u),ne=R.getImageData(0,0,te.size,te.size);for(const pe of r){if(b){const Oe=String.fromCharCode(parseInt(pe.replace("&#x","").replace(";",""),16)),Ee=te.draw(Oe);k_(Ee,ne)}else k_(te.draw(pe),ne);R.putImageData(ne,I[pe].x,I[pe].y)}}else for(const te of r)R.fillText(te,I[te].x,I[te].y+n*Qb);return{xOffset:V,yOffset:J,mapping:I,data:F,width:F.width,height:F.height}}getKey(){const{fontFamily:t,fontWeight:r}=this.fontOptions;return`${t}_${r}`}getNewChars(t,r){const i=this.cache.get(t);if(!i)return r;const s=[],u=i.mapping,n=new Set(Object.keys(u));return new Set(r).forEach(m=>{n.has(m)||s.push(m)}),s}}function z_(e,t,r,i,s,u,n){try{var y=e[u](n),m=y.value}catch(g){return void r(g)}y.done?t(m):Promise.resolve(m).then(i,s)}function mt(e){return function(){var t=this,r=arguments;return new Promise(function(i,s){var u=e.apply(t,r);function n(m){z_(u,i,s,n,y,"next",m)}function y(m){z_(u,i,s,n,y,"throw",m)}n(void 0)})}}const rA=3,V_=1024,wd=64;class oA extends du.EventEmitter{constructor(...t){super(...t),H(this,"canvasHeight",128),H(this,"texture",void 0),H(this,"canvas",void 0),H(this,"iconData",void 0),H(this,"iconMap",void 0),H(this,"ctx",void 0),H(this,"loadingImageCount",0)}isLoading(){return this.loadingImageCount===0}init(){this.iconData=[],this.iconMap={},this.canvas=window.document.createElement("canvas"),this.canvas.width=128,this.canvas.height=128,this.ctx=this.canvas.getContext("2d")}addImage(t,r){var i=this;return mt(function*(){let s=new Image;i.loadingImageCount++,i.hasImage(t)?console.warn("Image Id already exists"):i.iconData.push({id:t,size:wd}),i.updateIconMap(),s=yield i.loadImage(r);const u=i.iconData.find(n=>n.id===t);u&&(u.image=s,u.width=s.width,u.height=s.height),i.update()})()}addImageMini(t,r,i){const s=i.getSceneConfig().canvas;let u=s.createImage();if(this.loadingImageCount++,this.hasImage(t))throw new Error("Image Id already exists");this.iconData.push({id:t,size:wd}),this.updateIconMap(),this.loadImageMini(r,s).then(n=>{u=n;const y=this.iconData.find(m=>m.id===t);y&&(y.image=u,y.width=u.width,y.height=u.height),this.update()})}getTexture(){return this.texture}getIconMap(){return this.iconMap}getCanvas(){return this.canvas}hasImage(t){return this.iconMap.hasOwnProperty(t)}removeImage(t){this.hasImage(t)&&(this.iconData=this.iconData.filter(r=>r.id!==t),delete this.iconMap[t],this.update())}destroy(){this.removeAllListeners("imageUpdate"),this.iconData=[],this.iconMap={}}loadImage(t){return new Promise((r,i)=>{if(t instanceof HTMLImageElement){r(t);return}const s=new Image;s.crossOrigin="anonymous",s.onload=()=>{r(s)},s.onerror=()=>{i(new Error("Could not load image at "+t))},s.src=t instanceof File?URL.createObjectURL(t):t})}update(){this.updateIconMap(),this.updateIconAtlas(),this.loadingImageCount--,this.loadingImageCount===0&&this.emit("imageUpdate")}updateIconAtlas(){this.canvas.width=V_,this.canvas.height=this.canvasHeight,Object.keys(this.iconMap).forEach(t=>{const{x:r,y:i,image:s,width:u=64,height:n=64}=this.iconMap[t],m=Math.max(u,n)/wd,g=n/m,x=u/m;s&&this.ctx.drawImage(s,r+(wd-x)/2,i+(wd-g)/2,x,g)})}updateIconMap(){const{mapping:t,canvasHeight:r}=jb(this.iconData,rA,V_);this.iconMap=t,this.canvasHeight=r}loadImageMini(t,r){return new Promise((i,s)=>{const u=r.createImage();u.crossOrigin="anonymous",u.onload=()=>{i(u)},u.onerror=()=>{s(new Error("Could not load image at "+t))},u.src=t})}}class iA{constructor(){H(this,"viewport",void 0),H(this,"overridedViewProjectionMatrix",void 0),H(this,"viewMatrixInverse",void 0),H(this,"cameraPosition",void 0)}init(){}update(t){this.viewport=t,this.viewMatrixInverse=Vf(),o6(this.viewMatrixInverse,t.getViewMatrix()),this.cameraPosition=[this.viewMatrixInverse[12],this.viewMatrixInverse[13],this.viewMatrixInverse[14]]}getProjectionMatrix(){return this.viewport.getProjectionMatrix()}getModelMatrix(){return this.viewport.getModelMatrix()}getViewMatrix(){return this.viewport.getViewMatrix()}getViewMatrixUncentered(){return this.viewport.getViewMatrixUncentered()}getViewProjectionMatrixUncentered(){return this.viewport.getViewProjectionMatrixUncentered()}getViewProjectionMatrix(){return this.overridedViewProjectionMatrix||this.viewport.getViewProjectionMatrix()}getZoom(){return this.viewport.getZoom()}getZoomScale(){return this.viewport.getZoomScale()}getCenter(){const[t,r]=this.viewport.getCenter();return[t,r]}getFocalDistance(){return this.viewport.getFocalDistance()}getCameraPosition(){return this.cameraPosition}projectFlat(t,r){return this.viewport.projectFlat(t,r)}setViewProjectionMatrix(t){this.overridedViewProjectionMatrix=t}}const nA={topleft:"column",topright:"column",bottomright:"column",bottomleft:"column",leftcenter:"column",rightcenter:"column",topcenter:"row",bottomcenter:"row",lefttop:"row",righttop:"row",leftbottom:"row",rightbottom:"row"};class aA{constructor(){H(this,"container",void 0),H(this,"controlCorners",void 0),H(this,"controlContainer",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"controls",[]),H(this,"unAddControls",[])}init(t,r){this.container=t.container,this.scene=r,this.mapsService=r.mapService,this.initControlPos()}addControl(t,r){r.mapService.map?(t.addTo(this.scene),this.controls.push(t)):this.unAddControls.push(t)}getControlByName(t){return this.controls.find(r=>r.controlOption.name===t)}removeControl(t){const r=this.controls.indexOf(t);return r>-1&&this.controls.splice(r,1),t.remove(),this}addControls(){this.unAddControls.forEach(t=>{t.addTo(this.scene),this.controls.push(t)}),this.unAddControls=[]}destroy(){for(const t of this.controls)t.remove();this.controls=[],this.clearControlPos()}initControlPos(){const t=this.controlCorners={},r="l7-",i=this.controlContainer=lu("div",r+"control-container",this.container);function s(n=[]){const y=n.map(m=>r+m).join(" ");t[n.filter(m=>!["row","column"].includes(m)).join("")]=lu("div",y,i)}function u(n){return[...n.replace(/^(top|bottom|left|right|center)/,"$1-").split("-"),nA[n]]}Object.values(cf).forEach(n=>{s(u(n))}),this.checkCornerOverlap()}clearControlPos(){for(const t in this.controlCorners)this.controlCorners[t]&&uf(this.controlCorners[t]);this.controlContainer&&uf(this.controlContainer)}checkCornerOverlap(){const t=window.MutationObserver;if(t)for(const r of Object.keys(this.controlCorners)){const i=r.match(/^(top|bottom)(left|right)$/);if(i){const[,s,u]=i,n=this.controlCorners[`${s}${u}`];new t(([{target:m}])=>{n&&(n.style[s]=m.clientHeight+"px")}).observe(this.controlCorners[`${u}${s}`],{childList:!0,attributes:!0})}}}}class sA{constructor(){H(this,"container",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"markers",[]),H(this,"markerLayers",[]),H(this,"unAddMarkers",[]),H(this,"unAddMarkerLayers",[])}addMarkerLayer(t){this.mapsService.map&&this.mapsService.getMarkerContainer()?(this.markerLayers.push(t),t.addTo(this.scene)):this.unAddMarkerLayers.push(t)}removeMarkerLayer(t){t.destroy(),this.markerLayers.indexOf(t);const r=this.markerLayers.indexOf(t);r>-1&&this.markerLayers.splice(r,1)}addMarker(t){this.mapsService.map&&this.mapsService.getMarkerContainer()?(this.markers.push(t),t.addTo(this.scene)):this.unAddMarkers.push(t)}addMarkers(){this.unAddMarkers.forEach(t=>{t.addTo(this.scene),this.markers.push(t)}),this.unAddMarkers=[]}addMarkerLayers(){this.unAddMarkerLayers.forEach(t=>{this.markerLayers.push(t),t.addTo(this.scene)}),this.unAddMarkers=[]}removeMarker(t){t.remove(),this.markers.indexOf(t);const r=this.markers.indexOf(t);r>-1&&this.markers.splice(r,1)}removeAllMarkers(){this.destroy()}init(t){this.scene=t,this.mapsService=t.mapService}destroy(){this.markers.forEach(t=>{t.remove()}),this.markers=[],this.markerLayers.forEach(t=>{t.destroy()}),this.markerLayers=[]}removeMakerLayerMarker(t){t.destroy()}}class uA{constructor(){H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"popups",[]),H(this,"unAddPopups",[])}get isMarkerReady(){return this.mapsService.map&&this.mapsService.getMarkerContainer()}removePopup(t){t!=null&&t.isOpen()&&t.remove();const r=this.popups.indexOf(t);r>-1&&this.popups.splice(r,1);const i=this.unAddPopups.indexOf(t);i>-1&&this.unAddPopups.splice(i,1)}destroy(){this.popups.forEach(t=>t.remove())}addPopup(t){t&&t.getOptions().autoClose&&[...this.popups,...this.unAddPopups].forEach(r=>{r.getOptions().autoClose&&this.removePopup(r)}),this.isMarkerReady?(t.addTo(this.scene),this.popups.push(t)):this.unAddPopups.push(t),t.on("close",()=>{this.removePopup(t)})}initPopup(){this.unAddPopups.length&&this.unAddPopups.forEach(t=>{this.addPopup(t),this.unAddPopups=[]})}init(t){this.scene=t,this.mapsService=t.mapService}}const pA={MapToken:"您正在使用 Demo 测试 Token, 生产环境务必自行注册 Token 确保服务稳定 高德地图申请地址 https://lbs.amap.com/api/javascript-api/guide/abc/prepare Mapbox地图申请地址 https://docs.mapbox.com/help/glossary/access-token/",SDK:"请确认引入了mapbox-gl api且在L7之前引入"},{merge:lA}=Qn,cA={id:"map",logoPosition:"bottomleft",logoVisible:!0,antialias:!0,stencil:!0,preserveDrawingBuffer:!1,pickBufferScale:1,fitBoundsOptions:{animate:!1}},dA={colors:["rgb(103,0,31)","rgb(178,24,43)","rgb(214,96,77)","rgb(244,165,130)","rgb(253,219,199)","rgb(247,247,247)","rgb(209,229,240)","rgb(146,197,222)","rgb(67,147,195)","rgb(33,102,172)","rgb(5,48,97)"],size:10,shape:"circle",scales:{},shape2d:["circle","triangle","square","pentagon","hexagon","octogon","hexagram","rhombus","vesica"],shape3d:["cylinder","triangleColumn","hexagonColumn","squareColumn"],minZoom:-1,maxZoom:24,visible:!0,autoFit:!1,pickingBuffer:0,enablePropagation:!1,zIndex:0,blend:"normal",maskLayers:[],enableMask:!0,maskOperation:jf.AND,pickedFeatureID:-1,enableMultiPassRenderer:!1,enablePicking:!0,active:!1,activeColor:"#2f54eb",enableHighlight:!1,enableSelect:!1,highlightColor:"#2f54eb",activeMix:0,selectColor:"blue",selectMix:0,enableLighting:!1,animateOption:{enable:!1,interval:.2,duration:4,trailLength:.15},forward:!0};class yA{constructor(){H(this,"sceneConfigCache",{}),H(this,"layerConfigCache",{}),H(this,"layerAttributeConfigCache",{})}getSceneConfig(t){return this.sceneConfigCache[t]}getSceneWarninfo(t){return pA[t]}setSceneConfig(t,r){this.sceneConfigCache[t]=_t(_t({},cA),r)}getLayerConfig(t){return this.layerConfigCache[t]}setLayerConfig(t,r,i){this.layerConfigCache[r]=_t({},lA({},this.sceneConfigCache[t],dA,i))}getAttributeConfig(t){return this.layerAttributeConfigCache[t]}setAttributeConfig(t,r){this.layerAttributeConfigCache[t]=_t(_t({},this.layerAttributeConfigCache[t]),r)}clean(){this.sceneConfigCache={},this.layerConfigCache={}}}const Gm=Math.PI/180,hA=512,H_=4003e4;function G_({latitude:e=0,zoom:t=0,scale:r,highPrecision:i=!1,flipY:s=!1}){r=r!==void 0?r:Math.pow(2,t);const u={},n=hA*r,y=Math.cos(e*Gm),m=n/360,g=m/y,x=n/H_/y;if(u.pixelsPerMeter=[x,-x,x],u.metersPerPixel=[1/x,-1/x,1/x],u.pixelsPerDegree=[m,-g,x],u.degreesPerPixel=[1/m,-1/g,1/x],i){const b=Gm*Math.tan(e*Gm)/y,F=m*b/2,R=n/H_*b,I=R/g*x;u.pixelsPerDegree2=[0,-F,R],u.pixelsPerMeter2=[I,0,I],s&&(u.pixelsPerDegree2[1]=-u.pixelsPerDegree2[1],u.pixelsPerMeter2[1]=-u.pixelsPerMeter2[1])}return s&&(u.pixelsPerMeter[1]=-u.pixelsPerMeter[1],u.metersPerPixel[1]=-u.metersPerPixel[1],u.pixelsPerDegree[1]=-u.pixelsPerDegree[1],u.degreesPerPixel[1]=-u.degreesPerPixel[1]),u}const fA=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];class mA{constructor(t){H(this,"needRefresh",!0),H(this,"coordinateSystem",void 0),H(this,"viewportCenter",void 0),H(this,"viewportCenterProjection",void 0),H(this,"pixelsPerDegree",void 0),H(this,"pixelsPerDegree2",void 0),H(this,"pixelsPerMeter",void 0),this.cameraService=t}refresh(t){const r=this.cameraService.getZoom(),i=t||this.cameraService.getCenter(),{pixelsPerMeter:s,pixelsPerDegree:u}=G_({latitude:i[1],zoom:r});this.viewportCenter=i,this.viewportCenterProjection=[0,0,0,0],this.pixelsPerMeter=s,this.pixelsPerDegree=u,this.pixelsPerDegree2=[0,0,0],this.coordinateSystem===df.LNGLAT?this.cameraService.setViewProjectionMatrix(void 0):this.coordinateSystem===df.LNGLAT_OFFSET&&this.calculateLnglatOffset(i,r),this.needRefresh=!1}getCoordinateSystem(){return this.coordinateSystem}setCoordinateSystem(t){this.coordinateSystem=t}getViewportCenter(){return this.viewportCenter}getViewportCenterProjection(){return this.viewportCenterProjection}getPixelsPerDegree(){return this.pixelsPerDegree}getPixelsPerDegree2(){return this.pixelsPerDegree2}getPixelsPerMeter(){return this.pixelsPerMeter}calculateLnglatOffset(t,r,i,s){const{pixelsPerMeter:u,pixelsPerDegree:n,pixelsPerDegree2:y}=G_({latitude:t[1],zoom:r,scale:i,flipY:s,highPrecision:!0});let m=this.cameraService.getViewMatrix();const g=this.cameraService.getProjectionMatrix();let x=S0([],g,m);const b=this.cameraService.projectFlat([Math.fround(t[0]),Math.fround(t[1])],Math.pow(2,r));this.viewportCenterProjection=n6([],[b[0],b[1],0,1],x),m=this.cameraService.getViewMatrixUncentered()||m,x=S0([],g,m),x=S0([],x,fA),this.cameraService.setViewProjectionMatrix(x),this.pixelsPerMeter=u,this.pixelsPerDegree=n,this.pixelsPerDegree2=y}}class _A extends du.EventEmitter{constructor(...t){super(...t),H(this,"renderMap",new Map),H(this,"enable",!1),H(this,"renderEnable",!1),H(this,"cacheLogs",{})}setEnable(t){this.enable=!!t}log(t,r){if(!this.enable)return;const i=t.split(".");let s=null;i.forEach((u,n)=>{s!==null?(s[u]||(s[u]={}),n!==i.length-1&&(s=s[u])):(this.cacheLogs[u]||(this.cacheLogs[u]={}),n!==i.length-1&&(s=this.cacheLogs[u])),n===i.length-1&&(s[u]=_t(_t({time:Date.now()},s[u]),r))})}getLog(t){switch(typeof t){case"string":return this.cacheLogs[t];case"object":return t.map(r=>this.cacheLogs[r]).filter(r=>r!==void 0);case"undefined":return this.cacheLogs}}removeLog(t){delete this.cacheLogs[t]}generateRenderUid(){return this.renderEnable?VE():""}renderDebug(t){this.renderEnable=t}renderStart(t){if(!this.renderEnable||!this.enable)return;const r=this.renderMap.get(t)||{};this.renderMap.set(t,_t(_t({},r),{},{renderUid:t,renderStart:Date.now()}))}renderEnd(t){if(!this.renderEnable||!this.enable)return;const r=this.renderMap.get(t);if(r){const i=r.renderStart,s=Date.now();this.emit("renderEnd",_t(_t({},r),{},{renderEnd:s,renderDuration:s-i})),this.renderMap.delete(t)}}destroy(){this.cacheLogs=null,this.renderMap.clear()}}var M8={exports:{}};/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */(function(e){(function(t,r,i,s){var u=["","webkit","Moz","MS","ms","o"],n=r.createElement("div"),y="function",m=Math.round,g=Math.abs,x=Date.now;function b(X,re,we){return setTimeout(te(X,we),re)}function F(X,re,we){return Array.isArray(X)?(R(X,we[re],we),!0):!1}function R(X,re,we){var rt;if(X)if(X.forEach)X.forEach(re,we);else if(X.length!==s)for(rt=0;rt\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Oo=t.console&&(t.console.warn||t.console.log);return Oo&&Oo.call(t.console,rt,wr),X.apply(this,arguments)}}var U;typeof Object.assign!="function"?U=function(re){if(re===s||re===null)throw new TypeError("Cannot convert undefined or null to object");for(var we=Object(re),rt=1;rt-1}function Ge(X){return X.trim().split(/\s+/g)}function Ae(X,re,we){if(X.indexOf&&!we)return X.indexOf(re);for(var rt=0;rtcn[re]}),rt}function st(X,re){for(var we,rt,zt=re[0].toUpperCase()+re.slice(1),wr=0;wr1&&!we.firstMultiple?we.firstMultiple=ss(re):zt===1&&(we.firstMultiple=!1);var wr=we.firstInput,Oo=we.firstMultiple,Xi=Oo?Oo.center:wr.center,Sn=re.center=si(rt);re.timeStamp=x(),re.deltaTime=re.timeStamp-wr.timeStamp,re.angle=vs(Xi,Sn),re.distance=Tn(Xi,Sn),ja(we,re),re.offsetDirection=pa(re.deltaX,re.deltaY);var cn=Fn(re.deltaTime,re.deltaX,re.deltaY);re.overallVelocityX=cn.x,re.overallVelocityY=cn.y,re.overallVelocity=g(cn.x)>g(cn.y)?cn.x:cn.y,re.scale=Oo?us(Oo.pointers,rt):1,re.rotation=Oo?zi(Oo.pointers,rt):0,re.maxPointers=we.prevInput?re.pointers.length>we.prevInput.maxPointers?re.pointers.length:we.prevInput.maxPointers:re.pointers.length,An(we,re);var Xa=X.element;He(re.srcEvent.target,Xa)&&(Xa=re.srcEvent.target),re.target=Xa}function ja(X,re){var we=re.center,rt=X.offsetDelta||{},zt=X.prevDelta||{},wr=X.prevInput||{};(re.eventType===bo||wr.eventType===$e)&&(zt=X.prevDelta={x:wr.deltaX||0,y:wr.deltaY||0},rt=X.offsetDelta={x:we.x,y:we.y}),re.deltaX=zt.x+(we.x-rt.x),re.deltaY=zt.y+(we.y-rt.y)}function An(X,re){var we=X.lastInterval||re,rt=re.timeStamp-we.timeStamp,zt,wr,Oo,Xi;if(re.eventType!=Yt&&(rt>Wi||we.velocity===s)){var Sn=re.deltaX-we.deltaX,cn=re.deltaY-we.deltaY,Xa=Fn(rt,Sn,cn);wr=Xa.x,Oo=Xa.y,zt=g(Xa.x)>g(Xa.y)?Xa.x:Xa.y,Xi=pa(Sn,cn),X.lastInterval=re}else zt=we.velocity,wr=we.velocityX,Oo=we.velocityY,Xi=we.direction;re.velocity=zt,re.velocityX=wr,re.velocityY=Oo,re.direction=Xi}function ss(X){for(var re=[],we=0;we=g(re)?X<0?Ft:xr:re<0?io:go}function Tn(X,re,we){we||(we=$i);var rt=re[we[0]]-X[we[0]],zt=re[we[1]]-X[we[1]];return Math.sqrt(rt*rt+zt*zt)}function vs(X,re,we){we||(we=$i);var rt=re[we[0]]-X[we[0]],zt=re[we[1]]-X[we[1]];return Math.atan2(zt,rt)*180/Math.PI}function zi(X,re){return vs(re[1],re[0],Qo)+vs(X[1],X[0],Qo)}function us(X,re){return Tn(re[0],re[1],Qo)/Tn(X[0],X[1],Qo)}var xa={mousedown:bo,mousemove:Ni,mouseup:$e},Hs="mousedown",Zu="mousemove mouseup";function Gs(){this.evEl=Hs,this.evWin=Zu,this.pressed=!1,ti.apply(this,arguments)}Q(Gs,ti,{handler:function(re){var we=xa[re.type];we&bo&&re.button===0&&(this.pressed=!0),we&Ni&&re.which!==1&&(we=$e),this.pressed&&(we&$e&&(this.pressed=!1),this.callback(this.manager,we,{pointers:[re],changedPointers:[re],pointerType:So,srcEvent:re}))}});var vp={pointerdown:bo,pointermove:Ni,pointerup:$e,pointercancel:Yt,pointerout:Yt},js={2:Jr,3:_o,4:So,5:oo},Ma="pointerdown",Na="pointermove pointerup pointercancel";t.MSPointerEvent&&!t.PointerEvent&&(Ma="MSPointerDown",Na="MSPointerMove MSPointerUp MSPointerCancel");function Es(){this.evEl=Ma,this.evWin=Na,ti.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}Q(Es,ti,{handler:function(re){var we=this.store,rt=!1,zt=re.type.toLowerCase().replace("ms",""),wr=vp[zt],Oo=js[re.pointerType]||re.pointerType,Xi=Oo==Jr,Sn=Ae(we,re.pointerId,"pointerId");wr&bo&&(re.button===0||Xi)?Sn<0&&(we.push(re),Sn=we.length-1):wr&($e|Yt)&&(rt=!0),!(Sn<0)&&(we[Sn]=re,this.callback(this.manager,wr,{pointers:we,changedPointers:[re],pointerType:Oo,srcEvent:re}),rt&&we.splice(Sn,1))}});var Yu={touchstart:bo,touchmove:Ni,touchend:$e,touchcancel:Yt},Go="touchstart",k="touchstart touchmove touchend touchcancel";function G(){this.evTarget=Go,this.evWin=k,this.started=!1,ti.apply(this,arguments)}Q(G,ti,{handler:function(re){var we=Yu[re.type];if(we===bo&&(this.started=!0),!!this.started){var rt=W.call(this,re,we);we&($e|Yt)&&rt[0].length-rt[1].length===0&&(this.started=!1),this.callback(this.manager,we,{pointers:rt[0],changedPointers:rt[1],pointerType:Jr,srcEvent:re})}}});function W(X,re){var we=Be(X.touches),rt=Be(X.changedTouches);return re&($e|Yt)&&(we=ze(we.concat(rt),"identifier")),[we,rt]}var oe={touchstart:bo,touchmove:Ni,touchend:$e,touchcancel:Yt},ye="touchstart touchmove touchend touchcancel";function Ie(){this.evTarget=ye,this.targetIds={},ti.apply(this,arguments)}Q(Ie,ti,{handler:function(re){var we=oe[re.type],rt=Le.call(this,re,we);rt&&this.callback(this.manager,we,{pointers:rt[0],changedPointers:rt[1],pointerType:Jr,srcEvent:re})}});function Le(X,re){var we=Be(X.touches),rt=this.targetIds;if(re&(bo|Ni)&&we.length===1)return rt[we[0].identifier]=!0,[we,we];var zt,wr,Oo=Be(X.changedTouches),Xi=[],Sn=this.target;if(wr=we.filter(function(cn){return He(cn.target,Sn)}),re===bo)for(zt=0;zt-1&&rt.splice(wr,1)};setTimeout(zt,q)}}function lt(X){for(var re=X.srcEvent.clientX,we=X.srcEvent.clientY,rt=0;rt-1&&this.requireFail.splice(re,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(X){return!!this.simultaneous[X.id]},emit:function(X){var re=this,we=this.state;function rt(zt){re.manager.emit(zt,X)}we=wo&&rt(re.options.event+Ln(we))},tryEmit:function(X){if(this.canEmit())return this.emit(X);this.state=so},canEmit:function(){for(var X=0;Xre.threshold&&zt&re.direction},attrTest:function(X){return gi.prototype.attrTest.call(this,X)&&(this.state&ao||!(this.state&ao)&&this.directionTest(X))},emit:function(X){this.pX=X.deltaX,this.pY=X.deltaY;var re=yu(X.direction);re&&(X.additionalEvent=this.options.event+re),this._super.emit.call(this,X)}});function Wa(){gi.apply(this,arguments)}Q(Wa,gi,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Wt]},attrTest:function(X){return this._super.attrTest.call(this,X)&&(Math.abs(X.scale-1)>this.options.threshold||this.state&ao)},emit:function(X){if(X.scale!==1){var re=X.scale<1?"in":"out";X.additionalEvent=this.options.event+re}this._super.emit.call(this,X)}});function hi(){Eo.apply(this,arguments),this._timer=null,this._input=null}Q(hi,Eo,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[dt]},process:function(X){var re=this.options,we=X.pointers.length===re.pointers,rt=X.distancere.time;if(this._input=X,!rt||!we||X.eventType&($e|Yt)&&!zt)this.reset();else if(X.eventType&bo)this.reset(),this._timer=b(function(){this.state=ei,this.tryEmit()},re.time,this);else if(X.eventType&$e)return ei;return so},reset:function(){clearTimeout(this._timer)},emit:function(X){this.state===ei&&(X&&X.eventType&$e?this.manager.emit(this.options.event+"up",X):(this._input.timeStamp=x(),this.manager.emit(this.options.event,this._input)))}});function Ws(){gi.apply(this,arguments)}Q(Ws,gi,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Wt]},attrTest:function(X){return this._super.attrTest.call(this,X)&&(Math.abs(X.rotation)>this.options.threshold||this.state&ao)}});function ln(){gi.apply(this,arguments)}Q(ln,gi,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:to|Kr,pointers:1},getTouchAction:function(){return hu.prototype.getTouchAction.call(this)},attrTest:function(X){var re=this.options.direction,we;return re&(to|Kr)?we=X.overallVelocity:re&to?we=X.overallVelocityX:re&Kr&&(we=X.overallVelocityY),this._super.attrTest.call(this,X)&&re&X.offsetDirection&&X.distance>this.options.threshold&&X.maxPointers==this.options.pointers&&g(we)>this.options.velocity&&X.eventType&$e},emit:function(X){var re=yu(X.offsetDirection);re&&this.manager.emit(this.options.event+re,X),this.manager.emit(this.options.event,X)}});function fi(){Eo.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}Q(fi,Eo,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[or]},process:function(X){var re=this.options,we=X.pointers.length===re.pointers,rt=X.distance{const i=this.interactionEvent(r);i.type=vA[i.type],i.type==="dragging"?this.indragging=!0:this.indragging=!1,this.emit(Us.Drag,i)}),H(this,"onHammer",r=>{r.srcEvent.stopPropagation();const i=this.interactionEvent(r);this.emit(Us.Hover,i)}),H(this,"onTouch",r=>{const i=r.touches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchstart"})}),H(this,"onTouchEnd",r=>{if(r.changedTouches.length>0){const i=r.changedTouches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchend"})}}),H(this,"onTouchMove",r=>{const i=r.changedTouches[0];this.onHover({clientX:i.clientX,clientY:i.clientY,type:"touchmove"})}),H(this,"onHover",r=>{const{clientX:i,clientY:s}=r;let u=i,n=s;const y=r.type,m=this.mapService.getMapContainer();if(m){const{top:x,left:b}=m.getBoundingClientRect();u=u-b-m.clientLeft,n=n-x-m.clientTop}const g=this.mapService.containerToLngLat([u,n]);if(y==="click"){this.isDoubleTap(u,n,g);return}if(y==="touch"){this.isDoubleTap(u,n,g);return}y!=="click"&&y!=="dblclick"&&this.emit(Us.Hover,{x:u,y:n,lngLat:g,type:y,target:r})}),this.container=t}init(){this.addEventListenerOnMap(),this.$containter=this.mapService.getMapContainer()}destroy(){this.hammertime&&this.hammertime.destroy(),this.removeEventListenerOnMap(),this.off(Us.Hover)}triggerHover({x:t,y:r}){this.emit(Us.Hover,{x:t,y:r})}triggerSelect(t){this.emit(Us.Select,{featureId:t})}triggerActive(t){this.emit(Us.Active,{featureId:t})}addEventListenerOnMap(){const t=this.mapService.getMapContainer();if(t){const r=new Rd.Manager(t);r.add(new Rd.Tap({event:"dblclick",taps:2})),r.add(new Rd.Tap({event:"click"})),r.add(new Rd.Pan({threshold:0,pointers:0})),r.add(new Rd.Press({})),r.on("dblclick click",this.onHammer),r.on("panstart panmove panend pancancel",this.onDrag),t.addEventListener("touchstart",this.onTouch),t.addEventListener("touchend",this.onTouchEnd),t.addEventListener("mousemove",this.onHover),t.addEventListener("touchmove",this.onTouchMove),t.addEventListener("mousedown",this.onHover,!0),t.addEventListener("mouseup",this.onHover),t.addEventListener("contextmenu",this.onHover),this.hammertime=r}}removeEventListenerOnMap(){const t=this.mapService.getMapContainer();t&&(t.removeEventListener("mousemove",this.onHover),this.hammertime.off("dblclick click",this.onHammer),this.hammertime.off("panstart panmove panend pancancel",this.onDrag),t.removeEventListener("touchstart",this.onTouch),t.removeEventListener("touchend",this.onTouchEnd),t.removeEventListener("mousedown",this.onHover),t.removeEventListener("mouseup",this.onHover),t.removeEventListener("contextmenu",this.onHover))}interactionEvent(t){const{type:r,pointerType:i}=t;let s,u;i==="touch"?(u=Math.floor(t.pointers[0].clientY),s=Math.floor(t.pointers[0].clientX)):(u=Math.floor(t.srcEvent.y),s=Math.floor(t.srcEvent.x));const n=this.mapService.getMapContainer();if(n){const{top:m,left:g}=n.getBoundingClientRect();s-=g,u-=m}const y=this.mapService.containerToLngLat([s,u]);return{x:s,y:u,lngLat:y,type:r,target:t.srcEvent}}isDoubleTap(t,r,i){const s=new Date().getTime();let u="click";s-this.lastClickTime<400&&Math.abs(this.lastClickXY[0]-t)<10&&Math.abs(this.lastClickXY[1]-r)<10?(this.lastClickTime=0,this.lastClickXY=[-1,-1],this.clickTimer&&clearTimeout(this.clickTimer),u="dblclick",this.emit(Us.Hover,{x:t,y:r,lngLat:i,type:u})):(this.lastClickTime=s,this.lastClickXY=[t,r],this.clickTimer=setTimeout(()=>{u="click",this.emit(Us.Hover,{x:t,y:r,lngLat:i,type:u})},400))}}let xA=0;function PA(e){let t=e;if(typeof e=="string"&&(t=document.getElementById(e)),t){const r=document.createElement("div");return r.style.cssText+=` position: absolute; z-index:2; height: 100%; width: 100%; pointer-events: none; `,r.id=`l7-scene-${xA++}`,r.classList.add("l7-scene"),t.appendChild(r),r}return null}function bA(e){var t;let r=!0;if((e==null||(t=e.target)===null||t===void 0?void 0:t.target)instanceof HTMLElement){var i;let u=e==null||(i=e.target)===null||i===void 0?void 0:i.target;for(;u;){var s;const n=Array.from(u.classList);if(n.includes("l7-marker")||n.includes("l7-popup")){r=!1;break}u=(s=u)===null||s===void 0?void 0:s.parentElement}}return r}let f1=function(e){return e[e.SAMPLED=0]="SAMPLED",e[e.RENDER_TARGET=1]="RENDER_TARGET",e}({});class AA{constructor(t){var r=this;H(this,"pickedColors",void 0),H(this,"pickedTileLayers",[]),H(this,"pickingFBO",void 0),H(this,"width",0),H(this,"height",0),H(this,"alreadyInPicking",!1),H(this,"pickBufferScale",1),H(this,"pickFromPickingFBO",function(){var i=mt(function*(s,{x:u,y:n,lngLat:y,type:m,target:g}){var x;let b=!1;const{readPixels:F,readPixelsAsync:R,getViewportSize:I,queryVerdorInfo:U}=r.rendererService,{width:V,height:J}=I(),{enableHighlight:Q,enableSelect:te}=s.getLayerConfig(),ne=u*Bs,pe=n*Bs;if(ne>V-1*Bs||ne<0||pe>J-1*Bs||pe<0)return!1;let Oe;if(U()==="WebGPU"?Oe=yield R({x:Math.floor(ne/r.pickBufferScale),y:Math.floor((J-(n+1)*Bs)/r.pickBufferScale),width:1,height:1,data:new Uint8Array(4),framebuffer:r.pickingFBO}):Oe=F({x:Math.floor(ne/r.pickBufferScale),y:Math.floor((J-(n+1)*Bs)/r.pickBufferScale),width:1,height:1,data:new Uint8Array(4),framebuffer:r.pickingFBO}),r.pickedColors=Oe,Oe[0]!==0||Oe[1]!==0||Oe[2]!==0){const He=c1(Oe),ft=s.layerPickService.getFeatureById(He);He!==s.getCurrentPickId()&&m==="mousemove"&&(m="mouseenter");const Ge={x:u,y:n,type:m,lngLat:y,featureId:He,feature:ft,target:g};ft&&(b=!0,s.setCurrentPickId(He),r.triggerHoverOnLayer(s,Ge))}else{const He={x:u,y:n,lngLat:y,type:s.getCurrentPickId()!==null&&m==="mousemove"?"mouseout":"un"+m,featureId:null,target:g,feature:null};r.triggerHoverOnLayer(s,_t(_t({},He),{},{type:"unpick"})),r.triggerHoverOnLayer(s,He),s.setCurrentPickId(null)}if(Q&&s.layerPickService.highlightPickedFeature(Oe),te&&m==="click"&&((x=Oe)===null||x===void 0?void 0:x.toString())!==[0,0,0,0].toString()){const He=c1(Oe);s.getCurrentSelectedId()===null||He!==s.getCurrentSelectedId()?(s.layerPickService.selectFeature(Oe),s.setCurrentSelectedId(He)):(s.layerPickService.selectFeature(new Uint8Array([0,0,0,0])),s.setCurrentSelectedId(null))}return b});return function(s,u){return i.apply(this,arguments)}}()),this.container=t}get mapService(){return this.container.mapService}get rendererService(){return this.container.rendererService}get configService(){return this.container.globalConfigService}get interactionService(){return this.container.interactionService}get layerService(){return this.container.layerService}init(t){const{createTexture2D:r,createFramebuffer:i,getViewportSize:s}=this.rendererService;let{width:u,height:n}=s();this.pickBufferScale=this.configService.getSceneConfig(t).pickBufferScale||1,u=Math.round(u/this.pickBufferScale),n=Math.round(n/this.pickBufferScale);const y=r({width:u,height:n,usage:f1.RENDER_TARGET,label:"Picking Texture"});this.pickingFBO=i({color:y,depth:!0,width:u,height:n}),this.interactionService.on(Us.Hover,this.pickingAllLayer.bind(this))}boxPickLayer(t,r,i){var s=this;return mt(function*(){const{useFramebufferAsync:u,clear:n}=s.rendererService;s.resizePickingFBO(),t.hooks.beforePickingEncode.call(),yield u(s.pickingFBO,mt(function*(){n({framebuffer:s.pickingFBO,color:[0,0,0,0],stencil:0,depth:1}),t.renderModels({ispick:!0})})),t.hooks.afterPickingEncode.call();const y=yield s.pickBox(t,r);i(y)})()}pickBox(t,r){var i=this;return mt(function*(){const[s,u,n,y]=r.map(J=>{const Q=J<0?0:J;return Math.floor(Q*Bs/i.pickBufferScale)}),{readPixelsAsync:m,getViewportSize:g}=i.rendererService,{width:x,height:b}=g();if(s>(x-1)*Bs/i.pickBufferScale||n<0||u>(b-1)*Bs/i.pickBufferScale||y<0)return[];const F=Math.min(x/i.pickBufferScale,n)-s,R=Math.min(b/i.pickBufferScale,y)-u,I=yield m({x:s,y:Math.floor(b/i.pickBufferScale-(y+1)),width:F,height:R,data:new Uint8Array(F*R*4),framebuffer:i.pickingFBO}),U=[],V={};for(let J=0;Jy.needPick(t.type)).reverse()){yield s(r.pickingFBO,mt(function*(){i({framebuffer:r.pickingFBO,color:[0,0,0,0],stencil:0,depth:1}),n.layerPickService.pickRender(t)}));const y=yield r.pickFromPickingFBO(n,t);if(r.layerService.pickedLayerId=y?+n.id:-1,y&&!n.getLayerConfig().enablePropagation)break}})()}triggerHoverOnLayer(t,r){bA(r)&&(this.handleCursor(t,r.type),t.emit(r.type,r))}}class FA{constructor(t=!0){H(this,"autoStart",void 0),H(this,"startTime",0),H(this,"oldTime",0),H(this,"running",!1),H(this,"elapsedTime",0),this.autoStart=t}start(){this.startTime=(typeof performance>"u"?Date:performance).now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const r=(typeof performance>"u"?Date:performance).now();t=(r-this.oldTime)/1e3,this.oldTime=r,this.elapsedTime+=t}return t}}const{throttle:j_}=Qn;class TA extends du.EventEmitter{get renderService(){return this.container.rendererService}get mapService(){return this.container.mapService}get debugService(){return this.container.debugService}constructor(t){super(),H(this,"pickedLayerId",-1),H(this,"clock",new FA),H(this,"alreadyInRendering",!1),H(this,"layers",[]),H(this,"layerList",[]),H(this,"layerRenderID",void 0),H(this,"sceneInited",!1),H(this,"animateInstanceCount",0),H(this,"shaderPicking",!0),H(this,"enableRender",!0),H(this,"reRender",j_(()=>{this.renderLayers()},32)),H(this,"throttleRenderLayers",j_(()=>{this.renderLayers()},16)),this.container=t}needPick(t){return this.updateLayerRenderList(),this.layerList.some(r=>r.needPick(t))}add(t){this.layers.push(t),this.sceneInited&&t.init().then(()=>{this.renderLayers()})}addMask(t){this.sceneInited&&t.init().then(()=>{this.renderLayers()})}initLayers(){var t=this;return mt(function*(){t.sceneInited=!0,t.layers.forEach(function(){var r=mt(function*(i){i.startInit||(yield i.init(),t.updateLayerRenderList())});return function(i){return r.apply(this,arguments)}}())})()}getSceneInited(){return this.sceneInited}getRenderList(){return this.layerList}getLayers(){return this.layers}getLayer(t){return this.layers.find(r=>r.id===t)}getLayerByName(t){return this.layers.find(r=>r.name===t)}remove(t,r){var i=this;return mt(function*(){r?r.layerChildren=r.layerChildren.filter(s=>s!==t):i.layers=i.layers.filter(s=>s!==t),t.destroy(),i.reRender(),i.emit("layerChange",i.layers)})()}removeAllLayers(){var t=this;return mt(function*(){t.destroy(),t.reRender()})()}setEnableRender(t){this.enableRender=t}renderLayers(){var t=this;return mt(function*(){if(t.alreadyInRendering||!t.enableRender)return;t.updateLayerRenderList();const r=t.debugService.generateRenderUid();t.debugService.renderStart(r),t.alreadyInRendering=!0,t.clear();for(const i of t.layerList)i.prerender();t.renderService.beginFrame();for(const i of t.layerList){const{enableMask:s}=i.getLayerConfig();i.masks.filter(u=>u.inited).length>0&&s&&t.renderMask(i.masks),i.getLayerConfig().enableMultiPassRenderer?yield i.renderMultiPass():i.render()}t.renderService.endFrame(),t.debugService.renderEnd(r),t.alreadyInRendering=!1})()}renderMask(t){let r=0;this.renderService.clear({stencil:0,depth:1,framebuffer:null});const i=t.length>1?p1.MULTIPLE:p1.SINGLE;for(const s of t)s.render({isStencil:!0,stencilType:i,stencilIndex:r++})}beforeRenderData(t){var r=this;return mt(function*(){(yield t.hooks.beforeRenderData.promise())&&r.renderLayers()})()}renderTileLayerMask(t){let r=0;const{enableMask:i=!0}=t.getLayerConfig();let s=t.tileMask?1:0;const u=t.masks.filter(y=>y.inited);s=s+(i?u.length:1);const n=s>1?p1.MULTIPLE:p1.SINGLE;if((t.tileMask||u.length&&i)&&this.renderService.clear({stencil:0,depth:1,framebuffer:null}),u.length&&i)for(const y of u)y.render({isStencil:!0,stencilType:n,stencilIndex:r++});t.tileMask&&t.tileMask.render({isStencil:!0,stencilType:n,stencilIndex:r++,stencilOperation:jf.OR})}renderTileLayer(t){var r=this;return mt(function*(){r.renderTileLayerMask(t),t.getLayerConfig().enableMultiPassRenderer?yield t.renderMultiPass():yield t.render()})()}updateLayerRenderList(){this.layerList=[],this.layers.filter(t=>t.inited).filter(t=>t.isVisible()).sort((t,r)=>t.zIndex-r.zIndex).forEach(t=>{this.layerList.push(t)})}destroy(){this.layers.forEach(t=>{t.destroy()}),this.layers=[],this.layerList=[],this.emit("layerChange",this.layers)}startAnimate(){this.animateInstanceCount++===0&&(this.clock.start(),this.runRender())}stopAnimate(){--this.animateInstanceCount===0&&(this.stopRender(),this.clock.stop())}getOESTextureFloat(){return this.renderService.extensionObject.OES_texture_float}enableShaderPick(){this.shaderPicking=!0}disableShaderPick(){this.shaderPicking=!1}getShaderPickStat(){return this.shaderPicking}clear(){const t=Mi(this.mapService.bgColor);this.renderService.clear({color:t,depth:1,stencil:0,framebuffer:null})}runRender(){this.renderLayers(),this.layerRenderID=window.requestAnimationFrame(this.runRender.bind(this))}stopRender(){window.cancelAnimationFrame(this.layerRenderID)}}function SA(e,t){if(e==null)return{};var r={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(t.indexOf(i)!==-1)continue;r[i]=e[i]}return r}function $p(e,t){if(e==null)return{};var r,i,s=SA(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(i=0;i{if(r.length===0){var i;return((i=this.scale)===null||i===void 0?void 0:i.defaultValues)||[]}return r.map((s,u)=>{var n;return((n=this.scale)===null||n===void 0?void 0:n.scalers[u].func)(s)})}),this.setProps(t)}setProps(t){Object.assign(this,t)}mapping(t){var r;if((r=this.scale)!==null&&r!==void 0&&r.callback){var i;const s=(i=this.scale)===null||i===void 0?void 0:i.callback(...t);if(!wA(s))return[s]}return this.defaultCallback(t)}resetDescriptor(){this.descriptor&&(this.descriptor.buffer.data=[])}}const CA=["buffer","update","name"],IA=["buffer","update","name"],MA={[L.FLOAT]:4,[L.UNSIGNED_BYTE]:1,[L.UNSIGNED_SHORT]:2};class NA{constructor(t){H(this,"attributesAndIndices",void 0),H(this,"attributes",[]),H(this,"triangulation",void 0),H(this,"featureLayout",{sizePerElement:0,elements:[]}),this.rendererService=t}registerStyleAttribute(t){let r=this.getLayerStyleAttribute(t.name||"");return r?r.setProps(t):(r=new RA(t),this.attributes.push(r)),r}unRegisterStyleAttribute(t){const r=this.attributes.findIndex(i=>i.name===t);r>-1&&this.attributes.splice(r,1)}updateScaleAttribute(t){this.attributes.forEach(r=>{var i;const s=r.name,u=(i=r.scale)===null||i===void 0?void 0:i.field;(t[s]||u&&t[u])&&(r.needRescale=!0,r.needRemapping=!0,r.needRegenerateVertices=!0)})}updateStyleAttribute(t,r,i){let s=this.getLayerStyleAttribute(t);s||(s=this.registerStyleAttribute(_t(_t({},r),{},{name:t})));const{scale:u}=r;u&&s&&(s.scale=u,s.needRescale=!0,s.needRemapping=!0,s.needRegenerateVertices=!0,i&&i.featureRange&&(s.featureRange=i.featureRange))}getLayerStyleAttributes(){return this.attributes}getLayerStyleAttribute(t){return this.attributes.find(r=>r.name===t)}getLayerAttributeScale(t){var r;const i=this.getLayerStyleAttribute(t),s=i==null||(r=i.scale)===null||r===void 0?void 0:r.scalers;return s&&s[0]?s[0].func:null}updateAttributeByFeatureRange(t,r,i=0,s,u){const n=this.attributes.find(y=>y.name===t);if(n&&n.descriptor){const{descriptor:y}=n,{update:m,buffer:g,size:x=0}=y,b=MA[g.type||L.FLOAT];if(m){const{elements:F,sizePerElement:R}=this.featureLayout,I=F.slice(i,s);if(!I.length)return;const{offset:U}=I[0],V=U*x*b,J=I.map(({featureIdx:Q,vertices:te,normals:ne},pe)=>{const Oe=te.length/R,Ee=[];for(let He=0;He(U.resetDescriptor(),U.descriptor));let n=0,y=0;const m=[];let g=3;t.forEach((U,V)=>{const{indices:J,vertices:Q,normals:te,size:ne,indexes:pe,count:Oe}=this.triangulation(U,i);typeof Oe=="number"&&(y+=Oe),J.forEach(He=>{m.push(He+n)}),g=ne;const Ee=Q.length/ne;this.featureLayout.sizePerElement=g,this.featureLayout.elements.push({featureIdx:V,vertices:Q,normals:te,offset:n}),n+=Ee;for(let He=0;He{Be&&Be.update&&Be.buffer.data.push(...Be.update(U,V,Ge,He,ft,Ae))})}});const{createAttribute:x,createBuffer:b,createElements:F}=this.rendererService,R={};u.forEach((U,V)=>{if(U){const{buffer:J,update:Q,name:te}=U,ne=$p(U,CA),pe=x(_t({buffer:b(J)},ne));R[U.name||""]=pe,this.attributes[V].vertexAttribute=pe}});const I=F({data:m,type:L.UNSIGNED_INT,count:m.length});return this.attributesAndIndices={attributes:R,elements:I,count:y},Object.values(this.attributes).filter(U=>U.scale).forEach(U=>{const V=U.name;s==null||s.emit(`legend:${V}`,s.getLegend(V))}),this.attributesAndIndices}createAttributes(t,r){this.featureLayout={sizePerElement:0,elements:[]},r&&(this.triangulation=r);const i=this.attributes.map(g=>(g.resetDescriptor(),g.descriptor));let s=0,u=3;t.forEach((g,x)=>{const{indices:b,vertices:F,normals:R,size:I,indexes:U}=this.triangulation(g);b.forEach(J=>{}),u=I;const V=F.length/I;this.featureLayout.sizePerElement=u,this.featureLayout.elements.push({featureIdx:x,vertices:F,normals:R,offset:s}),s+=V;for(let J=0;J{pe&&pe.update&&pe.buffer.data.push(...pe.update(g,x,te,J,Q,ne))})}});const{createAttribute:n,createBuffer:y}=this.rendererService,m={};return i.forEach((g,x)=>{if(g){const{buffer:b,update:F,name:R}=g,I=$p(g,IA),U=n(_t({buffer:y(b)},I));m[g.name||""]=U,this.attributes[x].vertexAttribute=U}}),{attributes:m}}clearAllAttributes(){var t;this.attributes.forEach(r=>{r.vertexAttribute&&r.vertexAttribute.destroy()}),(t=this.attributesAndIndices)===null||t===void 0||t.elements.destroy(),this.attributes=[]}}function N8(e,t,r,i){function s(u){return u instanceof r?u:new r(function(n){n(u)})}return new(r||(r=Promise))(function(u,n){function y(x){try{g(i.next(x))}catch(b){n(b)}}function m(x){try{g(i.throw(x))}catch(b){n(b)}}function g(x){x.done?u(x.value):s(x.value).then(y,m)}g((i=i.apply(e,[])).next())})}function D8(e,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},i,s,u,n;return n={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(n[Symbol.iterator]=function(){return this}),n;function y(g){return function(x){return m([g,x])}}function m(g){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,s&&(u=g[0]&2?s.return:g[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,g[1])).done)return u;switch(s=0,u&&(g=[g[0]&2,u.value]),g[0]){case 0:case 1:u=g;break;case 4:return r.label++,{value:g[1],done:!1};case 5:r.label++,s=g[1],g=[0];continue;case 7:g=r.ops.pop(),r.trys.pop();continue;default:if(u=r.trys,!(u=u.length>0&&u[u.length-1])&&(g[0]===6||g[0]===2)){r=0;continue}if(g[0]===3&&(!u||g[1]>u[0]&&g[1]0)&&!(s=i.next()).done;)u.push(s.value)}catch(y){n={error:y}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return u}function b6(e,t,r){if(arguments.length===2)for(var i=0,s=t.length,u;i=0&&i.length%1===0}e.exports=t.default})(gy,gy.exports);var Vs={},A2={exports:{}},F2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(r){return function(){for(var i=[],s=arguments.length;s--;)i[s]=arguments[s];var u=i.pop();return r.call(this,i,u)}},e.exports=t.default})(F2,F2.exports);var Sc={};Object.defineProperty(Sc,"__esModule",{value:!0});Sc.fallback=L8;Sc.wrap=B8;var DA=Sc.hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,OA=Sc.hasSetImmediate=typeof setImmediate=="function"&&setImmediate,LA=Sc.hasNextTick=typeof process=="object"&&typeof process.nextTick=="function";function L8(e){setTimeout(e,0)}function B8(e){return function(t){for(var r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];return e(function(){return t.apply(void 0,r)})}}var Kd;DA?Kd=queueMicrotask:OA?Kd=setImmediate:LA?Kd=process.nextTick:Kd=L8;Sc.default=B8(Kd);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=m;var r=F2.exports,i=y(r),s=Sc,u=y(s),n=Vs;function y(b){return b&&b.__esModule?b:{default:b}}function m(b){return(0,n.isAsync)(b)?function(){for(var F=[],R=arguments.length;R--;)F[R]=arguments[R];var I=F.pop(),U=b.apply(this,F);return g(U,I)}:(0,i.default)(function(F,R){var I;try{I=b.apply(this,F)}catch(U){return R(U)}if(I&&typeof I.then=="function")return g(I,R);R(null,I)})}function g(b,F){return b.then(function(R){x(F,null,R)},function(R){x(F,R&&R.message?R:new Error(R))})}function x(b,F,R){try{b(F,R)}catch(I){(0,u.default)(function(U){throw U},I)}}e.exports=t.default})(A2,A2.exports);Object.defineProperty(Vs,"__esModule",{value:!0});Vs.isAsyncIterable=Vs.isAsyncGenerator=Vs.isAsync=void 0;var BA=A2.exports,UA=kA(BA);function kA(e){return e&&e.__esModule?e:{default:e}}function U8(e){return e[Symbol.toStringTag]==="AsyncFunction"}function zA(e){return e[Symbol.toStringTag]==="AsyncGenerator"}function VA(e){return typeof e[Symbol.asyncIterator]=="function"}function HA(e){if(typeof e!="function")throw new Error("expected a function");return U8(e)?(0,UA.default)(e):e}Vs.default=HA;Vs.isAsync=U8;Vs.isAsyncGenerator=zA;Vs.isAsyncIterable=VA;var m1={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i,s){if(s===void 0&&(s=i.length),!s)throw new Error("arity is undefined");function u(){for(var n=this,y=[],m=arguments.length;m--;)y[m]=arguments[m];return typeof y[s-1]=="function"?i.apply(this,y):new Promise(function(g,x){y[s-1]=function(b){for(var F=[],R=arguments.length-1;R-- >0;)F[R]=arguments[R+1];if(b)return x(b);g(F.length>1?F:F[0])},i.apply(n,y)})}return u}e.exports=t.default})(m1,m1.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=gy.exports,i=m(r),s=Vs,u=m(s),n=m1.exports,y=m(n);function m(g){return g&&g.__esModule?g:{default:g}}t.default=(0,y.default)(function(g,x,b){var F=(0,i.default)(x)?[]:{};g(x,function(R,I,U){(0,u.default)(R)(function(V){for(var J,Q=[],te=arguments.length-1;te-- >0;)Q[te]=arguments[te+1];Q.length<2&&(J=Q,Q=J[0]),F[I]=Q,U(V)})},function(R){return b(R,F)})},3),e.exports=t.default})(yf,yf.exports);var T2={exports:{}},hf={exports:{}},S2={exports:{}},vy={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(i){function s(){for(var u=[],n=arguments.length;n--;)u[n]=arguments[n];if(i!==null){var y=i;i=null,y.apply(this,u)}}return Object.assign(s,i),s}e.exports=t.default})(vy,vy.exports);var w2={exports:{}},R2={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(r){return r[Symbol.iterator]&&r[Symbol.iterator]()},e.exports=t.default})(R2,R2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=x;var r=gy.exports,i=n(r),s=R2.exports,u=n(s);function n(b){return b&&b.__esModule?b:{default:b}}function y(b){var F=-1,R=b.length;return function(){return++F=y||F||x||(F=!0,n.next().then(function(Q){var te=Q.value,ne=Q.done;if(!(b||x)){if(F=!1,ne){x=!0,R<=0&&g(null);return}R++,m(te,I,V),I++,U()}}).catch(J))}function V(Q,te){if(R-=1,!b){if(Q)return J(Q);if(Q===!1){x=!0,b=!0;return}if(te===i.default||x&&R<=0)return x=!0,g(null);U()}}function J(Q){b||(F=!1,x=!0,g(Q))}U()}e.exports=t.default})(C2,C2.exports);(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=vy.exports,i=R(r),s=w2.exports,u=R(s),n=Ey.exports,y=R(n),m=Vs,g=C2.exports,x=R(g),b=xy.exports,F=R(b);function R(I){return I&&I.__esModule?I:{default:I}}t.default=function(I){return function(U,V,J){if(J=(0,i.default)(J),I<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!U)return J(null);if((0,m.isAsyncGenerator)(U))return(0,x.default)(U,I,V,J);if((0,m.isAsyncIterable)(U))return(0,x.default)(U[Symbol.asyncIterator](),I,V,J);var Q=(0,u.default)(U),te=!1,ne=!1,pe=0,Oe=!1;function Ee(ft,Ge){if(!ne)if(pe-=1,ft)te=!0,J(ft);else if(ft===!1)te=!0,ne=!0;else{if(Ge===F.default||te&&pe<=0)return te=!0,J(null);Oe||He()}}function He(){for(Oe=!0;pe0;)Q[te]=arguments[te+1];if(J!==!1){if(J||I===F.length)return R.apply(void 0,[J].concat(Q));U(Q)}}U([])}t.default=(0,g.default)(b),e.exports=t.default})(M2,M2.exports);var GA=O8(M2.exports),X_=function(){function e(){this.tasks=[]}return e.prototype.call=function(){return Wf(this.tasks)},e.prototype.tap=function(t,r){this.tasks.push(function(i){var s=r();i(s,t)})},e}(),jA=function(){function e(){this.args=[],this.tasks=[]}return e.prototype.promise=function(){for(var t=arguments,r=[],i=0;i";while(n[0]);return s>4?s:i}();return e===r};H8.isLegacyOpera=function(){return!!window.opera};var G8=V8.exports,j8={exports:{}},JA=j8.exports={};JA.getOption=eF;function eF(e,t,r){var i=e[t];return i==null&&r!==void 0?r:i}var tF=j8.exports,Z_=tF,rF=function(t){t=t||{};var r=t.reporter,i=Z_.getOption(t,"async",!0),s=Z_.getOption(t,"auto",!0);s&&!i&&(r&&r.warn("Invalid options combination. auto=true and async=false is invalid. Setting async=true."),i=!0);var u=Y_(),n,y=!1;function m(I,U){!y&&s&&i&&u.size()===0&&b(),u.add(I,U)}function g(){for(y=!0;u.size();){var I=u;u=Y_(),I.process()}y=!1}function x(I){y||(I===void 0&&(I=i),n&&(F(n),n=null),I?b():g())}function b(){n=R(g)}function F(I){var U=clearTimeout;return U(I)}function R(I){var U=function(V){return setTimeout(V,0)};return U(I)}return{add:m,force:x}};function Y_(){var e={},t=0,r=0,i=0;function s(y,m){m||(m=y,y=0),y>r?r=y:y div::-webkit-scrollbar { "+g(["display: none"])+` } `,Ge+="."+ft+" { "+g(["-webkit-animation-duration: 0.1s","animation-duration: 0.1s","-webkit-animation-name: "+He,"animation-name: "+He])+` } `,Ge+="@-webkit-keyframes "+He+` { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } `,Ge+="@keyframes "+He+" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }",Ee(Ge)}}function F(ne){ne.className+=" "+y+"_animation_active"}function R(ne,pe,Oe){if(ne.addEventListener)ne.addEventListener(pe,Oe);else if(ne.attachEvent)ne.attachEvent("on"+pe,Oe);else return t.error("[scroll] Don't know how to add event listeners.")}function I(ne,pe,Oe){if(ne.removeEventListener)ne.removeEventListener(pe,Oe);else if(ne.detachEvent)ne.detachEvent("on"+pe,Oe);else return t.error("[scroll] Don't know how to remove event listeners.")}function U(ne){return i(ne).container.childNodes[0].childNodes[0].childNodes[0]}function V(ne){return i(ne).container.childNodes[0].childNodes[0].childNodes[1]}function J(ne,pe){var Oe=i(ne).listeners;if(!Oe.push)throw new Error("Cannot add listener to an element that is not detectable.");i(ne).listeners.push(pe)}function Q(ne,pe,Oe){Oe||(Oe=pe,pe=ne,ne=null),ne=ne||{};function Ee(){if(ne.debug){var $e=Array.prototype.slice.call(arguments);if($e.unshift(s.get(pe),"Scroll: "),t.log.apply)t.log.apply(null,$e);else for(var Yt=0;Yt<$e.length;Yt++)t.log($e[Yt])}}function He($e){function Yt(Sr){var Ft=Sr.getRootNode&&Sr.getRootNode().contains(Sr);return Sr===Sr.ownerDocument.body||Sr.ownerDocument.body.contains(Sr)||Ft}return!Yt($e)||window.getComputedStyle($e)===null}function ft($e){var Yt=i($e).container.childNodes[0],Sr=window.getComputedStyle(Yt);return!Sr.width||Sr.width.indexOf("px")===-1}function Ge(){var $e=window.getComputedStyle(pe),Yt={};return Yt.position=$e.position,Yt.width=pe.offsetWidth,Yt.height=pe.offsetHeight,Yt.top=$e.top,Yt.right=$e.right,Yt.bottom=$e.bottom,Yt.left=$e.left,Yt.widthCSS=$e.width,Yt.heightCSS=$e.height,Yt}function Ae(){var $e=Ge();i(pe).startSize={width:$e.width,height:$e.height},Ee("Element start size",i(pe).startSize)}function Be(){i(pe).listeners=[]}function ze(){if(Ee("storeStyle invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}var $e=Ge();i(pe).style=$e}function st($e,Yt,Sr){i($e).lastWidth=Yt,i($e).lastHeight=Sr}function Vt($e){return U($e).childNodes[0]}function ir(){return 2*u.width+1}function Fr(){return 2*u.height+1}function Yr($e){return $e+10+ir()}function mr($e){return $e+10+Fr()}function Er($e){return $e*2+ir()}function qr($e){return $e*2+Fr()}function Jr($e,Yt,Sr){var Ft=U($e),xr=V($e),io=Yr(Yt),go=mr(Sr),to=Er(Yt),Kr=qr(Sr);Ft.scrollLeft=io,Ft.scrollTop=go,xr.scrollLeft=to,xr.scrollTop=Kr}function _o(){var $e=i(pe).container;if(!$e){$e=document.createElement("div"),$e.className=y,$e.style.cssText=g(["visibility: hidden","display: inline","width: 0px","height: 0px","z-index: -1","overflow: hidden","margin: 0","padding: 0"]),i(pe).container=$e,F($e),pe.appendChild($e);var Yt=function(){i(pe).onRendered&&i(pe).onRendered()};R($e,"animationstart",Yt),i(pe).onAnimationStart=Yt}return $e}function So(){function $e(){var si=i(pe).style;if(si.position==="static"){pe.style.setProperty("position","relative",ne.important?"important":"");var Fn=function(pa,Tn,vs,zi){function us(Hs){return Hs.replace(/[^-\d\.]/g,"")}var xa=vs[zi];xa!=="auto"&&us(xa)!=="0"&&(pa.warn("An element that is positioned static has style."+zi+"="+xa+" which is ignored due to the static positioning. The element will need to be positioned relative, so the style."+zi+" will be set to 0. Element: ",Tn),Tn.style[zi]=0)};Fn(t,pe,si,"top"),Fn(t,pe,si,"right"),Fn(t,pe,si,"bottom"),Fn(t,pe,si,"left")}}function Yt(si,Fn,pa,Tn){return si=si?si+"px":"0",Fn=Fn?Fn+"px":"0",pa=pa?pa+"px":"0",Tn=Tn?Tn+"px":"0",["left: "+si,"top: "+Fn,"right: "+Tn,"bottom: "+pa]}if(Ee("Injecting elements"),!i(pe)){Ee("Aborting because element has been uninstalled");return}$e();var Sr=i(pe).container;Sr||(Sr=_o());var Ft=u.width,xr=u.height,io=g(["position: absolute","flex: none","overflow: hidden","z-index: -1","visibility: hidden","width: 100%","height: 100%","left: 0px","top: 0px"]),go=g(["position: absolute","flex: none","overflow: hidden","z-index: -1","visibility: hidden"].concat(Yt(-(1+Ft),-(1+xr),-xr,-Ft))),to=g(["position: absolute","flex: none","overflow: scroll","z-index: -1","visibility: hidden","width: 100%","height: 100%"]),Kr=g(["position: absolute","flex: none","overflow: scroll","z-index: -1","visibility: hidden","width: 100%","height: 100%"]),Ao=g(["position: absolute","left: 0","top: 0"]),$i=g(["position: absolute","width: 200%","height: 200%"]),Qo=document.createElement("div"),ti=document.createElement("div"),Pn=document.createElement("div"),se=document.createElement("div"),bn=document.createElement("div"),ja=document.createElement("div");Qo.dir="ltr",Qo.style.cssText=io,Qo.className=y,ti.className=y,ti.style.cssText=go,Pn.style.cssText=to,se.style.cssText=Ao,bn.style.cssText=Kr,ja.style.cssText=$i,Pn.appendChild(se),bn.appendChild(ja),ti.appendChild(Pn),ti.appendChild(bn),Qo.appendChild(ti),Sr.appendChild(Qo);function An(){var si=i(pe);si&&si.onExpand?si.onExpand():Ee("Aborting expand scroll handler: element has been uninstalled")}function ss(){var si=i(pe);si&&si.onShrink?si.onShrink():Ee("Aborting shrink scroll handler: element has been uninstalled")}R(Pn,"scroll",An),R(bn,"scroll",ss),i(pe).onExpandScroll=An,i(pe).onShrinkScroll=ss}function oo(){function $e(to,Kr,Ao){var $i=Vt(to),Qo=Yr(Kr),ti=mr(Ao);$i.style.setProperty("width",Qo+"px",ne.important?"important":""),$i.style.setProperty("height",ti+"px",ne.important?"important":"")}function Yt(to){var Kr=pe.offsetWidth,Ao=pe.offsetHeight,$i=Kr!==i(pe).lastWidth||Ao!==i(pe).lastHeight;Ee("Storing current size",Kr,Ao),st(pe,Kr,Ao),r.add(0,function(){if($i){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}if(ne.debug){var ti=pe.offsetWidth,Pn=pe.offsetHeight;(ti!==Kr||Pn!==Ao)&&t.warn(s.get(pe),"Scroll: Size changed before updating detector elements.")}$e(pe,Kr,Ao)}}),r.add(1,function(){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}Jr(pe,Kr,Ao)}),$i&&to&&r.add(2,function(){if(!i(pe)){Ee("Aborting because element has been uninstalled");return}if(!Sr()){Ee("Aborting because element container has not been initialized");return}to()})}function Sr(){return!!i(pe).container}function Ft(){function to(){return i(pe).lastNotifiedWidth===void 0}Ee("notifyListenersIfNeeded invoked");var Kr=i(pe);if(to()&&Kr.lastWidth===Kr.startSize.width&&Kr.lastHeight===Kr.startSize.height)return Ee("Not notifying: Size is the same as the start size, and there has been no notification yet.");if(Kr.lastWidth===Kr.lastNotifiedWidth&&Kr.lastHeight===Kr.lastNotifiedHeight)return Ee("Not notifying: Size already notified");Ee("Current size not notified, notifying..."),Kr.lastNotifiedWidth=Kr.lastWidth,Kr.lastNotifiedHeight=Kr.lastHeight,sF(i(pe).listeners,function(Ao){Ao(pe)})}function xr(){if(Ee("startanimation triggered."),ft(pe)){Ee("Ignoring since element is still unrendered...");return}Ee("Element rendered.");var to=U(pe),Kr=V(pe);(to.scrollLeft===0||to.scrollTop===0||Kr.scrollLeft===0||Kr.scrollTop===0)&&(Ee("Scrollbars out of sync. Updating detector elements..."),Yt(Ft))}function io(){if(Ee("Scroll detected."),ft(pe)){Ee("Scroll event fired while unrendered. Ignoring...");return}Yt(Ft)}if(Ee("registerListenersAndPositionElements invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}i(pe).onRendered=xr,i(pe).onExpand=io,i(pe).onShrink=io;var go=i(pe).style;$e(pe,go.width,go.height)}function Wi(){if(Ee("finalizeDomMutation invoked."),!i(pe)){Ee("Aborting because element has been uninstalled");return}var $e=i(pe).style;st(pe,$e.width,$e.height),Jr(pe,$e.width,$e.height)}function bo(){Oe(pe)}function Ni(){Ee("Installing..."),Be(),Ae(),r.add(0,ze),r.add(1,So),r.add(2,oo),r.add(3,Wi),r.add(4,bo)}Ee("Making detectable..."),He(pe)?(Ee("Element is detached"),_o(),Ee("Waiting until element is attached..."),i(pe).onRendered=function(){Ee("Element is now attached"),Ni()}):Ni()}function te(ne){var pe=i(ne);pe&&(pe.onExpandScroll&&I(U(ne),"scroll",pe.onExpandScroll),pe.onShrinkScroll&&I(V(ne),"scroll",pe.onShrinkScroll),pe.onAnimationStart&&I(pe.container,"animationstart",pe.onAnimationStart),pe.container&&ne.removeChild(pe.container))}return{makeDetectable:Q,addListener:J,uninstall:te,initDocument:m}},Qd=z8.forEach,pF=YA,lF=$A,cF=qA,dF=KA,yF=QA,$_=G8,hF=rF,dc=nF,fF=aF,mF=uF;function q_(e){return Array.isArray(e)||e.length!==void 0}function K_(e){if(Array.isArray(e))return e;var t=[];return Qd(e,function(r){t.push(r)}),t}function Q_(e){return e&&e.nodeType===1}var _F=function(e){e=e||{};var t;if(e.idHandler)t={get:function(Q){return e.idHandler.get(Q,!0)},set:e.idHandler.set};else{var r=cF(),i=dF({idGenerator:r,stateHandler:dc});t=i}var s=e.reporter;if(!s){var u=s===!1;s=yF(u)}var n=yc(e,"batchProcessor",hF({reporter:s})),y={};y.callOnAdd=!!yc(e,"callOnAdd",!0),y.debug=!!yc(e,"debug",!1);var m=lF(t),g=pF({stateHandler:dc}),x,b=yc(e,"strategy","object"),F=yc(e,"important",!1),R={reporter:s,batchProcessor:n,stateHandler:dc,idHandler:t,important:F};if(b==="scroll"&&($_.isLegacyOpera()?(s.warn("Scroll strategy is not supported on legacy Opera. Changing to object strategy."),b="object"):$_.isIE(9)&&(s.warn("Scroll strategy is not supported on IE9. Changing to object strategy."),b="object")),b==="scroll")x=mF(R);else if(b==="object")x=fF(R);else throw new Error("Invalid strategy name: "+b);var I={};function U(Q,te,ne){function pe(Ae){var Be=m.get(Ae);Qd(Be,function(st){st(Ae)})}function Oe(Ae,Be,ze){m.add(Be,ze),Ae&&ze(Be)}if(ne||(ne=te,te=Q,Q={}),!te)throw new Error("At least one element required.");if(!ne)throw new Error("Listener required.");if(Q_(te))te=[te];else if(q_(te))te=K_(te);else return s.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");var Ee=0,He=yc(Q,"callOnAdd",y.callOnAdd),ft=yc(Q,"onReady",function(){}),Ge=yc(Q,"debug",y.debug);Qd(te,function(Be){dc.getState(Be)||(dc.initState(Be),t.set(Be));var ze=t.get(Be);if(Ge&&s.log("Attaching listener to element",ze,Be),!g.isDetectable(Be)){if(Ge&&s.log(ze,"Not detectable."),g.isBusy(Be)){Ge&&s.log(ze,"System busy making it detectable"),Oe(He,Be,ne),I[ze]=I[ze]||[],I[ze].push(function(){Ee++,Ee===te.length&&ft()});return}return Ge&&s.log(ze,"Making detectable..."),g.markBusy(Be,!0),x.makeDetectable({debug:Ge,important:F},Be,function(Vt){if(Ge&&s.log(ze,"onElementDetectable"),dc.getState(Vt)){g.markAsDetectable(Vt),g.markBusy(Vt,!1),x.addListener(Vt,pe),Oe(He,Vt,ne);var ir=dc.getState(Vt);if(ir&&ir.startSize){var Fr=Vt.offsetWidth,Yr=Vt.offsetHeight;(ir.startSize.width!==Fr||ir.startSize.height!==Yr)&&pe(Vt)}I[ze]&&Qd(I[ze],function(mr){mr()})}else Ge&&s.log(ze,"Element uninstalled before being detectable.");delete I[ze],Ee++,Ee===te.length&&ft()})}Ge&&s.log(ze,"Already detecable, adding listener."),Oe(He,Be,ne),Ee++}),Ee===te.length&&ft()}function V(Q){if(!Q)return s.error("At least one element is required.");if(Q_(Q))Q=[Q];else if(q_(Q))Q=K_(Q);else return s.error("Invalid arguments. Must be a DOM element or a collection of DOM elements.");Qd(Q,function(te){m.removeAllListeners(te),x.uninstall(te),dc.cleanState(te)})}function J(Q){x.initDocument&&x.initDocument(Q)}return{listenTo:U,removeListener:m.removeListener,removeAllListeners:m.removeAllListeners,uninstall:V,initDocument:J}};function yc(e,t,r){var i=e[t];return i==null&&r!==void 0?r:i}const gF=_p(_F);let vF=class extends du.EventEmitter{get iconService(){return this.container.iconService}get fontService(){return this.container.fontService}get controlService(){return this.container.controlService}get configService(){return this.container.globalConfigService}get map(){return this.container.mapService}get coordinateSystemService(){return this.container.coordinateSystemService}get rendererService(){return this.container.rendererService}get layerService(){return this.container.layerService}get debugService(){return this.container.debugService}get cameraService(){return this.container.cameraService}get interactionService(){return this.container.interactionService}get pickingService(){return this.container.pickingService}get shaderModuleService(){return this.container.shaderModuleService}get markerService(){return this.container.markerService}get popupService(){return this.container.popupService}constructor(t){super(),H(this,"destroyed",!1),H(this,"loaded",!1),H(this,"id",void 0),H(this,"inited",!1),H(this,"rendering",!1),H(this,"$container",void 0),H(this,"canvas",void 0),H(this,"markerContainer",void 0),H(this,"resizeDetector",void 0),H(this,"hooks",void 0),H(this,"handleWindowResized",()=>{this.emit("resize"),this.$container&&(this.initContainer(),this.coordinateSystemService.needRefresh=!0,this.render())}),H(this,"handleMapCameraChanged",r=>{this.cameraService.update(r),this.render()}),this.container=t,this.hooks={init:new jA},this.id=t.id}init(t){var r=this;this.configService.setSceneConfig(this.id,t),this.shaderModuleService.registerBuiltinModules(),this.iconService.init(),this.iconService.on("imageUpdate",()=>this.render()),this.fontService.init(),this.hooks.init.tapPromise("initMap",mt(function*(){r.debugService.log("map.mapInitStart",{type:r.map.version}),yield new Promise(i=>{r.map.onCameraChanged(s=>{r.cameraService.init(),r.cameraService.update(s),i()}),r.map.init()}),r.map.onCameraChanged(r.handleMapCameraChanged),r.map.addMarkerContainer(),r.markerService.addMarkers(),r.markerService.addMarkerLayers(),r.popupService.initPopup(),r.interactionService.init(),r.interactionService.on(Us.Drag,r.addSceneEvent.bind(r))})),this.hooks.init.tapPromise("initRenderer",mt(function*(){var i;const s=((i=r.map)===null||i===void 0?void 0:i.getOverlayContainer())||void 0;if(s?r.$container=s:r.$container=PA(r.configService.getSceneConfig(r.id).id||""),r.$container){const{canvas:n}=t;if(r.canvas=n||lu("canvas","",r.$container),r.setCanvas(),yield r.rendererService.init(r.canvas,r.configService.getSceneConfig(r.id),t.gl),r.registerContextLost(),r.initContainer(),r.resizeDetector=gF({strategy:"scroll"}),r.resizeDetector.listenTo(r.$container,r.handleWindowResized),window.matchMedia){var u;(u=window.matchMedia("screen and (-webkit-min-device-pixel-ratio: 1.5)"))===null||u===void 0||u.addListener(r.handleWindowResized.bind("screen"))}}else console.error("容器 id 不存在");r.pickingService.init(r.id)})),this.render()}registerContextLost(){const t=this.rendererService.getCanvas();t&&t.addEventListener("webglcontextlost",()=>this.emit("webglcontextlost"))}addLayer(t){this.layerService.sceneService=this,this.layerService.add(t)}addMask(t){this.layerService.sceneService=this,this.layerService.addMask(t)}render(){var t=this;return mt(function*(){t.rendering||t.destroyed||(t.rendering=!0,t.inited?(yield t.layerService.initLayers(),yield t.layerService.renderLayers()):(yield t.hooks.init.promise(),t.destroyed&&t.destroy(),yield t.layerService.initLayers(),t.layerService.renderLayers(),t.controlService.addControls(),t.loaded=!0,t.emit("loaded"),t.inited=!0),t.rendering=!1)})()}addFontFace(t,r){this.fontService.addFontFace(t,r)}getSceneContainer(){return this.$container}exportPng(t){var r=this;return mt(function*(){var i;const s=(i=r.$container)===null||i===void 0?void 0:i.getElementsByTagName("canvas")[0];return yield r.render(),t==="jpg"?s==null?void 0:s.toDataURL("image/jpeg"):s==null?void 0:s.toDataURL("image/png")})()}getSceneConfig(){return this.configService.getSceneConfig(this.id)}getPointSizeRange(){return this.rendererService.getPointSizeRange()}addMarkerContainer(){const t=this.$container.parentElement;t!==null&&(this.markerContainer=lu("div","l7-marker-container",t))}getMarkerContainer(){return this.markerContainer}destroy(){var t;if(!this.inited){this.destroyed=!0;return}this.resizeDetector.removeListener(this.$container,this.handleWindowResized),this.pickingService.destroy(),this.layerService.destroy(),this.interactionService.destroy(),this.controlService.destroy(),this.markerService.destroy(),this.fontService.destroy(),this.iconService.destroy(),this.removeAllListeners(),this.inited=!1,this.map.destroy(),setTimeout(()=>{var r;(r=this.$container)===null||r===void 0||r.removeChild(this.canvas),this.canvas=null,this.rendererService.destroy()}),(t=this.$container)===null||t===void 0||(t=t.parentNode)===null||t===void 0||t.removeChild(this.$container),this.emit("destroy")}initContainer(){var t,r;const i=Bs,s=((t=this.$container)===null||t===void 0?void 0:t.clientWidth)||400,u=((r=this.$container)===null||r===void 0?void 0:r.clientHeight)||300,n=this.canvas;n&&(n.width=s*i,n.height=u*i),this.rendererService.viewport({x:0,y:0,width:i*s,height:i*u})}setCanvas(){var t,r;const i=Bs,s=((t=this.$container)===null||t===void 0?void 0:t.clientWidth)||400,u=((r=this.$container)===null||r===void 0?void 0:r.clientHeight)||300,n=this.canvas;n.width=s*i,n.height=u*i,n.style.width="100%",n.style.height="100%"}addSceneEvent(t){this.emit(t.type,t)}};const{uniq:EF}=Qn,J_="#define PI 3.14159265359",xF=`#define ambientRatio 0.5 #define diffuseRatio 0.3 #define specularRatio 0.2 float calc_lighting(vec4 pos) { vec3 worldPos = vec3(pos * u_ModelMatrix); vec3 worldNormal = a_Normal; // //cal light weight vec3 viewDir = normalize(u_CameraPosition - worldPos); vec3 lightDir = normalize(vec3(1, -10.5, 12)); vec3 halfDir = normalize(viewDir+lightDir); // //lambert float lambert = dot(worldNormal, lightDir); //specular float specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0); //sum to light weight float lightWeight = ambientRatio + diffuseRatio * lambert + specularRatio * specular; return lightWeight; } `,PF=`#define SHIFT_RIGHT17 1.0 / 131072.0 #define SHIFT_RIGHT18 1.0 / 262144.0 #define SHIFT_RIGHT19 1.0 / 524288.0 #define SHIFT_RIGHT20 1.0 / 1048576.0 #define SHIFT_RIGHT21 1.0 / 2097152.0 #define SHIFT_RIGHT22 1.0 / 4194304.0 #define SHIFT_RIGHT23 1.0 / 8388608.0 #define SHIFT_RIGHT24 1.0 / 16777216.0 #define SHIFT_LEFT17 131072.0 #define SHIFT_LEFT18 262144.0 #define SHIFT_LEFT19 524288.0 #define SHIFT_LEFT20 1048576.0 #define SHIFT_LEFT21 2097152.0 #define SHIFT_LEFT22 4194304.0 #define SHIFT_LEFT23 8388608.0 #define SHIFT_LEFT24 16777216.0 vec2 unpack_float(float packedValue) { int packedIntValue = int(packedValue); int v0 = packedIntValue / 256; return vec2(v0, packedIntValue - v0 * 256); } vec4 decode_color(vec2 encodedColor) { return vec4( unpack_float(encodedColor[0]) / 255.0, unpack_float(encodedColor[1]) / 255.0 ); } `,bF=`// Blinn-Phong model // apply lighting in vertex shader instead of fragment shader // @see https://learnopengl.com/Advanced-Lighting/Advanced-Lighting uniform float u_Ambient : 1.0; uniform float u_Diffuse : 1.0; uniform float u_Specular : 1.0; uniform int u_NumOfDirectionalLights : 1; uniform int u_NumOfSpotLights : 0; #define SHININESS 32.0 #define MAX_NUM_OF_DIRECTIONAL_LIGHTS 3 #define MAX_NUM_OF_SPOT_LIGHTS 3 struct DirectionalLight { vec3 direction; vec3 ambient; vec3 diffuse; vec3 specular; }; struct SpotLight { vec3 position; vec3 direction; vec3 ambient; vec3 diffuse; vec3 specular; float constant; float linear; float quadratic; float angle; float blur; float exponent; }; uniform DirectionalLight u_DirectionalLights[MAX_NUM_OF_DIRECTIONAL_LIGHTS]; uniform SpotLight u_SpotLights[MAX_NUM_OF_SPOT_LIGHTS]; vec3 calc_directional_light(DirectionalLight light, vec3 normal, vec3 viewDir) { vec3 lightDir = normalize(light.direction); // diffuse shading float diff = max(dot(normal, lightDir), 0.0); // Blinn-Phong specular shading vec3 halfwayDir = normalize(lightDir + viewDir); float spec = pow(max(dot(normal, halfwayDir), 0.0), SHININESS); vec3 ambient = light.ambient * u_Ambient; vec3 diffuse = light.diffuse * diff * u_Diffuse; vec3 specular = light.specular * spec * u_Specular; return ambient + diffuse + specular; } vec3 calc_lighting(vec3 position, vec3 normal, vec3 viewDir) { vec3 weight = vec3(0.0); for (int i = 0; i < MAX_NUM_OF_DIRECTIONAL_LIGHTS; i++) { if (i >= u_NumOfDirectionalLights) { break; } weight += calc_directional_light(u_DirectionalLights[i], normal, viewDir); } return weight; } `,AF=` in vec4 v_PickingResult; #pragma include "picking_uniforms" #define PICKING_NONE 0.0 #define PICKING_ENCODE 1.0 #define PICKING_HIGHLIGHT 2.0 #define COLOR_SCALE 1. / 255. #define HIGHLIGHT 1.0 #define SELECT 2.0 /* * Returns highlight color if this item is selected. */ vec4 filterHighlightColor(vec4 color, float weight) { float activeType = v_PickingResult.a; if(activeType > 0.0) { vec4 highLightColor = activeType > 1.5 ? u_SelectColor : u_HighlightColor; highLightColor = highLightColor * COLOR_SCALE; float highLightAlpha = highLightColor.a; float highLightRatio = highLightAlpha / (highLightAlpha + color.a * (1.0 - highLightAlpha)); vec3 resultRGB = mix(color.rgb, highLightColor.rgb, highLightRatio); return vec4(mix(resultRGB * weight, color.rgb, u_activeMix), color.a); } else { return color; } } /* * Returns picking color if picking enabled else unmodified argument. */ vec4 filterPickingColor(vec4 color) { vec3 pickingColor = v_PickingResult.rgb; if (u_PickingStage == PICKING_ENCODE && length(pickingColor) < 0.001) { discard; } return u_PickingStage == PICKING_ENCODE ? vec4(pickingColor, step(0.001,color.a)): color; } /* * Returns picking color if picking is enabled if not * highlight color if this item is selected, otherwise unmodified argument. */ vec4 filterColor(vec4 color) { // 过滤多余的 shader 计算 // return color; if(u_shaderPick < 0.5) { return color; // 暂时去除 直接取消计算在选中时拖拽地图会有问题 } else { return filterPickingColor(filterHighlightColor(color, 1.0)); } } vec4 filterColorAlpha(vec4 color, float alpha) { // 过滤多余的 shader 计算 // return color; if(u_shaderPick < 0.5) { return color; // 暂时去除 直接取消计算在选中时拖拽地图会有问题 } else { return filterPickingColor(filterHighlightColor(color, alpha)); } } `,FF=`layout(location = ATTRIBUTE_LOCATION_PICKING_COLOR) in vec3 a_PickingColor; out vec4 v_PickingResult; #pragma include "picking_uniforms" #define PICKING_NONE 0.0 #define PICKING_ENCODE 1.0 #define PICKING_HIGHLIGHT 2.0 #define COLOR_SCALE 1. / 255. #define NORMAL 0.0 #define HIGHLIGHT 1.0 #define SELECT 2.0 bool isVertexPicked(vec3 vertexColor) { return distance(vertexColor,u_PickingColor.rgb) < 0.01; } // 判断当前点是否已经被 select 选中 bool isVertexSelected(vec3 vertexColor) { return distance(vertexColor,u_CurrentSelectedId.rgb) < 0.01; } void setPickingColor(vec3 pickingColor) { if(u_shaderPick < 0.5) { return; } // compares only in highlight stage if(u_PickingStage == PICKING_HIGHLIGHT) { if(isVertexPicked(pickingColor)) { v_PickingResult = vec4(pickingColor.rgb * COLOR_SCALE,HIGHLIGHT); return; } if(isVertexSelected(pickingColor)) { v_PickingResult = vec4(u_CurrentSelectedId.rgb * COLOR_SCALE,SELECT); return; } } else { v_PickingResult= vec4(pickingColor.rgb * COLOR_SCALE,NORMAL); return; } // // v_PickingResult.a = float((u_PickingStage == PICKING_HIGHLIGHT) && (isVertexPicked(pickingColor) || isVertexPicked(u_CurrentSelectedId))); // // Stores the picking color so that the fragment shader can render it during picking // v_PickingResult.rgb = pickingColor * COLOR_SCALE; } float setPickingSize(float x) { return u_PickingStage == PICKING_ENCODE ? x + u_PickingBuffer : x; } float setPickingOrder(float z) { bool selected = bool(v_PickingResult.a); return selected ? z + 1. : 0.; } `,e5=`layout(std140) uniform PickingUniforms { vec4 u_HighlightColor; vec4 u_SelectColor; vec3 u_PickingColor; float u_PickingStage; vec3 u_CurrentSelectedId; float u_PickingThreshold; float u_PickingBuffer; float u_shaderPick; float u_activeMix; };`,TF=` #define E 2.718281828459045 vec2 ProjectFlat(vec2 lnglat){ float maxs=85.0511287798; float lat=max(min(maxs,lnglat.y),-maxs); float scale= 268435456.; float d=PI/180.; float x=lnglat.x*d; float y=lat*d; y=log(tan((PI/4.)+(y/2.))); float a=.5/PI, b=.5, c=-.5/PI; d=.5; x=scale*(a*x+b); y=scale*(c*y+d); return vec2(x,y); } vec2 unProjectFlat(vec2 px){ float a=.5/PI; float b=.5; float c=-.5/PI; float d=.5; float scale = 268435456.; float x=(px.x/scale-b)/a; float y=(px.y/scale-d)/c; y=(atan(pow(E,y))-(PI/4.))*2.; d=PI/180.; float lat=y/d; float lng=x/d; return vec2(lng,lat); } float pixelDistance(vec2 from, vec2 to) { vec2 a1 = ProjectFlat(from); vec2 b1 = ProjectFlat(to); return distance(a1, b1); } // gaode2.0 vec2 customProject(vec2 lnglat) { // 经纬度 => 平面坐标 float t = lnglat.x; float e = lnglat.y; float Sm = 180.0 / PI; float Tm = 6378137.0; float Rm = PI / 180.0; float r = 85.0511287798; e = max(min(r, e), -r); t *= Rm; e *= Rm; e = log(tan(PI / 4.0 + e / 2.0)); return vec2(t * Tm, e * Tm); } vec2 unProjCustomCoord(vec2 point) { // 平面坐标 => 经纬度 float Sm = 57.29577951308232; //180 / Math.PI float Tm = 6378137.0; float t = point.x; float e = point.y; return vec2(t / Tm * Sm, (2.0 * atan(exp(e / Tm)) - PI / 2.0) * Sm); } float customPixelDistance(vec2 from, vec2 to) { vec2 a1 = ProjectFlat(from); vec2 b1 = ProjectFlat(to); return distance(a1, b1); }`,t5=`#define TILE_SIZE (512.0) #define PI (3.1415926536) #define WORLD_SCALE (TILE_SIZE / (PI * 2.0)) #define EARTH_CIRCUMFERENCE (40.03e6) #define COORDINATE_SYSTEM_LNGLAT (1.0) // mapbox #define COORDINATE_SYSTEM_LNGLAT_OFFSET (2.0) // mapbox offset #define COORDINATE_SYSTEM_VECTOR_TILE (3.0) #define COORDINATE_SYSTEM_IDENTITY (4.0) #define COORDINATE_SYSTEM_METER_OFFSET (5.0) #pragma include "scene_uniforms" const vec2 ZERO_64_XY_LOW = vec2(0.0, 0.0); // web mercator coords -> world coords vec2 project_mercator(vec2 lnglat) { float x = lnglat.x; return vec2(radians(x) + PI, PI - log(tan(PI * 0.25 + radians(lnglat.y) * 0.5))); } float project_scale(float meters) { return meters * u_PixelsPerMeter.z; } // offset coords -> world coords vec4 project_offset(vec4 offset) { float dy = offset.y; dy = clamp(dy, -1.0, 1.0); vec3 pixels_per_unit = u_PixelsPerDegree + u_PixelsPerDegree2 * dy; return vec4(offset.xyz * pixels_per_unit, offset.w); } vec3 project_normal(vec3 normal) { vec4 normal_modelspace = u_ModelMatrix * vec4(normal, 0.0); return normalize(normal_modelspace.xyz * u_PixelsPerMeter); } vec3 project_offset_normal(vec3 vector) { if ( u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // normals generated by the polygon tesselator are in lnglat offsets instead of meters return normalize(vector * u_PixelsPerDegree); } return project_normal(vector); } vec4 project_position(vec4 position, vec2 position64xyLow) { if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { float X = position.x - u_ViewportCenter.x; float Y = position.y - u_ViewportCenter.y; return project_offset( vec4(X + position64xyLow.x, Y + position64xyLow.y, position.z, position.w) ); } if ( u_CoordinateSystem < COORDINATE_SYSTEM_LNGLAT + 0.01 && u_CoordinateSystem > COORDINATE_SYSTEM_LNGLAT - 0.01 ) { return vec4( project_mercator(position.xy) * WORLD_SCALE * u_ZoomScale, project_scale(position.z), position.w ); } return position; } vec4 project_position(vec4 position) { return project_position(position, ZERO_64_XY_LOW); } vec2 project_pixel_size_to_clipspace(vec2 pixels) { vec2 offset = pixels / u_ViewportSize * u_DevicePixelRatio * 2.0; return offset * u_FocalDistance; } // 适配纹理贴图的等像素大小 float project_pixel_texture(float pixel) { // mapbox zoom > 12 if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { return pixel * pow(0.5, u_Zoom) * u_FocalDistance; } return pixel * 2.0 * u_FocalDistance; } // 在不论什么底图下需要统一处理的时候使用 float project_float_pixel(float pixel) { if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // mapbox 坐标系下,为了和 Web 墨卡托坐标系统一,zoom 默认减1 return pixel * pow(2.0, 19.0 - u_Zoom) * u_FocalDistance; } return pixel * u_FocalDistance; } // Project meter into the unit of pixel which used in the camera world space float project_float_meter(float meter) { if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // Since the zoom level uniform is updated by mapservice and it's alread been subtracted by 1 // Not sure if we are supposed to do that again return meter; } else { return project_float_pixel(meter); } // TODO: change the following code to make adaptations for amap // return u_FocalDistance * TILE_SIZE * pow(2.0, u_Zoom) * meter / EARTH_CIRCUMFERENCE; } float project_pixel(float pixel) { return pixel * u_FocalDistance; } vec2 project_pixel(vec2 pixel) { return pixel * -1.0 * u_FocalDistance; } vec3 project_pixel(vec3 pixel) { return pixel * -1.0 * u_FocalDistance; } vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) { if ( u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // Needs to be divided with project_uCommonUnitsPerMeter position.w *= u_PixelsPerMeter.z; } return viewProjectionMatrix * position + center; } // Projects from common space coordinates to clip space vec4 project_common_position_to_clipspace(vec4 position) { return project_common_position_to_clipspace( position, u_ViewProjectionMatrix, u_ViewportCenterProjection ); } vec4 unproject_clipspace_to_position(vec4 clipspacePos, mat4 u_InverseViewProjectionMatrix) { vec4 pos = u_InverseViewProjectionMatrix * (clipspacePos - u_ViewportCenterProjection); if ( u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // Needs to be divided with project_uCommonUnitsPerMeter pos.w = pos.w / u_PixelsPerMeter.z; } return pos; } bool isEqual(float a, float b) { return a < b + 0.001 && a > b - 0.001; } `,SF=`vec2 rotate_matrix(vec2 v, float a) { float b = a / 180.0 * 3.1415926535897932384626433832795; float s = sin(b); float c = cos(b); mat2 m = mat2(c, s, -s, c); return m * v; }`,r5=`layout(std140) uniform SceneUniforms { mat4 u_ViewMatrix; mat4 u_ProjectionMatrix; mat4 u_ViewProjectionMatrix; mat4 u_ModelMatrix; vec4 u_ViewportCenterProjection; vec3 u_PixelsPerDegree; float u_Zoom; vec3 u_PixelsPerDegree2; float u_ZoomScale; vec3 u_PixelsPerMeter; float u_CoordinateSystem; vec3 u_CameraPosition; float u_DevicePixelRatio; vec2 u_ViewportCenter; vec2 u_ViewportSize; float u_FocalDistance; }; `,wF=`/** * 2D signed distance field functions * @see http://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm */ float ndot(vec2 a, vec2 b ) { return a.x*b.x - a.y*b.y; } float sdCircle(vec2 p, float r) { return length(p) - r; } float sdEquilateralTriangle(vec2 p) { float k = sqrt(3.0); p.x = abs(p.x) - 1.0; p.y = p.y + 1.0/k; if( p.x + k*p.y > 0.0 ) p = vec2(p.x-k*p.y,-k*p.x-p.y)/2.0; p.x -= clamp( p.x, -2.0, 0.0 ); return -length(p)*sign(p.y); } float sdBox(vec2 p, vec2 b) { vec2 d = abs(p)-b; return length(max(d,vec2(0))) + min(max(d.x,d.y),0.0); } float sdPentagon(vec2 p, float r) { vec3 k = vec3(0.809016994,0.587785252,0.726542528); p.x = abs(p.x); p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y); p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y); p -= vec2(clamp(p.x,-r*k.z,r*k.z),r); return length(p)*sign(p.y); } float sdHexagon(vec2 p, float r) { vec3 k = vec3(-0.866025404,0.5,0.577350269); p = abs(p); p -= 2.0*min(dot(k.xy,p),0.0)*k.xy; p -= vec2(clamp(p.x, -k.z*r, k.z*r), r); return length(p)*sign(p.y); } float sdOctogon(vec2 p, float r) { vec3 k = vec3(-0.9238795325, 0.3826834323, 0.4142135623 ); p = abs(p); p -= 2.0*min(dot(vec2( k.x,k.y),p),0.0)*vec2( k.x,k.y); p -= 2.0*min(dot(vec2(-k.x,k.y),p),0.0)*vec2(-k.x,k.y); p -= vec2(clamp(p.x, -k.z*r, k.z*r), r); return length(p)*sign(p.y); } float sdHexagram(vec2 p, float r) { vec4 k=vec4(-0.5,0.8660254038,0.5773502692,1.7320508076); p = abs(p); p -= 2.0*min(dot(k.xy,p),0.0)*k.xy; p -= 2.0*min(dot(k.yx,p),0.0)*k.yx; p -= vec2(clamp(p.x,r*k.z,r*k.w),r); return length(p)*sign(p.y); } float sdRhombus(vec2 p, vec2 b) { vec2 q = abs(p); float h = clamp((-2.0*ndot(q,b)+ndot(b,b))/dot(b,b),-1.0,1.0); float d = length( q - 0.5*b*vec2(1.0-h,1.0+h) ); return d * sign( q.x*b.y + q.y*b.x - b.x*b.y ); } float sdVesica(vec2 p, float r, float d) { p = abs(p); float b = sqrt(r*r-d*d); // can delay this sqrt return ((p.y-b)*d>p.x*b) ? length(p-vec2(0.0,b)) : length(p-vec2(-d,0.0))-r; } `,o5=/precision\s+(high|low|medium)p\s+float/,i5=`#ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; #endif `,RF=/#pragma include (["^+"]?["[a-zA-Z_0-9](.*)"]*?)/g,CF=/void\s+main\s*\([^)]*\)\s*\{\n?/;class IF{constructor(){H(this,"moduleCache",{}),H(this,"rawContentCache",{})}registerBuiltinModules(){this.destroy(),this.registerModule("common",{vs:J_,fs:J_}),this.registerModule("decode",{vs:PF,fs:""}),this.registerModule("scene_uniforms",{vs:r5,fs:r5}),this.registerModule("picking_uniforms",{vs:e5,fs:e5}),this.registerModule("projection",{vs:t5,fs:t5}),this.registerModule("project",{vs:TF,fs:""}),this.registerModule("sdf_2d",{vs:"",fs:wF}),this.registerModule("lighting",{vs:bF,fs:""}),this.registerModule("light",{vs:xF,fs:""}),this.registerModule("picking",{vs:FF,fs:AF}),this.registerModule("rotation_2d",{vs:SF,fs:""})}registerModule(t,r){r.vs=r.vs.replace(/\r\n/g,` `),r.fs=r.fs.replace(/\r\n/g,` `);const{vs:i,fs:s,uniforms:u,defines:n,inject:y}=r,{content:m,uniforms:g}=Hm(i),{content:x,uniforms:b}=Hm(s);this.rawContentCache[t]={fs:x,defines:n,inject:y,uniforms:_t(_t(_t({},g),b),u),vs:m}}getModule(t){let r=this.rawContentCache[t].vs,i=this.rawContentCache[t].fs;const{defines:s={},inject:u={}}=this.rawContentCache[t];let n={};u["vs:#decl"]&&(r=u["vs:#decl"]+r,n=Hm(u["vs:#decl"]).uniforms),u["vs:#main-start"]&&(r=r.replace(CF,U=>U+u["vs:#main-start"])),u["fs:#decl"]&&(i=u["fs:#decl"]+i),r=MF(s)+r;const{content:m,includeList:g}=this.processModule(r,[],"vs"),{content:x,includeList:b}=this.processModule(i,[],"fs"),F=EF(g.concat(b).concat(t)).reduce((U,V)=>_t(_t({},U),this.rawContentCache[V].uniforms),_t({},n)),R=(o5.test(x)?"":i5)+m,I=(o5.test(x)?"":i5)+x;return this.moduleCache[t]={vs:R.trim(),fs:I.trim(),uniforms:F},this.moduleCache[t]}destroy(){this.moduleCache={},this.rawContentCache={}}processModule(t,r,i){return{content:t.replace(RF,(u,n)=>{const m=n.split(" ")[0].replace(/"/g,"");if(r.indexOf(m)>-1)return"";const g=this.rawContentCache[m][i];r.push(m);const{content:x}=this.processModule(g,r,i);return x}),includeList:r}}}function MF(e){return Object.keys(e).reduce((r,i)=>r+`#define ${i.toUpperCase()} ${e[i]} `,` `)}class F6{constructor(){H(this,"shaderModuleService",void 0),H(this,"rendererService",void 0),H(this,"cameraService",void 0),H(this,"mapService",void 0),H(this,"interactionService",void 0),H(this,"layerService",void 0),H(this,"config",void 0)}getName(){return""}getType(){return Ny.Normal}init(t,r){this.config=r,this.rendererService=t.getContainer().rendererService,this.cameraService=t.getContainer().cameraService,this.mapService=t.getContainer().mapService,this.interactionService=t.getContainer().interactionService,this.layerService=t.getContainer().layerService,this.shaderModuleService=t.getContainer().shaderModuleService}render(t){}}class NF extends F6{getName(){return"clear"}init(t,r){super.init(t,r)}render(){this.rendererService.clear({color:[0,0,0,0],depth:1,framebuffer:null})}}class DF{constructor(t){H(this,"passes",[]),H(this,"layer",void 0),H(this,"renderFlag",void 0),H(this,"width",0),H(this,"height",0),this.postProcessor=t}setLayer(t){this.layer=t}setRenderFlag(t){this.renderFlag=t}getRenderFlag(){return this.renderFlag}getPostProcessor(){return this.postProcessor}render(){var t=this;return mt(function*(){for(const r of t.passes)yield r.render(t.layer);yield t.postProcessor.render(t.layer)})()}resize(t,r){(this.width!==t||this.height!==r)&&(this.postProcessor.resize(t,r),this.width=t,this.height=r)}add(t,r){t.getType()===Ny.PostProcessing?this.postProcessor.add(t,this.layer,r):(t.init(this.layer,r),this.passes.push(t))}insert(t,r,i){t.init(this.layer,r),this.passes.splice(i,0,t)}destroy(){this.passes.length=0}}class OF extends F6{constructor(...t){var r;super(...t),r=this,H(this,"pickingFBO",void 0),H(this,"layer",void 0),H(this,"width",0),H(this,"height",0),H(this,"alreadyInRendering",!1),H(this,"pickFromPickingFBO",({x:i,y:s,lngLat:u,type:n})=>{if(!this.layer.isVisible()||!this.layer.needPick(n))return;const{getViewportSize:y,readPixelsAsync:m,useFramebuffer:g}=this.rendererService,{width:x,height:b}=y(),{enableHighlight:F,enableSelect:R}=this.layer.getLayerConfig(),I=i*Bs,U=s*Bs;if(I>x||I<0||U>b||U<0)return;let V;g(this.pickingFBO,mt(function*(){var J;if(V=yield m({x:Math.round(I),y:Math.round(b-(s+1)*Bs),width:1,height:1,data:new Uint8Array(1*1*4),framebuffer:r.pickingFBO}),V[0]!==0||V[1]!==0||V[2]!==0){const Q=c1(V),te=r.layer.getSource().getFeatureById(Q),ne={x:i,y:s,type:n,lngLat:u,featureId:Q,feature:te};te&&(r.layer.setCurrentPickId(Q),r.triggerHoverOnLayer(ne))}else{const Q={x:i,y:s,lngLat:u,type:r.layer.getCurrentPickId()===null?"un"+n:"mouseout",featureId:null,feature:null};r.triggerHoverOnLayer(_t(_t({},Q),{},{type:"unpick"})),r.triggerHoverOnLayer(Q),r.layer.setCurrentPickId(null)}F&&r.highlightPickedFeature(V),R&&n==="click"&&((J=V)===null||J===void 0?void 0:J.toString())!==[0,0,0,0].toString()&&r.selectFeature(V)}))})}getType(){return Ny.Normal}getName(){return"pixelPicking"}init(t,r){super.init(t,r),this.layer=t;const{createTexture2D:i,createFramebuffer:s,getViewportSize:u}=this.rendererService,{width:n,height:y}=u(),m=i({width:n,height:y,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,label:"Picking Texture"});this.pickingFBO=s({color:m}),this.interactionService.on(Us.Hover,this.pickFromPickingFBO),this.interactionService.on(Us.Select,this.selectFeatureHandle.bind(this)),this.interactionService.on(Us.Active,this.highlightFeatureHandle.bind(this))}render(t){if(this.alreadyInRendering)return;const{getViewportSize:r,useFramebuffer:i,clear:s}=this.rendererService,{width:u,height:n}=r();this.alreadyInRendering=!0,(this.width!==u||this.height!==n)&&(this.pickingFBO.resize({width:u,height:n}),this.width=u,this.height=n),i(this.pickingFBO,()=>{s({framebuffer:this.pickingFBO,color:[0,0,0,0],stencil:0,depth:1});const y=this.layer.multiPassRenderer.getRenderFlag();this.layer.multiPassRenderer.setRenderFlag(!1),t.hooks.beforePickingEncode.call(),t.render(),t.hooks.afterPickingEncode.call(),this.layer.multiPassRenderer.setRenderFlag(y),this.alreadyInRendering=!1})}triggerHoverOnLayer(t){this.layer.emit(t.type,t)}highlightPickedFeature(t){const[r,i,s]=t;this.layer.hooks.beforeHighlight.call([r,i,s]),this.layerService.renderLayers()}selectFeature(t){const[r,i,s]=t;this.layer.hooks.beforeSelect.call([r,i,s]),this.layerService.renderLayers()}selectFeatureHandle({featureId:t}){const r=L0(t);this.selectFeature(new Uint8Array(r))}highlightFeatureHandle({featureId:t}){const r=L0(t);this.highlightPickedFeature(new Uint8Array(r))}}class LF{constructor(t){H(this,"passes",[]),H(this,"readFBO",void 0),H(this,"writeFBO",void 0),this.rendererService=t,this.init()}getReadFBO(){return this.readFBO}getWriteFBO(){return this.writeFBO}getCurrentFBOTex(){const{getViewportSize:t,createTexture2D:r}=this.rendererService,{width:i,height:s}=t();return r({x:0,y:0,width:i,height:s,copy:!0})}getReadFBOTex(){var t=this;const{useFramebuffer:r}=this.rendererService;return new Promise(i=>{r(this.readFBO,mt(function*(){i(t.getCurrentFBOTex())}))})}renderBloomPass(t,r){var i=this;return mt(function*(){const s=yield i.getReadFBOTex();let u=0;for(;u<4;)yield r.render(t,s),i.swap(),u++})()}render(t){var r=this;return mt(function*(){for(let i=0;ir.getName()===t)}init(){const{createFramebuffer:t,createTexture2D:r}=this.rendererService;this.readFBO=t({color:r({width:1,height:1,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,usage:f1.RENDER_TARGET})}),this.writeFBO=t({color:r({width:1,height:1,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,usage:f1.RENDER_TARGET})})}isLastEnabledPass(t){for(let r=t+1;r{i({color:[0,0,0,0],depth:1,stencil:0,framebuffer:s}),t.multiPassRenderer.setRenderFlag(!1),t.models.forEach(u=>{u.draw({uniforms:t.layerModel.getUninforms()})}),t.multiPassRenderer.setRenderFlag(!0)})}}const UF=`varying vec2 v_UV; uniform float u_BloomFinal: 0.0; uniform sampler2D u_Texture; uniform sampler2D u_Texture2; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform float u_radius: 5.0; uniform float u_intensity: 0.3; uniform float u_baseRadio: 0.5; // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) { vec4 color = vec4(0.0); vec2 off1 = vec2(1.3846153846) * direction; vec2 off2 = vec2(3.2307692308) * direction; color += texture2D(image, uv) * 0.2270270270; color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703; color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703; return color; } float luminance(vec4 color) { return 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b; } void main() { // vec4 baseColor = texture2D(u_Texture, v_UV); float r = sqrt(u_radius); vec4 c1 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(u_radius, 0.0)); // c1 *= luminance(c1); vec4 c2 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(0.0, u_radius)); // c2 *= luminance(c2); vec4 c3 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(r, r)); // c3 *= luminance(c3); vec4 c4 = blur9(u_Texture, v_UV, u_ViewportSize, vec2(r, -r)); // c4 *= luminance(c4); vec4 inbloomColor = (c1 + c2 + c3 + c4) * 0.25; // float lum = luminance(inbloomColor); // inbloomColor.rgb *= lum; if(u_BloomFinal > 0.0) { vec4 baseColor = texture2D(u_Texture2, v_UV); float baselum = luminance(baseColor); gl_FragColor = mix(inbloomColor, baseColor, u_baseRadio); if(baselum <= 0.2) { gl_FragColor = inbloomColor * u_intensity; } } else { gl_FragColor = inbloomColor; } }`,kF=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`,{isNil:jm}=Qn;class zF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:kF,fs:UF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return jm(t.bloomRadius)||(r.u_radius=t.bloomRadius),jm(t.bloomIntensity)||(r.u_intensity=t.bloomIntensity),jm(t.bloomBaseRadio)||(r.u_baseRadio=t.bloomBaseRadio),r}}const VF=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform vec2 u_BlurDir: [1.0, 0.0]; // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) { vec4 color = vec4(0.0); vec2 off1 = vec2(1.3846153846) * direction; vec2 off2 = vec2(3.2307692308) * direction; color += texture2D(image, uv) * 0.2270270270; color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703; color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703; return color; } void main() { gl_FragColor = blur9(u_Texture, v_UV, u_ViewportSize, u_BlurDir); }`,HF=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`,{isNil:GF}=Qn;class jF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:HF,fs:VF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return GF(t.blurRadius)||(r.u_BlurDir=[t.blurRadius,0]),r}}const WF=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform vec2 u_BlurDir: [1.0, 0.0]; // https://github.com/Jam3/glsl-fast-gaussian-blur/blob/master/9.glsl vec4 blur9(sampler2D image, vec2 uv, vec2 resolution, vec2 direction) { vec4 color = vec4(0.0); vec2 off1 = vec2(1.3846153846) * direction; vec2 off2 = vec2(3.2307692308) * direction; color += texture2D(image, uv) * 0.2270270270; color += texture2D(image, uv + (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv - (off1 / resolution)) * 0.3162162162; color += texture2D(image, uv + (off2 / resolution)) * 0.0702702703; color += texture2D(image, uv - (off2 / resolution)) * 0.0702702703; return color; } void main() { gl_FragColor = blur9(u_Texture, v_UV, u_ViewportSize, u_BlurDir); }`,XF=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`,{isNil:ZF}=Qn;class YF extends Nl{setupShaders(){this.shaderModuleService.registerModule("blur-pass",{vs:XF,fs:WF});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("blur-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}convertOptionsToUniforms(t){const r={};return ZF(t.blurRadius)||(r.u_BlurDir=[0,t.blurRadius]),r}}const $F=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform vec2 u_Center : [0.5, 0.5]; uniform float u_Angle : 0; uniform float u_Size : 8; #pragma include "common" float scale = PI / u_Size; float pattern(float u_Angle, vec2 texSize, vec2 texCoord) { float s = sin(u_Angle), c = cos(u_Angle); vec2 tex = texCoord * texSize - u_Center * texSize; vec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale; return (sin(point.x) * sin(point.y)) * 4.0; } // https://github.com/evanw/glfx.js/blob/master/src/filters/fun/colorhalftone.js vec4 colorHalftone_filterColor(vec4 color, vec2 texSize, vec2 texCoord) { vec3 cmy = 1.0 - color.rgb; float k = min(cmy.x, min(cmy.y, cmy.z)); cmy = (cmy - k) / (1.0 - k); cmy = clamp( cmy * 10.0 - 3.0 + vec3( pattern(u_Angle + 0.26179, texSize, texCoord), pattern(u_Angle + 1.30899, texSize, texCoord), pattern(u_Angle, texSize, texCoord) ), 0.0, 1.0 ); k = clamp(k * 10.0 - 5.0 + pattern(u_Angle + 0.78539, texSize, texCoord), 0.0, 1.0); return vec4(1.0 - cmy - k, color.a); } void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); gl_FragColor = colorHalftone_filterColor(gl_FragColor, u_ViewportSize, v_UV); }`,qF=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`;class KF extends Nl{setupShaders(){this.shaderModuleService.registerModule("colorhalftone-pass",{vs:qF,fs:$F});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("colorhalftone-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const QF=`varying vec2 v_UV; uniform sampler2D u_Texture; void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); }`,JF=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`;class eT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("copy-pass",{vs:JF,fs:QF}),this.shaderModuleService.getModule("copy-pass")}}const tT=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform vec2 u_Center : [0.5, 0.5]; uniform float u_Scale : 10; // https://github.com/evanw/glfx.js/blob/master/src/filters/fun/hexagonalpixelate.js vec4 hexagonalPixelate_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) { vec2 tex = (texCoord * texSize - u_Center * texSize) / u_Scale; tex.y /= 0.866025404; tex.x -= tex.y * 0.5; vec2 a; if (tex.x + tex.y - floor(tex.x) - floor(tex.y) < 1.0) { a = vec2(floor(tex.x), floor(tex.y)); } else a = vec2(ceil(tex.x), ceil(tex.y)); vec2 b = vec2(ceil(tex.x), floor(tex.y)); vec2 c = vec2(floor(tex.x), ceil(tex.y)); vec3 TEX = vec3(tex.x, tex.y, 1.0 - tex.x - tex.y); vec3 A = vec3(a.x, a.y, 1.0 - a.x - a.y); vec3 B = vec3(b.x, b.y, 1.0 - b.x - b.y); vec3 C = vec3(c.x, c.y, 1.0 - c.x - c.y); float alen = length(TEX - A); float blen = length(TEX - B); float clen = length(TEX - C); vec2 choice; if (alen < blen) { if (alen < clen) choice = a; else choice = c; } else { if (blen < clen) choice = b; else choice = c; } choice.x += choice.y * 0.5; choice.y *= 0.866025404; choice *= u_Scale / texSize; return texture2D(texture, choice + u_Center); } void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); gl_FragColor = hexagonalPixelate_sampleColor(u_Texture, u_ViewportSize, v_UV); }`,rT=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`;class oT extends Nl{setupShaders(){this.shaderModuleService.registerModule("hexagonalpixelate-pass",{vs:rT,fs:tT});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("hexagonalpixelate-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const iT=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform vec2 u_ViewportSize: [1.0, 1.0]; uniform float u_Strength : 0.6; vec4 ink_sampleColor(sampler2D texture, vec2 texSize, vec2 texCoord) { vec2 dx = vec2(1.0 / texSize.x, 0.0); vec2 dy = vec2(0.0, 1.0 / texSize.y); vec4 color = texture2D(texture, texCoord); float bigTotal = 0.0; float smallTotal = 0.0; vec3 bigAverage = vec3(0.0); vec3 smallAverage = vec3(0.0); for (float x = -2.0; x <= 2.0; x += 1.0) { for (float y = -2.0; y <= 2.0; y += 1.0) { vec3 sample = texture2D(texture, texCoord + dx * x + dy * y).rgb; bigAverage += sample; bigTotal += 1.0; if (abs(x) + abs(y) < 2.0) { smallAverage += sample; smallTotal += 1.0; } } } vec3 edge = max(vec3(0.0), bigAverage / bigTotal - smallAverage / smallTotal); float power = u_Strength * u_Strength * u_Strength * u_Strength * u_Strength; return vec4(color.rgb - dot(edge, edge) * power * 100000.0, color.a); } void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); gl_FragColor = ink_sampleColor(u_Texture, u_ViewportSize, v_UV); }`,nT=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`;class aT extends Nl{setupShaders(){this.shaderModuleService.registerModule("ink-pass",{vs:nT,fs:iT});const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("ink-pass"),{width:s,height:u}=this.rendererService.getViewportSize();return{vs:t,fs:r,uniforms:_t(_t({},i),{},{u_ViewportSize:[s,u]})}}}const sT=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform float u_Amount : 0.5; float rand(vec2 co) { return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); } // https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/noise.js vec4 noise_filterColor(vec4 color, vec2 texCoord) { float diff = (rand(texCoord) - 0.5) * u_Amount; color.r += diff; color.g += diff; color.b += diff; return color; } void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); gl_FragColor = noise_filterColor(gl_FragColor, v_UV); }`,uT=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`;class pT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("noise-pass",{vs:uT,fs:sT}),this.shaderModuleService.getModule("noise-pass")}}const lT=`attribute vec2 a_Position; varying vec2 v_UV; void main() { v_UV = 0.5 * (a_Position + 1.0); gl_Position = vec4(a_Position, 0., 1.); }`,cT=`varying vec2 v_UV; uniform sampler2D u_Texture; uniform float u_Amount : 0.5; // https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/sepia.js vec4 sepia_filterColor(vec4 color) { float r = color.r; float g = color.g; float b = color.b; color.r = min(1.0, (r * (1.0 - (0.607 * u_Amount))) + (g * (0.769 * u_Amount)) + (b * (0.189 * u_Amount))); color.g = min(1.0, (r * 0.349 * u_Amount) + (g * (1.0 - (0.314 * u_Amount))) + (b * 0.168 * u_Amount)); color.b = min(1.0, (r * 0.272 * u_Amount) + (g * 0.534 * u_Amount) + (b * (1.0 - (0.869 * u_Amount)))); return color; } void main() { gl_FragColor = vec4(texture2D(u_Texture, v_UV)); gl_FragColor = sepia_filterColor(gl_FragColor); }`;class dT extends Nl{setupShaders(){return this.shaderModuleService.registerModule("sepia-pass",{vs:lT,fs:cT}),this.shaderModuleService.getModule("sepia-pass")}}const X8=new yA;let yT=0;function hT(){const e=new IF,t=new _A,r=new iA,i=new mA(r),s=new tA,u=new oA,n=new sA,y=new uA,m=new aA,g={id:`${yT++}`,globalConfigService:X8,shaderModuleService:e,debugService:t,cameraService:r,coordinateSystemService:i,fontService:s,iconService:u,markerService:n,popupService:y,controlService:m,customRenderService:{}},x=new TA(g);g.layerService=x;const b=new vF(g);g.sceneService=b;const F=new EA(g);g.interactionService=F;const R=new AA(g);g.pickingService=R;const I={clear:new NF,pixelPicking:new OF,render:new BF};g.normalPassFactory=V=>I[V];const U={copy:new eT,bloom:new zF,blurH:new jF,blurV:new YF,noise:new pT,sepia:new dT,colorHalftone:new KF,hexagonalPixelate:new oT,ink:new aT};return g.postProcessingPass=U,g.postProcessingPassFactory=V=>U[V],g}function ly(e){const t=_t({},e);return t.postProcessor=new LF(t.rendererService),t.multiPassRenderer=new DF(t.postProcessor),t.styleAttributeService=new NA(t.rendererService),t}const Sh=["loaded","fontloaded","maploaded","resize","destroy","dragstart","dragging","dragend","dragcancel"];let Ha=function(e){return e.IMAGE="image",e.CUSTOMIMAGE="customImage",e.ARRAYBUFFER="arraybuffer",e.RGB="rgb",e.TERRAINRGB="terrainRGB",e.CUSTOMRGB="customRGB",e.CUSTOMARRAYBUFFER="customArrayBuffer",e.CUSTOMTERRAINRGB="customTerrainRGB",e}({});var Z8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),fT=(e,t,r,i)=>Z8(void 0,null,function*(){return new Promise((s,u)=>{t({x:e.x,y:e.y,z:e.z},(n,y)=>{if(n||y.length===0){u(n);return}y&&P2([{data:y,bands:[0]}],r,i,(m,g)=>{m?u(m):g&&s(g)})})})}),mT=(e,t)=>Z8(void 0,null,function*(){return new Promise((r,i)=>{t({x:e.x,y:e.y,z:e.z},(s,u)=>{if(s||!u){i(s);return}u instanceof ArrayBuffer?sE(u,(n,y)=>{n&&i(n),r(y)}):u instanceof HTMLImageElement?r(u):i(s)})})});function _T(e,t){return Array.isArray(e)?typeof e[0]=="string"?e.map(r=>R0(r,t)):e.map(r=>({url:R0(r.url,t),bands:r.bands||[0]})):R0(e,t)}function gT(e){return typeof e=="string"?[{url:e,bands:[0]}]:typeof e[0]=="string"?e.map(t=>({url:t,bands:[0]})):e}function n5(e,t){e.xhrCancel=()=>{t.map(r=>{r.abort()})}}var vT=Object.defineProperty,ET=Object.defineProperties,xT=Object.getOwnPropertyDescriptors,a5=Object.getOwnPropertySymbols,PT=Object.prototype.hasOwnProperty,bT=Object.prototype.propertyIsEnumerable,s5=(e,t,r)=>t in e?vT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u5=(e,t)=>{for(var r in t||(t={}))PT.call(t,r)&&s5(e,r,t[r]);if(a5)for(var r of a5(t))bT.call(t,r)&&s5(e,r,t[r]);return e},p5=(e,t)=>ET(e,xT(t)),Y8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),AT=(e,t,r,i,s)=>Y8(void 0,null,function*(){const u=gT(t.url);if(u.length>1){const{rasterFiles:n,xhrList:y,errList:m}=yield FT(u,t);if(n5(e,y),m.length>0){r(m,null);return}P2(n,i,s,r)}else{const n=c6(t,(y,m)=>{if(y)r(y);else if(m){const g=[{data:m,bands:u[0].bands}];P2(g,i,s,r)}});n5(e,[n])}});function FT(e,t){return Y8(this,null,function*(){const r=[],i=[],s=[];for(let u=0;ut in e?TT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Yh=(e,t)=>{for(var r in t||(t={}))RT.call(t,r)&&c5(e,r,t[r]);if(l5)for(var r of l5(t))CT.call(t,r)&&c5(e,r,t[r]);return e},$8=(e,t)=>ST(e,wT(t)),q8=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),IT=(e,t,r,i)=>q8(void 0,null,function*(){const{format:s=K8,operation:u,requestParameters:n={}}=i,y=$8(Yh({},n),{url:_T(e,t)});return new Promise((m,g)=>{AT(r,y,(x,b)=>{x?g(x):b&&m(b)},s,u)})}),d5=(e,t,r,i)=>q8(void 0,null,function*(){let s;const u=Array.isArray(e)?e[0]:e;return i.wmtsOptions?s=((i==null?void 0:i.getURLFromTemplate)||fx)(u,Yh(Yh({},t),i.wmtsOptions)):s=((i==null?void 0:i.getURLFromTemplate)||R0)(u,t),new Promise((n,y)=>{var m;const g=l2($8(Yh({},i==null?void 0:i.requestParameters),{url:s,type:((m=i==null?void 0:i.requestParameters)==null?void 0:m.type)||"arrayBuffer"}),(x,b)=>{x?y(x):b&&n(b)},i.transformResponse);r.xhrCancel=()=>g.cancel()})}),K8=()=>({rasterData:new Uint8Array([0]),width:1,height:1}),MT=Object.defineProperty,NT=Object.defineProperties,DT=Object.getOwnPropertyDescriptors,y5=Object.getOwnPropertySymbols,OT=Object.prototype.hasOwnProperty,LT=Object.prototype.propertyIsEnumerable,h5=(e,t,r)=>t in e?MT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,f5=(e,t)=>{for(var r in t||(t={}))OT.call(t,r)&&h5(e,r,t[r]);if(y5)for(var r of y5(t))LT.call(t,r)&&h5(e,r,t[r]);return e},BT=(e,t)=>NT(e,DT(t)),UT={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0,warp:!0};Ha.ARRAYBUFFER,Ha.RGB;function kT(e){return!!(Array.isArray(e)&&e.length===0||!Array.isArray(e)&&typeof e!="string")}function zT(e,t={}){if(kT(e))throw new Error("tile server url is error");const{extent:r=[1/0,1/0,-1/0,-1/0],coordinates:i}=t;let s=(t==null?void 0:t.dataType)||Ha.IMAGE;s===Ha.RGB&&(s=Ha.ARRAYBUFFER);const u=(m,g)=>{switch(s){case Ha.IMAGE:return d5(e,m,g,t);case Ha.CUSTOMIMAGE:case Ha.CUSTOMTERRAINRGB:return mT(g,t==null?void 0:t.getCustomData);case Ha.ARRAYBUFFER:return IT(e,m,g,t);case Ha.CUSTOMARRAYBUFFER:case Ha.CUSTOMRGB:return fT(g,t==null?void 0:t.getCustomData,(t==null?void 0:t.format)||K8,t==null?void 0:t.operation);default:return d5(e,m,g,t)}},n=BT(f5(f5({},UT),t),{getTileData:u}),y=Y0(i,r);return{data:e,dataArray:[{_id:1,coordinates:y}],tilesetOptions:n,isTile:!0}}var VT=Object.defineProperty,HT=Object.defineProperties,GT=Object.getOwnPropertyDescriptors,ff=Object.getOwnPropertySymbols,Q8=Object.prototype.hasOwnProperty,J8=Object.prototype.propertyIsEnumerable,m5=(e,t,r)=>t in e?VT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,jT=(e,t)=>{for(var r in t||(t={}))Q8.call(t,r)&&m5(e,r,t[r]);if(ff)for(var r of ff(t))J8.call(t,r)&&m5(e,r,t[r]);return e},WT=(e,t)=>HT(e,GT(t)),XT=(e,t)=>{var r={};for(var i in e)Q8.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&ff)for(var i of ff(e))t.indexOf(i)<0&&J8.call(e,i)&&(r[i]=e[i]);return r};function ZT(e,t){const r=t,{extent:i=[121.168,30.2828,121.384,30.4219],coordinates:s,width:u,height:n}=r,y=XT(r,["extent","coordinates","width","height"]);e.length<2&&console.warn("RGB解析需要2个波段的数据");const[m,g]=y.bands||[0,1],x=[e[m],e[g]],b=[];for(let I=0;It in e?YT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,KT=(e,t)=>{for(var r in t||(t={}))e9.call(t,r)&&_5(e,r,t[r]);if(mf)for(var r of mf(t))t9.call(t,r)&&_5(e,r,t[r]);return e},QT=(e,t)=>$T(e,qT(t)),JT=(e,t)=>{var r={};for(var i in e)e9.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&mf)for(var i of mf(e))t.indexOf(i)<0&&t9.call(e,i)&&(r[i]=e[i]);return r};function eS(e,t){const r=t,{extent:i,coordinates:s,width:u,height:n}=r,y=JT(r,["extent","coordinates","width","height"]);e.length<3&&console.warn("RGB解析需要三个波段的数据");const[m,g,x]=y.bands||[0,1,2],b=[e[m],e[g],e[x]],F=[],[R,I]=(y==null?void 0:y.countCut)||[2,98],U=(y==null?void 0:y.RMinMax)||I0(b[0],R,I),V=(y==null?void 0:y.GMinMax)||I0(b[1],R,I),J=(y==null?void 0:y.BMinMax)||I0(b[2],R,I);for(let ne=0;net in e?tS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,iS=(e,t)=>{for(var r in t||(t={}))r9.call(t,r)&&g5(e,r,t[r]);if(_f)for(var r of _f(t))o9.call(t,r)&&g5(e,r,t[r]);return e},nS=(e,t)=>rS(e,oS(t)),aS=(e,t)=>{var r={};for(var i in e)r9.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&_f)for(var i of _f(e))t.indexOf(i)<0&&o9.call(e,i)&&(r[i]=e[i]);return r};function sS(e,t){const r=t,{extent:i,coordinates:s,min:u,max:n,width:y,height:m,format:g,operation:x}=r,b=aS(r,["extent","coordinates","min","max","width","height","format","operation"]);let F;if(g===void 0||_8(e))F=Array.from(e);else{const U=Array.isArray(e)?e:[e];F=E6(U,g,x)}const R=Y0(s,i);return{_id:1,dataArray:[nS(iS({_id:1,data:F,width:y,height:m},b),{min:u,max:n,coordinates:R})]}}var uS=Object.defineProperty,pS=Object.defineProperties,lS=Object.getOwnPropertyDescriptors,v5=Object.getOwnPropertySymbols,cS=Object.prototype.hasOwnProperty,dS=Object.prototype.propertyIsEnumerable,E5=(e,t,r)=>t in e?uS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x5=(e,t)=>{for(var r in t||(t={}))cS.call(t,r)&&E5(e,r,t[r]);if(v5)for(var r of v5(t))dS.call(t,r)&&E5(e,r,t[r]);return e},yS=(e,t)=>pS(e,lS(t)),hS=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),fS={tileSize:256,minZoom:0,maxZoom:1/0,zoomOffset:0},mS=e=>hS(void 0,null,function*(){return new Promise(t=>{const[r,i,s,u]=e.bounds,n={layers:{testTile:{features:[{type:"Feature",properties:{key:e.x+"/"+e.y+"/"+e.z,x:(r+s)/2,y:(i+u)/2},geometry:{type:"LineString",coordinates:[[s,u],[s,i],[r,i],[r,i]]}}]}}};t(n)})});function _S(e,t){const r=s=>mS(s),i=yS(x5(x5({},fS),t),{getTileData:r});return{data:e,dataArray:[],tilesetOptions:i,isTile:!0}}var i9={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){function r(Ge,Ae,Be,ze,st,Vt){if(!(st-ze<=Be)){var ir=ze+st>>1;i(Ge,Ae,ir,ze,st,Vt%2),r(Ge,Ae,Be,ze,ir-1,Vt+1),r(Ge,Ae,Be,ir+1,st,Vt+1)}}function i(Ge,Ae,Be,ze,st,Vt){for(;st>ze;){if(st-ze>600){var ir=st-ze+1,Fr=Be-ze+1,Yr=Math.log(ir),mr=.5*Math.exp(2*Yr/3),Er=.5*Math.sqrt(Yr*mr*(ir-mr)/ir)*(Fr-ir/2<0?-1:1),qr=Math.max(ze,Math.floor(Be-Fr*mr/ir+Er)),Jr=Math.min(st,Math.floor(Be+(ir-Fr)*mr/ir+Er));i(Ge,Ae,Be,qr,Jr,Vt)}var _o=Ae[2*Be+Vt],So=ze,oo=st;for(s(Ge,Ae,ze,Be),Ae[2*st+Vt]>_o&&s(Ge,Ae,ze,st);So_o;)oo--}Ae[2*ze+Vt]===_o?s(Ge,Ae,ze,oo):(oo++,s(Ge,Ae,oo,st)),oo<=Be&&(ze=oo+1),Be<=oo&&(st=oo-1)}}function s(Ge,Ae,Be,ze){u(Ge,Be,ze),u(Ae,2*Be,2*ze),u(Ae,2*Be+1,2*ze+1)}function u(Ge,Ae,Be){var ze=Ge[Ae];Ge[Ae]=Ge[Be],Ge[Be]=ze}function n(Ge,Ae,Be,ze,st,Vt,ir){for(var Fr=[0,Ge.length-1,0],Yr=[],mr,Er;Fr.length;){var qr=Fr.pop(),Jr=Fr.pop(),_o=Fr.pop();if(Jr-_o<=ir){for(var So=_o;So<=Jr;So++)mr=Ae[2*So],Er=Ae[2*So+1],mr>=Be&&mr<=st&&Er>=ze&&Er<=Vt&&Yr.push(Ge[So]);continue}var oo=Math.floor((_o+Jr)/2);mr=Ae[2*oo],Er=Ae[2*oo+1],mr>=Be&&mr<=st&&Er>=ze&&Er<=Vt&&Yr.push(Ge[oo]);var Wi=(qr+1)%2;(qr===0?Be<=mr:ze<=Er)&&(Fr.push(_o),Fr.push(oo-1),Fr.push(Wi)),(qr===0?st>=mr:Vt>=Er)&&(Fr.push(oo+1),Fr.push(Jr),Fr.push(Wi))}return Yr}function y(Ge,Ae,Be,ze,st,Vt){for(var ir=[0,Ge.length-1,0],Fr=[],Yr=st*st;ir.length;){var mr=ir.pop(),Er=ir.pop(),qr=ir.pop();if(Er-qr<=Vt){for(var Jr=qr;Jr<=Er;Jr++)m(Ae[2*Jr],Ae[2*Jr+1],Be,ze)<=Yr&&Fr.push(Ge[Jr]);continue}var _o=Math.floor((qr+Er)/2),So=Ae[2*_o],oo=Ae[2*_o+1];m(So,oo,Be,ze)<=Yr&&Fr.push(Ge[_o]);var Wi=(mr+1)%2;(mr===0?Be-st<=So:ze-st<=oo)&&(ir.push(qr),ir.push(_o-1),ir.push(Wi)),(mr===0?Be+st>=So:ze+st>=oo)&&(ir.push(_o+1),ir.push(Er),ir.push(Wi))}return Fr}function m(Ge,Ae,Be,ze){var st=Ge-Be,Vt=Ae-ze;return st*st+Vt*Vt}var g=function(Ge){return Ge[0]},x=function(Ge){return Ge[1]},b=function(Ae,Be,ze,st,Vt){Be===void 0&&(Be=g),ze===void 0&&(ze=x),st===void 0&&(st=64),Vt===void 0&&(Vt=Float64Array),this.nodeSize=st,this.points=Ae;for(var ir=Ae.length<65536?Uint16Array:Uint32Array,Fr=this.ids=new ir(Ae.length),Yr=this.coords=new Vt(Ae.length*2),mr=0;mr=st;Er--){var qr=+Date.now();Yr=this._cluster(Yr,Er),this.trees[Er]=new b(Yr,He,ft,ir,Float32Array),ze&&console.log("z%d: %d clusters in %dms",Er,Yr.length,+Date.now()-qr)}return ze&&console.timeEnd("total time"),this},I.prototype.getClusters=function(Ae,Be){var ze=((Ae[0]+180)%360+360)%360-180,st=Math.max(-90,Math.min(90,Ae[1])),Vt=Ae[2]===180?180:((Ae[2]+180)%360+360)%360-180,ir=Math.max(-90,Math.min(90,Ae[3]));if(Ae[2]-Ae[0]>=360)ze=-180,Vt=180;else if(ze>Vt){var Fr=this.getClusters([ze,st,180,ir],Be),Yr=this.getClusters([-180,st,Vt,ir],Be);return Fr.concat(Yr)}for(var mr=this.trees[this._limitZoom(Be)],Er=mr.range(te(ze),ne(ir),te(Vt),ne(st)),qr=[],Jr=0,_o=Er;Jr<_o.length;Jr+=1){var So=_o[Jr],oo=mr.points[So];qr.push(oo.numPoints?J(oo):this.points[oo.index])}return qr},I.prototype.getChildren=function(Ae){var Be=this._getOriginId(Ae),ze=this._getOriginZoom(Ae),st="No cluster with the specified id.",Vt=this.trees[ze];if(!Vt)throw new Error(st);var ir=Vt.points[Be];if(!ir)throw new Error(st);for(var Fr=this.options.radius/(this.options.extent*Math.pow(2,ze-1)),Yr=Vt.within(ir.x,ir.y,Fr),mr=[],Er=0,qr=Yr;ErBe&&(oo+=$e.numPoints||1)}if(oo>So&&oo>=Yr){for(var Yt=qr.x*So,Sr=qr.y*So,Ft=Fr&&So>1?this._map(qr,!0):null,xr=(Er<<5)+(Be+1)+this.points.length,io=0,go=_o;io1)for(var $i=0,Qo=_o;$i>5},I.prototype._getOriginZoom=function(Ae){return(Ae-this.points.length)%32},I.prototype._map=function(Ae,Be){if(Ae.numPoints)return Be?Ee({},Ae.properties):Ae.properties;var ze=this.points[Ae.index].properties,st=this.options.map(ze);return Be&&st===ze?Ee({},st):st};function U(Ge,Ae,Be,ze,st){return{x:R(Ge),y:R(Ae),zoom:1/0,id:Be,parentId:-1,numPoints:ze,properties:st}}function V(Ge,Ae){var Be=Ge.geometry.coordinates,ze=Be[0],st=Be[1];return{x:R(te(ze)),y:R(ne(st)),zoom:1/0,index:Ae,parentId:-1}}function J(Ge){return{type:"Feature",id:Ge.id,properties:Q(Ge),geometry:{type:"Point",coordinates:[pe(Ge.x),Oe(Ge.y)]}}}function Q(Ge){var Ae=Ge.numPoints,Be=Ae>=1e4?Math.round(Ae/1e3)+"k":Ae>=1e3?Math.round(Ae/100)/10+"k":Ae;return Ee(Ee({},Ge.properties),{cluster:!0,cluster_id:Ge.id,point_count:Ae,point_count_abbreviated:Be})}function te(Ge){return Ge/360+.5}function ne(Ge){var Ae=Math.sin(Ge*Math.PI/180),Be=.5-.25*Math.log((1+Ae)/(1-Ae))/Math.PI;return Be<0?0:Be>1?1:Be}function pe(Ge){return(Ge-.5)*360}function Oe(Ge){var Ae=(180-Ge*360)*Math.PI/180;return 360*Math.atan(Math.exp(Ae))/Math.PI-90}function Ee(Ge,Ae){for(var Be in Ae)Ge[Be]=Ae[Be];return Ge}function He(Ge){return Ge.x}function ft(Ge){return Ge.y}return I})})(i9);var gS=i9.exports;const vS=_p(gS);var ES=Object.defineProperty,P5=Object.getOwnPropertySymbols,xS=Object.prototype.hasOwnProperty,PS=Object.prototype.propertyIsEnumerable,b5=(e,t,r)=>t in e?ES(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,n9=(e,t)=>{for(var r in t||(t={}))xS.call(t,r)&&b5(e,r,t[r]);if(P5)for(var r of P5(t))PS.call(t,r)&&b5(e,r,t[r]);return e};function a9(e,t){const{radius:r=40,maxZoom:i=18,minZoom:s=0,zoom:u=2}=t;if(e.pointIndex){const m=e.pointIndex.getClusters(e.extent,Math.floor(u));return e.dataArray=bS(m),e}const n=new vS({radius:r,minZoom:s,maxZoom:i}),y={features:[]};return y.features=e.dataArray.map(m=>({type:"Feature",geometry:{type:"Point",coordinates:m.coordinates},properties:n9({},m)})),n.load(y.features),n}function bS(e){return e.map((t,r)=>n9({coordinates:t.geometry.coordinates,_id:r+1},t.properties))}function AS(e){if(e.length===0)throw new Error("max requires at least one data point");let t=e[0];for(let r=1;rt&&(t=e[r]);return t}function FS(e){if(e.length===0)throw new Error("min requires at least one data point");let t=e[0];for(let r=1;r=Math.abs(e[s])?r+=t-i+e[s]:r+=e[s]-i+t,t=i;return t+r*1}function TS(e){if(e.length===0)throw new Error("mean requires at least one data point");return s9(e)/e.length}var SS={min:FS,max:AS,mean:TS,sum:s9},wS=Object.defineProperty,A5=Object.getOwnPropertySymbols,RS=Object.prototype.hasOwnProperty,CS=Object.prototype.propertyIsEnumerable,F5=(e,t,r)=>t in e?wS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Id=(e,t)=>{for(var r in t||(t={}))RS.call(t,r)&&F5(e,r,t[r]);if(A5)for(var r of A5(t))CS.call(t,r)&&F5(e,r,t[r]);return e},T5=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),{cloneDeep:IS,isFunction:S5,isString:MS,mergeWith:NS}=Qn;function DS(e,t){if(Array.isArray(t))return t}var OS=class extends du.EventEmitter{constructor(e,t){super(),this.type="source",this.isTile=!1,this.inited=!1,this.hooks={init:new Wp},this.parser={type:"geojson"},this.transforms=[],this.cluster=!1,this.clusterOptions={enable:!1,radius:40,maxZoom:20,zoom:-99,method:"count"},this.invalidExtent=!1,this.dataArrayChanged=!1,this.cfg={autoRender:!0},this.originData=e,this.initCfg(t),this.init().then(()=>{this.inited=!0,this.emit("update",{type:"inited"})})}getSourceCfg(){return this.cfg}getClusters(e){return this.clusterIndex.getClusters(this.caculClusterExtent(2),e)}getClustersLeaves(e){return this.clusterIndex.getLeaves(e,1/0)}getParserType(){return this.parser.type}updateClusterData(e){const{method:t="sum",field:r}=this.clusterOptions;let i=this.clusterIndex.getClusters(this.caculClusterExtent(2),Math.floor(e));this.clusterOptions.zoom=e,i.forEach(s=>{s.id||(s.properties.point_count=1)}),(r||S5(t))&&(i=i.map(s=>{const u=s.id;if(u){const y=this.clusterIndex.getLeaves(u,1/0).map(g=>g.properties);let m;if(MS(t)&&r){const g=gx(y,r);m=SS[t](g)}S5(t)&&(m=t(y)),s.properties.stat=m}else s.properties.point_count=1;return s})),this.data=N3("geojson")({type:"FeatureCollection",features:i}),this.executeTrans()}getFeatureById(e){const{type:t="geojson",geometry:r}=this.parser;if(t==="geojson"&&!this.cluster){const i=en._id===e);s.properties=u}return s}else return t==="json"&&r?this.data.dataArray.find(i=>i._id===e):er._id===e?Id(Id({},r),t):r),this.dataArrayChanged=!0,this.emit("update",{type:"update"})}getFeatureId(e,t){const r=this.data.dataArray.find(i=>i[e]===t);return r==null?void 0:r._id}setData(e,t){this.originData=e,this.dataArrayChanged=!1,this.initCfg(t),this.init().then(()=>{this.emit("update",{type:"update"})})}reloadAllTile(){var e;(e=this.tileset)==null||e.reloadAll()}reloadTilebyId(e,t,r){var i;(i=this.tileset)==null||i.reloadTileById(e,t,r)}reloadTileByLnglat(e,t,r){var i;(i=this.tileset)==null||i.reloadTileByLnglat(e,t,r)}getTileExtent(e,t){var r;return(r=this.tileset)==null?void 0:r.getTileExtent(e,t)}getTileByZXY(e,t,r){var i;return(i=this.tileset)==null?void 0:i.getTileByZXY(e,t,r)}reloadTileByExtent(e,t){var r;(r=this.tileset)==null||r.reloadTileByExtent(e,t)}destroy(){var e;this.removeAllListeners(),this.originData=null,this.clusterIndex=null,this.data=null,(e=this.tileset)==null||e.destroy()}processData(){return T5(this,null,function*(){return new Promise((e,t)=>{try{this.excuteParser(),this.initCluster(),this.executeTrans(),e({})}catch(r){t(r)}})})}initCfg(e){this.cfg=NS(this.cfg,e,DS);const t=this.cfg;t&&(t.parser&&(this.parser=t.parser),t.transforms&&(this.transforms=t.transforms),this.cluster=t.cluster||!1,t.clusterOptions&&(this.cluster=!0,this.clusterOptions=Id(Id({},this.clusterOptions),t.clusterOptions)))}init(){return T5(this,null,function*(){this.inited=!1,yield this.processData(),this.inited=!0})}excuteParser(){const e=this.parser,t=e.type||"geojson",r=N3(t);this.data=r(this.originData,e),this.tileset=this.initTileset(),!e.cancelExtent&&(this.extent=NE(this.data.dataArray),this.setCenter(this.extent),this.invalidExtent=this.extent[0]===this.extent[2]||this.extent[1]===this.extent[3])}setCenter(e){this.center=[(e[0]+e[2])/2,(e[1]+e[3])/2],(isNaN(this.center[0])||isNaN(this.center[1]))&&(this.center=[108.92361111111111,34.54083333333333])}initTileset(){const{tilesetOptions:e}=this.data;return e?(this.isTile=!0,this.tileset?(this.tileset.updateOptions(e),this.tileset):new hx(Id({},e))):void 0}executeTrans(){this.transforms.forEach(t=>{const{type:r}=t,i=Vv(r)(this.data,t);Object.assign(this.data,i)})}initCluster(){if(!this.cluster)return;const e=this.clusterOptions||{};this.clusterIndex=a9(this.data,e)}caculClusterExtent(e){let t=[[-1/0,-1/0],[1/0,1/0]];return this.invalidExtent||(t=m6(pf(this.extent),e)),t[0].concat(t[1])}};function LS(e,t){const{callback:r}=t;return r&&(e.dataArray=e.dataArray.filter(r)),e}var T6=6378e3;function BS(e,t){const r=e.dataArray,{size:i=10}=t,s=i/(2*Math.PI*T6)*(256<<20)/2,{gridHash:u,gridOffset:n}=US(r,i),y=HS(u,n,t);return{yOffset:s,xOffset:s,radius:s,type:"grid",dataArray:y}}function US(e,t){let r=1/0,i=-1/0,s;for(const m of e)s=m.coordinates[1],Number.isFinite(s)&&(r=si?s:i);const u=(r+i)/2,n=kS(t,u);if(n.xOffset<=0||n.yOffset<=0)return{gridHash:{},gridOffset:n};const y={};for(const m of e){const g=m.coordinates[1],x=m.coordinates[0];if(Number.isFinite(g)&&Number.isFinite(x)){const b=Math.floor((g+90)/n.yOffset),F=Math.floor((x+180)/n.xOffset),R=`${b}-${F}`;y[R]=y[R]||{count:0,points:[]},y[R].count+=1,y[R].points.push(m)}}return{gridHash:y,gridOffset:n}}function kS(e,t){const r=zS(e),i=VS(t,e);return{yOffset:r,xOffset:i}}function zS(e){return e/T6*(180/Math.PI)}function VS(e,t){return t/T6*(180/Math.PI)/Math.cos(e*Math.PI/180)}function HS(e,t,r){return Object.keys(e).reduce((i,s,u)=>{const n=s.split("-"),y=parseInt(n[0],10),m=parseInt(n[1],10),g={};if(r.field&&r.method){const x=l8(e[s].points,r.field);g[r.method]=p8[r.method](x)}return Object.assign(g,{_id:u,coordinates:Gu([-180+t.xOffset*(m+.5),-90+t.yOffset*(y+.5)]),rawData:e[s].points,count:e[s].count}),i.push(g),i},[])}var v0=Math.PI/3,GS=[0,v0,2*v0,3*v0,4*v0,5*v0];function jS(e){return e[0]}function WS(e){return e[1]}function XS(){var e=0,t=0,r=1,i=1,s=jS,u=WS,n,y,m;function g(b){var F={},R=[],I,U=b.length;for(I=0;I1){var Oe=J-ne,Ee=ne+(Jft*ft+Ge*Ge&&(ne=Ee+(te&1?1:-1)/2,te=He)}var Ae=ne+"-"+te,Be=F[Ae];Be?Be.push(V):(R.push(Be=F[Ae]=[V]),Be.x=(ne+(te&1)/2)*y,Be.y=te*m)}return R}function x(b){var F=0,R=0;return GS.map(function(I){var U=Math.sin(I)*b,V=-Math.cos(I)*b,J=U-F,Q=V-R;return F=U,R=V,[J,Q]})}return g.hexagon=function(b){return"m"+x(b==null?n:+b).join("l")+"z"},g.centers=function(){for(var b=[],F=Math.round(t/m),R=Math.round(e/y),I=F*m;It in e?ZS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,QS=(e,t)=>{for(var r in t||(t={}))qS.call(t,r)&&R5(e,r,t[r]);if(w5)for(var r of w5(t))KS.call(t,r)&&R5(e,r,t[r]);return e},JS=(e,t)=>YS(e,$S(t)),ew=6378e3;function tw(e,t){const r=e.dataArray,{size:i=10,method:s="sum"}=t,u=i/(2*Math.PI*ew)*(256<<20)/2,n=r.map(x=>{const[b,F]=Gu(x.coordinates);return JS(QS({},x),{coordinates:[b,F]})});return{dataArray:XS().radius(u).x(x=>x.coordinates[0]).y(x=>x.coordinates[1])(n).map((x,b)=>{if(t.field&&s){const F=l8(x,t.field);x[s]=p8[s](F)}return{[t.method]:x[s],count:x.length,rawData:x,coordinates:[x.x,x.y],_id:b}}),radius:u,xOffset:u,yOffset:u,type:"hexagon"}}var rw=Object.defineProperty,C5=Object.getOwnPropertySymbols,ow=Object.prototype.hasOwnProperty,iw=Object.prototype.propertyIsEnumerable,I5=(e,t,r)=>t in e?rw(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,M5=(e,t)=>{for(var r in t||(t={}))ow.call(t,r)&&I5(e,r,t[r]);if(C5)for(var r of C5(t))iw.call(t,r)&&I5(e,r,t[r]);return e};function nw(e,t){const{sourceField:r,targetField:i,data:s}=t,u={};return s.forEach(n=>{u[n[r]]=n}),e.dataArray=e.dataArray.map(n=>{const y=n[i];return M5(M5({},n),u[y])}),e}function aw(e,t){const{callback:r}=t;return r&&(e.dataArray=e.dataArray.map(r)),e}cu("rasterTile",zT);cu("mvt",gb);cu("geojsonvt",uP);cu("testTile",_S);cu("geojson",Ox);cu("jsonTile",PP);cu("image",P8);cu("csv",Ax);cu("json",g8);cu("raster",Mb);cu("rasterRgb",sS);cu("rgb",eS);cu("ndi",ZT);Z0("cluster",a9);Z0("filter",LS);Z0("join",nw);Z0("map",aw);Z0("grid",BS);Z0("hexagon",tw);var sw=OS;window._iconfont_svg_string_3580659='',function(e){try{let g=function(){y||(y=!0,u())},x=function(){try{n.documentElement.doScroll("left")}catch{return void setTimeout(x,50)}g()};var r=(r=document.getElementsByTagName("script"))[r.length-1],t=r.getAttribute("data-injectcss"),r=r.getAttribute("data-disable-injectsvg");if(!r){var i,s,u,n,y,m=function(b,F){F.parentNode.insertBefore(b,F)};if(t&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(b){console&&console.log(b)}}i=function(){var b,F=document.createElement("div");F.innerHTML=e._iconfont_svg_string_3580659,(F=F.getElementsByTagName("svg")[0])&&(F.setAttribute("aria-hidden","true"),F.style.position="absolute",F.style.width=0,F.style.height=0,F.style.overflow="hidden",F=F,(b=document.body).firstChild?m(F,b.firstChild):b.appendChild(F))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(i,0):(s=function(){document.removeEventListener("DOMContentLoaded",s,!1),i()},document.addEventListener("DOMContentLoaded",s,!1)):document.attachEvent&&(u=i,n=e.document,y=!1,x(),n.onreadystatechange=function(){n.readyState=="complete"&&(n.onreadystatechange=null,g())})}}catch{}}(window);class Py extends _6{constructor(t){super(),H(this,"controlOption",void 0),H(this,"container",void 0),H(this,"isShow",void 0),H(this,"sceneContainer",void 0),H(this,"scene",void 0),H(this,"mapsService",void 0),H(this,"renderService",void 0),H(this,"layerService",void 0),H(this,"controlService",void 0),H(this,"configService",void 0),Py.controlCount++,this.controlOption=_t(_t({},this.getDefault(t)),t||{})}getOptions(){return this.controlOption}setOptions(t){const r=this.getDefault(t);Object.entries(t).forEach(([i,s])=>{s===void 0&&(t[i]=r[i])}),"position"in t&&this.setPosition(t.position),"className"in t&&this.setClassName(t.className),"style"in t&&this.setStyle(t.style),this.controlOption=_t(_t({},this.controlOption),t)}addTo(t){this.mapsService=t.mapService,this.renderService=t.rendererService,this.layerService=t.layerService,this.controlService=t.controlService,this.configService=t.globalConfigService,this.scene=t.sceneService,this.sceneContainer=t,this.isShow=!0,this.container=this.onAdd(),ay(this.container,"l7-control");const{className:r,style:i}=this.controlOption;return r&&this.setClassName(r),i&&this.setStyle(i),this.insertContainer(),this.emit("add",this),this}remove(){if(!this.mapsService)return this;uf(this.container),this.onRemove(),this.emit("remove",this)}onAdd(){return lu("div")}onRemove(){}show(){const t=this.container;c2(t,"l7-control--hide"),this.isShow=!0,this.emit("show",this)}hide(){const t=this.container;ay(t,"l7-control--hide"),this.isShow=!1,this.emit("hide",this)}getDefault(t){return{position:cf.TOPRIGHT,name:`${Py.controlCount}`}}getContainer(){return this.container}getIsShow(){return this.isShow}_refocusOnMap(t){if(this.mapsService&&t&&t.screenX>0&&t.screenY>0){const r=this.mapsService.getContainer();r!==null&&r.focus()}}setPosition(t=cf.TOPLEFT){const r=this.controlService;return r&&r.removeControl(this),this.controlOption.position=t,r&&r.addControl(this,this.sceneContainer),this}setClassName(t){const r=this.container,{className:i}=this.controlOption;i&&c2(r,i),t&&ay(r,t)}setStyle(t){const r=this.container;t?r.setAttribute("style",t):r.removeAttribute("style")}insertContainer(){const t=this.controlOption.position,r=this.container;if(t instanceof Element)t.appendChild(r);else{const i=this.controlService.controlCorners[t];["bottomleft","bottomright","righttop","rightbottom"].includes(t)?i.insertBefore(r,i.firstChild):i.appendChild(r)}}checkUpdateOption(t,r){return r.some(i=>i in t)}}H(Py,"controlCount",0);class gf extends du.EventEmitter{get buttonRect(){return this.button.getBoundingClientRect()}constructor(t,r){super(),H(this,"popperDOM",void 0),H(this,"contentDOM",void 0),H(this,"button",void 0),H(this,"option",void 0),H(this,"isShow",!1),H(this,"content",void 0),H(this,"timeout",null),H(this,"show",()=>this.isShow||!this.contentDOM.innerHTML?this:(this.resetPopperPosition(),c2(this.popperDOM,"l7-popper-hide"),this.isShow=!0,this.option.unique&&gf.conflictPopperList.forEach(i=>{i!==this&&i.isShow&&i.hide()}),this.emit("show"),window.addEventListener("pointerdown",this.onPopperUnClick),this)),H(this,"hide",()=>this.isShow?(ay(this.popperDOM,"l7-popper-hide"),this.isShow=!1,this.emit("hide"),window.removeEventListener("pointerdown",this.onPopperUnClick),this):this),H(this,"setHideTimeout",()=>{this.timeout||(this.timeout=window.setTimeout(()=>{this.isShow&&(this.hide(),this.timeout=null)},300))}),H(this,"clearHideTimeout",()=>{this.timeout&&(window.clearTimeout(this.timeout),this.timeout=null)}),H(this,"onBtnClick",()=>{this.isShow?this.hide():this.show()}),H(this,"onPopperUnClick",i=>{CE(i.target,[".l7-button-control",".l7-popper-content"])||this.hide()}),H(this,"onBtnMouseLeave",()=>{this.setHideTimeout()}),H(this,"onBtnMouseMove",()=>{this.clearHideTimeout(),!this.isShow&&this.show()}),this.button=t,this.option=r,this.init(),r.unique&&gf.conflictPopperList.push(this)}getPopperDOM(){return this.popperDOM}getIsShow(){return this.isShow}getContent(){return this.content}setContent(t){typeof t=="string"?this.contentDOM.innerHTML=t:t instanceof HTMLElement&&(n8(this.contentDOM),this.contentDOM.appendChild(t)),this.content=t}init(){const{trigger:t}=this.option;this.popperDOM=this.createPopper(),t==="click"?this.button.addEventListener("click",this.onBtnClick):(this.button.addEventListener("mousemove",this.onBtnMouseMove),this.button.addEventListener("mouseleave",this.onBtnMouseLeave),this.popperDOM.addEventListener("mousemove",this.onBtnMouseMove),this.popperDOM.addEventListener("mouseleave",this.onBtnMouseLeave))}destroy(){this.button.removeEventListener("click",this.onBtnClick),this.button.removeEventListener("mousemove",this.onBtnMouseMove),this.button.removeEventListener("mousemove",this.onBtnMouseLeave),this.popperDOM.removeEventListener("mousemove",this.onBtnMouseMove),this.popperDOM.removeEventListener("mouseleave",this.onBtnMouseLeave),uf(this.popperDOM)}resetPopperPosition(){const t={},{container:r,offset:i=[0,0],placement:s}=this.option,[u,n]=i,y=this.button.getBoundingClientRect(),m=r.getBoundingClientRect(),{left:g,right:x,top:b,bottom:F}=wE(y,m);let R=!1,I=!1;/^(left|right)/.test(s)?(s.includes("left")?t.right=`${y.width+x}px`:s.includes("right")&&(t.left=`${y.width+g}px`),s.includes("start")?t.top=`${b}px`:s.includes("end")?t.bottom=`${F}px`:(t.top=`${b+y.height/2}px`,I=!0,t.transform=`translate(${u}px, calc(${n}px - 50%))`)):/^(top|bottom)/.test(s)&&(s.includes("top")?t.bottom=`${y.height+F}px`:s.includes("bottom")&&(t.top=`${y.height+b}px`),s.includes("start")?t.left=`${g}px`:s.includes("end")?t.right=`${x}px`:(t.left=`${g+y.width/2}px`,R=!0,t.transform=`translate(calc(${u}px - 50%), ${n}px)`)),t.transform=`translate(calc(${u}px - ${R?"50%":"0%"}), calc(${n}px - ${I?"50%":"0%"})`;const U=s.split("-");U.length&&ay(this.popperDOM,U.map(V=>`l7-popper-${V}`).join(" ")),TE(this.popperDOM,SE(t))}createPopper(){const{container:t,className:r="",content:i}=this.option,s=lu("div",`l7-popper l7-popper-hide ${r}`),u=lu("div","l7-popper-content"),n=lu("div","l7-popper-arrow");return s.appendChild(u),s.appendChild(n),t.appendChild(s),this.popperDOM=s,this.contentDOM=u,i&&this.setContent(i),s}}H(gf,"conflictPopperList",[]);const N5=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],Cl=(()=>{if(typeof document>"u")return!1;const e=N5[0],t={};for(const r of N5)if((r==null?void 0:r[1])in document){for(const[s,u]of r.entries())t[e[s]]=u;return t}return!1})(),D5={change:Cl.fullscreenchange,error:Cl.fullscreenerror};let Vu={request(e=document.documentElement,t){return new Promise((r,i)=>{const s=()=>{Vu.off("change",s),r()};Vu.on("change",s);const u=e[Cl.requestFullscreen](t);u instanceof Promise&&u.then(s).catch(i)})},exit(){return new Promise((e,t)=>{if(!Vu.isFullscreen){e();return}const r=()=>{Vu.off("change",r),e()};Vu.on("change",r);const i=document[Cl.exitFullscreen]();i instanceof Promise&&i.then(r).catch(t)})},toggle(e,t){return Vu.isFullscreen?Vu.exit():Vu.request(e,t)},onchange(e){Vu.on("change",e)},onerror(e){Vu.on("error",e)},on(e,t){const r=D5[e];r&&document.addEventListener(r,t,!1)},off(e,t){const r=D5[e];r&&document.removeEventListener(r,t,!1)},raw:Cl};Object.defineProperties(Vu,{isFullscreen:{get:()=>!!document[Cl.fullscreenElement]},element:{enumerable:!0,get:()=>{var e;return(e=document[Cl.fullscreenElement])!==null&&e!==void 0?e:void 0}},isEnabled:{enumerable:!0,get:()=>!!document[Cl.fullscreenEnabled]}});Cl||(Vu={isEnabled:!1});class uw extends Py{getDefault(){return{position:cf.BOTTOMLEFT,name:"logo",href:"https://l7.antv.antgroup.com/",img:"https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*GRb1TKp4HcMAAAAAAAAAAAAAARQnAQ"}}onAdd(){const t=lu("div","l7-control-logo");return this.setLogoContent(t),t}onRemove(){return null}setOptions(t){super.setOptions(t),this.checkUpdateOption(t,["img","href"])&&(n8(this.container),this.setLogoContent(this.container))}setLogoContent(t){const{href:r,img:i}=this.controlOption,s=lu("img");if(s.setAttribute("src",i),s.setAttribute("aria-label","AntV logo"),RE(s),r){const u=lu("a","l7-control-logo-link");u.target="_blank",u.href=r,u.rel="noopener nofollow",u.setAttribute("rel","noopener nofollow"),u.appendChild(s),t.appendChild(u)}else t.appendChild(s)}}class pw{constructor(){H(this,"mapService",void 0),H(this,"fontService",void 0)}apply(t,{styleAttributeService:r,mapService:i,fontService:s}){var u=this;this.mapService=i,this.fontService=s,t.hooks.init.tapPromise("DataMappingPlugin",mt(function*(){t.log(Ea.MappingStart,Ga.INIT),u.generateMaping(t,{styleAttributeService:r}),t.log(Ea.MappingEnd,Ga.INIT)})),t.hooks.beforeRenderData.tapPromise("DataMappingPlugin",function(){var n=mt(function*(y){if(!y)return y;t.dataState.dataMappingNeedUpdate=!1,t.log(Ea.MappingStart,Ga.UPDATE);const m=u.generateMaping(t,{styleAttributeService:r});return t.log(Ea.MappingEnd,Ga.UPDATE),m});return function(y){return n.apply(this,arguments)}}()),t.hooks.beforeRender.tap("DataMappingPlugin",()=>{const n=t.getSource();if(t.layerModelNeedUpdate||!n||!n.inited)return;const y=r.getLayerStyleAttributes()||[],m=r.getLayerStyleAttribute("filter"),{dataArray:g}=n.data;if(Array.isArray(g)&&g.length===0)return;const x=y.filter(F=>F.needRemapping);let b=g;if(m!=null&&m.needRemapping&&m!==null&&m!==void 0&&m.scale&&(b=g.filter(F=>this.applyAttributeMapping(m,F)[0])),x.length){const F=this.mapping(t,x,b,t.getEncodedData());t.setEncodedData(F)}})}generateMaping(t,{styleAttributeService:r}){const i=r.getLayerStyleAttributes()||[],s=r.getLayerStyleAttribute("filter"),{dataArray:u}=t.getSource().data;let n=u;s!=null&&s.scale&&(n=u.filter(m=>this.applyAttributeMapping(s,m)[0])),n=t.processData(n);const y=this.mapping(t,i,n,void 0);return t.setEncodedData(y),t.emit("dataUpdate",null),!0}mapping(t,r,i,s){const u=r.filter(y=>y.scale!==void 0).filter(y=>y.name!=="filter"),n=i.map((y,m)=>{const g=s?s[m]:{},x=_t({id:y._id,coordinates:y.coordinates},g);return u.forEach(b=>{let F=this.applyAttributeMapping(b,y);(b.name==="color"||b.name==="stroke")&&(F=F.map(R=>Mi(R))),x[b.name]=Array.isArray(F)&&F.length===1?F[0]:F,b.name==="shape"&&(x.shape=this.fontService.getIconFontKey(x[b.name]))}),x});return r.forEach(y=>{y.needRemapping=!1}),this.adjustData2SimpleCoordinates(n),n}adjustData2SimpleCoordinates(t){t.length>0&&this.mapService.version==="SIMPLE"&&t.map(r=>{r.simpleCoordinate||(r.coordinates=this.unProjectCoordinates(r.coordinates),r.simpleCoordinate=!0)})}unProjectCoordinates(t){if(typeof t[0]=="number")return this.mapService.simpleMapCoord.unproject(t);if(t[0]&&t[0][0]instanceof Array){const r=[];return t.map(i=>{const s=[];i.map(u=>{s.push(this.mapService.simpleMapCoord.unproject(u))}),r.push(s)}),r}else{const r=[];return t.map(i=>{r.push(this.mapService.simpleMapCoord.unproject(i))}),r}}applyAttributeMapping(t,r){var i;if(!t.scale)return[];const s=(t==null||(i=t.scale)===null||i===void 0?void 0:i.scalers)||[],u=[];return s.forEach(({field:y})=>{var m;(r.hasOwnProperty(y)||((m=t.scale)===null||m===void 0?void 0:m.type)==="variable")&&u.push(r[y])}),t.mapping?t.mapping(u):[]}getArrowPoints(t,r){const i=[r[0]-t[0],r[1]-t[1]],s=BE(i);return[t[0]+s[0]*1e-4,t[1]+s[1]*1e-4]}}class lw{constructor(){H(this,"mapService",void 0)}apply(t){var r=this;this.mapService=t.getContainer().mapService,t.hooks.init.tapPromise("DataSourcePlugin",mt(function*(){t.log(Ea.SourceInitStart,Ga.INIT);let i=t.getSource();if(!i){const{data:s,options:u}=t.sourceOption||t.defaultSourceConfig;i=new sw(s,u),t.setSource(i)}i.inited?(r.updateClusterData(t),t.log(Ea.SourceInitEnd,Ga.INIT)):yield new Promise(s=>{i.on("update",u=>{u.type==="inited"&&(r.updateClusterData(t),t.log(Ea.SourceInitEnd,Ga.INIT)),s(null)})})})),t.hooks.beforeRenderData.tapPromise("DataSourcePlugin",mt(function*(){const i=r.updateClusterData(t),s=t.dataState.dataSourceNeedUpdate;return t.dataState.dataSourceNeedUpdate=!1,i||s}))}updateClusterData(t){if(t.isTileLayer||t.tileLayer||!t.getSource())return!1;const r=t.getSource(),i=r.cluster,{zoom:s=0}=r.clusterOptions,u=this.mapService.getZoom()-1,n=t.dataState.dataSourceNeedUpdate;return i&&n&&r.updateClusterData(Math.floor(u)),i&&Math.abs(t.clusterZoom-u)>=1?(s!==Math.floor(u)&&r.updateClusterData(Math.floor(u)),t.clusterZoom=u,!0):!1}}function O5(e,t){let r,i;for(const s of e)s!=null&&(r===void 0?s>=s&&(r=i=s):(r>s&&(r=s),i=1?(r=1,t-1):Math.floor(r*t),s=e[i],u=e[i+1],n=i>0?e[i-1]:2*s-u,y=ir&&(u=t.slice(r,u),y[n]?y[n]+=u:y[++n]=u),(i=i[0])===(s=s[0])?y[n]?y[n]+=s:y[++n]=s:(y[++n]=null,m.push({i:n,x:vf(i,s)})),r=Wm.lastIndex;return rt?1:e>=t?0:NaN}function p9(e){return e.length===1&&(e=Sw(e)),{left:function(t,r,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i>>1;e(t[u],r)<0?i=u+1:s=u}return i},right:function(t,r,i,s){for(i==null&&(i=0),s==null&&(s=t.length);i>>1;e(t[u],r)>0?s=u:i=u+1}return i}}}function Sw(e){return function(t,r){return R6(e(t),r)}}var ww=p9(R6),Xf=ww.right;function Rw(e){return e===null?NaN:+e}var D2=Math.sqrt(50),O2=Math.sqrt(10),L2=Math.sqrt(2);function l9(e,t,r){var i,s=-1,u,n,y;if(t=+t,e=+e,r=+r,e===t&&r>0)return[e];if((i=t0)for(e=Math.ceil(e/y),t=Math.floor(t/y),n=new Array(u=Math.ceil(t-e+1));++s=0?(u>=D2?10:u>=O2?5:u>=L2?2:1)*Math.pow(10,s):-Math.pow(10,-s)/(u>=D2?10:u>=O2?5:u>=L2?2:1)}function B2(e,t,r){var i=Math.abs(t-e)/Math.max(0,r),s=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),u=i/s;return u>=D2?s*=10:u>=O2?s*=5:u>=L2&&(s*=2),t=1)return+r(e[i-1],i-1,e);var i,s=(i-1)*t,u=Math.floor(s),n=+r(e[u],u,e),y=+r(e[u+1],u+1,e);return n+(y-n)*(s-u)}}function wc(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function c9(e,t){switch(arguments.length){case 0:break;case 1:this.interpolator(e);break;default:this.interpolator(t).domain(e);break}return this}var zu="$";function Ef(){}Ef.prototype=xf.prototype={constructor:Ef,has:function(e){return zu+e in this},get:function(e){return this[zu+e]},set:function(e,t){return this[zu+e]=t,this},remove:function(e){var t=zu+e;return t in this&&delete this[t]},clear:function(){for(var e in this)e[0]===zu&&delete this[e]},keys:function(){var e=[];for(var t in this)t[0]===zu&&e.push(t.slice(1));return e},values:function(){var e=[];for(var t in this)t[0]===zu&&e.push(this[t]);return e},entries:function(){var e=[];for(var t in this)t[0]===zu&&e.push({key:t.slice(1),value:this[t]});return e},size:function(){var e=0;for(var t in this)t[0]===zu&&++e;return e},empty:function(){for(var e in this)if(e[0]===zu)return!1;return!0},each:function(e){for(var t in this)t[0]===zu&&e(this[t],t.slice(1),this)}};function xf(e,t){var r=new Ef;if(e instanceof Ef)e.each(function(y,m){r.set(m,y)});else if(Array.isArray(e)){var i=-1,s=e.length,u;if(t==null)for(;++ir&&(i=t,t=r,r=i),function(s){return Math.max(t,Math.min(r,s))}}function Nw(e,t,r){var i=e[0],s=e[1],u=t[0],n=t[1];return s2?Dw:Nw,m=g=null,b}function b(F){return isNaN(F=+F)?u:(m||(m=y(e.map(i),t,r)))(i(n(F)))}return b.invert=function(F){return n(s((g||(g=y(t,e.map(i),vf)))(F)))},b.domain=function(F){return arguments.length?(e=y9.call(F,Mw),n===ns||(n=z5(e)),x()):e.slice()},b.range=function(F){return arguments.length?(t=_1.call(F),x()):t.slice()},b.rangeRound=function(F){return t=_1.call(F),r=Tw,x()},b.clamp=function(F){return arguments.length?(n=F?z5(e):ns,b):n!==ns},b.interpolate=function(F){return arguments.length?(r=F,x()):r},b.unknown=function(F){return arguments.length?(u=F,b):u},function(F,R){return i=F,s=R,x()}}function h9(e,t){return C6()(e,t)}function Ow(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function bf(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,i=e.slice(0,r);return[i.length>1?i[0]+i.slice(2):i,+e.slice(r+1)]}function U0(e){return e=bf(Math.abs(e)),e?e[1]:NaN}function Lw(e,t){return function(r,i){for(var s=r.length,u=[],n=0,y=e[0],m=0;s>0&&y>0&&(m+y+1>i&&(y=Math.max(1,i-m)),u.push(r.substring(s-=y,s+y)),!((m+=y+1)>i));)y=e[n=(n+1)%e.length];return u.reverse().join(t)}}function Bw(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var Uw=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Af(e){if(!(t=Uw.exec(e)))throw new Error("invalid format: "+e);var t;return new I6({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Af.prototype=I6.prototype;function I6(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}I6.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function kw(e){e:for(var t=e.length,r=1,i=-1,s;r0&&(i=0);break}return i>0?e.slice(0,i)+e.slice(s+1):e}var f9;function zw(e,t){var r=bf(e,t);if(!r)return e+"";var i=r[0],s=r[1],u=s-(f9=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,n=i.length;return u===n?i:u>n?i+new Array(u-n+1).join("0"):u>0?i.slice(0,u)+"."+i.slice(u):"0."+new Array(1-u).join("0")+bf(e,Math.max(0,t+u-1))[0]}function V5(e,t){var r=bf(e,t);if(!r)return e+"";var i=r[0],s=r[1];return s<0?"0."+new Array(-s).join("0")+i:i.length>s+1?i.slice(0,s+1)+"."+i.slice(s+1):i+new Array(s-i.length+2).join("0")}const H5={"%":function(e,t){return(e*100).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:Ow,e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return V5(e*100,t)},r:V5,s:zw,X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function G5(e){return e}var j5=Array.prototype.map,W5=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Vw(e){var t=e.grouping===void 0||e.thousands===void 0?G5:Lw(j5.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",i=e.currency===void 0?"":e.currency[1]+"",s=e.decimal+"",u=e.numerals===void 0?G5:Bw(j5.call(e.numerals,String)),n=e.percent===void 0?"%":e.percent+"",y=e.minus+"",m=e.nan===void 0?"NaN":e.nan+"";function g(b){b=Af(b);var F=b.fill,R=b.align,I=b.sign,U=b.symbol,V=b.zero,J=b.width,Q=b.comma,te=b.precision,ne=b.trim,pe=b.type;pe==="n"?(Q=!0,pe="g"):H5[pe]||(te===void 0&&(te=12),ne=!0,pe="g"),(V||F==="0"&&R==="=")&&(V=!0,F="0",R="=");var Oe=U==="$"?r:U==="#"&&/[boxX]/.test(pe)?"0"+pe.toLowerCase():"",Ee=U==="$"?i:/[%p]/.test(pe)?n:"",He=H5[pe],ft=/[defgprs%]/.test(pe);te=te===void 0?6:/[gprs]/.test(pe)?Math.max(1,Math.min(21,te)):Math.max(0,Math.min(20,te));function Ge(Ae){var Be=Oe,ze=Ee,st,Vt,ir;if(pe==="c")ze=He(Ae)+ze,Ae="";else{Ae=+Ae;var Fr=Ae<0||1/Ae<0;if(Ae=isNaN(Ae)?m:He(Math.abs(Ae),te),ne&&(Ae=kw(Ae)),Fr&&+Ae==0&&I!=="+"&&(Fr=!1),Be=(Fr?I==="("?I:y:I==="-"||I==="("?"":I)+Be,ze=(pe==="s"?W5[8+f9/3]:"")+ze+(Fr&&I==="("?")":""),ft){for(st=-1,Vt=Ae.length;++stir||ir>57){ze=(ir===46?s+Ae.slice(st+1):Ae.slice(st))+ze,Ae=Ae.slice(0,st);break}}}Q&&!V&&(Ae=t(Ae,1/0));var Yr=Be.length+Ae.length+ze.length,mr=Yr>1)+Be+Ae+ze+mr.slice(Yr);break;default:Ae=mr+Be+Ae+ze;break}return u(Ae)}return Ge.toString=function(){return b+""},Ge}function x(b,F){var R=g((b=Af(b),b.type="f",b)),I=Math.max(-8,Math.min(8,Math.floor(U0(F)/3)))*3,U=Math.pow(10,-I),V=W5[8+I/3];return function(J){return R(U*J)+V}}return{format:g,formatPrefix:x}}var wh,M6,m9;Hw({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function Hw(e){return wh=Vw(e),M6=wh.format,m9=wh.formatPrefix,wh}function Gw(e){return Math.max(0,-U0(Math.abs(e)))}function jw(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(U0(t)/3)))*3-U0(Math.abs(e)))}function Ww(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,U0(t)-U0(e))+1}function Xw(e,t,r,i){var s=B2(e,t,r),u;switch(i=Af(i??",f"),i.type){case"s":{var n=Math.max(Math.abs(e),Math.abs(t));return i.precision==null&&!isNaN(u=jw(s,n))&&(i.precision=u),m9(i,n)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(u=Ww(s,Math.max(Math.abs(e),Math.abs(t))))&&(i.precision=u-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(u=Gw(s))&&(i.precision=u-(i.type==="%")*2);break}}return M6(i)}function Oy(e){var t=e.domain;return e.ticks=function(r){var i=t();return l9(i[0],i[i.length-1],r??10)},e.tickFormat=function(r,i){var s=t();return Xw(s[0],s[s.length-1],r??10,i)},e.nice=function(r){r==null&&(r=10);var i=t(),s=0,u=i.length-1,n=i[s],y=i[u],m;return y0?(n=Math.floor(n/m)*m,y=Math.ceil(y/m)*m,m=$h(n,y,r)):m<0&&(n=Math.ceil(n*m)/m,y=Math.floor(y*m)/m,m=$h(n,y,r)),m>0?(i[s]=Math.floor(n/m)*m,i[u]=Math.ceil(y/m)*m,t(i)):m<0&&(i[s]=Math.ceil(n*m)/m,i[u]=Math.floor(y*m)/m,t(i)),e},e}function _9(){var e=h9(ns,ns);return e.copy=function(){return Zf(e,_9())},wc.apply(e,arguments),Oy(e)}function g9(e,t){e=e.slice();var r=0,i=e.length-1,s=e[r],u=e[i],n;return u0){for(;Fx)break;Q.push(V)}}else for(;F=1;--U)if(V=I*U,!(Vx)break;Q.push(V)}}else Q=l9(F,R,Math.min(R-F,J)).map(u);return b?Q.reverse():Q},t.tickFormat=function(y,m){if(m==null&&(m=i===10?".0e":","),typeof m!="function"&&(m=M6(m)),y===1/0)return m;y==null&&(y=10);var g=Math.max(1,i*y/t.ticks().length);return function(x){var b=x/u(Math.round(s(x)));return b*i0?r[y-1]:e[0],y=r?[i[r-1],t]:[i[g-1],i[g]]},n.unknown=function(m){return arguments.length&&(u=m),n},n.thresholds=function(){return i.slice()},n.copy=function(){return P9().domain([e,t]).range(s).unknown(u)},wc.apply(Oy(n),arguments)}function b9(){var e=[.5],t=[0,1],r,i=1;function s(u){return u<=u?t[Xf(e,u,0,i)]:r}return s.domain=function(u){return arguments.length?(e=_1.call(u),i=Math.min(e.length,t.length-1),s):e.slice()},s.range=function(u){return arguments.length?(t=_1.call(u),i=Math.min(e.length,t.length-1),s):t.slice()},s.invertExtent=function(u){var n=t.indexOf(u);return[e[n-1],e[n]]},s.unknown=function(u){return arguments.length?(r=u,s):r},s.copy=function(){return b9().domain(e).range(t).unknown(r)},wc.apply(s,arguments)}var Xm=new Date,Zm=new Date;function gs(e,t,r,i){function s(u){return e(u=arguments.length===0?new Date:new Date(+u)),u}return s.floor=function(u){return e(u=new Date(+u)),u},s.ceil=function(u){return e(u=new Date(u-1)),t(u,1),e(u),u},s.round=function(u){var n=s(u),y=s.ceil(u);return u-n0))return m;do m.push(g=new Date(+u)),t(u,y),e(u);while(g=n)for(;e(n),!u(n);)n.setTime(n-1)},function(n,y){if(n>=n)if(y<0)for(;++y<=0;)for(;t(n,-1),!u(n););else for(;--y>=0;)for(;t(n,1),!u(n););})},r&&(s.count=function(u,n){return Xm.setTime(+u),Zm.setTime(+n),e(Xm),e(Zm),Math.floor(r(Xm,Zm))},s.every=function(u){return u=Math.floor(u),!isFinite(u)||!(u>0)?null:u>1?s.filter(i?function(n){return i(n)%u===0}:function(n){return s.count(0,n)%u===0}):s}),s}var Ff=gs(function(){},function(e,t){e.setTime(+e+t)},function(e,t){return t-e});Ff.every=function(e){return e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?gs(function(t){t.setTime(Math.floor(t/e)*e)},function(t,r){t.setTime(+t+r*e)},function(t,r){return(r-t)/e}):Ff};Ff.range;var Tf=1e3,by=6e4,q5=36e5,A9=864e5,F9=6048e5,T9=gs(function(e){e.setTime(e-e.getMilliseconds())},function(e,t){e.setTime(+e+t*Tf)},function(e,t){return(t-e)/Tf},function(e){return e.getUTCSeconds()});T9.range;var S9=gs(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tf)},function(e,t){e.setTime(+e+t*by)},function(e,t){return(t-e)/by},function(e){return e.getMinutes()});S9.range;var w9=gs(function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Tf-e.getMinutes()*by)},function(e,t){e.setTime(+e+t*q5)},function(e,t){return(t-e)/q5},function(e){return e.getHours()});w9.range;var Yf=gs(function(e){e.setHours(0,0,0,0)},function(e,t){e.setDate(e.getDate()+t)},function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*by)/A9},function(e){return e.getDate()-1});Yf.range;function P1(e){return gs(function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},function(t,r){t.setDate(t.getDate()+r*7)},function(t,r){return(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*by)/F9})}var N6=P1(0),Sf=P1(1),rR=P1(2),oR=P1(3),k0=P1(4),iR=P1(5),nR=P1(6);N6.range;Sf.range;rR.range;oR.range;k0.range;iR.range;nR.range;var R9=gs(function(e){e.setDate(1),e.setHours(0,0,0,0)},function(e,t){e.setMonth(e.getMonth()+t)},function(e,t){return t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12},function(e){return e.getMonth()});R9.range;var Fc=gs(function(e){e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e,t){return t.getFullYear()-e.getFullYear()},function(e){return e.getFullYear()});Fc.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:gs(function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,r){t.setFullYear(t.getFullYear()+r*e)})};Fc.range;var D6=gs(function(e){e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCDate(e.getUTCDate()+t)},function(e,t){return(t-e)/A9},function(e){return e.getUTCDate()-1});D6.range;function b1(e){return gs(function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},function(t,r){t.setUTCDate(t.getUTCDate()+r*7)},function(t,r){return(r-t)/F9})}var C9=b1(0),wf=b1(1),aR=b1(2),sR=b1(3),z0=b1(4),uR=b1(5),pR=b1(6);C9.range;wf.range;aR.range;sR.range;z0.range;uR.range;pR.range;var g1=gs(function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)},function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()},function(e){return e.getUTCFullYear()});g1.every=function(e){return!isFinite(e=Math.floor(e))||!(e>0)?null:gs(function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,r){t.setUTCFullYear(t.getUTCFullYear()+r*e)})};g1.range;function Ym(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function $m(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Md(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function lR(e){var t=e.dateTime,r=e.date,i=e.time,s=e.periods,u=e.days,n=e.shortDays,y=e.months,m=e.shortMonths,g=Nd(s),x=Dd(s),b=Nd(u),F=Dd(u),R=Nd(n),I=Dd(n),U=Nd(y),V=Dd(y),J=Nd(m),Q=Dd(m),te={a:Fr,A:Yr,b:mr,B:Er,c:null,d:r4,e:r4,f:NR,g:GR,G:WR,H:CR,I:IR,j:MR,L:I9,m:DR,M:OR,p:qr,q:Jr,Q:n4,s:a4,S:LR,u:BR,U:UR,V:kR,w:zR,W:VR,x:null,X:null,y:HR,Y:jR,Z:XR,"%":i4},ne={a:_o,A:So,b:oo,B:Wi,c:null,d:o4,e:o4,f:qR,g:aC,G:uC,H:ZR,I:YR,j:$R,L:N9,m:KR,M:QR,p:bo,q:Ni,Q:n4,s:a4,S:JR,u:eC,U:tC,V:rC,w:oC,W:iC,x:null,X:null,y:nC,Y:sC,Z:pC,"%":i4},pe={a:Ge,A:Ae,b:Be,B:ze,c:st,d:e4,e:e4,f:TR,g:J5,G:Q5,H:t4,I:t4,j:PR,L:FR,m:xR,M:bR,p:ft,q:ER,Q:wR,s:RR,S:AR,u:fR,U:mR,V:_R,w:hR,W:gR,x:Vt,X:ir,y:J5,Y:Q5,Z:vR,"%":SR};te.x=Oe(r,te),te.X=Oe(i,te),te.c=Oe(t,te),ne.x=Oe(r,ne),ne.X=Oe(i,ne),ne.c=Oe(t,ne);function Oe($e,Yt){return function(Sr){var Ft=[],xr=-1,io=0,go=$e.length,to,Kr,Ao;for(Sr instanceof Date||(Sr=new Date(+Sr));++xr53)return null;"w"in Ft||(Ft.w=1),"Z"in Ft?(io=$m(Md(Ft.y,0,1)),go=io.getUTCDay(),io=go>4||go===0?wf.ceil(io):wf(io),io=D6.offset(io,(Ft.V-1)*7),Ft.y=io.getUTCFullYear(),Ft.m=io.getUTCMonth(),Ft.d=io.getUTCDate()+(Ft.w+6)%7):(io=Ym(Md(Ft.y,0,1)),go=io.getDay(),io=go>4||go===0?Sf.ceil(io):Sf(io),io=Yf.offset(io,(Ft.V-1)*7),Ft.y=io.getFullYear(),Ft.m=io.getMonth(),Ft.d=io.getDate()+(Ft.w+6)%7)}else("W"in Ft||"U"in Ft)&&("w"in Ft||(Ft.w="u"in Ft?Ft.u%7:"W"in Ft?1:0),go="Z"in Ft?$m(Md(Ft.y,0,1)).getUTCDay():Ym(Md(Ft.y,0,1)).getDay(),Ft.m=0,Ft.d="W"in Ft?(Ft.w+6)%7+Ft.W*7-(go+5)%7:Ft.w+Ft.U*7-(go+6)%7);return"Z"in Ft?(Ft.H+=Ft.Z/100|0,Ft.M+=Ft.Z%100,$m(Ft)):Ym(Ft)}}function He($e,Yt,Sr,Ft){for(var xr=0,io=Yt.length,go=Sr.length,to,Kr;xr=go)return-1;if(to=Yt.charCodeAt(xr++),to===37){if(to=Yt.charAt(xr++),Kr=pe[to in K5?Yt.charAt(xr++):to],!Kr||(Ft=Kr($e,Sr,Ft))<0)return-1}else if(to!=Sr.charCodeAt(Ft++))return-1}return Ft}function ft($e,Yt,Sr){var Ft=g.exec(Yt.slice(Sr));return Ft?($e.p=x[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Ge($e,Yt,Sr){var Ft=R.exec(Yt.slice(Sr));return Ft?($e.w=I[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Ae($e,Yt,Sr){var Ft=b.exec(Yt.slice(Sr));return Ft?($e.w=F[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function Be($e,Yt,Sr){var Ft=J.exec(Yt.slice(Sr));return Ft?($e.m=Q[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function ze($e,Yt,Sr){var Ft=U.exec(Yt.slice(Sr));return Ft?($e.m=V[Ft[0].toLowerCase()],Sr+Ft[0].length):-1}function st($e,Yt,Sr){return He($e,t,Yt,Sr)}function Vt($e,Yt,Sr){return He($e,r,Yt,Sr)}function ir($e,Yt,Sr){return He($e,i,Yt,Sr)}function Fr($e){return n[$e.getDay()]}function Yr($e){return u[$e.getDay()]}function mr($e){return m[$e.getMonth()]}function Er($e){return y[$e.getMonth()]}function qr($e){return s[+($e.getHours()>=12)]}function Jr($e){return 1+~~($e.getMonth()/3)}function _o($e){return n[$e.getUTCDay()]}function So($e){return u[$e.getUTCDay()]}function oo($e){return m[$e.getUTCMonth()]}function Wi($e){return y[$e.getUTCMonth()]}function bo($e){return s[+($e.getUTCHours()>=12)]}function Ni($e){return 1+~~($e.getUTCMonth()/3)}return{format:function($e){var Yt=Oe($e+="",te);return Yt.toString=function(){return $e},Yt},parse:function($e){var Yt=Ee($e+="",!1);return Yt.toString=function(){return $e},Yt},utcFormat:function($e){var Yt=Oe($e+="",ne);return Yt.toString=function(){return $e},Yt},utcParse:function($e){var Yt=Ee($e+="",!0);return Yt.toString=function(){return $e},Yt}}}var K5={"-":"",_:" ",0:"0"},Ia=/^\s*\d+/,cR=/^%/,dR=/[\\^$*+?|[\]().{}]/g;function _i(e,t,r){var i=e<0?"-":"",s=(i?-e:e)+"",u=s.length;return i+(u68?1900:2e3),r+i[0].length):-1}function vR(e,t,r){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),r+i[0].length):-1}function ER(e,t,r){var i=Ia.exec(t.slice(r,r+1));return i?(e.q=i[0]*3-3,r+i[0].length):-1}function xR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.m=i[0]-1,r+i[0].length):-1}function e4(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.d=+i[0],r+i[0].length):-1}function PR(e,t,r){var i=Ia.exec(t.slice(r,r+3));return i?(e.m=0,e.d=+i[0],r+i[0].length):-1}function t4(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.H=+i[0],r+i[0].length):-1}function bR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.M=+i[0],r+i[0].length):-1}function AR(e,t,r){var i=Ia.exec(t.slice(r,r+2));return i?(e.S=+i[0],r+i[0].length):-1}function FR(e,t,r){var i=Ia.exec(t.slice(r,r+3));return i?(e.L=+i[0],r+i[0].length):-1}function TR(e,t,r){var i=Ia.exec(t.slice(r,r+6));return i?(e.L=Math.floor(i[0]/1e3),r+i[0].length):-1}function SR(e,t,r){var i=cR.exec(t.slice(r,r+1));return i?r+i[0].length:-1}function wR(e,t,r){var i=Ia.exec(t.slice(r));return i?(e.Q=+i[0],r+i[0].length):-1}function RR(e,t,r){var i=Ia.exec(t.slice(r));return i?(e.s=+i[0],r+i[0].length):-1}function r4(e,t){return _i(e.getDate(),t,2)}function CR(e,t){return _i(e.getHours(),t,2)}function IR(e,t){return _i(e.getHours()%12||12,t,2)}function MR(e,t){return _i(1+Yf.count(Fc(e),e),t,3)}function I9(e,t){return _i(e.getMilliseconds(),t,3)}function NR(e,t){return I9(e,t)+"000"}function DR(e,t){return _i(e.getMonth()+1,t,2)}function OR(e,t){return _i(e.getMinutes(),t,2)}function LR(e,t){return _i(e.getSeconds(),t,2)}function BR(e){var t=e.getDay();return t===0?7:t}function UR(e,t){return _i(N6.count(Fc(e)-1,e),t,2)}function M9(e){var t=e.getDay();return t>=4||t===0?k0(e):k0.ceil(e)}function kR(e,t){return e=M9(e),_i(k0.count(Fc(e),e)+(Fc(e).getDay()===4),t,2)}function zR(e){return e.getDay()}function VR(e,t){return _i(Sf.count(Fc(e)-1,e),t,2)}function HR(e,t){return _i(e.getFullYear()%100,t,2)}function GR(e,t){return e=M9(e),_i(e.getFullYear()%100,t,2)}function jR(e,t){return _i(e.getFullYear()%1e4,t,4)}function WR(e,t){var r=e.getDay();return e=r>=4||r===0?k0(e):k0.ceil(e),_i(e.getFullYear()%1e4,t,4)}function XR(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+_i(t/60|0,"0",2)+_i(t%60,"0",2)}function o4(e,t){return _i(e.getUTCDate(),t,2)}function ZR(e,t){return _i(e.getUTCHours(),t,2)}function YR(e,t){return _i(e.getUTCHours()%12||12,t,2)}function $R(e,t){return _i(1+D6.count(g1(e),e),t,3)}function N9(e,t){return _i(e.getUTCMilliseconds(),t,3)}function qR(e,t){return N9(e,t)+"000"}function KR(e,t){return _i(e.getUTCMonth()+1,t,2)}function QR(e,t){return _i(e.getUTCMinutes(),t,2)}function JR(e,t){return _i(e.getUTCSeconds(),t,2)}function eC(e){var t=e.getUTCDay();return t===0?7:t}function tC(e,t){return _i(C9.count(g1(e)-1,e),t,2)}function D9(e){var t=e.getUTCDay();return t>=4||t===0?z0(e):z0.ceil(e)}function rC(e,t){return e=D9(e),_i(z0.count(g1(e),e)+(g1(e).getUTCDay()===4),t,2)}function oC(e){return e.getUTCDay()}function iC(e,t){return _i(wf.count(g1(e)-1,e),t,2)}function nC(e,t){return _i(e.getUTCFullYear()%100,t,2)}function aC(e,t){return e=D9(e),_i(e.getUTCFullYear()%100,t,2)}function sC(e,t){return _i(e.getUTCFullYear()%1e4,t,4)}function uC(e,t){var r=e.getUTCDay();return e=r>=4||r===0?z0(e):z0.ceil(e),_i(e.getUTCFullYear()%1e4,t,4)}function pC(){return"+0000"}function i4(){return"%"}function n4(e){return+e}function a4(e){return Math.floor(+e/1e3)}var y0,O9;lC({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lC(e){return y0=lR(e),O9=y0.format,y0.parse,y0.utcFormat,y0.utcParse,y0}var Jd=1e3,ey=Jd*60,ty=ey*60,Ay=ty*24,cC=Ay*7,s4=Ay*30,qm=Ay*365;function dC(e){return new Date(e)}function yC(e){return e instanceof Date?+e:+new Date(+e)}function L9(e,t,r,i,s,u,n,y,m){var g=h9(ns,ns),x=g.invert,b=g.domain,F=m(".%L"),R=m(":%S"),I=m("%I:%M"),U=m("%I %p"),V=m("%a %d"),J=m("%b %d"),Q=m("%B"),te=m("%Y"),ne=[[n,1,Jd],[n,5,5*Jd],[n,15,15*Jd],[n,30,30*Jd],[u,1,ey],[u,5,5*ey],[u,15,15*ey],[u,30,30*ey],[s,1,ty],[s,3,3*ty],[s,6,6*ty],[s,12,12*ty],[i,1,Ay],[i,2,2*Ay],[r,1,cC],[t,1,s4],[t,3,3*s4],[e,1,qm]];function pe(Ee){return(n(Ee)s?(r=s,s):r,i.unknown=s=>s?(t=s,s):t,i.copy=()=>z9().unknown(t),i}const{isNil:Km,isString:_C,uniq:gC}=Qn,vC=/^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))(\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/,EC={[Ei.LINEAR]:_9,[Ei.POWER]:E9,[Ei.LOG]:v9,[Ei.IDENTITY]:z9,[Ei.SEQUENTIAL]:U9,[Ei.TIME]:hC,[Ei.QUANTILE]:x9,[Ei.QUANTIZE]:P9,[Ei.THRESHOLD]:b9,[Ei.CAT]:Pf,[Ei.DIVERGING]:k9};class xC{constructor(){H(this,"scaleOptions",{})}apply(t,{styleAttributeService:r}){var i=this;t.hooks.init.tapPromise("FeatureScalePlugin",mt(function*(){var s;t.log(Ea.ScaleInitStart,Ga.INIT),i.scaleOptions=t.getScaleOptions();const u=r.getLayerStyleAttributes(),n=(s=t.getSource())===null||s===void 0?void 0:s.data.dataArray;Array.isArray(n)&&n.length===0||(i.caculateScalesForAttributes(u||[],n),t.log(Ea.ScaleInitEnd,Ga.INIT))})),t.hooks.beforeRenderData.tapPromise("FeatureScalePlugin",function(){var s=mt(function*(u){if(!u)return u;t.log(Ea.ScaleInitStart,Ga.UPDATE),i.scaleOptions=t.getScaleOptions();const n=r.getLayerStyleAttributes(),y=t.getSource().data.dataArray;return Array.isArray(y)&&y.length===0||(i.caculateScalesForAttributes(n||[],y),t.log(Ea.ScaleInitEnd,Ga.UPDATE),t.layerModelNeedUpdate=!0),!0});return function(u){return s.apply(this,arguments)}}()),t.hooks.beforeRender.tap("FeatureScalePlugin",()=>{if(t.layerModelNeedUpdate)return;this.scaleOptions=t.getScaleOptions();const s=r.getLayerStyleAttributes(),u=t.getSource().data.dataArray;if(!(Array.isArray(u)&&u.length===0)&&s){const n=s.filter(y=>y.needRescale);n.length&&this.caculateScalesForAttributes(n,u)}})}isNumber(t){return!isNaN(parseFloat(t))&&isFinite(t)}caculateScalesForAttributes(t,r){t.forEach(i=>{if(i.scale){const s=i.scale,u=i.scale.field;s.names=this.parseFields(Km(u)?[]:u);const n=[];s.names.forEach(y=>{var m;n.push(this.createScale(y,i.name,(m=i.scale)===null||m===void 0?void 0:m.values,r))}),n.some(y=>y.type===d0.VARIABLE)?(s.type=d0.VARIABLE,n.forEach(y=>{if(!s.callback&&s.values!=="text"){var m;switch((m=y.option)===null||m===void 0?void 0:m.type){case Ei.LOG:case Ei.LINEAR:case Ei.POWER:if(s.values&&s.values.length>2){const x=y.scale.ticks(s.values.length);y.scale.domain(x)}s.values?y.scale.range(s.values):y.scale.range(y.option.domain);break;case Ei.QUANTILE:case Ei.QUANTIZE:case Ei.THRESHOLD:y.scale.range(s.values);break;case Ei.IDENTITY:break;case Ei.CAT:s.values?y.scale.range(s.values):y.scale.range(y.option.domain);break;case Ei.DIVERGING:case Ei.SEQUENTIAL:y.scale.interpolator(_w(s.values));break}}if(s.values==="text"){var g;y.scale.range((g=y.option)===null||g===void 0?void 0:g.domain)}})):(s.type=d0.CONSTANT,s.defaultValues=n.map((y,m)=>y.scale(s.names[m]))),s.scalers=n.map(y=>({field:y.field,func:y.scale,option:y.option})),i.needRescale=!1}})}parseFields(t){return Array.isArray(t)?t:_C(t)?t.split("*"):[t]}createScale(t,r,i,s){var u,n;const y=this.scaleOptions[r]&&((u=this.scaleOptions[r])===null||u===void 0?void 0:u.field)===t?this.scaleOptions[r]:this.scaleOptions[t],m={field:t,scale:void 0,type:d0.VARIABLE,option:y};if(!s||!s.length)return y&&y.type?m.scale=this.createDefaultScale(y):(m.scale=Pf([t]),m.type=d0.CONSTANT),m;const g=(n=s.find(x=>!Km(x[t])))===null||n===void 0?void 0:n[t];if(this.isNumber(t)||Km(g)&&!y)m.scale=Pf([t]),m.type=d0.CONSTANT;else{let x=y&&y.type||this.getDefaultType(g);i==="text"&&(x=Ei.CAT),i===void 0&&(x=Ei.IDENTITY);const b=this.createScaleConfig(x,t,y,s);m.scale=this.createDefaultScale(b),m.option=b}return m}getDefaultType(t){let r=Ei.LINEAR;return typeof t=="string"&&(r=vC.test(t)?Ei.TIME:Ei.CAT),r}createScaleConfig(t,r,i,s){const u=_t(_t({},i),{},{type:t});if(u!=null&&u.domain)return u;let n=[];if(t===Ei.QUANTILE){const y=new Map;s==null||s.forEach(m=>{y.set(m._id,m[r])}),n=Array.from(y.values())}else n=(s==null?void 0:s.map(y=>y[r]))||[];if(t===Ei.CAT||t===Ei.IDENTITY)u.domain=gC(n);else if(t===Ei.QUANTILE)u.domain=n;else if(t===Ei.DIVERGING){const y=O5(n),m=(i==null?void 0:i.neutral)!==void 0?i==null?void 0:i.neutral:(y[0]+y[1])/2;u.domain=[y[0],m,y[1]]}else u.domain=O5(n);return u}createDefaultScale({type:t,domain:r,unknown:i,clamp:s,nice:u}){const n=EC[t]();return r&&n.domain&&n.domain(r),i&&n.unknown(i),s!==void 0&&n.clamp&&n.clamp(s),u!==void 0&&n.nice&&n.nice(u),n}}class PC{apply(t){t.hooks.beforeRender.tap("LayerAnimateStylePlugin",()=>{t.animateStatus&&t.models.forEach(i=>{i.addUniforms(_t({},t.layerModel.getAnimateUniforms()))})})}}let bC=class{apply(t){t.hooks.afterInit.tap("LayerMaskPlugin",()=>{const{maskLayers:r,enableMask:i}=t.getLayerConfig();!t.tileLayer&&r&&r.length>0&&t.updateLayerConfig({mask:i})})}};class AC{build(t){return mt(function*(){t.prepareBuildModel(),yield t.buildModels()})()}initLayerModel(t){var r=this;return mt(function*(){yield r.build(t),t.styleNeedUpdate=!1})()}prepareLayerModel(t){var r=this;return mt(function*(){yield r.build(t),t.styleNeedUpdate=!1})()}apply(t){var r=this;t.hooks.init.tapPromise("LayerModelPlugin",mt(function*(){if(t.getSource().isTile){t.prepareBuildModel();return}t.log(Ea.BuildModelStart,Ga.INIT),yield r.initLayerModel(t),t.log(Ea.BuildModelEnd,Ga.INIT)})),t.hooks.beforeRenderData.tapPromise("LayerModelPlugin",function(){var i=mt(function*(s){return!s||t.getSource().isTile?!1:(t.log(Ea.BuildModelStart,Ga.UPDATE),yield r.prepareLayerModel(t),t.log(Ea.BuildModelEnd,Ga.UPDATE),!0)});return function(s){return i.apply(this,arguments)}}())}}class FC{apply(t){t.hooks.afterInit.tap("LayerStylePlugin",()=>{const{autoFit:r,fitBoundsOptions:i}=t.getLayerConfig();r&&t.fitBounds(i),t.styleNeedUpdate=!1})}}const TC=["type"],u4={directional:{lights:"u_DirectionalLights",num:"u_NumOfDirectionalLights"},spot:{lights:"u_SpotLights",num:"u_NumOfSpotLights"}},SC={type:"directional",direction:[1,10.5,12],ambient:[.2,.2,.2],diffuse:[.6,.6,.6],specular:[.1,.1,.1]},wC={direction:[0,0,0],ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0]},RC={position:[0,0,0],direction:[0,0,0],ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],constant:1,linear:0,quadratic:0,angle:14,exponent:40,blur:5};function CC(e){const t={u_DirectionalLights:new Array(3).fill(_t({},wC)),u_NumOfDirectionalLights:0,u_SpotLights:new Array(3).fill(_t({},RC)),u_NumOfSpotLights:0};return(!e||!e.length)&&(e=[SC]),e.forEach(r=>{let{type:i="directional"}=r,s=$p(r,TC);const u=u4[i].lights,n=u4[i].num,y=t[n];t[u][y]=_t(_t({},t[u][y]),s),t[n]++}),t}class IC{apply(t){t.hooks.beforeRender.tap("LightingPlugin",()=>{const{enableLighting:r}=t.getLayerConfig();r&&t.models.forEach(i=>i.addUniforms(_t({},CC())))})}}function V9(e){return e.map(t=>(typeof t=="string"&&(t=[t,{}]),t))}function H9(e,t,r,i){const s=e.multiPassRenderer;return s.add(i("render")),V9(t).forEach(u=>{const[n,y]=u;s.add(r(n),y)}),s.add(r("copy")),s}class MC{constructor(){H(this,"enabled",void 0)}apply(t,{rendererService:r,postProcessingPassFactory:i,normalPassFactory:s}){t.hooks.init.tapPromise("MultiPassRendererPlugin",()=>{const{enableMultiPassRenderer:u,passes:n=[]}=t.getLayerConfig();this.enabled=!!u&&t.getLayerConfig().enableMultiPassRenderer!==!1,this.enabled&&(t.multiPassRenderer=H9(t,n,i,s),t.multiPassRenderer.setRenderFlag(!0))}),t.hooks.beforeRender.tap("MultiPassRendererPlugin",()=>{if(this.enabled){const{width:u,height:n}=r.getViewportSize();t.multiPassRenderer.resize(u,n)}})}}const Ec={POSITION:0,POSITION_64LOW:1,COLOR:2,PICKING_COLOR:3,STROKE:4,OPACITY:5,OFFSETS:6,ROTATION:7,MAX:8};function NC(e){switch(e){case"rotation":return{name:"Rotation",type:br.Attribute,descriptor:{name:"a_Rotation",shaderLocation:Ec.ROTATION,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{rotation:r=0}=t;return Array.isArray(r)?[r[0]]:[r]}}};case"stroke":return{name:"stroke",type:br.Attribute,descriptor:{name:"a_Stroke",shaderLocation:Ec.STROKE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:t=>{const{stroke:r=[1,1,1,1]}=t;return r}}};case"opacity":return{name:"opacity",type:br.Attribute,descriptor:{name:"a_Opacity",shaderLocation:Ec.OPACITY,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{opacity:r=1}=t;return[r]}}};case"offsets":return{name:"offsets",type:br.Attribute,descriptor:{name:"a_Offsets",shaderLocation:Ec.OFFSETS,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{offsets:r}=t;return r}}};default:return}}const{isNumber:DC}=Qn,h0={ENCODE:1,HIGHLIGHT:2};class OC{constructor(){H(this,"pickingUniformMap",void 0)}pickOption2Array(){const t=[];return this.pickingUniformMap.forEach(r=>{DC(r)?t.push(r):t.push(...r)}),t}updatePickOption(t,r){Object.keys(t).forEach(n=>{this.pickingUniformMap.set(n,t[n])});const i=r.getLayerConfig().pickingBuffer||0,s=Number(r.getShaderPickStat());this.pickingUniformMap.set("u_PickingBuffer",i),this.pickingUniformMap.set("u_shaderPick",s),r.getPickingUniformBuffer().subData({offset:0,data:this.pickOption2Array()})}apply(t,{styleAttributeService:r}){this.pickingUniformMap=new Map([["u_HighlightColor",[1,0,0,1]],["u_SelectColor",[1,0,0,1]],["u_PickingColor",[0,0,0]],["u_PickingStage",0],["u_CurrentSelectedId",[0,0,0]],["u_PickingThreshold",10],["u_PickingBuffer",0],["u_shaderPick",0],["u_activeMix",0]]),t.hooks.init.tapPromise("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();r.registerStyleAttribute({name:"pickingColor",type:br.Attribute,descriptor:{name:"a_PickingColor",shaderLocation:Ec.PICKING_COLOR,buffer:{data:[],type:L.FLOAT},size:3,update:s=>{const{id:u}=s;return i?L0(u):[0,0,0]}}})}),t.hooks.beforePickingEncode.tap("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();i&&t.isVisible()&&(this.updatePickOption({u_PickingStage:h0.ENCODE},t),t.models.forEach(s=>s.addUniforms({u_PickingStage:h0.ENCODE})))}),t.hooks.afterPickingEncode.tap("PixelPickingPlugin",()=>{const{enablePicking:i}=t.getLayerConfig();i&&t.isVisible()&&(this.updatePickOption({u_PickingStage:h0.HIGHLIGHT},t),t.models.forEach(s=>s.addUniforms({u_PickingStage:h0.HIGHLIGHT})))}),t.hooks.beforeHighlight.tap("PixelPickingPlugin",i=>{const{highlightColor:s,activeMix:u=0}=t.getLayerConfig(),n=typeof s=="string"?Mi(s):s||[1,0,0,1];t.updateLayerConfig({pickedFeatureID:c1(new Uint8Array(i))});const y={u_PickingStage:h0.HIGHLIGHT,u_PickingColor:i,u_HighlightColor:n.map(m=>m*255),u_activeMix:u};this.updatePickOption(y,t),t.models.forEach(m=>m.addUniforms(y))}),t.hooks.beforeSelect.tap("PixelPickingPlugin",i=>{const{selectColor:s,selectMix:u=0}=t.getLayerConfig(),n=typeof s=="string"?Mi(s):s||[1,0,0,1];t.updateLayerConfig({pickedFeatureID:c1(new Uint8Array(i))});const y={u_PickingStage:h0.HIGHLIGHT,u_PickingColor:i,u_HighlightColor:n.map(m=>m*255),u_activeMix:u,u_CurrentSelectedId:i,u_SelectColor:n.map(m=>m*255)};this.updatePickOption(y,t),t.models.forEach(m=>m.addUniforms(y))})}}const LC=["mvt","geojsonvt","testTile"];function BC(e){const t=e.getSource();return LC.includes(t.parser.type)}class UC{apply(t,{styleAttributeService:r}){t.hooks.init.tapPromise("RegisterStyleAttributePlugin",()=>{BC(t)||this.registerBuiltinAttributes(r,t)})}registerBuiltinAttributes(t,r){if(r.type==="MaskLayer"){this.registerPositionAttribute(t);return}this.registerPositionAttribute(t),this.registerColorAttribute(t)}registerPositionAttribute(t){t.registerStyleAttribute({name:"position",type:br.Attribute,descriptor:{name:"a_Position",shaderLocation:Ec.POSITION,buffer:{data:[],type:L.FLOAT},size:3,update:(r,i,s)=>s.length===2?[s[0],s[1],0]:[s[0],s[1],s[2]]}})}registerColorAttribute(t){t.registerStyleAttribute({name:"color",type:br.Attribute,descriptor:{name:"a_Color",shaderLocation:Ec.COLOR,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:r=>{const{color:i}=r;return!i||!i.length?[1,1,1,1]:i}}})}}class kC{constructor(){H(this,"cameraService",void 0),H(this,"coordinateSystemService",void 0),H(this,"rendererService",void 0),H(this,"mapService",void 0),H(this,"layerService",void 0)}apply(t,{rendererService:r,mapService:i,layerService:s,coordinateSystemService:u,cameraService:n}){this.rendererService=r,this.mapService=i,this.layerService=s,this.coordinateSystemService=u,this.cameraService=n;let y;this.rendererService.uniformBuffers[0]||(y=this.rendererService.createBuffer({data:new Float32Array(16*4+4*7),isUBO:!0,label:"renderUniformBuffer"}),this.rendererService.uniformBuffers[0]=y),t.hooks.beforeRender.tap("ShaderUniformPlugin",()=>{const m=t.getLayerConfig().tileOrigin;this.coordinateSystemService.refresh(m);const{width:g,height:x}=this.rendererService.getViewportSize(),{data:b,uniforms:F}=this.generateUBO(g,x);this.layerService.alreadyInRendering&&this.rendererService.uniformBuffers[0]&&this.rendererService.uniformBuffers[0].subData({offset:0,data:b}),this.rendererService.queryVerdorInfo()==="WebGL1"&&t.models.forEach(I=>{I.addUniforms(_t(_t({},F),{},{u_PickingBuffer:t.getLayerConfig().pickingBuffer||0,u_shaderPick:Number(t.getShaderPickStat())}))})})}generateUBO(t,r){const i=this.cameraService.getProjectionMatrix(),s=this.cameraService.getViewMatrix(),u=this.cameraService.getViewProjectionMatrix(),n=this.cameraService.getModelMatrix(),y=this.coordinateSystemService.getViewportCenterProjection(),m=this.coordinateSystemService.getPixelsPerDegree(),g=this.cameraService.getZoom(),x=this.coordinateSystemService.getPixelsPerDegree2(),b=this.cameraService.getZoomScale(),F=this.coordinateSystemService.getPixelsPerMeter(),R=this.coordinateSystemService.getCoordinateSystem(),I=this.cameraService.getCameraPosition(),U=window.devicePixelRatio,V=this.coordinateSystemService.getViewportCenter(),J=[t,r],Q=this.cameraService.getFocalDistance();return{data:[...s,...i,...u,...n,...y,...m,g,...x,b,...F,R,...I,U,...V,...J,Q,0,0,0],uniforms:{[a1.ProjectionMatrix]:i,[a1.ViewMatrix]:s,[a1.ViewProjectionMatrix]:u,[a1.Zoom]:g,[a1.ZoomScale]:b,[a1.FocalDistance]:Q,[a1.CameraPosition]:I,[c0.CoordinateSystem]:R,[c0.ViewportCenter]:V,[c0.ViewportCenterProjection]:y,[c0.PixelsPerDegree]:m,[c0.PixelsPerDegree2]:x,[c0.PixelsPerMeter]:F,u_ViewportSize:J,u_ModelMatrix:n,u_DevicePixelRatio:U}}}}class zC{apply(t){t.hooks.beforeRender.tap("UpdateModelPlugin",()=>{t.layerModel&&t.layerModel.needUpdate().then(r=>{r&&t.renderLayers()})}),t.hooks.afterRender.tap("UpdateModelPlugin",()=>{t.layerModelNeedUpdate=!1})}}class VC{apply(t,{styleAttributeService:r}){t.hooks.init.tapPromise("UpdateStyleAttributePlugin",()=>{this.initStyleAttribute(t,{styleAttributeService:r})}),t.hooks.beforeRender.tap("UpdateStyleAttributePlugin",()=>{t.layerModelNeedUpdate||t.inited&&this.updateStyleAttribute(t,{styleAttributeService:r})})}updateStyleAttribute(t,{styleAttributeService:r}){const i=r.getLayerStyleAttributes()||[],s=r.getLayerStyleAttribute("filter");if(s&&s.needRegenerateVertices){t.layerModelNeedUpdate=!0,i.forEach(u=>u.needRegenerateVertices=!1);return}i.filter(u=>u.needRegenerateVertices).forEach(u=>{r.updateAttributeByFeatureRange(u.name,t.getEncodedData(),u.featureRange.startIndex,u.featureRange.endIndex,t),u.needRegenerateVertices=!1})}initStyleAttribute(t,{styleAttributeService:r}){(r.getLayerStyleAttributes()||[]).filter(s=>s.needRegenerateVertices).forEach(s=>{r.updateAttributeByFeatureRange(s.name,t.getEncodedData(),s.featureRange.startIndex,s.featureRange.endIndex),s.needRegenerateVertices=!1})}}function HC(){return[new lw,new UC,new xC,new pw,new FC,new bC,new VC,new zC,new MC,new kC,new PC,new IC,new OC,new AC]}const G9={[_c.additive]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE,srcAlpha:1,dstAlpha:1}},[_c.none]:{enable:!1},[_c.normal]:{enable:!0,func:{srcRGB:L.SRC_ALPHA,dstRGB:L.ONE_MINUS_SRC_ALPHA,srcAlpha:1,dstAlpha:1}},[_c.subtractive]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE,srcAlpha:L.ZERO,dstAlpha:L.ONE_MINUS_SRC_COLOR},equation:{rgb:L.FUNC_SUBTRACT,alpha:L.FUNC_SUBTRACT}},[_c.max]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE},equation:{rgb:L.MAX_EXT}},[_c.min]:{enable:!0,func:{srcRGB:L.ONE,dstRGB:L.ONE},equation:{rgb:L.MIN_EXT}}};class GC{constructor(t){H(this,"layer",void 0),this.layer=t}pickRender(t){const i=this.layer.getContainer().layerService,s=this.layer;if(s.tileLayer)return s.tileLayer.pickRender(t);s.hooks.beforePickingEncode.call(),i.renderTileLayerMask(s),s.renderModels({ispick:!0}),s.hooks.afterPickingEncode.call()}pick(t,r){var i=this;return mt(function*(){const u=i.layer.getContainer().pickingService;return t.type==="RasterLayer"?i.pickRasterLayer(t,r):(i.pickRender(r),u.pickFromPickingFBO(t,r))})()}pickRasterLayer(t,r,i){const s=this.layer.getContainer(),u=s.pickingService,n=s.mapService,y=this.layer.getSource().extent,m=ME(r.lngLat,y),g={x:r.x,y:r.y,type:r.type,lngLat:r.lngLat,target:r,rasterValue:null},x=i||t;if(m){const b=this.readRasterValue(t,y,n,r.x,r.y);return g.rasterValue=b,u.triggerHoverOnLayer(x,g),!0}else return g.type=r.type==="mousemove"?"mouseout":"un"+r.type,u.triggerHoverOnLayer(x,_t(_t({},g),{},{type:"unpick"})),u.triggerHoverOnLayer(x,g),!1}readRasterValue(t,r,i,s,u){const n=t.getSource().data.dataArray[0],[y=0,m=0,g=10,x=-10]=r,b=i.lngLatToContainer([y,m]),F=i.lngLatToContainer([g,x]),R=F.x-b.x,I=b.y-F.y,U=[(s-b.x)/R,(u-F.y)/I],V=n.width||1,J=n.height||1,Q=Math.floor(U[0]*V),te=Math.floor(U[1]*J),ne=Math.max(0,te-1)*V+Q;return n.data[ne]}selectFeature(t){const r=this.layer,[i,s,u]=t;r.hooks.beforeSelect.call([i,s,u])}highlightPickedFeature(t){const[r,i,s]=t;this.layer.hooks.beforeHighlight.call([r,i,s])}getFeatureById(t){return this.layer.getSource().getFeatureById(t)}}class jC{constructor(t){H(this,"layer",void 0),H(this,"rendererService",void 0),H(this,"colorTexture",void 0),H(this,"key",void 0),this.layer=t;const r=this.layer.getContainer();this.rendererService=r.rendererService}getColorTexture(t,r){const i=this.getTextureKey(t,r);return this.key===i?this.colorTexture:(this.createColorTexture(t,r),this.key=i,this.colorTexture)}createColorTexture(t,r){const{createTexture2D:i}=this.rendererService,s=this.getColorRampBar(t,r),u=i({data:new Uint8Array(s.data),width:s.width,height:s.height,flipY:!1,unorm:!0});return this.colorTexture=u,u}setColorTexture(t,r,i){this.key=this.getTextureKey(r,i),this.colorTexture=t}destroy(){var t;(t=this.colorTexture)===null||t===void 0||t.destroy()}getColorRampBar(t,r){switch(t.type){case"cat":return vE(t);case"quantize":return EE(t);case"custom":return xE(t,r);case"linear":return gE(t,r);default:return t8(t)}}getTextureKey(t,r){var i;return`${t.colors.join("_")}_${t==null||(i=t.positions)===null||i===void 0?void 0:i.join("_")}_${t.type}_${r==null?void 0:r.join("_")}`}}const WC=["passes"],XC=["moduleName","vertexShader","fragmentShader","defines","inject","triangulation","styleOption","pickingEnabled"],{isEqual:Qm,isFunction:p4,isNumber:l4,isObject:Va,isPlainObject:ZC,isUndefined:YC}=Qn;let c4=0;class A1 extends du.EventEmitter{get shaderModuleService(){return this.container.shaderModuleService}get cameraService(){return this.container.cameraService}get coordinateService(){return this.container.coordinateSystemService}get iconService(){return this.container.iconService}get fontService(){return this.container.fontService}get pickingService(){return this.container.pickingService}get rendererService(){return this.container.rendererService}get layerService(){return this.container.layerService}get debugService(){return this.container.debugService}get interactionService(){return this.container.interactionService}get mapService(){var t;return(t=this.container)===null||t===void 0?void 0:t.mapService}get normalPassFactory(){return this.container.normalPassFactory}constructor(t={}){super(),H(this,"id",`${c4++}`),H(this,"name",`${c4}`),H(this,"parent",void 0),H(this,"coordCenter",void 0),H(this,"type",void 0),H(this,"visible",!0),H(this,"zIndex",0),H(this,"minZoom",void 0),H(this,"maxZoom",void 0),H(this,"inited",!1),H(this,"layerModelNeedUpdate",!1),H(this,"pickedFeatureID",null),H(this,"selectedFeatureID",null),H(this,"styleNeedUpdate",!1),H(this,"rendering",void 0),H(this,"forceRender",!1),H(this,"clusterZoom",0),H(this,"layerType",void 0),H(this,"triangulation",void 0),H(this,"layerPickService",void 0),H(this,"textureService",void 0),H(this,"defaultSourceConfig",{data:[],options:{parser:{type:"json"}}}),H(this,"dataState",{dataSourceNeedUpdate:!1,dataMappingNeedUpdate:!1,filterNeedUpdate:!1,featureScaleNeedUpdate:!1,StyleAttrNeedUpdate:!1}),H(this,"hooks",{init:new WA,afterInit:new X_,beforeRender:new X_,beforeRenderData:new XA,afterRender:new Wp,beforePickingEncode:new Wp,afterPickingEncode:new Wp,beforeHighlight:new Wp(["pickedColor"]),afterHighlight:new Wp,beforeSelect:new Wp(["pickedColor"]),afterSelect:new Wp,beforeDestroy:new Wp,afterDestroy:new Wp}),H(this,"models",[]),H(this,"multiPassRenderer",void 0),H(this,"plugins",void 0),H(this,"startInit",!1),H(this,"sourceOption",void 0),H(this,"layerModel",void 0),H(this,"shapeOption",void 0),H(this,"tileLayer",void 0),H(this,"layerChildren",[]),H(this,"masks",[]),H(this,"configService",X8),H(this,"styleAttributeService",void 0),H(this,"layerSource",void 0),H(this,"postProcessingPassFactory",void 0),H(this,"animateOptions",{enable:!1}),H(this,"container",void 0),H(this,"encodedData",void 0),H(this,"currentPickId",null),H(this,"rawConfig",void 0),H(this,"needUpdateConfig",void 0),H(this,"encodeStyleAttribute",{}),H(this,"enableShaderEncodeStyles",[]),H(this,"enableDataEncodeStyles",[]),H(this,"pendingStyleAttributes",[]),H(this,"scaleOptions",{}),H(this,"animateStartTime",void 0),H(this,"animateStatus",!1),H(this,"isDestroyed",!1),H(this,"uniformBuffers",[]),H(this,"encodeDataLength",0),H(this,"sourceEvent",()=>{this.dataState.dataSourceNeedUpdate=!0;const r=this.getLayerConfig();r&&r.autoFit&&this.fitBounds(r.fitBoundsOptions),this.layerSource.getSourceCfg().autoRender&&setTimeout(()=>{this.reRender()},10)}),this.name=t.name||this.id,this.zIndex=t.zIndex||0,this.rawConfig=t,this.masks=t.maskLayers||[]}addMask(t){this.masks.push(t),this.updateLayerConfig({maskLayers:this.masks}),this.enableMask()}removeMask(t){const r=this.masks.indexOf(t);r>-1&&this.masks.splice(r,1),this.updateLayerConfig({maskLayers:this.masks})}disableMask(){this.updateLayerConfig({enableMask:!1})}enableMask(){this.updateLayerConfig({enableMask:!0})}addMaskLayer(t){this.masks.push(t)}removeMaskLayer(t){const r=this.masks.indexOf(t);r>-1&&this.masks.splice(r,1),t.destroy()}getAttribute(t){return this.styleAttributeService.getLayerStyleAttribute(t)}getLayerConfig(){return this.configService.getLayerConfig(this.id)}updateLayerConfig(t){if(Object.keys(t).map(r=>{r in this.rawConfig&&(this.rawConfig[r]=t[r])}),!this.startInit)this.needUpdateConfig=_t(_t({},this.needUpdateConfig),t);else{const r=this.container.id;this.configService.setLayerConfig(r,this.id,_t(_t(_t({},this.configService.getLayerConfig(this.id)),this.needUpdateConfig),t)),this.needUpdateConfig={}}}setContainer(t){this.container=t}getContainer(){return this.container}addPlugin(t){return this.plugins.push(t),this}init(){var t=this;return mt(function*(){const r=t.container.id;t.startInit=!0,t.configService.setLayerConfig(r,t.id,t.rawConfig),t.layerType=t.rawConfig.layerType;const{enableMultiPassRenderer:i,passes:s}=t.getLayerConfig();i&&s!==null&&s!==void 0&&s.length&&s.length>0&&t.mapService.on("mapAfterFrameChange",()=>{t.renderLayers()}),t.postProcessingPassFactory=t.container.postProcessingPassFactory,t.styleAttributeService=t.container.styleAttributeService,i&&(t.multiPassRenderer=t.container.multiPassRenderer,t.multiPassRenderer.setLayer(t)),t.pendingStyleAttributes.forEach(({attributeName:u,attributeField:n,attributeValues:y,updateOptions:m})=>{t.styleAttributeService.updateStyleAttribute(u,{scale:_t({field:n},t.splitValuesAndCallbackInAttribute(y,n?void 0:t.getLayerConfig()[u]))},m)}),t.pendingStyleAttributes=[],t.plugins=HC();for(const u of t.plugins)u.apply(t,t.container);t.layerPickService=new GC(t),t.textureService=new jC(t),t.log(Ea.LayerInitStart),yield t.hooks.init.promise(),t.log(Ea.LayerInitEnd),t.inited=!0,t.emit("inited",{target:t,type:"inited"}),t.emit("add",{target:t,type:"add"}),t.hooks.afterInit.call()})()}log(t,r="init"){var i;if(this.tileLayer||this.isTileLayer)return;const s=`${this.id}.${r}.${t}`,u={id:this.id,type:this.type};(i=this.debugService)===null||i===void 0||i.log(s,u)}updateModelData(t){t.attributes&&t.elements?this.models.map(r=>{r.updateAttributesAndElements(t.attributes,t.elements)}):console.warn("data error")}setLayerPickService(t){this.layerPickService=t}prepareBuildModel(){Object.keys(this.needUpdateConfig||{}).length!==0&&this.updateLayerConfig({});const{animateOption:t}=this.getLayerConfig();t!=null&&t.enable&&(this.layerService.startAnimate(),this.animateStatus=!0)}color(t,r,i){return this.updateStyleAttribute("color",t,r,i),this}texture(t,r,i){return this.updateStyleAttribute("texture",t,r,i),this}rotate(t,r,i){return this.updateStyleAttribute("rotate",t,r,i),this}size(t,r,i){return this.updateStyleAttribute("size",t,r,i),this}filter(t,r,i){const s=this.updateStyleAttribute("filter",t,r,i);return this.dataState.dataSourceNeedUpdate=s&&this.inited,this}shape(t,r,i){this.shapeOption={field:t,values:r};const s=this.updateStyleAttribute("shape",t,r,i);return this.dataState.dataSourceNeedUpdate=s&&this.inited,this}label(t,r,i){return this.pendingStyleAttributes.push({attributeName:"label",attributeField:t,attributeValues:r,updateOptions:i}),this}animate(t){let r={};return Va(t)?(r.enable=!0,r=_t(_t({},r),t)):r.enable=t,this.updateLayerConfig({animateOption:r}),this}source(t,r){return(t==null?void 0:t.type)==="source"?(this.setSource(t),this):(this.sourceOption={data:t,options:r},this.clusterZoom=0,this)}setData(t,r){return this.inited?(this.dataUpdatelog(),this.layerSource.setData(t,r)):this.on("inited",()=>{this.dataUpdatelog(),this.layerSource.setData(t,r)}),this}dataUpdatelog(){this.log(Ea.SourceInitStart,Ga.UPDATE),this.layerSource.once("update",()=>{this.log(Ea.SourceInitEnd,Ga.UPDATE)})}style(t){const{passes:r}=t,i=$p(t,WC);r&&V9(r).forEach(u=>{const n=this.multiPassRenderer.getPostProcessor().getPostProcessingPassByName(u[0]);n&&n.updateOptions(u[1])}),i.borderColor&&(i.stroke=i.borderColor),i.borderWidth&&(i.strokeWidth=i.borderWidth);const s=i;return Object.keys(i).forEach(u=>{const n=i[u];Array.isArray(n)&&n.length===2&&!l4(n[0])&&!l4(n[1])&&(s[u]={field:n[0],value:n[1]})}),this.encodeStyle(s),this.updateLayerConfig(s),this}encodeStyle(t){Object.keys(t).forEach(r=>{[...this.enableShaderEncodeStyles,...this.enableDataEncodeStyles].includes(r)&&ZC(t[r])&&(t[r].field||t[r].value)&&!Qm(this.encodeStyleAttribute[r],t[r])?(this.encodeStyleAttribute[r]=t[r],this.updateStyleAttribute(r,t[r].field,t[r].value),this.inited&&(this.dataState.dataMappingNeedUpdate=!0)):this.encodeStyleAttribute[r]&&(delete this.encodeStyleAttribute[r],this.dataState.dataSourceNeedUpdate=!0)})}scale(t,r){const i=_t({},this.scaleOptions);if(Va(t)?this.scaleOptions=_t(_t({},this.scaleOptions),t):this.scaleOptions[t]=r,this.styleAttributeService&&!Qm(i,this.scaleOptions)){const s=Va(t)?t:{[t]:r};this.styleAttributeService.updateScaleAttribute(s)}return this}renderLayers(){this.rendering=!0,this.layerService.reRender(),this.rendering=!1}prerender(){}render(t={}){return this.tileLayer?(this.tileLayer.render(),this):(this.layerService.beforeRenderData(this),this.encodeDataLength<=0&&!this.forceRender?this:(this.renderModels(t),this))}renderMultiPass(){var t=this;return mt(function*(){t.encodeDataLength<=0&&!t.forceRender||(t.multiPassRenderer&&t.multiPassRenderer.getRenderFlag()?yield t.multiPassRenderer.render():t.renderModels())})()}active(t){const r={};return r.enableHighlight=Va(t)?!0:t,Va(t)?(r.enableHighlight=!0,t.color&&(r.highlightColor=t.color),t.mix&&(r.activeMix=t.mix)):r.enableHighlight=!!t,this.updateLayerConfig(r),this}setActive(t,r){if(Va(t)){const{x:i=0,y:s=0}=t;this.updateLayerConfig({highlightColor:Va(r)?r.color:this.getLayerConfig().highlightColor,activeMix:Va(r)?r.mix:this.getLayerConfig().activeMix}),this.pick({x:i,y:s})}else this.updateLayerConfig({pickedFeatureID:t,highlightColor:Va(r)?r.color:this.getLayerConfig().highlightColor,activeMix:Va(r)?r.mix:this.getLayerConfig().activeMix}),this.hooks.beforeHighlight.call(L0(t)).then(()=>{setTimeout(()=>{this.reRender()},1)})}select(t){const r={};return r.enableSelect=Va(t)?!0:t,Va(t)?(r.enableSelect=!0,t.color&&(r.selectColor=t.color),t.mix&&(r.selectMix=t.mix)):r.enableSelect=!!t,this.updateLayerConfig(r),this}setSelect(t,r){if(Va(t)){const{x:i=0,y:s=0}=t;this.updateLayerConfig({selectColor:Va(r)?r.color:this.getLayerConfig().selectColor,selectMix:Va(r)?r.mix:this.getLayerConfig().selectMix}),this.pick({x:i,y:s})}else this.updateLayerConfig({pickedFeatureID:t,selectColor:Va(r)?r.color:this.getLayerConfig().selectColor,selectMix:Va(r)?r.mix:this.getLayerConfig().selectMix}),this.hooks.beforeSelect.call(L0(t)).then(()=>{setTimeout(()=>{this.reRender()},1)})}setBlend(t){return this.updateLayerConfig({blend:t}),this.reRender(),this}show(){return this.updateLayerConfig({visible:!0}),this.reRender(),this.emit("show"),this}hide(){return this.updateLayerConfig({visible:!1}),this.reRender(),this.emit("hide"),this}setIndex(t){return this.zIndex=t,this.layerService.updateLayerRenderList(),this.layerService.renderLayers(),this}setCurrentPickId(t){this.currentPickId=t}getCurrentPickId(){return this.currentPickId}setCurrentSelectedId(t){this.selectedFeatureID=t}getCurrentSelectedId(){return this.selectedFeatureID}isVisible(){const t=this.mapService.getZoom(),{visible:r,minZoom:i=-1/0,maxZoom:s=1/0}=this.getLayerConfig();return!!r&&t>=i&&tMath.abs(u)===1/0)?this:(this.mapService.fitBounds([[i[0],i[1]],[i[2],i[3]]],t),this)}destroy(t=!0){var r,i,s,u,n;if(this.isDestroyed)return;(r=this.layerModel)===null||r===void 0||r.uniformBuffers.forEach(m=>{m.destroy()}),this.layerChildren.map(m=>m.destroy(!1)),this.layerChildren=[];const{maskfence:y}=this.getLayerConfig();y&&(this.masks.map(m=>m.destroy(!1)),this.masks=[]),this.hooks.beforeDestroy.call(),this.layerSource.off("update",this.sourceEvent),(i=this.multiPassRenderer)===null||i===void 0||i.destroy(),this.textureService.destroy(),this.styleAttributeService.clearAllAttributes(),this.hooks.afterDestroy.call(),(s=this.layerModel)===null||s===void 0||s.clearModels(t),(u=this.tileLayer)===null||u===void 0||u.destroy(),this.models=[],(n=this.debugService)===null||n===void 0||n.removeLog(this.id),this.emit("remove",{target:this,type:"remove"}),this.emit("destroy",{target:this,type:"destroy"}),this.removeAllListeners(),this.isDestroyed=!0}clear(){this.styleAttributeService.clearAllAttributes()}clearModels(){var t;this.models.forEach(r=>r.destroy()),(t=this.layerModel)===null||t===void 0||t.clearModels(),this.models=[]}isDirty(){return!!(this.styleAttributeService.getLayerStyleAttributes()||[]).filter(t=>t.needRescale||t.needRemapping||t.needRegenerateVertices).length}setSource(t){if(this.layerSource&&this.layerSource.off("update",this.sourceEvent),this.layerSource=t,this.clusterZoom=0,this.inited&&this.layerSource.cluster){const r=this.mapService.getZoom();this.layerSource.updateClusterData(r)}this.layerSource.inited&&this.sourceEvent(),this.layerSource.on("update",({type:r})=>{if(this.coordCenter===void 0){const i=this.layerSource.center;this.coordCenter=i}if(r==="update"){if(this.tileLayer){this.tileLayer.reload();return}this.sourceEvent()}})}getSource(){return this.layerSource}getScaleOptions(){return this.scaleOptions}setEncodedData(t){this.encodedData=t,this.encodeDataLength=t.length}getEncodedData(){return this.encodedData}getScale(t){return this.styleAttributeService.getLayerAttributeScale(t)}getLegend(t){var r,i,s;const u=this.styleAttributeService.getLayerStyleAttribute(t);return{type:(i=((u==null||(r=u.scale)===null||r===void 0?void 0:r.scalers)||[])[0])===null||i===void 0||(i=i.option)===null||i===void 0?void 0:i.type,field:u==null||(s=u.scale)===null||s===void 0?void 0:s.field,items:this.getLegendItems(t)}}getLegendItems(t){const r=this.styleAttributeService.getLayerAttributeScale(t);return r?r.invertExtent?r.range().map(s=>({value:r.invertExtent(s),[t]:s})):r.ticks?r.ticks().map(s=>({value:s,[t]:r(s)})):r!=null&&r.domain?r.domain().filter(s=>!YC(s)).map(s=>({value:s,[t]:r(s)})):[]:[]}pick({x:t,y:r}){this.interactionService.triggerHover({x:t,y:r})}boxSelect(t,r){this.pickingService.boxPickLayer(this,t,r)}buildLayerModel(t){var r=this;return mt(function*(){const{moduleName:i,vertexShader:s,fragmentShader:u,defines:n,inject:y,triangulation:m,styleOption:g,pickingEnabled:x=!0}=t,b=$p(t,XC);r.shaderModuleService.registerModule(i,{vs:s,fs:u,defines:n,inject:y});const{vs:F,fs:R,uniforms:I}=r.shaderModuleService.getModule(i),{createModel:U}=r.rendererService;return new Promise(V=>{const{attributes:J,elements:Q,count:te}=r.styleAttributeService.createAttributesAndIndices(r.encodedData,m,g,r),ne=[...r.layerModel.uniformBuffers,...r.rendererService.uniformBuffers];x&&ne.push(r.getPickingUniformBuffer());const pe=_t({attributes:J,uniforms:I,fs:R,vs:F,elements:Q,blend:G9[_c.normal],uniformBuffers:ne,textures:r.layerModel.textures},b);te&&(pe.count=te);const Oe=U(pe);V(Oe)})})()}createAttributes(t){const{triangulation:r}=t,{attributes:i}=this.styleAttributeService.createAttributes(this.encodedData,r);return i}getTime(){return this.layerService.clock.getDelta()}setAnimateStartTime(){this.animateStartTime=this.layerService.clock.getElapsedTime()}stopAnimate(){this.animateStatus&&(this.layerService.stopAnimate(),this.animateStatus=!1,this.updateLayerConfig({animateOption:{enable:!1}}))}getLayerAnimateTime(){return this.layerService.clock.getElapsedTime()-this.animateStartTime}needPick(t){const{enableHighlight:r=!0,enableSelect:i=!0}=this.getLayerConfig();let s=this.eventNames().indexOf(t)!==-1||this.eventNames().indexOf("un"+t)!==-1;return(t==="click"||t==="dblclick")&&i&&(s=!0),t==="mousemove"&&(r||this.eventNames().indexOf("mouseenter")!==-1||this.eventNames().indexOf("unmousemove")!==-1||this.eventNames().indexOf("mouseout")!==-1)&&(s=!0),this.isVisible()&&s}buildModels(){return mt(function*(){throw new Error("Method not implemented.")})()}rebuildModels(){var t=this;return mt(function*(){yield t.buildModels()})()}renderMulPass(t){return mt(function*(){yield t.render()})()}renderModels(t={}){return this.encodeDataLength<=0&&!this.forceRender?(this.clearModels(),this):(this.hooks.beforeRender.call(),this.models.forEach(r=>{r.draw({uniforms:this.layerModel.getUninforms(),blend:this.layerModel.getBlend(),stencil:this.layerModel.getStencil(t),textures:this.layerModel.textures},(t==null?void 0:t.ispick)||!1)}),this.hooks.afterRender.call(),this)}updateStyleAttribute(t,r,i,s){const u=this.configService.getAttributeConfig(this.id)||{};return Qm(u[t],{field:r,values:i})?!1:(["color","size","texture","rotate","filter","label","shape"].indexOf(t)!==-1&&this.configService.setAttributeConfig(this.id,{[t]:{field:r,values:i}}),this.startInit?this.styleAttributeService.updateStyleAttribute(t,{scale:_t({field:r},this.splitValuesAndCallbackInAttribute(i,this.getLayerConfig()[r]))},s):this.pendingStyleAttributes.push({attributeName:t,attributeField:r,attributeValues:i,updateOptions:s}),!0)}getLayerAttributeConfig(){return this.configService.getAttributeConfig(this.id)}getShaderPickStat(){return this.layerService.getShaderPickStat()}setEarthTime(t){console.warn("empty fn")}processData(t){return t}getModelType(){throw new Error("Method not implemented.")}getDefaultConfig(){return{}}initLayerModels(){var t=this;return mt(function*(){t.models.forEach(i=>i.destroy()),t.models=[],t.uniformBuffers.forEach(i=>{i.destroy()}),t.uniformBuffers=[];const r=t.rendererService.createBuffer({data:new Float32Array(20).fill(0),isUBO:!0,label:"pickingUniforms"});t.uniformBuffers.push(r),t.models=yield t.layerModel.initModels()})()}getPickingUniformBuffer(){return this.uniformBuffers[0]}reRender(){this.inited&&this.layerService.reRender()}splitValuesAndCallbackInAttribute(t){return{values:p4(t)?void 0:t,callback:p4(t)?t:void 0}}}function $C(e,t){return{enable:e,mask:255,func:{cmp:L.EQUAL,ref:t?1:0,mask:1}}}function d4(e){return e.maskOperation===jf.OR?{enable:!0,mask:255,func:{cmp:L.ALWAYS,ref:1,mask:255},opFront:{fail:L.KEEP,zfail:L.REPLACE,zpass:L.REPLACE}}:{enable:!0,mask:255,func:{cmp:e.stencilType===p1.SINGLE||e.stencilIndex===0?L.ALWAYS:L.LESS,ref:e.stencilType===p1.SINGLE?1:e.stencilIndex===0?2:1,mask:255},opFront:{fail:L.KEEP,zfail:L.REPLACE,zpass:L.REPLACE}}}const qC={opacity:1,stroke:[1,0,0,1],offsets:[0,0],rotation:0,extrusionBase:0,strokeOpacity:1,thetaOffset:.314},Rh={opacity:"float",stroke:"vec4",offsets:"vec2",textOffset:"vec2",rotation:"float",extrusionBase:"float",strokeOpacity:"float",thetaOffset:"float"};var O6={exports:{}};O6.exports=$f;O6.exports.default=$f;function $f(e,t,r){r=r||2;var i=t&&t.length,s=i?t[0]*r:e.length,u=j9(e,0,s,r,!0),n=[];if(!u||u.next===u.prev)return n;var y,m,g,x,b,F,R;if(i&&(u=tI(e,t,u,r)),e.length>80*r){y=g=e[0],m=x=e[1];for(var I=r;Ig&&(g=b),F>x&&(x=F);R=Math.max(g-y,x-m),R=R!==0?32767/R:0}return Fy(u,n,r,y,m,R,0),n}function j9(e,t,r,i,s){var u,n;if(s===V2(e,t,r,i)>0)for(u=t;u=t;u-=i)n=y4(u,e[u],e[u+1],n);return n&&qf(n,n.next)&&(Sy(n),n=n.next),n}function v1(e,t){if(!e)return e;t||(t=e);var r=e,i;do if(i=!1,!r.steiner&&(qf(r,r.next)||On(r.prev,r,r.next)===0)){if(Sy(r),r=t=r.prev,r===r.next)break;i=!0}else r=r.next;while(i||r!==t);return t}function Fy(e,t,r,i,s,u,n){if(e){!n&&u&&aI(e,i,s,u);for(var y=e,m,g;e.prev!==e.next;){if(m=e.prev,g=e.next,u?QC(e,i,s,u):KC(e)){t.push(m.i/r|0),t.push(e.i/r|0),t.push(g.i/r|0),Sy(e),e=g.next,y=g.next;continue}if(e=g,e===y){n?n===1?(e=JC(v1(e),t,r),Fy(e,t,r,i,s,u,2)):n===2&&eI(e,t,r,i,s,u):Fy(v1(e),t,r,i,s,u,1);break}}}}function KC(e){var t=e.prev,r=e,i=e.next;if(On(t,r,i)>=0)return!1;for(var s=t.x,u=r.x,n=i.x,y=t.y,m=r.y,g=i.y,x=su?s>n?s:n:u>n?u:n,R=y>m?y>g?y:g:m>g?m:g,I=i.next;I!==t;){if(I.x>=x&&I.x<=F&&I.y>=b&&I.y<=R&&x0(s,y,u,m,n,g,I.x,I.y)&&On(I.prev,I,I.next)>=0)return!1;I=I.next}return!0}function QC(e,t,r,i){var s=e.prev,u=e,n=e.next;if(On(s,u,n)>=0)return!1;for(var y=s.x,m=u.x,g=n.x,x=s.y,b=u.y,F=n.y,R=ym?y>g?y:g:m>g?m:g,V=x>b?x>F?x:F:b>F?b:F,J=k2(R,I,t,r,i),Q=k2(U,V,t,r,i),te=e.prevZ,ne=e.nextZ;te&&te.z>=J&&ne&&ne.z<=Q;){if(te.x>=R&&te.x<=U&&te.y>=I&&te.y<=V&&te!==s&&te!==n&&x0(y,x,m,b,g,F,te.x,te.y)&&On(te.prev,te,te.next)>=0||(te=te.prevZ,ne.x>=R&&ne.x<=U&&ne.y>=I&&ne.y<=V&&ne!==s&&ne!==n&&x0(y,x,m,b,g,F,ne.x,ne.y)&&On(ne.prev,ne,ne.next)>=0))return!1;ne=ne.nextZ}for(;te&&te.z>=J;){if(te.x>=R&&te.x<=U&&te.y>=I&&te.y<=V&&te!==s&&te!==n&&x0(y,x,m,b,g,F,te.x,te.y)&&On(te.prev,te,te.next)>=0)return!1;te=te.prevZ}for(;ne&&ne.z<=Q;){if(ne.x>=R&&ne.x<=U&&ne.y>=I&&ne.y<=V&&ne!==s&&ne!==n&&x0(y,x,m,b,g,F,ne.x,ne.y)&&On(ne.prev,ne,ne.next)>=0)return!1;ne=ne.nextZ}return!0}function JC(e,t,r){var i=e;do{var s=i.prev,u=i.next.next;!qf(s,u)&&W9(s,i,i.next,u)&&Ty(s,u)&&Ty(u,s)&&(t.push(s.i/r|0),t.push(i.i/r|0),t.push(u.i/r|0),Sy(i),Sy(i.next),i=e=u),i=i.next}while(i!==e);return v1(i)}function eI(e,t,r,i,s,u){var n=e;do{for(var y=n.next.next;y!==n.prev;){if(n.i!==y.i&&pI(n,y)){var m=X9(n,y);n=v1(n,n.next),m=v1(m,m.next),Fy(n,t,r,i,s,u,0),Fy(m,t,r,i,s,u,0);return}y=y.next}n=n.next}while(n!==e)}function tI(e,t,r,i){var s=[],u,n,y,m,g;for(u=0,n=t.length;u=r.next.y&&r.next.y!==r.y){var y=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(y<=i&&y>u&&(u=y,n=r.x=r.x&&r.x>=g&&i!==r.x&&x0(sn.x||r.x===n.x&&nI(n,r)))&&(n=r,b=F)),r=r.next;while(r!==m);return n}function nI(e,t){return On(e.prev,e,t.prev)<0&&On(t.next,e,e.next)<0}function aI(e,t,r,i){var s=e;do s.z===0&&(s.z=k2(s.x,s.y,t,r,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==e);s.prevZ.nextZ=null,s.prevZ=null,sI(s)}function sI(e){var t,r,i,s,u,n,y,m,g=1;do{for(r=e,e=null,u=null,n=0;r;){for(n++,i=r,y=0,t=0;t0||m>0&&i;)y!==0&&(m===0||!i||r.z<=i.z)?(s=r,r=r.nextZ,y--):(s=i,i=i.nextZ,m--),u?u.nextZ=s:e=s,s.prevZ=u,u=s;r=i}u.nextZ=null,g*=2}while(n>1);return e}function k2(e,t,r,i,s){return e=(e-r)*s|0,t=(t-i)*s|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function uI(e){var t=e,r=e;do(t.x=(e-n)*(u-y)&&(e-n)*(i-y)>=(r-n)*(t-y)&&(r-n)*(u-y)>=(s-n)*(i-y)}function pI(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!lI(e,t)&&(Ty(e,t)&&Ty(t,e)&&cI(e,t)&&(On(e.prev,e,t.prev)||On(e,t.prev,t))||qf(e,t)&&On(e.prev,e,e.next)>0&&On(t.prev,t,t.next)>0)}function On(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function qf(e,t){return e.x===t.x&&e.y===t.y}function W9(e,t,r,i){var s=Ih(On(e,t,r)),u=Ih(On(e,t,i)),n=Ih(On(r,i,e)),y=Ih(On(r,i,t));return!!(s!==u&&n!==y||s===0&&Ch(e,r,t)||u===0&&Ch(e,i,t)||n===0&&Ch(r,e,i)||y===0&&Ch(r,t,i))}function Ch(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function Ih(e){return e>0?1:e<0?-1:0}function lI(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&W9(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function Ty(e,t){return On(e.prev,e,e.next)<0?On(e,t,e.next)>=0&&On(e,e.prev,t)>=0:On(e,t,e.prev)<0||On(e,e.next,t)<0}function cI(e,t){var r=e,i=!1,s=(e.x+t.x)/2,u=(e.y+t.y)/2;do r.y>u!=r.next.y>u&&r.next.y!==r.y&&s<(r.next.x-r.x)*(u-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==e);return i}function X9(e,t){var r=new z2(e.i,e.x,e.y),i=new z2(t.i,t.x,t.y),s=e.next,u=t.prev;return e.next=t,t.prev=e,r.next=s,s.prev=r,i.next=r,r.prev=i,u.next=i,i.prev=u,i}function y4(e,t,r,i){var s=new z2(e,t,r);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function Sy(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function z2(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}$f.deviation=function(e,t,r,i){var s=t&&t.length,u=s?t[0]*r:e.length,n=Math.abs(V2(e,0,u,r));if(s)for(var y=0,m=t.length;y0&&(i+=e[s-1].length,r.holes.push(i))}return r};var dI=O6.exports;const Ml=_p(dI);function h4(e){return Math.max(Math.ceil(e/4)*4,4)}function Z9(e,t,r,i=!0){const s=r===3;if(i){e=e.slice();const n=[];for(let y=0;y{typeof i[s]=="boolean"&&(i[s]=i[s]?1:0)}),!this.rendererService.hasOwnProperty("device")&&this.textures&&this.textures.length===1&&(i.u_texture=this.textures[0]),i}getAnimateUniforms(){return{}}needUpdate(){return mt(function*(){return!1})()}buildModels(){return mt(function*(){throw new Error("Method not implemented.")})()}initModels(){return mt(function*(){throw new Error("Method not implemented.")})()}clearModels(t=!0){}getAttribute(){throw new Error("Method not implemented.")}prerender(){}render(t){throw new Error("Method not implemented.")}registerBuiltinAttributes(){throw new Error("Method not implemented.")}animateOption2Array(t){return[t.enable?0:1,t.duration||4,t.interval||.2,t.trailLength||.1]}startModelAnimate(){const{animateOption:t}=this.layer.getLayerConfig();t.enable&&this.layer.setAnimateStartTime()}getInject(){return yI(this.layer.enableShaderEncodeStyles,this.layer.encodeStyleAttribute)}getDefines(){const t=Object.keys(this.attributeLocation).reduce((r,i)=>{const s=Y9+i;return r[s]=this.attributeLocation[i],r},{});return _t({},t)}getStyleAttribute(){const t={};return this.layer.enableShaderEncodeStyles.forEach(r=>{if(!this.layer.encodeStyleAttribute[r]){const i=this.layer.getLayerConfig()[r];let s=typeof i>"u"?qC[r]:i;r==="stroke"&&(s=Mi(s)),t["u_"+r]=s}}),t}registerStyleAttribute(){Object.keys(this.layer.encodeStyleAttribute).forEach(t=>{const r=NC(t);r&&this.styleAttributeService.registerStyleAttribute(r)})}registerPosition64LowAttribute(t=!0){this.styleAttributeService.registerStyleAttribute({name:"position64Low",type:br.Attribute,descriptor:{name:"a_Position64Low",shaderLocation:this.attributeLocation.POSITION_64LOW,buffer:{data:[],type:L.FLOAT},size:2,update:(r,i,s)=>t?[ua(s[0]),ua(s[1])]:[0,0]}})}updateEncodeAttribute(t,r){this.encodeStyleAttribute[t]=r}initUniformsBuffer(){const t=this.getUniformsBufferInfo(this.getStyleAttribute()),r=this.getCommonUniformsInfo();t.uniformsLength!==0&&(this.attributeUnifoms=this.rendererService.createBuffer({data:new Float32Array(h4(t.uniformsLength)).fill(0),isUBO:!0,label:"layerModelAttributeUnifoms"}),this.uniformBuffers.push(this.attributeUnifoms)),r.uniformsLength!==0&&(this.commonUnifoms=this.rendererService.createBuffer({data:new Float32Array(h4(r.uniformsLength)).fill(0),isUBO:!0,label:"layerModelCommonUnifoms"}),this.uniformBuffers.push(this.commonUnifoms))}getUniformsBufferInfo(t){let r=0;const i=[];return Object.values(t).forEach(s=>{Array.isArray(s)?(i.push(...s),r+=s.length):typeof s=="number"?(i.push(s),r+=1):typeof s=="boolean"&&(i.push(Number(s)),r+=1)}),{uniformsOption:t,uniformsLength:r,uniformsArray:i}}getCommonUniformsInfo(){return{uniformsLength:0,uniformsArray:[],uniformsOption:{}}}updateStyleUnifoms(){var t,r;const{uniformsArray:i}=this.getUniformsBufferInfo(this.getStyleAttribute()),{uniformsArray:s}=this.getCommonUniformsInfo();(t=this.attributeUnifoms)===null||t===void 0||t.subData({offset:0,data:new Uint8Array(new Float32Array(i).buffer)}),(r=this.commonUnifoms)===null||r===void 0||r.subData({offset:0,data:new Uint8Array(new Float32Array(s).buffer)})}}function yI(e,t){const r=[];let i="";e.forEach(n=>{const y=n.replace(/([a-z])([A-Z])/g,"$1_$2").toUpperCase(),m=Y9+y;t[n]?i+=`#define USE_ATTRIBUTE_${y} 0.0 `:r.push(` ${Rh[n]} u_${n};`),i+=` #ifdef USE_ATTRIBUTE_${y} layout(location = ${m}) in ${Rh[n]} a_${n.charAt(0).toUpperCase()+n.slice(1)}; #endif `});const s=r.length?` layout(std140) uniform AttributeUniforms { ${r.join(` `)} }; `:"";i+=s;let u="";return e.forEach(n=>{const y=n.replace(/([a-z])([A-Z])/g,"$1_$2").toUpperCase();u+=` #ifdef USE_ATTRIBUTE_${y} ${Rh[n]} ${n} = a_${n.charAt(0).toUpperCase()+n.slice(1)}; #else ${Rh[n]} ${n} = u_${n}; #endif `}),{"vs:#decl":i,"fs:#decl":s,"vs:#main-start":u}}let f4=function(e){return e.VERTICAL="vertical",e.HORIZONTAL="horizontal",e}({}),hI=function(e){return e.NORMAL="normal",e.REPLACE="replace",e}({}),L6=function(e){return e[e.pixel=0]="pixel",e[e.meter=1]="meter",e}({});const $9=100;function m4(e){return e/180*Math.acos(-1)}function q9(e){const t=m4(e[0])+Math.PI/2,r=m4(e[1]),i=$9+Math.random()*.4,s=i*Math.cos(r)*Math.cos(t),u=i*Math.cos(r)*Math.sin(t),n=i*Math.sin(r);return[u,n,s]}const _4=uu();uu();const Uu=uu(),Od=uu(),Mh=uu();function g4(e,t,r,i,s){gc(e,r,i),rf(e,e),t=u2(-e[1],e[0]);const u=u2(-r[1],r[0]);return[s/p2(t,u),t]}function Ld(e,t){return Tv(e,-t[1],t[0])}function Nh(e,t,r){return zg(e,t,r),rf(e,e),e}function v4(e,t){return e[0]===t[0]&&e[1]===t[1]}class fI{constructor(t={}){H(this,"complex",void 0),H(this,"join",void 0),H(this,"cap",void 0),H(this,"miterLimit",void 0),H(this,"thickness",void 0),H(this,"normal",void 0),H(this,"lastFlip",-1),H(this,"miter",u2(0,0)),H(this,"started",!1),H(this,"dash",!1),H(this,"totalDistance",0),H(this,"currentIndex",0),this.join=t.join||"miter",this.cap=t.cap||"butt",this.miterLimit=t.miterLimit||10,this.thickness=t.thickness||1,this.dash=t.dash||!1,this.complex={positions:[],indices:[],normals:[],startIndex:0,indexes:[]}}simpleExtrude(t){const r=this.complex;if(t.length<=1)return r;this.lastFlip=-1,this.started=!1,this.normal=null,this.totalDistance=0;const i=t.length;let s=r.startIndex;for(let u=1;uthis.miterLimit&&(te=!0),te?(g.push(this.normal[0],this.normal[1],0),g.push(J[0],J[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,-this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++,y.push(...this.lastFlip!==-Q?[r,r+2,r+3]:[r+2,r+1,r+3]),y.push(r+2,r+3,r+4),Ld(_4,Od),Rm(this.normal,_4),g.push(this.normal[0],this.normal[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,-this.thickness*Q,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++,n+=3):(this.extrusions(m,g,s,J,V,this.totalDistance),y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),Q=-1,Rm(this.normal,J),n+=2),this.lastFlip=Q}else{if(Ld(this.normal,Uu),x){const U=uu(),V=uu();zg(V,Uu,this.normal),gc(U,Uu,this.normal),g.push(V[0],V[1],0),g.push(U[0],U[1],0),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness,s[2]|0),this.complex.indexes.push(this.currentIndex),m.push(s[0],s[1],s[2]|0,this.totalDistance,this.thickness,s[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++}else this.extrusions(m,g,s,this.normal,this.thickness,this.totalDistance);y.push(...this.lastFlip===1?[r,r+2,r+3]:[r+2,r+1,r+3]),n+=2}return n}extrusions(t,r,i,s,u,n){r.push(s[0],s[1],0),r.push(s[0],s[1],0),t.push(i[0],i[1],i[2]|0,n,-u,i[2]|0),this.complex.indexes.push(this.currentIndex),t.push(i[0],i[1],i[2]|0,n,u,i[2]|0),this.complex.indexes.push(this.currentIndex),this.currentIndex++}lineSegmentDistance(t,r){const i=r[0]-t[0],s=r[1]-t[1];return Math.sqrt(i*i+s*s)}}let Bd=function(e){return e.CYLINDER="cylinder",e.SQUARECOLUMN="squareColumn",e.TRIANGLECOLUMN="triangleColumn",e.HEXAGONCOLUMN="hexagonColumn",e.PENTAGONCOLUMN="pentagonColumn",e}({}),Ud=function(e){return e.CIRCLE="circle",e.SQUARE="square",e.TRIANGLE="triangle",e.HEXAGON="hexagon",e.PENTAGON="pentagon",e}({});function Ly(e,t=0){const r=Math.PI*2/e,i=[];for(let u=0;u{const n=Math.sin(u+Math.PI/4),y=Math.cos(u+Math.PI/4);return[n,y,0]})}function H2(){return Ly(30)}function E4(){return Ly(4)}function x4(){return Ly(3)}function P4(){return Ly(6,1)}function b4(){return Ly(5)}const M0={[Ud.CIRCLE]:H2,[Ud.HEXAGON]:P4,[Ud.TRIANGLE]:x4,[Ud.SQUARE]:E4,[Ud.PENTAGON]:b4,[Bd.CYLINDER]:H2,[Bd.HEXAGONCOLUMN]:P4,[Bd.TRIANGLECOLUMN]:x4,[Bd.SQUARECOLUMN]:E4,[Bd.PENTAGONCOLUMN]:b4};function mI(e){const t=e[0][0],r=e[0][e[0].length-1];t[0]===r[0]&&t[1]===r[1]&&(e[0]=e[0].slice(0,e[0].length-1));const i=e[0].length,s=Ml.flatten(e),{vertices:u,dimensions:n}=s,y=[],m=[];for(let x=0;xI+R))}return{positions:y,index:m}}function _I(e){const t=Ml.flatten(e),r=Ml(t.vertices,t.holes,t.dimensions);return{positions:t.vertices,index:r}}function K9(e,t=!1){const r=e[0][0],i=e[0][e[0].length-1];r[0]===i[0]&&r[1]===i[1]&&(e[0]=e[0].slice(0,e[0].length-1));const s=e[0].length,u=Ml.flatten(e),{vertices:n,dimensions:y,holes:m}=u,g=[],x=[],b=[];for(let R=0;RQ+V))}return{positions:g,index:x,normals:b}}function gI(e,t,r,i=!1){const s=Ph(),u=Ph(),n=Ph();i&&(e=Wh(e),t=Wh(t),r=Wh(r));const y=dp(...e),m=dp(...t),g=dp(...r);C3(s,g,m),C3(u,y,m),Sv(n,s,u);const x=Ph();return $d(x,n),x}const Dh={};function d1(e){const t=h1(e.coordinates);return{vertices:[...t,...t,...t,...t],indices:[0,1,2,2,3,0],size:t.length}}function A4(e){const t=h1(e.coordinates),r=q9(t);return{vertices:[...r,...r,...r,...r],indices:[0,1,2,2,3,0],size:r.length}}function B6(e){const{shape:t}=e,{positions:r,index:i,normals:s}=AI(t,!1);return{vertices:r,indices:i,normals:s,size:5}}function vI(e){const t=h1(e.coordinates);return{vertices:[...t],indices:[0],size:t.length}}function G2(e){const{coordinates:t}=e,r=new fI({dash:!0,join:"bevel"});let i=t;i[0]&&!Array.isArray(i[0][0])&&(i=[t]),i.forEach(u=>{r.extrude(u)});const s=r.complex;return{vertices:s.positions,indices:s.indices,normals:s.normals,indexes:s.indexes,size:6}}function EI(e){const{coordinates:t}=e,r=[];if(!Array.isArray(t[0]))return{vertices:[],indices:[],normals:[],size:6,count:0};const{results:i,totalDistance:s}=xI(t);return i.map(u=>{r.push(u[0],u[1],u[2],u[3],0,s)}),{vertices:r,indices:[],normals:[],size:6,count:i.length}}function F4(e,t){const r=t[0]-e[0],i=t[1]-e[1];return Math.sqrt(r*r+i*i)}function Jm(e,t){return e.length<3&&e.push(0),t!==void 0&&e.push(t),e}function xI(e){let t=e;Array.isArray(t)&&Array.isArray(t[0])&&Array.isArray(t[0][0])&&(t=e.flat());let r=0;if(t.length<2)return{results:t,totalDistance:0};{const i=[],s=Jm(t[0],r);i.push(s);for(let n=1;nn*2+y));return{vertices:s,indices:u,size:7}}function T4(e){const t=e.coordinates;t.length===2&&t.push(0);const r=Oh(-1,1),i=Oh(1,1),s=Oh(-1,-1),u=Oh(1,-1);return{vertices:[...t,...r,...t,...s,...t,...u,...t,...i],indices:[0,1,2,3,0,2],size:5}}function AI(e,t=!1){if(Dh&&Dh[e])return Dh[e];const r=M0[e]?M0[e]():M0.cylinder(),i=K9([r],t);return Dh[e]=i,i}function FI(e){const t=["cylinder","triangleColumn","hexagonColumn","squareColumn"],r=M0[e]?M0[e]():M0.circle();return t.indexOf(e)===-1?_I([r]):mI([r])}function Oh(e,t){const r=(e+1)/2,i=(t+1)/2;return[r,i]}function e7(e,t){return{type:e.type,field:"value",items:e.positions.map((r,i)=>({[t]:i>=e.colors.length?null:e.colors[i],value:r}))}}const TI=`in vec4 v_color; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { outputColor = v_color; outputColor = filterColor(outputColor); } `,SI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; layout(std140) uniform commonUniforms { vec2 u_radius; float u_opacity; float u_coverage; float u_angle; }; out vec4 v_color; #pragma include "projection" #pragma include "project" #pragma include "picking" void main() { v_color = a_Color; v_color.a *= u_opacity; mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); vec2 offset = a_Position.xy * u_radius * rotationMatrix * u_coverage; vec2 lnglat = unProjectFlat(a_Pos.xy + offset); vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); gl_Position = project_common_position_to_clipspace(project_pos); setPickingColor(a_PickingColor); } `;class wI extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,POS:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapGrid",vertexShader:SI,fragmentShader:TI,defines:t.getDefines(),triangulation:J9,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.POS,name:"a_Pos",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}const RI=`in vec4 v_color; layout(std140) uniform commonUniforms { vec2 u_radius; float u_opacity; float u_coverage; float u_angle; }; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { outputColor = v_color; outputColor = filterColor(outputColor); } `,CI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniforms { vec2 u_radius; float u_opacity; float u_coverage; float u_angle; }; out vec4 v_color; #pragma include "projection" #pragma include "project" #pragma include "light" #pragma include "picking" void main() { mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); vec2 offset = vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage); vec2 lnglat = unProjectFlat(a_Pos.xy + offset); // 实际的经纬度 vec4 project_pos = project_position(vec4(lnglat, a_Position.z * a_Size, 1.0)); float lightWeight = calc_lighting(project_pos); v_color = vec4(a_Color.rgb * lightWeight, a_Color.w); gl_Position = project_common_position_to_clipspace(project_pos); setPickingColor(a_PickingColor); } `;class II extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,POS:10,NORMAL:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapGrid3d",vertexShader:CI,fragmentShader:RI,defines:t.getDefines(),triangulation:B6,primitive:L.TRIANGLES,depth:{enable:!0}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.SIZE,name:"a_Size",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}function MI(e,t){const r=[],i=[],s=[],u=e+1,n=t+1,y=e/2,m=t/2;for(let g=0;g 1 的 uv 转换为 -1 -> 1 的标准坐标空间(NDC) vec4 p1 = vec4(pos, 0.0, 1.0); // x/y 平面上的点(z == 0)可以认为是三维上的点被投影到平面后的点 vec4 p2 = vec4(pos, 1.0, 1.0); // 平行于x/y平面、z==1 的平面上的点 vec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // 根据视图投影矩阵的逆矩阵平面上的反算出三维空间中的点(p1平面上的点) vec4 inverseP2 = u_InverseViewProjectionMatrix * p2; inverseP1 = inverseP1 / inverseP1.w; // 归一化操作(归一化后为世界坐标) inverseP2 = inverseP2 / inverseP2.w; float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ?? vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1); vec4 b = vec4(0.5, 0.0, 1.0, 0.5); float fh; v_intensity = texture(SAMPLER_2D(u_texture), v_texCoord).r; fh = toBezier(v_intensity, b).y; gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.0), 1.0); } `,OI=`uniform sampler2D u_texture; // 热力强度图 uniform sampler2D u_colorTexture; // 根据强度分布的色带 layout(std140) uniform commonUniforms { float u_opacity; float u_common_uniforms_padding1; float u_common_uniforms_padding2; float u_common_uniforms_padding3; }; in vec2 v_texCoord; out vec4 outputColor; #pragma include "scene_uniforms" float getBlurIndusty() { float vW = 2.0/ u_ViewportSize.x; float vH = 2.0/ u_ViewportSize.y; vec2 vUv = v_texCoord; float i11 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r; float i12 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r; float i13 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r; float i21 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y) ).r; float i22 = texture(SAMPLER_2D(u_texture), vec2( vUv.x , vUv.y) ).r; float i23 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y) ).r; float i31 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r; float i32 = texture(SAMPLER_2D(u_texture), vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r; float i33 = texture(SAMPLER_2D(u_texture), vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r; return( i11 + i12 + i13 + i21 + i21 + i22 + i23 + i31 + i32 + i33 )/9.0; } void main(){ // float intensity = texture(u_texture, v_texCoord).r; float intensity = getBlurIndusty(); vec4 color = texture(SAMPLER_2D(u_colorTexture), vec2(intensity, 0.0)); outputColor = color; outputColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity; } `,LI=`layout(location = 0) in vec3 a_Position; layout(location = 10) in vec2 a_Uv; layout(std140) uniform commonUniforms { float u_opacity; float u_common_uniforms_padding1; float u_common_uniforms_padding2; float u_common_uniforms_padding3; }; #pragma include "scene_uniforms" out vec2 v_texCoord; void main() { v_texCoord = a_Uv; #ifdef VIEWPORT_ORIGIN_TL v_texCoord.y = 1.0 - v_texCoord.y; #endif gl_Position = vec4(a_Position.xy, 0, 1.0); } `,BI=`layout(std140) uniform commonUniforms { float u_radius; float u_intensity; float u_common_uniforms_padding1; float u_common_uniforms_padding2; }; in vec2 v_extrude; in float v_weight; out vec4 outputColor; #define GAUSS_COEF 0.3989422804014327 void main(){ float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude); float val = v_weight * u_intensity * GAUSS_COEF * exp(d); outputColor = vec4(val, 1., 1., 1.); } `,UI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_DIR) in vec2 a_Dir; layout(std140) uniform commonUniforms { float u_radius; float u_intensity; float u_common_uniforms_padding1; float u_common_uniforms_padding2; }; out vec2 v_extrude; out float v_weight; #define GAUSS_COEF (0.3989422804014327) #pragma include "projection" #pragma include "picking" void main() { vec3 picking_color_placeholder = u_PickingColor; v_weight = a_Size; float ZERO = 1.0 / 255.0 / 16.0; float extrude_x = a_Dir.x * 2.0 - 1.0; float extrude_y = a_Dir.y * 2.0 - 1.0; vec2 extrude_dir = normalize(vec2(extrude_x, extrude_y)); float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5; v_extrude = extrude_dir * S; vec2 offset = project_pixel(v_extrude * u_radius); vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0)); } `,{isEqual:kI}=Qn;class S4 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"colorTexture",void 0),H(this,"heatmapFramerBuffer",void 0),H(this,"heatmapTexture",void 0),H(this,"intensityModel",void 0),H(this,"colorModel",void 0),H(this,"shapeType",void 0),H(this,"preRampColors",void 0),H(this,"colorModelUniformBuffer",[]),H(this,"heat3DModelUniformBuffer",[])}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,UV:10,DIR:11})}prerender(){const{clear:t,useFramebuffer:r}=this.rendererService;r(this.heatmapFramerBuffer,()=>{t({color:[0,0,0,0],depth:1,stencil:0,framebuffer:this.heatmapFramerBuffer}),this.drawIntensityMode()})}render(t){const{rampColors:r}=this.layer.getLayerConfig();kI(this.preRampColors,r)||this.updateColorTexture(),this.shapeType==="heatmap"?this.drawHeatMap(t):this.draw3DHeatMap(t)}getUninforms(){throw new Error("Method not implemented.")}initModels(){var t=this;return mt(function*(){var r;const{createFramebuffer:i,getViewportSize:s,createTexture2D:u}=t.rendererService,n=t.styleAttributeService.getLayerStyleAttribute("shape"),y=(n==null||(r=n.scale)===null||r===void 0?void 0:r.field)||"heatmap";t.shapeType=y,t.intensityModel=yield t.buildHeatMapIntensity(),t.colorModel=y==="heatmap"?t.buildHeatmap():t.build3dHeatMap();const{width:m,height:g}=s();return t.heatmapTexture=u({width:Math.floor(m/4),height:Math.floor(g/4),wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.LINEAR,mag:L.LINEAR,usage:f1.RENDER_TARGET}),t.heatmapFramerBuffer=i({color:t.heatmapTexture,depth:!0,width:Math.floor(m/4),height:Math.floor(g/4)}),t.updateColorTexture(),[t.intensityModel,t.colorModel]})()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"dir",type:br.Attribute,descriptor:{name:"a_Dir",shaderLocation:this.attributeLocation.DIR,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return[r]}}})}buildHeatMapIntensity(){var t=this;return mt(function*(){return t.uniformBuffers=[t.rendererService.createBuffer({data:new Float32Array(4).fill(0),isUBO:!0})],t.layer.triangulation=T4,yield t.layer.buildLayerModel({moduleName:"heatmapIntensity",vertexShader:UI,fragmentShader:BI,triangulation:T4,defines:t.getDefines(),depth:{enable:!1},cull:{enable:!0,face:L.FRONT}})})()}buildHeatmap(){this.shaderModuleService.registerModule("heatmapColor",{vs:LI,fs:OI}),this.colorModelUniformBuffer=[this.rendererService.createBuffer({data:new Float32Array(4).fill(0),isUBO:!0})];const{vs:t,fs:r,uniforms:i}=this.shaderModuleService.getModule("heatmapColor"),{createAttribute:s,createElements:u,createBuffer:n,createModel:y}=this.rendererService;return y({vs:t,fs:r,uniformBuffers:[...this.colorModelUniformBuffer,...this.rendererService.uniformBuffers],attributes:{a_Position:s({shaderLocation:this.attributeLocation.POSITION,buffer:n({data:[-1,1,0,1,1,0,-1,-1,0,1,-1,0],type:L.FLOAT}),size:3}),a_Uv:s({shaderLocation:this.attributeLocation.UV,buffer:n({data:[0,1,1,1,0,0,1,0],type:L.FLOAT}),size:2})},uniforms:_t({},i),depth:{enable:!1},elements:u({data:[0,2,1,2,3,1],type:L.UNSIGNED_INT,count:6})})}build3dHeatMap(){const{getViewportSize:t}=this.rendererService,{width:r,height:i}=t(),s=MI(r/4,i/4);this.shaderModuleService.registerModule("heatmap3dColor",{vs:DI,fs:NI}),this.heat3DModelUniformBuffer=[this.rendererService.createBuffer({data:new Float32Array(16*2+4).fill(0),isUBO:!0})];const{vs:u,fs:n,uniforms:y}=this.shaderModuleService.getModule("heatmap3dColor"),{createAttribute:m,createElements:g,createBuffer:x,createModel:b}=this.rendererService;return b({vs:u,fs:n,attributes:{a_Position:m({shaderLocation:this.attributeLocation.POSITION,buffer:x({data:s.vertices,type:L.FLOAT}),size:3}),a_Uv:m({shaderLocation:this.attributeLocation.UV,buffer:x({data:s.uvs,type:L.FLOAT}),size:2})},primitive:L.TRIANGLES,uniformBuffers:[...this.heat3DModelUniformBuffer,...this.rendererService.uniformBuffers],uniforms:_t({},y),depth:{enable:!0},blend:{enable:!0,func:{srcRGB:L.SRC_ALPHA,srcAlpha:1,dstRGB:L.ONE_MINUS_SRC_ALPHA,dstAlpha:1}},elements:g({data:s.indices,type:L.UNSIGNED_INT,count:s.indices.length})})}drawIntensityMode(){var t;const{intensity:r=10,radius:i=5}=this.layer.getLayerConfig(),s={u_radius:i,u_intensity:r};this.uniformBuffers[0].subData({offset:0,data:[i,r]}),this.layerService.beforeRenderData(this.layer),this.layer.hooks.beforeRender.call(),(t=this.intensityModel)===null||t===void 0||t.draw({uniforms:s,blend:{enable:!0,func:{srcRGB:L.ONE,srcAlpha:1,dstRGB:L.ONE,dstAlpha:1}},stencil:{enable:!1,mask:255,func:{cmp:514,ref:1,mask:255}}}),this.layer.hooks.afterRender.call()}drawHeatMap(t){var r;const{opacity:i=1}=this.layer.getLayerConfig(),s={u_opacity:i,u_colorTexture:this.colorTexture,u_texture:this.heatmapFramerBuffer},u=[this.heatmapTexture,this.colorTexture];this.colorModelUniformBuffer[0].subData({offset:0,data:[i]}),(r=this.colorModel)===null||r===void 0||r.draw({uniforms:s,textures:u,blend:this.getBlend(),stencil:this.getStencil(t)})}draw3DHeatMap(t){var r;const{opacity:i=1}=this.layer.getLayerConfig(),s=Vf();o6(s,this.cameraService.getViewProjectionMatrixUncentered());const u={u_opacity:i,u_colorTexture:this.colorTexture,u_texture:this.heatmapFramerBuffer,u_ViewProjectionMatrixUncentered:this.cameraService.getViewProjectionMatrixUncentered(),u_InverseViewProjectionMatrix:[...s]};this.heat3DModelUniformBuffer[0].subData({offset:0,data:[...u.u_ViewProjectionMatrixUncentered,...u.u_InverseViewProjectionMatrix,i]});const n=[this.heatmapTexture,this.colorTexture];(r=this.colorModel)===null||r===void 0||r.draw({uniforms:u,textures:n,blend:{enable:!0,func:{srcRGB:L.SRC_ALPHA,srcAlpha:1,dstRGB:L.ONE_MINUS_SRC_ALPHA,dstAlpha:1}},stencil:this.getStencil(t)})}updateColorTexture(){const{createTexture2D:t}=this.rendererService;this.texture&&this.texture.destroy();const{rampColors:r}=this.layer.getLayerConfig(),i=t8(r);this.colorTexture=t({data:i.data,usage:f1.SAMPLED,width:i.width,height:i.height,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.NEAREST,mag:L.NEAREST,flipY:!1,unorm:!0}),this.preRampColors=r}}const zI=`in vec4 v_color; #pragma include "picking" out vec4 outputColor; void main() { outputColor = v_color; outputColor = filterColor(outputColor); } `,VI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; layout(std140) uniform commonUniforms { vec2 u_radius; float u_opacity; float u_coverage; float u_angle; }; out vec4 v_color; #pragma include "projection" #pragma include "project" #pragma include "picking" void main() { v_color = a_Color; v_color.a *= u_opacity; mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); vec2 offset = vec2(a_Position.xy * u_radius * rotationMatrix * u_coverage); vec2 lnglat = unProjectFlat(a_Pos.xy + offset); vec4 project_pos = project_position(vec4(lnglat, 0, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); setPickingColor(a_PickingColor); } `;class HI extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,POS:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t,coverage:r,angle:i}=this.layer.getLayerConfig(),s={u_radius:[this.layer.getSource().data.xOffset,this.layer.getSource().data.yOffset],u_opacity:t||1,u_coverage:r||.9,u_angle:i||0};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"heatmapHexagon",vertexShader:VI,fragmentShader:zI,defines:t.getDefines(),triangulation:J9,depth:{enable:!1},primitive:L.TRIANGLES})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=t.coordinates;return[r[0],r[1],0]}}})}}const GI={heatmap:S4,heatmap3d:S4,grid:wI,grid3d:II,hexagon:HI};class jI extends A1{constructor(...t){super(...t),H(this,"type","HeatMapLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new GI[r](t),yield t.initLayerModels()})()}prerender(){this.getModelType()==="heatmap"&&this.layerModel&&this.layerModel.prerender()}renderModels(t={}){return this.getModelType()==="heatmap"?(this.layerModel&&this.layerModel.render(t),this):this.encodeDataLength<=0&&!this.forceRender?this:(this.hooks.beforeRender.call(),this.models.forEach(i=>i.draw({uniforms:this.layerModel.getUninforms(),blend:this.layerModel.getBlend(),stencil:this.layerModel.getStencil(t)})),this.hooks.afterRender.call(),this)}updateModelData(t){t.attributes&&t.elements?this.models[0].updateAttributesAndElements(t.attributes,t.elements):console.warn("data error")}getModelType(){var t;const r=this.styleAttributeService.getLayerStyleAttribute("shape"),{shape3d:i}=this.getLayerConfig(),u=this.getSource().data.type,n=(r==null||(t=r.scale)===null||t===void 0?void 0:t.field)||"heatmap";return n==="heatmap"||n==="heatmap3d"?"heatmap":u==="hexagon"?(i==null?void 0:i.indexOf(n))===-1?"hexagon":"grid3d":u==="grid"?(i==null?void 0:i.indexOf(n))===-1?"grid":"grid3d":"heatmap"}getLegend(t){if(this.getModelType()==="heatmap"){if(t!=="color")return{type:void 0,field:void 0,items:[]};const r=this.getLayerConfig().rampColors;return e7(r,t)}else return super.getLegend(t)}}const WI=`uniform sampler2D u_texture; layout(std140) uniform commonUniforms { float u_opacity:1.0; float u_brightness:1.0; float u_contrast:1.0; float u_saturation:1.0; float u_gamma:1.0; }; in vec2 v_texCoord; out vec4 outputColor; vec3 setContrast(vec3 rgb, float contrast) { vec3 color = mix(vec3(0.5), rgb, contrast); color = clamp(color, 0.0, 1.0); return color; } vec3 setSaturation(vec3 rgb, float adjustment) { const vec3 grayVector = vec3(0.2125, 0.7154, 0.0721); vec3 intensity = vec3(dot(rgb, grayVector)); vec3 color = mix(intensity, rgb, adjustment); color = clamp(color, 0.0, 1.0); return color; } void main() { vec4 color = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y)); //brightness color.rgb = mix(vec3(0.0, 0.0, 0.0), color.rgb, u_brightness); //contrast color.rgb = setContrast(color.rgb, u_contrast); // saturation color.rgb = setSaturation(color.rgb, u_saturation); // gamma color.rgb = pow(color.rgb, vec3(u_gamma)); outputColor = color; outputColor.a *= u_opacity; if(outputColor.a < 0.01) discard; } `,XI=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { float u_opacity:1.0; float u_brightness:1.0; float u_contrast:1.0; float u_saturation:1.0; float u_gamma:1.0; }; out vec2 v_texCoord; #pragma include "projection" void main() { v_texCoord = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); } `;let ZI=class extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getCommonUniformsInfo(){const{opacity:t,brightness:r,contrast:i,saturation:s,gamma:u}=this.layer.getLayerConfig(),n={u_opacity:Td(t,1),u_brightness:Td(r,1),u_contrast:Td(i,1),u_saturation:Td(s,1),u_gamma:Td(u,1)};return this.textures=[this.texture],this.getUniformsBufferInfo(n)}initModels(){var t=this;return mt(function*(){return yield t.loadTexture(),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}loadTexture(){var t=this;return mt(function*(){const{createTexture2D:r}=t.rendererService,s=yield t.layer.getSource().data.images;t.texture=r({data:s[0],width:s[0].width,height:s[0].height,mag:L.LINEAR,min:L.LINEAR})})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"rasterImage",vertexShader:XI,fragmentShader:WI,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,blend:{enable:!0},depth:{enable:!1},pickingEnabled:!1})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}};const YI={image:ZI};class $I extends A1{constructor(...t){super(...t),H(this,"type","ImageLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new YI[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{image:{}}[t]}getModelType(){return"image"}}const qI=` #define Animate 0.0 #define LineTexture 1.0 uniform sampler2D u_texture; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float segmentNumber; float u_lineDir: 1.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_blur : 0.9; float u_line_type: 0.0; float u_time; float u_linearColor: 0.0; }; in vec4 v_color; in vec2 v_iconMapUV; in vec4 v_lineData; //dash in vec4 v_dash_array; in float v_distance_ratio; out vec4 outputColor; #pragma include "picking" void main() { if(u_dash_array!=vec4(0.0)){ float dashLength = mod(v_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w); if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) { discard; }; } float animateSpeed = 0.0; // 运动速度 outputColor = v_color; if(u_animate.x == Animate && u_line_texture != LineTexture) { animateSpeed = u_time / u_animate.y; float alpha =1.0 - fract( mod(1.0- v_lineData.b, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y); alpha = (alpha + u_animate.w -1.0) / u_animate.w; // alpha = smoothstep(0., 1., alpha); alpha = clamp(alpha, 0.0, 1.0); outputColor.a *= alpha; } // 当存在贴图时在底色上贴上贴图 if(u_line_texture == LineTexture) { // while load texture float arcRadio = smoothstep( 0.0, 1.0, (v_lineData.r / segmentNumber)); // float arcRadio = smoothstep( 0.0, 1.0, d_distance_ratio); float count = v_lineData.g; // 贴图在弧线上重复的数量 float time = 0.0; if(u_animate.x == Animate) { time = u_time / u_animate.y; } float redioCount = arcRadio * count; float u = fract(redioCount - time); float v = v_lineData.a; // 横向 v vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.; vec4 pattern = texture(SAMPLER_2D(u_texture), uv); if(u_animate.x == Animate) { float currentPlane = floor(redioCount - time); float textureStep = floor(count * u_animate.z); float a = mod(currentPlane, textureStep); if(a < textureStep - 1.0) { pattern = vec4(0.0); } } if(u_textureBlend == 0.0) { // normal pattern.a = 0.0; outputColor = filterColor(outputColor + pattern); } else { // replace pattern.a *= v_color.a; if(outputColor.a <= 0.0) { pattern.a = 0.0; } outputColor = filterColor(pattern); } } else { outputColor = filterColor(outputColor); } }`,KI=`#define Animate (0.0) #define LineTexture (1.0) layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float segmentNumber; float u_lineDir: 1.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_blur : 0.9; float u_line_type: 0.0; float u_time; float u_linearColor: 0.0; }; out vec4 v_color; out vec2 v_iconMapUV; out vec4 v_lineData; //dash out vec4 v_dash_array; out float v_distance_ratio; #pragma include "projection" #pragma include "project" #pragma include "picking" float bezier3(vec3 arr, float t) { float ut = 1.0 - t; return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t; } vec2 midPoint(vec2 source, vec2 target, float arcThetaOffset) { vec2 center = target - source; float r = length(center); float theta = atan(center.y, center.x); float thetaOffset = arcThetaOffset; float r2 = r / 2.0 / cos(thetaOffset); float theta2 = theta + thetaOffset; vec2 mid = vec2(r2 * cos(theta2) + source.x, r2 * sin(theta2) + source.y); if (u_lineDir == 1.0) { // 正向 return mid; } else { // 逆向 // (mid + vmin)/2 = (s + t)/2 vec2 vmid = source + target - mid; return vmid; } // return mid; } float getSegmentRatio(float index) { // dash: index / (segmentNumber - 1.); // normal: smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0)); // return index / (segmentNumber - 1.); } vec2 interpolate(vec2 source, vec2 target, float t, float arcThetaOffset) { // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation vec2 mid = midPoint(source, target, arcThetaOffset); vec3 x = vec3(source.x, mid.x, target.x); vec3 y = vec3(source.y, mid.y, target.y); return vec2(bezier3(x, t), bezier3(y, t)); } vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0; return offset; } vec2 getNormal(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); return dir_screenspace.xy * sign(offset_direction); } void main() { //vs中计算渐变色 if (u_linearColor == 1.0) { float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置 v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex / segmentNumber); } else { v_color = a_Color; } v_color.a = v_color.a * opacity; vec2 source_world = a_Instance.rg; // 起始点 vec2 target_world = a_Instance.ba; // 终点 float segmentIndex = a_Position.x; float segmentRatio = getSegmentRatio(segmentIndex); // 计算 dashArray 和 distanceRatio 输出到片元 float total_Distance = pixelDistance(source_world, target_world) / 2.0 * PI; v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / total_Distance; v_distance_ratio = segmentIndex / segmentNumber; float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); float d_distance_ratio; if(u_animate.x == Animate) { d_distance_ratio = segmentIndex / segmentNumber; if(u_lineDir != 1.0) { d_distance_ratio = 1.0 - d_distance_ratio; } } v_lineData.b = d_distance_ratio; vec4 source = project_position(vec4(source_world, 0, 1.), a_Instance64Low.xy); vec4 target = project_position(vec4(target_world, 0, 1.), a_Instance64Low.zw); vec2 currPos = interpolate(source.xy, target.xy, segmentRatio, thetaOffset); vec2 nextPos = interpolate(source.xy, target.xy, nextSegmentRatio, thetaOffset); vec2 offset = project_pixel( getExtrusionOffset((nextPos.xy - currPos.xy) * indexDir, a_Position.y) ); float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置 v_lineData.r = d_segmentIndex; if(LineTexture == u_line_texture) { // 开启贴图模式 float arcDistrance = length(source - target); // 起始点和终点的距离 arcDistrance = project_pixel(arcDistrance); v_iconMapUV = a_iconMapUV; float pixelLen = project_pixel_texture(u_icon_step); // 贴图沿弧线方向的长度 - 随地图缩放改变 float texCount = floor(arcDistrance / pixelLen); // 贴图在弧线上重复的数量 v_lineData.g = texCount; float lineOffsetWidth = length(offset + offset * sign(a_Position.y)); // 线横向偏移的距离 float linePixelSize = project_pixel(a_Size); // 定点位置偏移 v_lineData.a = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值 } gl_Position = project_common_position_to_clipspace(vec4(currPos.xy + offset, 0, 1.0)); setPickingColor(a_PickingColor); } `,QI={solid:0,dash:1};class JI extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12,THETA_OFFSET:13})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],forward:n=!0,lineTexture:y=!1,iconStep:m=100,segmentNumber:g=30}=this.layer.getLayerConfig(),{animateOption:x}=this.layer.getLayerConfig();let b=u;s!=="dash"&&(b=[0,0]),b.length===2&&b.push(0,0);let F=0,R=[0,0,0,0],I=[0,0,0,0];if(t&&r&&(R=Mi(t),I=Mi(r),F=1),this.rendererService.getDirty()){var U;(U=this.texture)===null||U===void 0||U.bind()}const V={u_animate:this.animateOption2Array(x),u_dash_array:b,u_sourceColor:R,u_targetColor:I,u_textSize:[1024,this.iconService.canvasHeight||128],segmentNumber:g,u_lineDir:n?1:-1,u_icon_step:m,u_line_texture:y?1:0,u_textureBlend:i==="normal"?0:1,u_blur:.9,u_line_type:QI[s||"solid"],u_time:this.layer.getLayerAnimateTime()||0,u_linearColor:F};return this.getUniformsBufferInfo(V)}initModels(){var t=this;return mt(function*(){return t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}getShaders(){return{frag:qI,vert:KI,type:""}}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const{segmentNumber:r=30}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:"lineArc2d"+u,vertexShader:s,fragmentShader:i,defines:t.getDefines(),inject:t.getInject(),triangulation:U6,depth:{enable:!1},styleOption:{segmentNumber:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"thetaOffset",type:br.Attribute,descriptor:{name:"a_ThetaOffset",shaderLocation:this.attributeLocation.THETA_OFFSET,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{thetaOffset:r=1}=t;return[r]}}})}}const eM=`#define LineTypeSolid 0.0 #define LineTypeDash 1.0 #define Animate 0.0 #define LineTexture 1.0 uniform sampler2D u_texture; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array: [10.0, 5., 0, 0]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_globel; float u_globel_radius; float u_global_height: 10; float segmentNumber; float u_line_type: 0.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_time; float u_linearColor: 0.0; }; in vec4 v_color; in vec4 v_dash_array; in float v_segmentIndex; in vec2 v_iconMapUV; in vec4 v_line_data; out vec4 outputColor; #pragma include "picking" void main() { float animateSpeed = 0.0; // 运动速度 float d_distance_ratio = v_line_data.g; // 当前点位距离占线总长的比例 outputColor = v_color; if(u_line_type == LineTypeDash) { float flag = 0.; float dashLength = mod(d_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w); if(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z)) { flag = 1.; } outputColor.a *=flag; } if(u_animate.x == Animate && u_line_texture != LineTexture) { animateSpeed = u_time / u_animate.y; float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y); alpha = (alpha + u_animate.w -1.0) / u_animate.w; // alpha = smoothstep(0., 1., alpha); alpha = clamp(alpha, 0.0, 1.0); outputColor.a *= alpha; // u_animate // x enable // y duration // z interval // w trailLength } if(u_line_texture == LineTexture && u_line_type != LineTypeDash) { // while load texture // float arcRadio = smoothstep( 0.0, 1.0, (v_segmentIndex / segmentNumber)); float arcRadio = v_segmentIndex / (segmentNumber - 1.0); float count = v_line_data.b; // // 贴图在弧线上重复的数量 float time = 0.0; if(u_animate.x == Animate) { time = u_time / u_animate.y; } float redioCount = arcRadio * count; float u = fract(redioCount - time); float v = v_line_data.a; // 线图层贴图部分的 v 坐标值 vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.; vec4 pattern = texture(SAMPLER_2D(u_texture), uv); if(u_animate.x == Animate) { float currentPlane = floor(redioCount - time); float textureStep = floor(count * u_animate.z); float a = mod(currentPlane, textureStep); if(a < textureStep - 1.0) { pattern = vec4(0.0); } } if(u_textureBlend == 0.0) { // normal pattern.a = 0.0; outputColor = filterColor(outputColor + pattern); } else { // replace pattern.a *= v_color.a; if(outputColor.a <= 0.0) { pattern.a = 0.0; discard; } else { outputColor = filterColor(pattern); } } } else { outputColor = filterColor(outputColor); } } `,tM=`#define LineTypeSolid 0.0 #define LineTypeDash 1.0 #define Animate 0.0 #define LineTexture 1.0 layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array: [10.0, 5., 0, 0]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_globel; float u_globel_radius; float u_global_height: 10; float segmentNumber; float u_line_type: 0.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_time; float u_linearColor: 0.0; }; out vec4 v_color; out vec4 v_dash_array; out float v_segmentIndex; out vec2 v_iconMapUV; out vec4 v_line_data; #pragma include "projection" #pragma include "project" #pragma include "picking" float maps (float value, float start1, float stop1, float start2, float stop2) { return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1)); } float getSegmentRatio(float index) { return smoothstep(0.0, 1.0, index / (segmentNumber - 1.0)); } float paraboloid(vec2 source, vec2 target, float ratio) { vec2 x = mix(source, target, ratio); vec2 center = mix(source, target, 0.5); float dSourceCenter = distance(source, center); float dXCenter = distance(x, center); return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter); } vec3 getPos(vec2 source, vec2 target, float segmentRatio) { float vertex_height = paraboloid(source, target, segmentRatio); return vec3( mix(source, target, segmentRatio), sqrt(max(0.0, vertex_height)) ); } vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0; return offset; } vec2 getNormal(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); return dir_screenspace.xy * sign(offset_direction); } float torad(float deg) { return (deg / 180.0) * acos(-1.0); } vec3 lglt2xyz(vec2 lnglat) { float pi = 3.1415926; // + Math.PI/2 是为了对齐坐标 float lng = torad(lnglat.x) + pi / 2.0; float lat = torad(lnglat.y); // 手动增加一些偏移,减轻面的冲突 float radius = u_globel_radius; float z = radius * cos(lat) * cos(lng); float x = radius * cos(lat) * sin(lng); float y = radius * sin(lat); return vec3(x, y, z); } void main() { //vs中计算渐变色 if(u_linearColor==1.0){ float d_segmentIndex = a_Position.x + 1.0; // 当前顶点在弧线中所处的分段位置 v_color = mix(u_sourceColor, u_targetColor, d_segmentIndex/segmentNumber); } else{ v_color = a_Color; } v_color.a = v_color.a * opacity; vec2 source = project_position(vec4(a_Instance.rg, 0, 0), a_Instance64Low.xy).xy; vec2 target = project_position(vec4(a_Instance.ba, 0, 0), a_Instance64Low.zw).xy; float segmentIndex = a_Position.x; float segmentRatio = getSegmentRatio(segmentIndex); float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); float d_distance_ratio; if(u_line_type == LineTypeDash) { d_distance_ratio = segmentIndex / segmentNumber; float total_Distance = pixelDistance(source, target) / 2.0 * PI; v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / (total_Distance / segmentNumber * segmentIndex); } if(u_animate.x == Animate) { d_distance_ratio = segmentIndex / segmentNumber; } v_line_data.g = d_distance_ratio; // 当前点位距离占线总长的比例 float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); vec3 curr = getPos(source, target, segmentRatio); vec3 next = getPos(source, target, nextSegmentRatio); vec2 offset = getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y); // v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); v_segmentIndex = a_Position.x; if(LineTexture == u_line_texture && u_line_type != LineTypeDash) { // 开启贴图模式 float arcDistrance = length(source - target); float pixelLen = project_pixel_texture(u_icon_step); v_line_data.b = floor(arcDistrance/pixelLen); // 贴图在弧线上重复的数量 vec2 projectOffset = project_pixel(offset); float lineOffsetWidth = length(projectOffset + projectOffset * sign(a_Position.y)); // 线横向偏移的距离 float linePixelSize = project_pixel(a_Size); // 定点位置偏移,按地图等级缩放后的距离 v_line_data.a = lineOffsetWidth/linePixelSize; // 线图层贴图部分的 v 坐标值 v_iconMapUV = a_iconMapUV; } gl_Position = project_common_position_to_clipspace(vec4(curr.xy + project_pixel(offset), curr.z * thetaOffset, 1.0)); // 地球模式 if(u_globel > 0.0) { vec3 startLngLat = lglt2xyz(a_Instance.rg); vec3 endLngLat = lglt2xyz(a_Instance.ba); float globalRadius = length(startLngLat); vec3 lineDir = normalize(endLngLat - startLngLat); vec3 midPointDir = normalize((startLngLat + endLngLat)/2.0); // 线的偏移 vec3 lnglatOffset = cross(lineDir, midPointDir) * a_Position.y; // 计算起始点和终止点的距离 float lnglatLength = length(a_Instance.rg - a_Instance.ba)/50.0; // 计算飞线各个节点相应的高度 float lineHeight = u_global_height * (-4.0*segmentRatio*segmentRatio + 4.0 * segmentRatio) * lnglatLength; // 地球点位 vec3 globalPoint = normalize(mix(startLngLat, endLngLat, segmentRatio)) * (globalRadius + lineHeight) + lnglatOffset * a_Size; gl_Position = u_ViewProjectionMatrix * vec4(globalPoint, 1.0); } setPickingColor(a_PickingColor); } `,rM={solid:0,dash:1};class w4 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12,THETA_OFFSET:13})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],lineTexture:n=!1,iconStep:y=100,segmentNumber:m=30,globalArcHeight:g=10}=this.layer.getLayerConfig(),{animateOption:x}=this.layer.getLayerConfig();u.length===2&&u.push(0,0);let b=0,F=[0,0,0,0],R=[0,0,0,0];if(t&&r&&(F=Mi(t),R=Mi(r),b=1),this.rendererService.getDirty()){var I;(I=this.texture)===null||I===void 0||I.bind()}const U={u_animate:this.animateOption2Array(x),u_dash_array:u,u_sourceColor:F,u_targetColor:R,u_textSize:[1024,this.iconService.canvasHeight||128],u_globel:this.mapService.version==="GLOBEL"?1:0,u_globel_radius:$9,u_global_height:g,segmentNumber:m,u_line_type:rM[s]||0,u_icon_step:y,u_line_texture:n?1:0,u_textureBlend:i==="normal"?0:1,u_time:this.layer.getLayerAnimateTime()||0,u_linearColor:b};return this.getUniformsBufferInfo(U)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}getShaders(){return{frag:eM,vert:tM,type:""}}buildModels(){var t=this;return mt(function*(){const{segmentNumber:r=30}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:"lineArc3d"+u,vertexShader:s,fragmentShader:i,defines:t.getDefines(),inject:t.getInject(),triangulation:U6,styleOption:{segmentNumber:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"thetaOffset",type:br.Attribute,descriptor:{name:"a_ThetaOffset",shaderLocation:this.attributeLocation.THETA_OFFSET,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{thetaOffset:r=1}=t;return[r]}}})}}const R4={circle:2,triangle:2,diamond:4,rect:2,classic:3,halfTriangle:2,none:0},Xp=1/2;function oM(e,t){const{width:r=2,height:i=1}=t;return{vertices:[0,Xp*e,1*e*r,-(i+Xp)*e,1*e*r,(i-Xp)*e,0,Xp*e,1*e*r,-(i+Xp)*e,1*e*r,(i-Xp)*e],indices:[3,4,5],outLineIndices:[0,1,2],normals:[1*e,-2*e,1,-2*e,1.5*e,1,1*e,1.5*e,1,0,0,0,0,0,0,0,0,0],dimensions:2}}function iM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,1*e*r,1*i,1*e*r,-1*i,0,0,1*e*r,1*i,1*e*r,-1*i],outLineIndices:[0,1,2],indices:[3,4,5],normals:[0,-1.5*e,1,2,1*e,1,-2,1*e,1,0,0,0,0,0,0,0,0,0],dimensions:2}}function nM(e,t){const{width:r=2,height:i=2}=t;return{vertices:[0,i/2,e*r*1,i/2,e*r*1,-i/2,0,-i/2,0,i/2,e*r*1,i/2,e*r*1,-i/2,0,-i/2],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function aM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,1*r*e,.5*i,2*r*e,0,1*r*e,-.5*i,0,0,1*r*e,.5*i,2*r*e,0,1*r*e,-.5*i],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function sM(e,t){const{width:r=2,height:i=3}=t;return{vertices:[0,0,2*e*r,1*i,1.5*e*r,0,2*e*r,-1*i,0,0,2*e*r,1*i,1.5*e*r,0,2*e*r,-1*i],dimensions:2,indices:[4,5,6,4,6,7],outLineIndices:[0,1,2,0,2,3],normals:[0,-e,1,1,0,1,0,-e,1,-1,-0,1,0,0,0,0,0,0,0,0,0,0,0,0]}}function uM(e,t){const{width:r=2,height:i=2}=t,s=H2(),u=Ml.flatten([s]),n=Ml(u.vertices,u.holes,u.dimensions),y=s.map(m=>[m[0]*r*e,m[1]*i]).flat();return{vertices:[...y,...y],dimensions:2,indices:n.map(m=>m+s.length),outLineIndices:n,normals:[...s.map(m=>[m[1]*i,m[0]*r*e,1]).flat(),...new Array(s.length*3).fill(0)]}}function pM(e,t=0,r){const i=typeof r.source=="object"?r.source.type:r.source,s=typeof r.target=="object"?r.target.type:r.target,{width:u=i?R4[i]:0}=typeof r.source=="object"?r.source:{},{width:n=s?R4[s]:0}=typeof r.target=="object"?r.target:{};return{vertices:[0,Xp,1*u,...e,1,Xp,-1*n,...e,1,-.5,-1*n,...e,0,-.5,1*u,...e,0,Xp,1*u,...e,1,Xp,-1*n,...e,1,-.5,-1*n,...e,0,-.5,1*u,...e],outLineIndices:[0,1,2,0,2,3].map(y=>y+t),indices:[4,5,6,4,6,7].map(y=>y+t),normals:[1,-1,1,1,1,1,-1,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,0],dimensions:2}}function C4(e,t){const r=typeof e=="object"?e.type:e,i=t==="source"?1:-1,s=typeof e=="object"?e:{};switch(r){case"circle":return uM(i,s);case"triangle":return iM(i,s);case"diamond":return aM(i,s);case"rect":return nM(i,s);case"classic":return sM(i,s);case"halfTriangle":return oM(i,s);default:return{vertices:[],indices:[],normals:[],dimensions:2,outLineIndices:[],outLineNormals:[]}}}function lM(e){const t=e.coordinates.flat(),r=1;return{vertices:[1,0,0,...t,1,2,-3,...t,1,1,-3,...t,0,1,0,...t,0,0,0,...t,1,0,0,...t,1,2,-3,...t,1,1,-3,...t,0,1,0,...t,0,0,0,...t],normals:[-1,2*r,1,2*r,-1,1,r,-1,1,r,-1,1,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],indices:[0,1,2,0,2,3,0,3,4,5,6,7,5,7,8,5,8,9],size:7}}function cM(e,t){return t?dM(e,t):lM(e)}function dM(e,t){const r=e.coordinates.flat(),{target:i="classic",source:s="circle"}=t,u=I4(C4(s,"source"),r,0,0),n=pM(r,u.vertices.length/7,t),y=I4(C4(i,"target"),r,1,u.vertices.length/7+n.vertices.length/7);return{vertices:[...u.vertices,...n.vertices,...y.vertices],indices:[...u.outLineIndices,...n.outLineIndices,...y.outLineIndices,...u.indices,...n.indices,...y.indices],normals:[...u.normals,...n.normals,...y.normals],size:7}}function I4(e,t,r=1,i=0){const s=[],{vertices:u,indices:n,dimensions:y,outLineIndices:m}=e;for(let g=0;gg+i),outLineIndices:m.map(g=>g+i)})}const yM=`// #extension GL_OES_standard_derivatives : enable in vec4 v_color; out vec4 outputColor; // line texture #pragma include "picking" void main() { outputColor = v_color; outputColor = filterColor(outputColor); } `,hM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniorm { float u_gap_width: 1.0; float u_stroke_width: 1.0; float u_stroke_opacity: 1.0; }; #pragma include "projection" #pragma include "project" #pragma include "picking" out vec4 v_color; vec2 project_pixel_offset(vec2 offsets) { vec2 data = project_pixel(offsets); return vec2(data.x, -data.y); } vec2 line_dir(vec2 target, vec2 source) { return normalize(ProjectFlat(target) - ProjectFlat(source)); } void main() { // 透明度计算 vec2 source_world = a_Instance.rg; // 起点 vec2 target_world = a_Instance.ba; // 终点 vec2 flowlineDir = line_dir(target_world, source_world); vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x); vec2 position = mix(source_world, target_world, a_Position.x); vec2 position64Low = mix(a_Instance64Low.rg, a_Instance64Low.ba, a_Position.x); float lengthCommon = length( project_position(vec4(target_world, 0, 1)) - project_position(vec4(source_world, 0, 1)) ); vec2 offsetDistances = a_Size.x * project_pixel_offset(vec2(a_Position.y, a_Position.z)); // Mapbox || 高德 vec2 limitedOffsetDistances = clamp( offsetDistances, project_pixel(-lengthCommon * 0.2), project_pixel(lengthCommon * 0.2) ); float startOffsetCommon = project_pixel(offsets[0]); float endOffsetCommon = project_pixel(offsets[1]); float endpointOffset = mix( clamp(startOffsetCommon, 0.0, lengthCommon * 0.2), -clamp(endOffsetCommon, 0.0, lengthCommon * 0.2), a_Position.x ); vec2 normalsCommon = u_stroke_width * project_pixel_offset(vec2(a_Normal.x, a_Normal.y)); float gapCommon = -1. * project_pixel(u_gap_width); vec3 offsetCommon = vec3( flowlineDir * (limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) - perpendicularDir * (limitedOffsetDistances[0] + gapCommon + normalsCommon.x), 0.0 ); vec4 project_pos = project_position(vec4(position.xy, 0, 1.0), position64Low); vec4 fillColor = vec4(a_Color.rgb, a_Color.a * opacity); v_color = mix(fillColor, vec4(u_stroke.xyz, u_stroke.w * fillColor.w * u_stroke_opacity), a_Normal.z); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offsetCommon.xy, 0., 1.0)); setPickingColor(a_PickingColor); } `;class fM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,NORMAL:12})}getCommonUniformsInfo(){const{gapWidth:t=2,strokeWidth:r=1,strokeOpacity:i=1}=this.layer.getLayerConfig(),s={u_gap_width:t,u_stroke_width:r,u_stroke_opacity:i};return this.getUniformsBufferInfo(s)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return[yield t.layer.buildLayerModel({moduleName:"flow_line",vertexShader:hM,fragmentShader:yM,defines:t.getDefines(),inject:t.getInject(),triangulation:cM,styleOption:t.layer.getLayerConfig().symbol,primitive:L.TRIANGLES,depth:{enable:!1},pick:!1})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}})}}const mM=`#define LineTypeSolid 0.0 #define LineTypeDash 1.0 #define Animate 0.0 #define LineTexture 1.0 uniform sampler2D u_texture; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array: [10.0, 5., 0, 0]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float segmentNumber; float u_line_type: 0.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_time; float u_linearColor: 0; }; in vec4 v_dash_array; in vec4 v_color; in vec2 v_iconMapUV; in vec4 v_line_data; in float v_distance_ratio; out vec4 outputColor; #pragma include "picking" #pragma include "project" #pragma include "projection" void main() { float animateSpeed = 0.0; float d_segmentIndex = v_line_data.g; // 设置弧线的底色 if(u_linearColor == 1.0) { // 使用渐变颜色 outputColor = mix(u_sourceColor, u_targetColor, d_segmentIndex/segmentNumber); outputColor.a *= v_color.a; } else { // 使用 color 方法传入的颜色 outputColor = v_color; } // float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)); // float blur = smoothstep(1.0, u_blur, length(v_normal.xy)); if(u_line_type == LineTypeDash) { float dashLength = mod(v_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w); if(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z)) { // 实线部分 } else { // 虚线部分 discard; }; } // 设置弧线的动画模式 if(u_animate.x == Animate) { animateSpeed = u_time / u_animate.y; float alpha =1.0 - fract( mod(1.0- v_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + u_time / u_animate.y); alpha = (alpha + u_animate.w -1.0) / u_animate.w; alpha = smoothstep(0., 1., alpha); outputColor.a *= alpha; } // 设置弧线的贴图 if(LineTexture == u_line_texture && u_line_type != LineTypeDash) { float arcRadio = smoothstep( 0.0, 1.0, (d_segmentIndex / (segmentNumber - 1.0))); // float arcRadio = d_segmentIndex / (segmentNumber - 1.0); float count = v_line_data.b; // 贴图在弧线上重复的数量 float u = fract(arcRadio * count - animateSpeed * count); // float u = fract(arcRadio * count - animateSpeed); if(u_animate.x == Animate) { u = outputColor.a/v_color.a; } float v = v_line_data.a; // 线图层贴图部分的 v 坐标值 vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.; vec4 pattern = texture(SAMPLER_2D(u_texture), uv); // 设置贴图和底色的叠加模式 if(u_textureBlend == 0.0) { // normal pattern.a = 0.0; outputColor = filterColor(outputColor + pattern); } else { // replace pattern.a *= v_color.a; if(outputColor.a <= 0.0) { pattern.a = 0.0; } outputColor = filterColor(pattern); } } else { outputColor = filterColor(outputColor); } // gl_FragColor = filterColor(gl_FragColor); } `,_M=`#define LineTypeSolid (0.0) #define LineTypeDash (1.0) #define Animate (0.0) #define LineTexture (1.0) layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_INSTANCE) in vec4 a_Instance; layout(location = ATTRIBUTE_LOCATION_INSTANCE_64LOW) in vec4 a_Instance64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array: [10.0, 5., 0, 0]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float segmentNumber; float u_line_type: 0.0; float u_icon_step: 100; float u_line_texture: 0.0; float u_textureBlend; float u_time; float u_linearColor: 0; }; out vec4 v_dash_array; out vec4 v_color; out vec2 v_iconMapUV; out vec4 v_line_data; out float v_distance_ratio; #pragma include "projection" #pragma include "project" #pragma include "picking" float maps(float value, float start1, float stop1, float start2, float stop2) { return start2 + (stop2 - start2) * ((value - start1) / (stop1 - start1)); } float getSegmentRatio(float index) { return index / (segmentNumber - 1.0); } float paraboloid(vec2 source, vec2 target, float ratio) { vec2 x = mix(source, target, ratio); vec2 center = mix(source, target, 0.5); float dSourceCenter = distance(source, center); float dXCenter = distance(x, center); return (dSourceCenter + dXCenter) * (dSourceCenter - dXCenter); } vec3 getPos(vec2 source, vec2 target, float segmentRatio) { float vertex_height = paraboloid(source, target, segmentRatio); return vec3(mix(source, target, segmentRatio), sqrt(max(0.0, vertex_height))); } vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); vec2 offset = dir_screenspace * offset_direction * setPickingSize(a_Size) / 2.0; return offset; } vec2 getNormal(vec2 line_clipspace, float offset_direction) { // normalized direction of the line vec2 dir_screenspace = normalize(line_clipspace); // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); return dir_screenspace.xy * sign(offset_direction); } float getAngularDist(vec2 source, vec2 target) { vec2 delta = source - target; vec2 sin_half_delta = sin(delta / 2.0); float a = sin_half_delta.y * sin_half_delta.y + cos(source.y) * cos(target.y) * sin_half_delta.x * sin_half_delta.x; return 2.0 * atan(sqrt(a), sqrt(1.0 - a)); } vec2 midPoint(vec2 source, vec2 target) { vec2 center = target - source; float r = length(center); float theta = atan(center.y, center.x); float thetaOffset = 0.314; float r2 = r / 2.0 / cos(thetaOffset); float theta2 = theta + thetaOffset; vec2 mid = vec2(r2 * cos(theta2) + source.x, r2 * sin(theta2) + source.y); return mid; } float bezier3(vec3 arr, float t) { float ut = 1.0 - t; return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t; } vec2 interpolate(vec2 source, vec2 target, float angularDist, float t) { if (abs(angularDist - PI) < 0.001) { return (1.0 - t) * source + t * target; } float a = sin((1.0 - t) * angularDist) / sin(angularDist); float b = sin(t * angularDist) / sin(angularDist); vec2 sin_source = sin(source); vec2 cos_source = cos(source); vec2 sin_target = sin(target); vec2 cos_target = cos(target); float x = a * cos_source.y * cos_source.x + b * cos_target.y * cos_target.x; float y = a * cos_source.y * sin_source.x + b * cos_target.y * sin_target.x; float z = a * sin_source.y + b * sin_target.y; return vec2(atan(y, x), atan(z, sqrt(x * x + y * y))); } void main() { v_color = a_Color; v_color.a = v_color.a * opacity; vec2 source = radians(a_Instance.rg); vec2 target = radians(a_Instance.ba); float angularDist = getAngularDist(source, target); float segmentIndex = a_Position.x; float segmentRatio = getSegmentRatio(segmentIndex); float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); if (u_line_type == LineTypeDash) { v_distance_ratio = segmentIndex / segmentNumber; float total_Distance = pixelDistance(source, target) / 2.0 * PI; total_Distance = total_Distance * 16.0; // total_Distance*16.0 调整默认的效果 v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / total_Distance; } if (u_animate.x == Animate) { v_distance_ratio = segmentIndex / segmentNumber; } float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); v_distance_ratio = segmentIndex / segmentNumber; vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0), a_Instance64Low.xy); vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0), a_Instance64Low.zw); // v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); // vec4 project_pos = project_position(vec4(curr.xy, 0, 1.0)); // gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, curr.z, 1.0)); v_line_data.g = a_Position.x; // 该顶点在弧线上的分段排序 if (LineTexture == u_line_texture) { float d_arcDistrance = length(source - target); d_arcDistrance = project_pixel(d_arcDistrance); float d_pixelLen = project_pixel(u_icon_step) / 8.0; v_line_data.b = floor(d_arcDistrance / d_pixelLen); // 贴图在弧线上重复的数量 float lineOffsetWidth = length(offset + offset * sign(a_Position.y)); // 线横向偏移的距离 float linePixelSize = project_pixel(a_Size); // 定点位置偏移,按地图等级缩放后的距离 v_line_data.a = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值 v_iconMapUV = a_iconMapUV; } gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0)); setPickingColor(a_PickingColor); } `,gM={solid:0,dash:1};class vM extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,INSTANCE:10,INSTANCE_64LOW:11,UV:12})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5],lineTexture:n=!1,iconStep:y=100,segmentNumber:m=30}=this.layer.getLayerConfig(),{animateOption:g}=this.layer.getLayerConfig();if(u.length===2&&u.push(0,0),this.rendererService.getDirty()){var x;(x=this.texture)===null||x===void 0||x.bind()}let b=0,F=[0,0,0,0],R=[0,0,0,0];t&&r&&(F=Mi(t),R=Mi(r),b=1);let I=this.layer.getLayerAnimateTime();isNaN(I)&&(I=0);const U={u_animate:this.animateOption2Array(g),u_dash_array:u,u_sourceColor:F,u_targetColor:R,u_textSize:[1024,this.iconService.canvasHeight||128],segmentNumber:m,u_line_type:gM[s]||0,u_icon_step:y,u_line_texture:n?1:0,u_textureBlend:i==="normal"?0:1,u_time:I,u_linearColor:b};return this.getUniformsBufferInfo(U)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){const{segmentNumber:r=30}=t.layer.getLayerConfig();return[yield t.layer.buildLayerModel({moduleName:"lineGreatCircle",vertexShader:_M,fragmentShader:mM,triangulation:U6,styleOption:{segmentNumber:r},defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"instance",type:br.Attribute,descriptor:{name:"a_Instance",shaderLocation:this.attributeLocation.INSTANCE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[i[3],i[4],i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"instance64Low",type:br.Attribute,descriptor:{name:"a_Instance64Low",shaderLocation:this.attributeLocation.INSTANCE_64LOW,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>[ua(i[3]),ua(i[4]),ua(i[5]),ua(i[6])]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const EM=`// #extension GL_OES_standard_derivatives : enable #define Animate 0.0 #define LineTexture 1.0 uniform sampler2D u_texture; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array; vec4 u_blur; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_icon_step: 100; float u_heightfixed: 0.0; float u_vertexScale: 1.0; float u_raisingHeight: 0.0; float u_strokeWidth: 0.0; float u_textureBlend; float u_line_texture; float u_linearDir: 1.0; float u_linearColor: 0; float u_time; }; in vec4 v_color; in vec4 v_stroke; // dash in vec4 v_dash_array; in float v_d_distance_ratio; in vec2 v_iconMapUV; in vec4 v_texture_data; out vec4 outputColor; #pragma include "picking" // [animate, duration, interval, trailLength], void main() { if(u_dash_array!=vec4(0.0)){ float dashLength = mod(v_d_distance_ratio, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w); if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) { // 虚线部分 discard; }; } float animateSpeed = 0.0; // 运动速度 float d_distance_ratio = v_texture_data.r; // 当前点位距离占线总长的比例 if(u_linearDir < 1.0) { d_distance_ratio = v_texture_data.a; } if(u_linearColor == 1.0) { // 使用渐变颜色 outputColor = mix(u_sourceColor, u_targetColor, d_distance_ratio); outputColor.a *= v_color.a; } else { // 使用 color 方法传入的颜色 outputColor = v_color; } // anti-alias // float blur = 1.0 - smoothstep(u_blur, 1., length(v_normal.xy)); if(u_animate.x == Animate) { animateSpeed = u_time / u_animate.y; float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + animateSpeed); alpha = (alpha + u_animate.w -1.0) / u_animate.w; alpha = smoothstep(0., 1., alpha); outputColor.a *= alpha; } if(u_line_texture == LineTexture) { // while load texture float aDistance = v_texture_data.g; // 当前顶点的距离 float d_texPixelLen = v_texture_data.b; // 贴图的像素长度,根据地图层级缩放 float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed); float v = v_texture_data.a; // 线图层贴图部分的 v 坐标值 // v = max(smoothstep(0.95, 1.0, v), v); vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.; vec4 pattern = texture(SAMPLER_2D(u_texture), uv); if(u_textureBlend == 0.0) { // normal pattern.a = 0.0; outputColor += pattern; } else { // replace pattern.a *= v_color.a; if(outputColor.a <= 0.0) { pattern.a = 0.0; } outputColor = pattern; } } float v = v_texture_data.a; float strokeWidth = min(0.5, u_strokeWidth); // 绘制 border if(strokeWidth > 0.01) { float borderOuterWidth = strokeWidth / 2.0; if(v >= 1.0 - strokeWidth || v <= strokeWidth) { if(v > strokeWidth) { // 外侧 float linear = smoothstep(0.0, 1.0, (v - (1.0 - strokeWidth))/strokeWidth); // float linear = step(0.0, (v - (1.0 - borderWidth))/borderWidth); outputColor.rgb = mix(outputColor.rgb, v_stroke.rgb, linear); } else if(v <= strokeWidth) { float linear = smoothstep(0.0, 1.0, v/strokeWidth); outputColor.rgb = mix(v_stroke.rgb, outputColor.rgb, linear); } } if(v < borderOuterWidth) { outputColor.a = mix(0.0, outputColor.a, v/borderOuterWidth); } else if(v > 1.0 - borderOuterWidth) { outputColor.a = mix(outputColor.a, 0.0, (v - (1.0 - borderOuterWidth))/borderOuterWidth); } } // blur float blurV = v_texture_data.a; if(blurV < 0.5) { outputColor.a *= mix(u_blur.r, u_blur.g, blurV/0.5); } else { outputColor.a *= mix(u_blur.g, u_blur.b, (blurV - 0.5)/0.5); } outputColor = filterColor(outputColor); } `,xM=`#define Animate (0.0) layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; layout(location = ATTRIBUTE_LOCATION_DISTANCE_INDEX) in vec3 a_DistanceAndIndexAndMiter; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec4 a_Normal_Total_Distance; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_dash_array; vec4 u_blur; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_icon_step: 100; float u_heightfixed: 0.0; float u_vertexScale: 1.0; float u_raisingHeight: 0.0; float u_strokeWidth: 0.0; float u_textureBlend; float u_line_texture; float u_linearDir: 1.0; float u_linearColor: 0; float u_time; }; out vec4 v_color; out vec4 v_stroke; //dash out vec4 v_dash_array; out float v_d_distance_ratio; // texV 线图层 - 贴图部分的 v 坐标(线的宽度方向) out vec2 v_iconMapUV; out vec4 v_texture_data; #pragma include "projection" #pragma include "picking" void main() { vec2 a_DistanceAndIndex = a_DistanceAndIndexAndMiter.xy; float a_Miter = a_DistanceAndIndexAndMiter.z; vec3 a_Normal = a_Normal_Total_Distance.xyz; float a_Total_Distance = a_Normal_Total_Distance.w; //dash输出 v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_Total_Distance; v_d_distance_ratio = a_DistanceAndIndex.x / a_Total_Distance; // cal style mapping - 数据纹理映射部分的计算 float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 v_iconMapUV = a_iconMapUV; d_texPixelLen = project_float_pixel(u_icon_step); v_color = a_Color; v_color.a *= opacity; v_stroke = stroke; vec3 size = a_Miter * setPickingSize(a_Size.x) * a_Normal; vec2 offset = project_pixel(size.xy); float lineDistance = a_DistanceAndIndex.x; float currentLinePointRatio = lineDistance / a_Total_Distance; float lineOffsetWidth = length(offset + offset * sign(a_Miter)); // 线横向偏移的距离(向两侧偏移的和) float linePixelSize = project_pixel(a_Size.x) * 2.0; // 定点位置偏移,按地图等级缩放后的距离 单侧 * 2 float texV = lineOffsetWidth / linePixelSize; // 线图层贴图部分的 v 坐标值 v_texture_data = vec4(currentLinePointRatio, lineDistance, d_texPixelLen, texV); // 设置数据集的参数 vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, a_Size.y, 1.0)); float h = float(a_Position.z) * u_vertexScale; // 线顶点的高度 - 兼容不存在第三个数值的情况 vertex height float lineHeight = a_Size.y; // size 第二个参数代表的高度 [linewidth, lineheight] // 兼容 mapbox 在线高度上的效果表现基本一致 if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // mapbox // 保持高度相对不变 float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); h *= mapboxZoomScale; h += u_raisingHeight * mapboxZoomScale; if (u_heightfixed > 0.0) { lineHeight *= mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace( vec4(project_pos.xy + offset, lineHeight + h, 1.0) ); setPickingColor(a_PickingColor); } `;class t7 extends Pi{constructor(...t){super(...t),H(this,"textureEventFlag",!1),H(this,"texture",this.createTexture2D({data:new Uint8Array([0,0,0,0]),width:1,height:1})),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.textures.length===0&&(this.textures=[this.texture]),this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128})})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,DISTANCE_INDEX:10,NORMAL:11,UV:12})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",lineType:s="solid",dashArray:u=[10,5,0,0],lineTexture:n=!1,iconStep:y=100,vertexHeightScale:m=20,strokeWidth:g=0,raisingHeight:x=0,heightfixed:b=!1,linearDir:F=f4.VERTICAL,blur:R=[1,1,1,0]}=this.layer.getLayerConfig();let I=u;if(s!=="dash"&&(I=[0,0,0,0]),I.length===2&&I.push(0,0),this.rendererService.getDirty()&&this.texture){var U;(U=this.texture)===null||U===void 0||U.bind()}const{animateOption:V}=this.layer.getLayerConfig();let J=0,Q=[0,0,0,0],te=[0,0,0,0];t&&r&&(Q=Mi(t),te=Mi(r),J=1);const ne={u_animate:this.animateOption2Array(V),u_dash_array:I,u_blur:R,u_sourceColor:Q,u_targetColor:te,u_textSize:[1024,this.iconService.canvasHeight||128],u_icon_step:y,u_heightfixed:Number(b),u_vertexScale:m,u_raisingHeight:Number(x),u_strokeWidth:g,u_textureBlend:i===hI.NORMAL?0:1,u_line_texture:n?1:0,u_linearDir:F===f4.VERTICAL?1:0,u_linearColor:J,u_time:this.layer.getLayerAnimateTime()||0};return this.getUniformsBufferInfo(ne)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.textureEventFlag||(t.textureEventFlag=!0,t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture)),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){const{depth:r=!1}=t.layer.getLayerConfig(),{frag:i,vert:s,type:u}=t.getShaders();return t.layer.triangulation=G2,[yield t.layer.buildLayerModel({moduleName:"line"+u,vertexShader:s,fragmentShader:i,triangulation:G2,defines:t.getDefines(),inject:t.getInject(),depth:{enable:r}})]})()}getShaders(){return{frag:EM,vert:xM,type:""}}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"distanceAndIndex",type:br.Attribute,descriptor:{name:"a_DistanceAndIndexAndMiter",shaderLocation:this.attributeLocation.DISTANCE_INDEX,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u,n)=>n===void 0?[i[3],10,i[4]]:[i[3],n,i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal_total_distance",type:br.Attribute,descriptor:{name:"a_Normal_Total_Distance",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i,s,u)=>[...u,i[5]]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const PM=` layout(std140) uniform commonUniorm { vec4 u_sourceColor; vec4 u_targetColor; vec4 u_dash_array; float u_vertexScale: 1.0; float u_linearColor: 0; }; in float v_distanceScale; in vec4 v_color; //dash in vec4 v_dash_array; out vec4 outputColor; void main() { if(u_dash_array!=vec4(0.0)){ float dashLength = mod(v_distanceScale, v_dash_array.x + v_dash_array.y + v_dash_array.z + v_dash_array.w); if(!(dashLength < v_dash_array.x || (dashLength > (v_dash_array.x + v_dash_array.y) && dashLength < v_dash_array.x + v_dash_array.y + v_dash_array.z))) { // 虚线部分 discard; }; } if(u_linearColor==1.0){ outputColor = mix(u_sourceColor, u_targetColor, v_distanceScale); outputColor.a *= v_color.a; // 全局透明度 } else{ outputColor = v_color; } } `,bM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec4 a_SizeDistanceAndTotalDistance; layout(std140) uniform commonUniorm { vec4 u_sourceColor; vec4 u_targetColor; vec4 u_dash_array; float u_vertexScale: 1.0; float u_linearColor: 0; }; #pragma include "projection" #pragma include "picking" out vec4 v_color; out float v_distanceScale; out vec4 v_dash_array; void main() { //dash输出 v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_SizeDistanceAndTotalDistance.a; v_color = a_Color; v_distanceScale = a_SizeDistanceAndTotalDistance.b / a_SizeDistanceAndTotalDistance.a; v_color.a = v_color.a * opacity; vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); float h = float(a_Position.z) * u_vertexScale; // 线顶点的高度 - 兼容不存在第三个数值的情况 float lineHeight = a_SizeDistanceAndTotalDistance.y; // 兼容 mapbox 在线高度上的效果表现基本一致 if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // 保持高度相对不变 h *= 2.0 / pow(2.0, 20.0 - u_Zoom); } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, lineHeight + h, 1.0)); gl_PointSize = 10.0; } `;class AM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,lineType:i="solid",dashArray:s=[10,5,0,0],vertexHeightScale:u=20}=this.layer.getLayerConfig();let n=s;i!=="dash"&&(n=[0,0,0,0]),n.length===2&&n.push(0,0);let y=0,m=[0,0,0,0],g=[0,0,0,0];t&&r&&(m=Mi(t),g=Mi(r),y=1);const x={u_sourceColor:m,u_targetColor:g,u_dash_array:n,u_vertexScale:u,u_linearColor:y};return this.getUniformsBufferInfo(x)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}getShaders(){return{frag:PM,vert:bM,type:"lineSimpleNormal"}}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const{frag:r,vert:i,type:s}=t.getShaders();return[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,triangulation:EI,defines:t.getDefines(),inject:t.getInject(),primitive:L.LINES,depth:{enable:!1},pick:!1})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"sizeDistanceAndTotalDistance",type:br.Attribute,descriptor:{name:"a_SizeDistanceAndTotalDistance",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:4,update:(t,r,i)=>{const{size:s=1}=t,u=Array.isArray(s)?[s[0],s[1]]:[s,0];return[u[0],u[1],i[3],i[5]]}}})}}const FM=`#define Animate 0.0 #define LineTexture 1.0 // line texture uniform sampler2D u_texture; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_icon_step: 100; float u_heightfixed; float u_linearColor: 0; float u_line_texture; float u_textureBlend; float u_iconStepCount; float u_time; }; in vec2 v_iconMapUV; in vec4 v_color; in float v_blur; in vec4 v_dataset; out vec4 outputColor; #pragma include "picking" void main() { float animateSpeed = 0.0; // 运动速度 float d_distance_ratio = v_dataset.r; // 当前点位距离占线总长的比例 float v = v_dataset.a; if(u_linearColor == 1.0) { // 使用渐变颜色 outputColor = mix(u_sourceColor, u_targetColor, v); } else { // 使用 color 方法传入的颜色 outputColor = v_color; } outputColor.a *= v_color.a; // 全局透明度 if(u_animate.x == Animate) { animateSpeed = u_time / u_animate.y; float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_animate.z)* (1.0/ u_animate.z) + animateSpeed); alpha = (alpha + u_animate.w -1.0) / u_animate.w; alpha = smoothstep(0., 1., alpha); outputColor.a *= alpha; } if(u_line_texture == LineTexture) { // while load texture float aDistance = v_dataset.g; // 当前顶点的距离 float d_texPixelLen = v_dataset.b; // 贴图的像素长度,根据地图层级缩放 float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed); float v = v_dataset.a; // 线图层贴图部分的 v 坐标值 // 计算纹理间隔 start float flag = 0.0; if(u > 1.0/u_iconStepCount) { flag = 1.0; } u = fract(u*u_iconStepCount); // 计算纹理间隔 end vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.; vec4 pattern = texture(SAMPLER_2D(u_texture), uv); // Tip: 判断纹理间隔 if(flag > 0.0) { pattern = vec4(0.0); } if(u_textureBlend == 0.0) { // normal pattern.a = 0.0; outputColor = filterColor(outputColor + pattern); } else { // replace pattern.a *= v_color.a; if(outputColor.a <= 0.0) { pattern.a = 0.0; } outputColor = filterColor(pattern); } } // blur - AA if(v < v_blur) { outputColor.a = mix(0.0, outputColor.a, v/v_blur); } else if(v > 1.0 - v_blur) { outputColor.a = mix(outputColor.a, 0.0, (v - (1.0 - v_blur))/v_blur); } outputColor = filterColor(outputColor); } `,TM=`#define Animate 0.0 layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec2 a_Size; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_iconMapUV; layout(location = ATTRIBUTE_LOCATION_DISTANCE_MITER_TOTAL) in vec3 a_Distance_Total_Miter; layout(std140) uniform commonUniorm { vec4 u_animate: [ 1., 2., 1.0, 0.2 ]; vec4 u_sourceColor; vec4 u_targetColor; vec2 u_textSize; float u_icon_step: 100; float u_heightfixed; float u_linearColor: 0; float u_line_texture; float u_textureBlend; float u_iconStepCount; float u_time; }; // texV 线图层 - 贴图部分的 v 坐标(线的宽度方向) out vec2 v_iconMapUV; out vec4 v_color; out float v_blur; out vec4 v_dataset; #pragma include "projection" #pragma include "light" #pragma include "picking" void main() { float a_Distance = a_Distance_Total_Miter.x; float a_Miter = a_Distance_Total_Miter.y; float a_Total_Distance = a_Distance_Total_Miter.z; float d_distance_ratio; // 当前点位距离占线总长的比例 float d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 v_iconMapUV = a_iconMapUV; if (u_heightfixed < 1.0) { // 高度随 zoom 调整 d_texPixelLen = project_pixel(u_icon_step); } else { d_texPixelLen = u_icon_step; } if (u_animate.x == Animate || u_linearColor == 1.0) { d_distance_ratio = a_Distance / a_Total_Distance; } float miter = (a_Miter + 1.0) / 2.0; // 设置数据集的参数 v_dataset[0] = d_distance_ratio; // 当前点位距离占线总长的比例 v_dataset[1] = a_Distance; // 当前顶点的距离 v_dataset[2] = d_texPixelLen; // 贴图的像素长度,根据地图层级缩放 v_dataset[3] = miter; // 线图层贴图部分的 v 坐标值 0 - 1 vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0), a_Position64Low); float originSize = a_Size.x; // 固定高度 if (u_heightfixed < 1.0) { originSize = project_float_meter(a_Size.x); // 高度随 zoom 调整 } float wallHeight = originSize * miter; float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0)); v_blur = min(project_float_pixel(2.0) / originSize, 0.05); v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); // 兼容 mapbox 在线高度上的效果表现基本一致 if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { // mapbox // 保持高度相对不变 float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); if (u_heightfixed > 0.0) { wallHeight *= mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, wallHeight, 1.0)); setPickingColor(a_PickingColor); } `;class SM extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas()}),this.layer.render();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.NEAREST,min:L.NEAREST,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:12,UV:13,DISTANCE_MITER_TOTAL:15})}getCommonUniformsInfo(){const{sourceColor:t,targetColor:r,textureBlend:i="normal",heightfixed:s=!1,lineTexture:u=!1,iconStep:n=100,iconStepCount:y=1}=this.layer.getLayerConfig(),{animateOption:m}=this.layer.getLayerConfig();if(this.rendererService.getDirty()){var g;(g=this.texture)===null||g===void 0||g.bind()}let x=0,b=[0,0,0,0],F=[0,0,0,0];t&&r&&(b=Mi(t),F=Mi(r),x=1);const R={u_animate:this.animateOption2Array(m),u_sourceColor:b,u_targetColor:F,u_textSize:[1024,this.iconService.canvasHeight||128],u_icon_step:n,u_heightfixed:Number(s),u_linearColor:x,u_line_texture:u?1:0,u_textureBlend:i==="normal"?0:1,u_iconStepCount:y,u_time:this.layer.getLayerAnimateTime()||0};return this.getUniformsBufferInfo(R)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.updateTexture(),t.iconService.on("imageUpdate",t.updateTexture),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){return[yield t.layer.buildLayerModel({moduleName:"lineWall",vertexShader:TM,fragmentShader:FM,triangulation:G2,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},blend:t.getBlend()})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0],r[1]]:[r,0]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"distanceAndTotalAndMiter",type:br.Attribute,descriptor:{name:"a_Distance_Total_Miter",shaderLocation:this.attributeLocation.DISTANCE_MITER_TOTAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i)=>[i[3],i[4],i[5]]}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_iconMapUV",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{texture:i}=t,{x:s,y:u}=r[i]||{x:0,y:0};return[s,u]}}})}}const wM={arc:JI,arc3d:w4,greatcircle:vM,wall:SM,line:t7,simple:AM,flowline:fM,earthArc3d:w4};class r7 extends A1{constructor(...t){super(...t),H(this,"type","LineLayer"),H(this,"enableShaderEncodeStyles",["stroke","offsets","opacity","thetaOffset"]),H(this,"arrowInsertCount",0),H(this,"defaultSourceConfig",{data:[{lng1:100,lat1:30,lng2:130,lat2:30}],options:{parser:{type:"json",x:"lng1",y:"lat1",x1:"lng2",y1:"lat2"}}})}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new wM[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{line:{},linearline:{},simple:{},wall:{},arc3d:{blend:"additive"},arc:{blend:"additive"},greatcircle:{blend:"additive"},tileLine:{},earthArc3d:{},flowline:{},arrow:{}}[t]}getModelType(){var t;if(this.layerType)return this.layerType;const r=this.styleAttributeService.getLayerStyleAttribute("shape");return(r==null||(t=r.scale)===null||t===void 0?void 0:t.field)||"line"}processData(t){if(this.getModelType()!=="simple")return t;const r=[];return t.map(i=>{if(Array.isArray(i.coordinates)&&Array.isArray(i.coordinates[0])&&Array.isArray(i.coordinates[0][0])){const s=_t({},i);i.coordinates.map(u=>{r.push(_t(_t({},s),{},{coordinates:u}))})}else r.push(i)}),r}}const RM=` layout(std140) uniform commonUniorm { vec4 u_stroke_color; float u_additive; float u_stroke_opacity; float u_stroke_width; }; in vec4 v_color; in float v_blur; in float v_innerRadius; out vec4 outputColor; #pragma include "picking" void main() { vec2 center = vec2(0.5); // Tip: 片元到中心点的距离 0 - 1 float fragmengTocenter = distance(center, gl_PointCoord) * 2.0; // Tip: 片元的剪切成圆形 float circleClipOpacity = 1.0 - smoothstep(v_blur, 1.0, fragmengTocenter); if(v_innerRadius < 0.99) { // 当存在 stroke 且 stroke > 0.01 float blurWidth = (1.0 - v_blur)/2.0; vec4 stroke = vec4(u_stroke_color.rgb, u_stroke_opacity); if(fragmengTocenter > v_innerRadius + blurWidth) { outputColor = stroke; } else if(fragmengTocenter > v_innerRadius - blurWidth){ float mixR = (fragmengTocenter - (v_innerRadius - blurWidth)) / (blurWidth * 2.0); outputColor = mix(v_color, stroke, mixR); } else { outputColor = v_color; } } else { // 当不存在 stroke 或 stroke <= 0.01 outputColor = v_color; } outputColor = filterColor(outputColor); if(u_additive > 0.0) { outputColor *= circleClipOpacity; } else { outputColor.a *= circleClipOpacity; } } `,CM=` layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(std140) uniform commonUniorm { vec4 u_stroke_color; float u_additive; float u_stroke_opacity; float u_stroke_width; }; out vec4 v_color; out float v_blur; out float v_innerRadius; #pragma include "projection" #pragma include "picking" #pragma include "project" void main() { v_color = vec4(a_Color.xyz, a_Color.w * opacity); v_blur = 1.0 - max(2.0 / a_Size, 0.05); v_innerRadius = max((a_Size - u_stroke_width) / a_Size, 0.0); vec2 offset = project_pixel(u_offsets); vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w)); gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; setPickingColor(a_PickingColor); } `;function M4(e){const t=e.coordinates;return{vertices:[...t],indices:[0],size:t.length}}class IM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getDefaultStyle(){return{blend:"additive"}}getCommonUniformsInfo(){const{blend:t,strokeOpacity:r=1,strokeWidth:i=0,stroke:s="#fff"}=this.layer.getLayerConfig(),u={u_stroke_color:Mi(s),u_additive:t==="additive"?1:0,u_stroke_opacity:r,u_stroke_width:i};return this.getUniformsBufferInfo(u)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=M4,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointSimple",vertexShader:CM,fragmentShader:RM,defines:t.getDefines(),inject:t.getInject(),triangulation:M4,depth:{enable:!1},primitive:L.POINTS})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const MM=`precision highp float; in vec4 v_color; #pragma include "picking" layout(std140) uniform commonUniform { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor: 0; float u_heightfixed: 0.0; // 默认不固定 float u_globel; float u_r; float u_pickLight: 0.0; float u_opacitylinear: 0.0; float u_opacitylinear_dir: 1.0; float u_lightEnable: 1.0; }; in float v_lightWeight; in float v_barLinearZ; out vec4 outputColor; void main() { outputColor = v_color; // 开启透明度渐变 if(u_opacitylinear > 0.0) { outputColor.a *= u_opacitylinear_dir > 0.0 ? (1.0 - v_barLinearZ): v_barLinearZ; } // picking if(u_pickLight > 0.0) { outputColor = filterColorAlpha(outputColor, v_lightWeight); } else { outputColor = filterColor(outputColor); } } `,NM=`precision highp float; #define pi 3.1415926535 #define ambientRatio 0.5 #define diffuseRatio 0.3 #define specularRatio 0.2 layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size; layout(location = ATTRIBUTE_LOCATION_POS) in vec3 a_Pos; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniform { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor: 0; float u_heightfixed: 0.0; // 默认不固定 float u_globel; float u_r; float u_pickLight: 0.0; float u_opacitylinear: 0.0; float u_opacitylinear_dir: 1.0; float u_lightEnable: 1.0; }; out vec4 v_color; out float v_lightWeight; out float v_barLinearZ; // 用于将在顶点着色器中计算好的样式值传递给片元 #pragma include "projection" #pragma include "light" #pragma include "picking" float getYRadian(float x, float z) { if(x > 0.0 && z > 0.0) { return atan(x/z); } else if(x > 0.0 && z <= 0.0){ return atan(-z/x) + pi/2.0; } else if(x <= 0.0 && z <= 0.0) { return pi + atan(x/z); //atan(x/z) + } else { return atan(z/-x) + pi*3.0/2.0; } } float getXRadian(float y, float r) { return atan(y/r); } void main() { // cal style mapping - 数据纹理映射部分的计算 vec3 size = a_Size * a_Position; // a_Position.z 是在构建网格的时候传入的标准值 0 - 1,在插值器插值可以获取 0~1 线性渐变的值 v_barLinearZ = a_Position.z; vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移 if(u_heightfixed < 1.0) { // 圆柱体不固定高度 // } else {// 圆柱体固定高度 ( 处理 mapbox ) if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { offset *= 4.0/pow(2.0, 21.0 - u_Zoom); } } vec4 project_pos = project_position(vec4(a_Pos.xy, 0., 1.0)); // u_r 控制圆柱的生长 vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0); // 圆柱光照效果 float lightWeight = 1.0; if(u_lightEnable > 0.0) { // 取消三元表达式,增强健壮性 lightWeight = calc_lighting(pos); } v_lightWeight = lightWeight; // 设置圆柱的底色 if(u_linearColor == 1.0) { // 使用渐变颜色 v_color = mix(u_sourceColor, u_targetColor, v_barLinearZ); v_color.rgb *= lightWeight; } else { // 使用 color 方法传入的颜色 v_color = a_Color; } v_color.a *= u_opacity; // 在地球模式下,将原本垂直于 xy 平面的圆柱调整姿态到适应圆的角度 //旋转矩阵mx,创建绕x轴旋转矩阵 float r = sqrt(a_Pos.z*a_Pos.z + a_Pos.x*a_Pos.x); float xRadian = getXRadian(a_Pos.y, r); float xcos = cos(xRadian);//求解旋转角度余弦值 float xsin = sin(xRadian);//求解旋转角度正弦值 mat4 mx = mat4( 1,0,0,0, 0,xcos,-xsin,0, 0,xsin,xcos,0, 0,0,0,1); //旋转矩阵my,创建绕y轴旋转矩阵 float yRadian = getYRadian(a_Pos.x, a_Pos.z); float ycos = cos(yRadian);//求解旋转角度余弦值 float ysin = sin(yRadian);//求解旋转角度正弦值 mat4 my = mat4( ycos,0,-ysin,0, 0,1,0,0, ysin,0,ycos,0, 0,0,0,1); gl_Position = u_ViewProjectionMatrix * vec4(( my * mx * vec4(a_Position * a_Size, 1.0)).xyz + a_Pos, 1.0); setPickingColor(a_PickingColor); } `,{isNumber:DM}=Qn;let OM=class extends Pi{constructor(...t){super(...t),H(this,"raiseCount",0),H(this,"raiseRepeat",0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,POS:10,NORMAL:11})}getCommonUniformsInfo(){const{animateOption:t={enable:!1,speed:.01,repeat:!1},opacity:r=1,sourceColor:i,targetColor:s,pickLight:u=!1,heightfixed:n=!0,opacityLinear:y={enable:!1,dir:"up"},lightEnable:m=!0}=this.layer.getLayerConfig();let g=0,x=[0,0,0,0],b=[0,0,0,0];if(i&&s&&(x=Mi(i),b=Mi(s),g=1),this.raiseCount<1&&this.raiseRepeat>0&&t.enable){const{speed:I=.01}=t;this.raiseCount+=I,this.raiseCount>=1&&(this.raiseRepeat>1?(this.raiseCount=0,this.raiseRepeat--):this.raiseCount=1)}const F={u_sourceColor:x,u_targetColor:b,u_linearColor:g,u_pickLight:Number(u),u_heightfixed:Number(n),u_r:t.enable&&this.raiseRepeat>0?this.raiseCount:1,u_opacity:DM(r)?r:1,u_opacitylinear:Number(y.enable),u_opacitylinear_dir:y.dir==="up"?1:0,u_lightEnable:Number(m)};return this.getUniformsBufferInfo(F)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{animateOption:{repeat:r=1}}=t.layer.getLayerConfig();return t.raiseRepeat=r,[yield t.layer.buildLayerModel({moduleName:"pointEarthExtrude",vertexShader:NM,fragmentShader:MM,triangulation:B6,depth:{enable:!0},defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT},blend:t.getBlend()})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const{size:r}=t;if(r){let i=[];return Array.isArray(r)&&(i=r.length===2?[r[0],r[0],r[1]]:r),Array.isArray(r)||(i=[r,r,r]),i}else return[2,2,2]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"pos",type:br.Attribute,descriptor:{name:"a_Pos",shaderLocation:this.attributeLocation.POS,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const r=h1(t.coordinates);return q9([r[0],r[1]])}}})}};const LM=`in vec4 v_data; in vec4 v_color; in float v_radius; layout(std140) uniform commonUniform { float u_additive; float u_stroke_opacity : 1; float u_stroke_width : 2; float u_blur : 0.0; }; #pragma include "sdf_2d" #pragma include "picking" out vec4 outputColor; void main() { int shape = int(floor(v_data.w + 0.5)); vec4 strokeColor = u_stroke == vec4(0.0) ? v_color : u_stroke; lowp float antialiasblur = v_data.z; float r = v_radius / (v_radius + u_stroke_width); float outer_df; float inner_df; // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica' if (shape == 0) { outer_df = sdCircle(v_data.xy, 1.0); inner_df = sdCircle(v_data.xy, r); } else if (shape == 1) { outer_df = sdEquilateralTriangle(1.1 * v_data.xy); inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy); } else if (shape == 2) { outer_df = sdBox(v_data.xy, vec2(1.)); inner_df = sdBox(v_data.xy, vec2(r)); } else if (shape == 3) { outer_df = sdPentagon(v_data.xy, 0.8); inner_df = sdPentagon(v_data.xy, r * 0.8); } else if (shape == 4) { outer_df = sdHexagon(v_data.xy, 0.8); inner_df = sdHexagon(v_data.xy, r * 0.8); } else if (shape == 5) { outer_df = sdOctogon(v_data.xy, 1.0); inner_df = sdOctogon(v_data.xy, r); } else if (shape == 6) { outer_df = sdHexagram(v_data.xy, 0.52); inner_df = sdHexagram(v_data.xy, r * 0.52); } else if (shape == 7) { outer_df = sdRhombus(v_data.xy, vec2(1.0)); inner_df = sdRhombus(v_data.xy, vec2(r)); } else if (shape == 8) { outer_df = sdVesica(v_data.xy, 1.1, 0.8); inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8); } if(outer_df > antialiasblur + 0.018) discard; float opacity_t = smoothstep(0.0, antialiasblur, outer_df); float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep( antialiasblur, 0.0, inner_df ); if(u_stroke_width < 0.01) { outputColor = vec4(v_color.rgb, v_color.a * u_opacity); } else { outputColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), strokeColor * u_stroke_opacity, color_t); } if(u_additive > 0.0) { outputColor *= opacity_t; outputColor = filterColorAlpha(outputColor, outputColor.a); } else { outputColor.a *= opacity_t; outputColor = filterColor(outputColor); } } `,BM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape; layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniform { float u_additive; float u_stroke_opacity : 1; float u_stroke_width : 2; float u_blur : 0.0; }; out vec4 v_data; out vec4 v_color; out float v_radius; #pragma include "projection" #pragma include "picking" void main() { vec3 extrude = a_Extrude; float shape_type = a_Shape; /* * setPickingSize 设置拾取大小 */ float newSize = setPickingSize(a_Size); // float newSize = setPickingSize(a_Size) * 0.00001038445708445579; // unpack color(vec2) v_color = a_Color; // radius(16-bit) v_radius = newSize; // anti-alias // float antialiased_blur = -max(u_blur, antialiasblur); float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur); // TODP: /abs(extrude.x) 是为了兼容地球模式 v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type); gl_Position = u_ViewProjectionMatrix * vec4(a_Position + extrude * newSize * 0.1 + vec3(u_offsets,0.0), 1.0); setPickingColor(a_PickingColor); } `;let UM=class extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,SHAPE:10,EXTRUDE:11})}getCommonUniformsInfo(){const{strokeOpacity:t=1,strokeWidth:r=0,blend:i,blur:s=0}=this.layer.getLayerConfig();this.layer.getLayerConfig();const u={u_additive:i==="additive"?1:0,u_stroke_opacity:t,u_stroke_width:r,u_blur:s};return this.getUniformsBufferInfo(u)}initModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=A4,[yield t.layer.buildLayerModel({moduleName:"pointEarthFill",vertexShader:BM,fragmentShader:LM,triangulation:A4,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!0},blend:t.getBlend()})]})()}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const[u,n,y]=i,m=dp(0,0,1),g=dp(u,0,y),x=u>=0?I3(m,g):Math.PI*2-I3(m,g),b=Math.PI*2-Math.asin(n/100),F=Vf();Vg(F,F,x),i6(F,F,b);const R=dp(1,1,0);bh(R,R,F),$d(R,R);const I=dp(-1,1,0);bh(I,I,F),$d(I,I);const U=dp(-1,-1,0);bh(U,U,F),$d(U,U);const V=dp(1,-1,0);bh(V,V,F),$d(V,V);const J=[...R,...I,...U,...V],Q=s%4*3;return[J[Q],J[Q+1],J[Q+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"shape",type:br.Attribute,descriptor:{name:"a_Shape",shaderLocation:this.attributeLocation.SHAPE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{shape:r=2}=t;return[this.layer.getLayerConfig().shape2d.indexOf(r)]}}})}};const kM=` in vec4 v_color; in float v_lightWeight; out vec4 outputColor; layout(std140) uniform commonUniforms { float u_pickLight; float u_heightfixed; float u_r; float u_linearColor; vec4 u_sourceColor; vec4 u_targetColor; float u_opacitylinear; float u_opacitylinear_dir; float u_lightEnable; }; #pragma include "scene_uniforms" #pragma include "picking" void main() { outputColor = v_color; // 开启透明度渐变 // picking if(u_pickLight > 0.0) { outputColor = filterColorAlpha(outputColor, v_lightWeight); } else { outputColor = filterColor(outputColor); } } `,zM=`#define pi (3.1415926535) layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in vec3 a_Size; layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec4 a_Extrude; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(std140) uniform commonUniforms { float u_pickLight; float u_heightfixed; float u_r; float u_linearColor; vec4 u_sourceColor; vec4 u_targetColor; float u_opacitylinear; float u_opacitylinear_dir; float u_lightEnable; }; out vec4 v_color; out float v_lightWeight; #pragma include "projection" #pragma include "light" #pragma include "picking" float getYRadian(float x, float z) { if (x > 0.0 && z > 0.0) { return atan(x / z); } else if (x > 0.0 && z <= 0.0) { return atan(-z / x) + pi / 2.0; } else if (x <= 0.0 && z <= 0.0) { return pi + atan(x / z); //atan(x/z) + } else { return atan(z / -x) + pi * 3.0 / 2.0; } } float getXRadian(float y, float r) { return atan(y / r); } void main() { vec3 size = a_Size * a_Position; vec3 offset = size; // 控制圆柱体的大小 - 从标准单位圆柱体进行偏移 if (u_heightfixed < 1.0) { // 圆柱体不固定高度 } else { // 圆柱体固定高度 ( 处理 mapbox ) if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { offset *= 4.0 / pow(2.0, 21.0 - u_Zoom); } } vec2 positions = a_Extrude.xy; vec2 positions64Low = a_Extrude.zw; vec4 project_pos = project_position(vec4(positions, 0.0, 1.0), positions64Low); // u_r 控制圆柱的生长 vec4 pos = vec4(project_pos.xy + offset.xy, offset.z * u_r, 1.0); // // 圆柱光照效果 float lightWeight = 1.0; if (u_lightEnable > 0.0) { // 取消三元表达式,增强健壮性 lightWeight = calc_lighting(pos); } v_lightWeight = lightWeight; v_color = a_Color; // 设置圆柱的底色 if (u_linearColor == 1.0) { // 使用渐变颜色 v_color = mix(u_sourceColor, u_targetColor, a_Position.z); v_color.a = v_color.a * opacity; } else { v_color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); } if (u_opacitylinear > 0.0) { v_color.a *= u_opacitylinear_dir > 0.0 ? 1.0 - a_Position.z : a_Position.z; } gl_Position = project_common_position_to_clipspace(pos); setPickingColor(a_PickingColor); } `;let o7=class extends Pi{constructor(...t){super(...t),H(this,"raiseCount",0),H(this,"raiseRepeat",0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10,NORMAL:11})}getCommonUniformsInfo(){const{animateOption:t={enable:!1,speed:.01,repeat:!1},sourceColor:r,targetColor:i,pickLight:s=!1,heightfixed:u=!1,opacityLinear:n={enable:!1,dir:"up"},lightEnable:y=!0}=this.layer.getLayerConfig();let m=0,g=[0,0,0,0],x=[0,0,0,0];if(r&&i&&(g=Mi(r),x=Mi(i),m=1),this.raiseCount<1&&this.raiseRepeat>0&&t.enable){const{speed:R=.01}=t;this.raiseCount+=R,this.raiseCount>=1&&(this.raiseRepeat>1?(this.raiseCount=0,this.raiseRepeat--):this.raiseCount=1)}const b={u_pickLight:Number(s),u_heightfixed:Number(u),u_r:t.enable&&this.raiseRepeat>0?this.raiseCount:1,u_linearColor:m,u_sourceColor:g,u_targetColor:x,u_opacitylinear:Number(n.enable),u_opacitylinear_dir:n.dir==="up"?1:0,u_lightEnable:Number(y)};return this.getUniformsBufferInfo(b)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{depth:r=!0,animateOption:{repeat:i=1}}=t.layer.getLayerConfig();return t.raiseRepeat=i,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointExtrude",vertexShader:zM,fragmentShader:kM,triangulation:B6,defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT},depth:{enable:r}})]})()}registerBuiltinAttributes(){this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:t=>{const{size:r}=t;if(r){let i=[];return Array.isArray(r)&&(i=r.length===2?[r[0],r[0],r[1]]:r),Array.isArray(r)||(i=[r,r,r]),i}else return[2,2,2]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:4,update:t=>{const r=h1(t.coordinates);return[r[0],r[1],ua(r[0]),ua(r[1])]}}})}};const VM=` layout(std140) uniform commonUniforms { vec3 u_blur_height_fixed; float u_stroke_width; float u_additive; float u_stroke_opacity; float u_size_unit; float u_time; vec4 u_animate; }; in vec4 v_color; in vec4 v_stroke; in vec4 v_data; in float v_radius; #pragma include "scene_uniforms" #pragma include "sdf_2d" #pragma include "picking" out vec4 outputColor; void main() { int shape = int(floor(v_data.w + 0.5)); lowp float antialiasblur = v_data.z; float r = v_radius / (v_radius + u_stroke_width); float outer_df; float inner_df; // 'circle', 'triangle', 'square', 'pentagon', 'hexagon', 'octogon', 'hexagram', 'rhombus', 'vesica' if (shape == 0) { outer_df = sdCircle(v_data.xy, 1.0); inner_df = sdCircle(v_data.xy, r); } else if (shape == 1) { outer_df = sdEquilateralTriangle(1.1 * v_data.xy); inner_df = sdEquilateralTriangle(1.1 / r * v_data.xy); } else if (shape == 2) { outer_df = sdBox(v_data.xy, vec2(1.)); inner_df = sdBox(v_data.xy, vec2(r)); } else if (shape == 3) { outer_df = sdPentagon(v_data.xy, 0.8); inner_df = sdPentagon(v_data.xy, r * 0.8); } else if (shape == 4) { outer_df = sdHexagon(v_data.xy, 0.8); inner_df = sdHexagon(v_data.xy, r * 0.8); } else if (shape == 5) { outer_df = sdOctogon(v_data.xy, 1.0); inner_df = sdOctogon(v_data.xy, r); } else if (shape == 6) { outer_df = sdHexagram(v_data.xy, 0.52); inner_df = sdHexagram(v_data.xy, r * 0.52); } else if (shape == 7) { outer_df = sdRhombus(v_data.xy, vec2(1.0)); inner_df = sdRhombus(v_data.xy, vec2(r)); } else if (shape == 8) { outer_df = sdVesica(v_data.xy, 1.1, 0.8); inner_df = sdVesica(v_data.xy, r * 1.1, r * 0.8); } float opacity_t = smoothstep(0.0, antialiasblur, outer_df); float color_t = u_stroke_width < 0.01 ? 0.0 : smoothstep( antialiasblur, 0.0, inner_df ); float PI = 3.14159; float N_RINGS = 3.0; float FREQ = 1.0; if(u_stroke_width < 0.01) { outputColor = v_color; } else { outputColor = mix(v_color, v_stroke * u_stroke_opacity, color_t); } float intensity = 1.0; if(u_time!=-1.0){ //wave相关逻辑 float d = length(v_data.xy); if(d > 0.5) { discard; } intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_animate.z - u_animate.y * u_time)), 0.0, 1.0); } if(u_additive > 0.0) { outputColor *= opacity_t; outputColor *= intensity;//wave outputColor = filterColorAlpha(outputColor, outputColor.a); } else { outputColor.a *= opacity_t; outputColor.a *= intensity;//wave outputColor = filterColor(outputColor); } // 作为 mask 模板时需要丢弃透明的像素 if(outputColor.a < 0.01) { discard; } } `,HM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_SHAPE) in float a_Shape; layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniforms { vec3 u_blur_height_fixed; float u_stroke_width; float u_additive; float u_stroke_opacity; float u_size_unit; float u_time; vec4 u_animate; }; out vec4 v_color; out vec4 v_stroke; out vec4 v_data; out float v_radius; #pragma include "projection" #pragma include "picking" #pragma include "rotation_2d" void main() { // 透明度计算 v_stroke = stroke; vec3 extrude = a_Extrude; float shape_type = a_Shape; /* * setPickingSize 设置拾取大小 * u_meter2coord 在等面积大小的时候设置单位 */ float newSize = setPickingSize(a_Size); // float newSize = setPickingSize(a_Size) * 0.00001038445708445579; // unpack color(vec2) v_color = vec4(a_Color.xyz, a_Color.w * opacity); if(u_size_unit == 1.0) { newSize = newSize * u_PixelsPerMeter.z; } v_radius = newSize; // anti-alias // float antialiased_blur = -max(u_blur, antialiasblur); float antialiasblur = -max(2.0 / u_DevicePixelRatio / newSize, u_blur_height_fixed.x); vec2 offset = (extrude.xy * (newSize + u_stroke_width) + u_offsets); offset = project_pixel(offset); offset = rotate_matrix(offset,rotation); // TODP: /abs(extrude.x) 是为了兼容地球模式 v_data = vec4(extrude.x/abs(extrude.x), extrude.y/abs(extrude.y), antialiasblur,shape_type); vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low); // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0)); float raisingHeight = u_blur_height_fixed.y; if(u_blur_height_fixed.z < 1.0) { // false raisingHeight = project_pixel(u_blur_height_fixed.y); } else { if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); raisingHeight = u_blur_height_fixed.y * mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0)); setPickingColor(a_PickingColor); } `;let i7=class extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,SHAPE:10,EXTRUDE:11})}getCommonUniformsInfo(){const{strokeOpacity:t=1,strokeWidth:r=0,blend:i,blur:s=0,raisingHeight:u=0,heightfixed:n=!1,unit:y="pixel"}=this.layer.getLayerConfig();let m=this.getAnimateUniforms().u_time;isNaN(m)&&(m=-1);const g={u_blur_height_fixed:[s,Number(u),Number(n)],u_stroke_width:r,u_additive:i==="additive"?1:0,u_stroke_opacity:t,u_size_unit:L6[y],u_time:m,u_animate:this.getAnimateUniforms().u_animate};return this.getUniformsBufferInfo(g)}getAnimateUniforms(){const{animateOption:t={enable:!1}}=this.layer.getLayerConfig();return{u_animate:this.animateOption2Array(t),u_time:this.layer.getLayerAnimateTime()}}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.layer.triangulation=d1,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:d1,depth:{enable:!1}})]})()}getShaders(){return{frag:VM,vert:HM,type:"pointFill"}}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){const t=this.layer.getLayerConfig().shape2d;this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(r,i,s,u)=>{const n=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],y=u%4*3;return[n[y],n[y+1],n[y+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:r=>{const{size:i=5}=r;return Array.isArray(i)?[i[0]]:[i]}}}),this.styleAttributeService.registerStyleAttribute({name:"shape",type:br.Attribute,descriptor:{name:"a_Shape",shaderLocation:this.attributeLocation.SHAPE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:r=>{const{shape:i=2}=r;return[t.indexOf(i)]}}})}};const GM=`in vec2 v_uv;// 本身的 uv 坐标 in vec2 v_Iconuv; in float v_opacity; out vec4 outputColor; uniform sampler2D u_texture; layout(std140) uniform commonUniform { vec2 u_textSize; float u_heightfixed: 0.0; float u_raisingHeight: 0.0; float u_size_unit; }; #pragma include "scene_uniforms" #pragma include "sdf_2d" #pragma include "picking" void main() { vec2 pos = v_Iconuv / u_textSize + v_uv / u_textSize * 64.; outputColor = texture(SAMPLER_2D(u_texture), pos); outputColor.a *= v_opacity; outputColor = filterColor(outputColor); } `,jM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniform { vec2 u_textSize; float u_heightfixed; float u_raisingHeight; float u_size_unit; }; out vec2 v_uv; out vec2 v_Iconuv; out float v_opacity; #pragma include "projection" #pragma include "picking" #pragma include "rotation_2d" void main() { vec3 extrude = a_Extrude; v_uv = (a_Extrude.xy + 1.0) / 2.0; v_uv.y = 1.0 - v_uv.y; v_Iconuv = a_Uv; v_opacity = opacity; float newSize = a_Size; if (u_size_unit == 1.0) { newSize = newSize * u_PixelsPerMeter.z; } // vec2 offset = (u_RotateMatrix * extrude.xy * (a_Size) + textrueOffsets); vec2 offset = extrude.xy * newSize + offsets; offset = rotate_matrix(offset, rotation); offset = project_pixel(offset); vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0)); setPickingColor(a_PickingColor); } `;class WM extends Pi{constructor(...t){super(...t),H(this,"meter2coord",1),H(this,"texture",void 0),H(this,"isMeter",!1),H(this,"radian",0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas(),mag:"linear",min:"linear mipmap nearest",mipmap:!0}),this.layerService.throttleRenderLayers();return}this.texture=r({data:this.iconService.getCanvas(),mag:L.LINEAR,min:L.LINEAR_MIPMAP_LINEAR,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128,mipmap:!0}),this.textures=[this.texture]})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10,UV:11})}getCommonUniformsInfo(){const{raisingHeight:t=0,heightfixed:r=!1,unit:i="pixel"}=this.layer.getLayerConfig();if(this.rendererService.getDirty()){var s;(s=this.texture)===null||s===void 0||s.bind()}const u={u_textSize:[1024,this.iconService.canvasHeight||128],u_heightfixed:Number(r),u_raisingHeight:Number(t),u_size_unit:L6[i]};return this.getUniformsBufferInfo(u)}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.iconService.on("imageUpdate",t.updateTexture),t.updateTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointFillImage",vertexShader:jM,fragmentShader:GM,triangulation:d1,depth:{enable:!1},defines:t.getDefines(),inject:t.getInject(),cull:{enable:!0,face:L.FRONT}})]})()}clearModels(){var t;this.iconService.off("imageUpdate",this.updateTexture),(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{shape:i}=t,{x:s,y:u}=r[i]||{x:-64,y:-64};return[s,u]}}}),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const u=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],n=s%4*3;return[u[n],u[n+1],u[n+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const XM=`layout(std140) uniform commonUniforms { vec2 u_textSize; float u_raisingHeight; float u_heightfixed; }; uniform sampler2D u_texture; in vec4 v_color; in vec2 v_uv; in float v_opacity; #pragma include "picking" out vec4 outputColor; void main(){ vec2 pos = v_uv / u_textSize + gl_PointCoord / u_textSize * 64.; vec4 textureColor; // Y = 0.299R + 0.587G + 0.114B // 亮度提取 textureColor = texture(SAMPLER_2D(u_texture), pos); // Tip: 去除边缘部分 mipmap 导致的混合变暗 float fragmengTocenter = distance(vec2(0.5), gl_PointCoord); if(fragmengTocenter >= 0.5) { float luma = 0.299 * textureColor.r + 0.587 * textureColor.g + 0.114 * textureColor.b; textureColor.a *= luma; } if(all(lessThan(v_color, vec4(1.0+0.00001))) && all(greaterThan(v_color, vec4(1.0-0.00001))) || v_color==vec4(1.0)){ outputColor= textureColor; }else { outputColor= step(0.01, textureColor.z) * v_color; } outputColor.a *= v_opacity; if (outputColor.a < 0.01) { discard; } outputColor = filterColor(outputColor); } `,ZM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_textSize; float u_raisingHeight; float u_heightfixed; }; out vec4 v_color; out vec2 v_uv; out float v_opacity; #pragma include "projection" #pragma include "picking" void main() { // cal style mapping - 数据纹理映射部分的计算 v_color = a_Color; v_opacity = opacity; v_uv = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); vec2 offset = project_pixel(offsets); float raisingHeight = u_raisingHeight; if (u_heightfixed < 1.0) { // false raisingHeight = project_pixel(u_raisingHeight); } else { if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); raisingHeight = u_raisingHeight * mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, raisingHeight, 1.0)); gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; setPickingColor(a_PickingColor); } `;class n7 extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"updateTexture",()=>{const{createTexture2D:r}=this.rendererService;if(this.texture){this.texture.update({data:this.iconService.getCanvas(),mag:"linear",min:"linear mipmap nearest",mipmap:!0}),setTimeout(()=>{this.layerService.throttleRenderLayers()});return}this.texture=r({data:this.iconService.getCanvas(),mag:L.LINEAR,min:L.LINEAR_MIPMAP_LINEAR,premultiplyAlpha:!1,width:1024,height:this.iconService.canvasHeight||128,mipmap:!0})})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,UV:10})}getUninforms(){if(this.rendererService.getDirty()){var t;(t=this.texture)===null||t===void 0||t.bind()}const r=this.getCommonUniformsInfo(),i=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},r.uniformsOption),i.uniformsOption)}getCommonUniformsInfo(){const{raisingHeight:t=0,heightfixed:r=!1}=this.layer.getLayerConfig(),i={u_textSize:[1024,this.iconService.canvasHeight||128],u_raisingHeight:Number(t),u_heightfixed:Number(r),u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.iconService.on("imageUpdate",t.updateTexture),t.updateTexture(),t.buildModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.iconService.off("imageUpdate",this.updateTexture)}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointImage",vertexShader:ZM,fragmentShader:XM,triangulation:vI,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},primitive:L.POINTS})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:t=>{const r=this.iconService.getIconMap(),{shape:i}=t,{x:s,y:u}=r[i]||{x:-64,y:-64};return[s,u]}}})}}const YM=`in vec4 v_color; out vec4 outputColor; void main() { outputColor = v_color; }`,$M=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(std140) uniform u_Common { float u_size_scale; }; out vec4 v_color; #pragma include "projection" #pragma include "project" void main() { v_color = vec4(a_Color.xyz, a_Color.w * opacity); vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(project_pos); gl_PointSize = a_Size * u_size_scale * 2.0 * u_DevicePixelRatio; } `;function N4(e){const t=e.coordinates;return{vertices:[...t],indices:[0],size:t.length}}class a7 extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9})}getDefaultStyle(){return{blend:"additive"}}getCommonUniformsInfo(){const t={u_size_scale:.5};return this.getUniformsBufferInfo(t)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.layer.triangulation=N4,t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointNormal",vertexShader:$M,fragmentShader:YM,triangulation:N4,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1},primitive:L.POINTS,pick:!1})]})()}clearModels(){}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=1}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}const qM=` layout(std140) uniform commonUniorm{ float u_additive; float u_size_unit; float u_speed: 1.0; float u_time; }; in vec4 v_data; in vec4 v_color; in float v_radius; in vec2 v_extrude; #pragma include "sdf_2d" #pragma include "picking" out vec4 outputColor; void main() { lowp float antialiasblur = v_data.z; float r = v_radius / (v_radius); float outer_df = sdCircle(v_data.xy, 1.0); float inner_df = sdCircle(v_data.xy, r); float opacity_t = smoothstep(0.0, antialiasblur, outer_df); outputColor = vec4(v_color.rgb, v_color.a); if(u_additive > 0.0) { outputColor *= opacity_t; } else { outputColor.a *= opacity_t; } if(outputColor.a > 0.0) { outputColor = filterColor(outputColor); } vec2 extrude = v_extrude; vec2 dir = normalize(extrude); vec2 baseDir = vec2(1.0, 0.0); float pi = 3.14159265359; float flag = sign(dir.y); float rades = dot(dir, baseDir); float radar_v = (flag - 1.0) * -0.5 * acos(rades)/pi; // simple AA if(radar_v > 0.99) { radar_v = 1.0 - (radar_v - 0.99)/0.01; } outputColor.a *= radar_v; } `,KM=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_EXTRUDE) in vec3 a_Extrude; layout(std140) uniform commonUniorm { float u_additive; float u_size_unit; float u_speed: 1.0; float u_time; }; out vec4 v_data; out vec4 v_color; out float v_radius; out vec2 v_extrude; #pragma include "projection" #pragma include "picking" void main() { float newSize = setPickingSize(a_Size); float time = u_time * u_speed; mat2 rotateMatrix = mat2( cos(time), sin(time), -sin(time), cos(time) ); v_extrude = rotateMatrix * a_Extrude.xy; v_color = a_Color; v_color.a *= opacity; float blur = 0.0; float antialiasblur = -max(2.0 / u_DevicePixelRatio / a_Size, blur); if(u_size_unit == 1.) { newSize = newSize * u_PixelsPerMeter.z; } v_radius = newSize; vec2 offset = (a_Extrude.xy * (newSize)); offset = project_pixel(offset); v_data = vec4(a_Extrude.x, a_Extrude.y, antialiasblur, -1.0); vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, project_pixel(setPickingOrder(0.0)), 1.0)); setPickingColor(a_PickingColor); } `;class QM extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,EXTRUDE:10})}getCommonUniformsInfo(){const{blend:t,speed:r=1,unit:i="pixel"}=this.layer.getLayerConfig(),s={u_additive:t==="additive"?1:0,u_size_unit:L6[i],u_speed:r,u_time:this.layer.getLayerAnimateTime()};return this.getUniformsBufferInfo(s)}getAnimateUniforms(){return{}}getAttribute(){return this.styleAttributeService.createAttributesAndIndices(this.layer.getEncodedData(),d1)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"pointRadar",vertexShader:KM,fragmentShader:qM,triangulation:d1,defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}})]})()}animateOption2Array(t){return[t.enable?0:1,t.speed||1,t.rings||3,0]}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"extrude",type:br.Attribute,descriptor:{name:"a_Extrude",shaderLocation:this.attributeLocation.EXTRUDE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s)=>{const u=[1,1,0,-1,1,0,-1,-1,0,1,-1,0],n=s%4*3;return[u[n],u[n+1],u[n+2]]}}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.SIZE,name:"a_Size",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=5}=t;return Array.isArray(r)?[r[0]]:[r]}}})}}class JM{constructor(t,r,i){H(this,"boxCells",[]),H(this,"xCellCount",void 0),H(this,"yCellCount",void 0),H(this,"boxKeys",void 0),H(this,"bboxes",void 0),H(this,"width",void 0),H(this,"height",void 0),H(this,"xScale",void 0),H(this,"yScale",void 0),H(this,"boxUid",void 0);const s=this.boxCells;this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(r/i);for(let u=0;uthis.width||s<0||r>this.height)return u?!1:[];const y=[];if(t<=0&&r<=0&&this.width<=i&&this.height<=s){if(u)return!0;for(let g=0;g0:y}queryCell(t,r,i,s,u,n,y,m){const g=y.seenUids,x=this.boxCells[u];if(x!==null){const b=this.bboxes;for(const F of x)if(!g.box[F]){g.box[F]=!0;const R=F*4;if(t<=b[R+2]&&r<=b[R+3]&&i>=b[R+0]&&s>=b[R+1]&&(!m||m(this.boxKeys[F]))){if(y.hitTest)return n.push(!0),!0;n.push({key:this.boxKeys[F],x1:b[R],y1:b[R+1],x2:b[R+2],y2:b[R+3]})}}}return!1}forEachCell(t,r,i,s,u,n,y,m){const g=this.convertToXCellCoord(t),x=this.convertToYCellCoord(r),b=this.convertToXCellCoord(i),F=this.convertToYCellCoord(s);for(let R=g;R<=b;R++)for(let I=x;I<=F;I++){const U=this.xCellCount*I+R;if(u.call(this,t,r,i,s,U,n,y,m))return}}convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}}class eN{constructor(t,r){H(this,"width",void 0),H(this,"height",void 0),H(this,"grid",void 0),H(this,"viewportPadding",100),H(this,"screenRightBoundary",void 0),H(this,"screenBottomBoundary",void 0),H(this,"gridRightBoundary",void 0),H(this,"gridBottomBoundary",void 0),this.width=t,this.height=r,this.viewportPadding=Math.max(t,r),this.grid=new JM(t+this.viewportPadding,r+this.viewportPadding,25),this.screenRightBoundary=t+this.viewportPadding,this.screenBottomBoundary=r+this.viewportPadding,this.gridRightBoundary=t+2*this.viewportPadding,this.gridBottomBoundary=r+2*this.viewportPadding}placeCollisionBox(t){const r=t.x1+t.anchorPointX+this.viewportPadding,i=t.y1+t.anchorPointY+this.viewportPadding,s=t.x2+t.anchorPointX+this.viewportPadding,u=t.y2+t.anchorPointY+this.viewportPadding;return!this.isInsideGrid(r,i,s,u)||this.grid.hitTest(r,i,s,u)?{box:[]}:{box:[r,i,s,u]}}insertCollisionBox(t,r){const i={featureIndex:r};this.grid.insert(i,t[0],t[1],t[2],t[3])}project(t,r,i){const s=kv(r,i,0,1),u=Gg(),n=Lv(...t);return n6(u,s,n),{x:(u[0]/u[3]+1)/2*this.width+this.viewportPadding,y:(-u[1]/u[3]+1)/2*this.height+this.viewportPadding}}isInsideGrid(t,r,i,s){return i>=0&&t=0&&r{if(J.split("").forEach(Q=>{const te=t[Q];te&&(b.push({glyph:Q,x:m,y:g+0,vertical:!1,scale:1,metrics:te}),m+=te.advance+n)}),b.length!==R){const Q=m-n;x=Math.max(Q,x),b.length-1}m=0,g-=i+5});const{horizontalAlign:I,verticalAlign:U}=s7(s);u7(b,F,I,U,x,i,r.length);const V=g- -8;e.top+=-U*V,e.bottom=e.top-V,e.left+=-I*x,e.right=e.left+x}function rN(e,t,r,i,s,u,n){let m=0,g=-8,x=0;const b=e.positionedGlyphs,F=0,R=b.length;r.forEach(J=>{const Q=t[J];if(Q&&(b.push({glyph:J,x:Q.advance/2,y:g+0,vertical:!1,scale:1,metrics:Q}),m+=Q.advance+n),b.length!==R){const ne=m-n;x=Math.max(ne,x),b.length-1}m=0,g-=i+5});const{horizontalAlign:I,verticalAlign:U}=s7(s);u7(b,F,I,U,x,i,r.length);const V=g- -8;e.top+=-U*V,e.bottom=e.top-V,e.left+=-I*x,e.right=e.left+x}function oN(e,t,r,i,s,u,n=[0,0],y){const m=e.split(` `),g=[],x={positionedGlyphs:g,top:n[1],bottom:n[1],left:n[0],right:n[0],lineCount:m.length,text:e};return y?rN(x,t,m,r,i,s,u):tN(x,t,m,r,i,s,u),g.length?x:!1}function iN(e,t=[0,0],r){const{positionedGlyphs:i=[]}=e,s=[];for(const u of i){const n=u.metrics,y=4,m=n.advance*u.scale/2,g=[0,0],x=[u.x+m+t[0],u.y+t[1]],b=(0-y)*u.scale-m+x[0],F=(0-y)*u.scale+x[1],R=b+n.width*u.scale,I=F+n.height*u.scale,U={x:b,y:F},V={x:R,y:F},J={x:b,y:I},Q={x:R,y:I};s.push({tl:U,tr:V,bl:J,br:Q,tex:n,glyphOffset:g})}return s}const D4=`#define SDF_PX 8.0 #define EDGE_GAMMA 0.105 #define FONT_SIZE 48.0 uniform sampler2D u_sdf_map; layout(std140) uniform commonUniforms { vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0]; vec2 u_sdf_map_size; float u_raisingHeight: 0.0; float u_stroke_width : 2; float u_gamma_scale : 0.5; float u_halo_blur : 0.5; }; in vec2 v_uv; in float v_gamma_scale; in vec4 v_color; in vec4 v_stroke_color; in float v_fontScale; out vec4 outputColor; #pragma include "picking" void main() { // get style data mapping // get sdf from atlas float dist = texture(SAMPLER_2D(u_sdf_map), v_uv).a; lowp float buff = (6.0 - u_stroke_width / v_fontScale) / SDF_PX; highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (v_fontScale * u_gamma_scale) / 1.0; highp float gamma_scaled = gamma * v_gamma_scale; highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist); outputColor = mix(v_color, v_stroke_color, smoothstep(0., 0.5, 1.- dist)); outputColor.a *= alpha; // 作为 mask 模板时需要丢弃透明的像素 if (outputColor.a < 0.01) { discard; } outputColor = filterColor(outputColor); } `,O4=`#define SDF_PX 8.0 #define EDGE_GAMMA 0.105 #define FONT_SIZE 24.0 layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_TEXT_OFFSETS) in vec2 a_textOffsets; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_tex; layout(std140) uniform commonUniforms { vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0]; vec2 u_sdf_map_size; float u_raisingHeight: 0.0; float u_stroke_width : 2; float u_gamma_scale : 0.5; float u_halo_blur : 0.5; }; out vec2 v_uv; out float v_gamma_scale; out vec4 v_color; out vec4 v_stroke_color; out float v_fontScale; #pragma include "projection" #pragma include "picking" #pragma include "rotation_2d" void main() { // cal style mapping - 数据纹理映射部分的计算 v_uv = a_tex / u_sdf_map_size; v_color = vec4(a_Color.xyz, a_Color.w * opacity); v_stroke_color = vec4(u_stroke_color.xyz, u_stroke_color.w * opacity); // 文本缩放比例 float fontScale = a_Size / FONT_SIZE; v_fontScale = fontScale; vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); // vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); vec2 offset = rotate_matrix(a_textOffsets,rotation); // gl_Position = vec4(projected_position.xy / projected_position.w + rotation_matrix * a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0); float raiseHeight = u_raisingHeight; if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); raiseHeight = u_raisingHeight * mapboxZoomScale; } vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz + vec3(0.0, 0.0, raiseHeight), 1.0)); gl_Position = vec4( projected_position.xy / projected_position.w + offset * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0); v_gamma_scale = gl_Position.w; setPickingColor(a_PickingColor); } `,{isEqual:kd}=Qn;function L4(e){const t=this,r=e.id,i=[],s=[];if(!t.glyphInfoMap||!t.glyphInfoMap[r])return{vertices:[],indices:[],size:7};const u=t.glyphInfoMap[r].centroid,n=u.length===2?[u[0],u[1],0]:u;return t.glyphInfoMap[r].glyphQuads.forEach((y,m)=>{i.push(...n,y.tex.x,y.tex.y+y.tex.height,y.tl.x,y.tl.y,...n,y.tex.x+y.tex.width,y.tex.y+y.tex.height,y.tr.x,y.tr.y,...n,y.tex.x+y.tex.width,y.tex.y,y.br.x,y.br.y,...n,y.tex.x,y.tex.y,y.bl.x,y.bl.y),s.push(0+m*4,1+m*4,2+m*4,2+m*4,3+m*4,0+m*4)}),{vertices:i,indices:s,size:7}}class p7 extends Pi{constructor(...t){var r;super(...t),r=this,H(this,"glyphInfo",void 0),H(this,"glyphInfoMap",{}),H(this,"rawEncodeData",void 0),H(this,"texture",void 0),H(this,"currentZoom",-1),H(this,"extent",void 0),H(this,"textureHeight",0),H(this,"textCount",0),H(this,"preTextStyle",{}),H(this,"mapping",mt(function*(){r.initGlyph(),r.updateTexture(),yield r.reBuildModel()}))}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,TEXT_OFFSETS:10,UV:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t(_t({},t.uniformsOption),r.uniformsOption),{u_sdf_map:this.textures[0]})}getCommonUniformsInfo(){const{stroke:t="#fff",strokeWidth:r=0,halo:i=.5,gamma:s=2,raisingHeight:u=0}=this.layer.getLayerConfig(),n=this.getFontServiceMapping(),y=this.getFontServiceCanvas();n&&Object.keys(n).length!==this.textCount&&y&&(this.updateTexture(),this.textCount=Object.keys(n).length),this.preTextStyle=this.getTextStyle();const m={u_stroke_color:Mi(t),u_sdf_map_size:[(y==null?void 0:y.width)||1,(y==null?void 0:y.height)||1],u_raisingHeight:Number(u),u_stroke_width:r,u_gamma_scale:s,u_halo_blur:i};return this.getUniformsBufferInfo(m)}initModels(){var t=this;return mt(function*(){return t.bindEvent(),t.extent=t.textExtent(),t.rawEncodeData=t.layer.getEncodedData(),t.preTextStyle=t.getTextStyle(),t.initUniformsBuffer(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{textAllowOverlap:r=!1}=t.layer.getLayerConfig();return t.initGlyph(),t.updateTexture(),r||t.filterGlyphs(),[yield t.layer.buildLayerModel({moduleName:"pointText",vertexShader:O4,fragmentShader:D4,defines:t.getDefines(),inject:t.getInject(),triangulation:L4.bind(t),depth:{enable:!1}})]})()}needUpdate(){var t=this;return mt(function*(){const{textAllowOverlap:r=!1,textAnchor:i="center",textOffset:s,padding:u,fontFamily:n,fontWeight:y}=t.getTextStyle();if(!kd(u,t.preTextStyle.padding)||!kd(s,t.preTextStyle.textOffset)||!kd(i,t.preTextStyle.textAnchor)||!kd(n,t.preTextStyle.fontFamily)||!kd(y,t.preTextStyle.fontWeight))return yield t.mapping(),!0;if(r)return!1;const m=t.mapService.getZoom(),g=t.mapService.getBounds(),x=s8(t.extent,g);return Math.abs(t.currentZoom-m)>.5||!x||r!==t.preTextStyle.textAllowOverlap?(yield t.reBuildModel(),!0):!1})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.layer.off("remapping",this.mapping)}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"textOffsets",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.TEXT_OFFSETS,name:"a_textOffsets",buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[5],i[6]]}}),this.styleAttributeService.registerStyleAttribute({name:"textUv",type:br.Attribute,descriptor:{name:"a_tex",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=12}=t;return Array.isArray(r)?[r[0]]:[r]}}})}bindEvent(){this.layer.isTileLayer||this.layer.on("remapping",this.mapping)}textExtent(){const t=this.mapService.getBounds();return m6(t,.5)}initTextFont(){const{fontWeight:t,fontFamily:r}=this.getTextStyle(),i=this.rawEncodeData,s=[];i.forEach(u=>{let{shape:n=""}=u;n=n.toString();for(const y of n)s.indexOf(y)===-1&&s.push(y)}),this.fontService.setFontOptions({characterSet:s,fontWeight:t,fontFamily:r,iconfont:!1})}initIconFontTex(){const{fontWeight:t,fontFamily:r}=this.getTextStyle(),i=this.rawEncodeData,s=[];i.forEach(u=>{let{shape:n=""}=u;n=`${n}`,s.indexOf(n)===-1&&s.push(n)}),this.fontService.setFontOptions({characterSet:s,fontWeight:t,fontFamily:r,iconfont:!0})}getTextStyle(){const{fontWeight:t="400",fontFamily:r="sans-serif",textAllowOverlap:i=!1,padding:s=[0,0],textAnchor:u="center",textOffset:n=[0,0],opacity:y=1,strokeOpacity:m=1,strokeWidth:g=0,stroke:x="#000"}=this.layer.getLayerConfig();return{fontWeight:t,fontFamily:r,textAllowOverlap:i,padding:s,textAnchor:u,textOffset:n,opacity:y,strokeOpacity:m,strokeWidth:g,stroke:x}}generateGlyphLayout(t){const r=this.getFontServiceMapping(),{spacing:i=2,textAnchor:s="center",textOffset:u}=this.layer.getLayerConfig(),n=this.rawEncodeData;this.glyphInfo=n.map(y=>{const{shape:m="",id:g,size:x=1}=y,b=y.textOffset?y.textOffset:u||[0,0],F=y.textAnchor?y.textAnchor:s||"center",R=oN(m.toString(),r,x,F,"left",i,b,t),I=iN(R,b);return y.shaping=R,y.glyphQuads=I,y.centroid=h1(y.coordinates),this.glyphInfoMap[g]={shaping:R,glyphQuads:I,centroid:h1(y.coordinates)},y})}getFontServiceMapping(){const{fontWeight:t="400",fontFamily:r="sans-serif"}=this.layer.getLayerConfig();return this.fontService.getMappingByKey(`${r}_${t}`)}getFontServiceCanvas(){const{fontWeight:t="400",fontFamily:r="sans-serif"}=this.layer.getLayerConfig();return this.fontService.getCanvasByKey(`${r}_${t}`)}filterGlyphs(){const{padding:t=[0,0],textAllowOverlap:r=!1}=this.layer.getLayerConfig();if(r)return;this.glyphInfoMap={},this.currentZoom=this.mapService.getZoom(),this.extent=this.textExtent();const{width:i,height:s}=this.rendererService.getViewportSize(),u=new eN(i,s);this.glyphInfo.filter(y=>{const{shaping:m,id:g=0}=y,x=y.centroid,F=y.size/16,R=this.mapService.lngLatToContainer(x),{box:I}=u.placeCollisionBox({x1:m.left*F-t[0],x2:m.right*F+t[0],y1:m.top*F-t[1],y2:m.bottom*F+t[1],anchorPointX:R.x,anchorPointY:R.y});return I&&I.length?(u.insertCollisionBox(I,g),!0):!1}).forEach(y=>{this.glyphInfoMap[y.id]=y})}initGlyph(){const{iconfont:t=!1}=this.layer.getLayerConfig();t?this.initIconFontTex():this.initTextFont(),this.generateGlyphLayout(t)}updateTexture(){const{createTexture2D:t}=this.rendererService,r=this.getFontServiceCanvas();this.textureHeight=r.height,this.texture&&this.texture.destroy(),this.texture=t({data:r,mag:L.LINEAR,min:L.LINEAR,width:r.width,height:r.height}),this.textures=[this.texture]}reBuildModel(){var t=this;return mt(function*(){t.filterGlyphs();const r=yield t.layer.buildLayerModel({moduleName:"pointText",vertexShader:O4,fragmentShader:D4,triangulation:L4.bind(t),defines:t.getDefines(),inject:t.getInject(),depth:{enable:!1}});t.layer.models=[r]})()}}const nN={fillImage:WM,fill:i7,radar:QM,image:n7,normal:a7,simplePoint:IM,extrude:o7,text:p7,earthFill:UM,earthExtrude:OM};class wy extends A1{constructor(...t){super(...t),H(this,"type","PointLayer"),H(this,"enableShaderEncodeStyles",["stroke","offsets","opacity","rotation"]),H(this,"enableDataEncodeStyles",["textOffset","textAnchor"]),H(this,"defaultSourceConfig",{data:[],options:{parser:{type:"json",x:"lng",y:"lat"}}})}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel&&t.layerModel.clearModels(),t.layerModel=new nN[r](t),yield t.initLayerModels()})()}rebuildModels(){var t=this;return mt(function*(){yield t.buildModels()})()}getModelTypeWillEmptyData(){if(this.shapeOption){const{field:t,values:r}=this.shapeOption,{shape2d:i}=this.getLayerConfig(),s=this.iconService.getIconMap();if(t&&(i==null?void 0:i.indexOf(t))!==-1)return"fill";if(r==="text")return"text";if(r&&r instanceof Array){for(const u of r)if(typeof u=="string"&&s.hasOwnProperty(u))return"image"}}return"normal"}getDefaultConfig(){const t=this.getModelType();return{fillImage:{},normal:{blend:"additive"},radar:{},simplePoint:{},fill:{blend:"normal"},extrude:{},image:{},text:{blend:"normal"},tile:{},tileText:{},earthFill:{},earthExtrude:{}}[t]}getModelType(){const t=this.getEncodedData(),{shape2d:r,shape3d:i,billboard:s=!0}=this.getLayerConfig(),u=this.iconService.getIconMap(),n=t.find(y=>y.hasOwnProperty("shape"));if(n){const y=n.shape;return y==="dot"?"normal":y==="simple"?"simplePoint":y==="radar"?"radar":this.layerType==="fillImage"||s===!1?"fillImage":(r==null?void 0:r.indexOf(y))!==-1?this.mapService.version==="GLOBEL"?"earthFill":"fill":(i==null?void 0:i.indexOf(y))!==-1?this.mapService.version==="GLOBEL"?"earthExtrude":"extrude":u.hasOwnProperty(y)?"image":"text"}else return this.getModelTypeWillEmptyData()}}function aN(e){return j2.apply(this,arguments)}function j2(){return j2=mt(function*(e){if(window.createImageBitmap){const t=yield fetch(e);return yield createImageBitmap(yield t.blob())}else{const t=new window.Image;return new Promise(r=>{t.onload=()=>r(t),t.src=e,t.crossOrigin="Anonymous"})}}),j2.apply(this,arguments)}const sN=`layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; in vec4 v_Color; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { // top face if(u_topsurface < 1.0) { discard; } outputColor = v_Color; outputColor = filterColor(outputColor); } `,uN=` layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; in vec4 v_Color; in vec3 v_uvs; in vec2 v_texture_data; out vec4 outputColor; #pragma include "scene_uniforms" #pragma include "picking" void main() { float isSide = v_texture_data.x; float sidey = v_uvs[2]; float lightWeight = v_texture_data.y; // Tip: 部分机型 GPU 计算精度兼容 if(isSide < 0.999) { // side face if(u_sidesurface < 1.0) { discard; } if( u_linearColor == 1.0) { // side use linear vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey); linearColor.rgb *= lightWeight; outputColor = linearColor; } else { // side notuse linear outputColor = v_Color; } } else { // top face if(u_topsurface < 1.0) { discard; } outputColor = v_Color; } outputColor = filterColorAlpha(outputColor, lightWeight); } `,pN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; out vec4 v_Color; out vec3 v_uvs; out vec2 v_texture_data; #pragma include "projection" #pragma include "light" #pragma include "picking" void main() { v_uvs = a_uvs; // cal style mapping - 数据纹理映射部分的计算 vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); vec4 project_pos = project_position(pos, a_Position64Low); if (u_heightfixed > 0.0) { // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); float lightWeight = calc_lighting(project_pos); v_texture_data = vec2(a_Position.z, lightWeight); v_Color = vec4(a_Color.rgb * lightWeight, a_Color.w * opacity); setPickingColor(a_PickingColor); } `,lN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; out vec4 v_Color; #pragma include "projection" #pragma include "light" #pragma include "picking" void main() { float isSide = a_Position.z; float topU = a_uvs[0]; float topV = 1.0 - a_uvs[1]; float sidey = a_uvs[2]; vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); vec4 project_pos = project_position(pos, a_Position64Low); float lightWeight = calc_lighting(project_pos); if (u_heightfixed > 0.0) { // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); // Tip: 部分机型 GPU 计算精度兼容 if (isSide < 0.999) { // side face // if(u_sidesurface < 1.0) { // discard; // } if (u_linearColor == 1.0) { vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey); linearColor.rgb *= lightWeight; v_Color = linearColor; } else { v_Color = a_Color; } } else { v_Color = a_Color; } v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity); setPickingColor(a_PickingColor); } `,cN=`uniform sampler2D u_texture; layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; in vec4 v_Color; in vec3 v_uvs; in vec2 v_texture_data; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { float opacity = u_opacity; float isSide = v_texture_data.x; float lightWeight = v_texture_data.y; float topU = v_uvs[0]; float topV = 1.0 - v_uvs[1]; float sidey = v_uvs[2]; outputColor = texture(SAMPLER_2D(u_texture), vec2(topU, topV)); // Tip: 部分机型 GPU 计算精度兼容 if (isSide < 0.999) {// 是否是边缘 // side face if (u_sidesurface < 1.0) { discard; } if (u_linearColor == 1.0) { vec4 linearColor = mix(u_targetColor, u_sourceColor, sidey); linearColor.rgb *= lightWeight; outputColor = linearColor; } else { outputColor = v_Color; } } else { // top face if (u_topsurface < 1.0) { discard; } } outputColor.a *= opacity; outputColor = filterColor(outputColor); } `,dN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; layout(location = ATTRIBUTE_LOCATION_UV) in vec3 a_uvs; layout(std140) uniform commonUniforms { vec4 u_sourceColor; vec4 u_targetColor; float u_linearColor; float u_topsurface; float u_sidesurface; float u_heightfixed; // 默认不固定 float u_raisingHeight; }; out vec4 v_Color; out vec3 v_uvs; out vec2 v_texture_data; #pragma include "projection" #pragma include "light" #pragma include "picking" void main() { vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size, 1.0); vec4 project_pos = project_position(pos, a_Position64Low); float lightWeight = calc_lighting(project_pos); v_uvs = a_uvs; v_Color = a_Color; v_Color.a *= opacity; v_texture_data = vec2(a_Position.z, lightWeight); if (u_heightfixed > 0.0) { // 判断几何体是否固定高度 project_pos.z = a_Position.z * a_Size; project_pos.z += u_raisingHeight; if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); } `;class yN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:10,UV:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{mapTexture:t,heightfixed:r=!1,raisingHeight:i=0,topsurface:s=!0,sidesurface:u=!0,sourceColor:n,targetColor:y}=this.layer.getLayerConfig();let m=0,g=[1,1,1,1],x=[1,1,1,1];n&&y&&(g=Mi(n),x=Mi(y),m=1);const b={u_sourceColor:g,u_targetColor:x,u_linearColor:m,u_topsurface:Number(s),u_sidesurface:Number(u),u_heightfixed:Number(r),u_raisingHeight:Number(i)};return t&&this.texture&&(b.u_texture=this.texture,this.textures=[this.texture]),this.getUniformsBufferInfo(b)}initModels(){var t=this;return mt(function*(){return yield t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,depth:{enable:!0},defines:t.getDefines(),inject:t.getInject(),triangulation:Q9})]})()}getShaders(){const{pickLight:t,mapTexture:r}=this.layer.getLayerConfig();return r?{frag:cN,vert:dN,type:"polygonExtrudeTexture"}:t?{frag:uN,vert:pN,type:"polygonExtrudePickLight"}:{frag:sN,vert:lN,type:"polygonExtrude"}}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy(),this.textures=[]}registerBuiltinAttributes(){const t=this.layer.getSource().extent,r=t[2]-t[0],i=t[3]-t[1];this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uvs",type:br.Attribute,descriptor:{name:"a_uvs",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(s,u,n)=>{const y=n[0],m=n[1];return[(y-t[0])/r,(m-t[1])/i,n[4]]}}}),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(s,u,n,y,m)=>m}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:s=>{const{size:u=10}=s;return Array.isArray(u)?[u[0]]:[u]}}})}loadTexture(){var t=this;return mt(function*(){const{mapTexture:r}=t.layer.getLayerConfig(),{createTexture2D:i}=t.rendererService;if(t.texture=i({height:1,width:1}),r){const s=yield aN(r);t.texture=i({data:s,width:s.width,height:s.height,wrapS:L.CLAMP_TO_EDGE,wrapT:L.CLAMP_TO_EDGE,min:L.LINEAR,mag:L.LINEAR})}})()}}const hN=` in vec4 v_Color; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { outputColor = v_Color; outputColor = filterColor(outputColor); } `,fN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_SIZE) in float a_Size; layout(location = ATTRIBUTE_LOCATION_NORMAL) in vec3 a_Normal; out vec4 v_Color; #pragma include "projection" #pragma include "light" #pragma include "picking" void main() { vec4 pos = vec4(a_Position.xy, a_Position.z * a_Size + (1.0 - a_Position.z) * extrusionBase, 1.0); vec4 project_pos = project_position(pos, a_Position64Low); float lightWeight = calc_lighting(project_pos); v_Color = a_Color; v_Color = vec4(v_Color.rgb * lightWeight, v_Color.w * opacity); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); } `;class mN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,SIZE:9,NORMAL:10,EXTRUSION_BASE:11})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const t={};return this.getUniformsBufferInfo(t)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,type:s}=t.getShaders();return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:s,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:Q9,depth:{enable:!0}})]})()}getShaders(){return{frag:hN,vert:fN,type:"polygonExtrude"}}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"normal",type:br.Attribute,descriptor:{name:"a_Normal",shaderLocation:this.attributeLocation.NORMAL,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(t,r,i,s,u)=>u}}),this.styleAttributeService.registerStyleAttribute({name:"size",type:br.Attribute,descriptor:{name:"a_Size",shaderLocation:this.attributeLocation.SIZE,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{size:r=10}=t;return Array.isArray(r)?[r[0]]:[r]}}}),this.styleAttributeService.registerStyleAttribute({name:"extrusionBase",type:br.Attribute,descriptor:{name:"a_ExtrusionBase",shaderLocation:this.attributeLocation.EXTRUSION_BASE,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:1,update:t=>{const{extrusionBase:r=0}=t;return[r]}}})}}const _N=`in vec4 v_color; #pragma include "scene_uniforms" #pragma include "picking" out vec4 outputColor; void main() { outputColor = v_color; outputColor = filterColor(outputColor); } `,gN=` layout(std140) uniform commonUniforms { float u_raisingHeight; float u_opacitylinear; float u_dir; }; in vec4 v_color; in vec3 v_linear; in vec2 v_pos; out vec4 outputColor; #pragma include "scene_uniforms" #pragma include "picking" void main() { outputColor = v_color; if (u_opacitylinear > 0.0) { outputColor.a *= u_dir == 1.0 ? 1.0 - length(v_pos - v_linear.xy)/v_linear.z : length(v_pos - v_linear.xy)/v_linear.z; } outputColor = filterColor(outputColor); } `,vN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_LINEAR) in vec3 a_linear; layout(std140) uniform commonUniforms { float u_raisingHeight; float u_opacitylinear; float u_dir; }; out vec4 v_color; out vec3 v_linear; out vec2 v_pos; #pragma include "projection" #pragma include "picking" void main() { if (u_opacitylinear > 0.0) { v_linear = a_linear; v_pos = a_Position.xy; } v_color = vec4(a_Color.xyz, a_Color.w * opacity); vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); project_pos.z += u_raisingHeight; if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); } `,EN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(std140) uniform commonUniforms { float u_raisingHeight; }; out vec4 v_color; #pragma include "projection" #pragma include "picking" void main() { // cal style mapping - 数据纹理映射部分的计算 v_color = vec4(a_Color.xyz, a_Color.w * opacity); vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); project_pos.z += u_raisingHeight; if ( u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET ) { float mapboxZoomScale = 4.0 / pow(2.0, 21.0 - u_Zoom); project_pos.z *= mapboxZoomScale; project_pos.z += u_raisingHeight * mapboxZoomScale; } gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); setPickingColor(a_PickingColor); } `;class xN extends Pi{get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,LINEAR:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{raisingHeight:t=0,opacityLinear:r={enable:!1,dir:"in"}}=this.layer.getLayerConfig(),i={u_raisingHeight:Number(t),u_opacitylinear:Number(r.enable),u_dir:r.dir==="in"?1:0};return this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){const{frag:r,vert:i,triangulation:s,type:u}=t.getModelParams();return t.initUniformsBuffer(),t.layer.triangulation=s,[yield t.layer.buildLayerModel({moduleName:u,vertexShader:i,fragmentShader:r,defines:t.getDefines(),inject:t.getInject(),triangulation:s,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute();const{opacityLinear:t={enable:!1,dir:"in"}}=this.layer.getLayerConfig();t.enable&&this.styleAttributeService.registerStyleAttribute({name:"linear",type:br.Attribute,descriptor:{name:"a_linear",shaderLocation:this.attributeLocation.LINEAR,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:3,update:(r,i,s)=>[s[3],s[4],s[5]]}})}getModelParams(){const{opacityLinear:t={enable:!1}}=this.layer.getLayerConfig();return t.enable?{frag:gN,vert:vN,type:"polygonLinear",triangulation:PI}:{frag:_N,vert:EN,type:"polygonFill",triangulation:By}}}const PN=` layout(std140) uniform commonUniforms { vec4 u_watercolor; vec4 u_watercolor2; float u_time; }; in vec2 v_uv; in float v_opacity; out vec4 outputColor; float coast2water_fadedepth = 0.10; float large_waveheight = .750; // change to adjust the "heavy" waves float large_wavesize = 3.4; // factor to adjust the large wave size float small_waveheight = 0.6; // change to adjust the small random waves float small_wavesize = 0.5; // factor to ajust the small wave size float water_softlight_fact = 15.; // range [1..200] (should be << smaller than glossy-fact) float water_glossylight_fact= 120.; // range [1..200] float particle_amount = 70.; vec3 water_specularcolor = vec3(1.3, 1.3, 0.9); // specular Color (RGB) of the water-highlights #define light vec3(-0., sin(u_time*0.5)*.5 + .35, 2.8) // position of the sun uniform sampler2D u_texture1; uniform sampler2D u_texture2; uniform sampler2D u_texture3; float hash( float n ) { return fract(sin(n)*43758.5453123); } // 2d noise function float noise1( in vec2 x ) { vec2 p = floor(x); vec2 f = smoothstep(0.0, 1.0, fract(x)); float n = p.x + p.y*57.0; return mix(mix( hash(n+ 0.0), hash(n+ 1.0),f.x), mix( hash(n+ 57.0), hash(n+ 58.0),f.x),f.y); } float noise(vec2 p) { return texture(SAMPLER_2D(u_texture2),p*vec2(1./256.)).x; } vec4 highness(vec2 p) { vec4 t = texture(SAMPLER_2D(u_texture1),fract(p)); float clipped = -2.0-smoothstep(3.,10.,t.a)*6.9-smoothstep(10.,100.,t.a)*89.9-smoothstep(0.,10000.,t.a)*10000.0; return clamp(t, 0.0,3.0)+clamp(t/3.0-1.0, 0.0,1.0)+clamp(t/16.0-1.0, 0.0,1.0); } float height_map( vec2 p ) { vec4 height=highness(p); /* height = -0.5+ 0.5*smoothstep(-100.,0.,-height)+ 2.75*smoothstep(0.,2.,height)+ 1.75*smoothstep(2.,4.,height)+ 2.75*smoothstep(4.,16.,height)+ 1.5*smoothstep(16.,1000.,height); */ mat2 m = mat2( 0.9563*1.4, -0.2924*1.4, 0.2924*1.4, 0.9563*1.4 ); //p = p*6.; float f = 0.6000*noise1( p ); p = m*p*1.1*6.; f += 0.2500*noise( p ); p = m*p*1.32; f += 0.1666*noise( p ); p = m*p*1.11; f += 0.0834*noise( p ); p = m*p*1.12; f += 0.0634*noise( p ); p = m*p*1.13; f += 0.0444*noise( p ); p = m*p*1.14; f += 0.0274*noise( p ); p = m*p*1.15; f += 0.0134*noise( p ); p = m*p*1.16; f += 0.0104*noise( p ); p = m*p*1.17; f += 0.0084*noise( p ); f = .25*f+dot(height,vec4(-.03125,-.125,.25,.25))*.5; const float FLAT_LEVEL = 0.92525; //f = f*0.25+height*0.75; if (f level) { col = CalcTerrain(uv, height); } if (height <= level) { vec2 dif = vec2(.0, .01); vec2 pos = uv*15. + vec2(u_time*.01); float h1 = water_map(pos-dif,waveheight); float h2 = water_map(pos+dif,waveheight); float h3 = water_map(pos-dif.yx,waveheight); float h4 = water_map(pos+dif.yx,waveheight); vec3 normwater = normalize(vec3(h3-h4, h1-h2, .125)); // norm-vector of the 'bumpy' water-plane uv += normwater.xy*.002*(level-height); col = CalcTerrain(uv, height); float coastfade = clamp((level-height)/coast2water_fadedepth, 0., 1.); float coastfade2= clamp((level-height)/deepwater_fadedepth, 0., 1.); float intensity = col.r*.2126+col.g*.7152+col.b*.0722; watercolor = mix(watercolor*intensity, watercolor2, smoothstep(0., 1., coastfade2)); vec3 r0 = vec3(uv, WATER_LEVEL); vec3 rd = normalize( light - r0 ); // ray-direction to the light from water-position float grad = dot(normwater, rd); // dot-product of norm-vector and light-direction float specular = pow(grad, water_softlight_fact); // used for soft highlights float specular2= pow(grad, water_glossylight_fact); // used for glossy highlights float gradpos = dot(vec3(0., 0., 1.), rd); float specular1= smoothstep(0., 1., pow(gradpos, 5.)); // used for diffusity (some darker corona around light's specular reflections...) float watershade = test_shadow( uv, level ); watercolor *= 2.2+watershade; watercolor += (.2+.8*watershade) * ((grad-1.0)*.5+specular) * .25; watercolor /= (1.+specular1*1.25); watercolor += watershade*specular2*water_specularcolor; watercolor += watershade*coastfade*(1.-coastfade2)*(vec3(.5, .6, .7)*nautic(uv)+vec3(1., 1., 1.)*particles(uv)); col = mix(col, watercolor, coastfade); } outputColor = vec4(col, v_opacity); } `,bN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv; layout(std140) uniform commonUniforms { vec4 u_watercolor; vec4 u_watercolor2; float u_time; }; out vec2 v_uv; out float v_opacity; #pragma include "projection" void main() { v_uv = a_uv; v_opacity = opacity; vec4 project_pos = project_position(vec4(a_Position, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); } `;class AN extends Pi{constructor(...t){super(...t),H(this,"texture1",void 0),H(this,"texture2",void 0),H(this,"texture3",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{watercolor:t="#6D99A8",watercolor2:r="#0F121C"}=this.layer.getLayerConfig(),i={u_watercolor:Mi(t),u_watercolor2:Mi(r),u_time:this.layer.getLayerAnimateTime(),u_texture1:this.texture1,u_texture2:this.texture2,u_texture3:this.texture3};return this.textures=[this.texture1,this.texture2,this.texture3],this.getUniformsBufferInfo(i)}getAnimateUniforms(){return{u_time:this.layer.getLayerAnimateTime()}}initModels(){var t=this;return mt(function*(){return t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"polygonOcean",vertexShader:bN,fragmentShader:PN,defines:t.getDefines(),inject:t.getInject(),triangulation:By,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}clearModels(){var t,r,i;(t=this.texture1)===null||t===void 0||t.destroy(),(r=this.texture2)===null||r===void 0||r.destroy(),(i=this.texture3)===null||i===void 0||i.destroy()}registerBuiltinAttributes(){const t=this.layer.getSource().extent,[r,i,s,u]=t,n=s-r,y=u-i;this.styleAttributeService.registerStyleAttribute({name:"oceanUv",type:br.Attribute,descriptor:{name:"a_uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(m,g,x)=>{const[b,F]=x;return[(b-r)/n,(F-i)/y]}}})}loadTexture(){const{createTexture2D:t}=this.rendererService,r={height:0,width:0};this.texture1=t(r),this.texture2=t(r),this.texture3=t(r),i(u=>{this.texture1=s(u[0]),this.texture2=s(u[1]),this.texture3=s(u[2]),this.layerService.reRender()});function i(u){let n=0;const y=[];["https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ","https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*MJ22QbpuCzIAAAAAAAAAAAAAARQnAQ","https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*-z2HSIVDsHIAAAAAAAAAAAAAARQnAQ"].map(g=>{const x=new Image;x.crossOrigin="",x.src=g,y.push(x),x.onload=()=>{n++,n===3&&u(y)}})}function s(u){return t({data:u,width:u.width,height:u.height,wrapS:L.MIRRORED_REPEAT,wrapT:L.MIRRORED_REPEAT,min:L.LINEAR,mag:L.LINEAR})}}}const FN=`uniform sampler2D u_texture; layout(std140) uniform commonUniforms { float u_speed; float u_time; }; out vec4 outputColor; in vec4 v_Color; in vec2 v_uv; float rand(vec2 n) { return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453); } float water(vec3 p) { float t = u_time * u_speed; p.z += t * 2.; p.x += t * 2.; vec3 c1 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz; p.z += t * 3.; p.x += t * 0.52; vec3 c2 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz; p.z += t * 4.; p.x += t * 0.8; vec3 c3 = texture(SAMPLER_2D(u_texture), p.xz / 30.).xyz; c1 += c2 - c3; float z = (c1.x + c1.y + c1.z) / 3.; return p.y + z / 4.; } float map(vec3 p) { float d = 100.0; d = water(p); return d; } float intersect(vec3 ro, vec3 rd) { float d = 0.0; for (int i = 0; i <= 100; i++) { float h = map(ro + rd * d); if (h < 0.1) return d; d += h; } return 0.0; } vec3 norm(vec3 p) { float eps = .1; return normalize(vec3( map(p + vec3(eps, 0, 0)) - map(p + vec3(-eps, 0, 0)), map(p + vec3(0, eps, 0)) - map(p + vec3(0, -eps, 0)), map(p + vec3(0, 0, eps)) - map(p + vec3(0, 0, -eps)) )); } float calSpc() { vec3 l1 = normalize(vec3(1, 1, 1)); vec3 ro = vec3(-3, 20, -8); vec3 rc = vec3(0, 0, 0); vec3 ww = normalize(rc - ro); vec3 uu = normalize(cross(vec3(0,1,0), ww)); vec3 vv = normalize(cross(rc - ro, uu)); vec3 rd = normalize(uu * v_uv.x + vv * v_uv.y + ww); float d = intersect(ro, rd); vec3 p = ro + rd * d; vec3 n = norm(p); float spc = pow(max(0.0, dot(reflect(l1, n), rd)), 30.0); return spc; } void main() { outputColor = v_Color; float spc = calSpc(); outputColor += spc * 0.4; } `,TN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_COLOR) in vec4 a_Color; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_uv; layout(std140) uniform commonUniforms { float u_speed; float u_time; }; out vec4 v_Color; out vec2 v_uv; #pragma include "projection" void main() { v_uv = a_uv; v_Color = a_Color; v_Color.a *= opacity; vec4 project_pos = project_position(vec4(a_Position, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); } `;class SN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{speed:t=.5}=this.layer.getLayerConfig(),r={u_speed:t,u_time:this.layer.getLayerAnimateTime(),u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(r)}getAnimateUniforms(){return{u_time:this.layer.getLayerAnimateTime()}}initModels(){var t=this;return mt(function*(){return t.loadTexture(),t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"polygonWater",vertexShader:TN,fragmentShader:FN,triangulation:By,defines:t.getDefines(),inject:t.getInject(),primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1,diagnosticDerivativeUniformityEnabled:!1})]})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){const t=this.layer.getSource().extent,[r,i,s,u]=t,n=s-r,y=u-i;this.styleAttributeService.registerStyleAttribute({name:"waterUv",type:br.Attribute,descriptor:{name:"a_uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.STATIC_DRAW,data:[],type:L.FLOAT},size:2,update:(m,g,x)=>{const[b,F]=x;return[(b-r)/n,(F-i)/y]}}})}loadTexture(){const{waterTexture:t}=this.layer.getLayerConfig(),{createTexture2D:r}=this.rendererService;this.texture=r({height:1,width:1});const i=new Image;i.crossOrigin="",t?(console.warn("L7 recommend:https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ"),i.src=t):i.src="https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*EojwT4VzSiYAAAAAAAAAAAAAARQnAQ",i.onload=()=>{this.texture=r({data:i,width:i.width,height:i.height,wrapS:L.MIRRORED_REPEAT,wrapT:L.MIRRORED_REPEAT,min:L.LINEAR,mag:L.LINEAR}),this.layerService.reRender()}}}const wN={fill:xN,line:t7,extrude:yN,text:p7,point_fill:i7,point_image:n7,point_normal:a7,point_extrude:o7,water:SN,ocean:AN,extrusion:mN};class l7 extends A1{constructor(...t){super(...t),H(this,"type","PolygonLayer"),H(this,"enableShaderEncodeStyles",["opacity","extrusionBase","rotation","offsets","stroke"])}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new wN[r](t),yield t.initLayerModels()})()}getModelType(){var t;const r=this.styleAttributeService.getLayerStyleAttribute("shape"),i=r==null||(t=r.scale)===null||t===void 0?void 0:t.field;return i==="fill"||!i?"fill":i==="extrude"?"extrude":i==="extrusion"?"extrusion":i==="water"?"water":i==="ocean"?"ocean":i==="line"?"line":this.getPointModelType()}getPointModelType(){const t=this.getEncodedData(),{shape2d:r,shape3d:i}=this.getLayerConfig(),s=this.iconService.getIconMap(),u=t.find(n=>n.hasOwnProperty("shape"));if(u){const n=u.shape;return n==="dot"?"point_normal":(r==null?void 0:r.indexOf(n))!==-1?"point_fill":(i==null?void 0:i.indexOf(n))!==-1?"point_extrude":s.hasOwnProperty(n)?"point_image":"text"}else return"fill"}}const RN=`layout(std140) uniform commonUniforms { vec2 u_domain; float u_opacity; float u_noDataValue; float u_clampLow; float u_clampHigh; }; uniform sampler2D u_rasterTexture; uniform sampler2D u_colorTexture; in vec2 v_texCoord; bool isnan_emu(float x) { return (x > 0.0 || x < 0.0) ? x != x : x != 0.0; } out vec4 outputColor; void main() { // Can use any component here since u_rasterTexture is under luminance format. float value = texture(SAMPLER_2D(u_rasterTexture), vec2(v_texCoord.x, v_texCoord.y)).r; if (value == u_noDataValue || isnan_emu(value)) { discard; } else if ((u_clampLow < 0.5 && value < u_domain[0]) || (u_clampHigh < 0.5 && value > u_domain[1])) { discard; } else { float normalisedValue =(value - u_domain[0]) / (u_domain[1] - u_domain[0]); vec4 color = texture(SAMPLER_2D(u_colorTexture), vec2(normalisedValue, 0)); outputColor = color; outputColor.a = outputColor.a * u_opacity ; if (outputColor.a < 0.01) discard; } } `,CN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_domain; float u_opacity; float u_noDataValue; float u_clampLow; float u_clampHigh; }; out vec2 v_texCoord; #pragma include "projection" void main() { v_texCoord = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); } `;let B4=class extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"colorTexture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,clampLow:r=!0,clampHigh:i=!0,noDataValue:s=-9999999,domain:u,rampColors:n}=this.layer.getLayerConfig(),y=u||h6(n);this.colorTexture=this.layer.textureService.getColorTexture(n,y);const m={u_domain:y,u_opacity:t||1,u_noDataValue:s,u_clampLow:r?1:0,u_clampHigh:(typeof i<"u"?i:r)?1:0,u_rasterTexture:this.texture,u_colorTexture:this.colorTexture};return this.textures=[this.texture,this.colorTexture],this.getUniformsBufferInfo(m)}getRasterData(t){return mt(function*(){if(Array.isArray(t.data))return{data:t.data,width:t.width,height:t.height};{const{rasterData:r,width:i,height:s}=yield t.data;return{data:Array.from(r),width:i,height:s}}})()}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i,queryVerdorInfo:s}=t.rendererService,u=r.data.dataArray[0],{data:n,width:y,height:m}=yield t.getRasterData(u);return t.texture=i({data:new Float32Array(n),width:y,height:m,format:s()==="WebGL1"?L.LUMINANCE:L.RED,type:L.FLOAT,alignment:1}),[yield t.layer.buildLayerModel({moduleName:"rasterImageData",vertexShader:CN,fragmentShader:RN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1})]})()}clearModels(){var t,r;(t=this.texture)===null||t===void 0||t.destroy(),(r=this.colorTexture)===null||r===void 0||r.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{shaderLocation:this.attributeLocation.UV,name:"a_Uv",buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}};const IN=["data"],MN=["rasterData"],NN=`uniform sampler2D u_texture; layout(std140) uniform commonUniforms { vec2 u_rminmax; vec2 u_gminmax; vec2 u_bminmax; float u_opacity; float u_noDataValue; }; in vec2 v_texCoord; out vec4 outputColor; void main() { vec3 rgb = texture(SAMPLER_2D(u_texture),vec2(v_texCoord.x,v_texCoord.y)).rgb; if(rgb == vec3(u_noDataValue)) { outputColor = vec4(0.0, 0, 0, 0.0); } else { outputColor = vec4(rgb.r / (u_rminmax.y -u_rminmax.x), rgb.g /(u_gminmax.y -u_gminmax.x), rgb.b/ (u_bminmax.y - u_bminmax.x), u_opacity); } if(outputColor.a < 0.01) discard; }`,DN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_POSITION_64LOW) in vec2 a_Position64Low; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec2 u_rminmax; vec2 u_gminmax; vec2 u_bminmax; float u_opacity; float u_noDataValue; }; out vec2 v_texCoord; #pragma include "projection" void main() { v_texCoord = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0), a_Position64Low); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); } `;class ON extends Pi{constructor(...t){super(...t),H(this,"texture",void 0),H(this,"dataOption",{})}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,noDataValue:r=0}=this.layer.getLayerConfig(),{rMinMax:i=[0,255],gMinMax:s=[0,255],bMinMax:u=[0,255]}=this.dataOption,n={u_rminmax:i,u_gminmax:s,u_bminmax:u,u_opacity:t||1,u_noDataValue:r,u_texture:this.texture};return this.textures=[this.texture],this.getUniformsBufferInfo(n)}getRasterData(t){var r=this;return mt(function*(){if(Array.isArray(t.data)){const{data:n}=t,y=$p(t,IN);return r.dataOption=y,_t({data:n},y)}const i=yield t.data,{rasterData:s}=i,u=$p(i,MN);return r.dataOption=u,Array.isArray(s)?_t({data:s},u):_t({data:Array.from(s)},u)})()}initModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i}=t.rendererService,s=r.data.dataArray[0],{data:u,width:n,height:y}=yield t.getRasterData(s);return t.texture=i({data:new Float32Array(u),width:n,height:y,format:L.RGB,type:L.FLOAT}),[yield t.layer.buildLayerModel({moduleName:"rasterImageDataRGBA",vertexShader:DN,fragmentShader:NN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1},pickingEnabled:!1})]})()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}}const LN=`uniform sampler2D u_texture; uniform sampler2D u_colorTexture; layout(std140) uniform commonUniforms { vec4 u_unpack; vec2 u_domain; float u_opacity; float u_noDataValue; float u_clampLow; float u_clampHigh; }; in vec2 v_texCoord; out vec4 outputColor; float getElevation(vec2 coord, float bias) { // Convert encoded elevation value to meters vec4 data = texture(SAMPLER_2D(u_texture), coord,bias) * 255.0; data.a = -1.0; return dot(data, u_unpack); } vec4 getColor(float value) { float normalisedValue =(value- u_domain[0]) / (u_domain[1] - u_domain[0]); vec2 coord = vec2(normalisedValue, 0); return texture(SAMPLER_2D(u_colorTexture), coord); } void main() { float value = getElevation(v_texCoord,0.0); if (value == u_noDataValue) { outputColor = vec4(0.0, 0, 0, 0.0); } else if ((u_clampLow < 0.5 && value < u_domain[0]) || (u_clampHigh < 0.5 && value > u_domain[1])) { outputColor = vec4(0.0, 0, 0, 0.0); } else { outputColor = getColor(value); outputColor.a = outputColor.a * u_opacity ; if(outputColor.a < 0.01) discard; } } `,BN=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(location = ATTRIBUTE_LOCATION_UV) in vec2 a_Uv; layout(std140) uniform commonUniforms { vec4 u_unpack; vec2 u_domain; float u_opacity; float u_noDataValue; float u_clampLow; float u_clampHigh; }; out vec2 v_texCoord; #pragma include "projection" void main() { v_texCoord = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0.0, 1.0)); } `;class UN extends Pi{constructor(...t){super(...t),H(this,"texture",void 0)}get attributeLocation(){return Object.assign(super.attributeLocation,{MAX:super.attributeLocation.MAX,UV:9})}getCommonUniformsInfo(){const{opacity:t,clampLow:r=!0,clampHigh:i=!0,noDataValue:s=-9999999,domain:u,rampColors:n,colorTexture:y,rScaler:m=6553.6,gScaler:g=25.6,bScaler:x=.1,offset:b=1e4}=this.layer.getLayerConfig(),F=u||h6(n);let R=y;y?this.layer.textureService.setColorTexture(y,n,F):R=this.layer.textureService.getColorTexture(n,F);const I={u_unpack:[m,g,x,b],u_domain:F,u_opacity:t||1,u_noDataValue:s,u_clampLow:r,u_clampHigh:typeof i<"u"?i:r,u_texture:this.texture,u_colorTexture:R};return this.textures=[this.texture,R],this.getUniformsBufferInfo(I)}initModels(){var t=this;return mt(function*(){t.initUniformsBuffer();const r=t.layer.getSource(),{createTexture2D:i}=t.rendererService,s=yield r.data.images;return t.texture=i({data:s[0],width:s[0].width,height:s[0].height,min:L.LINEAR,mag:L.LINEAR}),[yield t.layer.buildLayerModel({moduleName:"RasterTileDataImage",vertexShader:BN,fragmentShader:LN,defines:t.getDefines(),triangulation:Kf,primitive:L.TRIANGLES,depth:{enable:!1}})]})()}clearModels(){var t;(t=this.texture)===null||t===void 0||t.destroy()}buildModels(){var t=this;return mt(function*(){return t.initModels()})()}registerBuiltinAttributes(){this.registerPosition64LowAttribute(),this.styleAttributeService.registerStyleAttribute({name:"uv",type:br.Attribute,descriptor:{name:"a_Uv",shaderLocation:this.attributeLocation.UV,buffer:{usage:L.DYNAMIC_DRAW,data:[],type:L.FLOAT},size:2,update:(t,r,i)=>[i[3],i[4]]}})}}const kN={raster:B4,rasterRgb:ON,raster3d:B4,rasterTerrainRgb:UN};class k6 extends A1{constructor(...t){super(...t),H(this,"type","RasterLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new kN[r](t),yield t.initLayerModels()})()}getDefaultConfig(){const t=this.getModelType();return{raster:{},rasterRgb:{},raster3d:{},rasterTerrainRgb:{}}[t]}getModelType(){switch(this.layerSource.getParserType()){case"raster":return"raster";case"rasterRgb":return"rasterRgb";case"rgb":return"rasterRgb";case"image":return"rasterTerrainRgb";default:return"raster"}}getLegend(t){if(t!=="color")return{type:void 0,field:void 0,items:[]};const r=this.getLayerConfig().rampColors;return e7(r,t)}}class zN{constructor({rendererService:t,layerService:r,parent:i}){H(this,"tileResource",new Map),H(this,"rendererService",void 0),H(this,"layerService",void 0),H(this,"parent",void 0),H(this,"layerTiles",[]),this.rendererService=t,this.layerService=r,this.parent=i}get tiles(){return this.layerTiles}hasTile(t){return this.layerTiles.some(r=>r.key===t)}addTile(t){this.layerTiles.push(t)}getTile(t){return this.layerTiles.find(r=>r.key===t)}getVisibleTileBylngLat(t){return this.layerTiles.find(r=>r.isLoaded&&r.visible&&r.lnglatInBounds(t))}removeTile(t){const r=this.layerTiles.findIndex(s=>s.key===t),i=this.layerTiles.splice(r,1);i[0]&&i[0].destroy()}updateTileVisible(t){const r=this.getTile(t.key);if(t.isVisible)if(t.parent){const i=this.isChildrenLoaded(t.parent);r==null||r.updateVisible(i)}else r==null||r.updateVisible(!0);else if(t.parent){const i=this.isChildrenLoaded(t.parent);r==null||r.updateVisible(!i)}else r==null||r.updateVisible(!1)}isParentLoaded(t){const r=t.parent;if(!r)return!0;const i=this.getTile(r==null?void 0:r.key);return!!(i!=null&&i.isLoaded)}isChildrenLoaded(t){const r=t==null?void 0:t.children;return r.length===0?!0:r.every(i=>{const s=this.getTile(i==null?void 0:i.key);return s?(s==null?void 0:s.isLoaded)===!0:!0})}render(){var t=this;return mt(function*(){const i=t.getRenderLayers().map(function(){var s=mt(function*(u){yield t.layerService.renderTileLayer(u)});return function(u){return s.apply(this,arguments)}}());yield Promise.all(i)})()}getRenderLayers(){const t=this.layerTiles.filter(i=>i.visible&&i.isLoaded),r=[];return t.map(i=>r.push(...i.getLayers())),r}getLayers(){const t=this.layerTiles.filter(i=>i.isLoaded),r=[];return t.map(i=>r.push(...i.getLayers())),r}getTiles(){return this.layerTiles}destroy(){this.layerTiles.forEach(t=>t.destroy()),this.tileResource.clear()}}/** * splaytree v3.1.2 * Fast Splay tree for Node and browser * * @author Alexander Milevski * @license MIT * @preserve *//*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */function VN(e,t){var r={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},i,s,u,n;return n={next:y(0),throw:y(1),return:y(2)},typeof Symbol=="function"&&(n[Symbol.iterator]=function(){return this}),n;function y(g){return function(x){return m([g,x])}}function m(g){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,s&&(u=g[0]&2?s.return:g[0]?s.throw||((u=s.return)&&u.call(s),0):s.next)&&!(u=u.call(s,g[1])).done)return u;switch(s=0,u&&(g=[g[0]&2,u.value]),g[0]){case 0:case 1:u=g;break;case 4:return r.label++,{value:g[1],done:!1};case 5:r.label++,s=g[1],g=[0];continue;case 7:g=r.ops.pop(),r.trys.pop();continue;default:if(u=r.trys,!(u=u.length>0&&u[u.length-1])&&(g[0]===6||g[0]===2)){r=0;continue}if(g[0]===3&&(!u||g[1]>u[0]&&g[1]t?1:e0){if(t.right===null)break;if(r(e,t.right.key)>0){var y=t.right;if(t.right=y.left,y.left=t,t=y,t.right===null)break}s.right=t,s=t,t=t.right}else break}return s.right=t.left,u.left=t.right,t.left=i.right,t.right=i.left,t}function e2(e,t,r,i){var s=new Tc(e,t);if(r===null)return s.left=s.right=null,s;r=vc(e,r,i);var u=i(e,r.key);return u<0?(s.left=r.left,s.right=r,r.left=null):u>=0&&(s.right=r.right,s.left=r,r.right=null),s}function U4(e,t,r){var i=null,s=null;if(t){t=vc(e,t,r);var u=r(t.key,e);u===0?(i=t.left,s=t.right):u<0?(s=t.right,t.right=null,i=t):(i=t.left,t.left=null,s=t)}return{left:i,right:s}}function GN(e,t,r){return t===null?e:(e===null||(t=vc(e.key,t,r),t.left=e),t)}function W2(e,t,r,i,s){if(e){i(""+t+(r?"└── ":"├── ")+s(e)+` `);var u=t+(r?" ":"│ ");e.left&&W2(e.left,u,!1,i,s),e.right&&W2(e.right,u,!0,i,s)}}var z6=function(){function e(t){t===void 0&&(t=HN),this._root=null,this._size=0,this._comparator=t}return e.prototype.insert=function(t,r){return this._size++,this._root=e2(t,r,this._root,this._comparator)},e.prototype.add=function(t,r){var i=new Tc(t,r);this._root===null&&(i.left=i.right=null,this._size++,this._root=i);var s=this._comparator,u=vc(t,this._root,s),n=s(t,u.key);return n===0?this._root=u:(n<0?(i.left=u.left,i.right=u,u.left=null):n>0&&(i.right=u.right,i.left=u,u.right=null),this._size++,this._root=i),this._root},e.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},e.prototype._remove=function(t,r,i){var s;if(r===null)return null;r=vc(t,r,i);var u=i(t,r.key);return u===0?(r.left===null?s=r.right:(s=vc(t,r.left,i),s.right=r.right),this._size--,s):r},e.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=vc(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},e.prototype.findStatic=function(t){for(var r=this._root,i=this._comparator;r;){var s=i(t,r.key);if(s===0)return r;s<0?r=r.left:r=r.right}return null},e.prototype.find=function(t){return this._root&&(this._root=vc(t,this._root,this._comparator),this._comparator(t,this._root.key)!==0)?null:this._root},e.prototype.contains=function(t){for(var r=this._root,i=this._comparator;r;){var s=i(t,r.key);if(s===0)return!0;s<0?r=r.left:r=r.right}return!1},e.prototype.forEach=function(t,r){for(var i=this._root,s=[],u=!1;!u;)i!==null?(s.push(i),i=i.left):s.length!==0?(i=s.pop(),t.call(r,i),i=i.right):u=!0;return this},e.prototype.range=function(t,r,i,s){for(var u=[],n=this._comparator,y=this._root,m;u.length!==0||y;)if(y)u.push(y),y=y.left;else{if(y=u.pop(),m=n(y.key,r),m>0)break;if(n(y.key,t)>=0&&i.call(s,y))return this;y=y.right}return this},e.prototype.keys=function(){var t=[];return this.forEach(function(r){var i=r.key;return t.push(i)}),t},e.prototype.values=function(){var t=[];return this.forEach(function(r){var i=r.data;return t.push(i)}),t},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.left;)t=t.left;return t},e.prototype.maxNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.right;)t=t.right;return t},e.prototype.at=function(t){for(var r=this._root,i=!1,s=0,u=[];!i;)if(r)u.push(r),r=r.left;else if(u.length>0){if(r=u.pop(),s===t)return r;s++,r=r.right}else i=!0;return null},e.prototype.next=function(t){var r=this._root,i=null;if(t.right){for(i=t.right;i.left;)i=i.left;return i}for(var s=this._comparator;r;){var u=s(t.key,r.key);if(u===0)break;u<0?(i=r,r=r.left):r=r.right}return i},e.prototype.prev=function(t){var r=this._root,i=null;if(t.left!==null){for(i=t.left;i.right;)i=i.right;return i}for(var s=this._comparator;r;){var u=s(t.key,r.key);if(u===0)break;u<0?r=r.left:(i=r,r=r.right)}return i},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return WN(this._root)},e.prototype.load=function(t,r,i){r===void 0&&(r=[]),i===void 0&&(i=!1);var s=t.length,u=this._comparator;if(i&&Y2(t,r,0,s-1,u),this._root===null)this._root=X2(t,r,0,s),this._size=s;else{var n=XN(this.toList(),jN(t,r),u);s=this._size+s,this._root=Z2({head:n},0,s)}return this},e.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),e.prototype.toString=function(t){t===void 0&&(t=function(i){return String(i.key)});var r=[];return W2(this._root,"",!0,function(i){return r.push(i)},t),r.join("")},e.prototype.update=function(t,r,i){var s=this._comparator,u=U4(t,this._root,s),n=u.left,y=u.right;s(t,r)<0?y=e2(r,i,y,s):n=e2(r,i,n,s),this._root=GN(n,y,s)},e.prototype.split=function(t){return U4(t,this._root,this._comparator)},e.prototype[Symbol.iterator]=function(){var t,r,i;return VN(this,function(s){switch(s.label){case 0:t=this._root,r=[],i=!1,s.label=1;case 1:return i?[3,6]:t===null?[3,2]:(r.push(t),t=t.left,[3,5]);case 2:return r.length===0?[3,4]:(t=r.pop(),[4,t]);case 3:return s.sent(),t=t.right,[3,5];case 4:i=!0,s.label=5;case 5:return[3,1];case 6:return[2]}})},e}();function X2(e,t,r,i){var s=i-r;if(s>0){var u=r+Math.floor(s/2),n=e[u],y=t[u],m=new Tc(n,y);return m.left=X2(e,t,r,u),m.right=X2(e,t,u+1,i),m}return null}function jN(e,t){for(var r=new Tc(null,null),i=r,s=0;s0?(t=u=u.next=r.pop(),t=t.right):i=!0;return u.next=null,s.next}function Z2(e,t,r){var i=r-t;if(i>0){var s=t+Math.floor(i/2),u=Z2(e,t,s),n=e.head;return n.left=u,e.head=e.head.next,n.right=Z2(e,s+1,r),n}return null}function XN(e,t,r){for(var i=new Tc(null,null),s=i,u=e,n=t;u!==null&&n!==null;)r(u.key,n.key)<0?(s.next=u,u=u.next):(s.next=n,n=n.next),s=s.next;return u!==null?s.next=u:n!==null&&(s.next=n),i.next}function Y2(e,t,r,i,s){if(!(r>=i)){for(var u=e[r+i>>1],n=r-1,y=i+1;;){do n++;while(s(e[n],u)<0);do y--;while(s(e[y],u)>0);if(n>=y)break;var m=e[n];e[n]=e[y],e[y]=m,m=t[n],t[n]=t[y],t[y]=m}Y2(e,t,r,y,s),Y2(e,t,y+1,i,s)}}const Il=11102230246251565e-32,os=134217729,ZN=(3+8*Il)*Il;function t2(e,t,r,i,s){let u,n,y,m,g=t[0],x=i[0],b=0,F=0;x>g==x>-g?(u=g,g=t[++b]):(u=x,x=i[++F]);let R=0;if(bg==x>-g?(n=g+u,y=u-(n-g),g=t[++b]):(n=x+u,y=u-(n-x),x=i[++F]),u=n,y!==0&&(s[R++]=y);bg==x>-g?(n=u+g,m=n-u,y=u-(n-m)+(g-m),g=t[++b]):(n=u+x,m=n-u,y=u-(n-m)+(x-m),x=i[++F]),u=n,y!==0&&(s[R++]=y);for(;b=st||-ze>=st||(b=e-ft,y=e-(ft+b)+(b-s),b=r-Ge,g=r-(Ge+b)+(b-s),b=t-Ae,m=t-(Ae+b)+(b-u),b=i-Be,x=i-(Be+b)+(b-u),y===0&&m===0&&g===0&&x===0)||(st=KN*n+ZN*Math.abs(ze),ze+=ft*x+Be*y-(Ae*g+Ge*m),ze>=st||-ze>=st))return ze;ne=y*Be,F=os*y,R=F-(F-y),I=y-R,F=os*Be,U=F-(F-Be),V=Be-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=m*Ge,F=os*m,R=F-(F-m),I=m-R,F=os*Ge,U=F-(F-Ge),V=Ge-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const Vt=t2(4,f0,4,fs,k4);ne=ft*x,F=os*ft,R=F-(F-ft),I=ft-R,F=os*x,U=F-(F-x),V=x-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=Ae*g,F=os*Ae,R=F-(F-Ae),I=Ae-R,F=os*g,U=F-(F-g),V=g-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const ir=t2(Vt,k4,4,fs,z4);ne=y*x,F=os*y,R=F-(F-y),I=y-R,F=os*x,U=F-(F-x),V=x-U,pe=I*V-(ne-R*U-I*U-R*V),Oe=m*g,F=os*m,R=F-(F-m),I=m-R,F=os*g,U=F-(F-g),V=g-U,Ee=I*V-(Oe-R*U-I*U-R*V),J=pe-Ee,b=pe-J,fs[0]=pe-(J+b)+(b-Ee),Q=ne+J,b=Q-ne,te=ne-(Q-b)+(J-b),J=te-Oe,b=te-J,fs[1]=te-(J+b)+(b-Oe),He=Q+J,b=He-Q,fs[2]=Q-(He-b)+(J-b),fs[3]=He;const Fr=t2(ir,z4,4,fs,V4);return V4[Fr-1]}function JN(e,t,r,i,s,u){const n=(t-u)*(r-s),y=(e-s)*(i-u),m=n-y,g=Math.abs(n+y);return Math.abs(m)>=$N*g?m:-QN(e,t,r,i,s,u,g)}var c7={};const zd=(e,t)=>e.ll.x<=t.x&&t.x<=e.ur.x&&e.ll.y<=t.y&&t.y<=e.ur.y,$2=(e,t)=>{if(t.ur.x{if(-xce.x*t.y-e.y*t.x,d7=(e,t)=>e.x*t.x+e.y*t.y,j4=(e,t,r)=>{const i=JN(e.x,e.y,t.x,t.y,r.x,r.y);return i>0?-1:i<0?1:0},Rf=e=>Math.sqrt(d7(e,e)),rD=(e,t,r)=>{const i={x:t.x-e.x,y:t.y-e.y},s={x:r.x-e.x,y:r.y-e.y};return qh(s,i)/Rf(s)/Rf(i)},oD=(e,t,r)=>{const i={x:t.x-e.x,y:t.y-e.y},s={x:r.x-e.x,y:r.y-e.y};return d7(s,i)/Rf(s)/Rf(i)},W4=(e,t,r)=>t.y===0?null:{x:e.x+t.x/t.y*(r-e.y),y:r},X4=(e,t,r)=>t.x===0?null:{x:r,y:e.y+t.y/t.x*(r-e.x)},iD=(e,t,r,i)=>{if(t.x===0)return X4(r,i,e.x);if(i.x===0)return X4(e,t,r.x);if(t.y===0)return W4(r,i,e.y);if(i.y===0)return W4(e,t,r.y);const s=qh(t,i);if(s==0)return null;const u={x:r.x-e.x,y:r.y-e.y},n=qh(u,t)/s,y=qh(u,i)/s,m=e.x+y*t.x,g=r.x+n*i.x,x=e.y+y*t.y,b=r.y+n*i.y,F=(m+g)/2,R=(x+b)/2;return{x:F,y:R}};class Hu{static compare(t,r){const i=Hu.comparePoints(t.point,r.point);return i!==0?i:(t.point!==r.point&&t.link(r),t.isLeft!==r.isLeft?t.isLeft?1:-1:bc.compare(t.segment,r.segment))}static comparePoints(t,r){return t.xr.x?1:t.yr.y?1:0}constructor(t,r){t.events===void 0?t.events=[this]:t.events.push(this),this.point=t,this.isLeft=r}link(t){if(t.point===this.point)throw new Error("Tried to link already linked events");const r=t.point.events;for(let i=0,s=r.length;i{const u=s.otherSE;r.set(s,{sine:rD(this.point,t.point,u.point),cosine:oD(this.point,t.point,u.point)})};return(s,u)=>{r.has(s)||i(s),r.has(u)||i(u);const{sine:n,cosine:y}=r.get(s),{sine:m,cosine:g}=r.get(u);return n>=0&&m>=0?yg?-1:0:n<0&&m<0?yg?1:0:mn?1:0}}}let nD=0;class bc{static compare(t,r){const i=t.leftSE.point.x,s=r.leftSE.point.x,u=t.rightSE.point.x,n=r.rightSE.point.x;if(ny&&m>g)return-1;const b=t.comparePoint(r.leftSE.point);if(b<0)return 1;if(b>0)return-1;const F=r.comparePoint(t.rightSE.point);return F!==0?F:-1}if(i>s){if(ym&&y>x)return 1;const b=r.comparePoint(t.leftSE.point);if(b!==0)return b;const F=t.comparePoint(r.rightSE.point);return F<0?1:F>0?-1:1}if(ym)return 1;if(un){const b=t.comparePoint(r.rightSE.point);if(b<0)return 1;if(b>0)return-1}if(u!==n){const b=g-y,F=u-i,R=x-m,I=n-s;if(b>F&&RI)return-1}return u>n?1:ux?1:t.idr.id?1:0}constructor(t,r,i,s){this.id=++nD,this.leftSE=t,t.segment=this,t.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=t,this.rings=i,this.windings=s}static fromRing(t,r,i){let s,u,n;const y=Hu.comparePoints(t,r);if(y<0)s=t,u=r,n=1;else if(y>0)s=r,u=t,n=-1;else throw new Error(`Tried to create degenerate segment at [${t.x}, ${t.y}]`);const m=new Hu(s,!0),g=new Hu(u,!1);return new bc(m,g,[i],[n])}replaceRightSE(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const t=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:tr?t:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}comparePoint(t){if(this.isAnEndpoint(t))return 0;const r=this.leftSE.point,i=this.rightSE.point,s=this.vector();if(r.x===i.x)return t.x===r.x?0:t.x0&&y.swapEvents(),Hu.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(s.checkForConsuming(),u.checkForConsuming()),r}swapEvents(){const t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,i=this.windings.length;r0){const u=r;r=i,i=u}if(r.prev===i){const u=r;r=i,i=u}for(let u=0,n=i.rings.length;us.length===1&&s[0].isSubject;this._isInResult=i(t)!==i(r);break}default:throw new Error(`Unrecognized operation type found ${yp.type}`)}return this._isInResult}}class Z4{constructor(t,r,i){if(!Array.isArray(t)||t.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=i,this.segments=[],typeof t[0][0]!="number"||typeof t[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const s=Ry.round(t[0][0],t[0][1]);this.bbox={ll:{x:s.x,y:s.y},ur:{x:s.x,y:s.y}};let u=s;for(let n=1,y=t.length;nthis.bbox.ur.x&&(this.bbox.ur.x=m.x),m.y>this.bbox.ur.y&&(this.bbox.ur.y=m.y),u=m)}(s.x!==u.x||s.y!==u.y)&&this.segments.push(bc.fromRing(u,s,this))}getSweepEvents(){const t=[];for(let r=0,i=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=u.bbox.ur.x),u.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=u.bbox.ur.y),this.interiorRings.push(u)}this.multiPoly=r}getSweepEvents(){const t=this.exteriorRing.getSweepEvents();for(let r=0,i=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=u.bbox.ur.x),u.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=u.bbox.ur.y),this.polys.push(u)}this.isSubject=r}getSweepEvents(){const t=[];for(let r=0,i=this.polys.length;r0&&(t=n)}let r=t.segment.prevInResult(),i=r?r.prevInResult():null;for(;;){if(!r)return null;if(!i)return r.ringOut;if(i.ringOut!==r.ringOut)return i.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=i.prevInResult(),i=r?r.prevInResult():null}}}class $4{constructor(t){this.exteriorRing=t,t.poly=this,this.interiorRings=[]}addInterior(t){this.interiorRings.push(t),t.poly=this}getGeom(){const t=[this.exteriorRing.getGeom()];if(t[0]===null)return null;for(let r=0,i=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:bc.compare;this.queue=t,this.tree=new z6(r),this.segments=[]}process(t){const r=t.segment,i=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(r),i;const s=t.isLeft?this.tree.add(r):this.tree.find(r);if(!s)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let u=s,n=s,y,m;for(;y===void 0;)u=this.tree.prev(u),u===null?y=null:u.key.consumedBy===void 0&&(y=u.key);for(;m===void 0;)n=this.tree.next(n),n===null?m=null:n.key.consumedBy===void 0&&(m=n.key);if(t.isLeft){let g=null;if(y){const b=y.getIntersection(r);if(b!==null&&(r.isAnEndpoint(b)||(g=b),!y.isAnEndpoint(b))){const F=this._splitSafely(y,b);for(let R=0,I=F.length;R0?(this.tree.remove(r),i.push(t)):(this.segments.push(r),r.prev=y)}else{if(y&&m){const g=y.getIntersection(m);if(g!==null){if(!y.isAnEndpoint(g)){const x=this._splitSafely(y,g);for(let b=0,F=x.length;bq4)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const n=new uD(u);let y=u.size,m=u.pop();for(;m;){const b=m.key;if(u.size===y){const R=b.segment;throw new Error(`Unable to pop() ${b.isLeft?"left":"right"} SweepEvent [${b.point.x}, ${b.point.y}] from segment #${R.id} [${R.leftSE.point.x}, ${R.leftSE.point.y}] -> [${R.rightSE.point.x}, ${R.rightSE.point.y}] from queue.`)}if(u.size>q4)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(n.segments.length>pD)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const F=n.process(b);for(let R=0,I=F.length;R1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i{const u=a6(s.coordinates);r===null?r=u:r=mD(r,u)}),i&&(r.properties=_t({},i)),r}}const Vd="select",Hd="active";class gD{constructor({layerService:t,tileLayerService:r,parent:i}){H(this,"layerService",void 0),H(this,"tileLayerService",void 0),H(this,"tileSourceService",void 0),H(this,"parent",void 0),H(this,"tilePickID",new Map),this.layerService=t,this.tileLayerService=r,this.parent=i,this.tileSourceService=new _D}pickRender(t){const r=this.tileLayerService.getVisibleTileBylngLat(t.lngLat);if(r){const i=r.getMainLayer();i==null||i.layerPickService.pickRender(t)}}pick(t,r){var i=this;return mt(function*(){const u=i.parent.getContainer().pickingService;if(t.type==="RasterLayer"){const n=i.tileLayerService.getVisibleTileBylngLat(r.lngLat);if(n&&n.getMainLayer()!==void 0){const y=n.getMainLayer();return y.layerPickService.pickRasterLayer(y,r,i.parent)}return!1}return i.pickRender(r),u.pickFromPickingFBO(t,r)})()}selectFeature(t){const[r,i,s]=t,u=this.color2PickId(r,i,s);this.tilePickID.set(Vd,u),this.updateHighLight(r,i,s,Vd)}highlightPickedFeature(t){const[r,i,s]=t,u=this.color2PickId(r,i,s);this.tilePickID.set(Hd,u),this.updateHighLight(r,i,s,Hd)}updateHighLight(t,r,i,s){this.tileLayerService.tiles.map(u=>{const n=u.getMainLayer();switch(s){case Vd:n==null||n.hooks.beforeSelect.call([t,r,i]);break;case Hd:n==null||n.hooks.beforeHighlight.call([t,r,i]);break}})}setPickState(){const t=this.tilePickID.get(Vd),r=this.tilePickID.get(Hd);if(t){const[i,s,u]=this.pickId2Color(t);this.updateHighLight(i,s,u,Vd);return}if(r){const[i,s,u]=this.pickId2Color(r);this.updateHighLight(i,s,u,Hd);return}}color2PickId(t,r,i){return c1(new Uint8Array([t,r,i]))}pickId2Color(t){return L0(t)}getFeatureById(t){const r=this.tileLayerService.getTiles().filter(s=>s.visible),i=[];return r.forEach(s=>{i.push(...s.getFeatureById(t))}),i}pickRasterLayer(){return!1}}function vD(e){return e==="PolygonLayer"?l7:e==="LineLayer"?r7:wy}function ED(e){return["PolygonLayer","LineLayer"].indexOf(e)!==-1}class F1 extends du.EventEmitter{constructor(t,r){super(),H(this,"x",void 0),H(this,"y",void 0),H(this,"z",void 0),H(this,"key",void 0),H(this,"parent",void 0),H(this,"sourceTile",void 0),H(this,"visible",!0),H(this,"layers",[]),H(this,"isLoaded",!1),H(this,"tileMaskLayers",[]),H(this,"tileMask",void 0),this.parent=r,this.sourceTile=t,this.x=t.x,this.y=t.y,this.z=t.z,this.key=`${this.x}_${this.y}_${this.z}`}getLayers(){return this.layers}styleUpdate(...t){}lnglatInBounds(t){const[r,i,s,u]=this.sourceTile.bounds,{lng:n,lat:y}=t;return n>=r&&n<=s&&y>=i&&y<=u}getLayerOptions(){var t;const r=this.parent.getLayerConfig();return _t(_t({},r),{},{textAllowOverlap:!0,autoFit:!1,maskLayers:this.getMaskLayer(),tileMask:ED(this.parent.type),mask:r.mask||((t=r.maskLayers)===null||t===void 0?void 0:t.length)!==0&&r.enableMask})}getMaskLayer(){const{maskLayers:t}=this.parent.getLayerConfig(),r=[];return t==null||t.forEach(i=>{if(!i.tileLayer)return r.push(i),i;const u=i.tileLayer.getTile(this.sourceTile.key),n=u==null?void 0:u.getLayers()[0];n&&r.push(n)}),r}addTileMask(){var t=this;return mt(function*(){const r=new l7({name:"mask",visible:!0,enablePicking:!1}).source({type:"FeatureCollection",features:[t.sourceTile.bboxPolygon]},{parser:{type:"geojson",featureId:"id"}}).shape("fill").color("#0f0").style({opacity:.5}),i=ly(t.parent.container);r.setContainer(i),yield r.init(),t.tileMask=r;const s=t.getMainLayer();return s!==void 0&&(s.tileMask=r),r})()}addMask(t,r){var i=this;return mt(function*(){const s=ly(i.parent.container);r.setContainer(s),yield r.init(),t.addMask(r),i.tileMaskLayers.push(r)})()}addLayer(t){var r=this;return mt(function*(){t.isTileLayer=!0;const i=ly(r.parent.container);t.setContainer(i),r.layers.push(t),yield t.init()})()}updateVisible(t){this.visible=t,this.updateOptions("visible",t)}updateOptions(t,r){this.layers.forEach(i=>{i.updateLayerConfig({[t]:r})})}getMainLayer(){return this.layers[0]}getFeatures(t){return[]}getFeatureById(t){return[]}destroy(){var t;(t=this.tileMask)===null||t===void 0||t.destroy(),this.layers.forEach(r=>r.destroy())}}class xD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.getSourceOption(),i=r.data.features[0].properties,s=new r7().source(r.data,r.options).size(1).shape("line").color("red"),u=new wy({minZoom:t.z-1,maxZoom:t.z+1,textAllowOverlap:!0}).source([i],{parser:{type:"json",x:"x",y:"y"}}).size(20).color("red").shape(t.key).style({stroke:"#fff",strokeWidth:2});yield t.addLayer(s),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:{type:"FeatureCollection",features:this.sourceTile.data.layers.testTile.features},options:{parser:{type:"geojson"},transforms:t.transforms}}}}class PD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new $I(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:this.sourceTile.data,options:{parser:{type:"image",extent:this.sourceTile.bounds},transforms:t.transforms}}}}const bD=`layout(std140) uniform commonUniorm { vec4 u_color; float u_opacity; }; out vec4 outputColor; void main() { outputColor = u_color; outputColor.a *= u_opacity; } `,AD=`layout(location = ATTRIBUTE_LOCATION_POSITION) in vec3 a_Position; layout(std140) uniform commonUniorm { vec4 u_color; float u_opacity; }; #pragma include "projection" void main() { vec4 project_pos = project_position(vec4(a_Position, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); } `;class FD extends Pi{getUninforms(){const t=this.getCommonUniformsInfo(),r=this.getUniformsBufferInfo(this.getStyleAttribute());return this.updateStyleUnifoms(),_t(_t({},t.uniformsOption),r.uniformsOption)}getCommonUniformsInfo(){const{opacity:t=1,color:r="#000"}=this.layer.getLayerConfig(),i={u_color:Mi(r),u_opacity:t||1};return this.getUniformsBufferInfo(i)}initModels(){var t=this;return mt(function*(){return t.buildModels()})()}buildModels(){var t=this;return mt(function*(){return t.initUniformsBuffer(),[yield t.layer.buildLayerModel({moduleName:"mask",vertexShader:AD,fragmentShader:bD,defines:t.getDefines(),triangulation:By,depth:{enable:!1},pick:!1})]})()}clearModels(t=!0){t&&this.layerService.clear()}registerBuiltinAttributes(){return""}}const TD={fill:FD};class y7 extends A1{constructor(...t){super(...t),H(this,"type","MaskLayer")}buildModels(){var t=this;return mt(function*(){const r=t.getModelType();t.layerModel=new TD[r](t),yield t.initLayerModels()})()}getModelType(){return"fill"}}class SD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new y7(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getFeatures(t){return t?this.sourceTile.data.getTileData(t):[]}getSourceOption(){const t=this.parent.getSource(),{sourceLayer:r,featureId:i}=this.parent.getLayerConfig();return{data:{type:"FeatureCollection",features:this.getFeatures(r)},options:{parser:{type:"geojson",featureId:i},transforms:t.transforms}}}}const wD=["rasterData"];let RD=class extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new k6(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource(),r=this.sourceTile.data.data,{rasterData:i}=r,s=$p(r,wD);return{data:i,options:{parser:_t({type:"rasterRgb",extent:this.sourceTile.bounds},s),transforms:t.transforms}}}};class CD extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),u=new k6(_t({},i)).source(s.data,s.options);r&&Object.keys(r).forEach(n=>{var y,m;const g=n;u[g]((y=r[g])===null||y===void 0?void 0:y.field,(m=r[g])===null||m===void 0?void 0:m.values)}),yield t.addLayer(u),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource();return{data:this.sourceTile.data,options:{parser:{type:"image",extent:this.sourceTile.bounds},transforms:t.transforms}}}}const ID=["rasterData"],MD={positions:[0,1],colors:["#000","#fff"]};class ND extends F1{constructor(...t){super(...t),H(this,"colorTexture",void 0)}initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=t.getSourceOption(),{rampColors:u,domain:n}=t.getLayerOptions();t.colorTexture=t.parent.textureService.getColorTexture(u,n);const y=new k6(_t(_t({},i),{},{colorTexture:t.colorTexture})).source(s.data,s.options);r&&Object.keys(r).forEach(m=>{var g,x;const b=m;y[b]((g=r[b])===null||g===void 0?void 0:g.field,(x=r[b])===null||x===void 0?void 0:x.values)}),yield t.addLayer(y),t.isLoaded=!0})()}getSourceOption(){const t=this.parent.getSource(),r=this.sourceTile.data.data,{rasterData:i}=r,s=$p(r,ID);return{data:i,options:{parser:_t({type:"raster",extent:this.sourceTile.bounds},s),transforms:t.transforms}}}styleUpdate(...t){const{rampColors:r=MD,domain:i}=t;this.colorTexture=this.parent.textureService.getColorTexture(r,i||h6(r)),this.layers.forEach(s=>s.style({colorTexture:this.colorTexture}))}destroy(){this.layers.forEach(t=>t.destroy())}}class Lh extends F1{initTileLayer(){var t=this;return mt(function*(){const r=t.parent.getLayerAttributeConfig(),i=t.getLayerOptions(),s=vD(t.parent.type),u=t.getSourceOption();if(!u){t.isLoaded=!0,t.emit("loaded");return}const n=new s(_t({},i)).source(u.data,u.options);Object.keys(r).forEach(y=>{var m,g;const x=y;n[x]((m=r[x])===null||m===void 0?void 0:m.field,(g=r[x])===null||g===void 0?void 0:g.values)}),yield t.addLayer(n),i.tileMask&&(yield t.addTileMask()),t.setLayerMinMaxZoom(n),t.isLoaded=!0,t.emit("loaded")})()}getSourceOption(){const t=this.parent.getSource(),{sourceLayer:r="defaultLayer",featureId:i="id"}=this.parent.getLayerConfig();return{data:{type:"FeatureCollection",features:this.getFeatures(r)},options:{parser:{type:"geojson",featureId:i},transforms:t.transforms}}}setLayerMinMaxZoom(t){t.getModelType()==="text"&&t.updateLayerConfig({maxZoom:this.z+1,minZoom:this.z-1})}getFeatures(t){return this.sourceTile.data.getTileData(t)}getFeatureById(t){const r=this.getMainLayer();return r?r.getSource().data.dataArray.filter(s=>s._id===t):[]}}function DD(e){switch(e.type){case"PolygonLayer":return Lh;case"LineLayer":return Lh;case"PointLayer":return Lh;case"TileDebugLayer":return xD;case"MaskLayer":return SD;case"RasterLayer":const{dataType:r}=e.getSource().parser;switch(r){case Ha.RGB:case Ha.CUSTOMRGB:return RD;case Ha.ARRAYBUFFER:case Ha.CUSTOMARRAYBUFFER:return ND;case Ha.TERRAINRGB:case Ha.CUSTOMTERRAINRGB:return CD;default:return PD}default:return Lh}}const OD=["shape","color","size","style","animate","filter","rotate","scale","setBlend","setSelect","setActive","disableMask","enableMask","addMask","removeMask"],{debounce:LD}=Qn;class BD{constructor(t){H(this,"parent",void 0),H(this,"tileLayerService",void 0),H(this,"mapService",void 0),H(this,"layerService",void 0),H(this,"rendererService",void 0),H(this,"pickingService",void 0),H(this,"tilePickService",void 0),H(this,"tilesetManager",void 0),H(this,"initedTileset",!1),H(this,"lastViewStates",void 0),H(this,"mapchange",()=>{var i;if(this.parent.isVisible()===!1)return;const{latLonBounds:s,zoom:u}=this.getCurrentView();this.lastViewStates&&this.lastViewStates.zoom===u&&this.lastViewStates.latLonBounds.toString()===s.toString()||(this.lastViewStates={zoom:u,latLonBounds:s},(i=this.tilesetManager)===null||i===void 0||i.throttleUpdate(u,s))}),H(this,"viewchange",LD(this.mapchange,24)),this.parent=t;const r=this.parent.getContainer();this.rendererService=r.rendererService,this.layerService=r.layerService,this.mapService=r.mapService,this.pickingService=r.pickingService,this.tileLayerService=new zN({rendererService:this.rendererService,layerService:this.layerService,parent:t}),this.tilePickService=new gD({tileLayerService:this.tileLayerService,layerService:this.layerService,parent:t}),this.parent.setLayerPickService(this.tilePickService),this.proxy(t),this.initTileSetManager()}initTileSetManager(){var t;const r=this.parent.getSource();if(this.tilesetManager=r.tileset,this.initedTileset||(this.bindTilesetEvent(),this.initedTileset=!0),this.parent.isVisible()===!1)return;const{latLonBounds:i,zoom:s}=this.getCurrentView();(t=this.tilesetManager)===null||t===void 0||t.update(s,i)}getCurrentView(){const t=this.mapService.getBounds(),r=[t[0][0],t[0][1],t[1][0],t[1][1]],i=this.mapService.getZoom();return{latLonBounds:r,zoom:i}}bindTilesetEvent(){this.tilesetManager.on("tile-loaded",t=>{}),this.tilesetManager.on("tile-unload",t=>{this.tileUnLoad(t)}),this.tilesetManager.on("tile-error",(t,r)=>{this.tileError(t)}),this.tilesetManager.on("tile-update",()=>{this.tileUpdate()}),this.mapService.on("zoomend",this.mapchange),this.mapService.on("moveend",this.viewchange)}render(){this.tileLayerService.render()}getLayers(){return this.tileLayerService.getLayers()}getTiles(){return this.tileLayerService.getTiles()}getTile(t){return this.tileLayerService.getTile(t)}tileLoaded(t){}tileError(t){console.warn("error:",t)}destroy(){var t;this.mapService.off("zoomend",this.mapchange),this.mapService.off("moveend",this.viewchange),(t=this.tilesetManager)===null||t===void 0||t.destroy(),this.tileLayerService.destroy()}reload(){var t;this.tilesetManager.clear();const{latLonBounds:r,zoom:i}=this.getCurrentView();(t=this.tilesetManager)===null||t===void 0||t.update(i,r)}tileUnLoad(t){this.tileLayerService.removeTile(t.key)}tileUpdate(){var t=this;return mt(function*(){if(!t.tilesetManager)return;const r=t.parent.getMinZoom(),i=t.parent.getMaxZoom(),s=t.tilesetManager.tiles.filter(u=>u.isLoaded).filter(u=>u.isVisibleChange).filter(u=>u.data).filter(u=>u.z>=r&&u.z{const i=t[r].bind(t);t[r]=(...s)=>(i(...s),this.getLayers().map(u=>{u[r](...s)}),r==="style"&&this.getTiles().forEach(u=>u.styleUpdate(...s)),t)})}}function UD(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}UD(`.l7-marker-container { position: absolute; width: 100%; height: 100%; overflow: hidden; } .l7-marker { position: absolute !important; top: 0; left: 0; z-index: 5; cursor: pointer; } .l7-marker-cluster { width: 40px; height: 40px; background-color: rgba(181, 226, 140, 0.6); background-clip: padding-box; border-radius: 20px; } .l7-marker-cluster div { width: 30px; height: 30px; margin-top: 5px; margin-left: 5px; font: 12px 'Helvetica Neue', Arial, Helvetica, sans-serif; text-align: center; background-color: rgba(110, 204, 57, 0.6); border-radius: 15px; } .l7-marker-cluster span { line-height: 30px; } .l7-touch .l7-control-attribution, .l7-touch .l7-control-layers, .l7-touch .l7-bar { box-shadow: none; } .l7-touch .l7-control-layers, .l7-touch .l7-bar { background-clip: padding-box; border: 2px solid rgba(0, 0, 0, 0.2); } .mapboxgl-ctrl-logo, .amap-logo { display: none !important; } .l7-select-box { border: 3px dashed gray; border-radius: 2px; position: absolute; z-index: 999; box-sizing: border-box; } .l7-control-container { font: 12px/1.5 'Helvetica Neue', Arial, Helvetica, sans-serif; } .l7-control-container .l7-control { position: relative; z-index: 999; float: left; clear: both; color: #595959; font-size: 12px; pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ pointer-events: auto; } .l7-control-container .l7-control.l7-control--hide { display: none; } .l7-control-container .l7-top { top: 0; display: flex; position: absolute; z-index: 999; pointer-events: none; } .l7-control-container .l7-top .l7-control:not(.l7-control--hide) { margin-top: 8px; } .l7-control-container .l7-right { right: 0; display: flex; position: absolute; z-index: 999; pointer-events: none; } .l7-control-container .l7-right .l7-control:not(.l7-control--hide) { margin-right: 8px; } .l7-control-container .l7-bottom { bottom: 0; display: flex; position: absolute; z-index: 999; pointer-events: none; } .l7-control-container .l7-bottom .l7-control:not(.l7-control--hide) { margin-bottom: 8px; } .l7-control-container .l7-left { left: 0; display: flex; position: absolute; z-index: 999; pointer-events: none; } .l7-control-container .l7-left .l7-control:not(.l7-control--hide) { margin-left: 8px; } .l7-control-container .l7-center { position: absolute; display: flex; justify-content: center; } .l7-control-container .l7-center.l7-top, .l7-control-container .l7-center.l7-bottom { width: 100%; } .l7-control-container .l7-center.l7-left, .l7-control-container .l7-center.l7-right { height: 100%; } .l7-control-container .l7-center .l7-control { margin-right: 8px; margin-bottom: 8px; } .l7-control-container .l7-row { flex-direction: row; } .l7-control-container .l7-row.l7-top { align-items: flex-start; } .l7-control-container .l7-row.l7-bottom { align-items: flex-end; } .l7-control-container .l7-column { flex-direction: column; } .l7-control-container .l7-column.l7-left { align-items: flex-start; } .l7-control-container .l7-column.l7-right { align-items: flex-end; } .l7-button-control { min-width: 28px; height: 28px; background-color: #fff; border-width: 0; border-radius: 2px; outline: 0; cursor: pointer; transition: all 0.2s; display: flex; justify-content: center; align-items: center; padding: 0 6px; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15); line-height: 16px; } .l7-button-control .l7-iconfont { fill: #595959; color: #595959; width: 16px; height: 16px; } .l7-button-control.l7-button-control--row { padding: 0 16px 0 13px; } .l7-button-control.l7-button-control--row * + .l7-button-control__text { margin-left: 8px; } .l7-button-control.l7-button-control--column { height: 44px; flex-direction: column; } .l7-button-control.l7-button-control--column .l7-iconfont { margin-top: 3px; } .l7-button-control.l7-button-control--column .l7-button-control__text { margin-top: 3px; font-size: 10px; -webkit-transform: scale(0.83333); transform: scale(0.83333); } .l7-button-control:not(:disabled):hover { background-color: #f3f3f3; } .l7-button-control:not(:disabled):active { background-color: #f3f3f3; } .l7-button-control:disabled { background-color: #fafafa; color: #bdbdbd; cursor: not-allowed; } .l7-button-control:disabled .l7-iconfont { fill: #bdbdbd; color: #bdbdbd; } .l7-button-control:disabled:hover { background-color: #fafafa; } .l7-button-control:disabled:active { background-color: #fafafa; } .l7-popper { position: absolute; display: flex; justify-content: center; align-items: center; z-index: 5; color: #595959; } .l7-popper.l7-popper-hide { display: none; } .l7-popper .l7-popper-content { min-height: 28px; background: #fff; border-radius: 2px; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15); } .l7-popper .l7-popper-arrow { width: 0; height: 0; border-width: 4px; border-style: solid; border-top-color: transparent; border-bottom-color: transparent; border-left-color: transparent; border-right-color: transparent; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15); } .l7-popper.l7-popper-left { flex-direction: row; } .l7-popper.l7-popper-left .l7-popper-arrow { border-left-color: #fff; margin: 10px 0; } .l7-popper.l7-popper-right { flex-direction: row-reverse; } .l7-popper.l7-popper-right .l7-popper-arrow { border-right-color: #fff; margin: 10px 0; } .l7-popper.l7-popper-top { flex-direction: column; } .l7-popper.l7-popper-top .l7-popper-arrow { border-top-color: #fff; margin: 0 10px; } .l7-popper.l7-popper-bottom { flex-direction: column-reverse; } .l7-popper.l7-popper-bottom .l7-popper-arrow { border-bottom-color: #fff; margin: 0 10px; } .l7-popper.l7-popper-start { align-items: flex-start; } .l7-popper.l7-popper-end { align-items: flex-end; } .l7-select-control--normal { padding: 4px 0; } .l7-select-control--normal .l7-select-control-item { display: flex; align-items: center; height: 24px; padding: 0 16px; font-size: 12px; line-height: 24px; } .l7-select-control--normal .l7-select-control-item > * + * { margin-left: 6px; } .l7-select-control--normal .l7-select-control-item input[type='checkbox'] { width: 14px; height: 14px; } .l7-select-control--normal .l7-select-control-item:hover { background-color: #f3f3f3; } .l7-select-control--image { display: flex; flex-wrap: wrap; align-items: flex-start; box-sizing: content-box; max-width: 460px; max-height: 400px; margin: 12px 0 0 12px; overflow-x: hidden; overflow-y: auto; } .l7-select-control--image .l7-select-control-item { position: relative; display: flex; flex: 0 0 calc((100% - (12px + 9px) * 2) / 3); flex-direction: column; justify-content: center; box-sizing: content-box; margin-right: 12px; margin-bottom: 12px; overflow: hidden; font-size: 12px; border: 1px solid #fff; border-radius: 2px; } .l7-select-control--image .l7-select-control-item img { width: 100%; height: 80px; } .l7-select-control--image .l7-select-control-item input[type='checkbox'] { position: absolute; top: 0; right: 0; } .l7-select-control--image .l7-select-control-item .l7-select-control-item-row { display: flex; align-items: center; justify-content: center; line-height: 26px; } .l7-select-control--image .l7-select-control-item .l7-select-control-item-row > * + * { margin-left: 8px; } .l7-select-control--image .l7-select-control-item.l7-select-control-item-active { border-color: #0370fe; } .l7-select-control-item { cursor: pointer; } .l7-select-control-item input[type='checkbox'] { margin: 0; cursor: pointer; } .l7-select-control--multiple .l7-select-control-item:hover { background-color: transparent; } .l7-control-logo { width: 89px; height: 16px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .l7-control-logo img { height: 100%; width: 100%; } .l7-control-logo .l7-control-logo-link { display: block; cursor: pointer; } .l7-control-logo .l7-control-logo-link img { cursor: pointer; } .l7-control-mouse-location { background-color: #fff; border-radius: 2px; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15); padding: 2px 4px; min-width: 130px; } .l7-control-zoom { overflow: hidden; border-radius: 2px; box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15); } .l7-control-zoom .l7-button-control { font-size: 16px; border-bottom: 1px solid #f0f0f0; border-radius: 0; box-shadow: 0 0 0; } .l7-control-zoom .l7-button-control .l7-iconfont { width: 14px; height: 14px; } .l7-control-zoom .l7-button-control:last-child { border-bottom: 0; } .l7-control-zoom .l7-control-zoom__number { color: #595959; padding: 0; } .l7-control-zoom .l7-control-zoom__number:hover { background-color: #fff; } .l7-control-scale { display: flex; flex-direction: column; } .l7-control-scale .l7-control-scale-line { box-sizing: border-box; padding: 2px 5px 1px; overflow: hidden; color: #595959; font-size: 10px; line-height: 1.1; white-space: nowrap; background: #fff; border: 2px solid #000; border-top: 0; transition: width 0.1s; } .l7-control-scale .l7-control-scale-line + .l7-control-scale .l7-control-scale-line { margin-top: -2px; border-top: 2px solid #777; border-bottom: none; } .l7-right .l7-control-scale { display: flex; align-items: flex-end; } .l7-right .l7-control-scale .l7-control-scale-line { text-align: right; } .l7-popup { position: absolute; top: 0; left: 0; z-index: 5; display: flex; will-change: transform; pointer-events: none; } .l7-popup.l7-popup-hide { display: none; } .l7-popup .l7-popup-content { position: relative; padding: 16px; font-size: 14px; background: #fff; border-radius: 3px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .l7-popup .l7-popup-content .l7-popup-content__title { margin-bottom: 8px; font-weight: bold; } .l7-popup .l7-popup-content .l7-popup-close-button, .l7-popup .l7-popup-content .l7-popup-content__title, .l7-popup .l7-popup-content .l7-popup-content__panel { white-space: normal; -webkit-user-select: text; -moz-user-select: text; -ms-user-select: text; user-select: text; pointer-events: initial; } .l7-popup .l7-popup-content .l7-popup-close-button { position: absolute; top: 0; right: 0; width: 18px; height: 18px; padding: 0; font-size: 14px; line-height: 18px; text-align: center; background-color: transparent; border: 0; border-radius: 0 3px 0 0; cursor: pointer; } .l7-popup .l7-popup-tip { position: relative; z-index: 1; width: 0; height: 0; border: 10px solid transparent; } .l7-popup.l7-popup-anchor-bottom, .l7-popup.l7-popup-anchor-bottom-left, .l7-popup.l7-popup-anchor-bottom-right { flex-direction: column-reverse; } .l7-popup.l7-popup-anchor-bottom .l7-popup-tip, .l7-popup.l7-popup-anchor-bottom-left .l7-popup-tip, .l7-popup.l7-popup-anchor-bottom-right .l7-popup-tip { bottom: 1px; } .l7-popup.l7-popup-anchor-top, .l7-popup.l7-popup-anchor-top-left, .l7-popup.l7-popup-anchor-top-right { flex-direction: column; } .l7-popup.l7-popup-anchor-top .l7-popup-tip, .l7-popup.l7-popup-anchor-top-left .l7-popup-tip, .l7-popup.l7-popup-anchor-top-right .l7-popup-tip { top: 1px; } .l7-popup.l7-popup-anchor-left { flex-direction: row; } .l7-popup.l7-popup-anchor-right { flex-direction: row-reverse; } .l7-popup-anchor-top .l7-popup-tip { position: relative; align-self: center; border-top: none; border-bottom-color: #fff; } .l7-popup-anchor-top-left .l7-popup-tip { align-self: flex-start; border-top: none; border-bottom-color: #fff; border-left: none; } .l7-popup-anchor-top-right .l7-popup-tip { align-self: flex-end; border-top: none; border-right: none; border-bottom-color: #fff; } .l7-popup-anchor-bottom .l7-popup-tip { align-self: center; border-top-color: #fff; border-bottom: none; } .l7-popup-anchor-bottom-left .l7-popup-tip { align-self: flex-start; border-top-color: #fff; border-bottom: none; border-left: none; } .l7-popup-anchor-bottom-right .l7-popup-tip { align-self: flex-end; border-top-color: #fff; border-right: none; border-bottom: none; } .l7-popup-anchor-left .l7-popup-tip { align-self: center; border-right-color: #fff; border-left: none; } .l7-popup-anchor-right .l7-popup-tip { right: 1px; align-self: center; border-right: none; border-left-color: #fff; } .l7-popup-anchor-top-left .l7-popup-content { border-top-left-radius: 0; } .l7-popup-anchor-top-right .l7-popup-content { border-top-right-radius: 0; } .l7-popup-anchor-bottom-left .l7-popup-content { border-bottom-left-radius: 0; } .l7-popup-anchor-bottom-right .l7-popup-content { border-bottom-right-radius: 0; } .l7-popup-track-pointer { display: none; } .l7-popup-track-pointer * { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; pointer-events: none; } .l7-map:hover .l7-popup-track-pointer { display: flex; } .l7-map:active .l7-popup-track-pointer { display: none; } .l7-layer-popup__row { font-size: 12px; } .l7-layer-popup__row + .l7-layer-popup__row { margin-top: 4px; } .l7-control-swipe { position: absolute; top: 50%; left: 50%; z-index: 6; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); touch-action: none; } .l7-control-swipe_hide { display: none; } .l7-control-swipe:before { position: absolute; top: -5000px; bottom: -5000px; left: 50%; z-index: -1; width: 4px; background: #fff; -webkit-transform: translate(-2px, 0); transform: translate(-2px, 0); content: ''; } .l7-control-swipe.horizontal:before { top: 50%; right: -5000px; bottom: auto; left: -5000px; width: auto; height: 4px; } .l7-control-swipe__button { display: block; width: 28px; height: 28px; margin: 0; padding: 0; color: #595959; font-weight: bold; font-size: inherit; text-align: center; text-decoration: none; background-color: #fff; border: none; border-radius: 2px; outline: none; } .l7-control-swipe, .l7-control-swipe__button { cursor: ew-resize; } .l7-control-swipe.horizontal, .l7-control-swipe.horizontal button { cursor: ns-resize; } .l7-control-swipe:after, .l7-control-swipe__button:before, .l7-control-swipe__button:after { position: absolute; top: 25%; bottom: 25%; left: 50%; width: 2px; background: currentColor; -webkit-transform: translate(-1px, 0); transform: translate(-1px, 0); content: ''; } .l7-control-swipe__button:after { -webkit-transform: translateX(4px); transform: translateX(4px); } .l7-control-swipe__button:before { -webkit-transform: translateX(-6px); transform: translateX(-6px); } `);class kD{constructor(t){H(this,"configService",void 0),H(this,"config",void 0),this.config=t}setContainer(t,r){this.configService=t.globalConfigService,t.mapConfig=_t(_t({},this.config),{},{id:r}),t.mapService=new(this.getServiceConstructor())(t)}getServiceConstructor(){throw new Error("Method not implemented.")}}class zD{constructor(t){H(this,"size",1e4),this.size=t||1e4}setSize(t){this.size=t}getSize(){return[this.size,this.size]}mercatorXfromLng(t){return(180+t)/360*this.size}mercatorYfromLat(t){return(1-(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360)*this.size}lngFromMercatorX(t){return t/this.size*360-180}latFromMercatorY(t){const r=180-(1-t/this.size)*360;return 360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90}project(t){const r=this.mercatorXfromLng(t[0]),i=this.mercatorYfromLat(t[1]);return[r,i]}unproject(t){const r=this.lngFromMercatorX(t[0]),i=this.latFromMercatorY(t[1]);return[r,i]}}function h7(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function VD(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,i=Array(t);r=-90&&s<=90,"invalid latitude"),t*=V6;var u=i*Ac,n=s*Ac,y=t*(u+hp)/(2*hp),m=t*(hp-Math.log(Math.tan(m7+n*.5)))/(2*hp);return[y,m]}function eg(e,t){var r=ju(e,2),i=r[0],s=r[1];t*=V6;var u=i/t*(2*hp)-hp,n=2*(Math.atan(Math.exp(hp-s/t*(2*hp)))-m7);return[u*Q4,n*Q4]}function $D(e){var t=e.latitude,r=e.longitude,i=e.zoom,s=e.scale,u=e.highPrecision,n=u===void 0?!1:u;s=s!==void 0?s:_7(i),E1(Number.isFinite(t)&&Number.isFinite(r)&&Number.isFinite(s));var y={},m=V6*s,g=Math.cos(t*Ac),x=m/360,b=x/g,F=m/J4/g;if(y.pixelsPerMeter=[F,-F,F],y.metersPerPixel=[1/F,-1/F,1/F],y.pixelsPerDegree=[x,-b,F],y.degreesPerPixel=[1/x,-1/b,1/F],n){var R=Ac*Math.tan(t*Ac)/g,I=x*R/2,U=m/J4*R,V=U/b*F;y.pixelsPerDegree2=[0,-I,U],y.pixelsPerMeter2=[V,0,V]}return y}function qD(e){var t=e.height,r=e.pitch,i=e.bearing,s=e.altitude,u=e.center,n=u===void 0?null:u,y=cy();return of(y,y,[0,0,-s]),nf(y,y,[1,1,1/t]),i6(y,y,-r*Ac),Hg(y,y,i*Ac),nf(y,y,[1,-1,1]),n&&of(y,y,wv([],n)),y}function KD(e){var t=e.width,r=e.height,i=e.altitude,s=i===void 0?YD:i,u=e.pitch,n=u===void 0?0:u,y=e.nearZMultiplier,m=y===void 0?1:y,g=e.farZMultiplier,x=g===void 0?1:g,b=n*Ac,F=Math.atan(.5/s),R=Math.sin(F)*s/Math.sin(Math.PI/2-b-F),I=Math.cos(Math.PI/2-b)*R+s;return{fov:2*Math.atan(r/2/s),aspect:t/r,focalDistance:s,near:m,far:I*x}}function QD(e){var t=e.width,r=e.height,i=e.pitch,s=e.altitude,u=e.nearZMultiplier,n=e.farZMultiplier,y=KD({width:t,height:r,altitude:s,pitch:i,nearZMultiplier:u,farZMultiplier:n}),m=y.fov,g=y.aspect,x=y.near,b=y.far,F=Uv([],m,g,x,b);return F}function JD(e,t){var r=ju(e,3),i=r[0],s=r[1],u=r[2],n=u===void 0?0:u;return E1(Number.isFinite(i)&&Number.isFinite(s)&&Number.isFinite(n)),Kh(t,[i,s,n,1])}function g7(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=ju(e,3),s=i[0],u=i[1],n=i[2];if(E1(Number.isFinite(s)&&Number.isFinite(u),"invalid pixel coordinate"),Number.isFinite(n)){var y=Kh(t,[s,u,n,1]);return y}var m=Kh(t,[s,u,0,1]),g=Kh(t,[s,u,1,1]),x=m[2],b=g[2],F=x===b?0:((r||0)-x)/(b-x);return Rv([],m,g,F)}var tg=cy(),eO=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=t.width,i=t.height,s=t.viewMatrix,u=s===void 0?tg:s,n=t.projectionMatrix,y=n===void 0?tg:n;h7(this,e),this.width=r||1,this.height=i||1,this.scale=1,this.pixelsPerMeter=1,this.viewMatrix=u,this.projectionMatrix=y;var m=cy();S0(m,m,this.projectionMatrix),S0(m,m,this.viewMatrix),this.viewProjectionMatrix=m;var g=cy();nf(g,g,[this.width/2,-this.height/2,1]),of(g,g,[1,-1,0]),S0(g,g,this.viewProjectionMatrix);var x=o6(cy(),g);if(!x)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=g,this.pixelUnprojectionMatrix=x,this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}return f7(e,[{key:"equals",value:function(r){return r instanceof e?r.width===this.width&&r.height===this.height&&M3(r.projectionMatrix,this.projectionMatrix)&&M3(r.viewMatrix,this.viewMatrix):!1}},{key:"project",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=i.topLeft,u=s===void 0?!0:s,n=this.projectPosition(r),y=JD(n,this.pixelProjectionMatrix),m=ju(y,2),g=m[0],x=m[1],b=u?x:this.height-x;return r.length===2?[g,b]:[g,b,y[2]]}},{key:"unproject",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=i.topLeft,u=s===void 0?!0:s,n=i.targetZ,y=ju(r,3),m=y[0],g=y[1],x=y[2],b=u?g:this.height-g,F=n&&n*this.pixelsPerMeter,R=g7([m,b,x],this.pixelUnprojectionMatrix,F),I=this.unprojectPosition(R),U=ju(I,3),V=U[0],J=U[1],Q=U[2];return Number.isFinite(x)?[V,J,Q]:Number.isFinite(n)?[V,J,n]:[V,J]}},{key:"projectPosition",value:function(r){var i=this.projectFlat(r),s=ju(i,2),u=s[0],n=s[1],y=(r[2]||0)*this.pixelsPerMeter;return[u,n,y]}},{key:"unprojectPosition",value:function(r){var i=this.unprojectFlat(r),s=ju(i,2),u=s[0],n=s[1],y=(r[2]||0)/this.pixelsPerMeter;return[u,n,y]}},{key:"projectFlat",value:function(r){return arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale,r}},{key:"unprojectFlat",value:function(r){return arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale,r}}]),e}();function tO(e){var t=e.width,r=e.height,i=e.bounds,s=e.minExtent,u=s===void 0?0:s,n=e.maxZoom,y=n===void 0?24:n,m=e.padding,g=m===void 0?0:m,x=e.offset,b=x===void 0?[0,0]:x,F=ju(i,2),R=ju(F[0],2),I=R[0],U=R[1],V=ju(F[1],2),J=V[0],Q=V[1];if(Number.isFinite(g)){var te=g;g={top:te,bottom:te,left:te,right:te}}else E1(Number.isFinite(g.top)&&Number.isFinite(g.bottom)&&Number.isFinite(g.left)&&Number.isFinite(g.right));var ne=new Q2({width:t,height:r,longitude:0,latitude:0,zoom:0}),pe=ne.project([I,Q]),Oe=ne.project([J,U]),Ee=[Math.max(Math.abs(Oe[0]-pe[0]),u),Math.max(Math.abs(Oe[1]-pe[1]),u)],He=[t-g.left-g.right-Math.abs(b[0])*2,r-g.top-g.bottom-Math.abs(b[1])*2];E1(He[0]>0&&He[1]>0);var ft=He[0]/Ee[0],Ge=He[1]/Ee[1],Ae=(g.right-g.left)/2/ft,Be=(g.bottom-g.top)/2/Ge,ze=[(Oe[0]+pe[0])/2+Ae,(Oe[1]+pe[1])/2+Be],st=ne.unproject(ze),Vt=ne.zoom+Math.log2(Math.abs(Math.min(ft,Ge)));return{longitude:st[0],latitude:st[1],zoom:Math.min(Vt,y)}}var Q2=function(e){GD(t,e);function t(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=i.width,u=i.height,n=i.latitude,y=n===void 0?0:n,m=i.longitude,g=m===void 0?0:m,x=i.zoom,b=x===void 0?0:x,F=i.pitch,R=F===void 0?0:F,I=i.bearing,U=I===void 0?0:I,V=i.altitude,J=V===void 0?1.5:V,Q=i.nearZMultiplier,te=i.farZMultiplier;h7(this,t),s=s||1,u=u||1;var ne=_7(b);J=Math.max(.75,J);var pe=r2([g,y],ne);pe[2]=0;var Oe=QD({width:s,height:u,pitch:R,altitude:J,nearZMultiplier:Q||1/u,farZMultiplier:te||1.01}),Ee=qD({height:u,center:pe,pitch:R,bearing:U,altitude:J});return r=HD(this,q2(t).call(this,{width:s,height:u,viewMatrix:Ee,projectionMatrix:Oe})),r.latitude=y,r.longitude=g,r.zoom=b,r.pitch=R,r.bearing=U,r.altitude=J,r.scale=ne,r.center=pe,r.pixelsPerMeter=$D(ry(ry(r))).pixelsPerMeter[2],Object.freeze(ry(ry(r))),r}return f7(t,[{key:"projectFlat",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale;return r2(i,s)}},{key:"unprojectFlat",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.scale;return eg(i,s)}},{key:"getMapCenterByLngLatPosition",value:function(i){var s=i.lngLat,u=i.pos,n=g7(u,this.pixelUnprojectionMatrix),y=r2(s,this.scale),m=gc([],y,Cv([],n)),g=gc([],this.center,m);return eg(g,this.scale)}},{key:"getLocationAtPoint",value:function(i){var s=i.lngLat,u=i.pos;return this.getMapCenterByLngLatPosition({lngLat:s,pos:u})}},{key:"fitBounds",value:function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=this.width,n=this.height,y=tO(Object.assign({width:u,height:n,bounds:i},s)),m=y.longitude,g=y.latitude,x=y.zoom;return new t({width:u,height:n,longitude:m,latitude:g,zoom:x})}}]),t}(eO);class rO{constructor(){H(this,"viewport",new Q2)}syncWithMapCamera(t){const{center:r,zoom:i,pitch:s,bearing:u,viewportHeight:n,viewportWidth:y}=t,m={width:this.viewport.width,height:this.viewport.height,longitude:this.viewport.center[0],latitude:this.viewport.center[1],zoom:this.viewport.zoom,pitch:this.viewport.pitch,bearing:this.viewport.bearing};this.viewport=new Q2(_t(_t({},m),{},{width:y,height:n,longitude:r&&r[0],latitude:r&&r[1],zoom:i,pitch:s,bearing:u}))}getZoom(){return this.viewport.zoom}getZoomScale(){return Math.pow(2,this.getZoom())}getCenter(){return[this.viewport.longitude,this.viewport.latitude]}getProjectionMatrix(){return this.viewport.projectionMatrix}getModelMatrix(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}getViewMatrix(){return this.viewport.viewMatrix}getViewMatrixUncentered(){return this.viewport.viewMatrixUncentered}getViewProjectionMatrix(){return this.viewport.viewProjectionMatrix}getViewProjectionMatrixUncentered(){return this.viewport.viewProjectionMatrix}getFocalDistance(){return 1}projectFlat(t,r){return this.viewport.projectFlat(t,r)}}const oO={light:"mapbox://styles/zcxduo/ck2ypyb1r3q9o1co1766dex29",dark:"mapbox://styles/zcxduo/ck241p6413s0b1cpayzldv7x7",normal:"mapbox://styles/mapbox/streets-v11",blank:{version:8,sources:{},layers:[{id:"background",type:"background",layout:{visibility:"none"}}]}},rg={mapmove:"move",camerachange:"move",zoomchange:"zoom",dragging:"drag"},iO=12;class nO{constructor(t){H(this,"version","DEFAUlTMAP"),H(this,"map",void 0),H(this,"simpleMapCoord",new zD),H(this,"bgColor","rgba(0.0, 0.0, 0.0, 0.0)"),H(this,"config",void 0),H(this,"configService",void 0),H(this,"coordinateSystemService",void 0),H(this,"eventEmitter",void 0),H(this,"markerContainer",void 0),H(this,"cameraChangedCallback",void 0),H(this,"$mapContainer",void 0),H(this,"handleCameraChanged",r=>{const{lat:i,lng:s}=this.map.getCenter();this.emit("mapchange"),this.viewport.syncWithMapCamera({bearing:this.map.getBearing(),center:[s,i],viewportHeight:this.map.transform.height,pitch:this.map.getPitch(),viewportWidth:this.map.transform.width,zoom:this.map.getZoom(),cameraHeight:0}),this.updateCoordinateSystemService(),this.cameraChangedCallback(this.viewport)}),this.config=t.mapConfig,this.configService=t.globalConfigService,this.coordinateSystemService=t.coordinateSystemService,this.eventEmitter=new du.EventEmitter}setBgColor(t){this.bgColor=t}addMarkerContainer(){const t=this.map.getCanvasContainer();this.markerContainer=lu("div","l7-marker-container",t),this.markerContainer.setAttribute("tabindex","-1")}getMarkerContainer(){return this.markerContainer}getOverlayContainer(){}getCanvasOverlays(){}on(t,r){Ub.indexOf(t)!==-1?this.eventEmitter.on(t,r):this.map.on(rg[t]||t,r)}off(t,r){this.map.off(rg[t]||t,r),this.eventEmitter.off(t,r)}getContainer(){return this.map.getContainer()}getMapCanvasContainer(){return this.map.getCanvasContainer()}getSize(){if(this.version==="SIMPLE")return this.simpleMapCoord.getSize();const t=this.map.transform;return[t.width,t.height]}getType(){return"default"}getZoom(){return this.map.getZoom()}setZoom(t){return this.map.setZoom(t)}getCenter(){return this.map.getCenter()}setCenter(t){this.map.setCenter(t)}getPitch(){return this.map.getPitch()}getRotation(){return this.map.getBearing()}getBounds(){return this.map.getBounds().toArray()}getMinZoom(){return this.map.getMinZoom()}getMaxZoom(){return this.map.getMaxZoom()}setRotation(t){this.map.setBearing(t)}zoomIn(t,r){this.map.zoomIn(t,r)}zoomOut(t,r){this.map.zoomOut(t,r)}setPitch(t){return this.map.setPitch(t)}panTo(t){this.map.panTo(t)}panBy(t=0,r=0){this.map.panBy([t,r])}fitBounds(t,r){this.map.fitBounds(t,r)}setMaxZoom(t){this.map.setMaxZoom(t)}setMinZoom(t){this.map.setMinZoom(t)}setMapStatus(t){t.doubleClickZoom===!0&&this.map.doubleClickZoom.enable(),t.doubleClickZoom===!1&&this.map.doubleClickZoom.disable(),t.dragEnable===!1&&this.map.dragPan.disable(),t.dragEnable===!0&&this.map.dragPan.enable(),t.rotateEnable===!1&&this.map.dragRotate.disable(),t.dragEnable===!0&&this.map.dragRotate.enable(),t.keyboardEnable===!1&&this.map.keyboard.disable(),t.keyboardEnable===!0&&this.map.keyboard.enable(),t.zoomEnable===!1&&this.map.scrollZoom.disable(),t.zoomEnable===!0&&this.map.scrollZoom.enable()}setZoomAndCenter(t,r){this.map.flyTo({zoom:t,center:r})}setMapStyle(t){var r;(r=this.map)===null||r===void 0||r.setStyle(this.getMapStyleValue(t))}meterToCoord(t,r){return 1}pixelToLngLat(t){return this.map.unproject(t)}lngLatToPixel(t){return this.map.project(t)}containerToLngLat(t){return this.map.unproject(t)}lngLatToContainer(t){return this.map.project(t)}getMapStyle(){try{var t;const r=(t=this.map.getStyle().sprite)!==null&&t!==void 0?t:"";return/^mapbox:\/\/sprites\/zcxduo\/\w+\/\w+$/.test(r)?r==null?void 0:r.replace(/\/\w+$/,"").replace(/sprites/,"styles"):r}catch{return""}}getMapStyleConfig(){return oO}getMapStyleValue(t){var r;return(r=this.getMapStyleConfig()[t])!==null&&r!==void 0?r:t}destroy(){this.eventEmitter.removeAllListeners(),this.map&&(this.map.remove(),this.$mapContainer=null)}emit(t,...r){this.eventEmitter.emit(t,...r)}once(t,...r){this.eventEmitter.once(t,...r)}getMapContainer(){return this.$mapContainer}exportMap(t){var r;const i=(r=this.map)===null||r===void 0?void 0:r.getCanvas();return t==="jpg"?i==null?void 0:i.toDataURL("image/jpeg"):i==null?void 0:i.toDataURL("image/png")}onCameraChanged(t){this.cameraChangedCallback=t}creatMapContainer(t){let r=t;return typeof t=="string"&&(r=document.getElementById(t)),r}updateView(t){this.emit("mapchange"),this.viewport.syncWithMapCamera({bearing:t.bearing,center:t.center,viewportHeight:t.viewportHeight,pitch:t.pitch,viewportWidth:t.viewportWidth,zoom:t.zoom,cameraHeight:0}),this.updateCoordinateSystemService(),this.cameraChangedCallback(this.viewport)}updateCoordinateSystemService(){const{offsetCoordinate:t=!0}=this.config;this.viewport.getZoom()>iO&&t?this.coordinateSystemService.setCoordinateSystem(df.LNGLAT_OFFSET):this.coordinateSystemService.setCoordinateSystem(df.LNGLAT)}}var v7={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){var r,i,s;function u(n,y){if(!r)r=y;else if(!i)i=y;else{var m="var sharedChunk = {}; ("+r+")(sharedChunk); ("+i+")(sharedChunk);",g={};r(g),s=y(g),typeof window<"u"&&(s.workerUrl=window.URL.createObjectURL(new Blob([m],{type:"text/javascript"})))}}return u(["exports"],function(n){function y(o,a){return o(a={exports:{}},a.exports),a.exports}var m=g;function g(o,a,p,h){this.cx=3*o,this.bx=3*(p-o)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(h-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=o,this.p1y=h,this.p2x=p,this.p2y=h}g.prototype.sampleCurveX=function(o){return((this.ax*o+this.bx)*o+this.cx)*o},g.prototype.sampleCurveY=function(o){return((this.ay*o+this.by)*o+this.cy)*o},g.prototype.sampleCurveDerivativeX=function(o){return(3*this.ax*o+2*this.bx)*o+this.cx},g.prototype.solveCurveX=function(o,a){var p,h,_,v,P;for(a===void 0&&(a=1e-6),_=o,P=0;P<8;P++){if(v=this.sampleCurveX(_)-o,Math.abs(v)(h=1))return h;for(;pv?p=_:h=_,_=.5*(h-p)+p}return _},g.prototype.solve=function(o,a){return this.sampleCurveY(this.solveCurveX(o,a))};var x=b;function b(o,a){this.x=o,this.y=a}b.prototype={clone:function(){return new b(this.x,this.y)},add:function(o){return this.clone()._add(o)},sub:function(o){return this.clone()._sub(o)},multByPoint:function(o){return this.clone()._multByPoint(o)},divByPoint:function(o){return this.clone()._divByPoint(o)},mult:function(o){return this.clone()._mult(o)},div:function(o){return this.clone()._div(o)},rotate:function(o){return this.clone()._rotate(o)},rotateAround:function(o,a){return this.clone()._rotateAround(o,a)},matMult:function(o){return this.clone()._matMult(o)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(o){return this.x===o.x&&this.y===o.y},dist:function(o){return Math.sqrt(this.distSqr(o))},distSqr:function(o){var a=o.x-this.x,p=o.y-this.y;return a*a+p*p},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(o){return Math.atan2(this.y-o.y,this.x-o.x)},angleWith:function(o){return this.angleWithSep(o.x,o.y)},angleWithSep:function(o,a){return Math.atan2(this.x*a-this.y*o,this.x*o+this.y*a)},_matMult:function(o){var a=o[2]*this.x+o[3]*this.y;return this.x=o[0]*this.x+o[1]*this.y,this.y=a,this},_add:function(o){return this.x+=o.x,this.y+=o.y,this},_sub:function(o){return this.x-=o.x,this.y-=o.y,this},_mult:function(o){return this.x*=o,this.y*=o,this},_div:function(o){return this.x/=o,this.y/=o,this},_multByPoint:function(o){return this.x*=o.x,this.y*=o.y,this},_divByPoint:function(o){return this.x/=o.x,this.y/=o.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var o=this.y;return this.y=this.x,this.x=-o,this},_rotate:function(o){var a=Math.cos(o),p=Math.sin(o),h=p*this.x+a*this.y;return this.x=a*this.x-p*this.y,this.y=h,this},_rotateAround:function(o,a){var p=Math.cos(o),h=Math.sin(o),_=a.y+h*(this.x-a.x)+p*(this.y-a.y);return this.x=a.x+p*(this.x-a.x)-h*(this.y-a.y),this.y=_,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},b.convert=function(o){return o instanceof b?o:Array.isArray(o)?new b(o[0],o[1]):o};var F=typeof self<"u"?self:{},R=Math.pow(2,53)-1;function I(o,a,p,h){var _=new m(o,a,p,h);return function(v){return _.solve(v)}}var U=I(.25,.1,.25,1);function V(o,a,p){return Math.min(p,Math.max(a,o))}function J(o,a,p){var h=p-a,_=((o-a)%h+h)%h+a;return _===a?p:_}function Q(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];for(var h=0,_=a;h<_.length;h+=1){var v=_[h];for(var P in v)o[P]=v[P]}return o}var te=1;function ne(){return te++}function pe(){return function o(a){return a?(a^16*Math.random()>>a/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,o)}()}function Oe(o){return!!o&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(o)}function Ee(o,a){o.forEach(function(p){a[p]&&(a[p]=a[p].bind(a))})}function He(o,a){return o.indexOf(a,o.length-a.length)!==-1}function ft(o,a,p){var h={};for(var _ in o)h[_]=a.call(p||this,o[_],_,o);return h}function Ge(o,a,p){var h={};for(var _ in o)a.call(p||this,o[_],_,o)&&(h[_]=o[_]);return h}function Ae(o){return Array.isArray(o)?o.map(Ae):typeof o=="object"&&o?ft(o,Ae):o}var Be={};function ze(o){Be[o]||(typeof console<"u"&&console.warn(o),Be[o]=!0)}function st(o,a,p){return(p.y-o.y)*(a.x-o.x)>(a.y-o.y)*(p.x-o.x)}function Vt(o){for(var a=0,p=0,h=o.length,_=h-1,v=void 0,P=void 0;p@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,function(h,_,v,P){var S=v||P;return a[_]=!S||S.toLowerCase(),""}),a["max-age"]){var p=parseInt(a["max-age"],10);isNaN(p)?delete a["max-age"]:a["max-age"]=p}return a}var Yr=null;function mr(o){if(Yr==null){var a=o.navigator?o.navigator.userAgent:null;Yr=!!o.safari||!(!a||!(/\b(iPad|iPhone|iPod)\b/.test(a)||a.match("Safari")&&!a.match("Chrome")))}return Yr}function Er(o){try{var a=F[o];return a.setItem("_mapbox_test_",1),a.removeItem("_mapbox_test_"),!0}catch{return!1}}var qr,Jr,_o,So,oo=F.performance&&F.performance.now?F.performance.now.bind(F.performance):Date.now.bind(Date),Wi=F.requestAnimationFrame||F.mozRequestAnimationFrame||F.webkitRequestAnimationFrame||F.msRequestAnimationFrame,bo=F.cancelAnimationFrame||F.mozCancelAnimationFrame||F.webkitCancelAnimationFrame||F.msCancelAnimationFrame,Ni={now:oo,frame:function(o){var a=Wi(o);return{cancel:function(){return bo(a)}}},getImageData:function(o,a){a===void 0&&(a=0);var p=F.document.createElement("canvas"),h=p.getContext("2d");if(!h)throw new Error("failed to create canvas 2d context");return p.width=o.width,p.height=o.height,h.drawImage(o,0,0,o.width,o.height),h.getImageData(-a,-a,o.width+2*a,o.height+2*a)},resolveURL:function(o){return qr||(qr=F.document.createElement("a")),qr.href=o,qr.href},hardwareConcurrency:F.navigator&&F.navigator.hardwareConcurrency||4,get devicePixelRatio(){return F.devicePixelRatio},get prefersReducedMotion(){return!!F.matchMedia&&(Jr==null&&(Jr=F.matchMedia("(prefers-reduced-motion: reduce)")),Jr.matches)}},$e={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},Yt={supported:!1,testSupport:function(o){!Sr&&So&&(Ft?xr(o):_o=o)}},Sr=!1,Ft=!1;function xr(o){var a=o.createTexture();o.bindTexture(o.TEXTURE_2D,a);try{if(o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,So),o.isContextLost())return;Yt.supported=!0}catch{}o.deleteTexture(a),Sr=!0}F.document&&((So=F.document.createElement("img")).onload=function(){_o&&xr(_o),_o=null,Ft=!0},So.onerror=function(){Sr=!0,_o=null},So.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var io="01",go=function(o,a){this._transformRequestFn=o,this._customAccessToken=a,this._createSkuToken()};function to(o){return o.indexOf("mapbox:")===0}go.prototype._createSkuToken=function(){var o=function(){for(var a="",p=0;p<10;p++)a+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",io,a].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=o.token,this._skuTokenExpiresAt=o.tokenExpiresAt},go.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},go.prototype.transformRequest=function(o,a){return this._transformRequestFn&&this._transformRequestFn(o,a)||{url:o}},go.prototype.normalizeStyleURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/styles/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeGlyphsURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/fonts/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeSourceURL=function(o,a){if(!to(o))return o;var p=Qo(o);return p.path="/v4/"+p.authority+".json",p.params.push("secure"),this._makeAPIURL(p,this._customAccessToken||a)},go.prototype.normalizeSpriteURL=function(o,a,p,h){var _=Qo(o);return to(o)?(_.path="/styles/v1"+_.path+"/sprite"+a+p,this._makeAPIURL(_,this._customAccessToken||h)):(_.path+=""+a+p,ti(_))},go.prototype.normalizeTileURL=function(o,a){if(this._isSkuTokenExpired()&&this._createSkuToken(),o&&!to(o))return o;var p=Qo(o);p.path=p.path.replace(/(\.(png|jpg)\d*)(?=$)/,(Ni.devicePixelRatio>=2||a===512?"@2x":"")+(Yt.supported?".webp":"$1")),p.path=p.path.replace(/^.+\/v4\//,"/"),p.path="/v4"+p.path;var h=this._customAccessToken||function(_){for(var v=0,P=_;v=0&&o.params.splice(_,1)}if(h.path!=="/"&&(o.path=""+h.path+o.path),!$e.REQUIRE_ACCESS_TOKEN)return ti(o);if(!(a=a||$e.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+p);if(a[0]==="s")throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+p);return o.params=o.params.filter(function(v){return v.indexOf("access_token")===-1}),o.params.push("access_token="+a),ti(o)};var Kr=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function Ao(o){return Kr.test(o)}var $i=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Qo(o){var a=o.match($i);if(!a)throw new Error("Unable to parse URL object");return{protocol:a[1],authority:a[2],path:a[3]||"/",params:a[4]?a[4].split("&"):[]}}function ti(o){var a=o.params.length?"?"+o.params.join("&"):"";return o.protocol+"://"+o.authority+o.path+a}function Pn(o){if(!o)return null;var a=o.split(".");if(!a||a.length!==3)return null;try{return JSON.parse(decodeURIComponent(F.atob(a[1]).split("").map(function(p){return"%"+("00"+p.charCodeAt(0).toString(16)).slice(-2)}).join("")))}catch{return null}}var se=function(o){this.type=o,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null};se.prototype.getStorageKey=function(o){var a,p=Pn($e.ACCESS_TOKEN);return a=p&&p.u?F.btoa(encodeURIComponent(p.u).replace(/%([0-9A-F]{2})/g,function(h,_){return String.fromCharCode(+("0x"+_))})):$e.ACCESS_TOKEN||"",o?"mapbox.eventData."+o+":"+a:"mapbox.eventData:"+a},se.prototype.fetchEventData=function(){var o=Er("localStorage"),a=this.getStorageKey(),p=this.getStorageKey("uuid");if(o)try{var h=F.localStorage.getItem(a);h&&(this.eventData=JSON.parse(h));var _=F.localStorage.getItem(p);_&&(this.anonId=_)}catch{ze("Unable to read from LocalStorage")}},se.prototype.saveEventData=function(){var o=Er("localStorage"),a=this.getStorageKey(),p=this.getStorageKey("uuid");if(o)try{F.localStorage.setItem(p,this.anonId),Object.keys(this.eventData).length>=1&&F.localStorage.setItem(a,JSON.stringify(this.eventData))}catch{ze("Unable to write to LocalStorage")}},se.prototype.processRequests=function(o){},se.prototype.postEvent=function(o,a,p,h){var _=this;if($e.EVENTS_URL){var v=Qo($e.EVENTS_URL);v.params.push("access_token="+(h||$e.ACCESS_TOKEN||""));var P={event:this.type,created:new Date(o).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.13.3",skuId:io,userId:this.anonId},S=a?Q(P,a):P,C={url:ti(v),headers:{"Content-Type":"text/plain"},body:JSON.stringify([S])};this.pendingRequest=Go(C,function(M){_.pendingRequest=null,p(M),_.saveEventData(),_.processRequests(h)})}},se.prototype.queueRequest=function(o,a){this.queue.push(o),this.processRequests(a)};var bn,ja,An=function(o){function a(){o.call(this,"map.load"),this.success={},this.skuToken=""}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.postMapLoadEvent=function(p,h,_,v){this.skuToken=_;var P=!(!v&&!$e.ACCESS_TOKEN),S=Array.isArray(p)&&p.some(function(C){return to(C)||Ao(C)});$e.EVENTS_URL&&P&&S&&this.queueRequest({id:h,timestamp:Date.now()},v)},a.prototype.processRequests=function(p){var h=this;if(!this.pendingRequest&&this.queue.length!==0){var _=this.queue.shift(),v=_.id,P=_.timestamp;v&&this.success[v]||(this.anonId||this.fetchEventData(),Oe(this.anonId)||(this.anonId=pe()),this.postEvent(P,{skuToken:this.skuToken},function(S){S||v&&(h.success[v]=!0)},p))}},a}(se),ss=new(function(o){function a(p){o.call(this,"appUserTurnstile"),this._customAccessToken=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.postTurnstileEvent=function(p,h){$e.EVENTS_URL&&$e.ACCESS_TOKEN&&Array.isArray(p)&&p.some(function(_){return to(_)||Ao(_)})&&this.queueRequest(Date.now(),h)},a.prototype.processRequests=function(p){var h=this;if(!this.pendingRequest&&this.queue.length!==0){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var _=Pn($e.ACCESS_TOKEN),v=_?_.u:$e.ACCESS_TOKEN,P=v!==this.eventData.tokenU;Oe(this.anonId)||(this.anonId=pe(),P=!0);var S=this.queue.shift();if(this.eventData.lastSuccess){var C=new Date(this.eventData.lastSuccess),M=new Date(S),O=(S-this.eventData.lastSuccess)/864e5;P=P||O>=1||O<-1||C.getDate()!==M.getDate()}else P=!0;if(!P)return this.processRequests();this.postEvent(S,{"enabled.telemetry":!1},function(B){B||(h.eventData.lastSuccess=S,h.eventData.tokenU=v)},p)}},a}(se)),si=ss.postTurnstileEvent.bind(ss),Fn=new An,pa=Fn.postMapLoadEvent.bind(Fn),Tn=500,vs=50;function zi(){F.caches&&!bn&&(bn=F.caches.open("mapbox-tiles"))}function us(o){var a=o.indexOf("?");return a<0?o:o.slice(0,a)}var xa,Hs=1/0;function Zu(){return xa==null&&(xa=F.OffscreenCanvas&&new F.OffscreenCanvas(1,1).getContext("2d")&&typeof F.createImageBitmap=="function"),xa}var Gs={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(Gs);var vp=function(o){function a(p,h,_){h===401&&Ao(_)&&(p+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),o.call(this,p),this.status=h,this.url=_,this.name=this.constructor.name,this.message=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},a}(Error),js=ir()?function(){return self.worker&&self.worker.referrer}:function(){return(F.location.protocol==="blob:"?F.parent:F).location.href},Ma,Na,Es=function(o,a){if(!(/^file:/.test(p=o.url)||/^file:/.test(js())&&!/^\w+:/.test(p))){if(F.fetch&&F.Request&&F.AbortController&&F.Request.prototype.hasOwnProperty("signal"))return function(h,_){var v,P=new F.AbortController,S=new F.Request(h.url,{method:h.method||"GET",body:h.body,credentials:h.credentials,headers:h.headers,referrer:js(),signal:P.signal}),C=!1,M=!1,O=(v=S.url).indexOf("sku=")>0&&Ao(v);h.type==="json"&&S.headers.set("Accept","application/json");var B=function(Y,ce,he){if(!M){if(Y&&Y.message!=="SecurityError"&&ze(Y),ce&&he)return j(ce);var Re=Date.now();F.fetch(S).then(function(be){if(be.ok){var Ve=O?be.clone():null;return j(be,Ve,Re)}return _(new vp(be.statusText,be.status,h.url))}).catch(function(be){be.code!==20&&_(new Error(be.message))})}},j=function(Y,ce,he){(h.type==="arrayBuffer"?Y.arrayBuffer():h.type==="json"?Y.json():Y.text()).then(function(Re){M||(ce&&he&&function(be,Ve,Ze){if(zi(),bn){var it={status:Ve.status,statusText:Ve.statusText,headers:new F.Headers};Ve.headers.forEach(function(Et,kt){return it.headers.set(kt,Et)});var ut=Fr(Ve.headers.get("Cache-Control")||"");ut["no-store"]||(ut["max-age"]&&it.headers.set("Expires",new Date(Ze+1e3*ut["max-age"]).toUTCString()),new Date(it.headers.get("Expires")).getTime()-Ze<42e4||function(Et,kt){if(ja===void 0)try{new Response(new ReadableStream),ja=!0}catch{ja=!1}ja?kt(Et.body):Et.blob().then(kt)}(Ve,function(Et){var kt=new F.Response(Et,it);zi(),bn&&bn.then(function(qt){return qt.put(us(be.url),kt)}).catch(function(qt){return ze(qt.message)})}))}}(S,ce,he),C=!0,_(null,Re,Y.headers.get("Cache-Control"),Y.headers.get("Expires")))}).catch(function(Re){M||_(new Error(Re.message))})};return O?function(Y,ce){if(zi(),!bn)return ce(null);var he=us(Y.url);bn.then(function(Re){Re.match(he).then(function(be){var Ve=function(Ze){if(!Ze)return!1;var it=new Date(Ze.headers.get("Expires")||0),ut=Fr(Ze.headers.get("Cache-Control")||"");return it>Date.now()&&!ut["no-cache"]}(be);Re.delete(he),Ve&&Re.put(he,be.clone()),ce(null,be,Ve)}).catch(ce)}).catch(ce)}(S,B):B(null,null),{cancel:function(){M=!0,C||P.abort()}}}(o,a);if(ir()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",o,a,void 0,!0)}var p;return function(h,_){var v=new F.XMLHttpRequest;for(var P in v.open(h.method||"GET",h.url,!0),h.type==="arrayBuffer"&&(v.responseType="arraybuffer"),h.headers)v.setRequestHeader(P,h.headers[P]);return h.type==="json"&&(v.responseType="text",v.setRequestHeader("Accept","application/json")),v.withCredentials=h.credentials==="include",v.onerror=function(){_(new Error(v.statusText))},v.onload=function(){if((v.status>=200&&v.status<300||v.status===0)&&v.response!==null){var S=v.response;if(h.type==="json")try{S=JSON.parse(v.response)}catch(C){return _(C)}_(null,S,v.getResponseHeader("Cache-Control"),v.getResponseHeader("Expires"))}else _(new vp(v.statusText,v.status,h.url))},v.send(h.body),{cancel:function(){return v.abort()}}}(o,a)},Yu=function(o,a){return Es(Q(o,{type:"arrayBuffer"}),a)},Go=function(o,a){return Es(Q(o,{method:"POST"}),a)},k="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";Ma=[],Na=0;var G=function(o,a){if(Yt.supported&&(o.headers||(o.headers={}),o.headers.accept="image/webp,*/*"),Na>=$e.MAX_PARALLEL_IMAGE_REQUESTS){var p={requestParameters:o,callback:a,cancelled:!1,cancel:function(){this.cancelled=!0}};return Ma.push(p),p}Na++;var h=!1,_=function(){if(!h)for(h=!0,Na--;Ma.length&&Na<$e.MAX_PARALLEL_IMAGE_REQUESTS;){var P=Ma.shift();P.cancelled||(P.cancel=G(P.requestParameters,P.callback).cancel)}},v=Yu(o,function(P,S,C,M){_(),P?a(P):S&&(Zu()?function(O,B){var j=new F.Blob([new Uint8Array(O)],{type:"image/png"});F.createImageBitmap(j).then(function(Y){B(null,Y)}).catch(function(Y){B(new Error("Could not load image because of "+Y.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))})}(S,a):function(O,B,j,Y){var ce=new F.Image,he=F.URL;ce.onload=function(){B(null,ce),he.revokeObjectURL(ce.src),ce.onload=null,F.requestAnimationFrame(function(){ce.src=k})},ce.onerror=function(){return B(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var Re=new F.Blob([new Uint8Array(O)],{type:"image/png"});ce.cacheControl=j,ce.expires=Y,ce.src=O.byteLength?he.createObjectURL(Re):k}(S,a,C,M))});return{cancel:function(){v.cancel(),_()}}};function W(o,a,p){p[o]&&p[o].indexOf(a)!==-1||(p[o]=p[o]||[],p[o].push(a))}function oe(o,a,p){if(p&&p[o]){var h=p[o].indexOf(a);h!==-1&&p[o].splice(h,1)}}var ye=function(o,a){a===void 0&&(a={}),Q(this,a),this.type=o},Ie=function(o){function a(p,h){h===void 0&&(h={}),o.call(this,"error",Q({error:p},h))}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(ye),Le=function(){};Le.prototype.on=function(o,a){return this._listeners=this._listeners||{},W(o,a,this._listeners),this},Le.prototype.off=function(o,a){return oe(o,a,this._listeners),oe(o,a,this._oneTimeListeners),this},Le.prototype.once=function(o,a){return this._oneTimeListeners=this._oneTimeListeners||{},W(o,a,this._oneTimeListeners),this},Le.prototype.fire=function(o,a){typeof o=="string"&&(o=new ye(o,a||{}));var p=o.type;if(this.listens(p)){o.target=this;for(var h=0,_=this._listeners&&this._listeners[p]?this._listeners[p].slice():[];h<_.length;h+=1)_[h].call(this,o);for(var v=0,P=this._oneTimeListeners&&this._oneTimeListeners[p]?this._oneTimeListeners[p].slice():[];v0||this._oneTimeListeners&&this._oneTimeListeners[o]&&this._oneTimeListeners[o].length>0||this._eventedParent&&this._eventedParent.listens(o)},Le.prototype.setEventedParent=function(o,a){return this._eventedParent=o,this._eventedParentData=a,this};var q={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},ge=function(o,a,p,h){this.message=(o?o+": ":"")+p,h&&(this.identifier=h),a!=null&&a.__line__&&(this.line=a.__line__)};function We(o){var a=o.value;return a?[new ge(o.key,a,"constants have been deprecated as of v8")]:[]}function ht(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];for(var h=0,_=a;h<_.length;h+=1){var v=_[h];for(var P in v)o[P]=v[P]}return o}function Nt(o){return o instanceof Number||o instanceof String||o instanceof Boolean?o.valueOf():o}function lt(o){if(Array.isArray(o))return o.map(lt);if(o instanceof Object&&!(o instanceof Number||o instanceof String||o instanceof Boolean)){var a={};for(var p in o)a[p]=lt(o[p]);return a}return Nt(o)}var wt=function(o){function a(p,h){o.call(this,h),this.message=h,this.key=p}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a}(Error),_r=function(o,a){a===void 0&&(a=[]),this.parent=o,this.bindings={};for(var p=0,h=a;p":o.itemType.kind==="value"?"array":"array<"+a+">"}return o.kind}var Vi=[yr,dt,or,Wt,Zt,Jo,no,Mo(er),vo];function wo(o,a){if(a.kind==="error")return null;if(o.kind==="array"){if(a.kind==="array"&&(a.N===0&&a.itemType.kind==="value"||!wo(o.itemType,a.itemType))&&(typeof o.N!="number"||o.N===a.N))return null}else{if(o.kind===a.kind)return null;if(o.kind==="value"){for(var p=0,h=Vi;p255?255:S}function _(S){return h(S[S.length-1]==="%"?parseFloat(S)/100*255:parseInt(S))}function v(S){return(C=S[S.length-1]==="%"?parseFloat(S)/100:parseFloat(S))<0?0:C>1?1:C;var C}function P(S,C,M){return M<0?M+=1:M>1&&(M-=1),6*M<1?S+(C-S)*M*6:2*M<1?C:3*M<2?S+(C-S)*(2/3-M)*6:S}try{a.parseCSSColor=function(S){var C,M=S.replace(/ /g,"").toLowerCase();if(M in p)return p[M].slice();if(M[0]==="#")return M.length===4?(C=parseInt(M.substr(1),16))>=0&&C<=4095?[(3840&C)>>4|(3840&C)>>8,240&C|(240&C)>>4,15&C|(15&C)<<4,1]:null:M.length===7&&(C=parseInt(M.substr(1),16))>=0&&C<=16777215?[(16711680&C)>>16,(65280&C)>>8,255&C,1]:null;var O=M.indexOf("("),B=M.indexOf(")");if(O!==-1&&B+1===M.length){var j=M.substr(0,O),Y=M.substr(O+1,B-(O+1)).split(","),ce=1;switch(j){case"rgba":if(Y.length!==4)return null;ce=v(Y.pop());case"rgb":return Y.length!==3?null:[_(Y[0]),_(Y[1]),_(Y[2]),ce];case"hsla":if(Y.length!==4)return null;ce=v(Y.pop());case"hsl":if(Y.length!==3)return null;var he=(parseFloat(Y[0])%360+360)%360/360,Re=v(Y[1]),be=v(Y[2]),Ve=be<=.5?be*(Re+1):be+Re-be*Re,Ze=2*be-Ve;return[h(255*P(Ze,Ve,he+1/3)),h(255*P(Ze,Ve,he)),h(255*P(Ze,Ve,he-1/3)),ce];default:return null}}return null}}catch{}}).parseCSSColor,Eo=function(o,a,p,h){h===void 0&&(h=1),this.r=o,this.g=a,this.b=p,this.a=h};Eo.parse=function(o){if(o){if(o instanceof Eo)return o;if(typeof o=="string"){var a=so(o);if(a)return new Eo(a[0]/255*a[3],a[1]/255*a[3],a[2]/255*a[3],a[3])}}},Eo.prototype.toString=function(){var o=this.toArray(),a=o[1],p=o[2],h=o[3];return"rgba("+Math.round(o[0])+","+Math.round(a)+","+Math.round(p)+","+h+")"},Eo.prototype.toArray=function(){var o=this.a;return o===0?[0,0,0,0]:[255*this.r/o,255*this.g/o,255*this.b/o,o]},Eo.black=new Eo(0,0,0,1),Eo.white=new Eo(1,1,1,1),Eo.transparent=new Eo(0,0,0,0),Eo.red=new Eo(1,0,0,1);var Ln=function(o,a,p){this.sensitivity=o?a?"variant":"case":a?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};Ln.prototype.compare=function(o,a){return this.collator.compare(o,a)},Ln.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var yu=function(o,a,p,h,_){this.text=o,this.image=a,this.scale=p,this.fontStack=h,this.textColor=_},Di=function(o){this.sections=o};Di.fromString=function(o){return new Di([new yu(o,null,null,null,null)])},Di.prototype.isEmpty=function(){return this.sections.length===0||!this.sections.some(function(o){return o.text.length!==0||o.image&&o.image.name.length!==0})},Di.factory=function(o){return o instanceof Di?o:Di.fromString(o)},Di.prototype.toString=function(){return this.sections.length===0?"":this.sections.map(function(o){return o.text}).join("")},Di.prototype.serialize=function(){for(var o=["format"],a=0,p=this.sections;a=0&&o<=255&&typeof a=="number"&&a>=0&&a<=255&&typeof p=="number"&&p>=0&&p<=255?h===void 0||typeof h=="number"&&h>=0&&h<=1?null:"Invalid rgba value ["+[o,a,p,h].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+(typeof h=="number"?[o,a,p,h]:[o,a,p]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function Wa(o){if(o===null||typeof o=="string"||typeof o=="boolean"||typeof o=="number"||o instanceof Eo||o instanceof Ln||o instanceof Di||o instanceof gi)return!0;if(Array.isArray(o)){for(var a=0,p=o;a2){var S=o[1];if(typeof S!="string"||!(S in Hi)||S==="object")return a.error('The item type argument of "array" must be one of string, number, boolean',1);v=Hi[S],h++}else v=er;if(o.length>3){if(o[2]!==null&&(typeof o[2]!="number"||o[2]<0||o[2]!==Math.floor(o[2])))return a.error('The length argument to "array" must be a positive integer literal',2);P=o[2],h++}p=Mo(v,P)}else p=Hi[_];for(var C=[];h1)&&a.push(h)}}return a.concat(this.args.map(function(_){return _.serialize()}))};var Jn=function(o){this.type=Jo,this.sections=o};Jn.parse=function(o,a){if(o.length<2)return a.error("Expected at least one argument.");var p=o[1];if(!Array.isArray(p)&&typeof p=="object")return a.error("First argument must be an image or text section.");for(var h=[],_=!1,v=1;v<=o.length-1;++v){var P=o[v];if(_&&typeof P=="object"&&!Array.isArray(P)){_=!1;var S=null;if(P["font-scale"]&&!(S=a.parse(P["font-scale"],1,dt)))return null;var C=null;if(P["text-font"]&&!(C=a.parse(P["text-font"],1,Mo(or))))return null;var M=null;if(P["text-color"]&&!(M=a.parse(P["text-color"],1,Zt)))return null;var O=h[h.length-1];O.scale=S,O.font=C,O.textColor=M}else{var B=a.parse(o[v],1,er);if(!B)return null;var j=B.type.kind;if(j!=="string"&&j!=="value"&&j!=="null"&&j!=="resolvedImage")return a.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");_=!0,h.push({content:B,scale:null,font:null,textColor:null})}}return new Jn(h)},Jn.prototype.evaluate=function(o){return new Di(this.sections.map(function(a){var p=a.content.evaluate(o);return hi(p)===vo?new yu("",p,null,null,null):new yu(Ws(p),null,a.scale?a.scale.evaluate(o):null,a.font?a.font.evaluate(o).join(","):null,a.textColor?a.textColor.evaluate(o):null)}))},Jn.prototype.eachChild=function(o){for(var a=0,p=this.sections;a-1),p},jn.prototype.eachChild=function(o){o(this.input)},jn.prototype.outputDefined=function(){return!1},jn.prototype.serialize=function(){return["image",this.input.serialize()]};var Kp={"to-boolean":Wt,"to-color":Zt,"to-number":dt,"to-string":or},Pa=function(o,a){this.type=o,this.args=a};Pa.parse=function(o,a){if(o.length<2)return a.error("Expected at least one argument.");var p=o[0];if((p==="to-boolean"||p==="to-string")&&o.length!==2)return a.error("Expected one argument.");for(var h=Kp[p],_=[],v=1;v4?"Invalid rbga value "+JSON.stringify(a)+": expected an array containing either three or four numeric values.":hu(a[0],a[1],a[2],a[3])))return new Eo(a[0]/255,a[1]/255,a[2]/255,a[3])}throw new fi(p||"Could not parse color from value '"+(typeof a=="string"?a:String(JSON.stringify(a)))+"'")}if(this.type.kind==="number"){for(var P=null,S=0,C=this.args;S=a[2]||o[1]<=a[1]||o[3]>=a[3])}function wr(o,a){var p=(180+o[0])/360,h=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+o[1]*Math.PI/360)))/360,_=Math.pow(2,a.z);return[Math.round(p*_*8192),Math.round(h*_*8192)]}function Oo(o,a,p){return a[1]>o[1]!=p[1]>o[1]&&o[0]<(p[0]-a[0])*(o[1]-a[1])/(p[1]-a[1])+a[0]}function Xi(o,a){for(var p,h,_,v,P,S,C,M=!1,O=0,B=a.length;O0&&S<0||P<0&&S>0}function Xa(o,a,p){for(var h=0,_=p;h<_.length;h+=1)for(var v=_[h],P=0;Pp[2]){var _=.5*h,v=o[0]-p[0]>_?-h:p[0]-o[0]>_?h:0;v===0&&(v=o[0]-p[2]>_?-h:p[2]-o[0]>_?h:0),o[0]+=v}rt(a,o)}function w1(o,a,p,h){for(var _=8192*Math.pow(2,h.z),v=[8192*h.x,8192*h.y],P=[],S=0,C=o;S=0)return!1;var p=!0;return o.eachChild(function(h){p&&!xs(h,a)&&(p=!1)}),p}Bn.parse=function(o,a){if(o.length!==2)return a.error("'within' expression requires exactly one argument, but found "+(o.length-1)+" instead.");if(Wa(o[1])){var p=o[1];if(p.type==="FeatureCollection")for(var h=0;ha))throw new fi("Input is not a number.");v=P-1}return 0}Xs.prototype.parse=function(o,a,p,h,_){return _===void 0&&(_={}),a?this.concat(a,p,h)._parse(o,_):this._parse(o,_)},Xs.prototype._parse=function(o,a){function p(M,O,B){return B==="assert"?new ui(O,[M]):B==="coerce"?new Pa(O,[M]):M}if(o!==null&&typeof o!="string"&&typeof o!="boolean"&&typeof o!="number"||(o=["literal",o]),Array.isArray(o)){if(o.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var h=o[0];if(typeof h!="string")return this.error("Expression name must be a string, but found "+typeof h+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var _=this.registry[h];if(_){var v=_.parse(o,this);if(!v)return null;if(this.expectedType){var P=this.expectedType,S=v.type;if(P.kind!=="string"&&P.kind!=="number"&&P.kind!=="boolean"&&P.kind!=="object"&&P.kind!=="array"||S.kind!=="value")if(P.kind!=="color"&&P.kind!=="formatted"&&P.kind!=="resolvedImage"||S.kind!=="value"&&S.kind!=="string"){if(this.checkSubtype(P,S))return null}else v=p(v,P,a.typeAnnotation||"coerce");else v=p(v,P,a.typeAnnotation||"assert")}if(!(v instanceof ln)&&v.type.kind!=="resolvedImage"&&function M(O){if(O instanceof Ps)return M(O.boundExpression);if(O instanceof re&&O.name==="error"||O instanceof we||O instanceof Bn)return!1;var B=O instanceof Pa||O instanceof ui,j=!0;return O.eachChild(function(Y){j=B?j&&M(Y):j&&Y instanceof ln}),!!j&&fu(O)&&xs(O,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(v)){var C=new X;try{v=new ln(v.type,v.evaluate(C))}catch(M){return this.error(M.message),null}}return v}return this.error('Unknown expression "'+h+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(o===void 0?"'undefined' value invalid. Use null instead.":typeof o=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof o+" instead.")},Xs.prototype.concat=function(o,a,p){var h=typeof o=="number"?this.path.concat(o):this.path,_=p?this.scope.concat(p):this.scope;return new Xs(this.registry,h,a||null,_,this.errors)},Xs.prototype.error=function(o){for(var a=[],p=arguments.length-1;p-- >0;)a[p]=arguments[p+1];var h=""+this.key+a.map(function(_){return"["+_+"]"}).join("");this.errors.push(new wt(h,o))},Xs.prototype.checkSubtype=function(o,a){var p=wo(o,a);return p&&this.error(p),p};var ba=function(o,a,p){this.type=o,this.input=a,this.labels=[],this.outputs=[];for(var h=0,_=p;h<_.length;h+=1){var v=_[h],P=v[1];this.labels.push(v[0]),this.outputs.push(P)}};function Oi(o,a,p){return o*(1-p)+a*p}ba.parse=function(o,a){if(o.length-1<4)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if((o.length-1)%2!=0)return a.error("Expected an even number of arguments.");var p=a.parse(o[1],1,dt);if(!p)return null;var h=[],_=null;a.expectedType&&a.expectedType.kind!=="value"&&(_=a.expectedType);for(var v=1;v=P)return a.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',C);var O=a.parse(S,M,_);if(!O)return null;_=_||O.type,h.push([P,O])}return new ba(_,p,h)},ba.prototype.evaluate=function(o){var a=this.labels,p=this.outputs;if(a.length===1)return p[0].evaluate(o);var h=this.input.evaluate(o);if(h<=a[0])return p[0].evaluate(o);var _=a.length;return h>=a[_-1]?p[_-1].evaluate(o):p[Jp(a,h)].evaluate(o)},ba.prototype.eachChild=function(o){o(this.input);for(var a=0,p=this.outputs;a0&&o.push(this.labels[a]),o.push(this.outputs[a].serialize());return o};var _u=Object.freeze({__proto__:null,number:Oi,color:function(o,a,p){return new Eo(Oi(o.r,a.r,p),Oi(o.g,a.g,p),Oi(o.b,a.b,p),Oi(o.a,a.a,p))},array:function(o,a,p){return o.map(function(h,_){return Oi(h,a[_],p)})}}),Zs=6/29*3*(6/29),Ol=Math.PI/180,R1=180/Math.PI;function Ll(o){return o>.008856451679035631?Math.pow(o,1/3):o/Zs+4/29}function Ic(o){return o>6/29?o*o*o:Zs*(o-4/29)}function Mc(o){return 255*(o<=.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055)}function Nc(o){return(o/=255)<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4)}function C1(o){var a=Nc(o.r),p=Nc(o.g),h=Nc(o.b),_=Ll((.4124564*a+.3575761*p+.1804375*h)/.95047),v=Ll((.2126729*a+.7151522*p+.072175*h)/1);return{l:116*v-16,a:500*(_-v),b:200*(v-Ll((.0193339*a+.119192*p+.9503041*h)/1.08883)),alpha:o.a}}function I1(o){var a=(o.l+16)/116,p=isNaN(o.a)?a:a+o.a/500,h=isNaN(o.b)?a:a-o.b/200;return a=1*Ic(a),p=.95047*Ic(p),h=1.08883*Ic(h),new Eo(Mc(3.2404542*p-1.5371385*a-.4985314*h),Mc(-.969266*p+1.8760108*a+.041556*h),Mc(.0556434*p-.2040259*a+1.0572252*h),o.alpha)}function $0(o,a,p){var h=a-o;return o+p*(h>180||h<-180?h-360*Math.round(h/360):h)}var el={forward:C1,reverse:I1,interpolate:function(o,a,p){return{l:Oi(o.l,a.l,p),a:Oi(o.a,a.a,p),b:Oi(o.b,a.b,p),alpha:Oi(o.alpha,a.alpha,p)}}},bs={forward:function(o){var a=C1(o),p=a.l,h=a.a,_=a.b,v=Math.atan2(_,h)*R1;return{h:v<0?v+360:v,c:Math.sqrt(h*h+_*_),l:p,alpha:o.a}},reverse:function(o){var a=o.h*Ol,p=o.c;return I1({l:o.l,a:Math.cos(a)*p,b:Math.sin(a)*p,alpha:o.alpha})},interpolate:function(o,a,p){return{h:$0(o.h,a.h,p),c:Oi(o.c,a.c,p),l:Oi(o.l,a.l,p),alpha:Oi(o.alpha,a.alpha,p)}}},M1=Object.freeze({__proto__:null,lab:el,hcl:bs}),Un=function(o,a,p,h,_){this.type=o,this.operator=a,this.interpolation=p,this.input=h,this.labels=[],this.outputs=[];for(var v=0,P=_;v1}))return a.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);h={name:"cubic-bezier",controlPoints:S}}if(o.length-1<4)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if((o.length-1)%2!=0)return a.error("Expected an even number of arguments.");if(!(_=a.parse(_,2,dt)))return null;var C=[],M=null;p==="interpolate-hcl"||p==="interpolate-lab"?M=Zt:a.expectedType&&a.expectedType.kind!=="value"&&(M=a.expectedType);for(var O=0;O=B)return a.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',Y);var he=a.parse(j,ce,M);if(!he)return null;M=M||he.type,C.push([B,he])}return M.kind==="number"||M.kind==="color"||M.kind==="array"&&M.itemType.kind==="number"&&typeof M.N=="number"?new Un(M,p,h,_,C):a.error("Type "+ao(M)+" is not interpolatable.")},Un.prototype.evaluate=function(o){var a=this.labels,p=this.outputs;if(a.length===1)return p[0].evaluate(o);var h=this.input.evaluate(o);if(h<=a[0])return p[0].evaluate(o);var _=a.length;if(h>=a[_-1])return p[_-1].evaluate(o);var v=Jp(a,h),P=Un.interpolationFactor(this.interpolation,h,a[v],a[v+1]),S=p[v].evaluate(o),C=p[v+1].evaluate(o);return this.operator==="interpolate"?_u[this.type.kind.toLowerCase()](S,C,P):this.operator==="interpolate-hcl"?bs.reverse(bs.interpolate(bs.forward(S),bs.forward(C),P)):el.reverse(el.interpolate(el.forward(S),el.forward(C),P))},Un.prototype.eachChild=function(o){o(this.input);for(var a=0,p=this.outputs;a=p.length)throw new fi("Array index out of bounds: "+a+" > "+(p.length-1)+".");if(a!==Math.floor(a))throw new fi("Array index must be an integer, but found "+a+" instead.");return p[a]},vu.prototype.eachChild=function(o){o(this.index),o(this.input)},vu.prototype.outputDefined=function(){return!1},vu.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var Za=function(o,a){this.type=Wt,this.needle=o,this.haystack=a};Za.parse=function(o,a){if(o.length!==3)return a.error("Expected 2 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,er);return p&&h?ei(p.type,[Wt,or,dt,yr,er])?new Za(p,h):a.error("Expected first argument to be of type boolean, string, number or null, but found "+ao(p.type)+" instead"):null},Za.prototype.evaluate=function(o){var a=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!p)return!1;if(!ko(a,["boolean","string","number","null"]))throw new fi("Expected first argument to be of type boolean, string, number or null, but found "+ao(hi(a))+" instead.");if(!ko(p,["string","array"]))throw new fi("Expected second argument to be of type array or string, but found "+ao(hi(p))+" instead.");return p.indexOf(a)>=0},Za.prototype.eachChild=function(o){o(this.needle),o(this.haystack)},Za.prototype.outputDefined=function(){return!0},Za.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ys=function(o,a,p){this.type=dt,this.needle=o,this.haystack=a,this.fromIndex=p};Ys.parse=function(o,a){if(o.length<=2||o.length>=5)return a.error("Expected 3 or 4 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,er);if(!p||!h)return null;if(!ei(p.type,[Wt,or,dt,yr,er]))return a.error("Expected first argument to be of type boolean, string, number or null, but found "+ao(p.type)+" instead");if(o.length===4){var _=a.parse(o[3],3,dt);return _?new Ys(p,h,_):null}return new Ys(p,h)},Ys.prototype.evaluate=function(o){var a=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!ko(a,["boolean","string","number","null"]))throw new fi("Expected first argument to be of type boolean, string, number or null, but found "+ao(hi(a))+" instead.");if(!ko(p,["string","array"]))throw new fi("Expected second argument to be of type array or string, but found "+ao(hi(p))+" instead.");if(this.fromIndex){var h=this.fromIndex.evaluate(o);return p.indexOf(a,h)}return p.indexOf(a)},Ys.prototype.eachChild=function(o){o(this.needle),o(this.haystack),this.fromIndex&&o(this.fromIndex)},Ys.prototype.outputDefined=function(){return!1},Ys.prototype.serialize=function(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var o=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),o]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var Oa=function(o,a,p,h,_,v){this.inputType=o,this.type=a,this.input=p,this.cases=h,this.outputs=_,this.otherwise=v};Oa.parse=function(o,a){if(o.length<5)return a.error("Expected at least 4 arguments, but found only "+(o.length-1)+".");if(o.length%2!=1)return a.error("Expected an even number of arguments.");var p,h;a.expectedType&&a.expectedType.kind!=="value"&&(h=a.expectedType);for(var _={},v=[],P=2;PNumber.MAX_SAFE_INTEGER)return M.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if(typeof j=="number"&&Math.floor(j)!==j)return M.error("Numeric branch labels must be integer values.");if(p){if(M.checkSubtype(p,hi(j)))return null}else p=hi(j);if(_[String(j)]!==void 0)return M.error("Branch labels must be unique.");_[String(j)]=v.length}var Y=a.parse(C,P,h);if(!Y)return null;h=h||Y.type,v.push(Y)}var ce=a.parse(o[1],1,er);if(!ce)return null;var he=a.parse(o[o.length-1],o.length-1,h);return he?ce.type.kind!=="value"&&a.concat(1).checkSubtype(p,ce.type)?null:new Oa(p,h,ce,_,v,he):null},Oa.prototype.evaluate=function(o){var a=this.input.evaluate(o);return(hi(a)===this.inputType&&this.outputs[this.cases[a]]||this.otherwise).evaluate(o)},Oa.prototype.eachChild=function(o){o(this.input),this.outputs.forEach(o),o(this.otherwise)},Oa.prototype.outputDefined=function(){return this.outputs.every(function(o){return o.outputDefined()})&&this.otherwise.outputDefined()},Oa.prototype.serialize=function(){for(var o=this,a=["match",this.input.serialize()],p=[],h={},_=0,v=Object.keys(this.cases).sort();_=5)return a.error("Expected 3 or 4 arguments, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1,er),h=a.parse(o[2],2,dt);if(!p||!h)return null;if(!ei(p.type,[Mo(er),or,er]))return a.error("Expected first argument to be of type array or string, but found "+ao(p.type)+" instead");if(o.length===4){var _=a.parse(o[3],3,dt);return _?new Eu(p.type,p,h,_):null}return new Eu(p.type,p,h)},Eu.prototype.evaluate=function(o){var a=this.input.evaluate(o),p=this.beginIndex.evaluate(o);if(!ko(a,["string","array"]))throw new fi("Expected first argument to be of type array or string, but found "+ao(hi(a))+" instead.");if(this.endIndex){var h=this.endIndex.evaluate(o);return a.slice(p,h)}return a.slice(p)},Eu.prototype.eachChild=function(o){o(this.input),o(this.beginIndex),this.endIndex&&o(this.endIndex)},Eu.prototype.outputDefined=function(){return!1},Eu.prototype.serialize=function(){if(this.endIndex!=null&&this.endIndex!==void 0){var o=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),o]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var q0=ri("==",function(o,a,p){return a===p},D1),Bl=ri("!=",function(o,a,p){return a!==p},function(o,a,p,h){return!D1(0,a,p,h)}),Dc=ri("<",function(o,a,p){return a",function(o,a,p){return a>p},function(o,a,p,h){return h.compare(a,p)>0}),Oc=ri("<=",function(o,a,p){return a<=p},function(o,a,p,h){return h.compare(a,p)<=0}),O1=ri(">=",function(o,a,p){return a>=p},function(o,a,p,h){return h.compare(a,p)>=0}),la=function(o,a,p,h,_){this.type=or,this.number=o,this.locale=a,this.currency=p,this.minFractionDigits=h,this.maxFractionDigits=_};la.parse=function(o,a){if(o.length!==3)return a.error("Expected two arguments.");var p=a.parse(o[1],1,dt);if(!p)return null;var h=o[2];if(typeof h!="object"||Array.isArray(h))return a.error("NumberFormat options argument must be an object.");var _=null;if(h.locale&&!(_=a.parse(h.locale,1,or)))return null;var v=null;if(h.currency&&!(v=a.parse(h.currency,1,or)))return null;var P=null;if(h["min-fraction-digits"]&&!(P=a.parse(h["min-fraction-digits"],1,dt)))return null;var S=null;return h["max-fraction-digits"]&&!(S=a.parse(h["max-fraction-digits"],1,dt))?null:new la(p,_,v,P,S)},la.prototype.evaluate=function(o){return new Intl.NumberFormat(this.locale?this.locale.evaluate(o):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(o):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(o):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(o):void 0}).format(this.number.evaluate(o))},la.prototype.eachChild=function(o){o(this.number),this.locale&&o(this.locale),this.currency&&o(this.currency),this.minFractionDigits&&o(this.minFractionDigits),this.maxFractionDigits&&o(this.maxFractionDigits)},la.prototype.outputDefined=function(){return!1},la.prototype.serialize=function(){var o={};return this.locale&&(o.locale=this.locale.serialize()),this.currency&&(o.currency=this.currency.serialize()),this.minFractionDigits&&(o["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(o["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),o]};var qs=function(o){this.type=dt,this.input=o};qs.parse=function(o,a){if(o.length!==2)return a.error("Expected 1 argument, but found "+(o.length-1)+" instead.");var p=a.parse(o[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?a.error("Expected argument of type string or array, but found "+ao(p.type)+" instead."):new qs(p):null},qs.prototype.evaluate=function(o){var a=this.input.evaluate(o);if(typeof a=="string"||Array.isArray(a))return a.length;throw new fi("Expected value to be of type string or array, but found "+ao(hi(a))+" instead.")},qs.prototype.eachChild=function(o){o(this.input)},qs.prototype.outputDefined=function(){return!1},qs.prototype.serialize=function(){var o=["length"];return this.eachChild(function(a){o.push(a.serialize())}),o};var As={"==":q0,"!=":Bl,">":Li,"<":Dc,">=":O1,"<=":Oc,array:ui,at:vu,boolean:ui,case:$s,coalesce:gu,collator:we,format:Jn,image:jn,in:Za,"index-of":Ys,interpolate:Un,"interpolate-hcl":Un,"interpolate-lab":Un,length:qs,let:Da,literal:ln,match:Oa,number:ui,"number-format":la,object:ui,slice:Eu,step:ba,string:ui,"to-boolean":Pa,"to-color":Pa,"to-number":Pa,"to-string":Pa,var:Ps,within:Bn};function xu(o,a){var p=a[0],h=a[1],_=a[2],v=a[3];p=p.evaluate(o),h=h.evaluate(o),_=_.evaluate(o);var P=v?v.evaluate(o):1,S=hu(p,h,_,P);if(S)throw new fi(S);return new Eo(p/255*P,h/255*P,_/255*P,P)}function Ul(o,a){return o in a}function xp(o,a){var p=a[o];return p===void 0?null:p}function ps(o){return{type:o}}function tl(o){return{result:"success",value:o}}function Pu(o){return{result:"error",value:o}}function Ks(o){return o["property-type"]==="data-driven"||o["property-type"]==="cross-faded-data-driven"}function Lc(o){return!!o.expression&&o.expression.parameters.indexOf("zoom")>-1}function rl(o){return!!o.expression&&o.expression.interpolated}function li(o){return o instanceof Number?"number":o instanceof String?"string":o instanceof Boolean?"boolean":Array.isArray(o)?"array":o===null?"null":typeof o}function kl(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function K0(o){return o}function bu(o,a,p){return o!==void 0?o:a!==void 0?a:p!==void 0?p:void 0}function ol(o,a,p,h,_){return bu(typeof p===_?h[p]:void 0,o.default,a.default)}function Bc(o,a,p){if(li(p)!=="number")return bu(o.default,a.default);var h=o.stops.length;if(h===1||p<=o.stops[0][0])return o.stops[0][1];if(p>=o.stops[h-1][0])return o.stops[h-1][1];var _=Jp(o.stops.map(function(v){return v[0]}),p);return o.stops[_][1]}function zl(o,a,p){var h=o.base!==void 0?o.base:1;if(li(p)!=="number")return bu(o.default,a.default);var _=o.stops.length;if(_===1||p<=o.stops[0][0])return o.stops[0][1];if(p>=o.stops[_-1][0])return o.stops[_-1][1];var v=Jp(o.stops.map(function(B){return B[0]}),p),P=function(B,j,Y,ce){var he=ce-Y,Re=B-Y;return he===0?0:j===1?Re/he:(Math.pow(j,Re)-1)/(Math.pow(j,he)-1)}(p,h,o.stops[v][0],o.stops[v+1][0]),S=o.stops[v][1],C=o.stops[v+1][1],M=_u[a.type]||K0;if(o.colorSpace&&o.colorSpace!=="rgb"){var O=M1[o.colorSpace];M=function(B,j){return O.reverse(O.interpolate(O.forward(B),O.forward(j),P))}}return typeof S.evaluate=="function"?{evaluate:function(){for(var B=[],j=arguments.length;j--;)B[j]=arguments[j];var Y=S.evaluate.apply(void 0,B),ce=C.evaluate.apply(void 0,B);if(Y!==void 0&&ce!==void 0)return M(Y,ce,P)}}:M(S,C,P)}function Qs(o,a,p){return a.type==="color"?p=Eo.parse(p):a.type==="formatted"?p=Di.fromString(p.toString()):a.type==="resolvedImage"?p=gi.fromString(p.toString()):li(p)===a.type||a.type==="enum"&&a.values[p]||(p=void 0),bu(p,o.default,a.default)}re.register(As,{error:[{kind:"error"},[or],function(o,a){throw new fi(a[0].evaluate(o))}],typeof:[or,[er],function(o,a){return ao(hi(a[0].evaluate(o)))}],"to-rgba":[Mo(dt,4),[Zt],function(o,a){return a[0].evaluate(o).toArray()}],rgb:[Zt,[dt,dt,dt],xu],rgba:[Zt,[dt,dt,dt,dt],xu],has:{type:Wt,overloads:[[[or],function(o,a){return Ul(a[0].evaluate(o),o.properties())}],[[or,no],function(o,a){var p=a[1];return Ul(a[0].evaluate(o),p.evaluate(o))}]]},get:{type:er,overloads:[[[or],function(o,a){return xp(a[0].evaluate(o),o.properties())}],[[or,no],function(o,a){var p=a[1];return xp(a[0].evaluate(o),p.evaluate(o))}]]},"feature-state":[er,[or],function(o,a){return xp(a[0].evaluate(o),o.featureState||{})}],properties:[no,[],function(o){return o.properties()}],"geometry-type":[or,[],function(o){return o.geometryType()}],id:[er,[],function(o){return o.id()}],zoom:[dt,[],function(o){return o.globals.zoom}],"heatmap-density":[dt,[],function(o){return o.globals.heatmapDensity||0}],"line-progress":[dt,[],function(o){return o.globals.lineProgress||0}],accumulated:[er,[],function(o){return o.globals.accumulated===void 0?null:o.globals.accumulated}],"+":[dt,ps(dt),function(o,a){for(var p=0,h=0,_=a;h<_.length;h+=1)p+=_[h].evaluate(o);return p}],"*":[dt,ps(dt),function(o,a){for(var p=1,h=0,_=a;h<_.length;h+=1)p*=_[h].evaluate(o);return p}],"-":{type:dt,overloads:[[[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)-p.evaluate(o)}],[[dt],function(o,a){return-a[0].evaluate(o)}]]},"/":[dt,[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)/p.evaluate(o)}],"%":[dt,[dt,dt],function(o,a){var p=a[1];return a[0].evaluate(o)%p.evaluate(o)}],ln2:[dt,[],function(){return Math.LN2}],pi:[dt,[],function(){return Math.PI}],e:[dt,[],function(){return Math.E}],"^":[dt,[dt,dt],function(o,a){var p=a[1];return Math.pow(a[0].evaluate(o),p.evaluate(o))}],sqrt:[dt,[dt],function(o,a){return Math.sqrt(a[0].evaluate(o))}],log10:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))/Math.LN10}],ln:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))}],log2:[dt,[dt],function(o,a){return Math.log(a[0].evaluate(o))/Math.LN2}],sin:[dt,[dt],function(o,a){return Math.sin(a[0].evaluate(o))}],cos:[dt,[dt],function(o,a){return Math.cos(a[0].evaluate(o))}],tan:[dt,[dt],function(o,a){return Math.tan(a[0].evaluate(o))}],asin:[dt,[dt],function(o,a){return Math.asin(a[0].evaluate(o))}],acos:[dt,[dt],function(o,a){return Math.acos(a[0].evaluate(o))}],atan:[dt,[dt],function(o,a){return Math.atan(a[0].evaluate(o))}],min:[dt,ps(dt),function(o,a){return Math.min.apply(Math,a.map(function(p){return p.evaluate(o)}))}],max:[dt,ps(dt),function(o,a){return Math.max.apply(Math,a.map(function(p){return p.evaluate(o)}))}],abs:[dt,[dt],function(o,a){return Math.abs(a[0].evaluate(o))}],round:[dt,[dt],function(o,a){var p=a[0].evaluate(o);return p<0?-Math.round(-p):Math.round(p)}],floor:[dt,[dt],function(o,a){return Math.floor(a[0].evaluate(o))}],ceil:[dt,[dt],function(o,a){return Math.ceil(a[0].evaluate(o))}],"filter-==":[Wt,[or,er],function(o,a){var p=a[0],h=a[1];return o.properties()[p.value]===h.value}],"filter-id-==":[Wt,[er],function(o,a){var p=a[0];return o.id()===p.value}],"filter-type-==":[Wt,[or],function(o,a){var p=a[0];return o.geometryType()===p.value}],"filter-<":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_>v}],"filter-id->":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h>_}],"filter-<=":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_<=v}],"filter-id-<=":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h<=_}],"filter->=":[Wt,[or,er],function(o,a){var p=a[0],h=a[1],_=o.properties()[p.value],v=h.value;return typeof _==typeof v&&_>=v}],"filter-id->=":[Wt,[er],function(o,a){var p=a[0],h=o.id(),_=p.value;return typeof h==typeof _&&h>=_}],"filter-has":[Wt,[er],function(o,a){return a[0].value in o.properties()}],"filter-has-id":[Wt,[],function(o){return o.id()!==null&&o.id()!==void 0}],"filter-type-in":[Wt,[Mo(or)],function(o,a){return a[0].value.indexOf(o.geometryType())>=0}],"filter-id-in":[Wt,[Mo(er)],function(o,a){return a[0].value.indexOf(o.id())>=0}],"filter-in-small":[Wt,[or,Mo(er)],function(o,a){var p=a[0];return a[1].value.indexOf(o.properties()[p.value])>=0}],"filter-in-large":[Wt,[or,Mo(er)],function(o,a){var p=a[0],h=a[1];return function(_,v,P,S){for(;P<=S;){var C=P+S>>1;if(v[C]===_)return!0;v[C]>_?S=C-1:P=C+1}return!1}(o.properties()[p.value],h.value,0,h.value.length-1)}],all:{type:Wt,overloads:[[[Wt,Wt],function(o,a){var p=a[1];return a[0].evaluate(o)&&p.evaluate(o)}],[ps(Wt),function(o,a){for(var p=0,h=a;p0&&typeof o[0]=="string"&&o[0]in As}function Pp(o,a){var p=new Xs(As,[],a?function(_){var v={color:Zt,string:or,number:dt,enum:or,boolean:Wt,formatted:Jo,resolvedImage:vo};return _.type==="array"?Mo(v[_.value]||er,_.length):v[_.type]}(a):void 0),h=p.parse(o,void 0,void 0,void 0,a&&a.type==="string"?{typeAnnotation:"coerce"}:void 0);return h?tl(new Au(h,a)):Pu(p.errors)}Au.prototype.evaluateWithoutErrorHandling=function(o,a,p,h,_,v){return this._evaluator.globals=o,this._evaluator.feature=a,this._evaluator.featureState=p,this._evaluator.canonical=h,this._evaluator.availableImages=_||null,this._evaluator.formattedSection=v,this.expression.evaluate(this._evaluator)},Au.prototype.evaluate=function(o,a,p,h,_,v){this._evaluator.globals=o,this._evaluator.feature=a||null,this._evaluator.featureState=p||null,this._evaluator.canonical=h,this._evaluator.availableImages=_||null,this._evaluator.formattedSection=v||null;try{var P=this.expression.evaluate(this._evaluator);if(P==null||typeof P=="number"&&P!=P)return this._defaultValue;if(this._enumValues&&!(P in this._enumValues))throw new fi("Expected value to be one of "+Object.keys(this._enumValues).map(function(S){return JSON.stringify(S)}).join(", ")+", but found "+JSON.stringify(P)+" instead.");return P}catch(S){return this._warningHistory[S.message]||(this._warningHistory[S.message]=!0,typeof console<"u"&&console.warn(S.message)),this._defaultValue}};var Ku=function(o,a){this.kind=o,this._styleExpression=a,this.isStateDependent=o!=="constant"&&!mu(a.expression)};Ku.prototype.evaluateWithoutErrorHandling=function(o,a,p,h,_,v){return this._styleExpression.evaluateWithoutErrorHandling(o,a,p,h,_,v)},Ku.prototype.evaluate=function(o,a,p,h,_,v){return this._styleExpression.evaluate(o,a,p,h,_,v)};var Qu=function(o,a,p,h){this.kind=o,this.zoomStops=p,this._styleExpression=a,this.isStateDependent=o!=="camera"&&!mu(a.expression),this.interpolationType=h};function Uc(o,a){if((o=Pp(o,a)).result==="error")return o;var p=o.value.expression,h=fu(p);if(!h&&!Ks(a))return Pu([new wt("","data expressions not supported")]);var _=xs(p,["zoom"]);if(!_&&!Lc(a))return Pu([new wt("","zoom expressions not supported")]);var v=function P(S){var C=null;if(S instanceof Da)C=P(S.result);else if(S instanceof gu)for(var M=0,O=S.args;Mh.maximum?[new ge(a,p,p+" is greater than the maximum value "+h.maximum)]:[]}function Vc(o){var a,p,h,_=o.valueSpec,v=Nt(o.value.type),P={},S=v!=="categorical"&&o.value.property===void 0,C=!S,M=li(o.value.stops)==="array"&&li(o.value.stops[0])==="array"&&li(o.value.stops[0][0])==="object",O=Ya({key:o.key,value:o.value,valueSpec:o.styleSpec.function,style:o.style,styleSpec:o.styleSpec,objectElementValidators:{stops:function(Y){if(v==="identity")return[new ge(Y.key,Y.value,'identity function may not have a "stops" property')];var ce=[],he=Y.value;return ce=ce.concat(kc({key:Y.key,value:he,valueSpec:Y.valueSpec,style:Y.style,styleSpec:Y.styleSpec,arrayElementValidator:B})),li(he)==="array"&&he.length===0&&ce.push(new ge(Y.key,he,"array must have at least one stop")),ce},default:function(Y){return No({key:Y.key,value:Y.value,valueSpec:_,style:Y.style,styleSpec:Y.styleSpec})}}});return v==="identity"&&S&&O.push(new ge(o.key,o.value,'missing required property "property"')),v==="identity"||o.value.stops||O.push(new ge(o.key,o.value,'missing required property "stops"')),v==="exponential"&&o.valueSpec.expression&&!rl(o.valueSpec)&&O.push(new ge(o.key,o.value,"exponential functions not supported")),o.styleSpec.$version>=8&&(C&&!Ks(o.valueSpec)?O.push(new ge(o.key,o.value,"property functions not supported")):S&&!Lc(o.valueSpec)&&O.push(new ge(o.key,o.value,"zoom functions not supported"))),v!=="categorical"&&!M||o.value.property!==void 0||O.push(new ge(o.key,o.value,'"property" property is required')),O;function B(Y){var ce=[],he=Y.value,Re=Y.key;if(li(he)!=="array")return[new ge(Re,he,"array expected, "+li(he)+" found")];if(he.length!==2)return[new ge(Re,he,"array length 2 expected, length "+he.length+" found")];if(M){if(li(he[0])!=="object")return[new ge(Re,he,"object expected, "+li(he[0])+" found")];if(he[0].zoom===void 0)return[new ge(Re,he,"object stop key must have zoom")];if(he[0].value===void 0)return[new ge(Re,he,"object stop key must have value")];if(h&&h>Nt(he[0].zoom))return[new ge(Re,he[0].zoom,"stop zoom values must appear in ascending order")];Nt(he[0].zoom)!==h&&(h=Nt(he[0].zoom),p=void 0,P={}),ce=ce.concat(Ya({key:Re+"[0]",value:he[0],valueSpec:{zoom:{}},style:Y.style,styleSpec:Y.styleSpec,objectElementValidators:{zoom:zc,value:j}}))}else ce=ce.concat(j({key:Re+"[0]",value:he[0],style:Y.style,styleSpec:Y.styleSpec},he));return qu(lt(he[1]))?ce.concat([new ge(Re+"[1]",he[1],"expressions are not allowed in function stops.")]):ce.concat(No({key:Re+"[1]",value:he[1],valueSpec:_,style:Y.style,styleSpec:Y.styleSpec}))}function j(Y,ce){var he=li(Y.value),Re=Nt(Y.value),be=Y.value!==null?Y.value:ce;if(a){if(he!==a)return[new ge(Y.key,be,he+" stop domain type must match previous stop domain type "+a)]}else a=he;if(he!=="number"&&he!=="string"&&he!=="boolean")return[new ge(Y.key,be,"stop domain value must be a number, string, or boolean")];if(he!=="number"&&v!=="categorical"){var Ve="number expected, "+he+" found";return Ks(_)&&v===void 0&&(Ve+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ge(Y.key,be,Ve)]}return v!=="categorical"||he!=="number"||isFinite(Re)&&Math.floor(Re)===Re?v!=="categorical"&&he==="number"&&p!==void 0&&Re=2&&o[1]!=="$id"&&o[1]!=="$type";case"in":return o.length>=3&&(typeof o[1]!="string"||Array.isArray(o[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return o.length!==3||Array.isArray(o[1])||Array.isArray(o[2]);case"any":case"all":for(var a=0,p=o.slice(1);aa?1:0}function Vl(o){if(!o)return!0;var a,p=o[0];return o.length<=1?p!=="any":p==="=="?Hc(o[1],o[2],"=="):p==="!="?Gl(Hc(o[1],o[2],"==")):p==="<"||p===">"||p==="<="||p===">="?Hc(o[1],o[2],p):p==="any"?(a=o.slice(1),["any"].concat(a.map(Vl))):p==="all"?["all"].concat(o.slice(1).map(Vl)):p==="none"?["all"].concat(o.slice(1).map(Vl).map(Gl)):p==="in"?Hl(o[1],o.slice(2)):p==="!in"?Gl(Hl(o[1],o.slice(2))):p==="has"?L1(o[1]):p==="!has"?Gl(L1(o[1])):p!=="within"||o}function Hc(o,a,p){switch(o){case"$type":return["filter-type-"+p,a];case"$id":return["filter-id-"+p,a];default:return["filter-"+p,o,a]}}function Hl(o,a){if(a.length===0)return!1;switch(o){case"$type":return["filter-type-in",["literal",a]];case"$id":return["filter-id-in",["literal",a]];default:return a.length>200&&!a.some(function(p){return typeof p!=typeof a[0]})?["filter-in-large",o,["literal",a.sort(Q0)]]:["filter-in-small",o,["literal",a]]}}function L1(o){switch(o){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",o]}}function Gl(o){return["!",o]}function Gc(o){return bp(lt(o.value))?Fu(ht({},o,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function a(p){var h=p.value,_=p.key;if(li(h)!=="array")return[new ge(_,h,"array expected, "+li(h)+" found")];var v,P=p.styleSpec,S=[];if(h.length<1)return[new ge(_,h,"filter array must have at least 1 element")];switch(S=S.concat(Fs({key:_+"[0]",value:h[0],valueSpec:P.filter_operator,style:p.style,styleSpec:p.styleSpec})),Nt(h[0])){case"<":case"<=":case">":case">=":h.length>=2&&Nt(h[1])==="$type"&&S.push(new ge(_,h,'"$type" cannot be use with operator "'+h[0]+'"'));case"==":case"!=":h.length!==3&&S.push(new ge(_,h,'filter array for operator "'+h[0]+'" must have 3 elements'));case"in":case"!in":h.length>=2&&(v=li(h[1]))!=="string"&&S.push(new ge(_+"[1]",h[1],"string expected, "+v+" found"));for(var C=2;C=O[Y+0]&&h>=O[Y+1])?(P[j]=!0,v.push(M[j])):P[j]=!1}}},bi.prototype._forEachCell=function(o,a,p,h,_,v,P,S){for(var C=this._convertToCellCoord(o),M=this._convertToCellCoord(a),O=this._convertToCellCoord(p),B=this._convertToCellCoord(h),j=C;j<=O;j++)for(var Y=M;Y<=B;Y++){var ce=this.d*Y+j;if((!S||S(this._convertFromCellCoord(j),this._convertFromCellCoord(Y),this._convertFromCellCoord(j+1),this._convertFromCellCoord(Y+1)))&&_.call(this,o,a,p,h,ce,v,P,S))return}},bi.prototype._convertFromCellCoord=function(o){return(o-this.padding)/this.scale},bi.prototype._convertToCellCoord=function(o){return Math.max(0,Math.min(this.d-1,Math.floor(o*this.scale)+this.padding))},bi.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var o=this.cells,a=3+this.cells.length+1+1,p=0,h=0;h=0)){var O=o[M];C[M]=Gi[S].shallow.indexOf(M)>=0?O:ea(O,a)}o instanceof Error&&(C.message=o.message)}if(C.$name)throw new Error("$name property is reserved for worker serialization logic.");return S!=="Object"&&(C.$name=S),C}throw new Error("can't serialize object of type "+typeof o)}function oi(o){if(o==null||typeof o=="boolean"||typeof o=="number"||typeof o=="string"||o instanceof Boolean||o instanceof Number||o instanceof String||o instanceof Date||o instanceof RegExp||pl(o)||Tp(o)||ArrayBuffer.isView(o)||o instanceof Fp)return o;if(Array.isArray(o))return o.map(oi);if(typeof o=="object"){var a=o.$name||"Object",p=Gi[a].klass;if(!p)throw new Error("can't deserialize unregistered class "+a);if(p.deserialize)return p.deserialize(o);for(var h=Object.create(p.prototype),_=0,v=Object.keys(o);_=0?S:oi(S)}}return h}throw new Error("can't deserialize object of type "+typeof o)}var Xl=function(){this.first=!0};Xl.prototype.update=function(o,a){var p=Math.floor(o);return this.first?(this.first=!1,this.lastIntegerZoom=p,this.lastIntegerZoomTime=0,this.lastZoom=o,this.lastFloorZoom=p,!0):(this.lastFloorZoom>p?(this.lastIntegerZoom=p+1,this.lastIntegerZoomTime=a):this.lastFloorZoom=128&&o<=255},Arabic:function(o){return o>=1536&&o<=1791},"Arabic Supplement":function(o){return o>=1872&&o<=1919},"Arabic Extended-A":function(o){return o>=2208&&o<=2303},"Hangul Jamo":function(o){return o>=4352&&o<=4607},"Unified Canadian Aboriginal Syllabics":function(o){return o>=5120&&o<=5759},Khmer:function(o){return o>=6016&&o<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(o){return o>=6320&&o<=6399},"General Punctuation":function(o){return o>=8192&&o<=8303},"Letterlike Symbols":function(o){return o>=8448&&o<=8527},"Number Forms":function(o){return o>=8528&&o<=8591},"Miscellaneous Technical":function(o){return o>=8960&&o<=9215},"Control Pictures":function(o){return o>=9216&&o<=9279},"Optical Character Recognition":function(o){return o>=9280&&o<=9311},"Enclosed Alphanumerics":function(o){return o>=9312&&o<=9471},"Geometric Shapes":function(o){return o>=9632&&o<=9727},"Miscellaneous Symbols":function(o){return o>=9728&&o<=9983},"Miscellaneous Symbols and Arrows":function(o){return o>=11008&&o<=11263},"CJK Radicals Supplement":function(o){return o>=11904&&o<=12031},"Kangxi Radicals":function(o){return o>=12032&&o<=12255},"Ideographic Description Characters":function(o){return o>=12272&&o<=12287},"CJK Symbols and Punctuation":function(o){return o>=12288&&o<=12351},Hiragana:function(o){return o>=12352&&o<=12447},Katakana:function(o){return o>=12448&&o<=12543},Bopomofo:function(o){return o>=12544&&o<=12591},"Hangul Compatibility Jamo":function(o){return o>=12592&&o<=12687},Kanbun:function(o){return o>=12688&&o<=12703},"Bopomofo Extended":function(o){return o>=12704&&o<=12735},"CJK Strokes":function(o){return o>=12736&&o<=12783},"Katakana Phonetic Extensions":function(o){return o>=12784&&o<=12799},"Enclosed CJK Letters and Months":function(o){return o>=12800&&o<=13055},"CJK Compatibility":function(o){return o>=13056&&o<=13311},"CJK Unified Ideographs Extension A":function(o){return o>=13312&&o<=19903},"Yijing Hexagram Symbols":function(o){return o>=19904&&o<=19967},"CJK Unified Ideographs":function(o){return o>=19968&&o<=40959},"Yi Syllables":function(o){return o>=40960&&o<=42127},"Yi Radicals":function(o){return o>=42128&&o<=42191},"Hangul Jamo Extended-A":function(o){return o>=43360&&o<=43391},"Hangul Syllables":function(o){return o>=44032&&o<=55215},"Hangul Jamo Extended-B":function(o){return o>=55216&&o<=55295},"Private Use Area":function(o){return o>=57344&&o<=63743},"CJK Compatibility Ideographs":function(o){return o>=63744&&o<=64255},"Arabic Presentation Forms-A":function(o){return o>=64336&&o<=65023},"Vertical Forms":function(o){return o>=65040&&o<=65055},"CJK Compatibility Forms":function(o){return o>=65072&&o<=65103},"Small Form Variants":function(o){return o>=65104&&o<=65135},"Arabic Presentation Forms-B":function(o){return o>=65136&&o<=65279},"Halfwidth and Fullwidth Forms":function(o){return o>=65280&&o<=65519}};function Js(o){for(var a=0,p=o;a=65097&&o<=65103)||Kt["CJK Compatibility Ideographs"](o)||Kt["CJK Compatibility"](o)||Kt["CJK Radicals Supplement"](o)||Kt["CJK Strokes"](o)||!(!Kt["CJK Symbols and Punctuation"](o)||o>=12296&&o<=12305||o>=12308&&o<=12319||o===12336)||Kt["CJK Unified Ideographs Extension A"](o)||Kt["CJK Unified Ideographs"](o)||Kt["Enclosed CJK Letters and Months"](o)||Kt["Hangul Compatibility Jamo"](o)||Kt["Hangul Jamo Extended-A"](o)||Kt["Hangul Jamo Extended-B"](o)||Kt["Hangul Jamo"](o)||Kt["Hangul Syllables"](o)||Kt.Hiragana(o)||Kt["Ideographic Description Characters"](o)||Kt.Kanbun(o)||Kt["Kangxi Radicals"](o)||Kt["Katakana Phonetic Extensions"](o)||Kt.Katakana(o)&&o!==12540||!(!Kt["Halfwidth and Fullwidth Forms"](o)||o===65288||o===65289||o===65293||o>=65306&&o<=65310||o===65339||o===65341||o===65343||o>=65371&&o<=65503||o===65507||o>=65512&&o<=65519)||!(!Kt["Small Form Variants"](o)||o>=65112&&o<=65118||o>=65123&&o<=65126)||Kt["Unified Canadian Aboriginal Syllabics"](o)||Kt["Unified Canadian Aboriginal Syllabics Extended"](o)||Kt["Vertical Forms"](o)||Kt["Yijing Hexagram Symbols"](o)||Kt["Yi Syllables"](o)||Kt["Yi Radicals"](o))))}function Zl(o){return!(ll(o)||function(a){return!!(Kt["Latin-1 Supplement"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Kt["General Punctuation"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Kt["Letterlike Symbols"](a)||Kt["Number Forms"](a)||Kt["Miscellaneous Technical"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Kt["Control Pictures"](a)&&a!==9251||Kt["Optical Character Recognition"](a)||Kt["Enclosed Alphanumerics"](a)||Kt["Geometric Shapes"](a)||Kt["Miscellaneous Symbols"](a)&&!(a>=9754&&a<=9759)||Kt["Miscellaneous Symbols and Arrows"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Kt["CJK Symbols and Punctuation"](a)||Kt.Katakana(a)||Kt["Private Use Area"](a)||Kt["CJK Compatibility Forms"](a)||Kt["Small Form Variants"](a)||Kt["Halfwidth and Fullwidth Forms"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(o))}function $a(o){return o>=1424&&o<=2303||Kt["Arabic Presentation Forms-A"](o)||Kt["Arabic Presentation Forms-B"](o)}function Aa(o,a){return!(!a&&$a(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||Kt.Khmer(o))}function Yl(o){for(var a=0,p=o;a-1&&(ta="error"),$l&&$l(o)};function Sp(){ql.fire(new ye("pluginStateChange",{pluginStatus:ta,pluginURL:Ss}))}var ql=new Le,Zc=function(){return ta},Fa=function(){if(ta!=="deferred"||!Ss)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ta="loading",Sp(),Ss&&Yu({url:Ss},function(o){o?U1(o):(ta="loaded",Sp())})},Ba={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return ta==="loaded"||Ba.applyArabicShaping!=null},isLoading:function(){return ta==="loading"},setState:function(o){ta=o.pluginStatus,Ss=o.pluginURL},isParsed:function(){return Ba.applyArabicShaping!=null&&Ba.processBidirectionalText!=null&&Ba.processStyledBidirectionalText!=null},getPluginURL:function(){return Ss}},po=function(o,a){this.zoom=o,a?(this.now=a.now,this.fadeDuration=a.fadeDuration,this.zoomHistory=a.zoomHistory,this.transition=a.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Xl,this.transition={})};po.prototype.isSupportedScript=function(o){return function(a,p){for(var h=0,_=a;h<_.length;h+=1)if(!Aa(_[h].charCodeAt(0),p))return!1;return!0}(o,Ba.isLoaded())},po.prototype.crossFadingFactor=function(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},po.prototype.getCrossfadeParameters=function(){var o=this.zoom,a=o-Math.floor(o),p=this.crossFadingFactor();return o>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:a+(1-a)*p}:{fromScale:.5,toScale:1,t:1-(1-p)*a}};var Ua=function(o,a){this.property=o,this.value=a,this.expression=function(p,h){if(kl(p))return new Ju(p,h);if(qu(p)){var _=Uc(p,h);if(_.result==="error")throw new Error(_.value.map(function(P){return P.key+": "+P.message}).join(", "));return _.value}var v=p;return typeof p=="string"&&h.type==="color"&&(v=Eo.parse(p)),{kind:"constant",evaluate:function(){return v}}}(a===void 0?o.specification.default:a,o.specification)};Ua.prototype.isDataDriven=function(){return this.expression.kind==="source"||this.expression.kind==="composite"},Ua.prototype.possiblyEvaluate=function(o,a,p){return this.property.possiblyEvaluate(this,o,a,p)};var ka=function(o){this.property=o,this.value=new Ua(o,void 0)};ka.prototype.transitioned=function(o,a){return new Cu(this.property,this.value,a,Q({},o.transition,this.transition),o.now)},ka.prototype.untransitioned=function(){return new Cu(this.property,this.value,null,{},0)};var wn=function(o){this._properties=o,this._values=Object.create(o.defaultTransitionablePropertyValues)};wn.prototype.getValue=function(o){return Ae(this._values[o].value.value)},wn.prototype.setValue=function(o,a){this._values.hasOwnProperty(o)||(this._values[o]=new ka(this._values[o].property)),this._values[o].value=new Ua(this._values[o].property,a===null?void 0:Ae(a))},wn.prototype.getTransition=function(o){return Ae(this._values[o].transition)},wn.prototype.setTransition=function(o,a){this._values.hasOwnProperty(o)||(this._values[o]=new ka(this._values[o].property)),this._values[o].transition=Ae(a)||void 0},wn.prototype.serialize=function(){for(var o={},a=0,p=Object.keys(this._values);athis.end)return this.prior=null,_;if(this.value.isDataDriven())return this.prior=null,_;if(h=1)return 1;var C=S*S,M=C*S;return 4*(S<.5?M:3*(S-C)+M-.75)}(P))}return _};var eu=function(o){this._properties=o,this._values=Object.create(o.defaultTransitioningPropertyValues)};eu.prototype.possiblyEvaluate=function(o,a,p){for(var h=new wp(this._properties),_=0,v=Object.keys(this._values);_v.zoomHistory.lastIntegerZoom?{from:p,to:h}:{from:_,to:h}},a.prototype.interpolate=function(p){return p},a}(gr),Xn=function(o){this.specification=o};Xn.prototype.possiblyEvaluate=function(o,a,p,h){if(o.value!==void 0){if(o.expression.kind==="constant"){var _=o.expression.evaluate(a,null,{},p,h);return this._calculate(_,_,_,a)}return this._calculate(o.expression.evaluate(new po(Math.floor(a.zoom-1),a)),o.expression.evaluate(new po(Math.floor(a.zoom),a)),o.expression.evaluate(new po(Math.floor(a.zoom+1),a)),a)}},Xn.prototype._calculate=function(o,a,p,h){return h.zoom>h.zoomHistory.lastIntegerZoom?{from:o,to:a}:{from:p,to:a}},Xn.prototype.interpolate=function(o){return o};var ls=function(o){this.specification=o};ls.prototype.possiblyEvaluate=function(o,a,p,h){return!!o.expression.evaluate(a,null,{},p,h)},ls.prototype.interpolate=function(){return!1};var Ai=function(o){for(var a in this.properties=o,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],o){var p=o[a];p.specification.overridable&&this.overridableProperties.push(a);var h=this.defaultPropertyValues[a]=new Ua(p,void 0),_=this.defaultTransitionablePropertyValues[a]=new ka(p);this.defaultTransitioningPropertyValues[a]=_.untransitioned(),this.defaultPossiblyEvaluatedValues[a]=h.possiblyEvaluate({})}};hr("DataDrivenProperty",gr),hr("DataConstantProperty",Rr),hr("CrossFadedDataDrivenProperty",Ta),hr("CrossFadedProperty",Xn),hr("ColorRampProperty",ls);var Ka=function(o){function a(p,h){if(o.call(this),this.id=p.id,this.type=p.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},p.type!=="custom"&&(this.metadata=(p=p).metadata,this.minzoom=p.minzoom,this.maxzoom=p.maxzoom,p.type!=="background"&&(this.source=p.source,this.sourceLayer=p["source-layer"],this.filter=p.filter),h.layout&&(this._unevaluatedLayout=new qa(h.layout)),h.paint)){for(var _ in this._transitionablePaint=new wn(h.paint),p.paint)this.setPaintProperty(_,p.paint[_],{validate:!1});for(var v in p.layout)this.setLayoutProperty(v,p.layout[v],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new wp(h.paint)}}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},a.prototype.getLayoutProperty=function(p){return p==="visibility"?this.visibility:this._unevaluatedLayout.getValue(p)},a.prototype.setLayoutProperty=function(p,h,_){_===void 0&&(_={}),h!=null&&this._validate(ul,"layers."+this.id+".layout."+p,p,h,_)||(p!=="visibility"?this._unevaluatedLayout.setValue(p,h):this.visibility=h)},a.prototype.getPaintProperty=function(p){return He(p,"-transition")?this._transitionablePaint.getTransition(p.slice(0,-11)):this._transitionablePaint.getValue(p)},a.prototype.setPaintProperty=function(p,h,_){if(_===void 0&&(_={}),h!=null&&this._validate(Wl,"layers."+this.id+".paint."+p,p,h,_))return!1;if(He(p,"-transition"))return this._transitionablePaint.setTransition(p.slice(0,-11),h||void 0),!1;var v=this._transitionablePaint._values[p],P=v.property.specification["property-type"]==="cross-faded-data-driven",S=v.value.isDataDriven(),C=v.value;this._transitionablePaint.setValue(p,h),this._handleSpecialPaintPropertyUpdate(p);var M=this._transitionablePaint._values[p].value;return M.isDataDriven()||S||P||this._handleOverridablePaintPropertyUpdate(p,C,M)},a.prototype._handleSpecialPaintPropertyUpdate=function(p){},a.prototype._handleOverridablePaintPropertyUpdate=function(p,h,_){return!1},a.prototype.isHidden=function(p){return!!(this.minzoom&&p=this.maxzoom)||this.visibility==="none"},a.prototype.updateTransitions=function(p){this._transitioningPaint=this._transitionablePaint.transitioned(p,this._transitioningPaint)},a.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},a.prototype.recalculate=function(p,h){p.getCrossfadeParameters&&(this._crossfadeParameters=p.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(p,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(p,void 0,h)},a.prototype.serialize=function(){var p={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(p.layout=p.layout||{},p.layout.visibility=this.visibility),Ge(p,function(h,_){return!(h===void 0||_==="layout"&&!Object.keys(h).length||_==="paint"&&!Object.keys(h).length)})},a.prototype._validate=function(p,h,_,v,P){return P===void 0&&(P={}),(!P||P.validate!==!1)&&Ru(this,p.call(sl,{key:h,layerType:this.type,objectKey:_,value:v,styleSpec:q,style:{glyphs:!0,sprite:!0}}))},a.prototype.is3D=function(){return!1},a.prototype.isTileClipped=function(){return!1},a.prototype.hasOffscreenPass=function(){return!1},a.prototype.resize=function(){},a.prototype.isStateDependent=function(){for(var p in this.paint._values){var h=this.paint.get(p);if(h instanceof Wn&&Ks(h.property.specification)&&(h.value.kind==="source"||h.value.kind==="composite")&&h.value.isStateDependent)return!0}return!1},a}(Le),tu={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},tp=function(o,a){this._structArray=o,this._pos1=a*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Xo=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function yn(o,a){a===void 0&&(a=1);var p=0,h=0;return{members:o.map(function(_){var v=tu[_.type].BYTES_PER_ELEMENT,P=p=Yc(p,Math.max(a,v)),S=_.components||1;return h=Math.max(h,v),p+=v*S,{name:_.name,type:_.type,components:S,offset:P}}),size:Yc(p,Math.max(h,a)),alignment:a}}function Yc(o,a){return Math.ceil(o/a)*a}Xo.serialize=function(o,a){return o._trim(),a&&(o.isTransferred=!0,a.push(o.arrayBuffer)),{length:o.length,arrayBuffer:o.arrayBuffer}},Xo.deserialize=function(o){var a=Object.create(this.prototype);return a.arrayBuffer=o.arrayBuffer,a.length=o.length,a.capacity=o.arrayBuffer.byteLength/a.bytesPerElement,a._refreshViews(),a},Xo.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Xo.prototype.clear=function(){this.length=0},Xo.prototype.resize=function(o){this.reserve(o),this.length=o},Xo.prototype.reserve=function(o){if(o>this.capacity){this.capacity=Math.max(o,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var a=this.uint8;this._refreshViews(),a&&this.uint8.set(a)}},Xo.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Iu=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.int16[v+0]=h,this.int16[v+1]=_,p},a}(Xo);Iu.prototype.bytesPerElement=4,hr("StructArrayLayout2i4",Iu);var Kl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=4*p;return this.int16[S+0]=h,this.int16[S+1]=_,this.int16[S+2]=v,this.int16[S+3]=P,p},a}(Xo);Kl.prototype.bytesPerElement=8,hr("StructArrayLayout4i8",Kl);var ru=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=6*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.int16[M+2]=v,this.int16[M+3]=P,this.int16[M+4]=S,this.int16[M+5]=C,p},a}(Xo);ru.prototype.bytesPerElement=12,hr("StructArrayLayout2i4i12",ru);var Sa=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=4*p,O=8*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.uint8[O+4]=v,this.uint8[O+5]=P,this.uint8[O+6]=S,this.uint8[O+7]=C,p},a}(Xo);Sa.prototype.bytesPerElement=8,hr("StructArrayLayout2i4ub8",Sa);var Rp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.float32[v+0]=h,this.float32[v+1]=_,p},a}(Xo);Rp.prototype.bytesPerElement=8,hr("StructArrayLayout2f8",Rp);var ws=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B){var j=this.length;return this.resize(j+1),this.emplace(j,p,h,_,v,P,S,C,M,O,B)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j){var Y=10*p;return this.uint16[Y+0]=h,this.uint16[Y+1]=_,this.uint16[Y+2]=v,this.uint16[Y+3]=P,this.uint16[Y+4]=S,this.uint16[Y+5]=C,this.uint16[Y+6]=M,this.uint16[Y+7]=O,this.uint16[Y+8]=B,this.uint16[Y+9]=j,p},a}(Xo);ws.prototype.bytesPerElement=20,hr("StructArrayLayout10ui20",ws);var Ql=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y){var ce=this.length;return this.resize(ce+1),this.emplace(ce,p,h,_,v,P,S,C,M,O,B,j,Y)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce){var he=12*p;return this.int16[he+0]=h,this.int16[he+1]=_,this.int16[he+2]=v,this.int16[he+3]=P,this.uint16[he+4]=S,this.uint16[he+5]=C,this.uint16[he+6]=M,this.uint16[he+7]=O,this.int16[he+8]=B,this.int16[he+9]=j,this.int16[he+10]=Y,this.int16[he+11]=ce,p},a}(Xo);Ql.prototype.bytesPerElement=24,hr("StructArrayLayout4i4ui4i24",Ql);var Cp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.float32[P+0]=h,this.float32[P+1]=_,this.float32[P+2]=v,p},a}(Xo);Cp.prototype.bytesPerElement=12,hr("StructArrayLayout3f12",Cp);var cl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.uint32[1*p+0]=h,p},a}(Xo);cl.prototype.bytesPerElement=4,hr("StructArrayLayout1ul4",cl);var Jl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O){var B=this.length;return this.resize(B+1),this.emplace(B,p,h,_,v,P,S,C,M,O)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B){var j=10*p,Y=5*p;return this.int16[j+0]=h,this.int16[j+1]=_,this.int16[j+2]=v,this.int16[j+3]=P,this.int16[j+4]=S,this.int16[j+5]=C,this.uint32[Y+3]=M,this.uint16[j+8]=O,this.uint16[j+9]=B,p},a}(Xo);Jl.prototype.bytesPerElement=20,hr("StructArrayLayout6i1ul2ui20",Jl);var rp=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S){var C=this.length;return this.resize(C+1),this.emplace(C,p,h,_,v,P,S)},a.prototype.emplace=function(p,h,_,v,P,S,C){var M=6*p;return this.int16[M+0]=h,this.int16[M+1]=_,this.int16[M+2]=v,this.int16[M+3]=P,this.int16[M+4]=S,this.int16[M+5]=C,p},a}(Xo);rp.prototype.bytesPerElement=12,hr("StructArrayLayout2i2i2i12",rp);var op=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P){var S=this.length;return this.resize(S+1),this.emplace(S,p,h,_,v,P)},a.prototype.emplace=function(p,h,_,v,P,S){var C=4*p,M=8*p;return this.float32[C+0]=h,this.float32[C+1]=_,this.float32[C+2]=v,this.int16[M+6]=P,this.int16[M+7]=S,p},a}(Xo);op.prototype.bytesPerElement=16,hr("StructArrayLayout2f1f2i16",op);var $c=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=12*p,C=3*p;return this.uint8[S+0]=h,this.uint8[S+1]=_,this.float32[C+1]=v,this.float32[C+2]=P,p},a}(Xo);$c.prototype.bytesPerElement=12,hr("StructArrayLayout2ub2f12",$c);var Rs=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.uint16[P+0]=h,this.uint16[P+1]=_,this.uint16[P+2]=v,p},a}(Xo);Rs.prototype.bytesPerElement=6,hr("StructArrayLayout3ui6",Rs);var cs=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve){var Ze=this.length;return this.resize(Ze+1),this.emplace(Ze,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze){var it=24*p,ut=12*p,Et=48*p;return this.int16[it+0]=h,this.int16[it+1]=_,this.uint16[it+2]=v,this.uint16[it+3]=P,this.uint32[ut+2]=S,this.uint32[ut+3]=C,this.uint32[ut+4]=M,this.uint16[it+10]=O,this.uint16[it+11]=B,this.uint16[it+12]=j,this.float32[ut+7]=Y,this.float32[ut+8]=ce,this.uint8[Et+36]=he,this.uint8[Et+37]=Re,this.uint8[Et+38]=be,this.uint32[ut+10]=Ve,this.int16[it+22]=Ze,p},a}(Xo);cs.prototype.bytesPerElement=48,hr("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",cs);var ec=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po){var Zr=this.length;return this.resize(Zr+1),this.emplace(Zr,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po)},a.prototype.emplace=function(p,h,_,v,P,S,C,M,O,B,j,Y,ce,he,Re,be,Ve,Ze,it,ut,Et,kt,qt,Ir,pr,Br,dr,Po,Zr){var Pr=34*p,Co=17*p;return this.int16[Pr+0]=h,this.int16[Pr+1]=_,this.int16[Pr+2]=v,this.int16[Pr+3]=P,this.int16[Pr+4]=S,this.int16[Pr+5]=C,this.int16[Pr+6]=M,this.int16[Pr+7]=O,this.uint16[Pr+8]=B,this.uint16[Pr+9]=j,this.uint16[Pr+10]=Y,this.uint16[Pr+11]=ce,this.uint16[Pr+12]=he,this.uint16[Pr+13]=Re,this.uint16[Pr+14]=be,this.uint16[Pr+15]=Ve,this.uint16[Pr+16]=Ze,this.uint16[Pr+17]=it,this.uint16[Pr+18]=ut,this.uint16[Pr+19]=Et,this.uint16[Pr+20]=kt,this.uint16[Pr+21]=qt,this.uint16[Pr+22]=Ir,this.uint32[Co+12]=pr,this.float32[Co+13]=Br,this.float32[Co+14]=dr,this.float32[Co+15]=Po,this.float32[Co+16]=Zr,p},a}(Xo);ec.prototype.bytesPerElement=68,hr("StructArrayLayout8i15ui1ul4f68",ec);var Mu=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.float32[1*p+0]=h,p},a}(Xo);Mu.prototype.bytesPerElement=4,hr("StructArrayLayout1f4",Mu);var Qa=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=3*p;return this.int16[P+0]=h,this.int16[P+1]=_,this.int16[P+2]=v,p},a}(Xo);Qa.prototype.bytesPerElement=6,hr("StructArrayLayout3i6",Qa);var qc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_){var v=this.length;return this.resize(v+1),this.emplace(v,p,h,_)},a.prototype.emplace=function(p,h,_,v){var P=4*p;return this.uint32[2*p+0]=h,this.uint16[P+2]=_,this.uint16[P+3]=v,p},a}(Xo);qc.prototype.bytesPerElement=8,hr("StructArrayLayout1ul2ui8",qc);var dl=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h){var _=this.length;return this.resize(_+1),this.emplace(_,p,h)},a.prototype.emplace=function(p,h,_){var v=2*p;return this.uint16[v+0]=h,this.uint16[v+1]=_,p},a}(Xo);dl.prototype.bytesPerElement=4,hr("StructArrayLayout2ui4",dl);var tc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p){var h=this.length;return this.resize(h+1),this.emplace(h,p)},a.prototype.emplace=function(p,h){return this.uint16[1*p+0]=h,p},a}(Xo);tc.prototype.bytesPerElement=2,hr("StructArrayLayout1ui2",tc);var rc=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},a.prototype.emplaceBack=function(p,h,_,v){var P=this.length;return this.resize(P+1),this.emplace(P,p,h,_,v)},a.prototype.emplace=function(p,h,_,v,P){var S=4*p;return this.float32[S+0]=h,this.float32[S+1]=_,this.float32[S+2]=v,this.float32[S+3]=P,p},a}(Xo);rc.prototype.bytesPerElement=16,hr("StructArrayLayout4f16",rc);var l=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return p.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},p.x1.get=function(){return this._structArray.int16[this._pos2+2]},p.y1.get=function(){return this._structArray.int16[this._pos2+3]},p.x2.get=function(){return this._structArray.int16[this._pos2+4]},p.y2.get=function(){return this._structArray.int16[this._pos2+5]},p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},p.anchorPoint.get=function(){return new x(this.anchorPointX,this.anchorPointY)},Object.defineProperties(a.prototype,p),a}(tp);l.prototype.size=20;var d=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new l(this,p)},a}(Jl);hr("CollisionBoxArray",d);var c=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},p.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},p.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},p.segment.get=function(){return this._structArray.uint16[this._pos2+10]},p.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},p.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},p.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},p.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},p.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},p.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},p.placedOrientation.set=function(h){this._structArray.uint8[this._pos1+37]=h},p.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},p.hidden.set=function(h){this._structArray.uint8[this._pos1+38]=h},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},p.crossTileID.set=function(h){this._structArray.uint32[this._pos4+10]=h},p.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(a.prototype,p),a}(tp);c.prototype.size=48;var f=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new c(this,p)},a}(cs);hr("PlacedSymbolArray",f);var E=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},p.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},p.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},p.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},p.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},p.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},p.key.get=function(){return this._structArray.uint16[this._pos2+8]},p.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},p.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},p.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},p.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},p.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},p.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},p.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},p.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},p.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},p.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},p.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},p.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},p.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},p.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},p.crossTileID.set=function(h){this._structArray.uint32[this._pos4+12]=h},p.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},p.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},p.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},p.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(a.prototype,p),a}(tp);E.prototype.size=68;var A=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new E(this,p)},a}(ec);hr("SymbolInstanceArray",A);var T=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getoffsetX=function(p){return this.float32[1*p+0]},a}(Mu);hr("GlyphOffsetArray",T);var w=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.getx=function(p){return this.int16[3*p+0]},a.prototype.gety=function(p){return this.int16[3*p+1]},a.prototype.gettileUnitDistanceFromAnchor=function(p){return this.int16[3*p+2]},a}(Qa);hr("SymbolLineVertexArray",w);var D=function(o){function a(){o.apply(this,arguments)}o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a;var p={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(a.prototype,p),a}(tp);D.prototype.size=8;var z=function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.get=function(p){return new D(this,p)},a}(qc);hr("FeatureIndexArray",z);var $=yn([{name:"a_pos",components:2,type:"Int16"}],4).members,K=function(o){o===void 0&&(o=[]),this.segments=o};function ee(o,a){return 256*(o=V(Math.floor(o),0,255))+V(Math.floor(a),0,255)}K.prototype.prepareSegment=function(o,a,p,h){var _=this.segments[this.segments.length-1];return o>K.MAX_VERTEX_ARRAY_LENGTH&&ze("Max vertices per segment is "+K.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+o),(!_||_.vertexLength+o>K.MAX_VERTEX_ARRAY_LENGTH||_.sortKey!==h)&&(_={vertexOffset:a.length,primitiveOffset:p.length,vertexLength:0,primitiveLength:0},h!==void 0&&(_.sortKey=h),this.segments.push(_)),_},K.prototype.get=function(){return this.segments},K.prototype.destroy=function(){for(var o=0,a=this.segments;o>>16)*S&65535)<<16)&4294967295)<<15|M>>>17))*C+(((M>>>16)*C&65535)<<16)&4294967295)<<13|v>>>19))+((5*(v>>>16)&65535)<<16)&4294967295))+((58964+(P>>>16)&65535)<<16);switch(M=0,h){case 3:M^=(255&a.charCodeAt(O+2))<<16;case 2:M^=(255&a.charCodeAt(O+1))<<8;case 1:v^=M=(65535&(M=(M=(65535&(M^=255&a.charCodeAt(O)))*S+(((M>>>16)*S&65535)<<16)&4294967295)<<15|M>>>17))*C+(((M>>>16)*C&65535)<<16)&4294967295}return v^=a.length,v=2246822507*(65535&(v^=v>>>16))+((2246822507*(v>>>16)&65535)<<16)&4294967295,v=3266489909*(65535&(v^=v>>>13))+((3266489909*(v>>>16)&65535)<<16)&4294967295,(v^=v>>>16)>>>0}}),Te=y(function(o){o.exports=function(a,p){for(var h,_=a.length,v=p^_,P=0;_>=4;)h=1540483477*(65535&(h=255&a.charCodeAt(P)|(255&a.charCodeAt(++P))<<8|(255&a.charCodeAt(++P))<<16|(255&a.charCodeAt(++P))<<24))+((1540483477*(h>>>16)&65535)<<16),v=1540483477*(65535&v)+((1540483477*(v>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),_-=4,++P;switch(_){case 3:v^=(255&a.charCodeAt(P+2))<<16;case 2:v^=(255&a.charCodeAt(P+1))<<8;case 1:v=1540483477*(65535&(v^=255&a.charCodeAt(P)))+((1540483477*(v>>>16)&65535)<<16)}return v=1540483477*(65535&(v^=v>>>13))+((1540483477*(v>>>16)&65535)<<16),(v^=v>>>15)>>>0}}),le=de,Fe=Te;le.murmur3=de,le.murmur2=Fe;var De=function(){this.ids=[],this.positions=[],this.indexed=!1};De.prototype.add=function(o,a,p,h){this.ids.push(at(o)),this.positions.push(a,p,h)},De.prototype.getPositions=function(o){for(var a=at(o),p=0,h=this.ids.length-1;p>1;this.ids[_]>=a?h=_:p=_+1}for(var v=[];this.ids[p]===a;)v.push({index:this.positions[3*p],start:this.positions[3*p+1],end:this.positions[3*p+2]}),p++;return v},De.serialize=function(o,a){var p=new Float64Array(o.ids),h=new Uint32Array(o.positions);return function _(v,P,S,C){for(;S>1],O=S-1,B=C+1;;){do O++;while(v[O]M);if(O>=B)break;Je(v,O,B),Je(P,3*O,3*B),Je(P,3*O+1,3*B+1),Je(P,3*O+2,3*B+2)}B-SP.x+1||CP.y+1)&&ze("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return p}function wi(o,a){return{type:o.type,id:o.id,properties:o.properties,geometry:a?Fi(o):[]}}function ra(o,a,p,h,_){o.emplaceBack(2*a+(h+1)/2,2*p+(_+1)/2)}var Zn=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new Iu,this.indexArray=new Rs,this.segments=new K,this.programConfigurations=new zr(o.layers,o.zoom),this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};function Cs(o,a){for(var p=0;p1){if(Ip(o,a))return!0;for(var h=0;h1?p:p.sub(a)._mult(_)._add(a))}function ou(o,a){for(var p,h,_,v=!1,P=0;Pa.y!=(_=p[C]).y>a.y&&a.x<(_.x-h.x)*(a.y-h.y)/(_.y-h.y)+h.x&&(v=!v);return v}function ds(o,a){for(var p=!1,h=0,_=o.length-1;ha.y!=P.y>a.y&&a.x<(P.x-v.x)*(a.y-v.y)/(P.y-v.y)+v.x&&(p=!p)}return p}function Du(o,a,p){var h=p[0],_=p[2];if(o.x_.x&&a.x>_.x||o.y_.y&&a.y>_.y)return!1;var v=st(o,a,p[0]);return v!==st(o,a,p[1])||v!==st(o,a,p[2])||v!==st(o,a,p[3])}function kn(o,a,p){var h=a.paint.get(o).value;return h.kind==="constant"?h.value:p.programConfigurations.get(a.id).getMaxValue(o)}function Bi(o){return Math.sqrt(o[0]*o[0]+o[1]*o[1])}function da(o,a,p,h,_){if(!a[0]&&!a[1])return o;var v=x.convert(a)._mult(_);p==="viewport"&&v._rotate(-h);for(var P=[],S=0;S=8192||O<0||O>=8192)){var B=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,o.sortKey),j=B.vertexLength;ra(this.layoutVertexArray,M,O,-1,-1),ra(this.layoutVertexArray,M,O,1,-1),ra(this.layoutVertexArray,M,O,1,1),ra(this.layoutVertexArray,M,O,-1,1),this.indexArray.emplaceBack(j,j+1,j+2),this.indexArray.emplaceBack(j,j+3,j+2),B.vertexLength+=4,B.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,{},h)},hr("CircleBucket",Zn,{omit:["layers"]});var es=new Ai({"circle-sort-key":new gr(q.layout_circle["circle-sort-key"])}),ys={paint:new Ai({"circle-radius":new gr(q.paint_circle["circle-radius"]),"circle-color":new gr(q.paint_circle["circle-color"]),"circle-blur":new gr(q.paint_circle["circle-blur"]),"circle-opacity":new gr(q.paint_circle["circle-opacity"]),"circle-translate":new Rr(q.paint_circle["circle-translate"]),"circle-translate-anchor":new Rr(q.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new Rr(q.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new Rr(q.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new gr(q.paint_circle["circle-stroke-width"]),"circle-stroke-color":new gr(q.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new gr(q.paint_circle["circle-stroke-opacity"])}),layout:es},Io=typeof Float32Array<"u"?Float32Array:Array;function Cn(o){return o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o}function Ki(o,a,p){var h=a[0],_=a[1],v=a[2],P=a[3],S=a[4],C=a[5],M=a[6],O=a[7],B=a[8],j=a[9],Y=a[10],ce=a[11],he=a[12],Re=a[13],be=a[14],Ve=a[15],Ze=p[0],it=p[1],ut=p[2],Et=p[3];return o[0]=Ze*h+it*S+ut*B+Et*he,o[1]=Ze*_+it*C+ut*j+Et*Re,o[2]=Ze*v+it*M+ut*Y+Et*be,o[3]=Ze*P+it*O+ut*ce+Et*Ve,o[4]=(Ze=p[4])*h+(it=p[5])*S+(ut=p[6])*B+(Et=p[7])*he,o[5]=Ze*_+it*C+ut*j+Et*Re,o[6]=Ze*v+it*M+ut*Y+Et*be,o[7]=Ze*P+it*O+ut*ce+Et*Ve,o[8]=(Ze=p[8])*h+(it=p[9])*S+(ut=p[10])*B+(Et=p[11])*he,o[9]=Ze*_+it*C+ut*j+Et*Re,o[10]=Ze*v+it*M+ut*Y+Et*be,o[11]=Ze*P+it*O+ut*ce+Et*Ve,o[12]=(Ze=p[12])*h+(it=p[13])*S+(ut=p[14])*B+(Et=p[15])*he,o[13]=Ze*_+it*C+ut*j+Et*Re,o[14]=Ze*v+it*M+ut*Y+Et*be,o[15]=Ze*P+it*O+ut*ce+Et*Ve,o}Math.hypot||(Math.hypot=function(){for(var o=arguments,a=0,p=arguments.length;p--;)a+=o[p]*o[p];return Math.sqrt(a)});var Ms,oc=Ki;function Ou(o,a,p){var h=a[0],_=a[1],v=a[2],P=a[3];return o[0]=p[0]*h+p[4]*_+p[8]*v+p[12]*P,o[1]=p[1]*h+p[5]*_+p[9]*v+p[13]*P,o[2]=p[2]*h+p[6]*_+p[10]*v+p[14]*P,o[3]=p[3]*h+p[7]*_+p[11]*v+p[15]*P,o}Ms=new Io(3),Io!=Float32Array&&(Ms[0]=0,Ms[1]=0,Ms[2]=0),function(){var o=new Io(4);Io!=Float32Array&&(o[0]=0,o[1]=0,o[2]=0,o[3]=0)}();var Kc=(function(){var o=new Io(2);Io!=Float32Array&&(o[0]=0,o[1]=0)}(),function(o){function a(p){o.call(this,p,ys)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.createBucket=function(p){return new Zn(p)},a.prototype.queryRadius=function(p){var h=p;return kn("circle-radius",this,h)+kn("circle-stroke-width",this,h)+Bi(this.paint.get("circle-translate"))},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C,M){for(var O=da(p,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),S.angle,C),B=this.paint.get("circle-radius").evaluate(h,_)+this.paint.get("circle-stroke-width").evaluate(h,_),j=this.paint.get("circle-pitch-alignment")==="map",Y=j?O:function(kt,qt){return kt.map(function(Ir){return np(Ir,qt)})}(O,M),ce=j?B*C:B,he=0,Re=v;heo.width||_.height>o.height||p.x>o.width-_.width||p.y>o.height-_.height)throw new RangeError("out of range source coordinates for image copy");if(_.width>a.width||_.height>a.height||h.x>a.width-_.width||h.y>a.height-_.height)throw new RangeError("out of range destination coordinates for image copy");for(var P=o.data,S=a.data,C=0;C<_.height;C++)for(var M=((p.y+C)*o.width+p.x)*v,O=((h.y+C)*a.width+h.x)*v,B=0;B<_.width*v;B++)S[O+B]=P[M+B];return a}hr("HeatmapBucket",ap,{omit:["layers"]});var Mp=function(o,a){hs(this,o,1,a)};Mp.prototype.resize=function(o){ic(this,o,1)},Mp.prototype.clone=function(){return new Mp({width:this.width,height:this.height},new Uint8Array(this.data))},Mp.copy=function(o,a,p,h,_){J0(o,a,p,h,_,1)};var ya=function(o,a){hs(this,o,4,a)};ya.prototype.resize=function(o){ic(this,o,4)},ya.prototype.replace=function(o,a){a?this.data.set(o):this.data=o instanceof Uint8ClampedArray?new Uint8Array(o.buffer):o},ya.prototype.clone=function(){return new ya({width:this.width,height:this.height},new Uint8Array(this.data))},ya.copy=function(o,a,p,h,_){J0(o,a,p,h,_,4)},hr("AlphaImage",Mp),hr("RGBAImage",ya);var zy={paint:new Ai({"heatmap-radius":new gr(q.paint_heatmap["heatmap-radius"]),"heatmap-weight":new gr(q.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Rr(q.paint_heatmap["heatmap-intensity"]),"heatmap-color":new ls(q.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Rr(q.paint_heatmap["heatmap-opacity"])})};function Vy(o){var a={},p=o.resolution||256,h=o.clips?o.clips.length:1,_=o.image||new ya({width:p,height:h}),v=function(ce,he,Re){a[o.evaluationKey]=Re;var be=o.expression.evaluate(a);_.data[ce+he+0]=Math.floor(255*be.r/be.a),_.data[ce+he+1]=Math.floor(255*be.g/be.a),_.data[ce+he+2]=Math.floor(255*be.b/be.a),_.data[ce+he+3]=Math.floor(255*be.a)};if(o.clips)for(var P=0,S=0;P80*p){h=v=o[0],_=P=o[1];for(var ce=p;cev&&(v=S),C>P&&(P=C);M=(M=Math.max(v-h,P-_))!==0?1/M:0}return Qc(j,Y,p,h,_,M),Y}function Hy(o,a,p,h,_){var v,P;if(_===_l(o,a,p,h)>0)for(v=a;v=a;v-=h)P=uc(v,o[v],o[v+1],P);return P&&yl(P,P.next)&&(sp(P),P=P.next),P}function Np(o,a){if(!o)return o;a||(a=o);var p,h=o;do if(p=!1,h.steiner||!yl(h,h.next)&&Ui(h.prev,h,h.next)!==0)h=h.next;else{if(sp(h),(h=a=h.prev)===h.next)break;p=!0}while(p||h!==a);return a}function Qc(o,a,p,h,_,v,P){if(o){!P&&v&&function(O,B,j,Y){var ce=O;do ce.z===null&&(ce.z=ac(ce.x,ce.y,B,j,Y)),ce.prevZ=ce.prev,ce.nextZ=ce.next,ce=ce.next;while(ce!==O);ce.prevZ.nextZ=null,ce.prevZ=null,function(he){var Re,be,Ve,Ze,it,ut,Et,kt,qt=1;do{for(be=he,he=null,it=null,ut=0;be;){for(ut++,Ve=be,Et=0,Re=0;Re0||kt>0&&Ve;)Et!==0&&(kt===0||!Ve||be.z<=Ve.z)?(Ze=be,be=be.nextZ,Et--):(Ze=Ve,Ve=Ve.nextZ,kt--),it?it.nextZ=Ze:he=Ze,Ze.prevZ=it,it=Ze;be=Ve}it.nextZ=null,qt*=2}while(ut>1)}(ce)}(o,h,_,v);for(var S,C,M=o;o.prev!==o.next;)if(S=o.prev,C=o.next,v?im(o,h,_,v):om(o))a.push(S.i/p),a.push(o.i/p),a.push(C.i/p),sp(o),o=C.next,M=C.next;else if((o=C)===M){P?P===1?Qc(o=nm(Np(o),a,p),a,p,h,_,v,2):P===2&&am(o,a,p,h,_,v):Qc(Np(o),a,p,h,_,v,1);break}}}function om(o){var a=o.prev,p=o,h=o.next;if(Ui(a,p,h)>=0)return!1;for(var _=o.next.next;_!==o.prev;){if(Dp(a.x,a.y,p.x,p.y,h.x,h.y,_.x,_.y)&&Ui(_.prev,_,_.next)>=0)return!1;_=_.next}return!0}function im(o,a,p,h){var _=o.prev,v=o,P=o.next;if(Ui(_,v,P)>=0)return!1;for(var S=_.x>v.x?_.x>P.x?_.x:P.x:v.x>P.x?v.x:P.x,C=_.y>v.y?_.y>P.y?_.y:P.y:v.y>P.y?v.y:P.y,M=ac(_.x=M&&j&&j.z<=O;){if(B!==o.prev&&B!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,B.x,B.y)&&Ui(B.prev,B,B.next)>=0||(B=B.prevZ,j!==o.prev&&j!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,j.x,j.y)&&Ui(j.prev,j,j.next)>=0))return!1;j=j.nextZ}for(;B&&B.z>=M;){if(B!==o.prev&&B!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,B.x,B.y)&&Ui(B.prev,B,B.next)>=0)return!1;B=B.prevZ}for(;j&&j.z<=O;){if(j!==o.prev&&j!==o.next&&Dp(_.x,_.y,v.x,v.y,P.x,P.y,j.x,j.y)&&Ui(j.prev,j,j.next)>=0)return!1;j=j.nextZ}return!0}function nm(o,a,p){var h=o;do{var _=h.prev,v=h.next.next;!yl(_,v)&&j1(_,h,h.next,v)&&Op(_,v)&&Op(v,_)&&(a.push(_.i/p),a.push(h.i/p),a.push(v.i/p),sp(h),sp(h.next),h=o=v),h=h.next}while(h!==o);return Np(h)}function am(o,a,p,h,_,v){var P=o;do{for(var S=P.next.next;S!==P.prev;){if(P.i!==S.i&&G1(P,S)){var C=sc(P,S);return P=Np(P,P.next),C=Np(C,C.next),Qc(P,a,p,h,_,v),void Qc(C,a,p,h,_,v)}S=S.next}P=P.next}while(P!==o)}function sm(o,a){return o.x-a.x}function ed(o,a){if(a=function(h,_){var v,P=_,S=h.x,C=h.y,M=-1/0;do{if(C<=P.y&&C>=P.next.y&&P.next.y!==P.y){var O=P.x+(C-P.y)*(P.next.x-P.x)/(P.next.y-P.y);if(O<=S&&O>M){if(M=O,O===S){if(C===P.y)return P;if(C===P.next.y)return P.next}v=P.x=P.x&&P.x>=Y&&S!==P.x&&Dp(Cv.x||P.x===v.x&&V1(v,P)))&&(v=P,he=B)),P=P.next;while(P!==j);return v}(o,a)){var p=sc(a,o);Np(a,a.next),Np(p,p.next)}}function V1(o,a){return Ui(o.prev,o,a.prev)<0&&Ui(a.next,o,o.next)<0}function ac(o,a,p,h,_){return(o=1431655765&((o=858993459&((o=252645135&((o=16711935&((o=32767*(o-p)*_)|o<<8))|o<<4))|o<<2))|o<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=32767*(a-h)*_)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function H1(o){var a=o,p=o;do(a.x=0&&(o-P)*(h-S)-(p-P)*(a-S)>=0&&(p-P)*(v-S)-(_-P)*(h-S)>=0}function G1(o,a){return o.next.i!==a.i&&o.prev.i!==a.i&&!function(p,h){var _=p;do{if(_.i!==p.i&&_.next.i!==p.i&&_.i!==h.i&&_.next.i!==h.i&&j1(_,_.next,p,h))return!0;_=_.next}while(_!==p);return!1}(o,a)&&(Op(o,a)&&Op(a,o)&&function(p,h){var _=p,v=!1,P=(p.x+h.x)/2,S=(p.y+h.y)/2;do _.y>S!=_.next.y>S&&_.next.y!==_.y&&P<(_.next.x-_.x)*(S-_.y)/(_.next.y-_.y)+_.x&&(v=!v),_=_.next;while(_!==p);return v}(o,a)&&(Ui(o.prev,o,a.prev)||Ui(o,a.prev,a))||yl(o,a)&&Ui(o.prev,o,o.next)>0&&Ui(a.prev,a,a.next)>0)}function Ui(o,a,p){return(a.y-o.y)*(p.x-a.x)-(a.x-o.x)*(p.y-a.y)}function yl(o,a){return o.x===a.x&&o.y===a.y}function j1(o,a,p,h){var _=fl(Ui(o,a,p)),v=fl(Ui(o,a,h)),P=fl(Ui(p,h,o)),S=fl(Ui(p,h,a));return _!==v&&P!==S||!(_!==0||!hl(o,p,a))||!(v!==0||!hl(o,h,a))||!(P!==0||!hl(p,o,h))||!(S!==0||!hl(p,a,h))}function hl(o,a,p){return a.x<=Math.max(o.x,p.x)&&a.x>=Math.min(o.x,p.x)&&a.y<=Math.max(o.y,p.y)&&a.y>=Math.min(o.y,p.y)}function fl(o){return o>0?1:o<0?-1:0}function Op(o,a){return Ui(o.prev,o,o.next)<0?Ui(o,a,o.next)>=0&&Ui(o,o.prev,a)>=0:Ui(o,a,o.prev)<0||Ui(o,o.next,a)<0}function sc(o,a){var p=new ml(o.i,o.x,o.y),h=new ml(a.i,a.x,a.y),_=o.next,v=a.prev;return o.next=a,a.prev=o,p.next=_,_.prev=p,h.next=p,p.prev=h,v.next=h,h.prev=v,h}function uc(o,a,p,h){var _=new ml(o,a,p);return h?(_.next=h.next,_.prev=h,h.next.prev=_,h.next=_):(_.prev=_,_.next=_),_}function sp(o){o.next.prev=o.prev,o.prev.next=o.next,o.prevZ&&(o.prevZ.nextZ=o.nextZ),o.nextZ&&(o.nextZ.prevZ=o.prevZ)}function ml(o,a,p){this.i=o,this.x=a,this.y=p,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function _l(o,a,p,h){for(var _=0,v=a,P=p-h;vC;){if(M-C>600){var B=M-C+1,j=S-C+1,Y=Math.log(B),ce=.5*Math.exp(2*Y/3),he=.5*Math.sqrt(Y*ce*(B-ce)/B)*(j-B/2<0?-1:1);v(P,S,Math.max(C,Math.floor(S-j*ce/B+he)),Math.min(M,Math.floor(S+(B-j)*ce/B+he)),O)}var Re=P[S],be=C,Ve=M;for(up(P,C,S),O(P[M],Re)>0&&up(P,C,M);be0;)Ve--}O(P[C],Re)===0?up(P,C,Ve):up(P,++Ve,M),Ve<=S&&(C=Ve+1),S<=Ve&&(M=Ve-1)}})(o,a,p,h||o.length-1,_||gl)}function up(o,a,p){var h=o[a];o[a]=o[p],o[p]=h}function gl(o,a){return oa?1:0}function W1(o,a){var p=o.length;if(p<=1)return[o];for(var h,_,v=[],P=0;P1)for(var C=0;C0&&p.holes.push(h+=o[_-1].length)}return p},k1.default=rm;var iu=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Iu,this.indexArray=new Rs,this.indexArray2=new dl,this.programConfigurations=new zr(o.layers,o.zoom),this.segments=new K,this.segments2=new K,this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};iu.prototype.populate=function(o,a,p){this.hasPattern=rd("fill",this.layers,a);for(var h=this.layers[0].layout.get("fill-sort-key"),_=[],v=0,P=o;v>3}if(_--,h===1||h===2)v+=o.readSVarint(),P+=o.readSVarint(),h===1&&(a&&S.push(a),a=[]),a.push(new x(v,P));else{if(h!==7)throw new Error("unknown command "+h);a&&a.push(a[0].clone())}}return a&&S.push(a),S},vl.prototype.bbox=function(){var o=this._pbf;o.pos=this._geometry;for(var a=o.readVarint()+o.pos,p=1,h=0,_=0,v=0,P=1/0,S=-1/0,C=1/0,M=-1/0;o.pos>3}if(h--,p===1||p===2)(_+=o.readSVarint())S&&(S=_),(v+=o.readSVarint())M&&(M=v);else if(p!==7)throw new Error("unknown command "+p)}return[P,C,S,M]},vl.prototype.toGeoJSON=function(o,a,p){var h,_,v=this.extent*Math.pow(2,p),P=this.extent*o,S=this.extent*a,C=this.loadGeometry(),M=vl.types[this.type];function O(Y){for(var ce=0;ce>3;_=P===1?h.readString():P===2?h.readFloat():P===3?h.readDouble():P===4?h.readVarint64():P===5?h.readVarint():P===6?h.readSVarint():P===7?h.readBoolean():null}return _}(p))}function Yy(o,a,p){if(o===3){var h=new id(p,p.readVarint()+p.pos);h.length&&(a[h.name]=h)}}El.prototype.feature=function(o){if(o<0||o>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[o];var a=this._pbf.readVarint()+this._pbf.pos;return new Zy(this._pbf,a,this.extent,this._keys,this._values)};var Up={VectorTile:function(o,a){this.layers=o.readFields(Yy,{},a)},VectorTileFeature:Zy,VectorTileLayer:id},X1=Up.VectorTileFeature.types,Z1=Math.pow(2,13);function ha(o,a,p,h,_,v,P,S){o.emplaceBack(a,p,2*Math.floor(h*Z1)+P,_*Z1*2,v*Z1*2,Math.round(S))}var ia=function(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(function(a){return a.id}),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new ru,this.indexArray=new Rs,this.programConfigurations=new zr(o.layers,o.zoom),this.segments=new K,this.stateDependentLayerIds=this.layers.filter(function(a){return a.isStateDependent()}).map(function(a){return a.id})};function fn(o,a){return o.x===a.x&&(o.x<0||o.x>8192)||o.y===a.y&&(o.y<0||o.y>8192)}ia.prototype.populate=function(o,a,p){this.features=[],this.hasPattern=rd("fill-extrusion",this.layers,a);for(var h=0,_=o;h<_.length;h+=1){var v=_[h],P=v.feature,S=v.id,C=v.index,M=v.sourceLayerIndex,O=this.layers[0]._featureFilter.needGeometry,B=wi(P,O);if(this.layers[0]._featureFilter.filter(new po(this.zoom),B,p)){var j={id:S,sourceLayerIndex:M,index:C,geometry:O?B.geometry:Fi(P),properties:P.properties,type:P.type,patterns:{}};this.hasPattern?this.features.push(od("fill-extrusion",this.layers,j,this.zoom,a)):this.addFeature(j,j.geometry,C,p,{}),a.featureIndex.insert(P,j.geometry,C,M,this.index,!0)}}},ia.prototype.addFeatures=function(o,a,p){for(var h=0,_=this.features;h<_.length;h+=1){var v=_[h];this.addFeature(v,v.geometry,v.index,a,p)}},ia.prototype.update=function(o,a,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,a,this.stateDependentLayers,p)},ia.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},ia.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},ia.prototype.upload=function(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,Xy),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0},ia.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ia.prototype.addFeature=function(o,a,p,h,_){for(var v=0,P=W1(a,500);v8192})||Co.every(function(co){return co.y<0})||Co.every(function(co){return co.y>8192})))for(var he=0,Re=0;Re=1){var Ve=ce[Re-1];if(!fn(be,Ve)){B.vertexLength+4>K.MAX_VERTEX_ARRAY_LENGTH&&(B=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var Ze=be.sub(Ve)._perp()._unit(),it=Ve.dist(be);he+it>32768&&(he=0),ha(this.layoutVertexArray,be.x,be.y,Ze.x,Ze.y,0,0,he),ha(this.layoutVertexArray,be.x,be.y,Ze.x,Ze.y,0,1,he),ha(this.layoutVertexArray,Ve.x,Ve.y,Ze.x,Ze.y,0,0,he+=it),ha(this.layoutVertexArray,Ve.x,Ve.y,Ze.x,Ze.y,0,1,he);var ut=B.vertexLength;this.indexArray.emplaceBack(ut,ut+2,ut+1),this.indexArray.emplaceBack(ut+1,ut+2,ut+3),B.vertexLength+=4,B.primitiveLength+=2}}}}if(B.vertexLength+C>K.MAX_VERTEX_ARRAY_LENGTH&&(B=this.segments.prepareSegment(C,this.layoutVertexArray,this.indexArray)),X1[o.type]==="Polygon"){for(var Et=[],kt=[],qt=B.vertexLength,Ir=0,pr=S;Ir=2&&o[C-1].equals(o[C-2]);)C--;for(var M=0;M0;if(kt&&be>M){var Ir=O.dist(Y);if(Ir>2*B){var pr=O.sub(O.sub(Y)._mult(B/Ir)._round());this.updateDistance(Y,pr),this.addCurrentVertex(pr,he,0,0,j),Y=pr}}var Br=Y&&ce,dr=Br?p:S?"butt":h;if(Br&&dr==="round"&&(ut_&&(dr="bevel"),dr==="bevel"&&(ut>2&&(dr="flipbevel"),ut<_&&(dr="miter")),Y&&this.updateDistance(Y,O),dr==="miter")Ve._mult(ut),this.addCurrentVertex(O,Ve,0,0,j);else if(dr==="flipbevel"){if(ut>100)Ve=Re.mult(-1);else{var Po=ut*he.add(Re).mag()/he.sub(Re).mag();Ve._perp()._mult(Po*(qt?-1:1))}this.addCurrentVertex(O,Ve,0,0,j),this.addCurrentVertex(O,Ve.mult(-1),0,0,j)}else if(dr==="bevel"||dr==="fakeround"){var Zr=-Math.sqrt(ut*ut-1),Pr=qt?Zr:0,Co=qt?0:Zr;if(Y&&this.addCurrentVertex(O,he,Pr,Co,j),dr==="fakeround")for(var co=Math.round(180*Et/Math.PI/20),Vo=1;Vo2*B){var Ii=O.add(ce.sub(O)._mult(B/ji)._round());this.updateDistance(O,Ii),this.addCurrentVertex(Ii,Re,0,0,j),O=Ii}}}}},fa.prototype.addCurrentVertex=function(o,a,p,h,_,v){v===void 0&&(v=!1);var P=a.y*h-a.x,S=-a.y-a.x*h;this.addHalfVertex(o,a.x+a.y*p,a.y-a.x*p,v,!1,p,_),this.addHalfVertex(o,P,S,v,!0,-h,_),this.distance>Qy/2&&this.totalDistance===0&&(this.distance=0,this.addCurrentVertex(o,a,p,h,_,v))},fa.prototype.addHalfVertex=function(o,a,p,h,_,v,P){var S=.5*(this.lineClips?this.scaledDistance*(Qy-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((o.x<<1)+(h?1:0),(o.y<<1)+(_?1:0),Math.round(63*a)+128,Math.round(63*p)+128,1+(v===0?0:v<0?-1:1)|(63&S)<<2,S>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);var C=P.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,C),P.primitiveLength++),_?this.e2=C:this.e1=C},fa.prototype.updateScaledDistance=function(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance},fa.prototype.updateDistance=function(o,a){this.distance+=o.dist(a),this.updateScaledDistance()},hr("LineBucket",fa,{omit:["layers","patternFeatures"]});var dm=new Ai({"line-cap":new Rr(q.layout_line["line-cap"]),"line-join":new gr(q.layout_line["line-join"]),"line-miter-limit":new Rr(q.layout_line["line-miter-limit"]),"line-round-limit":new Rr(q.layout_line["line-round-limit"]),"line-sort-key":new gr(q.layout_line["line-sort-key"])}),Jy={paint:new Ai({"line-opacity":new gr(q.paint_line["line-opacity"]),"line-color":new gr(q.paint_line["line-color"]),"line-translate":new Rr(q.paint_line["line-translate"]),"line-translate-anchor":new Rr(q.paint_line["line-translate-anchor"]),"line-width":new gr(q.paint_line["line-width"]),"line-gap-width":new gr(q.paint_line["line-gap-width"]),"line-offset":new gr(q.paint_line["line-offset"]),"line-blur":new gr(q.paint_line["line-blur"]),"line-dasharray":new Xn(q.paint_line["line-dasharray"]),"line-pattern":new Ta(q.paint_line["line-pattern"]),"line-gradient":new ls(q.paint_line["line-gradient"])}),layout:dm},nd=new(function(o){function a(){o.apply(this,arguments)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.possiblyEvaluate=function(p,h){return h=new po(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),o.prototype.possiblyEvaluate.call(this,p,h)},a.prototype.evaluate=function(p,h,_,v){return h=Q({},h,{zoom:Math.floor(h.zoom)}),o.prototype.evaluate.call(this,p,h,_,v)},a}(gr))(Jy.paint.properties["line-width"].specification);nd.useIntegerZoom=!0;var eh=function(o){function a(p){o.call(this,p,Jy),this.gradientVersion=0}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype._handleSpecialPaintPropertyUpdate=function(p){p==="line-gradient"&&(this.stepInterpolant=this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof ba,this.gradientVersion=(this.gradientVersion+1)%R)},a.prototype.gradientExpression=function(){return this._transitionablePaint._values["line-gradient"].value.expression},a.prototype.recalculate=function(p,h){o.prototype.recalculate.call(this,p,h),this.paint._values["line-floorwidth"]=nd.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,p)},a.prototype.createBucket=function(p){return new fa(p)},a.prototype.queryRadius=function(p){var h=p,_=ad(kn("line-width",this,h),kn("line-gap-width",this,h)),v=kn("line-offset",this,h);return _/2+Math.abs(v)+Bi(this.paint.get("line-translate"))},a.prototype.queryIntersectsFeature=function(p,h,_,v,P,S,C){var M=da(p,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),S.angle,C),O=C/2*ad(this.paint.get("line-width").evaluate(h,_),this.paint.get("line-gap-width").evaluate(h,_)),B=this.paint.get("line-offset").evaluate(h,_);return B&&(v=function(j,Y){for(var ce=[],he=new x(0,0),Re=0;Re=3){for(var be=0;be0?a+2*o:o}var ym=yn([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),hm=yn([{name:"a_projected_pos",components:3,type:"Float32"}],4),th=(yn([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),yn([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),rh=(yn([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),yn([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),N=yn([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function ie(o,a,p){return o.sections.forEach(function(h){h.text=function(_,v,P){var S=v.layout.get("text-transform").evaluate(P,{});return S==="uppercase"?_=_.toLocaleUpperCase():S==="lowercase"&&(_=_.toLocaleLowerCase()),Ba.applyArabicShaping&&(_=Ba.applyArabicShaping(_)),_}(h.text,a,p)}),o}yn([{name:"triangle",components:3,type:"Uint16"}]),yn([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),yn([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),yn([{type:"Float32",name:"offsetX"}]),yn([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var xe={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},et=function(o,a,p,h,_){var v,P,S=8*_-h-1,C=(1<>1,O=-7,B=_-1,j=-1,Y=o[a+B];for(B+=j,v=Y&(1<<-O)-1,Y>>=-O,O+=S;O>0;v=256*v+o[a+B],B+=j,O-=8);for(P=v&(1<<-O)-1,v>>=-O,O+=h;O>0;P=256*P+o[a+B],B+=j,O-=8);if(v===0)v=1-M;else{if(v===C)return P?NaN:1/0*(Y?-1:1);P+=Math.pow(2,h),v-=M}return(Y?-1:1)*P*Math.pow(2,v-h)},gt=function(o,a,p,h,_,v){var P,S,C,M=8*v-_-1,O=(1<>1,j=_===23?Math.pow(2,-24)-Math.pow(2,-77):0,Y=0,ce=1,he=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(S=isNaN(a)?1:0,P=O):(P=Math.floor(Math.log(a)/Math.LN2),a*(C=Math.pow(2,-P))<1&&(P--,C*=2),(a+=P+B>=1?j/C:j*Math.pow(2,1-B))*C>=2&&(P++,C/=2),P+B>=O?(S=0,P=O):P+B>=1?(S=(a*C-1)*Math.pow(2,_),P+=B):(S=a*Math.pow(2,B-1)*Math.pow(2,_),P=0));_>=8;o[p+Y]=255&S,Y+=ce,S/=256,_-=8);for(P=P<<_|S,M+=_;M>0;o[p+Y]=255&P,Y+=ce,P/=256,M-=8);o[p+Y-ce]|=128*he},tt=Ye;function Ye(o){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(o)?o:new Uint8Array(o||0),this.pos=0,this.type=0,this.length=this.buf.length}Ye.Varint=0,Ye.Fixed64=1,Ye.Bytes=2,Ye.Fixed32=5;var Ot=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Rt(o){return o.type===Ye.Bytes?o.readVarint()+o.pos:o.pos+1}function Xt(o,a,p){return p?4294967296*a+(o>>>0):4294967296*(a>>>0)+(o>>>0)}function Ut(o,a,p){var h=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));p.realloc(h);for(var _=p.pos-1;_>=o;_--)p.buf[_+h]=p.buf[_]}function Gt(o,a){for(var p=0;p>>8,o[p+2]=a>>>16,o[p+3]=a>>>24}function rr(o,a){return(o[a]|o[a+1]<<8|o[a+2]<<16)+(o[a+3]<<24)}function Tt(o,a,p){o===1&&p.readMessage(Qt,a)}function Qt(o,a,p){if(o===3){var h=p.readMessage(Or,{}),_=h.width,v=h.height,P=h.left,S=h.top,C=h.advance;a.push({id:h.id,bitmap:new Mp({width:_+6,height:v+6},h.bitmap),metrics:{width:_,height:v,left:P,top:S,advance:C}})}}function Or(o,a,p){o===1?a.id=p.readVarint():o===2?a.bitmap=p.readBytes():o===3?a.width=p.readVarint():o===4?a.height=p.readVarint():o===5?a.left=p.readSVarint():o===6?a.top=p.readSVarint():o===7&&(a.advance=p.readVarint())}function ro(o){for(var a=0,p=0,h=0,_=o;h<_.length;h+=1){var v=_[h];a+=v.w*v.h,p=Math.max(p,v.w)}o.sort(function(he,Re){return Re.h-he.h});for(var P=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),p),h:1/0}],S=0,C=0,M=0,O=o;M=0;j--){var Y=P[j];if(!(B.w>Y.w||B.h>Y.h)){if(B.x=Y.x,B.y=Y.y,C=Math.max(C,B.y+B.h),S=Math.max(S,B.x+B.w),B.w===Y.w&&B.h===Y.h){var ce=P.pop();j>3,v=this.pos;this.type=7&h,o(_,a,this),this.pos===v&&this.skip(h)}return a},readMessage:function(o,a){return this.readFields(o,a,this.readVarint()+this.pos)},readFixed32:function(){var o=ar(this.buf,this.pos);return this.pos+=4,o},readSFixed32:function(){var o=rr(this.buf,this.pos);return this.pos+=4,o},readFixed64:function(){var o=ar(this.buf,this.pos)+4294967296*ar(this.buf,this.pos+4);return this.pos+=8,o},readSFixed64:function(){var o=ar(this.buf,this.pos)+4294967296*rr(this.buf,this.pos+4);return this.pos+=8,o},readFloat:function(){var o=et(this.buf,this.pos,!0,23,4);return this.pos+=4,o},readDouble:function(){var o=et(this.buf,this.pos,!0,52,8);return this.pos+=8,o},readVarint:function(o){var a,p,h=this.buf;return a=127&(p=h[this.pos++]),p<128?a:(a|=(127&(p=h[this.pos++]))<<7,p<128?a:(a|=(127&(p=h[this.pos++]))<<14,p<128?a:(a|=(127&(p=h[this.pos++]))<<21,p<128?a:function(_,v,P){var S,C,M=P.buf;if(S=(112&(C=M[P.pos++]))>>4,C<128||(S|=(127&(C=M[P.pos++]))<<3,C<128)||(S|=(127&(C=M[P.pos++]))<<10,C<128)||(S|=(127&(C=M[P.pos++]))<<17,C<128)||(S|=(127&(C=M[P.pos++]))<<24,C<128)||(S|=(1&(C=M[P.pos++]))<<31,C<128))return Xt(_,S,v);throw new Error("Expected varint not more than 10 bytes")}(a|=(15&(p=h[this.pos]))<<28,o,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var o=this.readVarint();return o%2==1?(o+1)/-2:o/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var o=this.readVarint()+this.pos,a=this.pos;return this.pos=o,o-a>=12&&Ot?function(p,h,_){return Ot.decode(p.subarray(h,_))}(this.buf,a,o):function(p,h,_){for(var v="",P=h;P<_;){var S,C,M,O=p[P],B=null,j=O>239?4:O>223?3:O>191?2:1;if(P+j>_)break;j===1?O<128&&(B=O):j===2?(192&(S=p[P+1]))==128&&(B=(31&O)<<6|63&S)<=127&&(B=null):j===3?(C=p[P+2],(192&(S=p[P+1]))==128&&(192&C)==128&&((B=(15&O)<<12|(63&S)<<6|63&C)<=2047||B>=55296&&B<=57343)&&(B=null)):j===4&&(C=p[P+2],M=p[P+3],(192&(S=p[P+1]))==128&&(192&C)==128&&(192&M)==128&&((B=(15&O)<<18|(63&S)<<12|(63&C)<<6|63&M)<=65535||B>=1114112)&&(B=null)),B===null?(B=65533,j=1):B>65535&&(B-=65536,v+=String.fromCharCode(B>>>10&1023|55296),B=56320|1023&B),v+=String.fromCharCode(B),P+=j}return v}(this.buf,a,o)},readBytes:function(){var o=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,o);return this.pos=o,a},readPackedVarint:function(o,a){if(this.type!==Ye.Bytes)return o.push(this.readVarint(a));var p=Rt(this);for(o=o||[];this.pos127;);else if(a===Ye.Bytes)this.pos=this.readVarint()+this.pos;else if(a===Ye.Fixed32)this.pos+=4;else{if(a!==Ye.Fixed64)throw new Error("Unimplemented type: "+a);this.pos+=8}},writeTag:function(o,a){this.writeVarint(o<<3|a)},realloc:function(o){for(var a=this.length||16;a268435455||o<0?function(a,p){var h,_;if(a>=0?(h=a%4294967296|0,_=a/4294967296|0):(_=~(-a/4294967296),4294967295^(h=~(-a%4294967296))?h=h+1|0:(h=0,_=_+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");p.realloc(10),function(v,P,S){S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,v>>>=7,S.buf[S.pos++]=127&v|128,S.buf[S.pos]=127&(v>>>=7)}(h,0,p),function(v,P){var S=(7&v)<<4;P.buf[P.pos++]|=S|((v>>>=3)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v|((v>>>=7)?128:0),v&&(P.buf[P.pos++]=127&v)))))}(_,p)}(o,this):(this.realloc(4),this.buf[this.pos++]=127&o|(o>127?128:0),o<=127||(this.buf[this.pos++]=127&(o>>>=7)|(o>127?128:0),o<=127||(this.buf[this.pos++]=127&(o>>>=7)|(o>127?128:0),o<=127||(this.buf[this.pos++]=o>>>7&127))))},writeSVarint:function(o){this.writeVarint(o<0?2*-o-1:2*o)},writeBoolean:function(o){this.writeVarint(!!o)},writeString:function(o){o=String(o),this.realloc(4*o.length),this.pos++;var a=this.pos;this.pos=function(h,_,v){for(var P,S,C=0;C<_.length;C++){if((P=_.charCodeAt(C))>55295&&P<57344){if(!S){P>56319||C+1===_.length?(h[v++]=239,h[v++]=191,h[v++]=189):S=P;continue}if(P<56320){h[v++]=239,h[v++]=191,h[v++]=189,S=P;continue}P=S-55296<<10|P-56320|65536,S=null}else S&&(h[v++]=239,h[v++]=191,h[v++]=189,S=null);P<128?h[v++]=P:(P<2048?h[v++]=P>>6|192:(P<65536?h[v++]=P>>12|224:(h[v++]=P>>18|240,h[v++]=P>>12&63|128),h[v++]=P>>6&63|128),h[v++]=63&P|128)}return v}(this.buf,o,this.pos);var p=this.pos-a;p>=128&&Ut(a,p,this),this.pos=a-1,this.writeVarint(p),this.pos+=p},writeFloat:function(o){this.realloc(4),gt(this.buf,o,this.pos,!0,23,4),this.pos+=4},writeDouble:function(o){this.realloc(8),gt(this.buf,o,this.pos,!0,52,8),this.pos+=8},writeBytes:function(o){var a=o.length;this.writeVarint(a),this.realloc(a);for(var p=0;p=128&&Ut(p,h,this),this.pos=p-1,this.writeVarint(h),this.pos+=h},writeMessage:function(o,a,p){this.writeTag(o,Ye.Bytes),this.writeRawMessage(a,p)},writePackedVarint:function(o,a){a.length&&this.writeMessage(o,Gt,a)},writePackedSVarint:function(o,a){a.length&&this.writeMessage(o,$t,a)},writePackedBoolean:function(o,a){a.length&&this.writeMessage(o,je,a)},writePackedFloat:function(o,a){a.length&&this.writeMessage(o,Ct,a)},writePackedDouble:function(o,a){a.length&&this.writeMessage(o,jt,a)},writePackedFixed32:function(o,a){a.length&&this.writeMessage(o,pt,a)},writePackedSFixed32:function(o,a){a.length&&this.writeMessage(o,Lt,a)},writePackedFixed64:function(o,a){a.length&&this.writeMessage(o,tr,a)},writePackedSFixed64:function(o,a){a.length&&this.writeMessage(o,At,a)},writeBytesField:function(o,a){this.writeTag(o,Ye.Bytes),this.writeBytes(a)},writeFixed32Field:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeSFixed64(a)},writeVarintField:function(o,a){this.writeTag(o,Ye.Varint),this.writeVarint(a)},writeSVarintField:function(o,a){this.writeTag(o,Ye.Varint),this.writeSVarint(a)},writeStringField:function(o,a){this.writeTag(o,Ye.Bytes),this.writeString(a)},writeFloatField:function(o,a){this.writeTag(o,Ye.Fixed32),this.writeFloat(a)},writeDoubleField:function(o,a){this.writeTag(o,Ye.Fixed64),this.writeDouble(a)},writeBooleanField:function(o,a){this.writeVarintField(o,!!a)}};var Jt=function(o,a){var p=a.pixelRatio,h=a.version,_=a.stretchX,v=a.stretchY,P=a.content;this.paddedRect=o,this.pixelRatio=p,this.stretchX=_,this.stretchY=v,this.content=P,this.version=h},Dt={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};Dt.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},Dt.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},Dt.tlbr.get=function(){return this.tl.concat(this.br)},Dt.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Jt.prototype,Dt);var vt=function(o,a){var p={},h={};this.haveRenderCallbacks=[];var _=[];this.addImages(o,p,_),this.addImages(a,h,_);var v=ro(_),P=new ya({width:v.w||1,height:v.h||1});for(var S in o){var C=o[S],M=p[S].paddedRect;ya.copy(C.data,P,{x:0,y:0},{x:M.x+1,y:M.y+1},C.data)}for(var O in a){var B=a[O],j=h[O].paddedRect,Y=j.x+1,ce=j.y+1,he=B.data.width,Re=B.data.height;ya.copy(B.data,P,{x:0,y:0},{x:Y,y:ce},B.data),ya.copy(B.data,P,{x:0,y:Re-1},{x:Y,y:ce-1},{width:he,height:1}),ya.copy(B.data,P,{x:0,y:0},{x:Y,y:ce+Re},{width:he,height:1}),ya.copy(B.data,P,{x:he-1,y:0},{x:Y-1,y:ce},{width:1,height:Re}),ya.copy(B.data,P,{x:0,y:0},{x:Y+he,y:ce},{width:1,height:Re})}this.image=P,this.iconPositions=p,this.patternPositions=h};vt.prototype.addImages=function(o,a,p){for(var h in o){var _=o[h],v={x:0,y:0,w:_.data.width+2,h:_.data.height+2};p.push(v),a[h]=new Jt(v,_),_.hasRenderCallback&&this.haveRenderCallbacks.push(h)}},vt.prototype.patchUpdatedImages=function(o,a){for(var p in o.dispatchRenderCallbacks(this.haveRenderCallbacks),o.updatedImages)this.patchUpdatedImage(this.iconPositions[p],o.getImage(p),a),this.patchUpdatedImage(this.patternPositions[p],o.getImage(p),a)},vt.prototype.patchUpdatedImage=function(o,a,p){if(o&&a&&o.version!==a.version){o.version=a.version;var h=o.tl;p.update(a.data,void 0,{x:h[0],y:h[1]})}},hr("ImagePosition",Jt),hr("ImageAtlas",vt);var Lr={horizontal:1,vertical:2,horizontalOnly:3},xo=function(){this.scale=1,this.fontStack="",this.imageName=null};xo.forText=function(o,a){var p=new xo;return p.scale=o||1,p.fontStack=a,p},xo.forImage=function(o){var a=new xo;return a.imageName=o,a};var sr=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function ho(o,a,p,h,_,v,P,S,C,M,O,B,j,Y,ce,he){var Re,be=sr.fromFeature(o,_);B===Lr.vertical&&be.verticalizePunctuation();var Ve=Ba.processBidirectionalText,Ze=Ba.processStyledBidirectionalText;if(Ve&&be.sections.length===1){Re=[];for(var it=0,ut=Ve(be.toString(),Ji(be,M,v,a,h,Y,ce));it0&&Q1>En&&(En=Q1)}else{var sh=co[qo.fontStack],J1=sh&&sh[Ds];if(J1&&J1.rect)Vp=J1.rect,rn=J1.metrics;else{var ld=Co[qo.fontStack],uh=ld&&ld[Ds];if(!uh)continue;rn=uh.metrics}zp=24*(Wo-qo.scale)}o1?(Pr.verticalizable=!0,Ti.push({glyph:Ds,imageName:Bu,x:Hn,y:Ra+zp,vertical:o1,scale:qo.scale,fontStack:qo.fontStack,sectionIndex:kp,metrics:rn,rect:Vp}),Hn+=q1*qo.scale+Ii):(Ti.push({glyph:Ds,imageName:Bu,x:Hn,y:Ra+zp,vertical:o1,scale:qo.scale,fontStack:qo.fontStack,sectionIndex:kp,metrics:rn,rect:Vp}),Hn+=rn.advance*qo.scale+Ii)}Ti.length!==0&&(qn=Math.max(Hn-Ii,qn),mn(Ti,0,Ti.length-1,tn,En)),Hn=0;var ph=$o*Wo+En;ma.lineOffset=Math.max(En,za),Ra+=ph,Ca=Math.max(ph,Ca),++Kn}else Ra+=$o,++Kn}var Al,cd=Ra- -17,e0=mi(Ci),lc=e0.horizontalAlign,t0=e0.verticalAlign;(function(lh,ch,dd,yd,dh,hd,fd,md,yh){var r0,hh=(ch-dd)*dh;r0=hd!==fd?-md*yd- -17:(-yd*yh+.5)*fd;for(var o0=0,_d=lh;o0<_d.length;o0+=1)for(var i1=0,gd=_d[o0].positionedGlyphs;i1=0&&h>=o&&eo[this.text.charCodeAt(h)];h--)p--;this.text=this.text.substring(o,p),this.sectionIndex=this.sectionIndex.slice(o,p)},sr.prototype.substring=function(o,a){var p=new sr;return p.text=this.text.substring(o,a),p.sectionIndex=this.sectionIndex.slice(o,a),p.sections=this.sections,p},sr.prototype.toString=function(){return this.text},sr.prototype.getMaxScale=function(){var o=this;return this.sectionIndex.reduce(function(a,p){return Math.max(a,o.sections[p].scale)},0)},sr.prototype.addTextSection=function(o,a){this.text+=o.text,this.sections.push(xo.forText(o.scale,o.fontStack||a));for(var p=this.sections.length-1,h=0;h=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var eo={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Wr={};function jo(o,a,p,h,_,v){if(a.imageName){var P=h[a.imageName];return P?P.displaySize[0]*a.scale*24/v+_:0}var S=p[a.fontStack],C=S&&S[o];return C?C.metrics.advance*a.scale+_:0}function Qi(o,a,p,h){var _=Math.pow(o-a,2);return h?o=0,B=0,j=0;j-p/2;){if(--P<0)return!1;S-=o[P].dist(v),v=o[P]}S+=o[P].dist(o[P+1]),P++;for(var C=[],M=0;S

h;)M-=C.shift().angleDelta;if(M>_)return!1;P++,S+=O.dist(B)}return!0}function Zo(o){for(var a=0,p=0;pM){var ce=(M-C)/Y,he=Oi(B.x,j.x,ce),Re=Oi(B.y,j.y,ce),be=new ki(he,Re,j.angleTo(B),O);return be._round(),!P||Yn(o,be,S,P,a)?be:void 0}C+=Y}}function en(o,a,p,h,_,v,P,S,C){var M=Vr(h,v,P),O=To(h,_),B=O*P,j=o[0].x===0||o[0].x===C||o[0].y===0||o[0].y===C;return a-B=0&&Vo=0&&Ur=0&&pr+kt<=qt){var $o=new ki(Vo,Ur,Co,dr);$o._round(),be&&!Yn(ce,$o,Ze,be,Ve)||Br.push($o)}}Ir+=Pr}return ut||Br.length||it||(Br=Y(ce,Ir/2,Re,be,Ve,Ze,it,!0,Et)),Br}(o,j?a/2*S%a:(O/2+2*v)*P*S%a,a,M,p,B,j,!1,C)}function nu(o,a,p,h,_){for(var v=[],P=0;P=h&&B.x>=h||(O.x>=h?O=new x(h,O.y+(h-O.x)/(B.x-O.x)*(B.y-O.y))._round():B.x>=h&&(B=new x(h,O.y+(h-O.x)/(B.x-O.x)*(B.y-O.y))._round()),O.y>=_&&B.y>=_||(O.y>=_?O=new x(O.x+(_-O.y)/(B.y-O.y)*(B.x-O.x),_)._round():B.y>=_&&(B=new x(O.x+(_-O.y)/(B.y-O.y)*(B.x-O.x),_)._round()),C&&O.equals(C[C.length-1])||v.push(C=[O]),C.push(B)))))}return v}function fe(o,a,p,h){var _=[],v=o.image,P=v.pixelRatio,S=v.paddedRect.w-2,C=v.paddedRect.h-2,M=o.right-o.left,O=o.bottom-o.top,B=v.stretchX||[[0,S]],j=v.stretchY||[[0,C]],Y=function(Vo,Ur){return Vo+Ur[1]-Ur[0]},ce=B.reduce(Y,0),he=j.reduce(Y,0),Re=S-ce,be=C-he,Ve=0,Ze=ce,it=0,ut=he,Et=0,kt=Re,qt=0,Ir=be;if(v.content&&h){var pr=v.content;Ve=ot(B,0,pr[0]),it=ot(j,0,pr[1]),Ze=ot(B,pr[0],pr[2]),ut=ot(j,pr[1],pr[3]),Et=pr[0]-Ve,qt=pr[1]-it,kt=pr[2]-pr[0]-Ze,Ir=pr[3]-pr[1]-ut}var Br=function(Vo,Ur,$o,Ci){var Zi=ur(Vo.stretch-Ve,Ze,M,o.left),ji=fo(Vo.fixed-Et,kt,Vo.stretch,ce),Ii=ur(Ur.stretch-it,ut,O,o.top),Yi=fo(Ur.fixed-qt,Ir,Ur.stretch,he),Vn=ur($o.stretch-Ve,Ze,M,o.left),Hn=fo($o.fixed-Et,kt,$o.stretch,ce),Ra=ur(Ci.stretch-it,ut,O,o.top),qn=fo(Ci.fixed-qt,Ir,Ci.stretch,he),Ca=new x(Zi,Ii),tn=new x(Vn,Ii),Kn=new x(Vn,Ra),Do=new x(Zi,Ra),yi=new x(ji/P,Yi/P),ni=new x(Hn/P,qn/P),Wo=a*Math.PI/180;if(Wo){var za=Math.sin(Wo),ma=Math.cos(Wo),Ti=[ma,-za,za,ma];Ca._matMult(Ti),tn._matMult(Ti),Do._matMult(Ti),Kn._matMult(Ti)}var En=Vo.stretch+Vo.fixed,_a=Ur.stretch+Ur.fixed;return{tl:Ca,tr:tn,bl:Do,br:Kn,tex:{x:v.paddedRect.x+1+En,y:v.paddedRect.y+1+_a,w:$o.stretch+$o.fixed-En,h:Ci.stretch+Ci.fixed-_a},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:yi,pixelOffsetBR:ni,minFontScaleX:kt/P/M,minFontScaleY:Ir/P/O,isSDF:p}};if(h&&(v.stretchX||v.stretchY))for(var dr=Ke(B,Re,ce),Po=Ke(j,be,he),Zr=0;Zr0&&(Y=Math.max(10,Y),this.circleDiameter=Y)}else{var ce=v.top*P-S,he=v.bottom*P+S,Re=v.left*P-S,be=v.right*P+S,Ve=v.collisionPadding;if(Ve&&(Re-=Ve[0]*P,ce-=Ve[1]*P,be+=Ve[2]*P,he+=Ve[3]*P),M){var Ze=new x(Re,ce),it=new x(be,ce),ut=new x(Re,he),Et=new x(be,he),kt=M*Math.PI/180;Ze._rotate(kt),it._rotate(kt),ut._rotate(kt),Et._rotate(kt),Re=Math.min(Ze.x,it.x,ut.x,Et.x),be=Math.max(Ze.x,it.x,ut.x,Et.x),ce=Math.min(Ze.y,it.y,ut.y,Et.y),he=Math.max(Ze.y,it.y,ut.y,Et.y)}o.emplaceBack(a.x,a.y,Re,ce,be,he,p,h,_)}this.boxEndIndex=o.length},Z=function(o,a){if(o===void 0&&(o=[]),a===void 0&&(a=ue),this.data=o,this.length=this.data.length,this.compare=a,this.length>0)for(var p=(this.length>>1)-1;p>=0;p--)this._down(p)};function ue(o,a){return oa?1:0}function Pe(o,a,p){p===void 0&&(p=!1);for(var h=1/0,_=1/0,v=-1/0,P=-1/0,S=o[0],C=0;Cv)&&(v=M.x),(!C||M.y>P)&&(P=M.y)}var O=Math.min(v-h,P-_),B=O/2,j=new Z([],Qe);if(O===0)return new x(h,_);for(var Y=h;Yhe.d||!he.d)&&(he=be,p&&console.log("found best %d after %d probes",Math.round(1e4*be.d)/1e4,Re)),be.max-he.d<=a||(j.push(new qe(be.p.x-(B=be.h/2),be.p.y-B,B,o)),j.push(new qe(be.p.x+B,be.p.y-B,B,o)),j.push(new qe(be.p.x-B,be.p.y+B,B,o)),j.push(new qe(be.p.x+B,be.p.y+B,B,o)),Re+=4)}return p&&(console.log("num probes: "+Re),console.log("best distance: "+he.d)),he.p}function Qe(o,a){return a.max-o.max}function qe(o,a,p,h){this.p=new x(o,a),this.h=p,this.d=function(_,v){for(var P=!1,S=1/0,C=0;C_.y!=ce.y>_.y&&_.x<(ce.x-Y.x)*(_.y-Y.y)/(ce.y-Y.y)+Y.x&&(P=!P),S=Math.min(S,Nu(_,Y,ce))}return(P?1:-1)*Math.sqrt(S)}(this.p,h),this.max=this.d+this.h*Math.SQRT2}Z.prototype.push=function(o){this.data.push(o),this.length++,this._up(this.length-1)},Z.prototype.pop=function(){if(this.length!==0){var o=this.data[0],a=this.data.pop();return this.length--,this.length>0&&(this.data[0]=a,this._down(0)),o}},Z.prototype.peek=function(){return this.data[0]},Z.prototype._up=function(o){for(var a=this.data,p=this.compare,h=a[o];o>0;){var _=o-1>>1,v=a[_];if(p(h,v)>=0)break;a[o]=v,o=_}a[o]=h},Z.prototype._down=function(o){for(var a=this.data,p=this.compare,h=this.length>>1,_=a[o];o=0)break;a[o]=P,o=v}a[o]=_};var Se=Number.POSITIVE_INFINITY;function Ne(o,a){return a[1]!==Se?function(p,h,_){var v=0,P=0;switch(h=Math.abs(h),_=Math.abs(_),p){case"top-right":case"top-left":case"top":P=_-7;break;case"bottom-right":case"bottom-left":case"bottom":P=7-_}switch(p){case"top-right":case"bottom-right":case"right":v=-h;break;case"top-left":case"bottom-left":case"left":v=h}return[v,P]}(o,a[0],a[1]):function(p,h){var _=0,v=0;h<0&&(h=0);var P=h/Math.sqrt(2);switch(p){case"top-right":case"top-left":v=P-7;break;case"bottom-right":case"bottom-left":v=7-P;break;case"bottom":v=7-h;break;case"top":v=h-7}switch(p){case"top-right":case"bottom-right":_=-P;break;case"top-left":case"bottom-left":_=P;break;case"left":_=h;break;case"right":_=-h}return[_,v]}(o,a[0])}function Ue(o){switch(o){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function me(o,a,p,h,_,v,P,S,C,M,O,B,j,Y,ce){var he=function(it,ut,Et,kt,qt,Ir,pr,Br){for(var dr=kt.layout.get("text-rotate").evaluate(Ir,{})*Math.PI/180,Po=[],Zr=0,Pr=ut.positionedLines;Zr32640&&ze(o.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):Re.kind==="composite"&&((be=[128*Y.compositeTextSizes[0].evaluate(P,{},ce),128*Y.compositeTextSizes[1].evaluate(P,{},ce)])[0]>32640||be[1]>32640)&&ze(o.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),o.addSymbols(o.text,he,be,S,v,P,M,a,C.lineStartIndex,C.lineLength,j,ce);for(var Ve=0,Ze=O;Ve=0;P--)if(h.dist(v[P])0)&&(v.value.kind!=="constant"||v.value.value.length>0),M=S.value.kind!=="constant"||!!S.value.value||Object.keys(S.parameters).length>0,O=_.get("symbol-sort-key");if(this.features=[],C||M){for(var B=a.iconDependencies,j=a.glyphDependencies,Y=a.availableImages,ce=new po(this.zoom),he=0,Re=o;he=0;for(var Co=0,co=qt.sections;Co=0;S--)v[S]={x:a[S].x,y:a[S].y,tileUnitDistanceFromAnchor:_},S>0&&(_+=a[S-1].dist(a[S]));for(var C=0;C0},fr.prototype.hasIconData=function(){return this.icon.segments.get().length>0},fr.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},fr.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},fr.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},fr.prototype.addIndicesForPlacedSymbol=function(o,a){for(var p=o.placedSymbolArray.get(a),h=p.vertexStartIndex+4*p.numGlyphs,_=p.vertexStartIndex;_1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(o),this.sortedAngle=o,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var p=0,h=this.symbolInstanceIndexes;p=0&&S.indexOf(v)===P&&a.addIndicesForPlacedSymbol(a.text,v)}),_.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,_.verticalPlacedTextSymbolIndex),_.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,_.placedIconSymbolIndex),_.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,_.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},hr("SymbolBucket",fr,{omit:["layers","collisionBoxArray","features","compareText"]}),fr.MAX_GLYPHS=65535,fr.addDynamicAttributes=St;var vr=new Ai({"symbol-placement":new Rr(q.layout_symbol["symbol-placement"]),"symbol-spacing":new Rr(q.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Rr(q.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new gr(q.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Rr(q.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Rr(q.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Rr(q.layout_symbol["icon-ignore-placement"]),"icon-optional":new Rr(q.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Rr(q.layout_symbol["icon-rotation-alignment"]),"icon-size":new gr(q.layout_symbol["icon-size"]),"icon-text-fit":new Rr(q.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Rr(q.layout_symbol["icon-text-fit-padding"]),"icon-image":new gr(q.layout_symbol["icon-image"]),"icon-rotate":new gr(q.layout_symbol["icon-rotate"]),"icon-padding":new Rr(q.layout_symbol["icon-padding"]),"icon-keep-upright":new Rr(q.layout_symbol["icon-keep-upright"]),"icon-offset":new gr(q.layout_symbol["icon-offset"]),"icon-anchor":new gr(q.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Rr(q.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Rr(q.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Rr(q.layout_symbol["text-rotation-alignment"]),"text-field":new gr(q.layout_symbol["text-field"]),"text-font":new gr(q.layout_symbol["text-font"]),"text-size":new gr(q.layout_symbol["text-size"]),"text-max-width":new gr(q.layout_symbol["text-max-width"]),"text-line-height":new Rr(q.layout_symbol["text-line-height"]),"text-letter-spacing":new gr(q.layout_symbol["text-letter-spacing"]),"text-justify":new gr(q.layout_symbol["text-justify"]),"text-radial-offset":new gr(q.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Rr(q.layout_symbol["text-variable-anchor"]),"text-anchor":new gr(q.layout_symbol["text-anchor"]),"text-max-angle":new Rr(q.layout_symbol["text-max-angle"]),"text-writing-mode":new Rr(q.layout_symbol["text-writing-mode"]),"text-rotate":new gr(q.layout_symbol["text-rotate"]),"text-padding":new Rr(q.layout_symbol["text-padding"]),"text-keep-upright":new Rr(q.layout_symbol["text-keep-upright"]),"text-transform":new gr(q.layout_symbol["text-transform"]),"text-offset":new gr(q.layout_symbol["text-offset"]),"text-allow-overlap":new Rr(q.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Rr(q.layout_symbol["text-ignore-placement"]),"text-optional":new Rr(q.layout_symbol["text-optional"])}),Hr={paint:new Ai({"icon-opacity":new gr(q.paint_symbol["icon-opacity"]),"icon-color":new gr(q.paint_symbol["icon-color"]),"icon-halo-color":new gr(q.paint_symbol["icon-halo-color"]),"icon-halo-width":new gr(q.paint_symbol["icon-halo-width"]),"icon-halo-blur":new gr(q.paint_symbol["icon-halo-blur"]),"icon-translate":new Rr(q.paint_symbol["icon-translate"]),"icon-translate-anchor":new Rr(q.paint_symbol["icon-translate-anchor"]),"text-opacity":new gr(q.paint_symbol["text-opacity"]),"text-color":new gr(q.paint_symbol["text-color"],{runtimeType:Zt,getOverride:function(o){return o.textColor},hasOverride:function(o){return!!o.textColor}}),"text-halo-color":new gr(q.paint_symbol["text-halo-color"]),"text-halo-width":new gr(q.paint_symbol["text-halo-width"]),"text-halo-blur":new gr(q.paint_symbol["text-halo-blur"]),"text-translate":new Rr(q.paint_symbol["text-translate"]),"text-translate-anchor":new Rr(q.paint_symbol["text-translate-anchor"])}),layout:vr},Qr=function(o){this.type=o.property.overrides?o.property.overrides.runtimeType:yr,this.defaultValue=o};Qr.prototype.evaluate=function(o){if(o.formattedSection){var a=this.defaultValue.property.overrides;if(a&&a.hasOverride(o.formattedSection))return a.getOverride(o.formattedSection)}return o.feature&&o.featureState?this.defaultValue.evaluate(o.feature,o.featureState):this.defaultValue.property.specification.default},Qr.prototype.eachChild=function(o){this.defaultValue.isConstant()||o(this.defaultValue.value._styleExpression.expression)},Qr.prototype.outputDefined=function(){return!1},Qr.prototype.serialize=function(){return null},hr("FormatSectionOverride",Qr,{omit:["defaultValue"]});var Yo=function(o){function a(p){o.call(this,p,Hr)}return o&&(a.__proto__=o),(a.prototype=Object.create(o&&o.prototype)).constructor=a,a.prototype.recalculate=function(p,h){if(o.prototype.recalculate.call(this,p,h),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){var _=this.layout.get("text-writing-mode");if(_){for(var v=[],P=0,S=_;P",targetMapId:h,sourceMapId:v.mapId})}}},Y1.prototype.receive=function(o){var a=o.data,p=a.id;if(p&&(!a.targetMapId||this.mapId===a.targetMapId))if(a.type===""){delete this.tasks[p];var h=this.cancelCallbacks[p];delete this.cancelCallbacks[p],h&&h()}else ir()||a.mustQueue?(this.tasks[p]=a,this.taskQueue.push(p),this.invoker.trigger()):this.processTask(p,a)},Y1.prototype.process=function(){if(this.taskQueue.length){var o=this.taskQueue.shift(),a=this.tasks[o];delete this.tasks[o],this.taskQueue.length&&this.invoker.trigger(),a&&this.processTask(o,a)}},Y1.prototype.processTask=function(o,a){var p=this;if(a.type===""){var h=this.callbacks[o];delete this.callbacks[o],h&&(a.error?h(oi(a.error)):h(null,oi(a.data)))}else{var _=!1,v=mr(this.globalScope)?void 0:[],P=a.hasCallback?function(O,B){_=!0,delete p.cancelCallbacks[o],p.target.postMessage({id:o,type:"",sourceMapId:p.mapId,error:O?ea(O):null,data:ea(B,v)},v)}:function(O){_=!0},S=null,C=oi(a.data);if(this.parent[a.type])S=this.parent[a.type](a.sourceMapId,C,P);else if(this.parent.getWorkerSource){var M=a.type.split(".");S=this.parent.getWorkerSource(a.sourceMapId,M[0],C.source)[M[1]](C,P)}else P(new Error("Could not find function "+a.type));!_&&S&&S.cancel&&(this.cancelCallbacks[o]=S.cancel)}},Y1.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Mn=function(o,a){o&&(a?this.setSouthWest(o).setNorthEast(a):o.length===4?this.setSouthWest([o[0],o[1]]).setNorthEast([o[2],o[3]]):this.setSouthWest(o[0]).setNorthEast(o[1]))};Mn.prototype.setNorthEast=function(o){return this._ne=o instanceof Ri?new Ri(o.lng,o.lat):Ri.convert(o),this},Mn.prototype.setSouthWest=function(o){return this._sw=o instanceof Ri?new Ri(o.lng,o.lat):Ri.convert(o),this},Mn.prototype.extend=function(o){var a,p,h=this._sw,_=this._ne;if(o instanceof Ri)a=o,p=o;else{if(!(o instanceof Mn))return Array.isArray(o)?o.length===4||o.every(Array.isArray)?this.extend(Mn.convert(o)):this.extend(Ri.convert(o)):this;if(p=o._ne,!(a=o._sw)||!p)return this}return h||_?(h.lng=Math.min(a.lng,h.lng),h.lat=Math.min(a.lat,h.lat),_.lng=Math.max(p.lng,_.lng),_.lat=Math.max(p.lat,_.lat)):(this._sw=new Ri(a.lng,a.lat),this._ne=new Ri(p.lng,p.lat)),this},Mn.prototype.getCenter=function(){return new Ri((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Mn.prototype.getSouthWest=function(){return this._sw},Mn.prototype.getNorthEast=function(){return this._ne},Mn.prototype.getNorthWest=function(){return new Ri(this.getWest(),this.getNorth())},Mn.prototype.getSouthEast=function(){return new Ri(this.getEast(),this.getSouth())},Mn.prototype.getWest=function(){return this._sw.lng},Mn.prototype.getSouth=function(){return this._sw.lat},Mn.prototype.getEast=function(){return this._ne.lng},Mn.prototype.getNorth=function(){return this._ne.lat},Mn.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Mn.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Mn.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Mn.prototype.contains=function(o){var a=Ri.convert(o),p=a.lng,h=a.lat,_=this._sw.lng<=p&&p<=this._ne.lng;return this._sw.lng>this._ne.lng&&(_=this._sw.lng>=p&&p>=this._ne.lng),this._sw.lat<=h&&h<=this._ne.lat&&_},Mn.convert=function(o){return!o||o instanceof Mn?o:new Mn(o)};var Ri=function(o,a){if(isNaN(o)||isNaN(a))throw new Error("Invalid LngLat object: ("+o+", "+a+")");if(this.lng=+o,this.lat=+a,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Ri.prototype.wrap=function(){return new Ri(J(this.lng,-180,180),this.lat)},Ri.prototype.toArray=function(){return[this.lng,this.lat]},Ri.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Ri.prototype.distanceTo=function(o){var a=Math.PI/180,p=this.lat*a,h=o.lat*a,_=Math.sin(p)*Math.sin(h)+Math.cos(p)*Math.cos(h)*Math.cos((o.lng-this.lng)*a);return 63710088e-1*Math.acos(Math.min(_,1))},Ri.prototype.toBounds=function(o){o===void 0&&(o=0);var a=360*o/40075017,p=a/Math.cos(Math.PI/180*this.lat);return new Mn(new Ri(this.lng-p,this.lat-a),new Ri(this.lng+p,this.lat+a))},Ri.convert=function(o){if(o instanceof Ri)return o;if(Array.isArray(o)&&(o.length===2||o.length===3))return new Ri(Number(o[0]),Number(o[1]));if(!Array.isArray(o)&&typeof o=="object"&&o!==null)return new Ri(Number("lng"in o?o.lng:o.lon),Number(o.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var q6=2*Math.PI*63710088e-1;function K6(o){return q6*Math.cos(o*Math.PI/180)}function Q6(o){return(180+o)/360}function J6(o){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+o*Math.PI/360)))/360}function e3(o,a){return o/K6(a)}function mm(o){return 360/Math.PI*Math.atan(Math.exp((180-360*o)*Math.PI/180))-90}var t1=function(o,a,p){p===void 0&&(p=0),this.x=+o,this.y=+a,this.z=+p};t1.fromLngLat=function(o,a){a===void 0&&(a=0);var p=Ri.convert(o);return new t1(Q6(p.lng),J6(p.lat),e3(a,p.lat))},t1.prototype.toLngLat=function(){return new Ri(360*this.x-180,mm(this.y))},t1.prototype.toAltitude=function(){return this.z*K6(mm(this.y))},t1.prototype.meterInMercatorCoordinateUnits=function(){return 1/q6*(o=mm(this.y),1/Math.cos(o*Math.PI/180));var o};var r1=function(o,a,p){this.z=o,this.x=a,this.y=p,this.key=pd(0,o,o,a,p)};r1.prototype.equals=function(o){return this.z===o.z&&this.x===o.x&&this.y===o.y},r1.prototype.url=function(o,a){var p,h,_,v,P,S=(h=this.y,_=this.z,v=$6(256*(p=this.x),256*(h=Math.pow(2,_)-h-1),_),P=$6(256*(p+1),256*(h+1),_),v[0]+","+v[1]+","+P[0]+","+P[1]),C=function(M,O,B){for(var j,Y="",ce=M;ce>0;ce--)Y+=(O&(j=1<this.canonical.z?new Nn(o,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Nn(o,this.wrap,o,this.canonical.x>>a,this.canonical.y>>a)},Nn.prototype.calculateScaledKey=function(o,a){var p=this.canonical.z-o;return o>this.canonical.z?pd(this.wrap*+a,o,this.canonical.z,this.canonical.x,this.canonical.y):pd(this.wrap*+a,o,o,this.canonical.x>>p,this.canonical.y>>p)},Nn.prototype.isChildOf=function(o){if(o.wrap!==this.wrap)return!1;var a=this.canonical.z-o.canonical.z;return o.overscaledZ===0||o.overscaledZ>a&&o.canonical.y===this.canonical.y>>a},Nn.prototype.children=function(o){if(this.overscaledZ>=o)return[new Nn(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var a=this.canonical.z+1,p=2*this.canonical.x,h=2*this.canonical.y;return[new Nn(a,this.wrap,a,p,h),new Nn(a,this.wrap,a,p+1,h),new Nn(a,this.wrap,a,p,h+1),new Nn(a,this.wrap,a,p+1,h+1)]},Nn.prototype.isLessThan=function(o){return this.wrapo.wrap)&&(this.overscaledZo.overscaledZ)&&(this.canonical.xo.canonical.x)&&this.canonical.y=this.dim+1||a<-1||a>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(a+1)*this.stride+(o+1)},xl.prototype._unpackMapbox=function(o,a,p){return(256*o*256+256*a+p)/10-1e4},xl.prototype._unpackTerrarium=function(o,a,p){return 256*o+a+p/256-32768},xl.prototype.getPixels=function(){return new ya({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},xl.prototype.backfillBorder=function(o,a,p){if(this.dim!==o.dim)throw new Error("dem dimension mismatch");var h=a*this.dim,_=a*this.dim+this.dim,v=p*this.dim,P=p*this.dim+this.dim;switch(a){case-1:h=_-1;break;case 1:_=h+1}switch(p){case-1:v=P-1;break;case 1:P=v+1}for(var S=-a*this.dim,C=-p*this.dim,M=v;M=0&&O[3]>=0&&S.insert(P,O[0],O[1],O[2],O[3])}},Pl.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Up.VectorTile(new tt(this.rawTileData)).layers,this.sourceLayerCoder=new nh(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Pl.prototype.query=function(o,a,p,h){var _=this;this.loadVTLayers();for(var v=o.params||{},P=8192/o.tileSize/o.scale,S=Tu(v.filter),C=o.queryGeometry,M=o.queryPadding*P,O=o3(C),B=this.grid.query(O.minX-M,O.minY-M,O.maxX+M,O.maxY+M),j=o3(o.cameraQueryGeometry),Y=this.grid3D.query(j.minX-M,j.minY-M,j.maxX+M,j.maxY+M,function(it,ut,Et,kt){return function(qt,Ir,pr,Br,dr){for(var Po=0,Zr=qt;Po=Pr.x&&dr>=Pr.y)return!0}var Co=[new x(Ir,pr),new x(Ir,dr),new x(Br,dr),new x(Br,pr)];if(qt.length>2){for(var co=0,Vo=Co;co=0)return!0;return!1}(v,B)){var j=this.sourceLayerCoder.decode(p),Y=this.vtLayers[j].feature(h);if(_.needGeometry){var ce=wi(Y,!0);if(!_.filter(new po(this.tileID.overscaledZ),ce,this.tileID.canonical))return}else if(!_.filter(new po(this.tileID.overscaledZ),Y))return;for(var he=this.getId(Y,j),Re=0;Reh)_=!1;else if(a)if(this.expirationTimevs&&(o.getActor().send("enforceCacheSizeLimit",Tn),Hs=0)},n.clamp=V,n.clearTileCache=function(o){var a=F.caches.delete("mapbox-tiles");o&&a.catch(o).then(function(){return o()})},n.clipLine=nu,n.clone=function(o){var a=new Io(16);return a[0]=o[0],a[1]=o[1],a[2]=o[2],a[3]=o[3],a[4]=o[4],a[5]=o[5],a[6]=o[6],a[7]=o[7],a[8]=o[8],a[9]=o[9],a[10]=o[10],a[11]=o[11],a[12]=o[12],a[13]=o[13],a[14]=o[14],a[15]=o[15],a},n.clone$1=Ae,n.clone$2=function(o){var a=new Io(3);return a[0]=o[0],a[1]=o[1],a[2]=o[2],a},n.collisionCircleLayout=N,n.config=$e,n.create=function(){var o=new Io(16);return Io!=Float32Array&&(o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[11]=0,o[12]=0,o[13]=0,o[14]=0),o[0]=1,o[5]=1,o[10]=1,o[15]=1,o},n.create$1=function(){var o=new Io(9);return Io!=Float32Array&&(o[1]=0,o[2]=0,o[3]=0,o[5]=0,o[6]=0,o[7]=0),o[0]=1,o[4]=1,o[8]=1,o},n.create$2=function(){var o=new Io(4);return Io!=Float32Array&&(o[1]=0,o[2]=0),o[0]=1,o[3]=1,o},n.createCommonjsModule=y,n.createExpression=Pp,n.createLayout=yn,n.createStyleLayer=function(o){return o.type==="custom"?new oh(o):new pp[o.type](o)},n.cross=function(o,a,p){var h=a[0],_=a[1],v=a[2],P=p[0],S=p[1],C=p[2];return o[0]=_*C-v*S,o[1]=v*P-h*C,o[2]=h*S-_*P,o},n.deepEqual=function o(a,p){if(Array.isArray(a)){if(!Array.isArray(p)||a.length!==p.length)return!1;for(var h=0;h0&&(v=1/Math.sqrt(v)),o[0]=a[0]*v,o[1]=a[1]*v,o[2]=a[2]*v,o},n.number=Oi,n.offscreenCanvasSupported=Zu,n.ortho=function(o,a,p,h,_,v,P){var S=1/(a-p),C=1/(h-_),M=1/(v-P);return o[0]=-2*S,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=-2*C,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=2*M,o[11]=0,o[12]=(a+p)*S,o[13]=(_+h)*C,o[14]=(P+v)*M,o[15]=1,o},n.parseGlyphPBF=function(o){return new tt(o).readFields(Tt,[])},n.pbf=tt,n.performSymbolLayout=function(o,a,p,h,_,v,P){o.createArrays(),o.tilePixelRatio=8192/(512*o.overscaling),o.compareText={},o.iconsNeedLinear=!1;var S=o.layers[0].layout,C=o.layers[0]._unevaluatedLayout._values,M={};if(o.textSizeData.kind==="composite"){var O=o.textSizeData,B=O.maxZoom;M.compositeTextSizes=[C["text-size"].possiblyEvaluate(new po(O.minZoom),P),C["text-size"].possiblyEvaluate(new po(B),P)]}if(o.iconSizeData.kind==="composite"){var j=o.iconSizeData,Y=j.maxZoom;M.compositeIconSizes=[C["icon-size"].possiblyEvaluate(new po(j.minZoom),P),C["icon-size"].possiblyEvaluate(new po(Y),P)]}M.layoutTextSize=C["text-size"].possiblyEvaluate(new po(o.zoom+1),P),M.layoutIconSize=C["icon-size"].possiblyEvaluate(new po(o.zoom+1),P),M.textMaxSize=C["text-size"].possiblyEvaluate(new po(18));for(var ce=24*S.get("text-line-height"),he=S.get("text-rotation-alignment")==="map"&&S.get("symbol-placement")!=="point",Re=S.get("text-keep-upright"),be=S.get("text-size"),Ve=function(){var ut=it[Ze],Et=S.get("text-font").evaluate(ut,{},P).join(","),kt=be.evaluate(ut,{},P),qt=M.layoutTextSize.evaluate(ut,{},P),Ir=M.layoutIconSize.evaluate(ut,{},P),pr={horizontal:{},vertical:void 0},Br=ut.text,dr=[0,0];if(Br){var Po=Br.toString(),Zr=24*S.get("text-letter-spacing").evaluate(ut,{},P),Pr=function(Do){for(var yi=0,ni=Do;yi=8192||vd.y<0||vd.y>=8192||function(on,lp,j7,cc,xm,s3,fh,Hp,mh,Ed,_h,gh,Pm,u3,xd,p3,l3,c3,d3,y3,Os,vh,h3,Gp,W7){var f3,n1,n0,a0,s0,u0=on.addToLineVertexArray(lp,j7),m3=0,_3=0,g3=0,v3=0,bm=-1,Am=-1,Fl={},E3=le(""),Fm=0,Tm=0;if(Hp._unevaluatedLayout.getValue("text-radial-offset")===void 0?(Fm=(f3=Hp.layout.get("text-offset").evaluate(Os,{},Gp).map(function(bd){return 24*bd}))[0],Tm=f3[1]):(Fm=24*Hp.layout.get("text-radial-offset").evaluate(Os,{},Gp),Tm=Se),on.allowVerticalPlacement&&cc.vertical){var x3=Hp.layout.get("text-rotate").evaluate(Os,{},Gp)+90;a0=new ii(mh,lp,Ed,_h,gh,cc.vertical,Pm,u3,xd,x3),fh&&(s0=new ii(mh,lp,Ed,_h,gh,fh,l3,c3,xd,x3))}if(xm){var Sm=Hp.layout.get("icon-rotate").evaluate(Os,{}),P3=Hp.layout.get("icon-text-fit")!=="none",b3=fe(xm,Sm,h3,P3),wm=fh?fe(fh,Sm,h3,P3):void 0;n0=new ii(mh,lp,Ed,_h,gh,xm,l3,c3,!1,Sm),m3=4*b3.length;var A3=on.iconSizeData,Pd=null;A3.kind==="source"?(Pd=[128*Hp.layout.get("icon-size").evaluate(Os,{})])[0]>32640&&ze(on.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):A3.kind==="composite"&&((Pd=[128*vh.compositeIconSizes[0].evaluate(Os,{},Gp),128*vh.compositeIconSizes[1].evaluate(Os,{},Gp)])[0]>32640||Pd[1]>32640)&&ze(on.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),on.addSymbols(on.icon,b3,Pd,y3,d3,Os,!1,lp,u0.lineStartIndex,u0.lineLength,-1,Gp),bm=on.icon.placedSymbolArray.length-1,wm&&(_3=4*wm.length,on.addSymbols(on.icon,wm,Pd,y3,d3,Os,Lr.vertical,lp,u0.lineStartIndex,u0.lineLength,-1,Gp),Am=on.icon.placedSymbolArray.length-1)}for(var F3 in cc.horizontal){var Eh=cc.horizontal[F3];if(!n1){E3=le(Eh.text);var X7=Hp.layout.get("text-rotate").evaluate(Os,{},Gp);n1=new ii(mh,lp,Ed,_h,gh,Eh,Pm,u3,xd,X7)}var T3=Eh.positionedLines.length===1;if(g3+=me(on,lp,Eh,s3,Hp,xd,Os,p3,u0,cc.vertical?Lr.horizontal:Lr.horizontalOnly,T3?Object.keys(cc.horizontal):[F3],Fl,bm,vh,Gp),T3)break}cc.vertical&&(v3+=me(on,lp,cc.vertical,s3,Hp,xd,Os,p3,u0,Lr.vertical,["vertical"],Fl,Am,vh,Gp));var Z7=n1?n1.boxStartIndex:on.collisionBoxArray.length,Y7=n1?n1.boxEndIndex:on.collisionBoxArray.length,$7=a0?a0.boxStartIndex:on.collisionBoxArray.length,q7=a0?a0.boxEndIndex:on.collisionBoxArray.length,K7=n0?n0.boxStartIndex:on.collisionBoxArray.length,Q7=n0?n0.boxEndIndex:on.collisionBoxArray.length,J7=s0?s0.boxStartIndex:on.collisionBoxArray.length,ev=s0?s0.boxEndIndex:on.collisionBoxArray.length,jp=-1,xh=function(bd,w3){return bd&&bd.circleDiameter?Math.max(bd.circleDiameter,w3):w3};jp=xh(n1,jp),jp=xh(a0,jp),jp=xh(n0,jp);var S3=(jp=xh(s0,jp))>-1?1:0;S3&&(jp*=W7/24),on.glyphOffsetArray.length>=fr.MAX_GLYPHS&&ze("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Os.sortKey!==void 0&&on.addToSortKeyRanges(on.symbolInstances.length,Os.sortKey),on.symbolInstances.emplaceBack(lp.x,lp.y,Fl.right>=0?Fl.right:-1,Fl.center>=0?Fl.center:-1,Fl.left>=0?Fl.left:-1,Fl.vertical||-1,bm,Am,E3,Z7,Y7,$7,q7,K7,Q7,J7,ev,Ed,g3,v3,m3,_3,S3,0,Pm,Fm,Tm,jp)}(Do,vd,G7,ni,Wo,za,zp,Do.layers[0],Do.collisionBoxArray,yi.index,yi.sourceLayerIndex,Do.index,o1,sh,uh,_a,bl,J1,ph,Vp,yi,ma,qo,kp,Ti)};if(Al==="line")for(var t0=0,lh=nu(yi.geometry,0,0,8192,8192);t01){var yh=zo(md,ld,ni.vertical||Bu,Wo,24,K1);yh&&lc(md,yh)}}else if(yi.type==="Polygon")for(var r0=0,hh=W1(yi.geometry,0);r0=Mo.maxzoom||Mo.visibility!=="none"&&(F(vo,this.zoom,W),(lt[Mo.id]=Mo.createBucket({index:q.bucketLayerIDs.length,layers:vo,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:or,sourceID:this.source})).populate(Wt,wt,this.tileID.canonical),q.bucketLayerIDs.push(vo.map(function(ko){return ko.id})))}}}var ao=n.mapObject(wt.glyphDependencies,function(ko){return Object.keys(ko).map(Number)});Object.keys(ao).length?oe.send("getGlyphs",{uid:this.uid,stacks:ao},function(ko,so){ge||(ge=ko,We=so,ei.call(Ie))}):We={};var Vi=Object.keys(wt.iconDependencies);Vi.length?oe.send("getImages",{icons:Vi,source:this.source,tileID:this.tileID,type:"icons"},function(ko,so){ge||(ge=ko,ht=so,ei.call(Ie))}):ht={};var wo=Object.keys(wt.patternDependencies);function ei(){if(ge)return ye(ge);if(We&&ht&&Nt){var ko=new x(We),so=new n.ImageAtlas(ht,Nt);for(var Eo in lt){var Ln=lt[Eo];Ln instanceof n.SymbolBucket?(F(Ln.layers,this.zoom,W),n.performSymbolLayout(Ln,We,ko.positions,ht,so.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):Ln.hasPattern&&(Ln instanceof n.LineBucket||Ln instanceof n.FillBucket||Ln instanceof n.FillExtrusionBucket)&&(F(Ln.layers,this.zoom,W),Ln.addFeatures(wt,this.tileID.canonical,so.patternPositions))}this.status="done",ye(null,{buckets:n.values(lt).filter(function(yu){return!yu.isEmpty()}),featureIndex:q,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ko.image,imageAtlas:so,glyphMap:this.returnDependencies?We:null,iconMap:this.returnDependencies?ht:null,glyphPositions:this.returnDependencies?ko.positions:null})}}wo.length?oe.send("getImages",{icons:wo,source:this.source,tileID:this.tileID,type:"patterns"},function(ko,so){ge||(ge=ko,Nt=so,ei.call(Ie))}):Nt={},ei.call(this)};var I=function(k,G,W,oe){this.actor=k,this.layerIndex=G,this.availableImages=W,this.loadVectorData=oe||R,this.loading={},this.loaded={}};I.prototype.loadTile=function(k,G){var W=this,oe=k.uid;this.loading||(this.loading={});var ye=!!(k&&k.request&&k.request.collectResourceTiming)&&new n.RequestPerformance(k.request),Ie=this.loading[oe]=new b(k);Ie.abort=this.loadVectorData(k,function(Le,q){if(delete W.loading[oe],Le||!q)return Ie.status="done",W.loaded[oe]=Ie,G(Le);var ge=q.rawData,We={};q.expires&&(We.expires=q.expires),q.cacheControl&&(We.cacheControl=q.cacheControl);var ht={};if(ye){var Nt=ye.finish();Nt&&(ht.resourceTiming=JSON.parse(JSON.stringify(Nt)))}Ie.vectorTile=q.vectorTile,Ie.parse(q.vectorTile,W.layerIndex,W.availableImages,W.actor,function(lt,wt){if(lt||!wt)return G(lt);G(null,n.extend({rawTileData:ge.slice(0)},wt,We,ht))}),W.loaded=W.loaded||{},W.loaded[oe]=Ie})},I.prototype.reloadTile=function(k,G){var W=this,oe=this.loaded,ye=k.uid,Ie=this;if(oe&&oe[ye]){var Le=oe[ye];Le.showCollisionBoxes=k.showCollisionBoxes;var q=function(ge,We){var ht=Le.reloadCallback;ht&&(delete Le.reloadCallback,Le.parse(Le.vectorTile,Ie.layerIndex,W.availableImages,Ie.actor,ht)),G(ge,We)};Le.status==="parsing"?Le.reloadCallback=q:Le.status==="done"&&(Le.vectorTile?Le.parse(Le.vectorTile,this.layerIndex,this.availableImages,this.actor,q):q())}},I.prototype.abortTile=function(k,G){var W=this.loading,oe=k.uid;W&&W[oe]&&W[oe].abort&&(W[oe].abort(),delete W[oe]),G()},I.prototype.removeTile=function(k,G){var W=this.loaded,oe=k.uid;W&&W[oe]&&delete W[oe],G()};var U=n.window.ImageBitmap,V=function(){this.loaded={}};function J(k,G){if(k.length!==0){Q(k[0],G);for(var W=1;W=Math.abs(q)?W-ge+q:q-ge+W,W=ge}W+oe>=0!=!!G&&k.reverse()}V.prototype.loadTile=function(k,G){var W=k.uid,oe=k.encoding,ye=k.rawImageData,Ie=U&&ye instanceof U?this.getImageData(ye):ye,Le=new n.DEMData(W,Ie,oe);this.loaded=this.loaded||{},this.loaded[W]=Le,G(null,Le)},V.prototype.getImageData=function(k){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(k.width,k.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=k.width,this.offscreenCanvas.height=k.height,this.offscreenCanvasContext.drawImage(k,0,0,k.width,k.height);var G=this.offscreenCanvasContext.getImageData(-1,-1,k.width+2,k.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new n.RGBAImage({width:G.width,height:G.height},G.data)},V.prototype.removeTile=function(k){var G=this.loaded,W=k.uid;G&&G[W]&&delete G[W]};var te=n.vectorTile.VectorTileFeature.prototype.toGeoJSON,ne=function(k){this._feature=k,this.extent=n.EXTENT,this.type=k.type,this.properties=k.tags,"id"in k&&!isNaN(k.id)&&(this.id=parseInt(k.id,10))};ne.prototype.loadGeometry=function(){if(this._feature.type===1){for(var k=[],G=0,W=this._feature.geometry;G>31}function Yr(k,G){for(var W=k.loadGeometry(),oe=k.type,ye=0,Ie=0,Le=W.length,q=0;q>1;(function or(Wt,Zt,no,er,Fo,Jo){for(;Fo>er;){if(Fo-er>600){var vo=Fo-er+1,Mo=no-er+1,ao=Math.log(vo),Vi=.5*Math.exp(2*ao/3),wo=.5*Math.sqrt(ao*Vi*(vo-Vi)/vo)*(Mo-vo/2<0?-1:1);or(Wt,Zt,no,Math.max(er,Math.floor(no-Mo*Vi/vo+wo)),Math.min(Fo,Math.floor(no+(vo-Mo)*Vi/vo+wo)),Jo)}var ei=Zt[2*no+Jo],ko=er,so=Fo;for(Er(Wt,Zt,er,no),Zt[2*Fo+Jo]>ei&&Er(Wt,Zt,er,Fo);koei;)so--}Zt[2*er+Jo]===ei?Er(Wt,Zt,er,so):Er(Wt,Zt,++so,Fo),so<=no&&(er=so+1),no<=so&&(Fo=so-1)}})(ht,Nt,dt,wt,_r,yr%2),We(ht,Nt,lt,wt,dt-1,yr+1),We(ht,Nt,lt,dt+1,_r,yr+1)}})(Le,q,oe,0,Le.length-1,0)};oo.prototype.range=function(k,G,W,oe){return function(ye,Ie,Le,q,ge,We,ht){for(var Nt,lt,wt=[0,ye.length-1,0],_r=[];wt.length;){var yr=wt.pop(),dt=wt.pop(),or=wt.pop();if(dt-or<=ht)for(var Wt=or;Wt<=dt;Wt++)lt=Ie[2*Wt+1],(Nt=Ie[2*Wt])>=Le&&Nt<=ge&<>=q&<<=We&&_r.push(ye[Wt]);else{var Zt=Math.floor((or+dt)/2);lt=Ie[2*Zt+1],(Nt=Ie[2*Zt])>=Le&&Nt<=ge&<>=q&<<=We&&_r.push(ye[Zt]);var no=(yr+1)%2;(yr===0?Le<=Nt:q<=lt)&&(wt.push(or),wt.push(Zt-1),wt.push(no)),(yr===0?ge>=Nt:We>=lt)&&(wt.push(Zt+1),wt.push(dt),wt.push(no))}}return _r}(this.ids,this.coords,k,G,W,oe,this.nodeSize)},oo.prototype.within=function(k,G,W){return function(oe,ye,Ie,Le,q,ge){for(var We=[0,oe.length-1,0],ht=[],Nt=q*q;We.length;){var lt=We.pop(),wt=We.pop(),_r=We.pop();if(wt-_r<=ge)for(var yr=_r;yr<=wt;yr++)Jr(ye[2*yr],ye[2*yr+1],Ie,Le)<=Nt&&ht.push(oe[yr]);else{var dt=Math.floor((_r+wt)/2),or=ye[2*dt],Wt=ye[2*dt+1];Jr(or,Wt,Ie,Le)<=Nt&&ht.push(oe[dt]);var Zt=(lt+1)%2;(lt===0?Ie-q<=or:Le-q<=Wt)&&(We.push(_r),We.push(dt-1),We.push(Zt)),(lt===0?Ie+q>=or:Le+q>=Wt)&&(We.push(dt+1),We.push(wt),We.push(Zt))}}return ht}(this.ids,this.coords,k,G,W,this.nodeSize)};var Wi={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(k){return k}},bo=function(k){this.options=io(Object.create(Wi),k),this.trees=new Array(this.options.maxZoom+1)};function Ni(k,G,W,oe,ye){return{x:k,y:G,zoom:1/0,id:W,parentId:-1,numPoints:oe,properties:ye}}function $e(k,G){var W=k.geometry.coordinates,oe=W[1];return{x:Ft(W[0]),y:xr(oe),zoom:1/0,index:G,parentId:-1}}function Yt(k){return{type:"Feature",id:k.id,properties:Sr(k),geometry:{type:"Point",coordinates:[(oe=k.x,360*(oe-.5)),(G=k.y,W=(180-360*G)*Math.PI/180,360*Math.atan(Math.exp(W))/Math.PI-90)]}};var G,W,oe}function Sr(k){var G=k.numPoints,W=G>=1e4?Math.round(G/1e3)+"k":G>=1e3?Math.round(G/100)/10+"k":G;return io(io({},k.properties),{cluster:!0,cluster_id:k.id,point_count:G,point_count_abbreviated:W})}function Ft(k){return k/360+.5}function xr(k){var G=Math.sin(k*Math.PI/180),W=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return W<0?0:W>1?1:W}function io(k,G){for(var W in G)k[W]=G[W];return k}function go(k){return k.x}function to(k){return k.y}function Kr(k,G,W,oe,ye,Ie){var Le=ye-W,q=Ie-oe;if(Le!==0||q!==0){var ge=((k-W)*Le+(G-oe)*q)/(Le*Le+q*q);ge>1?(W=ye,oe=Ie):ge>0&&(W+=Le*ge,oe+=q*ge)}return(Le=k-W)*Le+(q=G-oe)*q}function Ao(k,G,W,oe){var ye={id:k===void 0?null:k,type:G,geometry:W,tags:oe,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Ie){var Le=Ie.geometry,q=Ie.type;if(q==="Point"||q==="MultiPoint"||q==="LineString")$i(Ie,Le);else if(q==="Polygon"||q==="MultiLineString")for(var ge=0;ge0&&(Le+=oe?(ye*We-ge*Ie)/2:Math.sqrt(Math.pow(ge-ye,2)+Math.pow(We-Ie,2))),ye=ge,Ie=We}var ht=G.length-3;G[2]=1,function Nt(lt,wt,_r,yr){for(var dt,or=yr,Wt=_r-wt>>1,Zt=_r-wt,no=lt[wt],er=lt[wt+1],Fo=lt[_r],Jo=lt[_r+1],vo=wt+3;vo<_r;vo+=3){var Mo=Kr(lt[vo],lt[vo+1],no,er,Fo,Jo);if(Mo>or)dt=vo,or=Mo;else if(Mo===or){var ao=Math.abs(vo-Wt);aoyr&&(dt-wt>3&&Nt(lt,wt,dt,yr),lt[dt+2]=or,_r-dt>3&&Nt(lt,dt,_r,yr))}(G,0,ht,W),G[ht+2]=1,G.size=Math.abs(Le),G.start=0,G.end=G.size}function se(k,G,W,oe){for(var ye=0;ye1?1:W}function An(k,G,W,oe,ye,Ie,Le,q){if(oe/=G,Ie>=(W/=G)&&Le=oe)return null;for(var ge=[],We=0;We=W&&_r=oe)){var yr=[];if(lt==="Point"||lt==="MultiPoint")ss(Nt,yr,W,oe,ye);else if(lt==="LineString")si(Nt,yr,W,oe,ye,!1,q.lineMetrics);else if(lt==="MultiLineString")pa(Nt,yr,W,oe,ye,!1);else if(lt==="Polygon")pa(Nt,yr,W,oe,ye,!0);else if(lt==="MultiPolygon")for(var dt=0;dt=W&&Le<=oe&&(G.push(k[Ie]),G.push(k[Ie+1]),G.push(k[Ie+2]))}}function si(k,G,W,oe,ye,Ie,Le){for(var q,ge,We=Fn(k),ht=ye===0?vs:zi,Nt=k.start,lt=0;ltW&&(ge=ht(We,wt,_r,dt,or,W),Le&&(We.start=Nt+q*ge)):Wt>oe?Zt=W&&(ge=ht(We,wt,_r,dt,or,W),no=!0),Zt>oe&&Wt<=oe&&(ge=ht(We,wt,_r,dt,or,oe),no=!0),!Ie&&no&&(Le&&(We.end=Nt+q*ge),G.push(We),We=Fn(k)),Le&&(Nt+=q)}var er=k.length-3;wt=k[er],_r=k[er+1],yr=k[er+2],(Wt=ye===0?wt:_r)>=W&&Wt<=oe&&Tn(We,wt,_r,yr),er=We.length-3,Ie&&er>=3&&(We[er]!==We[0]||We[er+1]!==We[1])&&Tn(We,We[0],We[1],We[2]),We.length&&G.push(We)}function Fn(k){var G=[];return G.size=k.size,G.start=k.start,G.end=k.end,G}function pa(k,G,W,oe,ye,Ie){for(var Le=0;LeLe.maxX&&(Le.maxX=ht),Nt>Le.maxY&&(Le.maxY=Nt)}return Le}function vp(k,G,W,oe){var ye=G.geometry,Ie=G.type,Le=[];if(Ie==="Point"||Ie==="MultiPoint")for(var q=0;q0&&G.size<(ye?Le:oe))W.numPoints+=G.length/3;else{for(var q=[],ge=0;geLe)&&(W.numSimplified++,q.push(G[ge]),q.push(G[ge+1])),W.numPoints++;ye&&function(We,ht){for(var Nt=0,lt=0,wt=We.length,_r=wt-2;lt0===ht)for(lt=0,wt=We.length;lt24)throw new Error("maxZoom should be in the 0-24 range");if(G.promoteId&&G.generateId)throw new Error("promoteId and generateId cannot be used together.");var oe=function(ye,Ie){var Le=[];if(ye.type==="FeatureCollection")for(var q=0;q=oe;We--){var ht=+Date.now();q=this._cluster(q,We),this.trees[We]=new oo(q,go,to,Ie,Float32Array),W&&console.log("z%d: %d clusters in %dms",We,q.length,+Date.now()-ht)}return W&&console.timeEnd("total time"),this},bo.prototype.getClusters=function(k,G){var W=((k[0]+180)%360+360)%360-180,oe=Math.max(-90,Math.min(90,k[1])),ye=k[2]===180?180:((k[2]+180)%360+360)%360-180,Ie=Math.max(-90,Math.min(90,k[3]));if(k[2]-k[0]>=360)W=-180,ye=180;else if(W>ye){var Le=this.getClusters([W,oe,180,Ie],G),q=this.getClusters([-180,oe,ye,Ie],G);return Le.concat(q)}for(var ge=this.trees[this._limitZoom(G)],We=[],ht=0,Nt=ge.range(Ft(W),xr(Ie),Ft(ye),xr(oe));htG&&(lt+=yr.numPoints||1)}if(lt>=Ie){for(var dt=ge.x*Nt,or=ge.y*Nt,Wt=ye&&Nt>1?this._map(ge,!0):null,Zt=(q<<5)+(G+1)+this.points.length,no=0,er=ht;no1)for(var vo=0,Mo=ht;vo>5},bo.prototype._getOriginZoom=function(k){return(k-this.points.length)%32},bo.prototype._map=function(k,G){if(k.numPoints)return G?io({},k.properties):k.properties;var W=this.points[k.index].properties,oe=this.options.map(W);return G&&oe===W?io({},oe):oe},Ma.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Ma.prototype.splitTile=function(k,G,W,oe,ye,Ie,Le){for(var q=[k,G,W,oe],ge=this.options,We=ge.debug;q.length;){oe=q.pop(),W=q.pop(),G=q.pop(),k=q.pop();var ht=1<1&&console.time("creation"),lt=this.tiles[Nt]=Gs(k,G,W,oe,ge),this.tileCoords.push({z:G,x:W,y:oe}),We)){We>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",G,W,oe,lt.numFeatures,lt.numPoints,lt.numSimplified),console.timeEnd("creation"));var wt="z"+G;this.stats[wt]=(this.stats[wt]||0)+1,this.total++}if(lt.source=k,ye){if(G===ge.maxZoom||G===ye)continue;var _r=1<1&&console.time("clipping");var yr,dt,or,Wt,Zt,no,er=.5*ge.buffer/ge.extent,Fo=.5-er,Jo=.5+er,vo=1+er;yr=dt=or=Wt=null,Zt=An(k,ht,W-er,W+Jo,0,lt.minX,lt.maxX,ge),no=An(k,ht,W+Fo,W+vo,0,lt.minX,lt.maxX,ge),k=null,Zt&&(yr=An(Zt,ht,oe-er,oe+Jo,1,lt.minY,lt.maxY,ge),dt=An(Zt,ht,oe+Fo,oe+vo,1,lt.minY,lt.maxY,ge),Zt=null),no&&(or=An(no,ht,oe-er,oe+Jo,1,lt.minY,lt.maxY,ge),Wt=An(no,ht,oe+Fo,oe+vo,1,lt.minY,lt.maxY,ge),no=null),We>1&&console.timeEnd("clipping"),q.push(yr||[],G+1,2*W,2*oe),q.push(dt||[],G+1,2*W,2*oe+1),q.push(or||[],G+1,2*W+1,2*oe),q.push(Wt||[],G+1,2*W+1,2*oe+1)}}},Ma.prototype.getTile=function(k,G,W){var oe=this.options,ye=oe.extent,Ie=oe.debug;if(k<0||k>24)return null;var Le=1<1&&console.log("drilling down to z%d-%d-%d",k,G,W);for(var ge,We=k,ht=G,Nt=W;!ge&&We>0;)We--,ht=Math.floor(ht/2),Nt=Math.floor(Nt/2),ge=this.tiles[Na(We,ht,Nt)];return ge&&ge.source?(Ie>1&&console.log("found parent tile z%d-%d-%d",We,ht,Nt),Ie>1&&console.time("drilling down"),this.splitTile(ge.source,We,ht,Nt,k,G,W),Ie>1&&console.timeEnd("drilling down"),this.tiles[q]?Hs(this.tiles[q],ye):null):null};var Yu=function(k){function G(W,oe,ye,Ie){k.call(this,W,oe,ye,Es),Ie&&(this.loadGeoJSON=Ie)}return k&&(G.__proto__=k),(G.prototype=Object.create(k&&k.prototype)).constructor=G,G.prototype.loadData=function(W,oe){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=oe,this._pendingLoadDataParams=W,this._state&&this._state!=="Idle"?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},G.prototype._loadData=function(){var W=this;if(this._pendingCallback&&this._pendingLoadDataParams){var oe=this._pendingCallback,ye=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var Ie=!!(ye&&ye.request&&ye.request.collectResourceTiming)&&new n.RequestPerformance(ye.request);this.loadGeoJSON(ye,function(Le,q){if(Le||!q)return oe(Le);if(typeof q!="object")return oe(new Error("Input data given to '"+ye.source+"' is not a valid GeoJSON object."));(function lt(wt,_r){var yr,dt=wt&&wt.type;if(dt==="FeatureCollection")for(yr=0;yr"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var T,w,D=new Blob([""],{type:"text/javascript"}),z=URL.createObjectURL(D);try{w=new Worker(z),T=!0}catch{T=!1}return w&&w.terminate(),URL.revokeObjectURL(z),T}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var T=document.createElement("canvas");T.width=T.height=1;var w=T.getContext("2d");if(!w)return!1;var D=w.getImageData(0,0,1,1);return D&&D.width===T.width}()?(f[A=E&&E.failIfMajorPerformanceCaveat]===void 0&&(f[A]=function(T){var w=function(z){var $=document.createElement("canvas"),K=Object.create(d.webGLContextAttributes);return K.failIfMajorPerformanceCaveat=z,$.probablySupportsContext?$.probablySupportsContext("webgl",K)||$.probablySupportsContext("experimental-webgl",K):$.supportsContext?$.supportsContext("webgl",K)||$.supportsContext("experimental-webgl",K):$.getContext("webgl",K)||$.getContext("experimental-webgl",K)}(T);if(!w)return!1;var D=w.createShader(w.VERTEX_SHADER);return!(!D||w.isContextLost())&&(w.shaderSource(D,"void main() {}"),w.compileShader(D),w.getShaderParameter(D,w.COMPILE_STATUS)===!0)}(A)),f[A]?void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var A}l.exports?l.exports=d:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=d,window.mapboxgl.notSupportedReason=c);var f={};d.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}}),m={create:function(l,d,c){var f=n.window.document.createElement(l);return d!==void 0&&(f.className=d),c&&c.appendChild(f),f},createNS:function(l,d){return n.window.document.createElementNS(l,d)}},g=n.window.document&&n.window.document.documentElement.style;function x(l){if(!g)return l[0];for(var d=0;d=0?0:l.button},m.remove=function(l){l.parentNode&&l.parentNode.removeChild(l)};var Q=function(l){function d(){l.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new n.RGBAImage({width:1,height:1}),this.dirty=!0}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.isLoaded=function(){return this.loaded},d.prototype.setLoaded=function(c){if(this.loaded!==c&&(this.loaded=c,c)){for(var f=0,E=this.requestors;f=0?1.2:1))}function Ee(l,d,c,f,E,A,T){for(var w=0;w65535)D(new Error("glyphs > 65535 not supported"));else if(K.ranges[_e])D(null,{stack:z,id:$,glyph:ee});else{var de=K.requests[_e];de||(de=K.requests[_e]=[],ft.loadGlyphRange(z,_e,c.url,c.requestManager,function(Te,le){if(le){for(var Fe in le)c._doesCharSupportLocalGlyph(+Fe)||(K.glyphs[+Fe]=le[+Fe]);K.ranges[_e]=!0}for(var De=0,Xe=de;De1&&(w=l[++T]);var z=Math.abs(D-w.left),$=Math.abs(D-w.right),K=Math.min(z,$),ee=void 0,_e=E/c*(f+1);if(w.isDash){var de=f-Math.abs(_e);ee=Math.sqrt(K*K+de*de)}else ee=f-Math.sqrt(K*K+_e*_e);this.data[A+D]=Math.max(0,Math.min(255,ee+128))}},ze.prototype.addRegularDash=function(l){for(var d=l.length-1;d>=0;--d){var c=l[d],f=l[d+1];c.zeroLength?l.splice(d,1):f&&f.isDash===c.isDash&&(f.left=c.left,l.splice(d,1))}var E=l[0],A=l[l.length-1];E.isDash===A.isDash&&(E.left=A.left-this.width,A.right=E.right+this.width);for(var T=this.width*this.nextRow,w=0,D=l[w],z=0;z1&&(D=l[++w]);var $=Math.abs(z-D.left),K=Math.abs(z-D.right),ee=Math.min($,K);this.data[T+z]=Math.max(0,Math.min(255,(D.isDash?ee:-ee)+128))}},ze.prototype.addDash=function(l,d){var c=d?7:0,f=2*c+1;if(this.nextRow+f>this.height)return n.warnOnce("LineAtlas out of space"),null;for(var E=0,A=0;A=c&&l.x=f&&l.y0&&(z[new n.OverscaledTileID(c.overscaledZ,T,f.z,A,f.y-1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,c.wrap,f.z,f.x,f.y-1).key]={backfilled:!1},z[new n.OverscaledTileID(c.overscaledZ,D,f.z,w,f.y-1).key]={backfilled:!1}),f.y+10&&(E.resourceTiming=c._resourceTiming,c._resourceTiming=[]),c.fire(new n.Event("data",E))}})},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.setData=function(c){var f=this;return this._data=c,this.fire(new n.Event("dataloading",{dataType:"source"})),this._updateWorkerData(function(E){if(E)f.fire(new n.ErrorEvent(E));else{var A={dataType:"source",sourceDataType:"content"};f._collectResourceTiming&&f._resourceTiming&&f._resourceTiming.length>0&&(A.resourceTiming=f._resourceTiming,f._resourceTiming=[]),f.fire(new n.Event("data",A))}}),this},d.prototype.getClusterExpansionZoom=function(c,f){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:c,source:this.id},f),this},d.prototype.getClusterChildren=function(c,f){return this.actor.send("geojson.getClusterChildren",{clusterId:c,source:this.id},f),this},d.prototype.getClusterLeaves=function(c,f,E,A){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:c,limit:f,offset:E},A),this},d.prototype._updateWorkerData=function(c){var f=this;this._loaded=!1;var E=n.extend({},this.workerOptions),A=this._data;typeof A=="string"?(E.request=this.map._requestManager.transformRequest(n.browser.resolveURL(A),n.ResourceType.Source),E.request.collectResourceTiming=this._collectResourceTiming):E.data=JSON.stringify(A),this.actor.send(this.type+".loadData",E,function(T,w){f._removed||w&&w.abandoned||(f._loaded=!0,w&&w.resourceTiming&&w.resourceTiming[f.id]&&(f._resourceTiming=w.resourceTiming[f.id].slice(0)),f.actor.send(f.type+".coalesce",{source:E.source},null),c(T))})},d.prototype.loaded=function(){return this._loaded},d.prototype.loadTile=function(c,f){var E=this,A=c.actor?"reloadTile":"loadTile";c.actor=this.actor,c.request=this.actor.send(A,{type:this.type,uid:c.uid,tileID:c.tileID,zoom:c.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:n.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},function(T,w){return delete c.request,c.unloadVectorData(),c.aborted?f(null):T?f(T):(c.loadVectorData(w,E.map.painter,A==="reloadTile"),f(null))})},d.prototype.abortTile=function(c){c.request&&(c.request.cancel(),delete c.request),c.aborted=!0},d.prototype.unloadTile=function(c){c.unloadVectorData(),this.actor.send("removeTile",{uid:c.uid,type:this.type,source:this.id})},d.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},d.prototype.serialize=function(){return n.extend({},this._options,{type:this.type,data:this._data})},d.prototype.hasTransition=function(){return!1},d}(n.Evented),qr=n.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),Jr=function(l){function d(c,f,E,A){l.call(this),this.id=c,this.dispatcher=E,this.coordinates=f.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(A),this.options=f}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(c,f){var E=this;this._loaded=!1,this.fire(new n.Event("dataloading",{dataType:"source"})),this.url=this.options.url,n.getImage(this.map._requestManager.transformRequest(this.url,n.ResourceType.Image),function(A,T){E._loaded=!0,A?E.fire(new n.ErrorEvent(A)):T&&(E.image=T,c&&(E.coordinates=c),f&&f(),E._finishLoading())})},d.prototype.loaded=function(){return this._loaded},d.prototype.updateImage=function(c){var f=this;return this.image&&c.url?(this.options.url=c.url,this.load(c.coordinates,function(){f.texture=null}),this):this},d.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new n.Event("data",{dataType:"source",sourceDataType:"metadata"})))},d.prototype.onAdd=function(c){this.map=c,this.load()},d.prototype.setCoordinates=function(c){var f=this;this.coordinates=c;var E=c.map(n.MercatorCoordinate.fromLngLat);this.tileID=function(T){for(var w=1/0,D=1/0,z=-1/0,$=-1/0,K=0,ee=T;Kf.end(0)?this.fire(new n.ErrorEvent(new n.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+f.start(0)+" and "+f.end(0)+"-second mark."))):this.video.currentTime=c}},d.prototype.getVideo=function(){return this.video},d.prototype.onAdd=function(c){this.map||(this.map=c,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},d.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||this.video.readyState<2)){var c=this.map.painter.context,f=c.gl;for(var E in this.boundsBuffer||(this.boundsBuffer=c.createVertexBuffer(this._boundsArray,qr.members)),this.boundsSegments||(this.boundsSegments=n.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE),f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,this.video)):(this.texture=new n.Texture(c,this.video,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE)),this.tiles){var A=this.tiles[E];A.state!=="loaded"&&(A.state="loaded",A.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this.video&&!this.video.paused},d}(Jr),So=function(l){function d(c,f,E,A){l.call(this,c,f,E,A),f.coordinates?Array.isArray(f.coordinates)&&f.coordinates.length===4&&!f.coordinates.some(function(T){return!Array.isArray(T)||T.length!==2||T.some(function(w){return typeof w!="number"})})||this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'missing required property "coordinates"'))),f.animate&&typeof f.animate!="boolean"&&this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'optional "animate" property must be a boolean value'))),f.canvas?typeof f.canvas=="string"||f.canvas instanceof n.window.HTMLCanvasElement||this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new n.ErrorEvent(new n.ValidationError("sources."+c,null,'missing required property "canvas"'))),this.options=f,this.animate=f.animate===void 0||f.animate}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof n.window.HTMLCanvasElement?this.options.canvas:n.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new n.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},d.prototype.getCanvas=function(){return this.canvas},d.prototype.onAdd=function(c){this.map=c,this.load(),this.canvas&&this.animate&&this.play()},d.prototype.onRemove=function(){this.pause()},d.prototype.prepare=function(){var c=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,c=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,c=!0),!this._hasInvalidDimensions()&&Object.keys(this.tiles).length!==0){var f=this.map.painter.context,E=f.gl;for(var A in this.boundsBuffer||(this.boundsBuffer=f.createVertexBuffer(this._boundsArray,qr.members)),this.boundsSegments||(this.boundsSegments=n.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(c||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new n.Texture(f,this.canvas,E.RGBA,{premultiply:!0}),this.tiles){var T=this.tiles[A];T.state!=="loaded"&&(T.state="loaded",T.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this._playing},d.prototype._hasInvalidDimensions=function(){for(var c=0,f=[this.canvas.width,this.canvas.height];cthis.max){var T=this._getAndRemoveByKey(this.order[0]);T&&this.onRemove(T)}return this},$e.prototype.has=function(l){return l.wrapped().key in this.data},$e.prototype.getAndRemove=function(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null},$e.prototype._getAndRemoveByKey=function(l){var d=this.data[l].shift();return d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),d.value},$e.prototype.getByKey=function(l){var d=this.data[l];return d?d[0].value:null},$e.prototype.get=function(l){return this.has(l)?this.data[l.wrapped().key][0].value:null},$e.prototype.remove=function(l,d){if(!this.has(l))return this;var c=l.wrapped().key,f=d===void 0?0:this.data[c].indexOf(d),E=this.data[c][f];return this.data[c].splice(f,1),E.timeout&&clearTimeout(E.timeout),this.data[c].length===0&&delete this.data[c],this.onRemove(E.value),this.order.splice(this.order.indexOf(c),1),this},$e.prototype.setMaxSize=function(l){for(this.max=l;this.order.length>this.max;){var d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this},$e.prototype.filter=function(l){var d=[];for(var c in this.data)for(var f=0,E=this.data[c];f1||(Math.abs($)>1&&(Math.abs($+ee)===1?$+=ee:Math.abs($-ee)===1&&($-=ee)),z.dem&&D.dem&&(D.dem.backfillBorder(z.dem,$,K),D.neighboringTiles&&D.neighboringTiles[_e]&&(D.neighboringTiles[_e].backfilled=!0)))}},d.prototype.getTile=function(c){return this.getTileByID(c.key)},d.prototype.getTileByID=function(c){return this._tiles[c]},d.prototype._retainLoadedChildren=function(c,f,E,A){for(var T in this._tiles){var w=this._tiles[T];if(!(A[T]||!w.hasData()||w.tileID.overscaledZ<=f||w.tileID.overscaledZ>E)){for(var D=w.tileID;w&&w.tileID.overscaledZ>f+1;){var z=w.tileID.scaledTo(w.tileID.overscaledZ-1);(w=this._tiles[z.key])&&w.hasData()&&(D=z)}for(var $=D;$.overscaledZ>f;)if(c[($=$.scaledTo($.overscaledZ-1)).key]){A[D.key]=D;break}}}},d.prototype.findLoadedParent=function(c,f){if(c.key in this._loadedParentTiles){var E=this._loadedParentTiles[c.key];return E&&E.tileID.overscaledZ>=f?E:null}for(var A=c.overscaledZ-1;A>=f;A--){var T=c.scaledTo(A),w=this._getLoadedTile(T);if(w)return w}},d.prototype._getLoadedTile=function(c){var f=this._tiles[c.key];return f&&f.hasData()?f:this._cache.getByKey(c.wrapped().key)},d.prototype.updateCacheSize=function(c){var f=Math.ceil(c.width/this._source.tileSize)+1,E=Math.ceil(c.height/this._source.tileSize)+1,A=Math.floor(f*E*5),T=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,A):A;this._cache.setMaxSize(T)},d.prototype.handleWrapJump=function(c){var f=Math.round((c-(this._prevLng===void 0?c:this._prevLng))/360);if(this._prevLng=c,f){var E={};for(var A in this._tiles){var T=this._tiles[A];T.tileID=T.tileID.unwrapTo(T.tileID.wrap+f),E[T.tileID.key]=T}for(var w in this._tiles=E,this._timers)clearTimeout(this._timers[w]),delete this._timers[w];for(var D in this._tiles)this._setTileReloadTimer(D,this._tiles[D])}},d.prototype.update=function(c){var f=this;if(this.transform=c,this._sourceLoaded&&!this._paused){var E;this.updateCacheSize(c),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?E=c.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(Pt){return new n.OverscaledTileID(Pt.canonical.z,Pt.wrap,Pt.canonical.z,Pt.canonical.x,Pt.canonical.y)}):(E=c.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(E=E.filter(function(Pt){return f._source.hasTile(Pt)}))):E=[];var A=c.coveringZoomLevel(this._source),T=Math.max(A-d.maxOverzooming,this._source.minzoom),w=Math.max(A+d.maxUnderzooming,this._source.minzoom),D=this._updateRetainedTiles(E,A);if(ht(this._source.type)){for(var z={},$={},K=0,ee=Object.keys(D);Kthis._source.maxzoom){var Fe=Te.children(this._source.maxzoom)[0],De=this.getTile(Fe);if(De&&De.hasData()){E[Fe.key]=Fe;continue}}else{var Xe=Te.children(this._source.maxzoom);if(E[Xe[0].key]&&E[Xe[1].key]&&E[Xe[2].key]&&E[Xe[3].key])continue}for(var at=le.wasRequested(),Je=Te.overscaledZ-1;Je>=T;--Je){var ct=Te.scaledTo(Je);if(A[ct.key]||(A[ct.key]=!0,!(le=this.getTile(ct))&&at&&(le=this._addTile(ct)),le&&(E[ct.key]=ct,at=le.wasRequested(),le.hasData())))break}}}return E},d.prototype._updateLoadedParentTileCache=function(){for(var c in this._loadedParentTiles={},this._tiles){for(var f=[],E=void 0,A=this._tiles[c].tileID;A.overscaledZ>0;){if(A.key in this._loadedParentTiles){E=this._loadedParentTiles[A.key];break}f.push(A.key);var T=A.scaledTo(A.overscaledZ-1);if(E=this._getLoadedTile(T))break;A=T}for(var w=0,D=f;w0||(f.hasData()&&f.state!=="reloading"?this._cache.add(f.tileID,f,f.getExpiryTimeout()):(f.aborted=!0,this._abortTile(f),this._unloadTile(f))))},d.prototype.clearTiles=function(){for(var c in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(c);this._cache.reset()},d.prototype.tilesIn=function(c,f,E){var A=this,T=[],w=this.transform;if(!w)return T;for(var D=E?w.getCameraQueryGeometry(c):c,z=c.map(function(Je){return w.pointCoordinate(Je)}),$=D.map(function(Je){return w.pointCoordinate(Je)}),K=this.getIds(),ee=1/0,_e=1/0,de=-1/0,Te=-1/0,le=0,Fe=$;le=0&&nr[1].y+Bt>=0){var Cr=z.map(function(Nr){return Pt.getTilePoint(Nr)}),Dr=$.map(function(Nr){return Pt.getTilePoint(Nr)});T.push({tile:ct,tileID:Pt,queryGeometry:Cr,cameraQueryGeometry:Dr,scale:Ht})}}},at=0;at=n.browser.now())return!0}return!1},d.prototype.setFeatureState=function(c,f,E){this._state.updateState(c=c||"_geojsonTileLayer",f,E)},d.prototype.removeFeatureState=function(c,f,E){this._state.removeFeatureState(c=c||"_geojsonTileLayer",f,E)},d.prototype.getFeatureState=function(c,f){return this._state.getState(c=c||"_geojsonTileLayer",f)},d.prototype.setDependencies=function(c,f,E){var A=this._tiles[c];A&&A.setDependencies(f,E)},d.prototype.reloadTilesForDependencies=function(c,f){for(var E in this._tiles)this._tiles[E].hasDependency(c,f)&&this._reloadTile(E,"reloading");this._cache.filter(function(A){return!A.hasDependency(c,f)})},d}(n.Evented);function We(l,d){var c=Math.abs(2*l.wrap)-+(l.wrap<0),f=Math.abs(2*d.wrap)-+(d.wrap<0);return l.overscaledZ-d.overscaledZ||f-c||d.canonical.y-l.canonical.y||d.canonical.x-l.canonical.x}function ht(l){return l==="raster"||l==="image"||l==="video"}function Nt(){return new n.window.Worker(rc.workerUrl)}ge.maxOverzooming=10,ge.maxUnderzooming=3;var lt="mapboxgl_preloaded_worker_pool",wt=function(){this.active={}};wt.prototype.acquire=function(l){if(!this.workers)for(this.workers=[];this.workers.length0?(f-A)/T:0;return this.points[E].mult(1-w).add(this.points[d].mult(w))};var wo=function(l,d,c){var f=this.boxCells=[],E=this.circleCells=[];this.xCellCount=Math.ceil(l/c),this.yCellCount=Math.ceil(d/c);for(var A=0;A=-d[0]&&c<=d[0]&&f>=-d[1]&&f<=d[1]}function yu(l,d,c,f,E,A,T,w){var D=f?l.textSizeData:l.iconSizeData,z=n.evaluateSizeForZoom(D,c.transform.zoom),$=[256/c.width*2+1,256/c.height*2+1],K=f?l.text.dynamicLayoutVertexArray:l.icon.dynamicLayoutVertexArray;K.clear();for(var ee=l.lineVertexArray,_e=f?l.text.placedSymbolArray:l.icon.placedSymbolArray,de=c.transform.width/c.transform.height,Te=!1,le=0;le<_e.length;le++){var Fe=_e.get(le);if(Fe.hidden||Fe.writingMode===n.WritingMode.vertical&&!Te)ln(Fe.numGlyphs,K);else{Te=!1;var De=[Fe.anchorX,Fe.anchorY,0,1];if(n.transformMat4(De,De,d),Ln(De,$)){var Xe=Eo(c.transform.cameraToCenterDistance,De[3]),at=n.evaluateSizeForFeature(D,z,Fe),Je=T?at/Xe:at*Xe,ct=new n.Point(Fe.anchorX,Fe.anchorY),Pt=so(ct,E).point,Ht={},Bt=hu(Fe,Je,!1,w,d,E,A,l.glyphOffsetArray,ee,K,Pt,ct,Ht,de);Te=Bt.useVertical,(Bt.notEnoughRoom||Te||Bt.needsFlipping&&hu(Fe,Je,!0,w,d,E,A,l.glyphOffsetArray,ee,K,Pt,ct,Ht,de).notEnoughRoom)&&ln(Fe.numGlyphs,K)}else ln(Fe.numGlyphs,K)}}f?l.text.dynamicLayoutVertexBuffer.updateData(K):l.icon.dynamicLayoutVertexBuffer.updateData(K)}function Di(l,d,c,f,E,A,T,w,D,z,$){var K=w.glyphStartIndex+w.numGlyphs,ee=w.lineStartIndex,_e=w.lineStartIndex+w.lineLength,de=d.getoffsetX(w.glyphStartIndex),Te=d.getoffsetX(K-1),le=hi(l*de,c,f,E,A,T,w.segment,ee,_e,D,z,$);if(!le)return null;var Fe=hi(l*Te,c,f,E,A,T,w.segment,ee,_e,D,z,$);return Fe?{first:le,last:Fe}:null}function gi(l,d,c,f){return l===n.WritingMode.horizontal&&Math.abs(c.y-d.y)>Math.abs(c.x-d.x)*f?{useVertical:!0}:(l===n.WritingMode.vertical?d.yc.x)?{needsFlipping:!0}:null}function hu(l,d,c,f,E,A,T,w,D,z,$,K,ee,_e){var de,Te=d/24,le=l.lineOffsetX*Te,Fe=l.lineOffsetY*Te;if(l.numGlyphs>1){var De=l.glyphStartIndex+l.numGlyphs,Xe=l.lineStartIndex,at=l.lineStartIndex+l.lineLength,Je=Di(Te,w,le,Fe,c,$,K,l,D,A,ee);if(!Je)return{notEnoughRoom:!0};var ct=so(Je.first.point,T).point,Pt=so(Je.last.point,T).point;if(f&&!c){var Ht=gi(l.writingMode,ct,Pt,_e);if(Ht)return Ht}de=[Je.first];for(var Bt=l.glyphStartIndex+1;Bt0?Nr.point:Wa(K,Dr,nr,1,E),cr=gi(l.writingMode,nr,Lo,_e);if(cr)return cr}var $r=hi(Te*w.getoffsetX(l.glyphStartIndex),le,Fe,c,$,K,l.segment,l.lineStartIndex,l.lineStartIndex+l.lineLength,D,A,ee);if(!$r)return{notEnoughRoom:!0};de=[$r]}for(var lo=0,Xr=de;lo0?1:-1,de=0;f&&(_e*=-1,de=Math.PI),_e<0&&(de+=Math.PI);for(var Te=_e>0?w+T:w+T+1,le=E,Fe=E,De=0,Xe=0,at=Math.abs(ee),Je=[];De+Xe<=at;){if((Te+=_e)=D)return null;if(Fe=le,Je.push(le),(le=K[Te])===void 0){var ct=new n.Point(z.getx(Te),z.gety(Te)),Pt=so(ct,$);if(Pt.signedDistanceFromCamera>0)le=K[Te]=Pt.point;else{var Ht=Te-_e;le=Wa(De===0?A:new n.Point(z.getx(Ht),z.gety(Ht)),ct,Fe,at-De+1,$)}}De+=Xe,Xe=Fe.dist(le)}var Bt=(at-De)/Xe,nr=le.sub(Fe),Cr=nr.mult(Bt)._add(Fe);Cr._add(nr._unit()._perp()._mult(c*_e));var Dr=de+Math.atan2(le.y-Fe.y,le.x-Fe.x);return Je.push(Cr),{point:Cr,angle:Dr,path:Je}}wo.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},wo.prototype.insert=function(l,d,c,f,E){this._forEachCell(d,c,f,E,this._insertBoxCell,this.boxUid++),this.boxKeys.push(l),this.bboxes.push(d),this.bboxes.push(c),this.bboxes.push(f),this.bboxes.push(E)},wo.prototype.insertCircle=function(l,d,c,f){this._forEachCell(d-f,c-f,d+f,c+f,this._insertCircleCell,this.circleUid++),this.circleKeys.push(l),this.circles.push(d),this.circles.push(c),this.circles.push(f)},wo.prototype._insertBoxCell=function(l,d,c,f,E,A){this.boxCells[E].push(A)},wo.prototype._insertCircleCell=function(l,d,c,f,E,A){this.circleCells[E].push(A)},wo.prototype._query=function(l,d,c,f,E,A){if(c<0||l>this.width||f<0||d>this.height)return!E&&[];var T=[];if(l<=0&&d<=0&&this.width<=c&&this.height<=f){if(E)return!0;for(var w=0;w0:T},wo.prototype._queryCircle=function(l,d,c,f,E){var A=l-c,T=l+c,w=d-c,D=d+c;if(T<0||A>this.width||D<0||w>this.height)return!f&&[];var z=[];return this._forEachCell(A,w,T,D,this._queryCellCircle,z,{hitTest:f,circle:{x:l,y:d,radius:c},seenUids:{box:{},circle:{}}},E),f?z.length>0:z},wo.prototype.query=function(l,d,c,f,E){return this._query(l,d,c,f,!1,E)},wo.prototype.hitTest=function(l,d,c,f,E){return this._query(l,d,c,f,!0,E)},wo.prototype.hitTestCircle=function(l,d,c,f){return this._queryCircle(l,d,c,!0,f)},wo.prototype._queryCell=function(l,d,c,f,E,A,T,w){var D=T.seenUids,z=this.boxCells[E];if(z!==null)for(var $=this.bboxes,K=0,ee=z;K=$[de+0]&&f>=$[de+1]&&(!w||w(this.boxKeys[_e]))){if(T.hitTest)return A.push(!0),!0;A.push({key:this.boxKeys[_e],x1:$[de],y1:$[de+1],x2:$[de+2],y2:$[de+3]})}}}var Te=this.circleCells[E];if(Te!==null)for(var le=this.circles,Fe=0,De=Te;FeT*T+w*w},wo.prototype._circleAndRectCollide=function(l,d,c,f,E,A,T){var w=(A-f)/2,D=Math.abs(l-(f+w));if(D>w+c)return!1;var z=(T-E)/2,$=Math.abs(d-(E+z));if($>z+c)return!1;if(D<=w||$<=z)return!0;var K=D-w,ee=$-z;return K*K+ee*ee<=c*c};var Ws=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ln(l,d){for(var c=0;c=1;Lo--)Nr.push(Cr.path[Lo]);for(var cr=1;cr0){for(var Gr=Nr[0].clone(),uo=Nr[0].clone(),jr=1;jr=Ht.x&&uo.x<=Bt.x&&Gr.y>=Ht.y&&uo.y<=Bt.y?[Nr]:uo.xBt.x||uo.yBt.y?[]:n.clipLine([Nr],Ht.x,Ht.y,Bt.x,Bt.y)}for(var zr=0,qi=Xr;zr=this.screenRightBoundary||f<100||d>this.screenBottomBoundary},Hi.prototype.isInsideGrid=function(l,d,c,f){return c>=0&&l=0&&d0?(this.prevPlacement&&this.prevPlacement.variableOffsets[K.crossTileID]&&this.prevPlacement.placements[K.crossTileID]&&this.prevPlacement.placements[K.crossTileID].text&&(Te=this.prevPlacement.variableOffsets[K.crossTileID].anchor),this.variableOffsets[K.crossTileID]={textOffset:le,width:c,height:f,anchor:l,textBoxScale:E,prevAnchor:Te},this.markUsedJustification(ee,l,K,_e),ee.allowVerticalPlacement&&(this.markUsedOrientation(ee,_e,K),this.placedOrientations[K.crossTileID]=_e),{shift:Fe,placedGlyphBoxes:De}):void 0},rt.prototype.placeLayerBucketPart=function(l,d,c){var f=this,E=l.parameters,A=E.bucket,T=E.layout,w=E.posMatrix,D=E.textLabelPlaneMatrix,z=E.labelToScreenMatrix,$=E.textPixelRatio,K=E.holdingForFade,ee=E.collisionBoxArray,_e=E.partiallyEvaluatedTextSize,de=E.collisionGroup,Te=T.get("text-optional"),le=T.get("icon-optional"),Fe=T.get("text-allow-overlap"),De=T.get("icon-allow-overlap"),Xe=T.get("text-rotation-alignment")==="map",at=T.get("text-pitch-alignment")==="map",Je=T.get("icon-text-fit")!=="none",ct=T.get("symbol-z-order")==="viewport-y",Pt=Fe&&(De||!A.hasIconData()||le),Ht=De&&(Fe||!A.hasTextData()||Te);!A.collisionArrays&&ee&&A.deserializeCollisionBoxes(ee);var Bt=function(cr,$r){if(!d[cr.crossTileID])if(K)f.placements[cr.crossTileID]=new Kp(!1,!1,!1);else{var lo,Xr=!1,Gr=!1,uo=!0,jr=null,zr={box:null,offscreen:null},qi={box:null,offscreen:null},Si=null,Rn=null,hn=0,Fi=0,wi=0;$r.textFeatureIndex?hn=$r.textFeatureIndex:cr.useRuntimeCollisionCircles&&(hn=cr.featureIndex),$r.verticalTextFeatureIndex&&(Fi=$r.verticalTextFeatureIndex);var ra=$r.textBox;if(ra){var Zn=function(Io){var Cn=n.WritingMode.horizontal;if(A.allowVerticalPlacement&&!Io&&f.prevPlacement){var Ki=f.prevPlacement.placedOrientations[cr.crossTileID];Ki&&(f.placedOrientations[cr.crossTileID]=Ki,f.markUsedOrientation(A,Cn=Ki,cr))}return Cn},Cs=function(Io,Cn){if(A.allowVerticalPlacement&&cr.numVerticalGlyphVertices>0&&$r.verticalTextBox)for(var Ki=0,Ms=A.writingModes;Ki0&&(oa=oa.filter(function(Io){return Io!==Ja.anchor})).unshift(Ja.anchor)}var wa=function(Io,Cn,Ki){for(var Ms=Io.x2-Io.x1,oc=Io.y2-Io.y1,Ou=cr.textBoxScale,Kc=Je&&!De?Cn:null,np={box:[],offscreen:!1},ap=Fe?2*oa.length:oa.length,hs=0;hs=oa.length,cr,A,Ki,Kc);if(ic&&(np=ic.placedGlyphBoxes)&&np.box&&np.box.length){Xr=!0,jr=ic.shift;break}}return np};Cs(function(){return wa(ra,$r.iconBox,n.WritingMode.horizontal)},function(){var Io=$r.verticalTextBox;return A.allowVerticalPlacement&&!(zr&&zr.box&&zr.box.length)&&cr.numVerticalGlyphVertices>0&&Io?wa(Io,$r.verticalIconBox,n.WritingMode.vertical):{box:null,offscreen:null}}),zr&&(Xr=zr.box,uo=zr.offscreen);var Ip=Zn(zr&&zr.box);if(!Xr&&f.prevPlacement){var ip=f.prevPlacement.variableOffsets[cr.crossTileID];ip&&(f.variableOffsets[cr.crossTileID]=ip,f.markUsedJustification(A,ip.anchor,cr,Ip))}}else{var Is=function(Io,Cn){var Ki=f.collisionIndex.placeCollisionBox(Io,Fe,$,w,de.predicate);return Ki&&Ki.box&&Ki.box.length&&(f.markUsedOrientation(A,Cn,cr),f.placedOrientations[cr.crossTileID]=Cn),Ki};Cs(function(){return Is(ra,n.WritingMode.horizontal)},function(){var Io=$r.verticalTextBox;return A.allowVerticalPlacement&&cr.numVerticalGlyphVertices>0&&Io?Is(Io,n.WritingMode.vertical):{box:null,offscreen:null}}),Zn(zr&&zr.box&&zr.box.length)}}if(Xr=(lo=zr)&&lo.box&&lo.box.length>0,uo=lo&&lo.offscreen,cr.useRuntimeCollisionCircles){var Nu=A.text.placedSymbolArray.get(cr.centerJustifiedTextSymbolIndex),ou=n.evaluateSizeForFeature(A.textSizeData,_e,Nu),ds=T.get("text-padding");Si=f.collisionIndex.placeCollisionCircles(Fe,Nu,A.lineVertexArray,A.glyphOffsetArray,ou,w,D,z,c,at,de.predicate,cr.collisionCircleDiameter,ds),Xr=Fe||Si.circles.length>0&&!Si.collisionDetected,uo=uo&&Si.offscreen}if($r.iconFeatureIndex&&(wi=$r.iconFeatureIndex),$r.iconBox){var Du=function(Io){var Cn=Je&&jr?we(Io,jr.x,jr.y,Xe,at,f.transform.angle):Io;return f.collisionIndex.placeCollisionBox(Cn,De,$,w,de.predicate)};Gr=qi&&qi.box&&qi.box.length&&$r.verticalIconBox?(Rn=Du($r.verticalIconBox)).box.length>0:(Rn=Du($r.iconBox)).box.length>0,uo=uo&&Rn.offscreen}var kn=Te||cr.numHorizontalGlyphVertices===0&&cr.numVerticalGlyphVertices===0,Bi=le||cr.numIconVertices===0;if(kn||Bi?Bi?kn||(Gr=Gr&&Xr):Xr=Gr&&Xr:Gr=Xr=Gr&&Xr,Xr&&lo&&lo.box&&f.collisionIndex.insertCollisionBox(lo.box,T.get("text-ignore-placement"),A.bucketInstanceId,qi&&qi.box&&Fi?Fi:hn,de.ID),Gr&&Rn&&f.collisionIndex.insertCollisionBox(Rn.box,T.get("icon-ignore-placement"),A.bucketInstanceId,wi,de.ID),Si&&(Xr&&f.collisionIndex.insertCollisionCircles(Si.circles,T.get("text-ignore-placement"),A.bucketInstanceId,hn,de.ID),c)){var da=A.bucketInstanceId,es=f.collisionCircleArrays[da];es===void 0&&(es=f.collisionCircleArrays[da]=new Pa);for(var ys=0;ys=0;--Cr){var Dr=nr[Cr];Bt(A.symbolInstances.get(Dr),A.collisionArrays[Dr])}else for(var Nr=l.symbolInstanceStart;Nr=0&&(l.text.placedSymbolArray.get(w).crossTileID=E>=0&&w!==E?0:c.crossTileID)}},rt.prototype.markUsedOrientation=function(l,d,c){for(var f=d===n.WritingMode.horizontal||d===n.WritingMode.horizontalOnly?d:0,E=d===n.WritingMode.vertical?d:0,A=0,T=[c.leftJustifiedTextSymbolIndex,c.centerJustifiedTextSymbolIndex,c.rightJustifiedTextSymbolIndex];A0,Ht=f.placedOrientations[De.crossTileID],Bt=Ht===n.WritingMode.vertical,nr=Ht===n.WritingMode.horizontal||Ht===n.WritingMode.horizontalOnly;if(Xe>0||at>0){var Cr=S1(ct.text);_e(l.text,Xe,Bt?Ep:Cr),_e(l.text,at,nr?Ep:Cr);var Dr=ct.text.isHidden();[De.rightJustifiedTextSymbolIndex,De.centerJustifiedTextSymbolIndex,De.leftJustifiedTextSymbolIndex].forEach(function(zr){zr>=0&&(l.text.placedSymbolArray.get(zr).hidden=Dr||Bt?1:0)}),De.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(De.verticalPlacedTextSymbolIndex).hidden=Dr||nr?1:0);var Nr=f.variableOffsets[De.crossTileID];Nr&&f.markUsedJustification(l,Nr.anchor,De,Ht);var Lo=f.placedOrientations[De.crossTileID];Lo&&(f.markUsedJustification(l,"left",De,Lo),f.markUsedOrientation(l,Lo,De))}if(Pt){var cr=S1(ct.icon),$r=!(K&&De.verticalPlacedIconSymbolIndex&&Bt);De.placedIconSymbolIndex>=0&&(_e(l.icon,De.numIconVertices,$r?cr:Ep),l.icon.placedSymbolArray.get(De.placedIconSymbolIndex).hidden=ct.icon.isHidden()),De.verticalPlacedIconSymbolIndex>=0&&(_e(l.icon,De.numVerticalIconVertices,$r?Ep:cr),l.icon.placedSymbolArray.get(De.verticalPlacedIconSymbolIndex).hidden=ct.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){var lo=l.collisionArrays[Fe];if(lo){var Xr=new n.Point(0,0);if(lo.textBox||lo.verticalTextBox){var Gr=!0;if(D){var uo=f.variableOffsets[Je];uo?(Xr=re(uo.anchor,uo.width,uo.height,uo.textOffset,uo.textBoxScale),z&&Xr._rotate($?f.transform.angle:-f.transform.angle)):Gr=!1}lo.textBox&&zt(l.textCollisionBox.collisionVertexArray,ct.text.placed,!Gr||Bt,Xr.x,Xr.y),lo.verticalTextBox&&zt(l.textCollisionBox.collisionVertexArray,ct.text.placed,!Gr||nr,Xr.x,Xr.y)}var jr=!!(!nr&&lo.verticalIconBox);lo.iconBox&&zt(l.iconCollisionBox.collisionVertexArray,ct.icon.placed,jr,K?Xr.x:0,K?Xr.y:0),lo.verticalIconBox&&zt(l.iconCollisionBox.collisionVertexArray,ct.icon.placed,!jr,K?Xr.x:0,K?Xr.y:0)}}},Te=0;Tel},rt.prototype.setStale=function(){this.stale=!0};var wr=Math.pow(2,25),Oo=Math.pow(2,24),Xi=Math.pow(2,17),Sn=Math.pow(2,16),cn=Math.pow(2,9),Xa=Math.pow(2,8),T1=Math.pow(2,1);function S1(l){if(l.opacity===0&&!l.placed)return 0;if(l.opacity===1&&l.placed)return 4294967295;var d=l.placed?1:0,c=Math.floor(127*l.opacity);return c*wr+d*Oo+c*Xi+d*Sn+c*cn+d*Xa+c*T1+d}var Ep=0,Cc=function(l){this._sortAcrossTiles=l.layout.get("symbol-z-order")!=="viewport-y"&&l.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Cc.prototype.continuePlacement=function(l,d,c,f,E){for(var A=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var T=d[l[this._currentPlacementIndex]],w=this.placement.collisionIndex.transform.zoom;if(T.type==="symbol"&&(!T.minzoom||T.minzoom<=w)&&(!T.maxzoom||T.maxzoom>w)){if(this._inProgressLayer||(this._inProgressLayer=new Cc(T)),this._inProgressLayer.continuePlacement(c[T.source],this.placement,this._showCollisionBoxes,T,A))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Qp.prototype.commit=function(l){return this.placement.commit(l),this.placement};var w1=512/n.EXTENT/2,Dl=function(l,d,c){this.tileID=l,this.indexedSymbolInstances={},this.bucketInstanceId=c;for(var f=0;fl.overscaledZ)for(var w in T){var D=T[w];D.tileID.isChildOf(l)&&D.findMatches(d.symbolInstances,l,E)}else{var z=T[l.scaledTo(Number(A)).key];z&&z.findMatches(d.symbolInstances,l,E)}}for(var $=0;$1?"@2x":"",K=n.getJSON(A.transformRequest(A.normalizeSpriteURL(E,$,".json"),n.ResourceType.SpriteJSON),function(de,Te){K=null,z||(z=de,w=Te,_e())}),ee=n.getImage(A.transformRequest(A.normalizeSpriteURL(E,$,".png"),n.ResourceType.SpriteImage),function(de,Te){ee=null,z||(z=de,D=Te,_e())});function _e(){if(z)T(z);else if(w&&D){var de=n.browser.getImageData(D),Te={};for(var le in w){var Fe=w[le],De=Fe.width,Xe=Fe.height,at=Fe.x,Je=Fe.y,ct=Fe.sdf,Pt=Fe.pixelRatio,Ht=Fe.stretchX,Bt=Fe.stretchY,nr=Fe.content,Cr=new n.RGBAImage({width:De,height:Xe});n.RGBAImage.copy(de,Cr,{x:at,y:Je},{x:0,y:0},{width:De,height:Xe}),Te[le]={data:Cr,pixelRatio:Pt,sdf:ct,stretchX:Ht,stretchY:Bt,content:nr}}T(null,Te)}}return{cancel:function(){K&&(K.cancel(),K=null),ee&&(ee.cancel(),ee=null)}}}(c,this.map._requestManager,function(E,A){if(f._spriteRequest=null,E)f.fire(new n.ErrorEvent(E));else if(A)for(var T in A)f.imageManager.addImage(T,A[T]);f.imageManager.setLoaded(!0),f._availableImages=f.imageManager.listImages(),f.dispatcher.broadcast("setImages",f._availableImages),f.fire(new n.Event("data",{dataType:"style"}))})},d.prototype._validateLayer=function(c){var f=this.sourceCaches[c.source];if(f){var E=c.sourceLayer;if(E){var A=f.getSource();(A.type==="geojson"||A.vectorLayerIds&&A.vectorLayerIds.indexOf(E)===-1)&&this.fire(new n.ErrorEvent(new Error('Source layer "'+E+'" does not exist on source "'+A.id+'" as specified by style layer "'+c.id+'"')))}}},d.prototype.loaded=function(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(var c in this.sourceCaches)if(!this.sourceCaches[c].loaded())return!1;return!!this.imageManager.isLoaded()},d.prototype._serializeLayers=function(c){for(var f=[],E=0,A=c;E0)throw new Error("Unimplemented: "+A.map(function(T){return T.command}).join(", ")+".");return E.forEach(function(T){T.command!=="setTransition"&&f[T.command].apply(f,T.args)}),this.stylesheet=c,!0},d.prototype.addImage=function(c,f){if(this.getImage(c))return this.fire(new n.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(c,f),this._afterImageUpdated(c)},d.prototype.updateImage=function(c,f){this.imageManager.updateImage(c,f)},d.prototype.getImage=function(c){return this.imageManager.getImage(c)},d.prototype.removeImage=function(c){if(!this.getImage(c))return this.fire(new n.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(c),this._afterImageUpdated(c)},d.prototype._afterImageUpdated=function(c){this._availableImages=this.imageManager.listImages(),this._changedImages[c]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new n.Event("data",{dataType:"style"}))},d.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},d.prototype.addSource=function(c,f,E){var A=this;if(E===void 0&&(E={}),this._checkLoaded(),this.sourceCaches[c]!==void 0)throw new Error("There is already a source with this ID");if(!f.type)throw new Error("The type property must be defined, but only the following properties were given: "+Object.keys(f).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(f.type)>=0&&this._validate(n.validateStyle.source,"sources."+c,f,null,E))){this.map&&this.map._collectResourceTiming&&(f.collectResourceTiming=!0);var T=this.sourceCaches[c]=new ge(c,f,this.dispatcher);T.style=this,T.setEventedParent(this,function(){return{isSourceLoaded:A.loaded(),source:T.serialize(),sourceId:c}}),T.onAdd(this.map),this._changed=!0}},d.prototype.removeSource=function(c){if(this._checkLoaded(),this.sourceCaches[c]===void 0)throw new Error("There is no source with this ID");for(var f in this._layers)if(this._layers[f].source===c)return this.fire(new n.ErrorEvent(new Error('Source "'+c+'" cannot be removed while layer "'+f+'" is using it.')));var E=this.sourceCaches[c];delete this.sourceCaches[c],delete this._updatedSources[c],E.fire(new n.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:c})),E.setEventedParent(null),E.clearTiles(),E.onRemove&&E.onRemove(this.map),this._changed=!0},d.prototype.setGeoJSONSourceData=function(c,f){this._checkLoaded(),this.sourceCaches[c].getSource().setData(f),this._changed=!0},d.prototype.getSource=function(c){return this.sourceCaches[c]&&this.sourceCaches[c].getSource()},d.prototype.addLayer=function(c,f,E){E===void 0&&(E={}),this._checkLoaded();var A=c.id;if(this.getLayer(A))this.fire(new n.ErrorEvent(new Error('Layer with id "'+A+'" already exists on this map')));else{var T;if(c.type==="custom"){if(xs(this,n.validateCustomStyleLayer(c)))return;T=n.createStyleLayer(c)}else{if(typeof c.source=="object"&&(this.addSource(A,c.source),c=n.clone$1(c),c=n.extend(c,{source:A})),this._validate(n.validateStyle.layer,"layers."+A,c,{arrayIndex:-1},E))return;T=n.createStyleLayer(c),this._validateLayer(T),T.setEventedParent(this,{layer:{id:A}}),this._serializedLayers[T.id]=T.serialize()}var w=f?this._order.indexOf(f):this._order.length;if(f&&w===-1)this.fire(new n.ErrorEvent(new Error('Layer with id "'+f+'" does not exist on this map.')));else{if(this._order.splice(w,0,A),this._layerOrderChanged=!0,this._layers[A]=T,this._removedLayers[A]&&T.source&&T.type!=="custom"){var D=this._removedLayers[A];delete this._removedLayers[A],D.type!==T.type?this._updatedSources[T.source]="clear":(this._updatedSources[T.source]="reload",this.sourceCaches[T.source].pause())}this._updateLayer(T),T.onAdd&&T.onAdd(this.map)}}},d.prototype.moveLayer=function(c,f){if(this._checkLoaded(),this._changed=!0,this._layers[c]){if(c!==f){var E=this._order.indexOf(c);this._order.splice(E,1);var A=f?this._order.indexOf(f):this._order.length;f&&A===-1?this.fire(new n.ErrorEvent(new Error('Layer with id "'+f+'" does not exist on this map.'))):(this._order.splice(A,0,c),this._layerOrderChanged=!0)}}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be moved.")))},d.prototype.removeLayer=function(c){this._checkLoaded();var f=this._layers[c];if(f){f.setEventedParent(null);var E=this._order.indexOf(c);this._order.splice(E,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[c]=f,delete this._layers[c],delete this._serializedLayers[c],delete this._updatedLayers[c],delete this._updatedPaintProps[c],f.onRemove&&f.onRemove(this.map)}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be removed.")))},d.prototype.getLayer=function(c){return this._layers[c]},d.prototype.hasLayer=function(c){return c in this._layers},d.prototype.setLayerZoomRange=function(c,f,E){this._checkLoaded();var A=this.getLayer(c);A?A.minzoom===f&&A.maxzoom===E||(f!=null&&(A.minzoom=f),E!=null&&(A.maxzoom=E),this._updateLayer(A)):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot have zoom extent.")))},d.prototype.setFilter=function(c,f,E){E===void 0&&(E={}),this._checkLoaded();var A=this.getLayer(c);if(A){if(!n.deepEqual(A.filter,f))return f==null?(A.filter=void 0,void this._updateLayer(A)):void(this._validate(n.validateStyle.filter,"layers."+A.id+".filter",f,null,E)||(A.filter=n.clone$1(f),this._updateLayer(A)))}else this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be filtered.")))},d.prototype.getFilter=function(c){return n.clone$1(this.getLayer(c).filter)},d.prototype.setLayoutProperty=function(c,f,E,A){A===void 0&&(A={}),this._checkLoaded();var T=this.getLayer(c);T?n.deepEqual(T.getLayoutProperty(f),E)||(T.setLayoutProperty(f,E,A),this._updateLayer(T)):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getLayoutProperty=function(c,f){var E=this.getLayer(c);if(E)return E.getLayoutProperty(f);this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style.")))},d.prototype.setPaintProperty=function(c,f,E,A){A===void 0&&(A={}),this._checkLoaded();var T=this.getLayer(c);T?n.deepEqual(T.getPaintProperty(f),E)||(T.setPaintProperty(f,E,A)&&this._updateLayer(T),this._changed=!0,this._updatedPaintProps[c]=!0):this.fire(new n.ErrorEvent(new Error("The layer '"+c+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getPaintProperty=function(c,f){return this.getLayer(c).getPaintProperty(f)},d.prototype.setFeatureState=function(c,f){this._checkLoaded();var E=c.source,A=c.sourceLayer,T=this.sourceCaches[E];if(T!==void 0){var w=T.getSource().type;w==="geojson"&&A?this.fire(new n.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):w!=="vector"||A?(c.id===void 0&&this.fire(new n.ErrorEvent(new Error("The feature id parameter must be provided."))),T.setFeatureState(A,c.id,f)):this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.removeFeatureState=function(c,f){this._checkLoaded();var E=c.source,A=this.sourceCaches[E];if(A!==void 0){var T=A.getSource().type,w=T==="vector"?c.sourceLayer:void 0;T!=="vector"||w?f&&typeof c.id!="string"&&typeof c.id!="number"?this.fire(new n.ErrorEvent(new Error("A feature id is required to remove its specific state property."))):A.removeFeatureState(w,c.id,f):this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.getFeatureState=function(c){this._checkLoaded();var f=c.source,E=c.sourceLayer,A=this.sourceCaches[f];if(A!==void 0){if(A.getSource().type!=="vector"||E)return c.id===void 0&&this.fire(new n.ErrorEvent(new Error("The feature id parameter must be provided."))),A.getFeatureState(E,c.id);this.fire(new n.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new n.ErrorEvent(new Error("The source '"+f+"' does not exist in the map's style.")))},d.prototype.getTransition=function(){return n.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},d.prototype.serialize=function(){return n.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:n.mapObject(this.sourceCaches,function(c){return c.serialize()}),layers:this._serializeLayers(this._order)},function(c){return c!==void 0})},d.prototype._updateLayer=function(c){this._updatedLayers[c.id]=!0,c.source&&!this._updatedSources[c.source]&&this.sourceCaches[c.source].getSource().type!=="raster"&&(this._updatedSources[c.source]="reload",this.sourceCaches[c.source].pause()),this._changed=!0},d.prototype._flattenAndSortRenderedFeatures=function(c){for(var f=this,E=function(Ht){return f._layers[Ht].type==="fill-extrusion"},A={},T=[],w=this._order.length-1;w>=0;w--){var D=this._order[w];if(E(D)){A[D]=w;for(var z=0,$=c;z<$.length;z+=1){var K=$[z][D];if(K)for(var ee=0,_e=K;ee<_e.length;ee+=1)T.push(_e[ee])}}}T.sort(function(Ht,Bt){return Bt.intersectionZ-Ht.intersectionZ});for(var de=[],Te=this._order.length-1;Te>=0;Te--){var le=this._order[Te];if(E(le))for(var Fe=T.length-1;Fe>=0;Fe--){var De=T[Fe].feature;if(A[De.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),C1=ri("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),I1=ri("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),$0=ri(`#pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity gl_FragColor=color*opacity; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`attribute vec2 a_pos;uniform mat4 u_matrix; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float opacity gl_Position=u_matrix*vec4(a_pos,0,1);}`),el=ri(`varying vec2 v_pos; #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; #pragma mapbox: define highp vec4 outline_color #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 outline_color #pragma mapbox: initialize lowp float opacity gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),bs=ri(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),M1=ri(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),Un=ri(`varying vec4 v_color;void main() {gl_FragColor=v_color; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color; #pragma mapbox: define highp float base #pragma mapbox: define highp float height #pragma mapbox: define highp vec4 color void main() { #pragma mapbox: initialize highp float base #pragma mapbox: initialize highp float height #pragma mapbox: initialize highp vec4 color vec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),$u=ri(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; #pragma mapbox: define lowp float base #pragma mapbox: define lowp float height #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float base #pragma mapbox: initialize lowp float height #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; #pragma mapbox: define lowp float base #pragma mapbox: define lowp float height #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float base #pragma mapbox: initialize lowp float height #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 ? a_pos : vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),gu=ri(`#ifdef GL_ES precision highp float; #endif uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),Da=ri(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; #define PI 3.141592653589793 void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),vu=ri(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Za=ri(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Ys=ri(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 #define LINE_DISTANCE_SCALE 2.0 attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float gapwidth #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth #pragma mapbox: define lowp vec4 pattern_from #pragma mapbox: define lowp vec4 pattern_to #pragma mapbox: define lowp float pixel_ratio_from #pragma mapbox: define lowp float pixel_ratio_to void main() { #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth #pragma mapbox: initialize mediump vec4 pattern_from #pragma mapbox: initialize mediump vec4 pattern_to #pragma mapbox: initialize lowp float pixel_ratio_from #pragma mapbox: initialize lowp float pixel_ratio_to float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),Oa=ri(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,` #define scale 0.015873016 #define LINE_DISTANCE_SCALE 2.0 attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; #pragma mapbox: define highp vec4 color #pragma mapbox: define lowp float blur #pragma mapbox: define lowp float opacity #pragma mapbox: define mediump float gapwidth #pragma mapbox: define lowp float offset #pragma mapbox: define mediump float width #pragma mapbox: define lowp float floorwidth void main() { #pragma mapbox: initialize highp vec4 color #pragma mapbox: initialize lowp float blur #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize mediump float gapwidth #pragma mapbox: initialize lowp float offset #pragma mapbox: initialize mediump float width #pragma mapbox: initialize lowp float floorwidth float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),$s=ri(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),Eu=ri(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float opacity lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; #pragma mapbox: define lowp float opacity void main() { #pragma mapbox: initialize lowp float opacity vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`),N1=ri(`#define SDF_PX 8.0 uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),D1=ri(`#define SDF_PX 8.0 #define SDF 1.0 #define ICON 0.0 uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); #ifdef OVERDRAW_INSPECTOR gl_FragColor=vec4(1.0); #endif }`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; #pragma mapbox: define highp vec4 fill_color #pragma mapbox: define highp vec4 halo_color #pragma mapbox: define lowp float opacity #pragma mapbox: define lowp float halo_width #pragma mapbox: define lowp float halo_blur void main() { #pragma mapbox: initialize highp vec4 fill_color #pragma mapbox: initialize highp vec4 halo_color #pragma mapbox: initialize lowp float opacity #pragma mapbox: initialize lowp float halo_width #pragma mapbox: initialize lowp float halo_blur vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? camera_to_anchor_distance/u_camera_to_center_distance : u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`);function ri(l,d){var c=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,f=d.match(/attribute ([\w]+) ([\w]+)/g),E=l.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),A=d.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),T=A?A.concat(E):E,w={};return{fragmentSource:l=l.replace(c,function(D,z,$,K,ee){return w[ee]=!0,z==="define"?` #ifndef HAS_UNIFORM_u_`+ee+` varying `+$+" "+K+" "+ee+`; #else uniform `+$+" "+K+" u_"+ee+`; #endif `:` #ifdef HAS_UNIFORM_u_`+ee+` `+$+" "+K+" "+ee+" = u_"+ee+`; #endif `}),vertexSource:d=d.replace(c,function(D,z,$,K,ee){var _e=K==="float"?"vec2":"vec4",de=ee.match(/color/)?"color":_e;return w[ee]?z==="define"?` #ifndef HAS_UNIFORM_u_`+ee+` uniform lowp float u_`+ee+`_t; attribute `+$+" "+_e+" a_"+ee+`; varying `+$+" "+K+" "+ee+`; #else uniform `+$+" "+K+" u_"+ee+`; #endif `:de==="vec4"?` #ifndef HAS_UNIFORM_u_`+ee+` `+ee+" = a_"+ee+`; #else `+$+" "+K+" "+ee+" = u_"+ee+`; #endif `:` #ifndef HAS_UNIFORM_u_`+ee+` `+ee+" = unpack_mix_"+de+"(a_"+ee+", u_"+ee+`_t); #else `+$+" "+K+" "+ee+" = u_"+ee+`; #endif `:z==="define"?` #ifndef HAS_UNIFORM_u_`+ee+` uniform lowp float u_`+ee+`_t; attribute `+$+" "+_e+" a_"+ee+`; #else uniform `+$+" "+K+" u_"+ee+`; #endif `:de==="vec4"?` #ifndef HAS_UNIFORM_u_`+ee+` `+$+" "+K+" "+ee+" = a_"+ee+`; #else `+$+" "+K+" "+ee+" = u_"+ee+`; #endif `:` #ifndef HAS_UNIFORM_u_`+ee+` `+$+" "+K+" "+ee+" = unpack_mix_"+de+"(a_"+ee+", u_"+ee+`_t); #else `+$+" "+K+" "+ee+" = u_"+ee+`; #endif `}),staticAttributes:f,staticUniforms:T}}var q0=Object.freeze({__proto__:null,prelude:_u,background:Zs,backgroundPattern:Ol,circle:R1,clippingMask:Ll,heatmap:Ic,heatmapTexture:Mc,collisionBox:Nc,collisionCircle:C1,debug:I1,fill:$0,fillOutline:el,fillOutlinePattern:bs,fillPattern:M1,fillExtrusion:Un,fillExtrusionPattern:$u,hillshadePrepare:gu,hillshade:Da,line:vu,lineGradient:Za,linePattern:Ys,lineSDF:Oa,raster:$s,symbolIcon:Eu,symbolSDF:N1,symbolTextAndIcon:D1}),Bl=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};function Dc(l){for(var d=[],c=0;c>16,w>>16],u_pixel_coord_lower:[65535&T,65535&w]}}Li.prototype.draw=function(l,d,c,f,E,A,T,w,D,z,$,K,ee,_e,de,Te){var le,Fe=l.gl;if(!this.failedToCreate){for(var De in l.program.set(this.program),l.setDepthMode(c),l.setStencilMode(f),l.setColorMode(E),l.setCullFace(A),this.fixedUniforms)this.fixedUniforms[De].set(T[De]);_e&&_e.setUniforms(l,this.binderUniforms,K,{zoom:ee});for(var Xe=(le={},le[Fe.LINES]=2,le[Fe.TRIANGLES]=3,le[Fe.LINE_STRIP]=1,le)[d],at=0,Je=$.get();at0?1-1/(1.001-T):-T),u_contrast_factor:(A=E.paint.get("raster-contrast"),A>0?1/(1-A):1+A),u_spin_weights:zl(E.paint.get("raster-hue-rotate"))};var A,T};function zl(l){l*=Math.PI/180;var d=Math.sin(l),c=Math.cos(l);return[(2*c+1)/3,(-Math.sqrt(3)*d-c+1)/3,(Math.sqrt(3)*d-c+1)/3]}var Qs,Au=function(l,d,c,f,E,A,T,w,D,z){var $=E.transform;return{u_is_size_zoom_constant:+(l==="constant"||l==="source"),u_is_size_feature_constant:+(l==="constant"||l==="camera"),u_size_t:d?d.uSizeT:0,u_size:d?d.uSize:0,u_camera_to_center_distance:$.cameraToCenterDistance,u_pitch:$.pitch/360*2*Math.PI,u_rotate_symbol:+c,u_aspect_ratio:$.width/$.height,u_fade_change:E.options.fadeDuration?E.symbolFadeChange:1,u_matrix:A,u_label_plane_matrix:T,u_coord_matrix:w,u_is_text:+D,u_pitch_with_map:+f,u_texsize:z,u_texture:0}},qu=function(l,d,c,f,E,A,T,w,D,z,$){var K=E.transform;return n.extend(Au(l,d,c,f,E,A,T,w,D,z),{u_gamma_scale:f?Math.cos(K._pitch)*K.cameraToCenterDistance:1,u_device_pixel_ratio:n.browser.devicePixelRatio,u_is_halo:1})},Pp=function(l,d,c,f,E,A,T,w,D,z){return n.extend(qu(l,d,c,f,E,A,T,w,!0,D),{u_texsize_icon:z,u_texture_icon:1})},Ku=function(l,d,c){return{u_matrix:l,u_opacity:d,u_color:c}},Qu=function(l,d,c,f,E,A){return n.extend(function(T,w,D,z){var $=D.imageManager.getPattern(T.from.toString()),K=D.imageManager.getPattern(T.to.toString()),ee=D.imageManager.getPixelSize(),_e=ee.width,de=ee.height,Te=Math.pow(2,z.tileID.overscaledZ),le=z.tileSize*Math.pow(2,D.transform.tileZoom)/Te,Fe=le*(z.tileID.canonical.x+z.tileID.wrap*Te),De=le*z.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:$.tl,u_pattern_br_a:$.br,u_pattern_tl_b:K.tl,u_pattern_br_b:K.br,u_texsize:[_e,de],u_mix:w.t,u_pattern_size_a:$.displaySize,u_pattern_size_b:K.displaySize,u_scale_a:w.fromScale,u_scale_b:w.toScale,u_tile_units_to_pixels:1/ui(z,1,D.transform.tileZoom),u_pixel_coord_upper:[Fe>>16,De>>16],u_pixel_coord_lower:[65535&Fe,65535&De]}}(f,A,c,E),{u_matrix:l,u_opacity:d})},Uc={fillExtrusion:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_lightpos:new n.Uniform3f(l,d.u_lightpos),u_lightintensity:new n.Uniform1f(l,d.u_lightintensity),u_lightcolor:new n.Uniform3f(l,d.u_lightcolor),u_vertical_gradient:new n.Uniform1f(l,d.u_vertical_gradient),u_opacity:new n.Uniform1f(l,d.u_opacity)}},fillExtrusionPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_lightpos:new n.Uniform3f(l,d.u_lightpos),u_lightintensity:new n.Uniform1f(l,d.u_lightintensity),u_lightcolor:new n.Uniform3f(l,d.u_lightcolor),u_vertical_gradient:new n.Uniform1f(l,d.u_vertical_gradient),u_height_factor:new n.Uniform1f(l,d.u_height_factor),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade),u_opacity:new n.Uniform1f(l,d.u_opacity)}},fill:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},fillPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},fillOutline:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world)}},fillOutlinePattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world),u_image:new n.Uniform1i(l,d.u_image),u_texsize:new n.Uniform2f(l,d.u_texsize),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},circle:function(l,d){return{u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_scale_with_map:new n.Uniform1i(l,d.u_scale_with_map),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_extrude_scale:new n.Uniform2f(l,d.u_extrude_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},collisionBox:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pixels_to_tile_units:new n.Uniform1f(l,d.u_pixels_to_tile_units),u_extrude_scale:new n.Uniform2f(l,d.u_extrude_scale),u_overscale_factor:new n.Uniform1f(l,d.u_overscale_factor)}},collisionCircle:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_inv_matrix:new n.UniformMatrix4f(l,d.u_inv_matrix),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_viewport_size:new n.Uniform2f(l,d.u_viewport_size)}},debug:function(l,d){return{u_color:new n.UniformColor(l,d.u_color),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_overlay:new n.Uniform1i(l,d.u_overlay),u_overlay_scale:new n.Uniform1f(l,d.u_overlay_scale)}},clippingMask:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},heatmap:function(l,d){return{u_extrude_scale:new n.Uniform1f(l,d.u_extrude_scale),u_intensity:new n.Uniform1f(l,d.u_intensity),u_matrix:new n.UniformMatrix4f(l,d.u_matrix)}},heatmapTexture:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_world:new n.Uniform2f(l,d.u_world),u_image:new n.Uniform1i(l,d.u_image),u_color_ramp:new n.Uniform1i(l,d.u_color_ramp),u_opacity:new n.Uniform1f(l,d.u_opacity)}},hillshade:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_latrange:new n.Uniform2f(l,d.u_latrange),u_light:new n.Uniform2f(l,d.u_light),u_shadow:new n.UniformColor(l,d.u_shadow),u_highlight:new n.UniformColor(l,d.u_highlight),u_accent:new n.UniformColor(l,d.u_accent)}},hillshadePrepare:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_image:new n.Uniform1i(l,d.u_image),u_dimension:new n.Uniform2f(l,d.u_dimension),u_zoom:new n.Uniform1f(l,d.u_zoom),u_unpack:new n.Uniform4f(l,d.u_unpack)}},line:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels)}},lineGradient:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_image:new n.Uniform1i(l,d.u_image),u_image_height:new n.Uniform1f(l,d.u_image_height)}},linePattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_texsize:new n.Uniform2f(l,d.u_texsize),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_image:new n.Uniform1i(l,d.u_image),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_scale:new n.Uniform3f(l,d.u_scale),u_fade:new n.Uniform1f(l,d.u_fade)}},lineSDF:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_ratio:new n.Uniform1f(l,d.u_ratio),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_units_to_pixels:new n.Uniform2f(l,d.u_units_to_pixels),u_patternscale_a:new n.Uniform2f(l,d.u_patternscale_a),u_patternscale_b:new n.Uniform2f(l,d.u_patternscale_b),u_sdfgamma:new n.Uniform1f(l,d.u_sdfgamma),u_image:new n.Uniform1i(l,d.u_image),u_tex_y_a:new n.Uniform1f(l,d.u_tex_y_a),u_tex_y_b:new n.Uniform1f(l,d.u_tex_y_b),u_mix:new n.Uniform1f(l,d.u_mix)}},raster:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_tl_parent:new n.Uniform2f(l,d.u_tl_parent),u_scale_parent:new n.Uniform1f(l,d.u_scale_parent),u_buffer_scale:new n.Uniform1f(l,d.u_buffer_scale),u_fade_t:new n.Uniform1f(l,d.u_fade_t),u_opacity:new n.Uniform1f(l,d.u_opacity),u_image0:new n.Uniform1i(l,d.u_image0),u_image1:new n.Uniform1i(l,d.u_image1),u_brightness_low:new n.Uniform1f(l,d.u_brightness_low),u_brightness_high:new n.Uniform1f(l,d.u_brightness_high),u_saturation_factor:new n.Uniform1f(l,d.u_saturation_factor),u_contrast_factor:new n.Uniform1f(l,d.u_contrast_factor),u_spin_weights:new n.Uniform3f(l,d.u_spin_weights)}},symbolIcon:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texture:new n.Uniform1i(l,d.u_texture)}},symbolSDF:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texture:new n.Uniform1i(l,d.u_texture),u_gamma_scale:new n.Uniform1f(l,d.u_gamma_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_is_halo:new n.Uniform1i(l,d.u_is_halo)}},symbolTextAndIcon:function(l,d){return{u_is_size_zoom_constant:new n.Uniform1i(l,d.u_is_size_zoom_constant),u_is_size_feature_constant:new n.Uniform1i(l,d.u_is_size_feature_constant),u_size_t:new n.Uniform1f(l,d.u_size_t),u_size:new n.Uniform1f(l,d.u_size),u_camera_to_center_distance:new n.Uniform1f(l,d.u_camera_to_center_distance),u_pitch:new n.Uniform1f(l,d.u_pitch),u_rotate_symbol:new n.Uniform1i(l,d.u_rotate_symbol),u_aspect_ratio:new n.Uniform1f(l,d.u_aspect_ratio),u_fade_change:new n.Uniform1f(l,d.u_fade_change),u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_label_plane_matrix:new n.UniformMatrix4f(l,d.u_label_plane_matrix),u_coord_matrix:new n.UniformMatrix4f(l,d.u_coord_matrix),u_is_text:new n.Uniform1i(l,d.u_is_text),u_pitch_with_map:new n.Uniform1i(l,d.u_pitch_with_map),u_texsize:new n.Uniform2f(l,d.u_texsize),u_texsize_icon:new n.Uniform2f(l,d.u_texsize_icon),u_texture:new n.Uniform1i(l,d.u_texture),u_texture_icon:new n.Uniform1i(l,d.u_texture_icon),u_gamma_scale:new n.Uniform1f(l,d.u_gamma_scale),u_device_pixel_ratio:new n.Uniform1f(l,d.u_device_pixel_ratio),u_is_halo:new n.Uniform1i(l,d.u_is_halo)}},background:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_opacity:new n.Uniform1f(l,d.u_opacity),u_color:new n.UniformColor(l,d.u_color)}},backgroundPattern:function(l,d){return{u_matrix:new n.UniformMatrix4f(l,d.u_matrix),u_opacity:new n.Uniform1f(l,d.u_opacity),u_image:new n.Uniform1i(l,d.u_image),u_pattern_tl_a:new n.Uniform2f(l,d.u_pattern_tl_a),u_pattern_br_a:new n.Uniform2f(l,d.u_pattern_br_a),u_pattern_tl_b:new n.Uniform2f(l,d.u_pattern_tl_b),u_pattern_br_b:new n.Uniform2f(l,d.u_pattern_br_b),u_texsize:new n.Uniform2f(l,d.u_texsize),u_mix:new n.Uniform1f(l,d.u_mix),u_pattern_size_a:new n.Uniform2f(l,d.u_pattern_size_a),u_pattern_size_b:new n.Uniform2f(l,d.u_pattern_size_b),u_scale_a:new n.Uniform1f(l,d.u_scale_a),u_scale_b:new n.Uniform1f(l,d.u_scale_b),u_pixel_coord_upper:new n.Uniform2f(l,d.u_pixel_coord_upper),u_pixel_coord_lower:new n.Uniform2f(l,d.u_pixel_coord_lower),u_tile_units_to_pixels:new n.Uniform1f(l,d.u_tile_units_to_pixels)}}};function Ju(l,d,c,f,E,A,T){for(var w=l.context,D=w.gl,z=l.useProgram("collisionBox"),$=[],K=0,ee=0,_e=0;_e0){var at=n.create(),Je=Fe;n.mul(at,le.placementInvProjMatrix,l.transform.glCoordMatrix),n.mul(at,at,le.placementViewportMatrix),$.push({circleArray:Xe,circleOffset:ee,transform:Je,invTransform:at}),ee=K+=Xe.length/4}De&&z.draw(w,D.LINES,oe.disabled,ye.disabled,l.colorModeForRenderPass(),Le.disabled,ps(Fe,l.transform,Te),c.id,De.layoutVertexBuffer,De.indexBuffer,De.segments,null,l.transform.zoom,null,null,De.collisionVertexBuffer)}}if(T&&$.length){var ct=l.useProgram("collisionCircle"),Pt=new n.StructArrayLayout2f1f2i16;Pt.resize(4*K),Pt._trim();for(var Ht=0,Bt=0,nr=$;Bt=0&&(de[le.associatedIconIndex]={shiftedAnchor:Pt,angle:Ht})}else ln(le.numGlyphs,ee)}if($){_e.clear();for(var nr=l.icon.placedSymbolArray,Cr=0;Cr0){var T=n.browser.now(),w=(T-l.timeAdded)/A,D=d?(T-d.timeAdded)/A:-1,z=c.getSource(),$=E.coveringZoomLevel({tileSize:z.tileSize,roundZoom:z.roundZoom}),K=!d||Math.abs(d.tileID.overscaledZ-$)>Math.abs(l.tileID.overscaledZ-$),ee=K&&l.refreshedUponExpiration?1:n.clamp(K?w:1-D,0,1);return l.refreshedUponExpiration&&w>=1&&(l.refreshedUponExpiration=!1),d?{opacity:1,mix:1-ee}:{opacity:ee,mix:0}}return{opacity:1,mix:0}}var Hc=new n.Color(1,0,0,1),Hl=new n.Color(0,1,0,1),L1=new n.Color(0,0,1,1),Gl=new n.Color(1,0,1,1),Gc=new n.Color(0,1,1,1);function nl(l,d,c,f){ep(l,0,d+c/2,l.transform.width,c,f)}function jc(l,d,c,f){ep(l,d-c/2,0,c,l.transform.height,f)}function ep(l,d,c,f,E,A){var T=l.context,w=T.gl;w.enable(w.SCISSOR_TEST),w.scissor(d*n.browser.devicePixelRatio,c*n.browser.devicePixelRatio,f*n.browser.devicePixelRatio,E*n.browser.devicePixelRatio),T.clear({color:A}),w.disable(w.SCISSOR_TEST)}function Wc(l,d,c){var f=l.context,E=f.gl,A=c.posMatrix,T=l.useProgram("debug"),w=oe.disabled,D=ye.disabled,z=l.colorModeForRenderPass();f.activeTexture.set(E.TEXTURE0),l.emptyTexture.bind(E.LINEAR,E.CLAMP_TO_EDGE),T.draw(f,E.LINE_STRIP,w,D,z,Le.disabled,Pu(A,n.Color.red),"$debug",l.debugBuffer,l.tileBorderIndexBuffer,l.debugSegments);var $=d.getTileByID(c.key).latestRawTileData,K=Math.floor(($&&$.byteLength||0)/1024),ee=d.getTile(c).tileSize,_e=512/Math.min(ee,512)*(c.overscaledZ/l.transform.zoom)*.5,de=c.canonical.toString();c.overscaledZ!==c.canonical.z&&(de+=" => "+c.overscaledZ),function(Te,le){Te.initDebugOverlayCanvas();var Fe=Te.debugOverlayCanvas,De=Te.context.gl,Xe=Te.debugOverlayCanvas.getContext("2d");Xe.clearRect(0,0,Fe.width,Fe.height),Xe.shadowColor="white",Xe.shadowBlur=2,Xe.lineWidth=1.5,Xe.strokeStyle="white",Xe.textBaseline="top",Xe.font="bold 36px Open Sans, sans-serif",Xe.fillText(le,5,5),Xe.strokeText(le,5,5),Te.debugOverlayTexture.update(Fe),Te.debugOverlayTexture.bind(De.LINEAR,De.CLAMP_TO_EDGE)}(l,de+" "+K+"kb"),T.draw(f,E.TRIANGLES,w,D,Ie.alphaBlended,Le.disabled,Pu(A,n.Color.transparent,_e),"$debug",l.debugBuffer,l.quadTriangleIndexBuffer,l.debugSegments)}var Su={symbol:function(l,d,c,f,E){if(l.renderPass==="translucent"){var A=ye.disabled,T=l.colorModeForRenderPass();c.layout.get("text-variable-anchor")&&function(w,D,z,$,K,ee,_e){for(var de=D.transform,Te=K==="map",le=ee==="map",Fe=0,De=w;Fe256&&this.clearStencil(),c.setColorMode(Ie.disabled),c.setDepthMode(oe.disabled);var E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var A=0,T=d;A256&&this.clearStencil();var l=this.nextStencilID++,d=this.context.gl;return new ye({func:d.NOTEQUAL,mask:255},l,255,d.KEEP,d.KEEP,d.REPLACE)},ci.prototype.stencilModeForClipping=function(l){var d=this.context.gl;return new ye({func:d.EQUAL,mask:255},this._tileClippingMaskIDs[l.key],0,d.KEEP,d.KEEP,d.REPLACE)},ci.prototype.stencilConfigForOverlap=function(l){var d,c=this.context.gl,f=l.sort(function(D,z){return z.overscaledZ-D.overscaledZ}),E=f[f.length-1].overscaledZ,A=f[0].overscaledZ-E+1;if(A>1){this.currentStencilSource=void 0,this.nextStencilID+A>256&&this.clearStencil();for(var T={},w=0;w=0;this.currentLayer--){var Xe=this.style._layers[f[this.currentLayer]],at=E[Xe.source],Je=z[Xe.source];this._renderTileClippingMasks(Xe,Je),this.renderLayer(this,at,Xe,Je)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?d.pop():null},ci.prototype.isPatternMissing=function(l){if(!l)return!1;if(!l.from||!l.to)return!0;var d=this.imageManager.getPattern(l.from.toString()),c=this.imageManager.getPattern(l.to.toString());return!d||!c},ci.prototype.useProgram=function(l,d){this.cache=this.cache||{};var c=""+l+(d?d.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[c]||(this.cache[c]=new Li(this.context,l,q0[l],d,Uc[l],this._showOverdrawInspector)),this.cache[c]},ci.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},ci.prototype.setBaseState=function(){var l=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(l.FUNC_ADD)},ci.prototype.initDebugOverlayCanvas=function(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=n.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new n.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},ci.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var jl=function(l,d){this.points=l,this.planes=d};jl.fromInvProjectionMatrix=function(l,d,c){var f=Math.pow(2,c),E=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(function(T){return n.transformMat4([],T,l)}).map(function(T){return n.scale$1([],T,1/T[3]/d*f)}),A=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(function(T){var w=n.sub([],E[T[0]],E[T[1]]),D=n.sub([],E[T[2]],E[T[1]]),z=n.normalize([],n.cross([],w,D)),$=-n.dot(z,E[T[1]]);return z.concat($)});return new jl(E,A)};var Ts=function(l,d){this.min=l,this.max=d,this.center=n.scale$2([],n.add([],this.min,this.max),.5)};Ts.prototype.quadrant=function(l){for(var d=[l%2==0,l<2],c=n.clone$2(this.min),f=n.clone$2(this.max),E=0;E=0;if(A===0)return 0;A!==d.length&&(c=!1)}if(c)return 2;for(var w=0;w<3;w++){for(var D=Number.MAX_VALUE,z=-Number.MAX_VALUE,$=0;$this.max[w]-this.min[w])return 0}return 1};var wu=function(l,d,c,f){if(l===void 0&&(l=0),d===void 0&&(d=0),c===void 0&&(c=0),f===void 0&&(f=0),isNaN(l)||l<0||isNaN(d)||d<0||isNaN(c)||c<0||isNaN(f)||f<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=l,this.bottom=d,this.left=c,this.right=f};wu.prototype.interpolate=function(l,d,c){return d.top!=null&&l.top!=null&&(this.top=n.number(l.top,d.top,c)),d.bottom!=null&&l.bottom!=null&&(this.bottom=n.number(l.bottom,d.bottom,c)),d.left!=null&&l.left!=null&&(this.left=n.number(l.left,d.left,c)),d.right!=null&&l.right!=null&&(this.right=n.number(l.right,d.right,c)),this},wu.prototype.getCenter=function(l,d){var c=n.clamp((this.left+l-this.right)/2,0,l),f=n.clamp((this.top+d-this.bottom)/2,0,d);return new n.Point(c,f)},wu.prototype.equals=function(l){return this.top===l.top&&this.bottom===l.bottom&&this.left===l.left&&this.right===l.right},wu.prototype.clone=function(){return new wu(this.top,this.bottom,this.left,this.right)},wu.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var No=function(l,d,c,f,E){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=E===void 0||E,this._minZoom=l||0,this._maxZoom=d||22,this._minPitch=c??0,this._maxPitch=f??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new n.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new wu,this._posMatrixCache={},this._alignedPosMatrixCache={}},di={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};No.prototype.clone=function(){var l=new No(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return l.tileSize=this.tileSize,l.latRange=this.latRange,l.width=this.width,l.height=this.height,l._center=this._center,l.zoom=this.zoom,l.angle=this.angle,l._fov=this._fov,l._pitch=this._pitch,l._unmodified=this._unmodified,l._edgeInsets=this._edgeInsets.clone(),l._calcMatrices(),l},di.minZoom.get=function(){return this._minZoom},di.minZoom.set=function(l){this._minZoom!==l&&(this._minZoom=l,this.zoom=Math.max(this.zoom,l))},di.maxZoom.get=function(){return this._maxZoom},di.maxZoom.set=function(l){this._maxZoom!==l&&(this._maxZoom=l,this.zoom=Math.min(this.zoom,l))},di.minPitch.get=function(){return this._minPitch},di.minPitch.set=function(l){this._minPitch!==l&&(this._minPitch=l,this.pitch=Math.max(this.pitch,l))},di.maxPitch.get=function(){return this._maxPitch},di.maxPitch.set=function(l){this._maxPitch!==l&&(this._maxPitch=l,this.pitch=Math.min(this.pitch,l))},di.renderWorldCopies.get=function(){return this._renderWorldCopies},di.renderWorldCopies.set=function(l){l===void 0?l=!0:l===null&&(l=!1),this._renderWorldCopies=l},di.worldSize.get=function(){return this.tileSize*this.scale},di.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},di.size.get=function(){return new n.Point(this.width,this.height)},di.bearing.get=function(){return-this.angle/Math.PI*180},di.bearing.set=function(l){var d=-n.wrap(l,-180,180)*Math.PI/180;this.angle!==d&&(this._unmodified=!1,this.angle=d,this._calcMatrices(),this.rotationMatrix=n.create$2(),n.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},di.pitch.get=function(){return this._pitch/Math.PI*180},di.pitch.set=function(l){var d=n.clamp(l,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==d&&(this._unmodified=!1,this._pitch=d,this._calcMatrices())},di.fov.get=function(){return this._fov/Math.PI*180},di.fov.set=function(l){l=Math.max(.01,Math.min(60,l)),this._fov!==l&&(this._unmodified=!1,this._fov=l/180*Math.PI,this._calcMatrices())},di.zoom.get=function(){return this._zoom},di.zoom.set=function(l){var d=Math.min(Math.max(l,this.minZoom),this.maxZoom);this._zoom!==d&&(this._unmodified=!1,this._zoom=d,this.scale=this.zoomScale(d),this.tileZoom=Math.floor(d),this.zoomFraction=d-this.tileZoom,this._constrain(),this._calcMatrices())},di.center.get=function(){return this._center},di.center.set=function(l){l.lat===this._center.lat&&l.lng===this._center.lng||(this._unmodified=!1,this._center=l,this._constrain(),this._calcMatrices())},di.padding.get=function(){return this._edgeInsets.toJSON()},di.padding.set=function(l){this._edgeInsets.equals(l)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,l,1),this._calcMatrices())},di.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},No.prototype.isPaddingEqual=function(l){return this._edgeInsets.equals(l)},No.prototype.interpolatePadding=function(l,d,c){this._unmodified=!1,this._edgeInsets.interpolate(l,d,c),this._constrain(),this._calcMatrices()},No.prototype.coveringZoomLevel=function(l){var d=(l.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/l.tileSize));return Math.max(0,d)},No.prototype.getVisibleUnwrappedCoordinates=function(l){var d=[new n.UnwrappedTileID(0,l)];if(this._renderWorldCopies)for(var c=this.pointCoordinate(new n.Point(0,0)),f=this.pointCoordinate(new n.Point(this.width,0)),E=this.pointCoordinate(new n.Point(this.width,this.height)),A=this.pointCoordinate(new n.Point(0,this.height)),T=Math.floor(Math.min(c.x,f.x,E.x,A.x)),w=Math.floor(Math.max(c.x,f.x,E.x,A.x)),D=T-1;D<=w+1;D++)D!==0&&d.push(new n.UnwrappedTileID(D,l));return d},No.prototype.coveringTiles=function(l){var d=this.coveringZoomLevel(l),c=d;if(l.minzoom!==void 0&&dl.maxzoom&&(d=l.maxzoom);var f=n.MercatorCoordinate.fromLngLat(this.center),E=Math.pow(2,d),A=[E*f.x,E*f.y,0],T=jl.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,d),w=l.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(w=d);var D=function(Bt){return{aabb:new Ts([Bt*E,0,0],[(Bt+1)*E,E,0]),zoom:0,x:0,y:0,wrap:Bt,fullyVisible:!1}},z=[],$=[],K=d,ee=l.reparseOverscaled?c:d;if(this._renderWorldCopies)for(var _e=1;_e<=3;_e++)z.push(D(-_e)),z.push(D(_e));for(z.push(D(0));z.length>0;){var de=z.pop(),Te=de.x,le=de.y,Fe=de.fullyVisible;if(!Fe){var De=de.aabb.intersects(T);if(De===0)continue;Fe=De===2}var Xe=de.aabb.distanceX(A),at=de.aabb.distanceY(A),Je=Math.max(Math.abs(Xe),Math.abs(at));if(de.zoom===K||Je>3+(1<=w)$.push({tileID:new n.OverscaledTileID(de.zoom===K?ee:de.zoom,de.wrap,de.zoom,Te,le),distanceSq:n.sqrLen([A[0]-.5-Te,A[1]-.5-le])});else for(var ct=0;ct<4;ct++){var Pt=(Te<<1)+ct%2,Ht=(le<<1)+(ct>>1);z.push({aabb:de.aabb.quadrant(ct),zoom:de.zoom+1,x:Pt,y:Ht,wrap:de.wrap,fullyVisible:Fe})}}return $.sort(function(Bt,nr){return Bt.distanceSq-nr.distanceSq}).map(function(Bt){return Bt.tileID})},No.prototype.resize=function(l,d){this.width=l,this.height=d,this.pixelsToGLUnits=[2/l,-2/d],this._constrain(),this._calcMatrices()},di.unmodified.get=function(){return this._unmodified},No.prototype.zoomScale=function(l){return Math.pow(2,l)},No.prototype.scaleZoom=function(l){return Math.log(l)/Math.LN2},No.prototype.project=function(l){var d=n.clamp(l.lat,-this.maxValidLatitude,this.maxValidLatitude);return new n.Point(n.mercatorXfromLng(l.lng)*this.worldSize,n.mercatorYfromLat(d)*this.worldSize)},No.prototype.unproject=function(l){return new n.MercatorCoordinate(l.x/this.worldSize,l.y/this.worldSize).toLngLat()},di.point.get=function(){return this.project(this.center)},No.prototype.setLocationAtPoint=function(l,d){var c=this.pointCoordinate(d),f=this.pointCoordinate(this.centerPoint),E=this.locationCoordinate(l),A=new n.MercatorCoordinate(E.x-(c.x-f.x),E.y-(c.y-f.y));this.center=this.coordinateLocation(A),this._renderWorldCopies&&(this.center=this.center.wrap())},No.prototype.locationPoint=function(l){return this.coordinatePoint(this.locationCoordinate(l))},No.prototype.pointLocation=function(l){return this.coordinateLocation(this.pointCoordinate(l))},No.prototype.locationCoordinate=function(l){return n.MercatorCoordinate.fromLngLat(l)},No.prototype.coordinateLocation=function(l){return l.toLngLat()},No.prototype.pointCoordinate=function(l){var d=[l.x,l.y,0,1],c=[l.x,l.y,1,1];n.transformMat4(d,d,this.pixelMatrixInverse),n.transformMat4(c,c,this.pixelMatrixInverse);var f=d[3],E=c[3],A=d[1]/f,T=c[1]/E,w=d[2]/f,D=c[2]/E,z=w===D?0:(0-w)/(D-w);return new n.MercatorCoordinate(n.number(d[0]/f,c[0]/E,z)/this.worldSize,n.number(A,T,z)/this.worldSize)},No.prototype.coordinatePoint=function(l){var d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.transformMat4(d,d,this.pixelMatrix),new n.Point(d[0]/d[3],d[1]/d[3])},No.prototype.getBounds=function(){return new n.LngLatBounds().extend(this.pointLocation(new n.Point(0,0))).extend(this.pointLocation(new n.Point(this.width,0))).extend(this.pointLocation(new n.Point(this.width,this.height))).extend(this.pointLocation(new n.Point(0,this.height)))},No.prototype.getMaxBounds=function(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new n.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},No.prototype.setMaxBounds=function(l){l?(this.lngRange=[l.getWest(),l.getEast()],this.latRange=[l.getSouth(),l.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},No.prototype.calculatePosMatrix=function(l,d){d===void 0&&(d=!1);var c=l.key,f=d?this._alignedPosMatrixCache:this._posMatrixCache;if(f[c])return f[c];var E=l.canonical,A=this.worldSize/this.zoomScale(E.z),T=E.x+Math.pow(2,E.z)*l.wrap,w=n.identity(new Float64Array(16));return n.translate(w,w,[T*A,E.y*A,0]),n.scale(w,w,[A/n.EXTENT,A/n.EXTENT,1]),n.multiply(w,d?this.alignedProjMatrix:this.projMatrix,w),f[c]=new Float32Array(w),f[c]},No.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},No.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var l,d,c,f,E=-90,A=90,T=-180,w=180,D=this.size,z=this._unmodified;if(this.latRange){var $=this.latRange;E=n.mercatorYfromLat($[1])*this.worldSize,l=(A=n.mercatorYfromLat($[0])*this.worldSize)-EA&&(f=A-Te)}if(this.lngRange){var le=ee.x,Fe=D.x/2;le-Few&&(c=w-Fe)}c===void 0&&f===void 0||(this.center=this.unproject(new n.Point(c!==void 0?c:ee.x,f!==void 0?f:ee.y))),this._unmodified=z,this._constraining=!1}},No.prototype._calcMatrices=function(){if(this.height){var l=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var d=Math.PI/2+this._pitch,c=this._fov*(.5+l.y/this.height),f=Math.sin(c)*this.cameraToCenterDistance/Math.sin(n.clamp(Math.PI-d-c,.01,Math.PI-.01)),E=this.point,A=E.x,T=E.y,w=1.01*(Math.cos(Math.PI/2-this._pitch)*f+this.cameraToCenterDistance),D=this.height/50,z=new Float64Array(16);n.perspective(z,this._fov,this.width/this.height,D,w),z[8]=2*-l.x/this.width,z[9]=2*l.y/this.height,n.scale(z,z,[1,-1,1]),n.translate(z,z,[0,0,-this.cameraToCenterDistance]),n.rotateX(z,z,this._pitch),n.rotateZ(z,z,this.angle),n.translate(z,z,[-A,-T,0]),this.mercatorMatrix=n.scale([],z,[this.worldSize,this.worldSize,this.worldSize]),n.scale(z,z,[1,1,n.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=z,this.invProjMatrix=n.invert([],this.projMatrix);var $=this.width%2/2,K=this.height%2/2,ee=Math.cos(this.angle),_e=Math.sin(this.angle),de=A-Math.round(A)+ee*$+_e*K,Te=T-Math.round(T)+ee*K+_e*$,le=new Float64Array(z);if(n.translate(le,le,[de>.5?de-1:de,Te>.5?Te-1:Te,0]),this.alignedProjMatrix=le,z=n.create(),n.scale(z,z,[this.width/2,-this.height/2,1]),n.translate(z,z,[1,-1,0]),this.labelPlaneMatrix=z,z=n.create(),n.scale(z,z,[1,-1,1]),n.translate(z,z,[-1,-1,0]),n.scale(z,z,[2/this.width,2/this.height,1]),this.glCoordMatrix=z,this.pixelMatrix=n.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(z=n.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=z,this._posMatrixCache={},this._alignedPosMatrixCache={}}},No.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var l=this.pointCoordinate(new n.Point(0,0)),d=[l.x*this.worldSize,l.y*this.worldSize,0,1];return n.transformMat4(d,d,this.pixelMatrix)[3]/this.cameraToCenterDistance},No.prototype.getCameraPoint=function(){var l=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new n.Point(0,l))},No.prototype.getCameraQueryGeometry=function(l){var d=this.getCameraPoint();if(l.length===1)return[l[0],d];for(var c=d.x,f=d.y,E=d.x,A=d.y,T=0,w=l;T=3&&!l.some(function(c){return isNaN(c)})){var d=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(l[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+l[2],+l[1]],zoom:+l[0],bearing:d,pitch:+(l[4]||0)}),!0}return!1},La.prototype._updateHashUnthrottled=function(){var l=n.window.location.href.replace(/(#.+)?$/,this.getHashString());try{n.window.history.replaceState(n.window.history.state,null,l)}catch{}};var al={linearity:.3,easing:n.bezier(0,0,.3,1)},Ap=n.extend({deceleration:2500,maxSpeed:1400},al),sl=n.extend({deceleration:20,maxSpeed:1400},al),B1=n.extend({deceleration:1e3,maxSpeed:360},al),Wl=n.extend({deceleration:1e3,maxSpeed:90},al),ul=function(l){this._map=l,this.clear()};function Ru(l,d){(!l.duration||l.duration0&&d-l[0].time>160;)l.shift()},ul.prototype._onMoveEnd=function(l){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var d={zoom:0,bearing:0,pitch:0,pan:new n.Point(0,0),pinchAround:void 0,around:void 0},c=0,f=this._inertiaBuffer;c=this._clickTolerance||this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.dblclick=function(l){return this._firePreventable(new bi(l.type,this._map,l))},Gi.prototype.mouseover=function(l){this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.mouseout=function(l){this._map.fire(new bi(l.type,this._map,l))},Gi.prototype.touchstart=function(l){return this._firePreventable(new Fp(l.type,this._map,l))},Gi.prototype.touchmove=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype.touchend=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype.touchcancel=function(l){this._map.fire(new Fp(l.type,this._map,l))},Gi.prototype._firePreventable=function(l){if(this._map.fire(l),l.defaultPrevented)return{}},Gi.prototype.isEnabled=function(){return!0},Gi.prototype.isActive=function(){return!1},Gi.prototype.enable=function(){},Gi.prototype.disable=function(){};var hr=function(l){this._map=l};hr.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},hr.prototype.mousemove=function(l){this._map.fire(new bi(l.type,this._map,l))},hr.prototype.mousedown=function(){this._delayContextMenu=!0},hr.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new bi("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},hr.prototype.contextmenu=function(l){this._delayContextMenu?this._contextMenuEvent=l:this._map.fire(new bi(l.type,this._map,l)),this._map.listens("contextmenu")&&l.preventDefault()},hr.prototype.isEnabled=function(){return!0},hr.prototype.isActive=function(){return!1},hr.prototype.enable=function(){},hr.prototype.disable=function(){};var ca=function(l,d){this._map=l,this._el=l.getCanvasContainer(),this._container=l.getContainer(),this._clickTolerance=d.clickTolerance||1};function pl(l,d){for(var c={},f=0;fthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=l.timeStamp),c.length===this.numTouches&&(this.centroid=function(f){for(var E=new n.Point(0,0),A=0,T=f;A30)&&(this.aborted=!0)}}},Tp.prototype.touchend=function(l,d,c){if((!this.centroid||l.timeStamp-this.startTime>500)&&(this.aborted=!0),c.length===0){var f=!this.aborted&&this.centroid;if(this.reset(),f)return f}};var ea=function(l){this.singleTap=new Tp(l),this.numTaps=l.numTaps,this.reset()};ea.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},ea.prototype.touchstart=function(l,d,c){this.singleTap.touchstart(l,d,c)},ea.prototype.touchmove=function(l,d,c){this.singleTap.touchmove(l,d,c)},ea.prototype.touchend=function(l,d,c){var f=this.singleTap.touchend(l,d,c);if(f){var E=l.timeStamp-this.lastTime<500,A=!this.lastTap||this.lastTap.dist(f)<30;if(E&&A||this.reset(),this.count++,this.lastTime=l.timeStamp,this.lastTap=f,this.count===this.numTaps)return this.reset(),f}};var oi=function(){this._zoomIn=new ea({numTouches:1,numTaps:2}),this._zoomOut=new ea({numTouches:2,numTaps:1}),this.reset()};oi.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},oi.prototype.touchstart=function(l,d,c){this._zoomIn.touchstart(l,d,c),this._zoomOut.touchstart(l,d,c)},oi.prototype.touchmove=function(l,d,c){this._zoomIn.touchmove(l,d,c),this._zoomOut.touchmove(l,d,c)},oi.prototype.touchend=function(l,d,c){var f=this,E=this._zoomIn.touchend(l,d,c),A=this._zoomOut.touchend(l,d,c);return E?(this._active=!0,l.preventDefault(),setTimeout(function(){return f.reset()},0),{cameraAnimation:function(T){return T.easeTo({duration:300,zoom:T.getZoom()+1,around:T.unproject(E)},{originalEvent:l})}}):A?(this._active=!0,l.preventDefault(),setTimeout(function(){return f.reset()},0),{cameraAnimation:function(T){return T.easeTo({duration:300,zoom:T.getZoom()-1,around:T.unproject(A)},{originalEvent:l})}}):void 0},oi.prototype.touchcancel=function(){this.reset()},oi.prototype.enable=function(){this._enabled=!0},oi.prototype.disable=function(){this._enabled=!1,this.reset()},oi.prototype.isEnabled=function(){return this._enabled},oi.prototype.isActive=function(){return this._active};var Xl={0:1,2:2},Kt=function(l){this.reset(),this._clickTolerance=l.clickTolerance||1};Kt.prototype.blur=function(){this.reset()},Kt.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Kt.prototype._correctButton=function(l,d){return!1},Kt.prototype._move=function(l,d){return{}},Kt.prototype.mousedown=function(l,d){if(!this._lastPoint){var c=m.mouseButton(l);this._correctButton(l,c)&&(this._lastPoint=d,this._eventButton=c)}},Kt.prototype.mousemoveWindow=function(l,d){var c=this._lastPoint;if(c){if(l.preventDefault(),function(f,E){var A=Xl[E];return f.buttons===void 0||(f.buttons&A)!==A}(l,this._eventButton))this.reset();else if(this._moved||!(d.dist(c)0&&(this._active=!0);var f=pl(c,d),E=new n.Point(0,0),A=new n.Point(0,0),T=0;for(var w in f){var D=f[w],z=this._touches[w];z&&(E._add(D),A._add(D.sub(z)),T++,f[w]=D)}if(this._touches=f,!(TMath.abs(l.x)}var ql=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.reset=function(){l.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},d.prototype._start=function(c){this._lastPoints=c,Sp(c[0].sub(c[1]))&&(this._valid=!1)},d.prototype._move=function(c,f,E){var A=c[0].sub(this._lastPoints[0]),T=c[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(A,T,E.timeStamp),this._valid)return this._lastPoints=c,this._active=!0,{pitchDelta:(A.y+T.y)/2*-.5}},d.prototype.gestureBeginsVertically=function(c,f,E){if(this._valid!==void 0)return this._valid;var A=c.mag()>=2,T=f.mag()>=2;if(A||T){if(!A||!T)return this._firstMove===void 0&&(this._firstMove=E),E-this._firstMove<100&&void 0;var w=c.y>0==f.y>0;return Sp(c)&&Sp(f)&&w}},d}(Aa),Zc={panStep:100,bearingStep:15,pitchStep:10},Fa=function(){var l=Zc;this._panStep=l.panStep,this._bearingStep=l.bearingStep,this._pitchStep=l.pitchStep,this._rotationDisabled=!1};function Ba(l){return l*(2-l)}Fa.prototype.blur=function(){this.reset()},Fa.prototype.reset=function(){this._active=!1},Fa.prototype.keydown=function(l){var d=this;if(!(l.altKey||l.ctrlKey||l.metaKey)){var c=0,f=0,E=0,A=0,T=0;switch(l.keyCode){case 61:case 107:case 171:case 187:c=1;break;case 189:case 109:case 173:c=-1;break;case 37:l.shiftKey?f=-1:(l.preventDefault(),A=-1);break;case 39:l.shiftKey?f=1:(l.preventDefault(),A=1);break;case 38:l.shiftKey?E=1:(l.preventDefault(),T=-1);break;case 40:l.shiftKey?E=-1:(l.preventDefault(),T=1);break;default:return}return this._rotationDisabled&&(f=0,E=0),{cameraAnimation:function(w){var D=w.getZoom();w.easeTo({duration:300,easeId:"keyboardHandler",easing:Ba,zoom:c?Math.round(D)+c*(l.shiftKey?2:1):D,bearing:w.getBearing()+f*d._bearingStep,pitch:w.getPitch()+E*d._pitchStep,offset:[-A*d._panStep,-T*d._panStep],center:w.getCenter()},{originalEvent:l})}}}},Fa.prototype.enable=function(){this._enabled=!0},Fa.prototype.disable=function(){this._enabled=!1,this.reset()},Fa.prototype.isEnabled=function(){return this._enabled},Fa.prototype.isActive=function(){return this._active},Fa.prototype.disableRotation=function(){this._rotationDisabled=!0},Fa.prototype.enableRotation=function(){this._rotationDisabled=!1};var po=function(l,d){this._map=l,this._el=l.getCanvasContainer(),this._handler=d,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,n.bindAll(["_onTimeout"],this)};po.prototype.setZoomRate=function(l){this._defaultZoomRate=l},po.prototype.setWheelZoomRate=function(l){this._wheelZoomRate=l},po.prototype.isEnabled=function(){return!!this._enabled},po.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},po.prototype.isZooming=function(){return!!this._zooming},po.prototype.enable=function(l){this.isEnabled()||(this._enabled=!0,this._aroundCenter=l&&l.around==="center")},po.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},po.prototype.wheel=function(l){if(this.isEnabled()){var d=l.deltaMode===n.window.WheelEvent.DOM_DELTA_LINE?40*l.deltaY:l.deltaY,c=n.browser.now(),f=c-(this._lastWheelEventTime||0);this._lastWheelEventTime=c,d!==0&&d%4.000244140625==0?this._type="wheel":d!==0&&Math.abs(d)<4?this._type="trackpad":f>400?(this._type=null,this._lastValue=d,this._timeout=setTimeout(this._onTimeout,40,l)):this._type||(this._type=Math.abs(f*d)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,d+=this._lastValue)),l.shiftKey&&d&&(d/=4),this._type&&(this._lastWheelEvent=l,this._delta-=d,this._active||this._start(l)),l.preventDefault()}},po.prototype._onTimeout=function(l){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(l)},po.prototype._start=function(l){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var d=m.mousePos(this._el,l);this._around=n.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(d)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},po.prototype.renderFrame=function(){var l=this;if(this._frameId&&(this._frameId=null,this.isActive())){var d=this._map.transform;if(this._delta!==0){var c=this._type==="wheel"&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,f=2/(1+Math.exp(-Math.abs(this._delta*c)));this._delta<0&&f!==0&&(f=1/f);var E=typeof this._targetZoom=="number"?d.zoomScale(this._targetZoom):d.scale;this._targetZoom=Math.min(d.maxZoom,Math.max(d.minZoom,d.scaleZoom(E*f))),this._type==="wheel"&&(this._startZoom=d.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var A,T=typeof this._targetZoom=="number"?this._targetZoom:d.zoom,w=this._startZoom,D=this._easing,z=!1;if(this._type==="wheel"&&w&&D){var $=Math.min((n.browser.now()-this._lastWheelEventTime)/200,1),K=D($);A=n.number(w,T,K),$<1?this._frameId||(this._frameId=!0):z=!0}else A=T,z=!0;return this._active=!0,z&&(this._active=!1,this._finishTimeout=setTimeout(function(){l._zooming=!1,l._handler._triggerRenderFrame(),delete l._targetZoom,delete l._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!z,zoomDelta:A-d.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},po.prototype._smoothOutEasing=function(l){var d=n.ease;if(this._prevEase){var c=this._prevEase,f=(n.browser.now()-c.start)/c.duration,E=c.easing(f+.01)-c.easing(f),A=.27/Math.sqrt(E*E+1e-4)*.01,T=Math.sqrt(.0729-A*A);d=n.bezier(A,T,.25,1)}return this._prevEase={start:n.browser.now(),duration:l,easing:d},d},po.prototype.blur=function(){this.reset()},po.prototype.reset=function(){this._active=!1};var Ua=function(l,d){this._clickZoom=l,this._tapZoom=d};Ua.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},Ua.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},Ua.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},Ua.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var ka=function(){this.reset()};ka.prototype.reset=function(){this._active=!1},ka.prototype.blur=function(){this.reset()},ka.prototype.dblclick=function(l,d){return l.preventDefault(),{cameraAnimation:function(c){c.easeTo({duration:300,zoom:c.getZoom()+(l.shiftKey?-1:1),around:c.unproject(d)},{originalEvent:l})}}},ka.prototype.enable=function(){this._enabled=!0},ka.prototype.disable=function(){this._enabled=!1,this.reset()},ka.prototype.isEnabled=function(){return this._enabled},ka.prototype.isActive=function(){return this._active};var wn=function(){this._tap=new ea({numTouches:1,numTaps:1}),this.reset()};wn.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},wn.prototype.touchstart=function(l,d,c){this._swipePoint||(this._tapTime&&l.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?c.length>0&&(this._swipePoint=d[0],this._swipeTouch=c[0].identifier):this._tap.touchstart(l,d,c))},wn.prototype.touchmove=function(l,d,c){if(this._tapTime){if(this._swipePoint){if(c[0].identifier!==this._swipeTouch)return;var f=d[0],E=f.y-this._swipePoint.y;return this._swipePoint=f,l.preventDefault(),this._active=!0,{zoomDelta:E/128}}}else this._tap.touchmove(l,d,c)},wn.prototype.touchend=function(l,d,c){this._tapTime?this._swipePoint&&c.length===0&&this.reset():this._tap.touchend(l,d,c)&&(this._tapTime=l.timeStamp)},wn.prototype.touchcancel=function(){this.reset()},wn.prototype.enable=function(){this._enabled=!0},wn.prototype.disable=function(){this._enabled=!1,this.reset()},wn.prototype.isEnabled=function(){return this._enabled},wn.prototype.isActive=function(){return this._active};var Cu=function(l,d,c){this._el=l,this._mousePan=d,this._touchPan=c};Cu.prototype.enable=function(l){this._inertiaOptions=l||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},Cu.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},Cu.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},Cu.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var eu=function(l,d,c){this._pitchWithRotate=l.pitchWithRotate,this._mouseRotate=d,this._mousePitch=c};eu.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},eu.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},eu.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},eu.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var qa=function(l,d,c,f){this._el=l,this._touchZoom=d,this._touchRotate=c,this._tapDragZoom=f,this._rotationDisabled=!1,this._enabled=!0};qa.prototype.enable=function(l){this._touchZoom.enable(l),this._rotationDisabled||this._touchRotate.enable(l),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},qa.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},qa.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},qa.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},qa.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},qa.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var Wn=function(l){return l.zoom||l.drag||l.pitch||l.rotate},wp=function(l){function d(){l.apply(this,arguments)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d}(n.Event);function Rr(l){return l.panDelta&&l.panDelta.mag()||l.zoomDelta||l.bearingDelta||l.pitchDelta}var gr=function(l,d){this._map=l,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new ul(l),this._bearingSnap=d.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(d),n.bindAll(["handleEvent","handleWindowEvent"],this);var c=this._el;this._listeners=[[c,"touchstart",{passive:!0}],[c,"touchmove",{passive:!1}],[c,"touchend",void 0],[c,"touchcancel",void 0],[c,"mousedown",void 0],[c,"mousemove",void 0],[c,"mouseup",void 0],[n.window.document,"mousemove",{capture:!0}],[n.window.document,"mouseup",void 0],[c,"mouseover",void 0],[c,"mouseout",void 0],[c,"dblclick",void 0],[c,"click",void 0],[c,"keydown",{capture:!1}],[c,"keyup",void 0],[c,"wheel",{passive:!1}],[c,"contextmenu",void 0],[n.window,"blur",void 0]];for(var f=0,E=this._listeners;fT?Math.min(2,ct):Math.max(.5,ct),Cr=Math.pow(nr,1-Ht),Dr=A.unproject(at.add(Je.mult(Ht*Cr)).mult(Bt));A.setLocationAtPoint(A.renderWorldCopies?Dr.wrap():Dr,Te)}E._fireMoveEvents(f)},function(Ht){E._afterEase(f,Ht)},c),this},d.prototype._prepareEase=function(c,f,E){E===void 0&&(E={}),this._moving=!0,f||E.moving||this.fire(new n.Event("movestart",c)),this._zooming&&!E.zooming&&this.fire(new n.Event("zoomstart",c)),this._rotating&&!E.rotating&&this.fire(new n.Event("rotatestart",c)),this._pitching&&!E.pitching&&this.fire(new n.Event("pitchstart",c))},d.prototype._fireMoveEvents=function(c){this.fire(new n.Event("move",c)),this._zooming&&this.fire(new n.Event("zoom",c)),this._rotating&&this.fire(new n.Event("rotate",c)),this._pitching&&this.fire(new n.Event("pitch",c))},d.prototype._afterEase=function(c,f){if(!this._easeId||!f||this._easeId!==f){delete this._easeId;var E=this._zooming,A=this._rotating,T=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,E&&this.fire(new n.Event("zoomend",c)),A&&this.fire(new n.Event("rotateend",c)),T&&this.fire(new n.Event("pitchend",c)),this.fire(new n.Event("moveend",c))}},d.prototype.flyTo=function(c,f){var E=this;if(!c.essential&&n.browser.prefersReducedMotion){var A=n.pick(c,["center","zoom","bearing","pitch","around"]);return this.jumpTo(A,f)}this.stop(),c=n.extend({offset:[0,0],speed:1.2,curve:1.42,easing:n.ease},c);var T=this.transform,w=this.getZoom(),D=this.getBearing(),z=this.getPitch(),$=this.getPadding(),K="zoom"in c?n.clamp(+c.zoom,T.minZoom,T.maxZoom):w,ee="bearing"in c?this._normalizeBearing(c.bearing,D):D,_e="pitch"in c?+c.pitch:z,de="padding"in c?c.padding:T.padding,Te=T.zoomScale(K-w),le=n.Point.convert(c.offset),Fe=T.centerPoint.add(le),De=T.pointLocation(Fe),Xe=n.LngLat.convert(c.center||De);this._normalizeCenter(Xe);var at=T.project(De),Je=T.project(Xe).sub(at),ct=c.curve,Pt=Math.max(T.width,T.height),Ht=Pt/Te,Bt=Je.mag();if("minZoom"in c){var nr=n.clamp(Math.min(c.minZoom,w,K),T.minZoom,T.maxZoom),Cr=Pt/T.zoomScale(nr-w);ct=Math.sqrt(Cr/Bt*2)}var Dr=ct*ct;function Nr(jr){var zr=(Ht*Ht-Pt*Pt+(jr?-1:1)*Dr*Dr*Bt*Bt)/(2*(jr?Ht:Pt)*Dr*Bt);return Math.log(Math.sqrt(zr*zr+1)-zr)}function Lo(jr){return(Math.exp(jr)-Math.exp(-jr))/2}function cr(jr){return(Math.exp(jr)+Math.exp(-jr))/2}var $r=Nr(0),lo=function(jr){return cr($r)/cr($r+ct*jr)},Xr=function(jr){return Pt*((cr($r)*(Lo(zr=$r+ct*jr)/cr(zr))-Lo($r))/Dr)/Bt;var zr},Gr=(Nr(1)-$r)/ct;if(Math.abs(Bt)<1e-6||!isFinite(Gr)){if(Math.abs(Pt-Ht)<1e-6)return this.easeTo(c,f);var uo=Htc.maxDuration&&(c.duration=0),this._zooming=!0,this._rotating=D!==ee,this._pitching=_e!==z,this._padding=!T.isPaddingEqual(de),this._prepareEase(f,!1),this._ease(function(jr){var zr=jr*Gr,qi=1/lo(zr);T.zoom=jr===1?K:w+T.scaleZoom(qi),E._rotating&&(T.bearing=n.number(D,ee,jr)),E._pitching&&(T.pitch=n.number(z,_e,jr)),E._padding&&(T.interpolatePadding($,de,jr),Fe=T.centerPoint.add(le));var Si=jr===1?Xe:T.unproject(at.add(Je.mult(Xr(zr))).mult(qi));T.setLocationAtPoint(T.renderWorldCopies?Si.wrap():Si,Fe),E._fireMoveEvents(f)},function(){return E._afterEase(f)},c),this},d.prototype.isEasing=function(){return!!this._easeFrameId},d.prototype.stop=function(){return this._stop()},d.prototype._stop=function(c,f){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var E=this._onEaseEnd;delete this._onEaseEnd,E.call(this,f)}if(!c){var A=this.handlers;A&&A.stop(!1)}return this},d.prototype._ease=function(c,f,E){E.animate===!1||E.duration===0?(c(1),f()):(this._easeStart=n.browser.now(),this._easeOptions=E,this._onEaseFrame=c,this._onEaseEnd=f,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},d.prototype._renderFrameCallback=function(){var c=Math.min((n.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(c)),c<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},d.prototype._normalizeBearing=function(c,f){c=n.wrap(c,-180,180);var E=Math.abs(c-f);return Math.abs(c-360-f)180?-360:E<-180?360:0}},d}(n.Evented),Xn=function(l){l===void 0&&(l={}),this.options=l,n.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)};Xn.prototype.getDefaultPosition=function(){return"bottom-right"},Xn.prototype.onAdd=function(l){var d=this.options&&this.options.compact;return this._map=l,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=m.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=m.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),d&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),d===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Xn.prototype.onRemove=function(){m.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Xn.prototype._setElementTitle=function(l,d){var c=this._map._getUIString("AttributionControl."+d);l.title=c,l.setAttribute("aria-label",c)},Xn.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"))},Xn.prototype._updateEditLink=function(){var l=this._editLink;l||(l=this._editLink=this._container.querySelector(".mapbox-improve-map"));var d=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||n.config.ACCESS_TOKEN}];if(l){var c=d.reduce(function(f,E,A){return E.value&&(f+=E.key+"="+E.value+(A=0)return!1;return!0})).join(" | ");T!==this._attribHTML&&(this._attribHTML=T,l.length?(this._innerContainer.innerHTML=T,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Xn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")};var ls=function(){n.bindAll(["_updateLogo"],this),n.bindAll(["_updateCompact"],this)};ls.prototype.onAdd=function(l){this._map=l,this._container=m.create("div","mapboxgl-ctrl");var d=m.create("a","mapboxgl-ctrl-logo");return d.target="_blank",d.rel="noopener nofollow",d.href="https://www.mapbox.com/",d.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),d.setAttribute("rel","noopener nofollow"),this._container.appendChild(d),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},ls.prototype.onRemove=function(){m.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},ls.prototype.getDefaultPosition=function(){return"bottom-left"},ls.prototype._updateLogo=function(l){l&&l.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")},ls.prototype._logoRequired=function(){if(this._map.style){var l=this._map.style.sourceCaches;for(var d in l)if(l[d].getSource().mapbox_logo)return!0;return!1}},ls.prototype._updateCompact=function(){var l=this._container.children;if(l.length){var d=l[0];this._map.getCanvasContainer().offsetWidth<250?d.classList.add("mapboxgl-compact"):d.classList.remove("mapboxgl-compact")}};var Ai=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};Ai.prototype.add=function(l){var d=++this._id;return this._queue.push({callback:l,id:d,cancelled:!1}),d},Ai.prototype.remove=function(l){for(var d=this._currentlyRunning,c=0,f=d?this._queue.concat(d):this._queue;cf.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(f.minPitch!=null&&f.maxPitch!=null&&f.minPitch>f.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(f.minPitch!=null&&f.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(f.maxPitch!=null&&f.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var A=new No(f.minZoom,f.maxZoom,f.minPitch,f.maxPitch,f.renderWorldCopies);if(l.call(this,A,f),this._interactive=f.interactive,this._maxTileCacheSize=f.maxTileCacheSize,this._failIfMajorPerformanceCaveat=f.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=f.preserveDrawingBuffer,this._antialias=f.antialias,this._trackResize=f.trackResize,this._bearingSnap=f.bearingSnap,this._refreshExpiredTiles=f.refreshExpiredTiles,this._fadeDuration=f.fadeDuration,this._crossSourceCollisions=f.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=f.collectResourceTiming,this._renderTaskQueue=new Ai,this._controls=[],this._mapId=n.uniqueId(),this._locale=n.extend({},Ka,f.locale),this._clickTolerance=f.clickTolerance,this._requestManager=new n.RequestManager(f.transformRequest,f.accessToken),typeof f.container=="string"){if(this._container=n.window.document.getElementById(f.container),!this._container)throw new Error("Container '"+f.container+"' not found.")}else{if(!(f.container instanceof tp))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=f.container}if(f.maxBounds&&this.setMaxBounds(f.maxBounds),n.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",function(){return E._update(!1)}),this.on("moveend",function(){return E._update(!1)}),this.on("zoom",function(){return E._update(!0)}),n.window!==void 0&&(n.window.addEventListener("online",this._onWindowOnline,!1),n.window.addEventListener("resize",this._onWindowResize,!1),n.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new gr(this,f),this._hash=f.hash&&new La(typeof f.hash=="string"&&f.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:f.center,zoom:f.zoom,bearing:f.bearing,pitch:f.pitch}),f.bounds&&(this.resize(),this.fitBounds(f.bounds,n.extend({},f.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=f.localIdeographFontFamily,f.style&&this.setStyle(f.style,{localIdeographFontFamily:f.localIdeographFontFamily}),f.attributionControl&&this.addControl(new Xn({customAttribution:f.customAttribution})),this.addControl(new ls,f.logoPosition),this.on("style.load",function(){E.transform.unmodified&&E.jumpTo(E.style.stylesheet)}),this.on("data",function(T){E._update(T.dataType==="style"),E.fire(new n.Event(T.dataType+"data",T))}),this.on("dataloading",function(T){E.fire(new n.Event(T.dataType+"dataloading",T))})}l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d;var c={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return d.prototype._getMapId=function(){return this._mapId},d.prototype.addControl=function(f,E){if(E===void 0&&(E=f.getDefaultPosition?f.getDefaultPosition():"top-right"),!f||!f.onAdd)return this.fire(new n.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var A=f.onAdd(this);this._controls.push(f);var T=this._controlPositions[E];return E.indexOf("bottom")!==-1?T.insertBefore(A,T.firstChild):T.appendChild(A),this},d.prototype.removeControl=function(f){if(!f||!f.onRemove)return this.fire(new n.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var E=this._controls.indexOf(f);return E>-1&&this._controls.splice(E,1),f.onRemove(this),this},d.prototype.hasControl=function(f){return this._controls.indexOf(f)>-1},d.prototype.resize=function(f){var E=this._containerDimensions(),A=E[0],T=E[1];if(A===this.transform.width&&T===this.transform.height)return this;this._resizeCanvas(A,T),this.transform.resize(A,T),this.painter.resize(A,T);var w=!this._moving;return w&&this.fire(new n.Event("movestart",f)).fire(new n.Event("move",f)),this.fire(new n.Event("resize",f)),w&&this.fire(new n.Event("moveend",f)),this},d.prototype.getBounds=function(){return this.transform.getBounds()},d.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},d.prototype.setMaxBounds=function(f){return this.transform.setMaxBounds(n.LngLatBounds.convert(f)),this._update()},d.prototype.setMinZoom=function(f){if((f=f??-2)>=-2&&f<=this.transform.maxZoom)return this.transform.minZoom=f,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=f,this._update(),this.getZoom()>f&&this.setZoom(f),this;throw new Error("maxZoom must be greater than the current minZoom")},d.prototype.getMaxZoom=function(){return this.transform.maxZoom},d.prototype.setMinPitch=function(f){if((f=f??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(f>=0&&f<=this.transform.maxPitch)return this.transform.minPitch=f,this._update(),this.getPitch()60)throw new Error("maxPitch must be less than or equal to 60");if(f>=this.transform.minPitch)return this.transform.maxPitch=f,this._update(),this.getPitch()>f&&this.setPitch(f),this;throw new Error("maxPitch must be greater than the current minPitch")},d.prototype.getMaxPitch=function(){return this.transform.maxPitch},d.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},d.prototype.setRenderWorldCopies=function(f){return this.transform.renderWorldCopies=f,this._update()},d.prototype.project=function(f){return this.transform.locationPoint(n.LngLat.convert(f))},d.prototype.unproject=function(f){return this.transform.pointLocation(n.Point.convert(f))},d.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},d.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},d.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},d.prototype._createDelegatedListener=function(f,E,A){var T,w=this;if(f==="mouseenter"||f==="mouseover"){var D=!1;return{layer:E,listener:A,delegates:{mousemove:function($){var K=w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[];K.length?D||(D=!0,A.call(w,new bi(f,w,$.originalEvent,{features:K}))):D=!1},mouseout:function(){D=!1}}}}if(f==="mouseleave"||f==="mouseout"){var z=!1;return{layer:E,listener:A,delegates:{mousemove:function($){(w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[]).length?z=!0:z&&(z=!1,A.call(w,new bi(f,w,$.originalEvent)))},mouseout:function($){z&&(z=!1,A.call(w,new bi(f,w,$.originalEvent)))}}}}return{layer:E,listener:A,delegates:(T={},T[f]=function($){var K=w.getLayer(E)?w.queryRenderedFeatures($.point,{layers:[E]}):[];K.length&&($.features=K,A.call(w,$),delete $.features)},T)}},d.prototype.on=function(f,E,A){if(A===void 0)return l.prototype.on.call(this,f,E);var T=this._createDelegatedListener(f,E,A);for(var w in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[f]=this._delegatedListeners[f]||[],this._delegatedListeners[f].push(T),T.delegates)this.on(w,T.delegates[w]);return this},d.prototype.once=function(f,E,A){if(A===void 0)return l.prototype.once.call(this,f,E);var T=this._createDelegatedListener(f,E,A);for(var w in T.delegates)this.once(w,T.delegates[w]);return this},d.prototype.off=function(f,E,A){var T=this;return A===void 0?l.prototype.off.call(this,f,E):(this._delegatedListeners&&this._delegatedListeners[f]&&function(w){for(var D=w[f],z=0;z180;){var T=c.locationPoint(l);if(T.x>=0&&T.y>=0&&T.x<=c.width&&T.y<=c.height)break;l.lng>c.center.lng?l.lng-=360:l.lng+=360}return l}Sa.prototype.down=function(l,d){this.mouseRotate.mousedown(l,d),this.mousePitch&&this.mousePitch.mousedown(l,d),m.disableDrag()},Sa.prototype.move=function(l,d){var c=this.map,f=this.mouseRotate.mousemoveWindow(l,d);if(f&&f.bearingDelta&&c.setBearing(c.getBearing()+f.bearingDelta),this.mousePitch){var E=this.mousePitch.mousemoveWindow(l,d);E&&E.pitchDelta&&c.setPitch(c.getPitch()+E.pitchDelta)}},Sa.prototype.off=function(){var l=this.element;m.removeEventListener(l,"mousedown",this.mousedown),m.removeEventListener(l,"touchstart",this.touchstart,{passive:!1}),m.removeEventListener(l,"touchmove",this.touchmove),m.removeEventListener(l,"touchend",this.touchend),m.removeEventListener(l,"touchcancel",this.reset),this.offTemp()},Sa.prototype.offTemp=function(){m.enableDrag(),m.removeEventListener(n.window,"mousemove",this.mousemove),m.removeEventListener(n.window,"mouseup",this.mouseup)},Sa.prototype.mousedown=function(l){this.down(n.extend({},l,{ctrlKey:!0,preventDefault:function(){return l.preventDefault()}}),m.mousePos(this.element,l)),m.addEventListener(n.window,"mousemove",this.mousemove),m.addEventListener(n.window,"mouseup",this.mouseup)},Sa.prototype.mousemove=function(l){this.move(l,m.mousePos(this.element,l))},Sa.prototype.mouseup=function(l){this.mouseRotate.mouseupWindow(l),this.mousePitch&&this.mousePitch.mouseupWindow(l),this.offTemp()},Sa.prototype.touchstart=function(l){l.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=m.touchPos(this.element,l.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return l.preventDefault()}},this._startPos))},Sa.prototype.touchmove=function(l){l.targetTouches.length!==1?this.reset():(this._lastPos=m.touchPos(this.element,l.targetTouches)[0],this.move({preventDefault:function(){return l.preventDefault()}},this._lastPos))},Sa.prototype.touchend=function(l){l.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)=f}this._isDragging&&(this._pos=c.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new n.Event("dragstart"))),this.fire(new n.Event("drag")))},d.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new n.Event("dragend")),this._state="inactive"},d.prototype._addDragHandler=function(c){this._element.contains(c.originalEvent.target)&&(c.preventDefault(),this._positionDelta=c.point.sub(this._pos).add(this._offset),this._pointerdownPos=c.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},d.prototype.setDraggable=function(c){return this._draggable=!!c,this._map&&(c?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},d.prototype.isDraggable=function(){return this._draggable},d.prototype.setRotation=function(c){return this._rotation=c||0,this._update(),this},d.prototype.getRotation=function(){return this._rotation},d.prototype.setRotationAlignment=function(c){return this._rotationAlignment=c||"auto",this._update(),this},d.prototype.getRotationAlignment=function(){return this._rotationAlignment},d.prototype.setPitchAlignment=function(c){return this._pitchAlignment=c&&c!=="auto"?c:this._rotationAlignment,this._update(),this},d.prototype.getPitchAlignment=function(){return this._pitchAlignment},d}(n.Evented),Jl={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},rp=0,op=!1,$c=function(l){function d(c){l.call(this),this.options=n.extend({},Jl,c),n.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.onAdd=function(c){var f;return this._map=c,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),f=this._setupUI,Cp!==void 0?f(Cp):n.window.navigator.permissions!==void 0?n.window.navigator.permissions.query({name:"geolocation"}).then(function(E){f(Cp=E.state!=="denied")}):f(Cp=!!n.window.navigator.geolocation),this._container},d.prototype.onRemove=function(){this._geolocationWatchID!==void 0&&(n.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),m.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,rp=0,op=!1},d.prototype._isOutOfMapMaxBounds=function(c){var f=this._map.getMaxBounds(),E=c.coords;return f&&(E.longitudef.getEast()||E.latitudef.getNorth())},d.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},d.prototype._onSuccess=function(c){if(this._map){if(this._isOutOfMapMaxBounds(c))return this._setErrorState(),this.fire(new n.Event("outofmaxbounds",c)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=c,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(c),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(c),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new n.Event("geolocate",c)),this._finish()}},d.prototype._updateCamera=function(c){var f=new n.LngLat(c.coords.longitude,c.coords.latitude),E=c.coords.accuracy,A=this._map.getBearing(),T=n.extend({bearing:A},this.options.fitBoundsOptions);this._map.fitBounds(f.toBounds(E),T,{geolocateSource:!0})},d.prototype._updateMarker=function(c){if(c){var f=new n.LngLat(c.coords.longitude,c.coords.latitude);this._accuracyCircleMarker.setLngLat(f).addTo(this._map),this._userLocationDotMarker.setLngLat(f).addTo(this._map),this._accuracy=c.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},d.prototype._updateCircleRadius=function(){var c=this._map._container.clientHeight/2,f=this._map.unproject([0,c]),E=this._map.unproject([1,c]),A=f.distanceTo(E),T=Math.ceil(2*this._accuracy/A);this._circleElement.style.width=T+"px",this._circleElement.style.height=T+"px"},d.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},d.prototype._onError=function(c){if(this._map){if(this.options.trackUserLocation)if(c.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(c.code===3&&op)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new n.Event("error",c)),this._finish()}},d.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},d.prototype._setupUI=function(c){var f=this;if(this._container.addEventListener("contextmenu",function(T){return T.preventDefault()}),this._geolocateButton=m.create("button","mapboxgl-ctrl-geolocate",this._container),m.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",c===!1){n.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var E=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=E,this._geolocateButton.setAttribute("aria-label",E)}else{var A=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=A,this._geolocateButton.setAttribute("aria-label",A)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=m.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new cl(this._dotElement),this._circleElement=m.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new cl({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",function(T){T.geolocateSource||f._watchState!=="ACTIVE_LOCK"||T.originalEvent&&T.originalEvent.type==="resize"||(f._watchState="BACKGROUND",f._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),f._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),f.fire(new n.Event("trackuserlocationend")))})},d.prototype.trigger=function(){if(!this._setup)return n.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new n.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":rp--,op=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new n.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new n.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){var c;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++rp>1?(c={maximumAge:6e5,timeout:0},op=!0):(c=this.options.positionOptions,op=!1),this._geolocationWatchID=n.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,c)}}else n.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},d.prototype._clearWatch=function(){n.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},d}(n.Evented),Rs={maxWidth:100,unit:"metric"},cs=function(l){this.options=n.extend({},Rs,l),n.bindAll(["_onMove","setUnit"],this)};function ec(l,d,c){var f=c&&c.maxWidth||100,E=l._container.clientHeight/2,A=l.unproject([0,E]),T=l.unproject([f,E]),w=A.distanceTo(T);if(c&&c.unit==="imperial"){var D=3.2808*w;D>5280?Mu(d,f,D/5280,l._getUIString("ScaleControl.Miles")):Mu(d,f,D,l._getUIString("ScaleControl.Feet"))}else c&&c.unit==="nautical"?Mu(d,f,w/1852,l._getUIString("ScaleControl.NauticalMiles")):w>=1e3?Mu(d,f,w/1e3,l._getUIString("ScaleControl.Kilometers")):Mu(d,f,w,l._getUIString("ScaleControl.Meters"))}function Mu(l,d,c,f){var E,A,T,w=(E=c,(A=Math.pow(10,(""+Math.floor(E)).length-1))*(T=(T=E/A)>=10?10:T>=5?5:T>=3?3:T>=2?2:T>=1?1:function(D){var z=Math.pow(10,Math.ceil(-Math.log(D)/Math.LN10));return Math.round(D*z)/z}(T)));l.style.width=d*(w/c)+"px",l.innerHTML=w+" "+f}cs.prototype.getDefaultPosition=function(){return"bottom-left"},cs.prototype._onMove=function(){ec(this._map,this._container,this.options)},cs.prototype.onAdd=function(l){return this._map=l,this._container=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",l.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},cs.prototype.onRemove=function(){m.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},cs.prototype.setUnit=function(l){this.options.unit=l,ec(this._map,this._container,this.options)};var Qa=function(l){this._fullscreen=!1,l&&l.container&&(l.container instanceof n.window.HTMLElement?this._container=l.container:n.warnOnce("Full screen control 'container' must be a DOM element.")),n.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in n.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in n.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in n.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in n.window.document&&(this._fullscreenchange="MSFullscreenChange")};Qa.prototype.onAdd=function(l){return this._map=l,this._container||(this._container=this._map.getContainer()),this._controlContainer=m.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",n.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Qa.prototype.onRemove=function(){m.remove(this._controlContainer),this._map=null,n.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Qa.prototype._checkFullscreenSupport=function(){return!!(n.window.document.fullscreenEnabled||n.window.document.mozFullScreenEnabled||n.window.document.msFullscreenEnabled||n.window.document.webkitFullscreenEnabled)},Qa.prototype._setupUI=function(){var l=this._fullscreenButton=m.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);m.create("span","mapboxgl-ctrl-icon",l).setAttribute("aria-hidden",!0),l.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),n.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Qa.prototype._updateTitle=function(){var l=this._getTitle();this._fullscreenButton.setAttribute("aria-label",l),this._fullscreenButton.title=l},Qa.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Qa.prototype._isFullscreen=function(){return this._fullscreen},Qa.prototype._changeIcon=function(){(n.window.document.fullscreenElement||n.window.document.mozFullScreenElement||n.window.document.webkitFullscreenElement||n.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Qa.prototype._onClickFullscreen=function(){this._isFullscreen()?n.window.document.exitFullscreen?n.window.document.exitFullscreen():n.window.document.mozCancelFullScreen?n.window.document.mozCancelFullScreen():n.window.document.msExitFullscreen?n.window.document.msExitFullscreen():n.window.document.webkitCancelFullScreen&&n.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var qc={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},dl=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),tc=function(l){function d(c){l.call(this),this.options=n.extend(Object.create(qc),c),n.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return l&&(d.__proto__=l),(d.prototype=Object.create(l&&l.prototype)).constructor=d,d.prototype.addTo=function(c){return this._map&&this.remove(),this._map=c,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new n.Event("open")),this},d.prototype.isOpen=function(){return!!this._map},d.prototype.remove=function(){return this._content&&m.remove(this._content),this._container&&(m.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new n.Event("close")),this},d.prototype.getLngLat=function(){return this._lngLat},d.prototype.setLngLat=function(c){return this._lngLat=n.LngLat.convert(c),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},d.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},d.prototype.getElement=function(){return this._container},d.prototype.setText=function(c){return this.setDOMContent(n.window.document.createTextNode(c))},d.prototype.setHTML=function(c){var f,E=n.window.document.createDocumentFragment(),A=n.window.document.createElement("body");for(A.innerHTML=c;f=A.firstChild;)E.appendChild(f);return this.setDOMContent(E)},d.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},d.prototype.setMaxWidth=function(c){return this.options.maxWidth=c,this._update(),this},d.prototype.setDOMContent=function(c){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=m.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(c),this._createCloseButton(),this._update(),this._focusFirstElement(),this},d.prototype.addClassName=function(c){this._container&&this._container.classList.add(c)},d.prototype.removeClassName=function(c){this._container&&this._container.classList.remove(c)},d.prototype.setOffset=function(c){return this.options.offset=c,this._update(),this},d.prototype.toggleClassName=function(c){if(this._container)return this._container.classList.toggle(c)},d.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=m.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},d.prototype._onMouseUp=function(c){this._update(c.point)},d.prototype._onMouseMove=function(c){this._update(c.point)},d.prototype._onDrag=function(c){this._update(c.point)},d.prototype._update=function(c){var f=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=m.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=m.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach(function(K){return f._container.classList.add(K)}),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Rp(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||c)){var E=this._pos=this._trackPointer&&c?c:this._map.project(this._lngLat),A=this.options.anchor,T=function K(ee){if(ee){if(typeof ee=="number"){var _e=Math.round(Math.sqrt(.5*Math.pow(ee,2)));return{center:new n.Point(0,0),top:new n.Point(0,ee),"top-left":new n.Point(_e,_e),"top-right":new n.Point(-_e,_e),bottom:new n.Point(0,-ee),"bottom-left":new n.Point(_e,-_e),"bottom-right":new n.Point(-_e,-_e),left:new n.Point(ee,0),right:new n.Point(-ee,0)}}if(ee instanceof n.Point||Array.isArray(ee)){var de=n.Point.convert(ee);return{center:de,top:de,"top-left":de,"top-right":de,bottom:de,"bottom-left":de,"bottom-right":de,left:de,right:de}}return{center:n.Point.convert(ee.center||[0,0]),top:n.Point.convert(ee.top||[0,0]),"top-left":n.Point.convert(ee["top-left"]||[0,0]),"top-right":n.Point.convert(ee["top-right"]||[0,0]),bottom:n.Point.convert(ee.bottom||[0,0]),"bottom-left":n.Point.convert(ee["bottom-left"]||[0,0]),"bottom-right":n.Point.convert(ee["bottom-right"]||[0,0]),left:n.Point.convert(ee.left||[0,0]),right:n.Point.convert(ee.right||[0,0])}}return K(new n.Point(0,0))}(this.options.offset);if(!A){var w,D=this._container.offsetWidth,z=this._container.offsetHeight;w=E.y+T.bottom.ythis._map.transform.height-z?["bottom"]:[],E.xthis._map.transform.width-D/2&&w.push("right"),A=w.length===0?"bottom":w.join("-")}var $=E.add(T[A]).round();m.setTransform(this._container,ws[A]+" translate("+$.x+"px,"+$.y+"px)"),Ql(this._container,A,"popup")}},d.prototype._focusFirstElement=function(){if(this.options.focusAfterOpen&&this._container){var c=this._container.querySelector(dl);c&&c.focus()}},d.prototype._onClose=function(){this.remove()},d}(n.Evented),rc={version:n.version,supported:y,setRTLTextPlugin:n.setRTLTextPlugin,getRTLTextPluginStatus:n.getRTLTextPluginStatus,Map:Yc,NavigationControl:ru,GeolocateControl:$c,AttributionControl:Xn,ScaleControl:cs,FullscreenControl:Qa,Popup:tc,Marker:cl,Style:ba,LngLat:n.LngLat,LngLatBounds:n.LngLatBounds,Point:n.Point,MercatorCoordinate:n.MercatorCoordinate,Evented:n.Evented,config:n.config,prewarm:function(){dt().acquire(lt)},clearPrewarmedResources:function(){var l=_r;l&&(l.isPreloaded()&&l.numActive()===1?(l.release(lt),_r=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return n.config.ACCESS_TOKEN},set accessToken(l){n.config.ACCESS_TOKEN=l},get baseApiUrl(){return n.config.API_URL},set baseApiUrl(l){n.config.API_URL=l},get workerCount(){return wt.workerCount},set workerCount(l){wt.workerCount=l},get maxParallelImageRequests(){return n.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(l){n.config.MAX_PARALLEL_IMAGE_REQUESTS=l},clearStorage:function(l){n.clearTileCache(l)},workerUrl:""};return rc}),s})})(v7);var aO=v7.exports;const oy=_p(aO),sO=["id","attributionControl","style","token","rotation","mapInstance"];function uO(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}uO(`.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;-webkit-transform:translate(0);transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl button::-moz-focus-inner{border:0;padding:0}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);opacity:0}to{-webkit-transform:scale(1);opacity:0}}@keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);transform:scale(3);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}`);window.mapboxgl=oy;let pO=0;const og="101MlGsZ2AmmA&access_token=pk.eyJ1IjoiZXhhbXBsZXMiLCJhIjoiY2p0MG01MXRqMW45cjQzb2R6b2ptc3J4MSJ9.zA2W0IkI0c6KaAhJfk9bWg";class lO extends nO{constructor(...t){super(...t),H(this,"version","MAPBOX"),H(this,"viewport",void 0)}getType(){return"mapbox"}lngLatToCoord(t,r={x:0,y:0,z:0}){const{x:i,y:s}=this.lngLatToMercator(t,0);return[i-r.x,s-r.y]}lngLatToMercator(t,r){const{x:i=0,y:s=0,z:u=0}=window.mapboxgl.MercatorCoordinate.fromLngLat(t,r);return{x:i,y:s,z:u}}getModelMatrix(t,r,i,s=[1,1,1],u={x:0,y:0,z:0}){const n=window.mapboxgl.MercatorCoordinate.fromLngLat(t,r),y=n.meterInMercatorCoordinateUnits(),m=Vf();return of(m,m,dp(n.x-u.x,n.y-u.y,n.z||0-u.z)),nf(m,m,dp(y*s[0],-y*s[1],y*s[2])),i6(m,m,i[0]),Vg(m,m,i[1]),Hg(m,m,i[2]),m}init(){var t=this;return mt(function*(){const r=t.config,{id:i="map",attributionControl:s=!1,style:u="light",token:n=og,rotation:y=0,mapInstance:m}=r,g=$p(r,sO);t.viewport=new rO,!m&&!window.mapboxgl&&console.error(t.configService.getSceneWarninfo("SDK")),n===og&&u!=="blank"&&!window.mapboxgl.accessToken&&!m&&console.warn(t.configService.getSceneWarninfo("MapToken")),!m&&!window.mapboxgl.accessToken&&(window.mapboxgl.accessToken=n),m?(t.map=m,t.$mapContainer=t.map.getContainer()):(t.$mapContainer=t.creatMapContainer(i),t.map=new window.mapboxgl.Map(_t({container:t.$mapContainer,style:t.getMapStyleValue(u),attributionControl:s,bearing:y},g))),t.map.on("load",()=>{t.handleCameraChanged()}),t.map.on("move",t.handleCameraChanged),t.handleCameraChanged()})()}destroy(){var t;(t=this.$mapContainer)===null||t===void 0||(t=t.parentNode)===null||t===void 0||t.removeChild(this.$mapContainer),this.eventEmitter.removeAllListeners(),this.map&&(this.map.remove(),this.$mapContainer=null)}emit(t,...r){this.eventEmitter.emit(t,...r)}once(t,...r){this.eventEmitter.once(t,...r)}getMapContainer(){return this.$mapContainer}getCanvasOverlays(){var t;return(t=this.getMapContainer())===null||t===void 0?void 0:t.querySelector(".mapboxgl-canvas-container")}meterToCoord(t,r){const i=new oy.LngLat(t[0],t[1]),s=new oy.LngLat(r[0],r[1]),u=i.distanceTo(s),n=oy.MercatorCoordinate.fromLngLat({lng:t[0],lat:t[1]}),y=oy.MercatorCoordinate.fromLngLat({lng:r[0],lat:r[1]}),{x:m,y:g}=n,{x,y:b}=y;return Math.sqrt(Math.pow(m-x,2)+Math.pow(g-b,2))*4194304*2/u}exportMap(t){const r=this.map.getCanvas();return t==="jpg"?r==null?void 0:r.toDataURL("image/jpeg"):r==null?void 0:r.toDataURL("image/png")}creatMapContainer(t){let r=t;typeof t=="string"&&(r=document.getElementById(t));const i=document.createElement("div");return i.style.cssText+=` position: absolute; top: 0; height: 100%; width: 100%; `,i.id="l7_mapbox_div"+pO++,r.appendChild(i),i}}function cO(e,t){var r=typeof my<"u"&&!!my&&typeof my.showToast=="function"&&my.isFRM!==!0,i=typeof wx<"u"&&wx!==null&&(typeof wx.request<"u"||typeof wx.miniProgram<"u");if(!(r||i)&&(t||(t=document),!!t)){var s=t.head||t.getElementsByTagName("head")[0];if(!s){s=t.createElement("head");var u=t.body||t.getElementsByTagName("body")[0];u?u.parentNode.insertBefore(s,u):t.documentElement.appendChild(s)}var n=t.createElement("style");return n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(t.createTextNode(e)),s.appendChild(n),n}}cO(`.mapboxgl-ctrl-logo { display: none !important; } `);class dO extends kD{getServiceConstructor(){return lO}}function Wu(e){return e==null}var yO=function(e,t,r){return er?r:e};function P0(e){return typeof e=="number"}var E7={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,r="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function s(m,g,x){this.fn=m,this.context=g,this.once=x||!1}function u(m,g,x,b,F){if(typeof x!="function")throw new TypeError("The listener must be a function");var R=new s(x,b||m,F),I=r?r+g:g;return m._events[I]?m._events[I].fn?m._events[I]=[m._events[I],R]:m._events[I].push(R):(m._events[I]=R,m._eventsCount++),m}function n(m,g){--m._eventsCount===0?m._events=new i:delete m._events[g]}function y(){this._events=new i,this._eventsCount=0}y.prototype.eventNames=function(){var g=[],x,b;if(this._eventsCount===0)return g;for(b in x=this._events)t.call(x,b)&&g.push(r?b.slice(1):b);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(x)):g},y.prototype.listeners=function(g){var x=r?r+g:g,b=this._events[x];if(!b)return[];if(b.fn)return[b.fn];for(var F=0,R=b.length,I=new Array(R);F>>8&255}function qp(e){return e>>>16&255}function H0(e){return e&255}function P7(e){switch(e){case bt.F32:case bt.U32:case bt.S32:return 4;case bt.U16:case bt.S16:case bt.F16:return 2;case bt.U8:case bt.S8:return 1;default:throw new Error("whoops")}}function b7(e){return P7(qp(e))}function fO(e){var t=P7(qp(e)),r=H6(e);return t*r}function A7(e){var t=H0(e);if(t&lr.Depth)return sn.Depth;if(t&lr.Normalized)return sn.Float;var r=qp(e);if(r===bt.F16||r===bt.F32)return sn.Float;if(r===bt.U8||r===bt.U16||r===bt.U32)return sn.Uint;if(r===bt.S8||r===bt.S16||r===bt.S32)return sn.Sint;throw new Error("whoops")}function mo(e,t){if(t===void 0&&(t=""),!e)throw new Error("Assert fail: ".concat(t))}function l1(e){if(e!=null)return e;throw new Error("Missing object")}function F7(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}function T7(e,t){e.r=t.r,e.g=t.g,e.b=t.b,e.a=t.a}function S7(e){var t=e.r,r=e.g,i=e.b,s=e.a;return{r:t,g:r,b:i,a:s}}function ky(e,t,r,i){return i===void 0&&(i=1),{r:e,g:t,b:r,a:i}}var Qf=ky(0,0,0,0);ky(0,0,0,1);var mO=ky(1,1,1,0);ky(1,1,1,1);function Mf(e){return!!(e&&!(e&e-1))}function hc(e,t){return e??t}function _O(e){return e===void 0?null:e}function Nf(e,t){var r=t-1;return e+r&-4}function gO(e,t){for(var r=new Array(e),i=0;i1,m=r.replace(`\r `,` `).split(` `).map(function(Oe){return Oe.replace(/[/][/].*$/,"")}).filter(function(Oe){var Ee=!Oe||/^\s+$/.test(Oe);return!Ee}),g="";i!==null&&(g=Object.keys(i).map(function(Oe){return Gd(Oe,i[Oe])}).join(` `));var x=m.find(function(Oe){return Oe.startsWith("precision")})||"precision mediump float;",b=s?m.filter(function(Oe){return!Oe.startsWith("precision")}).join(` `):m.join(` `),F="";if(e.viewportOrigin===fp.UPPER_LEFT&&(F+="".concat(Gd("VIEWPORT_ORIGIN_TL","1"),` `)),e.clipSpaceNearZ===V0.ZERO&&(F+="".concat(Gd("CLIPSPACE_NEAR_ZERO","1"),` `)),e.explicitBindingLocations){var R=0,I=0,U=0;b=b.replace(/^\s*(layout\((.*)\))?\s*uniform(.+{)$/gm,function(Oe,Ee,He,ft){var Ge=He?"".concat(He,", "):"";return"layout(".concat(Ge,"set = ").concat(R,", binding = ").concat(I++,") uniform ").concat(ft)}),R++,I=0,mo(e.separateSamplerTextures),b=b.replace(/^\s*(layout\((.*)\))?\s*uniform sampler(\w+) (.*);/gm,function(Oe,Ee,He,ft,Ge){var Ae=dg(He);Ae===null&&(Ae=I++);var Be=cp(yg(ft),2),ze=Be[0],st=Be[1];return t==="frag"?` layout(set = `.concat(R,", binding = ").concat(Ae*2+0,") uniform texture").concat(ze," T_").concat(Ge,`; layout(set = `).concat(R,", binding = ").concat(Ae*2+1,") uniform sampler").concat(st," S_").concat(Ge,";").trim():""}),b=b.replace(t==="frag"?/^\s*\b(varying|in)\b/gm:/^\s*\b(varying|out)\b/gm,function(Oe,Ee){return"layout(location = ".concat(U++,") ").concat(Ee)}),F+="".concat(Gd("gl_VertexID","gl_VertexIndex"),` `),F+="".concat(Gd("gl_InstanceID","gl_InstanceIndex"),` `),x=x.replace(/^precision (.*) sampler(.*);$/gm,"")}else{var V=0;b=b.replace(/^\s*(layout\((.*)\))?\s*uniform sampler(\w+) (.*);/gm,function(Oe,Ee,He,ft,Ge){var Ae=dg(He);return Ae===null&&(Ae=V++),"uniform sampler".concat(ft," ").concat(Ge,"; // BINDING=").concat(Ae)})}if(b=b.replace(/\bPU_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"SAMPLER_".concat(Ee,"(P_").concat(He,")")}),b=b.replace(/\bPF_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"PP_SAMPLER_".concat(Ee,"(P_").concat(He,")")}),b=b.replace(/\bPU_TEXTURE\((.*?)\)/g,function(Oe,Ee){return"TEXTURE(P_".concat(Ee,")")}),e.separateSamplerTextures)b=b.replace(/\bPD_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){var ft=cp(yg(Ee),2),Ge=ft[0],Ae=ft[1];return"texture".concat(Ge," T_P_").concat(He,", sampler").concat(Ae," S_P_").concat(He)}),b=b.replace(/\bPP_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"T_".concat(He,", S_").concat(He)}),b=b.replace(/\bSAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"sampler".concat(Ee,"(T_").concat(He,", S_").concat(He,")")}),b=b.replace(/\bTEXTURE\((.*?)\)/g,function(Oe,Ee){return"T_".concat(Ee)});else{var J=[];b=b.replace(/\bPD_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return"sampler".concat(Ee," P_").concat(He)}),b=b.replace(/\bPP_SAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return He}),b=b.replace(/\bSAMPLER_(\w+)\((.*?)\)/g,function(Oe,Ee,He){return J.push([He,Ee]),He}),n&&J.forEach(function(Oe){var Ee=cp(Oe,2),He=Ee[0],ft=Ee[1];b=b.replace(new RegExp("texture\\(".concat(He),"g"),function(){return"texture".concat(ft,"(").concat(He)})}),b=b.replace(/\bTEXTURE\((.*?)\)/g,function(Oe,Ee){return Ee})}var Q="".concat(n?"":e.glslVersion,` `).concat(n&&y?`#extension GL_EXT_draw_buffers : require `:"",` `).concat(n&&t==="frag"?`#extension GL_OES_standard_derivatives : enable `:"").concat(s?x:"",` `).concat(F||"").concat(g?g+` `:"",` `).concat(b,` `).trim();if(e.explicitBindingLocations&&t==="frag"&&(Q=Q.replace(/^\b(out)\b/g,function(Oe,Ee){return"layout(location = 0) ".concat(Ee)})),n){if(t==="frag"&&(Q=Q.replace(/^\s*in\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"varying ".concat(Ee," ").concat(He,`; `)})),t==="vert"&&(Q=Q.replace(/^\s*out\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"varying ".concat(Ee," ").concat(He,`; `)}),Q=Q.replace(/^\s*layout\(location\s*=\s*\S*\)\s*in\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return"attribute ".concat(Ee," ").concat(He,`; `)})),Q=Q.replace(/\s*uniform\s*.*\s*{((?:\s*.*\s*)*?)};/g,function(Oe,Ee){return Ee.trim().replace(/^.*$/gm,function(He){var ft=He.trim();return ft.startsWith("#")?ft:He?"uniform ".concat(ft):""})}),t==="frag")if(y){var te=[];Q=Q.replace(/^\s*layout\(location\s*=\s*\d*\)\s*out\s+vec4\s*(.*);$/gm,function(Oe,Ee){return te.push(Ee),"vec4 ".concat(Ee,`; `)});var ne=Q.lastIndexOf("}");Q=Q.substring(0,ne)+` `.concat(te.map(function(Oe,Ee){return"gl_FragData[".concat(Ee,"] = ").concat(Oe,`; `)}).join(` `))+Q.substring(ne)}else{var pe;if(Q=Q.replace(/^\s*out\s+(\S+)\s*(.*);$/gm,function(Oe,Ee,He){return pe=He,"".concat(Ee," ").concat(He,`; `)}),pe){var ne=Q.lastIndexOf("}");Q=Q.substring(0,ne)+` gl_FragColor = vec4(`.concat(pe,`); `)+Q.substring(ne)}}Q=Q.replace(/^\s*layout\((.*)\)/gm,"")}return Q}var Xu=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this)||this;return u.id=i,u.device=s,u.device.resourceCreationTracker!==null&&u.device.resourceCreationTracker.trackResourceCreated(u),u}return t.prototype.destroy=function(){this.device.resourceCreationTracker!==null&&this.device.resourceCreationTracker.trackResourceDestroyed(this)},t}(x7),qO=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.Bindings;var y=u.uniformBufferBindings,m=u.samplerBindings;return n.uniformBufferBindings=y||[],n.samplerBindings=m||[],n.bindingLayouts=n.createBindingLayouts(),n}return t.prototype.createBindingLayouts=function(){var r=0,i=0,s=[],u=this.uniformBufferBindings.length,n=this.samplerBindings.length;return s.push({firstUniformBuffer:r,numUniformBuffers:u,firstSampler:i,numSamplers:n}),r+=u,i+=n,{numUniformBuffers:r,numSamplers:i,bindingLayoutTables:s}},t}(Xu),jd;function Mr(e){return jd!==void 0?jd:typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?(jd=!0,!0):(jd=!!(e&&e._version===2),jd)}function M7(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_UNORM:case bt.BC4_SNORM:case bt.BC5_UNORM:case bt.BC5_SNORM:return!0;default:return!1}}function N7(e){var t=H0(e);if(t&lr.Normalized)return!1;var r=qp(e);return r===bt.S8||r===bt.S16||r===bt.S32||r===bt.U8||r===bt.U16||r===bt.U32}function KO(e){switch(e){case mp.STATIC:return ve.STATIC_DRAW;case mp.DYNAMIC:return ve.DYNAMIC_DRAW}}function hg(e){if(e&xi.INDEX)return ve.ELEMENT_ARRAY_BUFFER;if(e&xi.VERTEX)return ve.ARRAY_BUFFER;if(e&xi.UNIFORM)return ve.UNIFORM_BUFFER}function QO(e){switch(e){case Gn.TRIANGLES:return ve.TRIANGLES;case Gn.POINTS:return ve.POINTS;case Gn.TRIANGLE_STRIP:return ve.TRIANGLE_STRIP;case Gn.LINES:return ve.LINES;case Gn.LINE_STRIP:return ve.LINE_STRIP;default:throw new Error("Unknown primitive topology mode")}}function JO(e){switch(e){case bt.U8:return ve.UNSIGNED_BYTE;case bt.U16:return ve.UNSIGNED_SHORT;case bt.U32:return ve.UNSIGNED_INT;case bt.S8:return ve.BYTE;case bt.S16:return ve.SHORT;case bt.S32:return ve.INT;case bt.F16:return ve.HALF_FLOAT;case bt.F32:return ve.FLOAT;default:throw new Error("whoops")}}function eL(e){switch(e){case Ar.R:return 1;case Ar.RG:return 2;case Ar.RGB:return 3;case Ar.RGBA:return 4;default:return 1}}function tL(e){var t=qp(e),r=H6(e),i=H0(e),s=JO(t),u=eL(r),n=!!(i&lr.Normalized);return{size:u,type:s,normalized:n}}function rL(e){switch(e){case ke.U8_R:return ve.UNSIGNED_BYTE;case ke.U16_R:return ve.UNSIGNED_SHORT;case ke.U32_R:return ve.UNSIGNED_INT;default:throw new Error("whoops")}}function Wd(e){switch(e){case _s.CLAMP_TO_EDGE:return ve.CLAMP_TO_EDGE;case _s.REPEAT:return ve.REPEAT;case _s.MIRRORED_REPEAT:return ve.MIRRORED_REPEAT;default:throw new Error("whoops")}}function Uh(e,t){if(t===sa.LINEAR&&e===xn.BILINEAR)return ve.LINEAR_MIPMAP_LINEAR;if(t===sa.LINEAR&&e===xn.POINT)return ve.NEAREST_MIPMAP_LINEAR;if(t===sa.NEAREST&&e===xn.BILINEAR)return ve.LINEAR_MIPMAP_NEAREST;if(t===sa.NEAREST&&e===xn.POINT)return ve.NEAREST_MIPMAP_NEAREST;if(t===sa.NO_MIP&&e===xn.BILINEAR)return ve.LINEAR;if(t===sa.NO_MIP&&e===xn.POINT)return ve.NEAREST;throw new Error("Unknown texture filter mode")}function N0(e,t){t===void 0&&(t=0);var r=e;return r.gl_buffer_pages[t/r.pageByteSize|0]}function E0(e){var t=e;return t.gl_texture}function J2(e){var t=e;return t.gl_sampler}function Xd(e,t){e.name=t,e.__SPECTOR_Metadata={name:t}}function fg(e,t){for(var r=[];;){var i=t.exec(e);if(!i)break;r.push(i)}return r}function mc(e){return e.blendMode==va.ADD&&e.blendSrcFactor==Bo.ONE&&e.blendDstFactor===Bo.ZERO}function oL(e){switch(e){case If.OcclusionConservative:return ve.ANY_SAMPLES_PASSED_CONSERVATIVE;default:throw new Error("whoops")}}function iL(e){if(e===Uo.TEXTURE_2D)return ve.TEXTURE_2D;if(e===Uo.TEXTURE_2D_ARRAY)return ve.TEXTURE_2D_ARRAY;if(e===Uo.TEXTURE_CUBE_MAP)return ve.TEXTURE_CUBE_MAP;if(e===Uo.TEXTURE_3D)return ve.TEXTURE_3D;throw new Error("whoops")}function o2(e,t,r,i){return!(e%r!==0||t%i!==0)}var nL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.Buffer;var y=u.viewOrSize,m=u.usage,g=u.hint,x=g===void 0?mp.STATIC:g,b=s.uniformBufferMaxPageByteSize,F=s.gl,R=m&xi.UNIFORM;R||(Mr(F)?F.bindVertexArray(null):s.OES_vertex_array_object.bindVertexArrayOES(null));var I=P0(y)?Nf(y,4):Nf(y.byteLength,4);n.gl_buffer_pages=[];var U;if(R){for(var V=I;V>0;)n.gl_buffer_pages.push(n.createBufferPage(Math.min(V,b),m,x)),V-=b;U=b}else n.gl_buffer_pages.push(n.createBufferPage(I,m,x)),U=I;return n.pageByteSize=U,n.byteSize=I,n.usage=m,n.gl_target=hg(m),P0(y)||n.setSubData(0,new Uint8Array(y.buffer)),R||(Mr(F)?F.bindVertexArray(n.device.currentBoundVAO):s.OES_vertex_array_object.bindVertexArrayOES(n.device.currentBoundVAO)),n}return t.prototype.setSubData=function(r,i,s,u){s===void 0&&(s=0),u===void 0&&(u=i.byteLength-s);for(var n=this.device.gl,y=this.pageByteSize,m=r+u,g=r,x=r%y;g=1,!n){x=y.device.ensureResourceExists(m.createTexture());var F=y.device.translateTextureType(u.format),R=y.device.translateTextureInternalFormat(u.format);if(y.device.setActiveTexture(m.TEXTURE0),y.device.currentTextures[0]=null,y.preprocessImage(),u.dimension===Uo.TEXTURE_2D){if(g=ve.TEXTURE_2D,m.bindTexture(g,x),y.immutable)if(Mr(m))m.texStorage2D(g,b,R,u.width,u.height);else{var I=(R===ve.DEPTH_COMPONENT||y.isNPOT(),0);(y.format===ke.D32F||y.format===ke.D24_S8)&&!Mr(m)&&!s.WEBGL_depth_texture||(m.texImage2D(g,I,R,u.width,u.height,0,R,F,null),y.mipmaps&&(y.mipmaps=!1,m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_MIN_FILTER,ve.LINEAR),m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_S,ve.CLAMP_TO_EDGE),m.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_T,ve.CLAMP_TO_EDGE)))}mo(u.depthOrArrayLayers===1)}else if(u.dimension===Uo.TEXTURE_2D_ARRAY)g=ve.TEXTURE_2D_ARRAY,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage3D(g,b,R,u.width,u.height,u.depthOrArrayLayers);else if(u.dimension===Uo.TEXTURE_3D)g=ve.TEXTURE_3D,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage3D(g,b,R,u.width,u.height,u.depthOrArrayLayers);else if(u.dimension===Uo.TEXTURE_CUBE_MAP)g=ve.TEXTURE_CUBE_MAP,m.bindTexture(g,x),y.immutable&&Mr(m)&&m.texStorage2D(g,b,R,u.width,u.height),mo(u.depthOrArrayLayers===6);else throw new Error("whoops")}return y.gl_texture=x,y.gl_target=g,y.mipLevelCount=b,y}return t.prototype.setImageData=function(r,i){i===void 0&&(i=0);var s=this.device.gl;M7(this.format);var u=this.gl_target===ve.TEXTURE_3D||this.gl_target===ve.TEXTURE_2D_ARRAY,n=this.gl_target===ve.TEXTURE_CUBE_MAP,y=ZO(r[0]);this.device.setActiveTexture(s.TEXTURE0),this.device.currentTextures[0]=null;var m=r[0],g,x;y?(g=this.width,x=this.height):(g=m.width,x=m.height,this.width=g,this.height=x),s.bindTexture(this.gl_target,this.gl_texture);var b=this.device.translateTextureFormat(this.format),F=Mr(s)?this.device.translateInternalTextureFormat(this.format):b,R=this.device.translateTextureType(this.format);this.preprocessImage();for(var I=0;I1){var i=qp(r.format);if(i===bt.BC1)for(var s=r.width,u=r.height,n=0;n1?y.renderbufferStorageMultisample(ve.RENDERBUFFER,F,U,g,x):y.renderbufferStorage(ve.RENDERBUFFER,U,g,x)}return n.format=m,n.width=g,n.height=x,n.sampleCount=F,n}return t.prototype.destroy=function(){e.prototype.destroy.call(this),this.gl_renderbuffer!==null&&this.device.gl.deleteRenderbuffer(this.gl_renderbuffer),this.texture&&this.texture.destroy()},t}(Xu),ks;(function(e){e[e.NeedsCompile=0]="NeedsCompile",e[e.Compiling=1]="Compiling",e[e.NeedsBind=2]="NeedsBind",e[e.ReadyToUse=3]="ReadyToUse"})(ks||(ks={}));var uL=function(e){pn(t,e);function t(r,i){var s=r.id,u=r.device,n=r.descriptor,y=e.call(this,{id:s,device:u})||this;y.rawVertexGLSL=i,y.type=Ko.Program,y.uniformSetters={},y.attributes=[];var m=y.device.gl;return y.descriptor=n,y.gl_program=y.device.ensureResourceExists(m.createProgram()),y.gl_shader_vert=null,y.gl_shader_frag=null,y.compileState=ks.NeedsCompile,y.tryCompileProgram(),y}return t.prototype.destroy=function(){e.prototype.destroy.call(this),this.device.gl.deleteProgram(this.gl_program),this.device.gl.deleteShader(this.gl_shader_vert),this.device.gl.deleteShader(this.gl_shader_frag)},t.prototype.tryCompileProgram=function(){mo(this.compileState===ks.NeedsCompile);var r=this.descriptor,i=r.vertex,s=r.fragment,u=this.device.gl;i!=null&&i.glsl&&(s!=null&&s.glsl)&&(this.gl_shader_vert=this.compileShader(i.postprocess?i.postprocess(i.glsl):i.glsl,u.VERTEX_SHADER),this.gl_shader_frag=this.compileShader(s.postprocess?s.postprocess(s.glsl):s.glsl,u.FRAGMENT_SHADER),u.attachShader(this.gl_program,this.gl_shader_vert),u.attachShader(this.gl_program,this.gl_shader_frag),u.linkProgram(this.gl_program),this.compileState=ks.Compiling,Mr(u)||(this.readUniformLocationsFromLinkedProgram(),this.readAttributesFromLinkedProgram()))},t.prototype.readAttributesFromLinkedProgram=function(){for(var r,i=this.device.gl,s=i.getProgramParameter(this.gl_program,i.ACTIVE_ATTRIBUTES),u=YO(this.descriptor.vertex.glsl),n=$O(this.rawVertexGLSL,u),y=function(x){var b=i.getActiveAttrib(m.gl_program,x),F=b.name,R=b.type,I=b.size,U=i.getAttribLocation(m.gl_program,F),V=(r=n.find(function(J){return J.name===F}))===null||r===void 0?void 0:r.location;U>=0&&!Wu(V)&&(m.attributes[V]={name:F,location:U,type:R,size:I})},m=this,g=0;g1)for(var m=0;m1&&m.device.EXT_texture_filter_anisotropic!==null&&(mo(u.minFilter===xn.BILINEAR&&u.magFilter===xn.BILINEAR&&u.mipmapFilter===sa.LINEAR),g.samplerParameterf(x,m.device.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,b)),m.gl_sampler=x}else m.descriptor=u;return m}return t.prototype.setTextureParameters=function(r,i,s){var u,n=this.device.gl,y=this.descriptor;this.isNPOT(i,s)?n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_MIN_FILTER,ve.LINEAR):n.texParameteri(r,ve.TEXTURE_MIN_FILTER,Uh(y.minFilter,y.mipmapFilter)),n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_S,Wd(y.addressModeU)),n.texParameteri(ve.TEXTURE_2D,ve.TEXTURE_WRAP_T,Wd(y.addressModeV)),n.texParameteri(r,ve.TEXTURE_MAG_FILTER,Uh(y.magFilter,sa.NO_MIP));var m=(u=y.maxAnisotropy)!==null&&u!==void 0?u:1;m>1&&this.device.EXT_texture_filter_anisotropic!==null&&(mo(y.minFilter===xn.BILINEAR&&y.magFilter===xn.BILINEAR&&y.mipmapFilter===sa.LINEAR),n.texParameteri(r,this.device.EXT_texture_filter_anisotropic.TEXTURE_MAX_ANISOTROPY_EXT,m))},t.prototype.destroy=function(){e.prototype.destroy.call(this),Mr(this.device.gl)&&this.device.gl.deleteSampler(J2(this))},t.prototype.isNPOT=function(r,i){return!Mf(r)||!Mf(i)},t}(Xu),fL=function(){function e(){}return e.prototype.dispatchWorkgroups=function(t,r,i){},e.prototype.dispatchWorkgroupsIndirect=function(t,r){},e.prototype.setPipeline=function(t){},e.prototype.setBindings=function(t){},e.prototype.pushDebugGroup=function(t){},e.prototype.popDebugGroup=function(){},e.prototype.insertDebugMarker=function(t){},e}(),mL=function(e){pn(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=Ko.RenderBundle,r.commands=[],r}return t.prototype.push=function(r){this.commands.push(r)},t.prototype.replay=function(){this.commands.forEach(function(r){return r()})},t}(Xu),mg=65536,_L=/uniform(?:\s+)(\w+)(?:\s?){([^]*?)}/g,gL=function(){function e(t,r){r===void 0&&(r={}),this.shaderDebug=!1,this.OES_vertex_array_object=null,this.ANGLE_instanced_arrays=null,this.OES_texture_float=null,this.OES_draw_buffers_indexed=null,this.WEBGL_draw_buffers=null,this.WEBGL_depth_texture=null,this.WEBGL_color_buffer_float=null,this.EXT_color_buffer_half_float=null,this.WEBGL_compressed_texture_s3tc=null,this.WEBGL_compressed_texture_s3tc_srgb=null,this.EXT_texture_compression_rgtc=null,this.EXT_texture_filter_anisotropic=null,this.KHR_parallel_shader_compile=null,this.EXT_texture_norm16=null,this.EXT_color_buffer_float=null,this.OES_texture_float_linear=null,this.OES_texture_half_float_linear=null,this.scTexture=null,this.scPlatformFramebuffer=null,this.currentActiveTexture=null,this.currentBoundVAO=null,this.currentProgram=null,this.resourceCreationTracker=null,this.resourceUniqueId=0,this.currentColorAttachments=[],this.currentColorAttachmentLevels=[],this.currentColorResolveTos=[],this.currentColorResolveToLevels=[],this.currentSampleCount=-1,this.currentIndexBufferByteOffset=null,this.currentMegaState=G0(j0),this.currentSamplers=[],this.currentTextures=[],this.currentUniformBuffers=[],this.currentUniformBufferByteOffsets=[],this.currentUniformBufferByteSizes=[],this.currentScissorEnabled=!1,this.currentStencilRef=null,this.currentRenderPassDescriptor=null,this.currentRenderPassDescriptorStack=[],this.debugGroupStack=[],this.resolveColorAttachmentsChanged=!1,this.resolveDepthStencilAttachmentsChanged=!1,this.explicitBindingLocations=!1,this.separateSamplerTextures=!1,this.viewportOrigin=fp.LOWER_LEFT,this.clipSpaceNearZ=V0.NEGATIVE_ONE,this.supportMRT=!1,this.inBlitRenderPass=!1,this.supportedSampleCounts=[],this.occlusionQueriesRecommended=!1,this.computeShadersSupported=!1,this.gl=t,this.contextAttributes=l1(t.getContextAttributes()),Mr(t)?(this.EXT_texture_norm16=t.getExtension("EXT_texture_norm16"),this.EXT_color_buffer_float=t.getExtension("EXT_color_buffer_float")):(this.OES_vertex_array_object=t.getExtension("OES_vertex_array_object"),this.ANGLE_instanced_arrays=t.getExtension("ANGLE_instanced_arrays"),this.OES_texture_float=t.getExtension("OES_texture_float"),this.WEBGL_draw_buffers=t.getExtension("WEBGL_draw_buffers"),this.WEBGL_depth_texture=t.getExtension("WEBGL_depth_texture"),this.WEBGL_color_buffer_float=t.getExtension("WEBGL_color_buffer_float"),this.EXT_color_buffer_half_float=t.getExtension("EXT_color_buffer_half_float"),t.getExtension("EXT_frag_depth"),t.getExtension("OES_element_index_uint"),t.getExtension("OES_standard_derivatives")),this.WEBGL_compressed_texture_s3tc=t.getExtension("WEBGL_compressed_texture_s3tc"),this.WEBGL_compressed_texture_s3tc_srgb=t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),this.EXT_texture_compression_rgtc=t.getExtension("EXT_texture_compression_rgtc"),this.EXT_texture_filter_anisotropic=t.getExtension("EXT_texture_filter_anisotropic"),this.EXT_texture_norm16=t.getExtension("EXT_texture_norm16"),this.OES_texture_float_linear=t.getExtension("OES_texture_float_linear"),this.OES_texture_half_float_linear=t.getExtension("OES_texture_half_float_linear"),this.KHR_parallel_shader_compile=t.getExtension("KHR_parallel_shader_compile"),Mr(t)?(this.platformString="WebGL2",this.glslVersion="#version 300 es"):(this.platformString="WebGL1",this.glslVersion="#version 100"),this.scTexture=new e6({id:this.getNextUniqueId(),device:this,descriptor:{width:0,height:0,depthOrArrayLayers:1,dimension:Uo.TEXTURE_2D,mipLevelCount:1,usage:as.RENDER_TARGET,format:this.contextAttributes.alpha===!1?ke.U8_RGB_RT:ke.U8_RGBA_RT},fake:!0}),this.scTexture.formatKind=sn.Float,this.scTexture.gl_target=null,this.scTexture.gl_texture=null,this.resolveColorReadFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveColorDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveDepthStencilReadFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.resolveDepthStencilDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.renderPassDrawFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.readbackFramebuffer=this.ensureResourceExists(t.createFramebuffer()),this.fallbackTexture2D=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Float),this.fallbackTexture2DDepth=this.createFallbackTexture(Uo.TEXTURE_2D,sn.Depth),this.fallbackVertexBuffer=this.createBuffer({viewOrSize:1,usage:xi.VERTEX,hint:mp.STATIC}),Mr(t)&&(this.fallbackTexture2DArray=this.createFallbackTexture(Uo.TEXTURE_2D_ARRAY,sn.Float),this.fallbackTexture3D=this.createFallbackTexture(Uo.TEXTURE_3D,sn.Float),this.fallbackTextureCube=this.createFallbackTexture(Uo.TEXTURE_CUBE_MAP,sn.Float)),this.currentMegaState.depthCompare=ai.LESS,this.currentMegaState.depthWrite=!1,this.currentMegaState.attachmentsState[0].channelWriteMask=ga.ALL,t.enable(t.DEPTH_TEST),t.enable(t.STENCIL_TEST),this.checkLimits(),r.shaderDebug&&(this.shaderDebug=!0),r.trackResources&&(this.resourceCreationTracker=new yL)}return e.prototype.destroy=function(){this.blitBindings&&this.blitBindings.destroy(),this.blitInputLayout&&this.blitInputLayout.destroy(),this.blitRenderPipeline&&this.blitRenderPipeline.destroy(),this.blitVertexBuffer&&this.blitVertexBuffer.destroy(),this.blitProgram&&this.blitProgram.destroy()},e.prototype.createFallbackTexture=function(t,r){var i=t===Uo.TEXTURE_CUBE_MAP?6:1,s=r===sn.Depth?ke.D32F:ke.U8_RGBA_NORM,u=this.createTexture({dimension:t,format:s,usage:as.SAMPLED,width:1,height:1,depthOrArrayLayers:i,mipLevelCount:1});return r===sn.Float&&u.setImageData([new Uint8Array(4*i)]),E0(u)},e.prototype.getNextUniqueId=function(){return++this.resourceUniqueId},e.prototype.checkLimits=function(){var t=this.gl;if(this.maxVertexAttribs=t.getParameter(ve.MAX_VERTEX_ATTRIBS),Mr(t)){this.uniformBufferMaxPageByteSize=Math.min(t.getParameter(ve.MAX_UNIFORM_BLOCK_SIZE),mg),this.uniformBufferWordAlignment=t.getParameter(t.UNIFORM_BUFFER_OFFSET_ALIGNMENT)/4;var r=t.getInternalformatParameter(t.RENDERBUFFER,t.DEPTH32F_STENCIL8,t.SAMPLES);this.supportedSampleCounts=r?Ad([],cp(r),!1):[],this.occlusionQueriesRecommended=!0}else this.uniformBufferWordAlignment=64,this.uniformBufferMaxPageByteSize=mg;this.uniformBufferMaxPageWordSize=this.uniformBufferMaxPageByteSize/4,this.supportedSampleCounts.includes(1)||this.supportedSampleCounts.push(1),this.supportedSampleCounts.sort(function(i,s){return i-s})},e.prototype.configureSwapChain=function(t,r,i){var s=this.scTexture;s.width=t,s.height=r,this.scPlatformFramebuffer=_O(i)},e.prototype.getDevice=function(){return this},e.prototype.getCanvas=function(){return this.gl.canvas},e.prototype.getOnscreenTexture=function(){return this.scTexture},e.prototype.beginFrame=function(){},e.prototype.endFrame=function(){},e.prototype.translateTextureInternalFormat=function(t,r){switch(r===void 0&&(r=!1),t){case ke.ALPHA:return ve.ALPHA;case ke.U8_LUMINANCE:case ke.F16_LUMINANCE:case ke.F32_LUMINANCE:return ve.LUMINANCE;case ke.F16_R:return ve.R16F;case ke.F16_RG:return ve.RG16F;case ke.F16_RGB:return ve.RGB16F;case ke.F16_RGBA:return ve.RGBA16F;case ke.F32_R:return ve.R32F;case ke.F32_RG:return ve.RG32F;case ke.F32_RGB:return ve.RGB32F;case ke.F32_RGBA:return Mr(this.gl)?ve.RGBA32F:r?this.WEBGL_color_buffer_float.RGBA32F_EXT:ve.RGBA;case ke.U8_R_NORM:return ve.R8;case ke.U8_RG_NORM:return ve.RG8;case ke.U8_RGB_NORM:case ke.U8_RGB_RT:return ve.RGB8;case ke.U8_RGB_SRGB:return ve.SRGB8;case ke.U8_RGBA_NORM:case ke.U8_RGBA_RT:return Mr(this.gl)?ve.RGBA8:r?ve.RGBA4:ve.RGBA;case ke.U8_RGBA:return ve.RGBA;case ke.U8_RGBA_SRGB:case ke.U8_RGBA_RT_SRGB:return ve.SRGB8_ALPHA8;case ke.U16_R:return ve.R16UI;case ke.U16_R_NORM:return this.EXT_texture_norm16.R16_EXT;case ke.U16_RG_NORM:return this.EXT_texture_norm16.RG16_EXT;case ke.U16_RGBA_NORM:return this.EXT_texture_norm16.RGBA16_EXT;case ke.U16_RGBA_5551:return ve.RGB5_A1;case ke.U16_RGB_565:return ve.RGB565;case ke.U32_R:return ve.R32UI;case ke.S8_RGBA_NORM:return ve.RGBA8_SNORM;case ke.S8_RG_NORM:return ve.RG8_SNORM;case ke.BC1:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT;case ke.BC1_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;case ke.BC2:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT;case ke.BC2_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;case ke.BC3:return this.WEBGL_compressed_texture_s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT;case ke.BC3_SRGB:return this.WEBGL_compressed_texture_s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;case ke.BC4_UNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_RED_RGTC1_EXT;case ke.BC4_SNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT;case ke.BC5_UNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT;case ke.BC5_SNORM:return this.EXT_texture_compression_rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;case ke.D32F_S8:return Mr(this.gl)?ve.DEPTH32F_STENCIL8:this.WEBGL_depth_texture?ve.DEPTH_STENCIL:ve.DEPTH_COMPONENT16;case ke.D24_S8:return Mr(this.gl)?ve.DEPTH24_STENCIL8:this.WEBGL_depth_texture?ve.DEPTH_STENCIL:ve.DEPTH_COMPONENT16;case ke.D32F:return Mr(this.gl)?ve.DEPTH_COMPONENT32F:this.WEBGL_depth_texture?ve.DEPTH_COMPONENT:ve.DEPTH_COMPONENT16;case ke.D24:return Mr(this.gl)?ve.DEPTH_COMPONENT24:this.WEBGL_depth_texture?ve.DEPTH_COMPONENT:ve.DEPTH_COMPONENT16;default:throw new Error("whoops")}},e.prototype.translateTextureType=function(t){var r=qp(t);switch(r){case bt.U8:return ve.UNSIGNED_BYTE;case bt.U16:return ve.UNSIGNED_SHORT;case bt.U32:return ve.UNSIGNED_INT;case bt.S8:return ve.BYTE;case bt.F16:return ve.HALF_FLOAT;case bt.F32:return ve.FLOAT;case bt.U16_PACKED_5551:return ve.UNSIGNED_SHORT_5_5_5_1;case bt.D32F:return Mr(this.gl)?ve.FLOAT:this.WEBGL_depth_texture?ve.UNSIGNED_INT:ve.UNSIGNED_BYTE;case bt.D24:return Mr(this.gl)?ve.UNSIGNED_INT_24_8:this.WEBGL_depth_texture?ve.UNSIGNED_SHORT:ve.UNSIGNED_BYTE;case bt.D24S8:return Mr(this.gl)?ve.UNSIGNED_INT_24_8:this.WEBGL_depth_texture?ve.UNSIGNED_INT_24_8_WEBGL:ve.UNSIGNED_BYTE;case bt.D32FS8:return ve.FLOAT_32_UNSIGNED_INT_24_8_REV;default:throw new Error("whoops")}},e.prototype.translateInternalTextureFormat=function(t){switch(t){case ke.F32_R:return ve.R32F;case ke.F32_RG:return ve.RG32F;case ke.F32_RGB:return ve.RGB32F;case ke.F32_RGBA:return ve.RGBA32F;case ke.F16_R:return ve.R16F;case ke.F16_RG:return ve.RG16F;case ke.F16_RGB:return ve.RGB16F;case ke.F16_RGBA:return ve.RGBA16F}return this.translateTextureFormat(t)},e.prototype.translateTextureFormat=function(t){if(M7(t)||t===ke.F32_LUMINANCE||t===ke.U8_LUMINANCE)return this.translateTextureInternalFormat(t);var r=Mr(this.gl)||!Mr(this.gl)&&!!this.WEBGL_depth_texture;switch(t){case ke.D24_S8:case ke.D32F_S8:return r?ve.DEPTH_STENCIL:ve.RGBA;case ke.D24:case ke.D32F:return r?ve.DEPTH_COMPONENT:ve.RGBA}var i=N7(t),s=H6(t);switch(s){case Ar.A:return ve.ALPHA;case Ar.R:return i?ve.RED_INTEGER:ve.RED;case Ar.RG:return i?ve.RG_INTEGER:ve.RG;case Ar.RGB:return i?ve.RGB_INTEGER:ve.RGB;case Ar.RGBA:return ve.RGBA}},e.prototype.setActiveTexture=function(t){this.currentActiveTexture!==t&&(this.gl.activeTexture(t),this.currentActiveTexture=t)},e.prototype.bindVAO=function(t){this.currentBoundVAO!==t&&(Mr(this.gl)?this.gl.bindVertexArray(t):this.OES_vertex_array_object.bindVertexArrayOES(t),this.currentBoundVAO=t)},e.prototype.programCompiled=function(t){mo(t.compileState!==ks.NeedsCompile),t.compileState===ks.Compiling&&(t.compileState=ks.NeedsBind,this.shaderDebug&&this.checkProgramCompilationForErrors(t))},e.prototype.useProgram=function(t){this.currentProgram!==t&&(this.programCompiled(t),this.gl.useProgram(t.gl_program),this.currentProgram=t)},e.prototype.ensureResourceExists=function(t){if(t===null){var r=this.gl.getError();throw new Error("Created resource is null; GL error encountered: ".concat(r))}else return t},e.prototype.createBuffer=function(t){return new nL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createTexture=function(t){return new e6({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createSampler=function(t){return new hL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderTarget=function(t){return new sL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderTargetFromTexture=function(t){var r=t,i=r.format,s=r.width,u=r.height,n=r.mipLevelCount;return mo(n===1),this.createRenderTarget({format:i,width:s,height:u,sampleCount:1,texture:t})},e.prototype.createProgram=function(t){var r,i,s,u=(r=t.vertex)===null||r===void 0?void 0:r.glsl;return!((i=t.vertex)===null||i===void 0)&&i.glsl&&(t.vertex.glsl=W0(this.queryVendorInfo(),"vert",t.vertex.glsl)),!((s=t.fragment)===null||s===void 0)&&s.glsl&&(t.fragment.glsl=W0(this.queryVendorInfo(),"frag",t.fragment.glsl)),this.createProgramSimple(t,u)},e.prototype.createProgramSimple=function(t,r){var i=new uL({id:this.getNextUniqueId(),device:this,descriptor:t},r);return i},e.prototype.createBindings=function(t){return new qO({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createInputLayout=function(t){return new aL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createRenderPipeline=function(t){return new cL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createComputePass=function(){return new fL},e.prototype.createComputePipeline=function(t){return new dL({id:this.getNextUniqueId(),device:this,descriptor:t})},e.prototype.createReadback=function(){return new lL({id:this.getNextUniqueId(),device:this})},e.prototype.createQueryPool=function(t,r){return new pL({id:this.getNextUniqueId(),device:this,descriptor:{type:t,elemCount:r}})},e.prototype.formatRenderPassDescriptor=function(t){var r,i,s,u,n,y,m=t.colorAttachment;t.depthClearValue=(r=t.depthClearValue)!==null&&r!==void 0?r:"load",t.stencilClearValue=(i=t.stencilClearValue)!==null&&i!==void 0?i:"load";for(var g=0;g=0;r--)this.debugGroupStack[r].drawCallCount+=t},e.prototype.debugGroupStatisticsBufferUpload=function(t){t===void 0&&(t=1);for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].bufferUploadCount+=t},e.prototype.debugGroupStatisticsTextureBind=function(t){t===void 0&&(t=1);for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].textureBindCount+=t},e.prototype.debugGroupStatisticsTriangles=function(t){for(var r=this.debugGroupStack.length-1;r>=0;r--)this.debugGroupStack[r].triangleCount+=t},e.prototype.reportShaderError=function(t,r){var i=this.gl,s=i.getShaderParameter(t,i.COMPILE_STATUS);if(!s){console.error(vO(r));var u=i.getExtension("WEBGL_debug_shaders");u&&console.error(u.getTranslatedShaderSource(t)),console.error(i.getShaderInfoLog(t))}return s},e.prototype.checkProgramCompilationForErrors=function(t){var r=this.gl,i=t.gl_program;if(!r.getProgramParameter(i,r.LINK_STATUS)){var s=t.descriptor;if(!this.reportShaderError(t.gl_shader_vert,s.vertex.glsl)||!this.reportShaderError(t.gl_shader_frag,s.fragment.glsl))return;console.error(r.getProgramInfoLog(t.gl_program))}},e.prototype.bindFramebufferAttachment=function(t,r,i,s){var u=this.gl;if(Wu(i))u.framebufferRenderbuffer(t,r,u.RENDERBUFFER,null);else if(i.type===Ko.RenderTarget)i.gl_renderbuffer!==null?u.framebufferRenderbuffer(t,r,u.RENDERBUFFER,i.gl_renderbuffer):i.texture!==null&&u.framebufferTexture2D(t,r,ve.TEXTURE_2D,E0(i.texture),s);else if(i.type===Ko.Texture){var n=E0(i);i.dimension===Uo.TEXTURE_2D?u.framebufferTexture2D(t,r,ve.TEXTURE_2D,n,s):Mr(u)&&(i.dimension,Uo.TEXTURE_2D_ARRAY)}},e.prototype.bindFramebufferDepthStencilAttachment=function(t,r){var i=this.gl,s=Wu(r)?lr.Depth|lr.Stencil:H0(r.format),u=!!(s&lr.Depth),n=!!(s&lr.Stencil);if(u&&n){var y=Mr(this.gl)||!Mr(this.gl)&&!!this.WEBGL_depth_texture;y?this.bindFramebufferAttachment(t,i.DEPTH_STENCIL_ATTACHMENT,r,0):this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,r,0)}else u?(this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,r,0),this.bindFramebufferAttachment(t,i.STENCIL_ATTACHMENT,null,0)):n&&(this.bindFramebufferAttachment(t,i.STENCIL_ATTACHMENT,r,0),this.bindFramebufferAttachment(t,i.DEPTH_ATTACHMENT,null,0))},e.prototype.validateCurrentAttachments=function(){for(var t=-1,r=-1,i=-1,s=0;s=g.numUniformBuffers),mo(y.length>=g.numSamplers);for(var x=0;x{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&D7.decode();let iy=null;function Qh(){return(iy===null||iy.byteLength===0)&&(iy=new Uint8Array(an.memory.buffer)),iy}function Lf(e,t){return e=e>>>0,D7.decode(Qh().subarray(e,e+t))}const Rl=new Array(128).fill(void 0);Rl.push(void 0,null,!0,!1);let dy=Rl.length;function EL(e){dy===Rl.length&&Rl.push(Rl.length+1);const t=dy;return dy=Rl[t],Rl[t]=e,t}function Jh(e){return Rl[e]}function xL(e){e<132||(Rl[e]=dy,dy=e)}function PL(e){const t=Jh(e);return xL(e),t}let X0=0;const ef=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},bL=typeof ef.encodeInto=="function"?function(e,t){return ef.encodeInto(e,t)}:function(e,t){const r=ef.encode(e);return t.set(r),{read:e.length,written:r.length}};function Bf(e,t,r){if(r===void 0){const y=ef.encode(e),m=t(y.length,1)>>>0;return Qh().subarray(m,m+y.length).set(y),X0=y.length,m}let i=e.length,s=t(i,1)>>>0;const u=Qh();let n=0;for(;n127)break;u[s+n]=y}if(n!==i){n!==0&&(e=e.slice(n)),s=r(s,i,i=n+e.length*3,1)>>>0;const y=Qh().subarray(s+n,s+i),m=bL(e,y);n+=m.written}return X0=n,s}let ny=null;function Uf(){return(ny===null||ny.byteLength===0)&&(ny=new Int32Array(an.memory.buffer)),ny}function AL(e,t,r){let i,s;try{const y=an.__wbindgen_add_to_stack_pointer(-16),m=Bf(e,an.__wbindgen_malloc,an.__wbindgen_realloc),g=X0,x=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),b=X0;an.glsl_compile(y,m,g,x,b,r);var u=Uf()[y/4+0],n=Uf()[y/4+1];return i=u,s=n,Lf(u,n)}finally{an.__wbindgen_add_to_stack_pointer(16),an.__wbindgen_free(i,s,1)}}class Iy{static __wrap(t){t=t>>>0;const r=Object.create(Iy.prototype);return r.__wbg_ptr=t,r}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();an.__wbg_wgslcomposer_free(t)}constructor(){const t=an.wgslcomposer_new();return Iy.__wrap(t)}load_composable(t){const r=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),i=X0;an.wgslcomposer_load_composable(this.__wbg_ptr,r,i)}wgsl_compile(t){let r,i;try{const n=an.__wbindgen_add_to_stack_pointer(-16),y=Bf(t,an.__wbindgen_malloc,an.__wbindgen_realloc),m=X0;an.wgslcomposer_wgsl_compile(n,this.__wbg_ptr,y,m);var s=Uf()[n/4+0],u=Uf()[n/4+1];return r=s,i=u,Lf(s,u)}finally{an.__wbindgen_add_to_stack_pointer(16),an.__wbindgen_free(r,i,1)}}}async function FL(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{const r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function TL(){const e={};return e.wbg={},e.wbg.__wbindgen_string_new=function(t,r){const i=Lf(t,r);return EL(i)},e.wbg.__wbindgen_object_drop_ref=function(t){PL(t)},e.wbg.__wbg_log_1d3ae0273d8f4f8a=function(t){console.log(Jh(t))},e.wbg.__wbg_log_576ca876af0d4a77=function(t,r){console.log(Jh(t),Jh(r))},e.wbg.__wbindgen_throw=function(t,r){throw new Error(Lf(t,r))},e}function SL(e,t){return an=e.exports,O7.__wbindgen_wasm_module=t,ny=null,iy=null,an}async function O7(e){if(an!==void 0)return an;const t=TL();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:r,module:i}=await FL(await e,t);return SL(r,i)}var aa;(function(e){e[e.COPY_SRC=1]="COPY_SRC",e[e.COPY_DST=2]="COPY_DST",e[e.TEXTURE_BINDING=4]="TEXTURE_BINDING",e[e.STORAGE_BINDING=8]="STORAGE_BINDING",e[e.STORAGE=8]="STORAGE",e[e.RENDER_ATTACHMENT=16]="RENDER_ATTACHMENT"})(aa||(aa={}));var t6;(function(e){e[e.READ=1]="READ",e[e.WRITE=2]="WRITE"})(t6||(t6={}));function wL(e){var t=0;return e&as.SAMPLED&&(t|=aa.TEXTURE_BINDING|aa.COPY_DST|aa.COPY_SRC),e&as.STORAGE&&(t|=aa.TEXTURE_BINDING|aa.STORAGE_BINDING|aa.COPY_SRC|aa.COPY_DST),e&as.RENDER_TARGET&&(t|=aa.RENDER_ATTACHMENT|aa.TEXTURE_BINDING|aa.COPY_SRC|aa.COPY_DST),t}function j6(e){if(e===ke.U8_R_NORM)return"r8unorm";if(e===ke.S8_R_NORM)return"r8snorm";if(e===ke.U8_RG_NORM)return"rg8unorm";if(e===ke.S8_RG_NORM)return"rg8snorm";if(e===ke.U32_R)return"r32uint";if(e===ke.S32_R)return"r32sint";if(e===ke.F32_R)return"r32float";if(e===ke.U16_RG)return"rg16uint";if(e===ke.S16_RG)return"rg16sint";if(e===ke.F16_RG)return"rg16float";if(e===ke.U8_RGBA_RT)return"bgra8unorm";if(e===ke.U8_RGBA_RT_SRGB)return"bgra8unorm-srgb";if(e===ke.U8_RGBA_NORM)return"rgba8unorm";if(e===ke.U8_RGBA_SRGB)return"rgba8unorm-srgb";if(e===ke.S8_RGBA_NORM)return"rgba8snorm";if(e===ke.U32_RG)return"rg32uint";if(e===ke.S32_RG)return"rg32sint";if(e===ke.F32_RG)return"rg32float";if(e===ke.U16_RGBA)return"rgba16uint";if(e===ke.S16_RGBA)return"rgba16sint";if(e===ke.F16_RGBA)return"rgba16float";if(e===ke.F32_RGBA)return"rgba32float";if(e===ke.U32_RGBA)return"rgba32uint";if(e===ke.S32_RGBA)return"rgba32sint";if(e===ke.D24)return"depth24plus";if(e===ke.D24_S8)return"depth24plus-stencil8";if(e===ke.D32F)return"depth32float";if(e===ke.D32F_S8)return"depth32float-stencil8";if(e===ke.BC1)return"bc1-rgba-unorm";if(e===ke.BC1_SRGB)return"bc1-rgba-unorm-srgb";if(e===ke.BC2)return"bc2-rgba-unorm";if(e===ke.BC2_SRGB)return"bc2-rgba-unorm-srgb";if(e===ke.BC3)return"bc3-rgba-unorm";if(e===ke.BC3_SRGB)return"bc3-rgba-unorm-srgb";if(e===ke.BC4_SNORM)return"bc4-r-snorm";if(e===ke.BC4_UNORM)return"bc4-r-unorm";if(e===ke.BC5_SNORM)return"bc5-rg-snorm";if(e===ke.BC5_UNORM)return"bc5-rg-unorm";throw"whoops"}function RL(e){if(e===Uo.TEXTURE_2D)return"2d";if(e===Uo.TEXTURE_CUBE_MAP)return"2d";if(e===Uo.TEXTURE_2D_ARRAY)return"2d";if(e===Uo.TEXTURE_3D)return"3d";throw new Error("whoops")}function CL(e){if(e===Uo.TEXTURE_2D)return"2d";if(e===Uo.TEXTURE_CUBE_MAP)return"cube";if(e===Uo.TEXTURE_2D_ARRAY)return"2d-array";if(e===Uo.TEXTURE_3D)return"3d";throw new Error("whoops")}function IL(e){var t=0;return e&xi.INDEX&&(t|=GPUBufferUsage.INDEX),e&xi.VERTEX&&(t|=GPUBufferUsage.VERTEX),e&xi.UNIFORM&&(t|=GPUBufferUsage.UNIFORM),e&xi.STORAGE&&(t|=GPUBufferUsage.STORAGE),e&xi.COPY_SRC&&(t|=GPUBufferUsage.COPY_SRC),e&xi.INDIRECT&&(t|=GPUBufferUsage.INDIRECT),t|=GPUBufferUsage.COPY_DST,t}function i2(e){if(e===_s.CLAMP_TO_EDGE)return"clamp-to-edge";if(e===_s.REPEAT)return"repeat";if(e===_s.MIRRORED_REPEAT)return"mirror-repeat";throw new Error("whoops")}function _g(e){if(e===xn.BILINEAR)return"linear";if(e===xn.POINT)return"nearest";throw new Error("whoops")}function ML(e){if(e===sa.LINEAR)return"linear";if(e===sa.NEAREST)return"nearest";if(e===sa.NO_MIP)return"nearest";throw new Error("whoops")}function A0(e){var t=e;return t.gpuBuffer}function NL(e){var t=e;return t.gpuSampler}function DL(e){var t=e;return t.querySet}function OL(e){if(e===If.OcclusionConservative)return"occlusion";throw new Error("whoops")}function LL(e){switch(e){case Gn.TRIANGLES:return"triangle-list";case Gn.POINTS:return"point-list";case Gn.TRIANGLE_STRIP:return"triangle-strip";case Gn.LINES:return"line-list";case Gn.LINE_STRIP:return"line-strip";default:throw new Error("Unknown primitive topology mode")}}function BL(e){if(e===zs.NONE)return"none";if(e===zs.FRONT)return"front";if(e===zs.BACK)return"back";throw new Error("whoops")}function UL(e){if(e===Cy.CCW)return"ccw";if(e===Cy.CW)return"cw";throw new Error("whoops")}function kL(e,t){return{topology:LL(e),cullMode:BL(t.cullMode),frontFace:UL(t.frontFace)}}function gg(e){if(e===Bo.ZERO)return"zero";if(e===Bo.ONE)return"one";if(e===Bo.SRC)return"src";if(e===Bo.ONE_MINUS_SRC)return"one-minus-src";if(e===Bo.DST)return"dst";if(e===Bo.ONE_MINUS_DST)return"one-minus-dst";if(e===Bo.SRC_ALPHA)return"src-alpha";if(e===Bo.ONE_MINUS_SRC_ALPHA)return"one-minus-src-alpha";if(e===Bo.DST_ALPHA)return"dst-alpha";if(e===Bo.ONE_MINUS_DST_ALPHA)return"one-minus-dst-alpha";if(e===Bo.CONST)return"constant";if(e===Bo.ONE_MINUS_CONSTANT)return"one-minus-constant";if(e===Bo.SRC_ALPHA_SATURATE)return"src-alpha-saturated";throw new Error("whoops")}function zL(e){if(e===va.ADD)return"add";if(e===va.SUBSTRACT)return"subtract";if(e===va.REVERSE_SUBSTRACT)return"reverse-subtract";if(e===va.MIN)return"min";if(e===va.MAX)return"max";throw new Error("whoops")}function vg(e){return{operation:zL(e.blendMode),srcFactor:gg(e.blendSrcFactor),dstFactor:gg(e.blendDstFactor)}}function Eg(e){return e.blendMode===va.ADD&&e.blendSrcFactor===Bo.ONE&&e.blendDstFactor===Bo.ZERO}function VL(e){if(!(Eg(e.rgbBlendState)&&Eg(e.alphaBlendState)))return{color:vg(e.rgbBlendState),alpha:vg(e.alphaBlendState)}}function HL(e,t){return{format:j6(t),blend:VL(e),writeMask:e.channelWriteMask}}function GL(e,t){return t.attachmentsState.map(function(r,i){return HL(r,e[i])})}function tf(e){if(e===ai.NEVER)return"never";if(e===ai.LESS)return"less";if(e===ai.EQUAL)return"equal";if(e===ai.LEQUAL)return"less-equal";if(e===ai.GREATER)return"greater";if(e===ai.NOTEQUAL)return"not-equal";if(e===ai.GEQUAL)return"greater-equal";if(e===ai.ALWAYS)return"always";throw new Error("whoops")}function m0(e){if(e===un.KEEP)return"keep";if(e===un.REPLACE)return"replace";if(e===un.ZERO)return"zero";if(e===un.DECREMENT_CLAMP)return"decrement-clamp";if(e===un.DECREMENT_WRAP)return"decrement-wrap";if(e===un.INCREMENT_CLAMP)return"increment-clamp";if(e===un.INCREMENT_WRAP)return"increment-wrap";if(e===un.INVERT)return"invert";throw new Error("whoops")}function jL(e,t){if(!Wu(e))return{format:j6(e),depthWriteEnabled:!!t.depthWrite,depthCompare:tf(t.depthCompare),depthBias:t.polygonOffset?t.polygonOffsetUnits:0,depthBiasSlopeScale:t.polygonOffset?t.polygonOffsetFactor:0,stencilFront:{compare:tf(t.stencilFront.compare),passOp:m0(t.stencilFront.passOp),failOp:m0(t.stencilFront.failOp),depthFailOp:m0(t.stencilFront.depthFailOp)},stencilBack:{compare:tf(t.stencilBack.compare),passOp:m0(t.stencilBack.passOp),failOp:m0(t.stencilBack.failOp),depthFailOp:m0(t.stencilBack.depthFailOp)},stencilReadMask:4294967295,stencilWriteMask:4294967295}}function WL(e){if(e!==null){if(e===ke.U16_R)return"uint16";if(e===ke.U32_R)return"uint32";throw new Error("whoops")}}function XL(e){if(e===x1.VERTEX)return"vertex";if(e===x1.INSTANCE)return"instance";throw new Error("whoops")}function ZL(e){if(e===ke.U8_R)return"uint8x2";if(e===ke.U8_RG)return"uint8x2";if(e===ke.U8_RGB)return"uint8x4";if(e===ke.U8_RGBA)return"uint8x4";if(e===ke.U8_RG_NORM)return"unorm8x2";if(e===ke.U8_RGBA_NORM)return"unorm8x4";if(e===ke.S8_RGB_NORM)return"snorm8x4";if(e===ke.S8_RGBA_NORM)return"snorm8x4";if(e===ke.U16_RG_NORM)return"unorm16x2";if(e===ke.U16_RGBA_NORM)return"unorm16x4";if(e===ke.S16_RG_NORM)return"snorm16x2";if(e===ke.S16_RGBA_NORM)return"snorm16x4";if(e===ke.S16_RG)return"uint16x2";if(e===ke.F16_RG)return"float16x2";if(e===ke.F16_RGBA)return"float16x4";if(e===ke.F32_R)return"float32";if(e===ke.F32_RG)return"float32x2";if(e===ke.F32_RGB)return"float32x3";if(e===ke.F32_RGBA)return"float32x4";throw"whoops"}function YL(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_SNORM:case bt.BC4_UNORM:case bt.BC5_SNORM:case bt.BC5_UNORM:return!0;default:return!1}}function $L(e){var t=qp(e);switch(t){case bt.BC1:case bt.BC2:case bt.BC3:case bt.BC4_SNORM:case bt.BC4_UNORM:case bt.BC5_SNORM:case bt.BC5_UNORM:return 4;default:return 1}}function xg(e,t,r,i){switch(r===void 0&&(r=!1),e){case ke.S8_R:case ke.S8_R_NORM:case ke.S8_RG_NORM:case ke.S8_RGB_NORM:case ke.S8_RGBA_NORM:{var s=t instanceof ArrayBuffer?new Int8Array(t):new Int8Array(t);return i&&s.set(new Int8Array(i)),s}case ke.U8_R:case ke.U8_R_NORM:case ke.U8_RG:case ke.U8_RG_NORM:case ke.U8_RGB:case ke.U8_RGB_NORM:case ke.U8_RGB_SRGB:case ke.U8_RGBA:case ke.U8_RGBA_NORM:case ke.U8_RGBA_SRGB:{var u=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t);return i&&u.set(new Uint8Array(i)),u}case ke.S16_R:case ke.S16_RG:case ke.S16_RG_NORM:case ke.S16_RGB_NORM:case ke.S16_RGBA:case ke.S16_RGBA_NORM:{var n=t instanceof ArrayBuffer?new Int16Array(t):new Int16Array(r?t/2:t);return i&&n.set(new Int16Array(i)),n}case ke.U16_R:case ke.U16_RGB:case ke.U16_RGBA_5551:case ke.U16_RGBA_NORM:case ke.U16_RG_NORM:case ke.U16_R_NORM:{var y=t instanceof ArrayBuffer?new Uint16Array(t):new Uint16Array(r?t/2:t);return i&&y.set(new Uint16Array(i)),y}case ke.S32_R:{var m=t instanceof ArrayBuffer?new Int32Array(t):new Int32Array(r?t/4:t);return i&&m.set(new Int32Array(i)),m}case ke.U32_R:case ke.U32_RG:{var g=t instanceof ArrayBuffer?new Uint32Array(t):new Uint32Array(r?t/4:t);return i&&g.set(new Uint32Array(i)),g}case ke.F32_R:case ke.F32_RG:case ke.F32_RGB:case ke.F32_RGBA:{var x=t instanceof ArrayBuffer?new Float32Array(t):new Float32Array(r?t/4:t);return i&&x.set(new Float32Array(i)),x}}var b=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t);return i&&b.set(new Uint8Array(i)),b}function qL(e){var t=(e&32768)>>15,r=(e&31744)>>10,i=e&1023;return r===0?(t?-1:1)*Math.pow(2,-14)*(i/Math.pow(2,10)):r==31?i?NaN:(t?-1:1)*(1/0):(t?-1:1)*Math.pow(2,r-15)*(1+i/Math.pow(2,10))}function L7(e){switch(e){case"r8unorm":case"r8snorm":case"r8uint":case"r8sint":return{width:1,height:1,length:1};case"r16uint":case"r16sint":case"r16float":case"rg8unorm":case"rg8snorm":case"rg8uint":case"rg8sint":return{width:1,height:1,length:2};case"r32uint":case"r32sint":case"r32float":case"rg16uint":case"rg16sint":case"rg16float":case"rgba8unorm":case"rgba8unorm-srgb":case"rgba8snorm":case"rgba8uint":case"rgba8sint":case"bgra8unorm":case"bgra8unorm-srgb":case"rgb9e5ufloat":case"rgb10a2unorm":case"rg11b10ufloat":return{width:1,height:1,length:4};case"rg32uint":case"rg32sint":case"rg32float":case"rgba16uint":case"rgba16sint":case"rgba16float":return{width:1,height:1,length:8};case"rgba32uint":case"rgba32sint":case"rgba32float":return{width:1,height:1,length:16};case"stencil8":throw new Error("No fixed size for Stencil8 format!");case"depth16unorm":return{width:1,height:1,length:2};case"depth24plus":throw new Error("No fixed size for Depth24Plus format!");case"depth24plus-stencil8":throw new Error("No fixed size for Depth24PlusStencil8 format!");case"depth32float":return{width:1,height:1,length:4};case"depth32float-stencil8":return{width:1,height:1,length:5};case"bc7-rgba-unorm":case"bc7-rgba-unorm-srgb":case"bc6h-rgb-ufloat":case"bc6h-rgb-float":case"bc2-rgba-unorm":case"bc2-rgba-unorm-srgb":case"bc3-rgba-unorm":case"bc3-rgba-unorm-srgb":case"bc5-rg-unorm":case"bc5-rg-snorm":return{width:4,height:4,length:16};case"bc4-r-unorm":case"bc4-r-snorm":case"bc1-rgba-unorm":case"bc1-rgba-unorm-srgb":return{width:4,height:4,length:8};default:return{width:1,height:1,length:4}}}var gp=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this)||this;return u.id=i,u.device=s,u}return t.prototype.destroy=function(){},t}(x7),KL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Bindings;var g=u.pipeline;mo(!!g);var x=u.uniformBufferBindings,b=u.storageBufferBindings,F=u.samplerBindings,R=u.storageTextureBindings;m.numUniformBuffers=(x==null?void 0:x.length)||0;var I=[[],[],[],[]],U=0;if(x&&x.length)for(var V=0;Vb;)this.device.device.queue.writeBuffer(n,r+F,i.buffer,y+F,b),F+=b;this.device.device.queue.writeBuffer(n,r+F,i.buffer,y+F,u-F)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.gpuBuffer.destroy()},t}(gp),Pg=function(){function e(){this.gpuComputePassEncoder=null}return e.prototype.dispatchWorkgroups=function(t,r,i){this.gpuComputePassEncoder.dispatchWorkgroups(t,r,i)},e.prototype.dispatchWorkgroupsIndirect=function(t,r){this.gpuComputePassEncoder.dispatchWorkgroupsIndirect(t.gpuBuffer,r)},e.prototype.finish=function(){this.gpuComputePassEncoder.end(),this.gpuComputePassEncoder=null,this.frameCommandEncoder=null},e.prototype.beginComputePass=function(t){mo(this.gpuComputePassEncoder===null),this.frameCommandEncoder=t,this.gpuComputePassEncoder=this.frameCommandEncoder.beginComputePass(this.gpuComputePassDescriptor)},e.prototype.setPipeline=function(t){var r=t,i=l1(r.gpuComputePipeline);this.gpuComputePassEncoder.setPipeline(i)},e.prototype.setBindings=function(t){var r=this,i=t;i.gpuBindGroup.forEach(function(s,u){s&&r.gpuComputePassEncoder.setBindGroup(u,i.gpuBindGroup[u])})},e.prototype.pushDebugGroup=function(t){this.gpuComputePassEncoder.pushDebugGroup(t)},e.prototype.popDebugGroup=function(){this.gpuComputePassEncoder.popDebugGroup()},e.prototype.insertDebugMarker=function(t){this.gpuComputePassEncoder.insertDebugMarker(t)},e}(),JL=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.ComputePipeline,n.gpuComputePipeline=null,n.descriptor=u;var y=u.program,m=y.computeStage;if(m===null)return n;var g={layout:"auto",compute:Dn({},m)};return n.gpuComputePipeline=n.device.device.createComputePipeline(g),n.name!==void 0&&(n.gpuComputePipeline.label=n.name),n}return t.prototype.getBindGroupLayout=function(r){return this.gpuComputePipeline.getBindGroupLayout(r)},t}(gp),eB=function(e){pn(t,e);function t(r){var i,s,u,n,y=r.id,m=r.device,g=r.descriptor,x=e.call(this,{id:y,device:m})||this;x.type=Ko.InputLayout;var b=[];try{for(var F=y1(g.vertexBufferDescriptors),R=F.next();!R.done;R=F.next()){var I=R.value,U=I.arrayStride,V=I.stepMode,J=I.attributes;b.push({arrayStride:U,stepMode:XL(V),attributes:[]});try{for(var Q=(u=void 0,y1(J)),te=Q.next();!te.done;te=Q.next()){var ne=te.value,pe=ne.shaderLocation,Oe=ne.format,Ee=ne.offset;b[b.length-1].attributes.push({shaderLocation:pe,format:ZL(Oe),offset:Ee})}}catch(He){u={error:He}}finally{try{te&&!te.done&&(n=Q.return)&&n.call(Q)}finally{if(u)throw u.error}}}}catch(He){i={error:He}}finally{try{R&&!R.done&&(s=F.return)&&s.call(F)}finally{if(i)throw i.error}}return x.indexFormat=WL(g.indexBufferFormat),x.buffers=b,x}return t}(gp),bg=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;return n.type=Ko.Program,n.vertexStage=null,n.fragmentStage=null,n.computeStage=null,n.descriptor=u,u.vertex&&(n.vertexStage=n.createShaderStage(u.vertex,"vertex")),u.fragment&&(n.fragmentStage=n.createShaderStage(u.fragment,"fragment")),u.compute&&(n.computeStage=n.createShaderStage(u.compute,"compute")),n}return t.prototype.setUniformsLegacy=function(r){},t.prototype.createShaderStage=function(r,i){var s,u,n=r.glsl,y=r.wgsl,m=r.entryPoint,g=r.postprocess,x=!1,b=y;if(!b)try{b=this.device.glsl_compile(n,i,x)}catch(J){throw console.error(J,n),new Error("whoops")}var F=function(J){if(!b.includes(J))return"continue";b=b.replace("var T_".concat(J,": texture_2d;"),"var T_".concat(J,": texture_depth_2d;")),b=b.replace(new RegExp("textureSample\\(T_".concat(J,"(.*)\\);$"),"gm"),function(Q,te){return"vec4(textureSample(T_".concat(J).concat(te,"), 0.0, 0.0, 0.0);")})};try{for(var R=y1(["u_TextureFramebufferDepth"]),I=R.next();!I.done;I=R.next()){var U=I.value;F(U)}}catch(J){s={error:J}}finally{try{I&&!I.done&&(u=R.return)&&u.call(R)}finally{if(s)throw s.error}}g&&(b=g(b));var V=this.device.device.createShaderModule({code:b});return{module:V,entryPoint:m||"main"}},t}(gp),tB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;n.type=Ko.QueryPool;var y=u.elemCount,m=u.type;return n.querySet=n.device.device.createQuerySet({type:OL(m),count:y}),n.resolveBuffer=n.device.device.createBuffer({size:y*8,usage:GPUBufferUsage.QUERY_RESOLVE|GPUBufferUsage.COPY_SRC}),n.cpuBuffer=n.device.device.createBuffer({size:y*8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),n.results=null,n}return t.prototype.queryResultOcclusion=function(r){return this.results===null?null:this.results[r]!==BigInt(0)},t.prototype.destroy=function(){e.prototype.destroy.call(this),this.querySet.destroy(),this.resolveBuffer.destroy(),this.cpuBuffer.destroy()},t}(gp),rB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=e.call(this,{id:i,device:s})||this;return u.type=Ko.Readback,u}return t.prototype.readTexture=function(r,i,s,u,n,y,m,g){return m===void 0&&(m=0),F0(this,void 0,void 0,function(){var x,b,F,R,I,U,V,J;return T0(this,function(Q){return x=r,b=0,F=L7(x.gpuTextureformat),R=Math.ceil(u/F.width)*F.length,I=Math.ceil(R/256)*256,U=I*n,V=this.device.createBuffer({usage:xi.STORAGE|xi.MAP_READ|xi.COPY_DST,hint:mp.STATIC,viewOrSize:U}),J=this.device.device.createCommandEncoder(),J.copyTextureToBuffer({texture:x.gpuTexture,mipLevel:0,origin:{x:i,y:s,z:Math.max(b,0)}},{buffer:V.gpuBuffer,offset:0,bytesPerRow:I},{width:u,height:n,depthOrArrayLayers:1}),this.device.device.queue.submit([J.finish()]),[2,this.readBuffer(V,0,y.byteLength===U?y:null,m,U,x.format,!0,!1,R,I,n)]})})},t.prototype.readTextureSync=function(r,i,s,u,n,y,m,g){throw new Error("ERROR_MSG_METHOD_NOT_IMPLEMENTED")},t.prototype.readBuffer=function(r,i,s,u,n,y,m,g,x,b,F){var R=this;i===void 0&&(i=0),s===void 0&&(s=null),n===void 0&&(n=0),y===void 0&&(y=ke.U8_RGB),m===void 0&&(m=!1),x===void 0&&(x=0),b===void 0&&(b=0),F===void 0&&(F=0);var I=r,U=n||I.size,V=s||I.view,J=V&&V.constructor&&V.constructor.BYTES_PER_ELEMENT||b7(y),Q=I;if(!(I.usage&xi.MAP_READ&&I.usage&xi.COPY_DST)){var te=this.device.device.createCommandEncoder();Q=this.device.createBuffer({usage:xi.STORAGE|xi.MAP_READ|xi.COPY_DST,hint:mp.STATIC,viewOrSize:U}),te.copyBufferToBuffer(I.gpuBuffer,i,Q.gpuBuffer,0,U),this.device.device.queue.submit([te.finish()])}return new Promise(function(ne,pe){Q.gpuBuffer.mapAsync(t6.READ,i,U).then(function(){var Oe=Q.gpuBuffer.getMappedRange(i,U),Ee=V;if(m)Ee===null?Ee=xg(y,U,!0,Oe):Ee=xg(y,Ee.buffer,void 0,Oe);else if(Ee===null)switch(J){case 1:Ee=new Uint8Array(U),Ee.set(new Uint8Array(Oe));break;case 2:Ee=R.getHalfFloatAsFloatRGBAArrayBuffer(U/2,Oe);break;case 4:Ee=new Float32Array(U/4),Ee.set(new Float32Array(Oe));break}else switch(J){case 1:Ee=new Uint8Array(Ee.buffer),Ee.set(new Uint8Array(Oe));break;case 2:Ee=R.getHalfFloatAsFloatRGBAArrayBuffer(U/2,Oe,V);break;case 4:var He=V&&V.constructor||Float32Array;Ee=new He(Ee.buffer),Ee.set(new He(Oe));break}if(x!==b){J===1&&!m&&(x*=2,b*=2);for(var ft=new Uint8Array(Ee.buffer),Ge=x,Ae=0,Be=1;Be1?F.resolveTarget=this.getTextureView(b,this.gfxColorResolveToLevel[g]):F.storeOp="store")}else{this.gpuColorAttachments.length=g,this.gfxColorAttachment.length=g,this.gfxColorResolveTo.length=g;break}}if(this.gfxDepthStencilAttachment=t.depthStencilAttachment,this.gfxDepthStencilResolveTo=t.depthStencilResolveTo,t.depthStencilAttachment){var I=t.depthStencilAttachment,F=this.gpuDepthStencilAttachment;F.view=I.gpuTextureView;var U=!!(H0(I.format)&lr.Depth);U?(t.depthClearValue==="load"?F.depthLoadOp="load":(F.depthLoadOp="clear",F.depthClearValue=t.depthClearValue),t.depthStencilStore||this.gfxDepthStencilResolveTo!==null?F.depthStoreOp="store":F.depthStoreOp="discard"):(F.depthLoadOp=void 0,F.depthStoreOp=void 0);var V=!!(H0(I.format)&lr.Stencil);V?(t.stencilClearValue==="load"?F.stencilLoadOp="load":(F.stencilLoadOp="clear",F.stencilClearValue=t.stencilClearValue),t.depthStencilStore||this.gfxDepthStencilResolveTo!==null?F.stencilStoreOp="store":F.stencilStoreOp="discard"):(F.stencilLoadOp=void 0,F.stencilStoreOp=void 0),this.gpuRenderPassDescriptor.depthStencilAttachment=this.gpuDepthStencilAttachment}else this.gpuRenderPassDescriptor.depthStencilAttachment=void 0;this.gpuRenderPassDescriptor.occlusionQuerySet=Wu(t.occlusionQueryPool)?void 0:DL(t.occlusionQueryPool)},e.prototype.beginRenderPass=function(t,r){mo(this.gpuRenderPassEncoder===null),this.setRenderPassDescriptor(r),this.frameCommandEncoder=t,this.gpuRenderPassEncoder=this.frameCommandEncoder.beginRenderPass(this.gpuRenderPassDescriptor)},e.prototype.flipY=function(t,r){var i=this.device.swapChainHeight;return i-t-r},e.prototype.setViewport=function(t,r,i,s,u,n){u===void 0&&(u=0),n===void 0&&(n=1),this.gpuRenderPassEncoder.setViewport(t,this.flipY(r,s),i,s,u,n)},e.prototype.setScissorRect=function(t,r,i,s){this.gpuRenderPassEncoder.setScissorRect(t,this.flipY(r,s),i,s)},e.prototype.setPipeline=function(t){var r=t,i=l1(r.gpuRenderPipeline);this.getEncoder().setPipeline(i)},e.prototype.setVertexInput=function(t,r,i){if(t!==null){var s=this.getEncoder(),u=t;i!==null&&s.setIndexBuffer(A0(i.buffer),l1(u.indexFormat),i.offset);for(var n=0;n1||this.copyAttachment(this.gfxDepthStencilResolveTo,0,this.gfxDepthStencilAttachment,0)),this.frameCommandEncoder=null},e.prototype.copyAttachment=function(t,r,i,s){mo(i.sampleCount===1);var u={texture:i.gpuTexture,mipLevel:s},n={texture:t.gpuTexture,mipLevel:r};mo(i.width>>>s===t.width>>>r),mo(i.height>>>s===t.height>>>r),mo(!!(i.usage&aa.COPY_SRC)),mo(!!(t.usage&aa.COPY_DST)),this.frameCommandEncoder.copyTextureToTexture(u,n,[t.width,t.height,1])},e}(),oB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=e.call(this,{id:i,device:s})||this;return n.type=Ko.RenderPipeline,n.isCreatingAsync=!1,n.gpuRenderPipeline=null,n.descriptor=u,n.device.createRenderPipelineInternal(n,!1),n}return t.prototype.getBindGroupLayout=function(r){return this.gpuRenderPipeline.getBindGroupLayout(r)},t}(gp),iB=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n,y,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Sampler;var g=u.lodMinClamp,x=u.mipmapFilter===sa.NO_MIP?u.lodMinClamp:u.lodMaxClamp,b=(n=u.maxAnisotropy)!==null&&n!==void 0?n:1;return b>1&&mo(u.minFilter===xn.BILINEAR&&u.magFilter===xn.BILINEAR&&u.mipmapFilter===sa.LINEAR),m.gpuSampler=m.device.device.createSampler({addressModeU:i2(u.addressModeU),addressModeV:i2(u.addressModeV),addressModeW:i2((y=u.addressModeW)!==null&&y!==void 0?y:u.addressModeU),lodMinClamp:g,lodMaxClamp:x,minFilter:_g(u.minFilter),magFilter:_g(u.magFilter),mipmapFilter:ML(u.mipmapFilter),compare:u.compareFunction!==void 0?tf(u.compareFunction):void 0,maxAnisotropy:b}),m}return t}(gp),kh=function(e){pn(t,e);function t(r){var i=r.id,s=r.device,u=r.descriptor,n=r.skipCreate,y=r.sampleCount,m=e.call(this,{id:i,device:s})||this;m.type=Ko.Texture,m.flipY=!1;var g=u.format,x=u.dimension,b=u.width,F=u.height,R=u.depthOrArrayLayers,I=u.mipLevelCount,U=u.usage,V=u.pixelStore;return m.flipY=!!(V!=null&&V.unpackFlipY),m.device.createTextureShared({format:g,dimension:x??Uo.TEXTURE_2D,width:b,height:F,depthOrArrayLayers:R??1,mipLevelCount:I??1,usage:U,sampleCount:y??1},m,n),m}return t.prototype.textureFromImageBitmapOrCanvas=function(r,i,s){for(var u=i[0].width,n=i[0].height,y={size:{width:u,height:n,depthOrArrayLayers:s},format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT},m=r.createTexture(y),g=0;g>>2,uniformBufferWordAlignment:this.device.limits.minUniformBufferOffsetAlignment>>>2,supportedSampleCounts:[1],occlusionQueriesRecommended:!0,computeShadersSupported:!0}},e.prototype.queryTextureFormatSupported=function(t,r,i){if(YL(t)){if(!this.featureTextureCompressionBC)return!1;var s=$L(t);return r%s!==0||i%s!==0?!1:this.featureTextureCompressionBC}switch(t){case ke.U16_RGBA_NORM:return!1;case ke.F32_RGBA:return!1}return!0},e.prototype.queryPlatformAvailable=function(){return!0},e.prototype.queryVendorInfo=function(){return this},e.prototype.queryRenderPass=function(t){var r=t;return r.descriptor},e.prototype.queryRenderTarget=function(t){var r=t;return r},e.prototype.setResourceName=function(t,r){if(t.name=r,t.type===Ko.Buffer){var i=t;i.gpuBuffer.label=r}else if(t.type===Ko.Texture){var i=t;i.gpuTexture.label=r,i.gpuTextureView.label=r}else if(t.type===Ko.RenderTarget){var i=t;i.gpuTexture.label=r,i.gpuTextureView.label=r}else if(t.type===Ko.Sampler){var i=t;i.gpuSampler.label=r}else if(t.type===Ko.RenderPipeline){var i=t;i.gpuRenderPipeline!==null&&(i.gpuRenderPipeline.label=r)}},e.prototype.setResourceLeakCheck=function(t,r){},e.prototype.checkForLeaks=function(){},e.prototype.programPatched=function(t){},e.prototype.pipelineQueryReady=function(t){var r=t;return r.gpuRenderPipeline!==null},e.prototype.pipelineForceReady=function(t){var r=t;this.createRenderPipelineInternal(r,!1)},e}(),sB=function(){function e(t){this.pluginOptions=t}return e.prototype.createSwapChain=function(t){return F0(this,void 0,void 0,function(){var r,i,s,u,n,y,m,g;return T0(this,function(x){switch(x.label){case 0:if(globalThis.navigator.gpu===void 0)return[2,null];r=null,x.label=1;case 1:return x.trys.push([1,3,,4]),i=this.pluginOptions.xrCompatible,[4,globalThis.navigator.gpu.requestAdapter({xrCompatible:i})];case 2:return r=x.sent(),[3,4];case 3:return s=x.sent(),console.log(s),[3,4];case 4:return r===null?[2,null]:(u=["depth32float-stencil8","texture-compression-bc","float32-filterable"],n=u.filter(function(b){return r.features.has(b)}),[4,r.requestDevice({requiredFeatures:n})]);case 5:if(y=x.sent(),y&&(m=this.pluginOptions.onContextLost,y.lost.then(function(){m&&m()})),y===null)return[2,null];if(g=t.getContext("webgpu"),!g)return[2,null];x.label=6;case 6:return x.trys.push([6,8,,9]),[4,O7(this.pluginOptions.shaderCompilerPath)];case 7:return x.sent(),[3,9];case 8:return x.sent(),[3,9];case 9:return[2,new aB(r,y,t,g,AL,Iy&&new Iy)]}})})},e}(),uB=class{constructor(e,t){const{buffer:r,offset:i,stride:s,normalized:u,size:n,divisor:y,shaderLocation:m}=t;this.buffer=r,this.attribute={shaderLocation:m,buffer:r.get(),offset:i||0,stride:s||0,normalized:u||!1,divisor:y||0},n&&(this.attribute.size=n)}get(){return this.buffer}updateBuffer(e){this.buffer.subData(e)}destroy(){this.buffer.destroy()}},kf={[L.FLOAT]:Float32Array,[L.UNSIGNED_BYTE]:Uint8Array,[L.SHORT]:Int16Array,[L.UNSIGNED_SHORT]:Uint16Array,[L.INT]:Int32Array,[L.UNSIGNED_INT]:Uint32Array},pB={[L.POINTS]:Gn.POINTS,[L.LINES]:Gn.LINES,[L.LINE_LOOP]:Gn.LINES,[L.LINE_STRIP]:Gn.LINE_STRIP,[L.TRIANGLES]:Gn.TRIANGLES,[L.TRIANGLE_FAN]:Gn.TRIANGLES,[L.TRIANGLE_STRIP]:Gn.TRIANGLE_STRIP},lB={1:ke.F32_R,2:ke.F32_RG,3:ke.F32_RGB,4:ke.F32_RGBA},cB={[L.STATIC_DRAW]:mp.STATIC,[L.DYNAMIC_DRAW]:mp.DYNAMIC,[L.STREAM_DRAW]:mp.DYNAMIC},Fg={[L.REPEAT]:_s.REPEAT,[L.CLAMP_TO_EDGE]:_s.CLAMP_TO_EDGE,[L.MIRRORED_REPEAT]:_s.MIRRORED_REPEAT},dB={[L.NEVER]:ai.NEVER,[L.ALWAYS]:ai.ALWAYS,[L.LESS]:ai.LESS,[L.LEQUAL]:ai.LEQUAL,[L.GREATER]:ai.GREATER,[L.GEQUAL]:ai.GEQUAL,[L.EQUAL]:ai.EQUAL,[L.NOTEQUAL]:ai.NOTEQUAL},yB={[L.FRONT]:zs.FRONT,[L.BACK]:zs.BACK},Tg={[L.FUNC_ADD]:va.ADD,[L.MIN_EXT]:va.MIN,[L.MAX_EXT]:va.MAX,[L.FUNC_SUBTRACT]:va.SUBSTRACT,[L.FUNC_REVERSE_SUBTRACT]:va.REVERSE_SUBSTRACT},zh={[L.ZERO]:Bo.ZERO,[L.ONE]:Bo.ONE,[L.SRC_COLOR]:Bo.SRC,[L.ONE_MINUS_SRC_COLOR]:Bo.ONE_MINUS_SRC,[L.SRC_ALPHA]:Bo.SRC_ALPHA,[L.ONE_MINUS_SRC_ALPHA]:Bo.ONE_MINUS_SRC_ALPHA,[L.DST_COLOR]:Bo.DST,[L.ONE_MINUS_DST_COLOR]:Bo.ONE_MINUS_DST,[L.DST_ALPHA]:Bo.DST_ALPHA,[L.ONE_MINUS_DST_ALPHA]:Bo.ONE_MINUS_DST_ALPHA,[L.CONSTANT_COLOR]:Bo.CONST,[L.ONE_MINUS_CONSTANT_COLOR]:Bo.ONE_MINUS_CONSTANT,[L.CONSTANT_ALPHA]:Bo.CONST,[L.ONE_MINUS_CONSTANT_ALPHA]:Bo.ONE_MINUS_CONSTANT,[L.SRC_ALPHA_SATURATE]:Bo.SRC_ALPHA_SATURATE},_0={[L.REPLACE]:un.REPLACE,[L.KEEP]:un.KEEP,[L.ZERO]:un.ZERO,[L.INVERT]:un.INVERT,[L.INCR]:un.INCREMENT_CLAMP,[L.DECR]:un.DECREMENT_CLAMP,[L.INCR_WRAP]:un.INCREMENT_WRAP,[L.DECR_WRAP]:un.DECREMENT_WRAP},hB={[L.ALWAYS]:ai.ALWAYS,[L.EQUAL]:ai.EQUAL,[L.GEQUAL]:ai.GEQUAL,[L.GREATER]:ai.GREATER,[L.LEQUAL]:ai.LEQUAL,[L.LESS]:ai.LESS,[L.NEVER]:ai.NEVER,[L.NOTEQUAL]:ai.NOTEQUAL},fB={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121};function zf(e){return Object.prototype.toString.call(e)in fB}function mB(e,t){const r=e.length,i=Math.ceil(r/3),s=r+i,u=new Float32Array(s);for(let n=0;n>>6,e>>>0}function B7(e){return e+=e<<3,e^=e>>>11,e+=e<<15,e>>>0}function Sg(){return 0}var gB=class{constructor(){this.keys=[],this.values=[]}},Vh=class{constructor(e,t){this.keyEqualFunc=e,this.keyHashFunc=t,this.buckets=new Map}findBucketIndex(e,t){for(let r=0;r=0;t--)yield e.values[t]}};function wg(e,t){return e=pi(e,t.blendMode),e=pi(e,t.blendSrcFactor),e=pi(e,t.blendDstFactor),e}function vB(e,t){return e=wg(e,t.rgbBlendState),e=wg(e,t.alphaBlendState),e=pi(e,t.channelWriteMask),e}function EB(e,t){return e=pi(e,t.r<<24|t.g<<16|t.b<<8|t.a),e}function xB(e,t){var r,i,s,u,n,y,m,g;for(let x=0;xs&&s>0),r=this.device.createBindings(i),this.bindingsCache.add(i,r)}return r}createRenderPipeline(e){let t=this.renderPipelinesCache.get(e);if(t===null){const r=LO(e);r.colorAttachmentFormats=r.colorAttachmentFormats.filter(i=>i),t=this.device.createRenderPipeline(r),this.renderPipelinesCache.add(r,t)}return t}createInputLayout(e){e.vertexBufferDescriptors=e.vertexBufferDescriptors.filter(r=>!!r);let t=this.inputLayoutsCache.get(e);if(t===null){const r=kO(e);t=this.device.createInputLayout(r),this.inputLayoutsCache.add(r,t)}return t}createProgram(e){let t=this.programCache.get(e);if(t===null){const r=FB(e);t=this.device.createProgram(e),this.programCache.add(r,t)}return t}destroy(){for(const e of this.bindingsCache.values())e.destroy();for(const e of this.renderPipelinesCache.values())e.destroy();for(const e of this.inputLayoutsCache.values())e.destroy();for(const e of this.programCache.values())e.destroy();this.bindingsCache.clear(),this.renderPipelinesCache.clear(),this.inputLayoutsCache.clear(),this.programCache.clear()}},SB=class{constructor(e,t){const{data:r,type:i,count:s=0}=t;let u;zf(r)?u=r:u=new kf[this.type||L.UNSIGNED_INT](r),this.type=i,this.count=s,this.indexBuffer=e.createBuffer({viewOrSize:u,usage:xi.INDEX})}get(){return this.indexBuffer}subData({data:e}){let t;zf(e)?t=e:t=new kf[this.type||L.UNSIGNED_INT](e),this.indexBuffer.setSubData(0,new Uint8Array(t.buffer))}destroy(){this.indexBuffer.destroy()}};function Rg(e){return!!(e&&e.texture)}var U7=class{constructor(e,t){this.device=e,this.options=t,this.isDestroy=!1;const{wrapS:r=L.CLAMP_TO_EDGE,wrapT:i=L.CLAMP_TO_EDGE,aniso:s,mag:u=L.NEAREST,min:n=L.NEAREST}=t;this.createTexture(t),this.sampler=e.createSampler({addressModeU:Fg[r],addressModeV:Fg[i],minFilter:n===L.NEAREST?xn.POINT:xn.BILINEAR,magFilter:u===L.NEAREST?xn.POINT:xn.BILINEAR,mipmapFilter:sa.NO_MIP,maxAnisotropy:s})}createTexture(e){const{type:t=L.UNSIGNED_BYTE,width:r,height:i,flipY:s=!1,format:u=L.RGBA,alignment:n=1,usage:y=f1.SAMPLED,unorm:m=!1,label:g}=e;let{data:x}=e;this.width=r,this.height=i;let b=ke.U8_RGBA_RT;if(t===L.UNSIGNED_BYTE&&u===L.RGBA)b=m?ke.U8_RGBA_NORM:ke.U8_RGBA_RT;else if(t===L.UNSIGNED_BYTE&&u===L.LUMINANCE)b=ke.U8_LUMINANCE;else if(t===L.FLOAT&&u===L.LUMINANCE)b=ke.F32_LUMINANCE;else if(t===L.FLOAT&&u===L.RGB)this.device.queryVendorInfo().platformString==="WebGPU"?(x&&(x=mB(x,0)),b=ke.F32_RGBA):b=ke.F32_RGB;else if(t===L.FLOAT&&u===L.RGBA)b=ke.F32_RGBA;else if(t===L.FLOAT&&u===L.RED)b=ke.F32_R;else throw new Error(`create texture error, type: ${t}, format: ${u}`);this.texture=this.device.createTexture({format:b,width:r,height:i,usage:y===f1.SAMPLED?as.SAMPLED:as.RENDER_TARGET,pixelStore:{unpackFlipY:s,packAlignment:n},mipLevelCount:1}),g&&this.device.setResourceName(this.texture,g),x&&this.texture.setImageData([x])}get(){return this.texture}update(e){const{data:t}=e;this.texture.setImageData([t])}bind(){}resize({width:e,height:t}){(this.width!==e||this.height!==t)&&this.destroy(),this.options.width=e,this.options.height=t,this.createTexture(this.options),this.isDestroy=!1}getSize(){return[this.width,this.height]}destroy(){var e;!this.isDestroy&&!this.texture.destroyed&&((e=this.texture)==null||e.destroy()),this.isDestroy=!0}},k7=class{constructor(e,t){this.device=e,this.options=t,this.createColorRenderTarget(),this.createDepthRenderTarget()}createColorRenderTarget(e=!1){const{width:t,height:r,color:i}=this.options;i&&(Rg(i)?(e&&i.resize({width:t,height:r}),this.colorTexture=i.get(),this.colorRenderTarget=this.device.createRenderTargetFromTexture(this.colorTexture),this.width=i.width,this.height=i.height):t&&r&&(this.colorTexture=this.device.createTexture({format:ke.U8_RGBA_RT,usage:as.RENDER_TARGET,width:t,height:r}),this.colorRenderTarget=this.device.createRenderTargetFromTexture(this.colorTexture),this.width=t,this.height=r))}createDepthRenderTarget(e=!1){const{width:t,height:r,depth:i}=this.options;i&&(Rg(i)?(e&&i.resize({width:t,height:r}),this.depthTexture=i.get(),this.depthRenderTarget=this.device.createRenderTargetFromTexture(this.depthTexture),this.width=i.width,this.height=i.height):t&&r&&(this.depthTexture=this.device.createTexture({format:ke.D24_S8,usage:as.RENDER_TARGET,width:t,height:r}),this.depthRenderTarget=this.device.createRenderTargetFromTexture(this.depthTexture),this.width=t,this.height=r))}get(){return this.colorRenderTarget}destroy(){var e,t;(e=this.colorRenderTarget)==null||e.destroy(),(t=this.depthRenderTarget)==null||t.destroy()}resize({width:e,height:t}){(this.width!==e||this.height!==t)&&(this.destroy(),this.colorTexture.destroyed=!0,this.depthTexture.destroyed=!0,this.options.width=e,this.options.height=t,this.createColorRenderTarget(!0),this.createDepthRenderTarget(!0))}},wB=Object.defineProperty,RB=Object.defineProperties,CB=Object.getOwnPropertyDescriptors,Cg=Object.getOwnPropertySymbols,IB=Object.prototype.hasOwnProperty,MB=Object.prototype.propertyIsEnumerable,Ig=(e,t,r)=>t in e?wB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,u1=(e,t)=>{for(var r in t||(t={}))IB.call(t,r)&&Ig(e,r,t[r]);if(Cg)for(var r of Cg(t))MB.call(t,r)&&Ig(e,r,t[r]);return e},NB=(e,t)=>RB(e,CB(t)),{isPlainObject:DB,isTypedArray:OB,isNil:Mg}=Qn,LB=class{constructor(e,t,r){this.device=e,this.options=t,this.service=r,this.destroyed=!1,this.uniforms={},this.vertexBuffers=[];const{vs:i,fs:s,attributes:u,uniforms:n,count:y,elements:m,diagnosticDerivativeUniformityEnabled:g}=t;this.options=t;const x=g?"":this.service.viewportOrigin===fp.UPPER_LEFT?"diagnostic(off,derivative_uniformity);":"";this.program=r.renderCache.createProgram({vertex:{glsl:i},fragment:{glsl:s,postprocess:I=>x+I}}),n&&(this.uniforms=this.extractUniforms(n));const b=[];let F=0;Object.keys(u).forEach(I=>{const U=u[I],V=U.get();this.vertexBuffers.push(V.get());const{offset:J=0,stride:Q=0,size:te=1,divisor:ne=0,shaderLocation:pe=0}=U.attribute;b.push({arrayStride:Q||te*4,stepMode:x1.VERTEX,attributes:[{format:lB[te],shaderLocation:pe,offset:J,divisor:ne}]}),F=V.size/te}),y||(this.options.count=F),m&&(this.indexBuffer=m.get());const R=r.renderCache.createInputLayout({vertexBufferDescriptors:b,indexBufferFormat:m?ke.U32_R:null,program:this.program});this.inputLayout=R,this.pipeline=this.createPipeline(t)}createPipeline(e,t){var r;const{primitive:i=L.TRIANGLES,depth:s,cull:u,blend:n,stencil:y}=e,m=this.initDepthDrawParams({depth:s}),g=!!(m&&m.enable),x=this.initCullDrawParams({cull:u}),b=!!(x&&x.enable),F=this.getBlendDrawParams({blend:n}),R=!!(F&&F.enable),I=this.getStencilDrawParams({stencil:y}),U=!!(I&&I.enable),V=this.device.createRenderPipeline({inputLayout:this.inputLayout,program:this.program,topology:pB[i],colorAttachmentFormats:[ke.U8_RGBA_RT],depthStencilAttachmentFormat:ke.D24_S8,megaStateDescriptor:{attachmentsState:[t?{channelWriteMask:ga.ALL,rgbBlendState:{blendMode:va.ADD,blendSrcFactor:Bo.ONE,blendDstFactor:Bo.ZERO},alphaBlendState:{blendMode:va.ADD,blendSrcFactor:Bo.ONE,blendDstFactor:Bo.ZERO}}:{channelWriteMask:U&&I.opFront.zpass===un.REPLACE?ga.NONE:ga.ALL,rgbBlendState:{blendMode:R&&F.equation.rgb||va.ADD,blendSrcFactor:R&&F.func.srcRGB||Bo.SRC_ALPHA,blendDstFactor:R&&F.func.dstRGB||Bo.ONE_MINUS_SRC_ALPHA},alphaBlendState:{blendMode:R&&F.equation.alpha||va.ADD,blendSrcFactor:R&&F.func.srcAlpha||Bo.ONE,blendDstFactor:R&&F.func.dstAlpha||Bo.ONE}}],blendConstant:R?Qf:void 0,depthWrite:g,depthCompare:g&&m.func||ai.LESS,cullMode:b&&x.face||zs.NONE,stencilWrite:U,stencilFront:{compare:U?I.func.cmp:ai.ALWAYS,passOp:I.opFront.zpass,failOp:I.opFront.fail,depthFailOp:I.opFront.zfail,mask:I.opFront.mask},stencilBack:{compare:U?I.func.cmp:ai.ALWAYS,passOp:I.opBack.zpass,failOp:I.opBack.fail,depthFailOp:I.opBack.zfail,mask:I.opBack.mask}}});return U&&!Mg((r=y==null?void 0:y.func)==null?void 0:r.ref)&&(V.stencilFuncReference=y.func.ref),V}updateAttributesAndElements(){}updateAttributes(){}addUniforms(e){this.uniforms=u1(u1({},this.uniforms),this.extractUniforms(e))}draw(e,t){const r=u1(u1({},this.options),e),{count:i=0,instances:s,elements:u,uniforms:n={},uniformBuffers:y,textures:m}=r;this.uniforms=u1(u1({},this.uniforms),this.extractUniforms(n));const{renderPass:g,currentFramebuffer:x,width:b,height:F}=this.service;this.pipeline=this.createPipeline(r,t);const R=this.service.device,I=R.swapChainHeight;if(R.swapChainHeight=(x==null?void 0:x.height)||F,g.setViewport(0,0,(x==null?void 0:x.width)||b,(x==null?void 0:x.height)||F),R.swapChainHeight=I,g.setPipeline(this.pipeline),Mg(this.pipeline.stencilFuncReference)||g.setStencilReference(this.pipeline.stencilFuncReference),g.setVertexInput(this.inputLayout,this.vertexBuffers.map(U=>({buffer:U})),u?{buffer:this.indexBuffer,offset:0}:null),y&&(this.bindings=R.createBindings({pipeline:this.pipeline,uniformBufferBindings:y.map((U,V)=>{const J=U;return{binding:V,buffer:J.get(),size:J.size}}),samplerBindings:m==null?void 0:m.map(U=>({texture:U.texture,sampler:U.sampler}))})),this.bindings&&(g.setBindings(this.bindings),Object.keys(this.uniforms).forEach(U=>{const V=this.uniforms[U];V instanceof U7?this.uniforms[U]=V.get():V instanceof k7&&(this.uniforms[U]=V.get().texture)}),this.program.setUniformsLegacy(this.uniforms)),u){const U=u.count;U===0?g.draw(i,s):g.drawIndexed(U,s)}else g.draw(i,s)}destroy(){var e,t,r;(e=this.vertexBuffers)==null||e.forEach(i=>i.destroy()),(t=this.indexBuffer)==null||t.destroy(),(r=this.bindings)==null||r.destroy(),this.pipeline.destroy(),this.destroyed=!0}initDepthDrawParams({depth:e}){if(e)return{enable:e.enable===void 0?!0:!!e.enable,mask:e.mask===void 0?!0:!!e.mask,func:dB[e.func||L.LESS],range:e.range||[0,1]}}getBlendDrawParams({blend:e}){const{enable:t,func:r,equation:i,color:s=[0,0,0,0]}=e||{};return{enable:!!t,func:{srcRGB:zh[r&&r.srcRGB||L.SRC_ALPHA],srcAlpha:zh[r&&r.srcAlpha||L.SRC_ALPHA],dstRGB:zh[r&&r.dstRGB||L.ONE_MINUS_SRC_ALPHA],dstAlpha:zh[r&&r.dstAlpha||L.ONE_MINUS_SRC_ALPHA]},equation:{rgb:Tg[i&&i.rgb||L.FUNC_ADD],alpha:Tg[i&&i.alpha||L.FUNC_ADD]},color:s}}getStencilDrawParams({stencil:e}){const{enable:t,mask:r=4294967295,func:i={cmp:L.ALWAYS,ref:0,mask:4294967295},opFront:s={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP},opBack:u={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP}}=e||{};return{enable:!!t,mask:r,func:NB(u1({},i),{cmp:hB[i.cmp]}),opFront:{fail:_0[s.fail],zfail:_0[s.zfail],zpass:_0[s.zpass],mask:i.mask},opBack:{fail:_0[u.fail],zfail:_0[u.zfail],zpass:_0[u.zpass],mask:i.mask}}}initCullDrawParams({cull:e}){if(e){const{enable:t,face:r=L.BACK}=e;return{enable:!!t,face:yB[r]}}}extractUniforms(e){const t={};return Object.keys(e).forEach(r=>{this.extractUniformsRecursively(r,e[r],t,"")}),t}extractUniformsRecursively(e,t,r,i){if(t===null||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)&&typeof t[0]=="number"||OB(t)||t===""||"resize"in t){r[`${i&&i+"."}${e}`]=t;return}DB(t)&&Object.keys(t).forEach(s=>{this.extractUniformsRecursively(s,t[s],r,`${i&&i+"."}${e}`)}),Array.isArray(t)&&t.forEach((s,u)=>{Object.keys(s).forEach(n=>{this.extractUniformsRecursively(n,s[n],r,`${i&&i+"."}${e}[${u}]`)})})}};function BB(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:!!(e&&e._version===2)}var n2=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),{isUndefined:Hh}=Qn,UB=class{constructor(){this.uniformBuffers=[],this.queryVerdorInfo=()=>this.device.queryVendorInfo().platformString,this.createModel=e=>new LB(this.device,e,this),this.createAttribute=e=>new uB(this.device,e),this.createBuffer=e=>new _B(this.device,e),this.createElements=e=>new SB(this.device,e),this.createTexture2D=e=>new U7(this.device,e),this.createFramebuffer=e=>new k7(this.device,e),this.useFramebuffer=(e,t)=>{this.currentFramebuffer=e,this.beginFrame(),t(),this.endFrame(),this.currentFramebuffer=null},this.useFramebufferAsync=(e,t)=>n2(this,null,function*(){this.currentFramebuffer=e,this.preRenderPass=this.renderPass,this.beginFrame(),yield t(),this.endFrame(),this.currentFramebuffer=null,this.renderPass=this.preRenderPass}),this.clear=e=>{const{color:t,depth:r,stencil:i,framebuffer:s=null}=e;if(s)s.clearOptions={color:t,depth:r,stencil:i};else{const u=this.queryVerdorInfo();if(u==="WebGL1"){const n=this.getGLContext();Hh(i)?Hh(r)||(n.clearDepth(r),n.clear(n.DEPTH_BUFFER_BIT)):(n.clearStencil(i),n.clear(n.STENCIL_BUFFER_BIT))}else if(u==="WebGL2"){const n=this.getGLContext();Hh(i)?Hh(r)||n.clearBufferfv(n.DEPTH,0,[r]):n.clearBufferiv(n.STENCIL,0,[i])}}},this.viewport=({width:e,height:t})=>{this.swapChain.configureSwapChain(e,t),this.createMainColorDepthRT(e,t),this.width=e,this.height=t},this.readPixels=e=>{const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n=this.device.createReadback(),y=t.colorTexture,m=n.readTextureSync(y,r,this.viewportOrigin===fp.LOWER_LEFT?i:this.height-i,s,u,new Uint8Array(s*u*4));if(this.viewportOrigin!==fp.LOWER_LEFT)for(let g=0;gn2(this,null,function*(){const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n=this.device.createReadback(),y=t.colorTexture,m=yield n.readTexture(y,r,this.viewportOrigin===fp.LOWER_LEFT?i:this.height-i,s,u,new Uint8Array(s*u*4));if(this.viewportOrigin!==fp.LOWER_LEFT)for(let g=0;g({width:this.width,height:this.height}),this.getContainer=()=>{var e;return(e=this.canvas)==null?void 0:e.parentElement},this.getCanvas=()=>this.canvas,this.getGLContext=()=>this.device.gl,this.destroy=()=>{var e;this.canvas=null,(e=this.uniformBuffers)==null||e.forEach(t=>{t.destroy()}),this.device.destroy(),this.renderCache.destroy()}}init(e,t){return n2(this,null,function*(){const{enableWebGPU:r,shaderCompilerPath:i,antialias:s}=t;this.canvas=e;const n=yield(r?new sB({shaderCompilerPath:i}):new vL({targets:["webgl2","webgl1"],antialias:s,onContextLost(m){console.warn("context lost",m)},onContextCreationError(m){console.warn("context creation error",m)},onContextRestored(m){console.warn("context restored",m)}})).createSwapChain(e);n.configureSwapChain(e.width,e.height),this.device=n.getDevice(),this.swapChain=n,this.renderCache=new TB(this.device),this.currentFramebuffer=null,this.viewportOrigin=this.device.queryVendorInfo().viewportOrigin;const y=this.device.gl;this.extensionObject={OES_texture_float:!BB(y)&&this.device.OES_texture_float},this.createMainColorDepthRT(e.width,e.height)})}createMainColorDepthRT(e,t){this.mainColorRT&&this.mainColorRT.destroy(),this.mainDepthRT&&this.mainDepthRT.destroy(),this.mainColorRT=this.device.createRenderTargetFromTexture(this.device.createTexture({format:ke.U8_RGBA_RT,width:e,height:t,usage:as.RENDER_TARGET})),this.mainDepthRT=this.device.createRenderTargetFromTexture(this.device.createTexture({format:ke.D24_S8,width:e,height:t,usage:as.RENDER_TARGET}))}beginFrame(){this.device.beginFrame();const{currentFramebuffer:e,swapChain:t,mainColorRT:r,mainDepthRT:i}=this,s=e?e.colorRenderTarget:r,u=e?null:t.getOnscreenTexture(),n=e?e.depthRenderTarget:i,{color:y=[0,0,0,0],depth:m=1,stencil:g=0}=(e==null?void 0:e.clearOptions)||{},x=s?ky(y[0]*255,y[1]*255,y[2]*255,y[3]):Qf,b=n?m:void 0,F=n?g:void 0,R=this.device.createRenderPass({colorAttachment:[s],colorResolveTo:[u],colorClearColor:[x],colorStore:[!0],depthStencilAttachment:n,depthClearValue:b,stencilClearValue:F});this.renderPass=R}endFrame(){this.device.submitPass(this.renderPass),this.device.endFrame()}getPointSizeRange(){const e=this.device.gl;return e.getParameter(e.ALIASED_POINT_SIZE_RANGE)}testExtension(e){return!!this.getGLContext().getExtension(e)}setState(){}setBaseState(){}setCustomLayerDefaults(){}setDirty(e){this.isDirty=e}getDirty(){return this.isDirty}},z7={exports:{}};(function(e,t){(function(r,i){e.exports=i()})(r6,function(){var r=function(N){return N instanceof Uint8Array||N instanceof Uint16Array||N instanceof Uint32Array||N instanceof Int8Array||N instanceof Int16Array||N instanceof Int32Array||N instanceof Float32Array||N instanceof Float64Array||N instanceof Uint8ClampedArray},i=function(N,ie){for(var xe=Object.keys(ie),et=0;et"u";case"symbol":return typeof N=="symbol"}}function F(N,ie,xe){b(N,ie)||n("invalid parameter type"+m(xe)+". expected "+ie+", got "+typeof N)}function R(N,ie){N>=0&&(N|0)===N||n("invalid parameter type, ("+N+")"+m(ie)+". must be a nonnegative integer")}function I(N,ie,xe){ie.indexOf(N)<0&&n("invalid value"+m(xe)+". must be one of: "+ie)}var U=["gl","canvas","container","attributes","pixelRatio","extensions","optionalExtensions","profile","onDone"];function V(N){Object.keys(N).forEach(function(ie){U.indexOf(ie)<0&&n('invalid regl constructor argument "'+ie+'". must be one of '+U)})}function J(N,ie){for(N=N+"";N.length0&&ie.push(new ne("unknown",0,xe))}}),ie}function ft(N,ie){ie.forEach(function(xe){var et=N[xe.file];if(et){var gt=et.index[xe.line];if(gt){gt.errors.push(xe),et.hasErrors=!0;return}}N.unknown.hasErrors=!0,N.unknown.lines[0].errors.push(xe)})}function Ge(N,ie,xe,et,gt){if(!N.getShaderParameter(ie,N.COMPILE_STATUS)){var tt=N.getShaderInfoLog(ie),Ye=et===N.FRAGMENT_SHADER?"fragment":"vertex";Fr(xe,"string",Ye+" shader source must be a string",gt);var Ot=Ee(xe,gt),Rt=He(tt);ft(Ot,Rt),Object.keys(Ot).forEach(function(Xt){var Ut=Ot[Xt];if(!Ut.hasErrors)return;var Gt=[""],$t=[""];function Ct(jt,je){Gt.push(jt),$t.push(je||"")}Ct("file number "+Xt+": "+Ut.name+` `,"color:red;text-decoration:underline;font-weight:bold"),Ut.lines.forEach(function(jt){if(jt.errors.length>0){Ct(J(jt.number,4)+"| ","background-color:yellow; font-weight:bold"),Ct(jt.line+s,"color:red; background-color:yellow; font-weight:bold");var je=0;jt.errors.forEach(function(pt){var Lt=pt.message,tr=/^\s*'(.*)'\s*:\s*(.*)$/.exec(Lt);if(tr){var At=tr[1];switch(Lt=tr[2],At){case"assign":At="=";break}je=Math.max(jt.line.indexOf(At,je),0)}else je=0;Ct(J("| ",6)),Ct(J("^^^",je+3)+s,"font-weight:bold"),Ct(J("| ",6)),Ct(Lt+s,"font-weight:bold")}),Ct(J("| ",6)+s)}else Ct(J(jt.number,4)+"| "),Ct(jt.line+s,"color:red")}),typeof document<"u"&&!window.chrome?($t[0]=Gt.join("%c"),console.log.apply(console,$t)):console.log(Gt.join(""))}),y.raise("Error compiling "+Ye+" shader, "+Ot[0].name)}}function Ae(N,ie,xe,et,gt){if(!N.getProgramParameter(ie,N.LINK_STATUS)){var tt=N.getProgramInfoLog(ie),Ye=Ee(xe,gt),Ot=Ee(et,gt),Rt='Error linking program with vertex shader, "'+Ot[0].name+'", and fragment shader "'+Ye[0].name+'"';typeof document<"u"?console.log("%c"+Rt+s+"%c"+tt,"color:red;text-decoration:underline;font-weight:bold","color:red"):console.log(Rt+s+tt),y.raise(Rt)}}function Be(N){N._commandRef=pe()}function ze(N,ie,xe,et){Be(N);function gt(Rt){return Rt?et.id(Rt):0}N._fragId=gt(N.static.frag),N._vertId=gt(N.static.vert);function tt(Rt,Xt){Object.keys(Xt).forEach(function(Ut){Rt[et.id(Ut)]=!0})}var Ye=N._uniformSet={};tt(Ye,ie.static),tt(Ye,ie.dynamic);var Ot=N._attributeSet={};tt(Ot,xe.static),tt(Ot,xe.dynamic),N._hasCount="count"in N.static||"count"in N.dynamic||"elements"in N.static||"elements"in N.dynamic}function st(N,ie){var xe=Oe();n(N+" in command "+(ie||pe())+(xe==="unknown"?"":" called from "+xe))}function Vt(N,ie,xe){N||st(ie,xe||pe())}function ir(N,ie,xe,et){N in ie||st("unknown parameter ("+N+")"+m(xe)+". possible values: "+Object.keys(ie).join(),et||pe())}function Fr(N,ie,xe,et){b(N,ie)||st("invalid parameter type"+m(xe)+". expected "+ie+", got "+typeof N,et||pe())}function Yr(N){N()}function mr(N,ie,xe){N.texture?I(N.texture._texture.internalformat,ie,"unsupported texture format for attachment"):I(N.renderbuffer._renderbuffer.format,xe,"unsupported renderbuffer format for attachment")}var Er=33071,qr=9728,Jr=9984,_o=9985,So=9986,oo=9987,Wi=5120,bo=5121,Ni=5122,$e=5123,Yt=5124,Sr=5125,Ft=5126,xr=32819,io=32820,go=33635,to=34042,Kr=36193,Ao={};Ao[Wi]=Ao[bo]=1,Ao[Ni]=Ao[$e]=Ao[Kr]=Ao[go]=Ao[xr]=Ao[io]=2,Ao[Yt]=Ao[Sr]=Ao[Ft]=Ao[to]=4;function $i(N,ie){return N===io||N===xr||N===go?2:N===to?4:Ao[N]*ie}function Qo(N){return!(N&N-1)&&!!N}function ti(N,ie,xe){var et,gt=ie.width,tt=ie.height,Ye=ie.channels;y(gt>0&><=xe.maxTextureSize&&tt>0&&tt<=xe.maxTextureSize,"invalid texture shape"),(N.wrapS!==Er||N.wrapT!==Er)&&y(Qo(gt)&&Qo(tt),"incompatible wrap mode for texture, both width and height must be power of 2"),ie.mipmask===1?gt!==1&&tt!==1&&y(N.minFilter!==Jr&&N.minFilter!==So&&N.minFilter!==_o&&N.minFilter!==oo,"min filter requires mipmap"):(y(Qo(gt)&&Qo(tt),"texture must be a square power of 2 to support mipmapping"),y(ie.mipmask===(gt<<1)-1,"missing or incomplete mipmap data")),ie.type===Ft&&(xe.extensions.indexOf("oes_texture_float_linear")<0&&y(N.minFilter===qr&&N.magFilter===qr,"filter not supported, must enable oes_texture_float_linear"),y(!N.genMipmaps,"mipmap generation not supported with float textures"));var Ot=ie.images;for(et=0;et<16;++et)if(Ot[et]){var Rt=gt>>et,Xt=tt>>et;y(ie.mipmask&1<0&><=et.maxTextureSize&&tt>0&&tt<=et.maxTextureSize,"invalid texture shape"),y(gt===tt,"cube map must be square"),y(ie.wrapS===Er&&ie.wrapT===Er,"wrap mode not supported by cube map");for(var Ot=0;Ot>Ut,Ct=tt>>Ut;y(Rt.mipmask&1<1&&ie===xe&&(ie==='"'||ie==="'"))return['"'+ss(N.substr(1,N.length-2))+'"'];var et=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(N);if(et)return si(N.substr(0,et.index)).concat(si(et[1])).concat(si(N.substr(et.index+et[0].length)));var gt=N.split(".");if(gt.length===1)return['"'+ss(N)+'"'];for(var tt=[],Ye=0;Ye"u"?1:window.devicePixelRatio,Ut=!1,Gt=function(jt){jt&&se.raise(jt)},$t=function(){};if(typeof ie=="string"?(se(typeof document<"u","selector queries only supported in DOM enviroments"),xe=document.querySelector(ie),se(xe,"invalid query string for element")):typeof ie=="object"?vp(ie)?xe=ie:js(ie)?(tt=ie,gt=tt.canvas):(se.constructor(ie),"gl"in ie?tt=ie.gl:"canvas"in ie?gt=Na(ie.canvas):"container"in ie&&(et=Na(ie.container)),"attributes"in ie&&(Ye=ie.attributes,se.type(Ye,"object","invalid context attributes")),"extensions"in ie&&(Ot=Ma(ie.extensions)),"optionalExtensions"in ie&&(Rt=Ma(ie.optionalExtensions)),"onDone"in ie&&(se.type(ie.onDone,"function","invalid or missing onDone callback"),Gt=ie.onDone),"profile"in ie&&(Ut=!!ie.profile),"pixelRatio"in ie&&(Xt=+ie.pixelRatio,se(Xt>0,"invalid pixel ratio"))):se.raise("invalid arguments to regl"),xe&&(xe.nodeName.toLowerCase()==="canvas"?gt=xe:et=xe),!tt){if(!gt){se(typeof document<"u","must manually specify webgl context outside of DOM environments");var Ct=Zu(et||document.body,Gt,Xt);if(!Ct)return null;gt=Ct.canvas,$t=Ct.onDestroy}Ye.premultipliedAlpha===void 0&&(Ye.premultipliedAlpha=!0),tt=Gs(gt,Ye)}return tt?{gl:tt,canvas:gt,container:et,extensions:Ot,optionalExtensions:Rt,pixelRatio:Xt,profile:Ut,onDone:Gt,onDestroy:$t}:($t(),Gt("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function Yu(N,ie){var xe={};function et(Ye){se.type(Ye,"string","extension name must be string");var Ot=Ye.toLowerCase(),Rt;try{Rt=xe[Ot]=N.getExtension(Ot)}catch{}return!!Rt}for(var gt=0;gt65535)<<4,N>>>=ie,xe=(N>255)<<3,N>>>=xe,ie|=xe,xe=(N>15)<<2,N>>>=xe,ie|=xe,xe=(N>3)<<1,N>>>=xe,ie|=xe,ie|N>>1}function We(){var N=Go(8,function(){return[]});function ie(tt){var Ye=q(tt),Ot=N[ge(Ye)>>2];return Ot.length>0?Ot.pop():new ArrayBuffer(Ye)}function xe(tt){N[ge(tt.byteLength)>>2].push(tt)}function et(tt,Ye){var Ot=null;switch(tt){case k:Ot=new Int8Array(ie(Ye),0,Ye);break;case G:Ot=new Uint8Array(ie(Ye),0,Ye);break;case W:Ot=new Int16Array(ie(2*Ye),0,Ye);break;case oe:Ot=new Uint16Array(ie(2*Ye),0,Ye);break;case ye:Ot=new Int32Array(ie(4*Ye),0,Ye);break;case Ie:Ot=new Uint32Array(ie(4*Ye),0,Ye);break;case Le:Ot=new Float32Array(ie(4*Ye),0,Ye);break;default:return null}return Ot.length!==Ye?Ot.subarray(0,Ye):Ot}function gt(tt){xe(tt.buffer)}return{alloc:ie,free:xe,allocType:et,freeType:gt}}var ht=We();ht.zero=We();var Nt=3408,lt=3410,wt=3411,_r=3412,yr=3413,dt=3414,or=3415,Wt=33901,Zt=33902,no=3379,er=3386,Fo=34921,Jo=36347,vo=36348,Mo=35661,ao=35660,Vi=34930,wo=36349,ei=34076,ko=34024,so=7936,Eo=7937,Ln=7938,yu=35724,Di=34047,gi=36063,hu=34852,Wa=3553,hi=34067,Ws=34069,ln=33984,fi=6408,Hi=5126,ui=5121,Jn=36160,jn=36053,Kp=36064,Pa=16384,Rc=function(N,ie){var xe=1;ie.ext_texture_filter_anisotropic&&(xe=N.getParameter(Di));var et=1,gt=1;ie.webgl_draw_buffers&&(et=N.getParameter(hu),gt=N.getParameter(gi));var tt=!!ie.oes_texture_float;if(tt){var Ye=N.createTexture();N.bindTexture(Wa,Ye),N.texImage2D(Wa,0,fi,1,1,0,fi,Hi,null);var Ot=N.createFramebuffer();if(N.bindFramebuffer(Jn,Ot),N.framebufferTexture2D(Jn,Kp,Wa,Ye,0),N.bindTexture(Wa,null),N.checkFramebufferStatus(Jn)!==jn)tt=!1;else{N.viewport(0,0,1,1),N.clearColor(1,0,0,1),N.clear(Pa);var Rt=ht.allocType(Hi,4);N.readPixels(0,0,1,1,fi,Hi,Rt),N.getError()?tt=!1:(N.deleteFramebuffer(Ot),N.deleteTexture(Ye),tt=Rt[0]===1),ht.freeType(Rt)}}var Xt=typeof navigator<"u"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent)),Ut=!0;if(!Xt){var Gt=N.createTexture(),$t=ht.allocType(ui,36);N.activeTexture(ln),N.bindTexture(hi,Gt),N.texImage2D(Ws,0,fi,3,3,0,fi,ui,$t),ht.freeType($t),N.bindTexture(hi,null),N.deleteTexture(Gt),Ut=!N.getError()}return{colorBits:[N.getParameter(lt),N.getParameter(wt),N.getParameter(_r),N.getParameter(yr)],depthBits:N.getParameter(dt),stencilBits:N.getParameter(or),subpixelBits:N.getParameter(Nt),extensions:Object.keys(ie).filter(function(Ct){return!!ie[Ct]}),maxAnisotropic:xe,maxDrawbuffers:et,maxColorAttachments:gt,pointSizeDims:N.getParameter(Wt),lineWidthDims:N.getParameter(Zt),maxViewportDims:N.getParameter(er),maxCombinedTextureUnits:N.getParameter(Mo),maxCubeMapSize:N.getParameter(ei),maxRenderbufferSize:N.getParameter(ko),maxTextureUnits:N.getParameter(Vi),maxTextureSize:N.getParameter(no),maxAttributes:N.getParameter(Fo),maxVertexUniforms:N.getParameter(Jo),maxVertexTextureUnits:N.getParameter(ao),maxVaryingVectors:N.getParameter(vo),maxFragmentUniforms:N.getParameter(wo),glsl:N.getParameter(yu),renderer:N.getParameter(Eo),vendor:N.getParameter(so),version:N.getParameter(Ln),readFloat:tt,npotTextureCube:Ut}};function X(N){return!!N&&typeof N=="object"&&Array.isArray(N.shape)&&Array.isArray(N.stride)&&typeof N.offset=="number"&&N.shape.length===N.stride.length&&(Array.isArray(N.data)||r(N.data))}var re=function(N){return Object.keys(N).map(function(ie){return N[ie]})},we={shape:Sn,flatten:Xi};function rt(N,ie,xe){for(var et=0;et0){var rr;if(Array.isArray(pt[0])){Mt=Xs(pt);for(var Tt=1,Qt=1;Qt0)if(typeof Tt[0]=="number"){var Jt=ht.allocType(At.dtype,Tt.length);R1(Jt,Tt),Mt(Jt,Or),ht.freeType(Jt)}else if(Array.isArray(Tt[0])||r(Tt[0])){ro=Xs(Tt);var Dt=Ps(Tt,ro,At.dtype);Mt(Dt,Or),ht.freeType(Dt)}else se.raise("invalid buffer data")}else if(X(Tt)){ro=Tt.shape;var vt=Tt.stride,Lr=0,xo=0,sr=0,ho=0;ro.length===1?(Lr=ro[0],xo=1,sr=vt[0],ho=0):ro.length===2?(Lr=ro[0],xo=ro[1],sr=vt[0],ho=vt[1]):se.raise("invalid shape");var eo=Array.isArray(Tt.data)?At.dtype:Ol(Tt.data),Wr=ht.allocType(eo,Lr*xo);Ll(Wr,Tt.data,Lr,xo,sr,ho,Tt.offset),Mt(Wr,Or),ht.freeType(Wr)}else se.raise("invalid data for buffer subdata");return ar}return Lt||ar(je),ar._reglType="buffer",ar._buffer=At,ar.subdata=rr,xe.profile&&(ar.stats=At.stats),ar.destroy=function(){$t(At)},ar}function jt(){re(tt).forEach(function(je){je.buffer=N.createBuffer(),N.bindBuffer(je.type,je.buffer),N.bufferData(je.type,je.persistentData||je.byteLength,je.usage)})}return xe.profile&&(ie.getTotalBufferSize=function(){var je=0;return Object.keys(tt).forEach(function(pt){je+=tt[pt].stats.size}),je}),{create:Ct,createStream:Rt,destroyStream:Xt,clear:function(){re(tt).forEach($t),Ot.forEach($t)},getBuffer:function(je){return je&&je._buffer instanceof Ye?je._buffer:null},restore:jt,_initBuffer:Gt}}var Mc=0,Nc=0,C1=1,I1=1,$0=4,el=4,bs={points:Mc,point:Nc,lines:C1,line:I1,triangles:$0,triangle:el,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},M1=0,Un=1,$u=4,gu=5120,Da=5121,vu=5122,Za=5123,Ys=5124,Oa=5125,$s=34963,Eu=35040,N1=35044;function D1(N,ie,xe,et){var gt={},tt=0,Ye={uint8:Da,uint16:Za};ie.oes_element_index_uint&&(Ye.uint32=Oa);function Ot(jt){this.id=tt++,gt[this.id]=this,this.buffer=jt,this.primType=$u,this.vertCount=0,this.type=0}Ot.prototype.bind=function(){this.buffer.bind()};var Rt=[];function Xt(jt){var je=Rt.pop();return je||(je=new Ot(xe.create(null,$s,!0,!1)._buffer)),Gt(je,jt,Eu,-1,-1,0,0),je}function Ut(jt){Rt.push(jt)}function Gt(jt,je,pt,Lt,tr,At,ar){jt.buffer.bind();var Mt;if(je){var rr=ar;!ar&&(!r(je)||X(je)&&!r(je.data))&&(rr=ie.oes_element_index_uint?Oa:Za),xe._initBuffer(jt.buffer,je,pt,rr,3)}else N.bufferData($s,At,pt),jt.buffer.dtype=Mt||Da,jt.buffer.usage=pt,jt.buffer.dimension=3,jt.buffer.byteLength=At;if(Mt=ar,!ar){switch(jt.buffer.dtype){case Da:case gu:Mt=Da;break;case Za:case vu:Mt=Za;break;case Oa:case Ys:Mt=Oa;break;default:se.raise("unsupported type for element array")}jt.buffer.dtype=Mt}jt.type=Mt,se(Mt!==Oa||!!ie.oes_element_index_uint,"32 bit element buffers not supported, enable oes_element_index_uint first");var Tt=tr;Tt<0&&(Tt=jt.buffer.byteLength,Mt===Za?Tt>>=1:Mt===Oa&&(Tt>>=2)),jt.vertCount=Tt;var Qt=Lt;if(Lt<0){Qt=$u;var Or=jt.buffer.dimension;Or===1&&(Qt=M1),Or===2&&(Qt=Un),Or===3&&(Qt=$u)}jt.primType=Qt}function $t(jt){et.elementsCount--,se(jt.buffer!==null,"must not double destroy elements"),delete gt[jt.id],jt.buffer.destroy(),jt.buffer=null}function Ct(jt,je){var pt=xe.create(null,$s,!0),Lt=new Ot(pt._buffer);et.elementsCount++;function tr(At){if(!At)pt(),Lt.primType=$u,Lt.vertCount=0,Lt.type=Da;else if(typeof At=="number")pt(At),Lt.primType=$u,Lt.vertCount=At|0,Lt.type=Da;else{var ar=null,Mt=N1,rr=-1,Tt=-1,Qt=0,Or=0;Array.isArray(At)||r(At)||X(At)?ar=At:(se.type(At,"object","invalid arguments for elements"),"data"in At&&(ar=At.data,se(Array.isArray(ar)||r(ar)||X(ar),"invalid data for element buffer")),"usage"in At&&(se.parameter(At.usage,xs,"invalid element buffer usage"),Mt=xs[At.usage]),"primitive"in At&&(se.parameter(At.primitive,bs,"invalid element buffer primitive"),rr=bs[At.primitive]),"count"in At&&(se(typeof At.count=="number"&&At.count>=0,"invalid vertex count for elements"),Tt=At.count|0),"type"in At&&(se.parameter(At.type,Ye,"invalid buffer type"),Or=Ye[At.type]),"length"in At?Qt=At.length|0:(Qt=Tt,Or===Za||Or===vu?Qt*=2:(Or===Oa||Or===Ys)&&(Qt*=4))),Gt(Lt,ar,Mt,rr,Tt,Qt,Or)}return tr}return tr(jt),tr._reglType="elements",tr._elements=Lt,tr.subdata=function(At,ar){return pt.subdata(At,ar),tr},tr.destroy=function(){$t(Lt)},tr}return{create:Ct,createStream:Xt,destroyStream:Ut,getElements:function(jt){return typeof jt=="function"&&jt._elements instanceof Ot?jt._elements:null},clear:function(){re(gt).forEach($t)}}}var ri=new Float32Array(1),q0=new Uint32Array(ri.buffer),Bl=5123;function Dc(N){for(var ie=ht.allocType(Bl,N.length),xe=0;xe>>31<<15,tt=(et<<1>>>24)-127,Ye=et>>13&1023;if(tt<-24)ie[xe]=gt;else if(tt<-14){var Ot=-14-tt;ie[xe]=gt+(Ye+1024>>Ot)}else tt>15?ie[xe]=gt+31744:ie[xe]=gt+(tt+15<<10)+Ye}return ie}function Li(N){return Array.isArray(N)||r(N)}var Oc=function(N){return!(N&N-1)&&!!N},O1=34467,la=3553,qs=34067,As=34069,xu=6408,Ul=6406,xp=6407,ps=6409,tl=6410,Pu=32854,Ks=32855,Lc=36194,rl=32819,li=32820,kl=33635,K0=34042,bu=6402,ol=34041,Bc=35904,zl=35906,Qs=36193,Au=33776,qu=33777,Pp=33778,Ku=33779,Qu=35986,Uc=35987,Ju=34798,Ya=35840,kc=35841,zc=35842,Vc=35843,Fu=36196,Fs=5121,bp=5123,il=5125,Tu=5126,Q0=10242,Vl=10243,Hc=10497,Hl=33071,L1=33648,Gl=10240,Gc=10241,nl=9728,jc=9729,ep=9984,Wc=9985,Su=9986,ci=9987,jl=33170,Ts=4352,wu=4353,No=4354,di=34046,La=3317,al=37440,Ap=37441,sl=37443,B1=37444,Wl=33984,ul=[ep,Su,Wc,ci],Ru=[0,ps,tl,xp,xu],dn={};dn[ps]=dn[Ul]=dn[bu]=1,dn[ol]=dn[tl]=2,dn[xp]=dn[Bc]=3,dn[xu]=dn[zl]=4;function bi(N){return"[object "+N+"]"}var Fp=bi("HTMLCanvasElement"),Xc=bi("OffscreenCanvas"),Gi=bi("CanvasRenderingContext2D"),hr=bi("ImageBitmap"),ca=bi("HTMLImageElement"),pl=bi("HTMLVideoElement"),Tp=Object.keys(cn).concat([Fp,Xc,Gi,hr,ca,pl]),ea=[];ea[Fs]=1,ea[Tu]=4,ea[Qs]=2,ea[bp]=2,ea[il]=4;var oi=[];oi[Pu]=2,oi[Ks]=2,oi[Lc]=2,oi[ol]=4,oi[Au]=.5,oi[qu]=.5,oi[Pp]=1,oi[Ku]=1,oi[Qu]=.5,oi[Uc]=1,oi[Ju]=1,oi[Ya]=.5,oi[kc]=.25,oi[zc]=.5,oi[Vc]=.25,oi[Fu]=.5;function Xl(N){return Array.isArray(N)&&(N.length===0||typeof N[0]=="number")}function Kt(N){if(!Array.isArray(N))return!1;var ie=N.length;return!(ie===0||!Li(N[0]))}function Js(N){return Object.prototype.toString.call(N)}function ll(N){return Js(N)===Fp}function Zl(N){return Js(N)===Xc}function $a(N){return Js(N)===Gi}function Aa(N){return Js(N)===hr}function Yl(N){return Js(N)===ca}function $l(N){return Js(N)===pl}function ta(N){if(!N)return!1;var ie=Js(N);return Tp.indexOf(ie)>=0?!0:Xl(N)||Kt(N)||X(N)}function Ss(N){return cn[Object.prototype.toString.call(N)]|0}function U1(N,ie){var xe=ie.length;switch(N.type){case Fs:case bp:case il:case Tu:var et=ht.allocType(N.type,xe);et.set(ie),N.data=et;break;case Qs:N.data=Dc(ie);break;default:se.raise("unsupported texture type, must specify a typed array")}}function Sp(N,ie){return ht.allocType(N.type===Qs?Tu:N.type,ie)}function ql(N,ie){N.type===Qs?(N.data=Dc(ie),ht.freeType(ie)):N.data=ie}function Zc(N,ie,xe,et,gt,tt){for(var Ye=N.width,Ot=N.height,Rt=N.channels,Xt=Ye*Ot*Rt,Ut=Sp(N,Xt),Gt=0,$t=0;$t=1;)Ot+=Ye*Rt*Rt,Rt/=2;return Ot}else return Ye*xe*et}function Ba(N,ie,xe,et,gt,tt,Ye){var Ot={"don't care":Ts,"dont care":Ts,nice:No,fast:wu},Rt={repeat:Hc,clamp:Hl,mirror:L1},Xt={nearest:nl,linear:jc},Ut=i({mipmap:ci,"nearest mipmap nearest":ep,"linear mipmap nearest":Wc,"nearest mipmap linear":Su,"linear mipmap linear":ci},Xt),Gt={none:0,browser:B1},$t={uint8:Fs,rgba4:rl,rgb565:kl,"rgb5 a1":li},Ct={alpha:Ul,luminance:ps,"luminance alpha":tl,rgb:xp,rgba:xu,rgba4:Pu,"rgb5 a1":Ks,rgb565:Lc},jt={};ie.ext_srgb&&(Ct.srgb=Bc,Ct.srgba=zl),ie.oes_texture_float&&($t.float32=$t.float=Tu),ie.oes_texture_half_float&&($t.float16=$t["half float"]=Qs),ie.webgl_depth_texture&&(i(Ct,{depth:bu,"depth stencil":ol}),i($t,{uint16:bp,uint32:il,"depth stencil":K0})),ie.webgl_compressed_texture_s3tc&&i(jt,{"rgb s3tc dxt1":Au,"rgba s3tc dxt1":qu,"rgba s3tc dxt3":Pp,"rgba s3tc dxt5":Ku}),ie.webgl_compressed_texture_atc&&i(jt,{"rgb atc":Qu,"rgba atc explicit alpha":Uc,"rgba atc interpolated alpha":Ju}),ie.webgl_compressed_texture_pvrtc&&i(jt,{"rgb pvrtc 4bppv1":Ya,"rgb pvrtc 2bppv1":kc,"rgba pvrtc 4bppv1":zc,"rgba pvrtc 2bppv1":Vc}),ie.webgl_compressed_texture_etc1&&(jt["rgb etc1"]=Fu);var je=Array.prototype.slice.call(N.getParameter(O1));Object.keys(jt).forEach(function(fe){var ot=jt[fe];je.indexOf(ot)>=0&&(Ct[fe]=ot)});var pt=Object.keys(Ct);xe.textureFormats=pt;var Lt=[];Object.keys(Ct).forEach(function(fe){var ot=Ct[fe];Lt[ot]=fe});var tr=[];Object.keys($t).forEach(function(fe){var ot=$t[fe];tr[ot]=fe});var At=[];Object.keys(Xt).forEach(function(fe){var ot=Xt[fe];At[ot]=fe});var ar=[];Object.keys(Ut).forEach(function(fe){var ot=Ut[fe];ar[ot]=fe});var Mt=[];Object.keys(Rt).forEach(function(fe){var ot=Rt[fe];Mt[ot]=fe});var rr=pt.reduce(function(fe,ot){var Ke=Ct[ot];return Ke===ps||Ke===Ul||Ke===ps||Ke===tl||Ke===bu||Ke===ol||ie.ext_srgb&&(Ke===Bc||Ke===zl)?fe[Ke]=Ke:Ke===Ks||ot.indexOf("rgba")>=0?fe[Ke]=xu:fe[Ke]=xp,fe},{});function Tt(){this.internalformat=xu,this.format=xu,this.type=Fs,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=B1,this.width=0,this.height=0,this.channels=0}function Qt(fe,ot){fe.internalformat=ot.internalformat,fe.format=ot.format,fe.type=ot.type,fe.compressed=ot.compressed,fe.premultiplyAlpha=ot.premultiplyAlpha,fe.flipY=ot.flipY,fe.unpackAlignment=ot.unpackAlignment,fe.colorSpace=ot.colorSpace,fe.width=ot.width,fe.height=ot.height,fe.channels=ot.channels}function Or(fe,ot){if(!(typeof ot!="object"||!ot)){if("premultiplyAlpha"in ot&&(se.type(ot.premultiplyAlpha,"boolean","invalid premultiplyAlpha"),fe.premultiplyAlpha=ot.premultiplyAlpha),"flipY"in ot&&(se.type(ot.flipY,"boolean","invalid texture flip"),fe.flipY=ot.flipY),"alignment"in ot&&(se.oneOf(ot.alignment,[1,2,4,8],"invalid texture unpack alignment"),fe.unpackAlignment=ot.alignment),"colorSpace"in ot&&(se.parameter(ot.colorSpace,Gt,"invalid colorSpace"),fe.colorSpace=Gt[ot.colorSpace]),"type"in ot){var Ke=ot.type;se(ie.oes_texture_float||!(Ke==="float"||Ke==="float32"),"you must enable the OES_texture_float extension in order to use floating point textures."),se(ie.oes_texture_half_float||!(Ke==="half float"||Ke==="float16"),"you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures."),se(ie.webgl_depth_texture||!(Ke==="uint16"||Ke==="uint32"||Ke==="depth stencil"),"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),se.parameter(Ke,$t,"invalid texture type"),fe.type=$t[Ke]}var ur=fe.width,fo=fe.height,ii=fe.channels,Z=!1;"shape"in ot?(se(Array.isArray(ot.shape)&&ot.shape.length>=2,"shape must be an array"),ur=ot.shape[0],fo=ot.shape[1],ot.shape.length===3&&(ii=ot.shape[2],se(ii>0&&ii<=4,"invalid number of channels"),Z=!0),se(ur>=0&&ur<=xe.maxTextureSize,"invalid width"),se(fo>=0&&fo<=xe.maxTextureSize,"invalid height")):("radius"in ot&&(ur=fo=ot.radius,se(ur>=0&&ur<=xe.maxTextureSize,"invalid radius")),"width"in ot&&(ur=ot.width,se(ur>=0&&ur<=xe.maxTextureSize,"invalid width")),"height"in ot&&(fo=ot.height,se(fo>=0&&fo<=xe.maxTextureSize,"invalid height")),"channels"in ot&&(ii=ot.channels,se(ii>0&&ii<=4,"invalid number of channels"),Z=!0)),fe.width=ur|0,fe.height=fo|0,fe.channels=ii|0;var ue=!1;if("format"in ot){var Pe=ot.format;se(ie.webgl_depth_texture||!(Pe==="depth"||Pe==="depth stencil"),"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),se.parameter(Pe,Ct,"invalid texture format");var Qe=fe.internalformat=Ct[Pe];fe.format=rr[Qe],Pe in $t&&("type"in ot||(fe.type=$t[Pe])),Pe in jt&&(fe.compressed=!0),ue=!0}!Z&&ue?fe.channels=dn[fe.format]:Z&&!ue?fe.channels!==Ru[fe.format]&&(fe.format=fe.internalformat=Ru[fe.channels]):ue&&Z&&se(fe.channels===dn[fe.format],"number of channels inconsistent with specified format")}}function ro(fe){N.pixelStorei(al,fe.flipY),N.pixelStorei(Ap,fe.premultiplyAlpha),N.pixelStorei(sl,fe.colorSpace),N.pixelStorei(La,fe.unpackAlignment)}function Jt(){Tt.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function Dt(fe,ot){var Ke=null;if(ta(ot)?Ke=ot:ot&&(se.type(ot,"object","invalid pixel data type"),Or(fe,ot),"x"in ot&&(fe.xOffset=ot.x|0),"y"in ot&&(fe.yOffset=ot.y|0),ta(ot.data)&&(Ke=ot.data)),se(!fe.compressed||Ke instanceof Uint8Array,"compressed texture data must be stored in a uint8array"),ot.copy){se(!Ke,"can not specify copy and data field for the same texture");var ur=gt.viewportWidth,fo=gt.viewportHeight;fe.width=fe.width||ur-fe.xOffset,fe.height=fe.height||fo-fe.yOffset,fe.needsCopy=!0,se(fe.xOffset>=0&&fe.xOffset=0&&fe.yOffset0&&fe.width<=ur&&fe.height>0&&fe.height<=fo,"copy texture read out of bounds")}else if(!Ke)fe.width=fe.width||1,fe.height=fe.height||1,fe.channels=fe.channels||4;else if(r(Ke))fe.channels=fe.channels||4,fe.data=Ke,!("type"in ot)&&fe.type===Fs&&(fe.type=Ss(Ke));else if(Xl(Ke))fe.channels=fe.channels||4,U1(fe,Ke),fe.alignment=1,fe.needsFree=!0;else if(X(Ke)){var ii=Ke.data;!Array.isArray(ii)&&fe.type===Fs&&(fe.type=Ss(ii));var Z=Ke.shape,ue=Ke.stride,Pe,Qe,qe,Se,Ne,Ue;Z.length===3?(qe=Z[2],Ue=ue[2]):(se(Z.length===2,"invalid ndarray pixel data, must be 2 or 3D"),qe=1,Ue=1),Pe=Z[0],Qe=Z[1],Se=ue[0],Ne=ue[1],fe.alignment=1,fe.width=Pe,fe.height=Qe,fe.channels=qe,fe.format=fe.internalformat=Ru[qe],fe.needsFree=!0,Zc(fe,ii,Se,Ne,Ue,Ke.offset)}else if(ll(Ke)||Zl(Ke)||$a(Ke))ll(Ke)||Zl(Ke)?fe.element=Ke:fe.element=Ke.canvas,fe.width=fe.element.width,fe.height=fe.element.height,fe.channels=4;else if(Aa(Ke))fe.element=Ke,fe.width=Ke.width,fe.height=Ke.height,fe.channels=4;else if(Yl(Ke))fe.element=Ke,fe.width=Ke.naturalWidth,fe.height=Ke.naturalHeight,fe.channels=4;else if($l(Ke))fe.element=Ke,fe.width=Ke.videoWidth,fe.height=Ke.videoHeight,fe.channels=4;else if(Kt(Ke)){var me=fe.width||Ke[0].length,Ce=fe.height||Ke.length,ae=fe.channels;Li(Ke[0][0])?ae=ae||Ke[0][0].length:ae=ae||1;for(var Me=we.shape(Ke),nt=1,yt=0;yt=0,"oes_texture_float extension not enabled"):fe.type===Qs&&se(xe.extensions.indexOf("oes_texture_half_float")>=0,"oes_texture_half_float extension not enabled")}function vt(fe,ot,Ke){var ur=fe.element,fo=fe.data,ii=fe.internalformat,Z=fe.format,ue=fe.type,Pe=fe.width,Qe=fe.height;ro(fe),ur?N.texImage2D(ot,Ke,Z,Z,ue,ur):fe.compressed?N.compressedTexImage2D(ot,Ke,ii,Pe,Qe,0,fo):fe.needsCopy?(et(),N.copyTexImage2D(ot,Ke,Z,fe.xOffset,fe.yOffset,Pe,Qe,0)):N.texImage2D(ot,Ke,Z,Pe,Qe,0,Z,ue,fo||null)}function Lr(fe,ot,Ke,ur,fo){var ii=fe.element,Z=fe.data,ue=fe.internalformat,Pe=fe.format,Qe=fe.type,qe=fe.width,Se=fe.height;ro(fe),ii?N.texSubImage2D(ot,fo,Ke,ur,Pe,Qe,ii):fe.compressed?N.compressedTexSubImage2D(ot,fo,Ke,ur,ue,qe,Se,Z):fe.needsCopy?(et(),N.copyTexSubImage2D(ot,fo,Ke,ur,fe.xOffset,fe.yOffset,qe,Se)):N.texSubImage2D(ot,fo,Ke,ur,qe,Se,Pe,Qe,Z)}var xo=[];function sr(){return xo.pop()||new Jt}function ho(fe){fe.needsFree&&ht.freeType(fe.data),Jt.call(fe),xo.push(fe)}function eo(){Tt.call(this),this.genMipmaps=!1,this.mipmapHint=Ts,this.mipmask=0,this.images=Array(16)}function Wr(fe,ot,Ke){var ur=fe.images[0]=sr();fe.mipmask=1,ur.width=fe.width=ot,ur.height=fe.height=Ke,ur.channels=fe.channels=4}function jo(fe,ot){var Ke=null;if(ta(ot))Ke=fe.images[0]=sr(),Qt(Ke,fe),Dt(Ke,ot),fe.mipmask=1;else if(Or(fe,ot),Array.isArray(ot.mipmap))for(var ur=ot.mipmap,fo=0;fo>=fo,Ke.height>>=fo,Dt(Ke,ur[fo]),fe.mipmask|=1<=0&&!("faces"in ot)&&(fe.genMipmaps=!0)}if("mag"in ot){var ur=ot.mag;se.parameter(ur,Xt),fe.magFilter=Xt[ur]}var fo=fe.wrapS,ii=fe.wrapT;if("wrap"in ot){var Z=ot.wrap;typeof Z=="string"?(se.parameter(Z,Rt),fo=ii=Rt[Z]):Array.isArray(Z)&&(se.parameter(Z[0],Rt),se.parameter(Z[1],Rt),fo=Rt[Z[0]],ii=Rt[Z[1]])}else{if("wrapS"in ot){var ue=ot.wrapS;se.parameter(ue,Rt),fo=Rt[ue]}if("wrapT"in ot){var Pe=ot.wrapT;se.parameter(Pe,Rt),ii=Rt[Pe]}}if(fe.wrapS=fo,fe.wrapT=ii,"anisotropic"in ot){var Qe=ot.anisotropic;se(typeof Qe=="number"&&Qe>=1&&Qe<=xe.maxAnisotropic,"aniso samples must be between 1 and "),fe.anisotropic=ot.anisotropic}if("mipmap"in ot){var qe=!1;switch(typeof ot.mipmap){case"string":se.parameter(ot.mipmap,Ot,"invalid mipmap hint"),fe.mipmapHint=Ot[ot.mipmap],fe.genMipmaps=!0,qe=!0;break;case"boolean":qe=fe.genMipmaps=ot.mipmap;break;case"object":se(Array.isArray(ot.mipmap),"invalid mipmap type"),fe.genMipmaps=!1,qe=!0;break;default:se.raise("invalid mipmap type")}qe&&!("min"in ot)&&(fe.minFilter=ep)}}function _n(fe,ot){N.texParameteri(ot,Gc,fe.minFilter),N.texParameteri(ot,Gl,fe.magFilter),N.texParameteri(ot,Q0,fe.wrapS),N.texParameteri(ot,Vl,fe.wrapT),ie.ext_texture_filter_anisotropic&&N.texParameteri(ot,di,fe.anisotropic),fe.genMipmaps&&(N.hint(jl,fe.mipmapHint),N.generateMipmap(ot))}var ki=0,In={},na=xe.maxTextureUnits,gn=Array(na).map(function(){return null});function yo(fe){Tt.call(this),this.mipmask=0,this.internalformat=xu,this.id=ki++,this.refCount=1,this.target=fe,this.texture=N.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new mi,Ye.profile&&(this.stats={size:0})}function Yn(fe){N.activeTexture(Wl),N.bindTexture(fe.target,fe.texture)}function Zo(){var fe=gn[0];fe?N.bindTexture(fe.target,fe.texture):N.bindTexture(la,null)}function Vr(fe){var ot=fe.texture;se(ot,"must not double destroy texture");var Ke=fe.unit,ur=fe.target;Ke>=0&&(N.activeTexture(Wl+Ke),N.bindTexture(ur,null),gn[Ke]=null),N.deleteTexture(ot),fe.texture=null,fe.params=null,fe.pixels=null,fe.refCount=0,delete In[fe.id],tt.textureCount--}i(yo.prototype,{bind:function(){var fe=this;fe.bindCount+=1;var ot=fe.unit;if(ot<0){for(var Ke=0;Ke0)continue;ur.unit=-1}gn[Ke]=fe,ot=Ke;break}ot>=na&&se.raise("insufficient number of texture units"),Ye.profile&&tt.maxTextureUnits>Ne)-qe,Ue.height=Ue.height||(Ke.height>>Ne)-Se,se(Ke.type===Ue.type&&Ke.format===Ue.format&&Ke.internalformat===Ue.internalformat,"incompatible format for texture.subimage"),se(qe>=0&&Se>=0&&qe+Ue.width<=Ke.width&&Se+Ue.height<=Ke.height,"texture.subimage write out of bounds"),se(Ke.mipmask&1<>qe;++qe){var Se=Pe>>qe,Ne=Qe>>qe;if(!Se||!Ne)break;N.texImage2D(la,qe,Ke.format,Se,Ne,0,Ke.format,Ke.type,null)}return Zo(),Ye.profile&&(Ke.stats.size=Fa(Ke.internalformat,Ke.type,Pe,Qe,!1,!1)),ur}return ur(fe,ot),ur.subimage=fo,ur.resize=ii,ur._reglType="texture2d",ur._texture=Ke,Ye.profile&&(ur.stats=Ke.stats),ur.destroy=function(){Ke.decRef()},ur}function zo(fe,ot,Ke,ur,fo,ii){var Z=new yo(qs);In[Z.id]=Z,tt.cubeCount++;var ue=new Array(6);function Pe(Se,Ne,Ue,me,Ce,ae){var Me,nt=Z.texInfo;for(mi.call(nt),Me=0;Me<6;++Me)ue[Me]=Ro();if(typeof Se=="number"||!Se){var yt=Se|0||1;for(Me=0;Me<6;++Me)Wr(ue[Me],yt,yt)}else if(typeof Se=="object")if(Ne)jo(ue[0],Se),jo(ue[1],Ne),jo(ue[2],Ue),jo(ue[3],me),jo(ue[4],Ce),jo(ue[5],ae);else if(mn(nt,Se),Or(Z,Se),"faces"in Se){var St=Se.faces;for(se(Array.isArray(St)&&St.length===6,"cube faces must be a length 6 array"),Me=0;Me<6;++Me)se(typeof St[Me]=="object"&&!!St[Me],"invalid input for cube map face"),Qt(ue[Me],Z),jo(ue[Me],St[Me])}else for(Me=0;Me<6;++Me)jo(ue[Me],Se);else se.raise("invalid arguments to cube map");for(Qt(Z,ue[0]),xe.npotTextureCube||se(Oc(Z.width)&&Oc(Z.height),"your browser does not support non power or two texture dimensions"),nt.genMipmaps?Z.mipmask=(ue[0].width<<1)-1:Z.mipmask=ue[0].mipmask,se.textureCube(Z,nt,ue,xe),Z.internalformat=ue[0].internalformat,Pe.width=ue[0].width,Pe.height=ue[0].height,Yn(Z),Me=0;Me<6;++Me)Qi(ue[Me],As+Me);for(_n(nt,qs),Zo(),Ye.profile&&(Z.stats.size=Fa(Z.internalformat,Z.type,Pe.width,Pe.height,nt.genMipmaps,!0)),Pe.format=Lt[Z.internalformat],Pe.type=tr[Z.type],Pe.mag=At[nt.magFilter],Pe.min=ar[nt.minFilter],Pe.wrapS=Mt[nt.wrapS],Pe.wrapT=Mt[nt.wrapT],Me=0;Me<6;++Me)Ji(ue[Me]);return Pe}function Qe(Se,Ne,Ue,me,Ce){se(!!Ne,"must specify image data"),se(typeof Se=="number"&&Se===(Se|0)&&Se>=0&&Se<6,"invalid face");var ae=Ue|0,Me=me|0,nt=Ce|0,yt=sr();return Qt(yt,Z),yt.width=0,yt.height=0,Dt(yt,Ne),yt.width=yt.width||(Z.width>>nt)-ae,yt.height=yt.height||(Z.height>>nt)-Me,se(Z.type===yt.type&&Z.format===yt.format&&Z.internalformat===yt.internalformat,"incompatible format for texture.subimage"),se(ae>=0&&Me>=0&&ae+yt.width<=Z.width&&Me+yt.height<=Z.height,"texture.subimage write out of bounds"),se(Z.mipmask&1<>me;++me)N.texImage2D(As+Ue,me,Z.format,Ne>>me,Ne>>me,0,Z.format,Z.type,null);return Zo(),Ye.profile&&(Z.stats.size=Fa(Z.internalformat,Z.type,Pe.width,Pe.height,!1,!0)),Pe}}return Pe(fe,ot,Ke,ur,fo,ii),Pe.subimage=Qe,Pe.resize=qe,Pe._reglType="textureCube",Pe._texture=Z,Ye.profile&&(Pe.stats=Z.stats),Pe.destroy=function(){Z.decRef()},Pe}function en(){for(var fe=0;fe>ur,Ke.height>>ur,0,Ke.internalformat,Ke.type,null);else for(var fo=0;fo<6;++fo)N.texImage2D(As+fo,ur,Ke.internalformat,Ke.width>>ur,Ke.height>>ur,0,Ke.internalformat,Ke.type,null);_n(Ke.texInfo,Ke.target)})}return{create2D:To,createCube:zo,clear:en,getTexture:function(fe){return null},restore:nu}}var po=36161,Ua=32854,ka=32855,wn=36194,Cu=33189,eu=36168,qa=34041,Wn=35907,wp=34836,Rr=34842,gr=34843,Ta=[];Ta[Ua]=2,Ta[ka]=2,Ta[wn]=2,Ta[Cu]=2,Ta[eu]=1,Ta[qa]=4,Ta[Wn]=4,Ta[wp]=16,Ta[Rr]=8,Ta[gr]=6;function Xn(N,ie,xe){return Ta[N]*ie*xe}var ls=function(N,ie,xe,et,gt){var tt={rgba4:Ua,rgb565:wn,"rgb5 a1":ka,depth:Cu,stencil:eu,"depth stencil":qa};ie.ext_srgb&&(tt.srgba=Wn),ie.ext_color_buffer_half_float&&(tt.rgba16f=Rr,tt.rgb16f=gr),ie.webgl_color_buffer_float&&(tt.rgba32f=wp);var Ye=[];Object.keys(tt).forEach(function(Ct){var jt=tt[Ct];Ye[jt]=Ct});var Ot=0,Rt={};function Xt(Ct){this.id=Ot++,this.refCount=1,this.renderbuffer=Ct,this.format=Ua,this.width=0,this.height=0,gt.profile&&(this.stats={size:0})}Xt.prototype.decRef=function(){--this.refCount<=0&&Ut(this)};function Ut(Ct){var jt=Ct.renderbuffer;se(jt,"must not double destroy renderbuffer"),N.bindRenderbuffer(po,null),N.deleteRenderbuffer(jt),Ct.renderbuffer=null,Ct.refCount=0,delete Rt[Ct.id],et.renderbufferCount--}function Gt(Ct,jt){var je=new Xt(N.createRenderbuffer());Rt[je.id]=je,et.renderbufferCount++;function pt(tr,At){var ar=0,Mt=0,rr=Ua;if(typeof tr=="object"&&tr){var Tt=tr;if("shape"in Tt){var Qt=Tt.shape;se(Array.isArray(Qt)&&Qt.length>=2,"invalid renderbuffer shape"),ar=Qt[0]|0,Mt=Qt[1]|0}else"radius"in Tt&&(ar=Mt=Tt.radius|0),"width"in Tt&&(ar=Tt.width|0),"height"in Tt&&(Mt=Tt.height|0);"format"in Tt&&(se.parameter(Tt.format,tt,"invalid renderbuffer format"),rr=tt[Tt.format])}else typeof tr=="number"?(ar=tr|0,typeof At=="number"?Mt=At|0:Mt=ar):tr?se.raise("invalid arguments to renderbuffer constructor"):ar=Mt=1;if(se(ar>0&&Mt>0&&ar<=xe.maxRenderbufferSize&&Mt<=xe.maxRenderbufferSize,"invalid renderbuffer size"),!(ar===je.width&&Mt===je.height&&rr===je.format))return pt.width=je.width=ar,pt.height=je.height=Mt,je.format=rr,N.bindRenderbuffer(po,je.renderbuffer),N.renderbufferStorage(po,rr,ar,Mt),se(N.getError()===0,"invalid render buffer format"),gt.profile&&(je.stats.size=Xn(je.format,je.width,je.height)),pt.format=Ye[je.format],pt}function Lt(tr,At){var ar=tr|0,Mt=At|0||ar;return ar===je.width&&Mt===je.height||(se(ar>0&&Mt>0&&ar<=xe.maxRenderbufferSize&&Mt<=xe.maxRenderbufferSize,"invalid renderbuffer size"),pt.width=je.width=ar,pt.height=je.height=Mt,N.bindRenderbuffer(po,je.renderbuffer),N.renderbufferStorage(po,je.format,ar,Mt),se(N.getError()===0,"invalid render buffer format"),gt.profile&&(je.stats.size=Xn(je.format,je.width,je.height))),pt}return pt(Ct,jt),pt.resize=Lt,pt._reglType="renderbuffer",pt._renderbuffer=je,gt.profile&&(pt.stats=je.stats),pt.destroy=function(){je.decRef()},pt}gt.profile&&(et.getTotalRenderbufferSize=function(){var Ct=0;return Object.keys(Rt).forEach(function(jt){Ct+=Rt[jt].stats.size}),Ct});function $t(){re(Rt).forEach(function(Ct){Ct.renderbuffer=N.createRenderbuffer(),N.bindRenderbuffer(po,Ct.renderbuffer),N.renderbufferStorage(po,Ct.format,Ct.width,Ct.height)}),N.bindRenderbuffer(po,null)}return{create:Gt,clear:function(){re(Rt).forEach(Ut)},restore:$t}},Ai=36160,Ka=36161,tu=3553,tp=34069,Xo=36064,yn=36096,Yc=36128,Iu=33306,Kl=36053,ru=36054,Sa=36055,Rp=36057,ws=36061,Ql=36193,Cp=5121,cl=5126,Jl=6407,rp=6408,op=6402,$c=[Jl,rp],Rs=[];Rs[rp]=4,Rs[Jl]=3;var cs=[];cs[Cp]=1,cs[cl]=4,cs[Ql]=2;var ec=32854,Mu=32855,Qa=36194,qc=33189,dl=36168,tc=34041,rc=35907,l=34836,d=34842,c=34843,f=[ec,Mu,Qa,rc,d,c,l],E={};E[Kl]="complete",E[ru]="incomplete attachment",E[Rp]="incomplete dimensions",E[Sa]="incomplete, missing attachment",E[ws]="unsupported";function A(N,ie,xe,et,gt,tt){var Ye={cur:null,next:null,dirty:!1,setFBO:null},Ot=["rgba"],Rt=["rgba4","rgb565","rgb5 a1"];ie.ext_srgb&&Rt.push("srgba"),ie.ext_color_buffer_half_float&&Rt.push("rgba16f","rgb16f"),ie.webgl_color_buffer_float&&Rt.push("rgba32f");var Xt=["uint8"];ie.oes_texture_half_float&&Xt.push("half float","float16"),ie.oes_texture_float&&Xt.push("float","float32");function Ut(Jt,Dt,vt){this.target=Jt,this.texture=Dt,this.renderbuffer=vt;var Lr=0,xo=0;Dt?(Lr=Dt.width,xo=Dt.height):vt&&(Lr=vt.width,xo=vt.height),this.width=Lr,this.height=xo}function Gt(Jt){Jt&&(Jt.texture&&Jt.texture._texture.decRef(),Jt.renderbuffer&&Jt.renderbuffer._renderbuffer.decRef())}function $t(Jt,Dt,vt){if(Jt)if(Jt.texture){var Lr=Jt.texture._texture,xo=Math.max(1,Lr.width),sr=Math.max(1,Lr.height);se(xo===Dt&&sr===vt,"inconsistent width/height for supplied texture"),Lr.refCount+=1}else{var ho=Jt.renderbuffer._renderbuffer;se(ho.width===Dt&&ho.height===vt,"inconsistent width/height for renderbuffer"),ho.refCount+=1}}function Ct(Jt,Dt){Dt&&(Dt.texture?N.framebufferTexture2D(Ai,Jt,Dt.target,Dt.texture._texture.texture,0):N.framebufferRenderbuffer(Ai,Jt,Ka,Dt.renderbuffer._renderbuffer.renderbuffer))}function jt(Jt){var Dt=tu,vt=null,Lr=null,xo=Jt;typeof Jt=="object"&&(xo=Jt.data,"target"in Jt&&(Dt=Jt.target|0)),se.type(xo,"function","invalid attachment data");var sr=xo._reglType;return sr==="texture2d"?(vt=xo,se(Dt===tu)):sr==="textureCube"?(vt=xo,se(Dt>=tp&&Dt=2,"invalid shape for framebuffer"),Wr=Yn[0],jo=Yn[1]}else"radius"in yo&&(Wr=jo=yo.radius),"width"in yo&&(Wr=yo.width),"height"in yo&&(jo=yo.height);("color"in yo||"colors"in yo)&&(Ro=yo.color||yo.colors,Array.isArray(Ro)&&se(Ro.length===1||ie.webgl_draw_buffers,"multiple render targets not supported")),Ro||("colorCount"in yo&&(_n=yo.colorCount|0,se(_n>0,"invalid color buffer count")),"colorTexture"in yo&&(Ji=!!yo.colorTexture,mi="rgba4"),"colorType"in yo&&(mn=yo.colorType,Ji?(se(ie.oes_texture_float||!(mn==="float"||mn==="float32"),"you must enable OES_texture_float in order to use floating point framebuffer objects"),se(ie.oes_texture_half_float||!(mn==="half float"||mn==="float16"),"you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects")):mn==="half float"||mn==="float16"?(se(ie.ext_color_buffer_half_float,"you must enable EXT_color_buffer_half_float to use 16-bit render buffers"),mi="rgba16f"):(mn==="float"||mn==="float32")&&(se(ie.webgl_color_buffer_float,"you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers"),mi="rgba32f"),se.oneOf(mn,Xt,"invalid color type")),"colorFormat"in yo&&(mi=yo.colorFormat,Ot.indexOf(mi)>=0?Ji=!0:Rt.indexOf(mi)>=0?Ji=!1:Ji?se.oneOf(yo.colorFormat,Ot,"invalid color format for texture"):se.oneOf(yo.colorFormat,Rt,"invalid color format for renderbuffer"))),("depthTexture"in yo||"depthStencilTexture"in yo)&&(gn=!!(yo.depthTexture||yo.depthStencilTexture),se(!gn||ie.webgl_depth_texture,"webgl_depth_texture extension not supported")),"depth"in yo&&(typeof yo.depth=="boolean"?Qi=yo.depth:(ki=yo.depth,zn=!1)),"stencil"in yo&&(typeof yo.stencil=="boolean"?zn=yo.stencil:(In=yo.stencil,Qi=!1)),"depthStencil"in yo&&(typeof yo.depthStencil=="boolean"?Qi=zn=yo.depthStencil:(na=yo.depthStencil,Qi=!1,zn=!1))}var Zo=null,Vr=null,To=null,zo=null;if(Array.isArray(Ro))Zo=Ro.map(jt);else if(Ro)Zo=[jt(Ro)];else for(Zo=new Array(_n),eo=0;eo<_n;++eo)Zo[eo]=je(Wr,jo,Ji,mi,mn);se(ie.webgl_draw_buffers||Zo.length<=1,"you must enable the WEBGL_draw_buffers extension in order to use multiple color buffers."),se(Zo.length<=xe.maxColorAttachments,"too many color attachments, not supported"),Wr=Wr||Zo[0].width,jo=jo||Zo[0].height,ki?Vr=jt(ki):Qi&&!zn&&(Vr=je(Wr,jo,gn,"depth","uint32")),In?To=jt(In):zn&&!Qi&&(To=je(Wr,jo,!1,"stencil","uint8")),na?zo=jt(na):!ki&&!In&&zn&&Qi&&(zo=je(Wr,jo,gn,"depth stencil","depth stencil")),se(!!ki+!!In+!!na<=1,"invalid framebuffer configuration, can specify exactly one depth/stencil attachment");var en=null;for(eo=0;eo=0||Zo[eo].renderbuffer&&f.indexOf(Zo[eo].renderbuffer._renderbuffer.format)>=0,"framebuffer color attachment "+eo+" is invalid"),Zo[eo]&&Zo[eo].texture){var nu=Rs[Zo[eo].texture._texture.format]*cs[Zo[eo].texture._texture.type];en===null?en=nu:se(en===nu,"all color attachments much have the same number of bits per pixel.")}return $t(Vr,Wr,jo),se(!Vr||Vr.texture&&Vr.texture._texture.format===op||Vr.renderbuffer&&Vr.renderbuffer._renderbuffer.format===qc,"invalid depth attachment for framebuffer object"),$t(To,Wr,jo),se(!To||To.renderbuffer&&To.renderbuffer._renderbuffer.format===dl,"invalid stencil attachment for framebuffer object"),$t(zo,Wr,jo),se(!zo||zo.texture&&zo.texture._texture.format===tc||zo.renderbuffer&&zo.renderbuffer._renderbuffer.format===tc,"invalid depth-stencil attachment for framebuffer object"),Mt(vt),vt.width=Wr,vt.height=jo,vt.colorAttachments=Zo,vt.depthAttachment=Vr,vt.stencilAttachment=To,vt.depthStencilAttachment=zo,Lr.color=Zo.map(pt),Lr.depth=pt(Vr),Lr.stencil=pt(To),Lr.depthStencil=pt(zo),Lr.width=vt.width,Lr.height=vt.height,Tt(vt),Lr}function xo(sr,ho){se(Ye.next!==vt,"can not resize a framebuffer which is currently in use");var eo=Math.max(sr|0,1),Wr=Math.max(ho|0||eo,1);if(eo===vt.width&&Wr===vt.height)return Lr;for(var jo=vt.colorAttachments,Qi=0;Qi=2,"invalid shape for framebuffer"),se(Ji[0]===Ji[1],"cube framebuffer must be square"),eo=Ji[0]}else"radius"in Ro&&(eo=Ro.radius|0),"width"in Ro?(eo=Ro.width|0,"height"in Ro&&se(Ro.height===eo,"must be square")):"height"in Ro&&(eo=Ro.height|0);("color"in Ro||"colors"in Ro)&&(Wr=Ro.color||Ro.colors,Array.isArray(Wr)&&se(Wr.length===1||ie.webgl_draw_buffers,"multiple render targets not supported")),Wr||("colorCount"in Ro&&(zn=Ro.colorCount|0,se(zn>0,"invalid color buffer count")),"colorType"in Ro&&(se.oneOf(Ro.colorType,Xt,"invalid color type"),Qi=Ro.colorType),"colorFormat"in Ro&&(jo=Ro.colorFormat,se.oneOf(Ro.colorFormat,Ot,"invalid color format for texture"))),"depth"in Ro&&(ho.depth=Ro.depth),"stencil"in Ro&&(ho.stencil=Ro.stencil),"depthStencil"in Ro&&(ho.depthStencil=Ro.depthStencil)}var mi;if(Wr)if(Array.isArray(Wr))for(mi=[],sr=0;sr0&&(ho.depth=Dt[0].depth,ho.stencil=Dt[0].stencil,ho.depthStencil=Dt[0].depthStencil),Dt[sr]?Dt[sr](ho):Dt[sr]=Qt(ho)}return i(vt,{width:eo,height:eo,color:mi})}function Lr(xo){var sr,ho=xo|0;if(se(ho>0&&ho<=xe.maxCubeMapSize,"invalid radius for cube fbo"),ho===vt.width)return vt;var eo=vt.color;for(sr=0;sr0,"must specify at least one attribute");for(var Or=0;Or=1&&vt.size<=4,"size must be between 1 and 4"),se(vt.offset>=0,"invalid offset"),se(vt.stride>=0&&vt.stride<=255,"stride must be between 0 and 255"),se(vt.divisor>=0,"divisor must be positive"),se(!vt.divisor||!!ie.angle_instanced_arrays,"ANGLE_instanced_arrays must be enabled to use divisor")):"x"in Dt?(se(Jt>0,"first attribute must not be a constant"),vt.x=+Dt.x||0,vt.y=+Dt.y||0,vt.z=+Dt.z||0,vt.w=+Dt.w||0,vt.state=2):se(!1,"invalid attribute spec for location "+Jt)}return rr.refresh(),Tt}return Tt.destroy=function(){rr.destroy()},Tt._vao=rr,Tt._reglType="vao",Tt(Mt)}return Ut}var $=35632,K=35633,ee=35718,_e=35721;function de(N,ie,xe,et){var gt={},tt={};function Ye(je,pt,Lt,tr){this.name=je,this.id=pt,this.location=Lt,this.info=tr}function Ot(je,pt){for(var Lt=0;Lt1)for(var ro=0;roje&&(je=pt.stats.uniformsCount)}),je},xe.getMaxAttributesCount=function(){var je=0;return Ut.forEach(function(pt){pt.stats.attributesCount>je&&(je=pt.stats.attributesCount)}),je});function jt(){gt={},tt={};for(var je=0;je=0,"missing vertex shader",Lt),se.command(pt>=0,"missing fragment shader",Lt);var At=Xt[pt];At||(At=Xt[pt]={});var ar=At[je];if(ar&&!tr)return ar;var Mt=new $t(pt,je);return xe.shaderCount++,Ct(Mt,Lt,tr),ar||(At[je]=Mt),Ut.push(Mt),Mt},restore:jt,shader:Rt,frag:-1,vert:-1}}var Te=6408,le=5121,Fe=3333,De=5126;function Xe(N,ie,xe,et,gt,tt,Ye){function Ot(Ut){var Gt;ie.next===null?(se(gt.preserveDrawingBuffer,'you must create a webgl context with "preserveDrawingBuffer":true in order to read pixels from the drawing buffer'),Gt=le):(se(ie.next.colorAttachments[0].texture!==null,"You cannot read from a renderbuffer"),Gt=ie.next.colorAttachments[0].texture._texture.type,tt.oes_texture_float?(se(Gt===le||Gt===De,"Reading from a framebuffer is only allowed for the types 'uint8' and 'float'"),Gt===De&&se(Ye.readFloat,"Reading 'float' values is not permitted in your browser. For a fallback, please see: https://www.npmjs.com/package/glsl-read-float")):se(Gt===le,"Reading from a framebuffer is only allowed for the type 'uint8'"));var $t=0,Ct=0,jt=et.framebufferWidth,je=et.framebufferHeight,pt=null;r(Ut)?pt=Ut:Ut&&(se.type(Ut,"object","invalid arguments to regl.read()"),$t=Ut.x|0,Ct=Ut.y|0,se($t>=0&&$t=0&&Ct0&&jt+$t<=et.framebufferWidth,"invalid width for read pixels"),se(je>0&&je+Ct<=et.framebufferHeight,"invalid height for read pixels"),xe();var Lt=jt*je*4;return pt||(Gt===le?pt=new Uint8Array(Lt):Gt===De&&(pt=pt||new Float32Array(Lt))),se.isTypedArray(pt,"data buffer for regl.read() must be a typedarray"),se(pt.byteLength>=Lt,"data buffer for regl.read() too small"),N.pixelStorei(Fe,4),N.readPixels($t,Ct,jt,je,Te,Gt,pt),pt}function Rt(Ut){var Gt;return ie.setFBO({framebuffer:Ut.framebuffer},function(){Gt=Ot(Ut)}),Gt}function Xt(Ut){return!Ut||!("framebuffer"in Ut)?Ot(Ut):Rt(Ut)}return Xt}function at(N){return Array.prototype.slice.call(N)}function Je(N){return at(N).join("")}function ct(){var N=0,ie=[],xe=[];function et(Gt){for(var $t=0;$t0&&(Gt.push(je,"="),Gt.push.apply(Gt,at(arguments)),Gt.push(";")),je}return i($t,{def:jt,toString:function(){return Je([Ct.length>0?"var "+Ct.join(",")+";":"",Je(Gt)])}})}function tt(){var Gt=gt(),$t=gt(),Ct=Gt.toString,jt=$t.toString;function je(pt,Lt){$t(pt,Lt,"=",Gt.def(pt,Lt),";")}return i(function(){Gt.apply(Gt,at(arguments))},{def:Gt.def,entry:Gt,exit:$t,save:je,set:function(pt,Lt,tr){je(pt,Lt),Gt(pt,Lt,"=",tr,";")},toString:function(){return Ct()+jt()}})}function Ye(){var Gt=Je(arguments),$t=tt(),Ct=tt(),jt=$t.toString,je=Ct.toString;return i($t,{then:function(){return $t.apply($t,at(arguments)),this},else:function(){return Ct.apply(Ct,at(arguments)),this},toString:function(){var pt=je();return pt&&(pt="else{"+pt+"}"),Je(["if(",Gt,"){",jt(),"}",pt])}})}var Ot=gt(),Rt={};function Xt(Gt,$t){var Ct=[];function jt(){var At="a"+Ct.length;return Ct.push(At),At}$t=$t||0;for(var je=0;je<$t;++je)jt();var pt=tt(),Lt=pt.toString,tr=Rt[Gt]=i(pt,{arg:jt,toString:function(){return Je(["function(",Ct.join(),"){",Lt(),"}"])}});return tr}function Ut(){var Gt=['"use strict";',Ot,"return {"];Object.keys(Rt).forEach(function(jt){Gt.push('"',jt,'":',Rt[jt].toString(),",")}),Gt.push("}");var $t=Je(Gt).replace(/;/g,`; `).replace(/}/g,`} `).replace(/{/g,`{ `),Ct=Function.apply(null,ie.concat($t));return Ct.apply(null,xe)}return{global:Ot,link:et,block:gt,proc:Xt,scope:tt,cond:Ye,compile:Ut}}var Pt="xyzw".split(""),Ht=5121,Bt=1,nr=2,Cr=0,Dr=1,Nr=2,Lo=3,cr=4,$r="dither",lo="blend.enable",Xr="blend.color",Gr="blend.equation",uo="blend.func",jr="depth.enable",zr="depth.func",qi="depth.range",Si="depth.mask",Rn="colorMask",hn="cull.enable",Fi="cull.face",wi="frontFace",ra="lineWidth",Zn="polygonOffset.enable",Cs="polygonOffset.offset",oa="sample.alpha",Ja="sample.enable",wa="sample.coverage",Ip="stencil.enable",ip="stencil.mask",Is="stencil.func",Nu="stencil.opFront",ou="stencil.opBack",ds="scissor.enable",Du="scissor.box",kn="viewport",Bi="profile",da="framebuffer",es="vert",ys="frag",Io="elements",Cn="primitive",Ki="count",Ms="offset",oc="instances",Ou="vao",Kc="Width",np="Height",ap=da+Kc,hs=da+np,ic=kn+Kc,J0=kn+np,Mp="drawingBuffer",ya=Mp+Kc,zy=Mp+np,Vy=[uo,Gr,Is,Nu,ou,wa,kn,Du,Cs],nc=34962,Jf=34963,em=35632,tm=35633,k1=3553,rm=34067,z1=2884,Hy=3042,Np=3024,Qc=2960,om=2929,im=3089,nm=32823,am=32926,sm=32928,ed=5126,V1=35664,ac=35665,H1=35666,Dp=5124,G1=35667,Ui=35668,yl=35669,j1=35670,hl=35671,fl=35672,Op=35673,sc=35674,uc=35675,sp=35676,ml=35678,_l=35680,Gy=4,up=1028,gl=1029,W1=2304,td=2305,rd=32775,od=32776,iu=519,Lp=7680,jy=0,Wy=1,Xy=32774,Zy=513,vl=36160,um=36064,Lu={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},id=["constant color, constant alpha","one minus constant color, constant alpha","constant color, one minus constant alpha","one minus constant color, one minus constant alpha","constant alpha, constant color","constant alpha, one minus constant color","one minus constant alpha, constant color","one minus constant alpha, one minus constant color"],El={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Bp={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Yy={frag:em,vert:tm},Up={cw:W1,ccw:td};function X1(N){return Array.isArray(N)||r(N)||X(N)}function Z1(N){return N.sort(function(ie,xe){return ie===kn?-1:xe===kn?1:ie=1,et>=2,ie)}else if(xe===cr){var gt=N.data;return new ha(gt.thisDep,gt.contextDep,gt.propDep,ie)}else return new ha(xe===Lo,xe===Nr,xe===Dr,ie)}var $y=new ha(!1,!1,!1,function(){});function Jc(N,ie,xe,et,gt,tt,Ye,Ot,Rt,Xt,Ut,Gt,$t,Ct,jt){var je=Xt.Record,pt={add:32774,subtract:32778,"reverse subtract":32779};xe.ext_blend_minmax&&(pt.min=rd,pt.max=od);var Lt=xe.angle_instanced_arrays,tr=xe.webgl_draw_buffers,At={dirty:!0,profile:jt.profile},ar={},Mt=[],rr={},Tt={};function Qt(Z){return Z.replace(".","_")}function Or(Z,ue,Pe){var Qe=Qt(Z);Mt.push(Z),ar[Qe]=At[Qe]=!!Pe,rr[Qe]=ue}function ro(Z,ue,Pe){var Qe=Qt(Z);Mt.push(Z),Array.isArray(Pe)?(At[Qe]=Pe.slice(),ar[Qe]=Pe.slice()):At[Qe]=ar[Qe]=Pe,Tt[Qe]=ue}Or($r,Np),Or(lo,Hy),ro(Xr,"blendColor",[0,0,0,0]),ro(Gr,"blendEquationSeparate",[Xy,Xy]),ro(uo,"blendFuncSeparate",[Wy,jy,Wy,jy]),Or(jr,om,!0),ro(zr,"depthFunc",Zy),ro(qi,"depthRange",[0,1]),ro(Si,"depthMask",!0),ro(Rn,Rn,[!0,!0,!0,!0]),Or(hn,z1),ro(Fi,"cullFace",gl),ro(wi,wi,td),ro(ra,ra,1),Or(Zn,nm),ro(Cs,"polygonOffset",[0,0]),Or(oa,am),Or(Ja,sm),ro(wa,"sampleCoverage",[1,!1]),Or(Ip,Qc),ro(ip,"stencilMask",-1),ro(Is,"stencilFunc",[iu,0,-1]),ro(Nu,"stencilOpSeparate",[up,Lp,Lp,Lp]),ro(ou,"stencilOpSeparate",[gl,Lp,Lp,Lp]),Or(ds,im),ro(Du,"scissor",[0,0,N.drawingBufferWidth,N.drawingBufferHeight]),ro(kn,kn,[0,0,N.drawingBufferWidth,N.drawingBufferHeight]);var Jt={gl:N,context:$t,strings:ie,next:ar,current:At,draw:Gt,elements:tt,buffer:gt,shader:Ut,attributes:Xt.state,vao:Xt,uniforms:Rt,framebuffer:Ot,extensions:xe,timer:Ct,isBufferArgs:X1},Dt={primTypes:bs,compareFuncs:El,blendFuncs:Lu,blendEquations:pt,stencilOps:Bp,glTypes:Bn,orientationType:Up};se.optional(function(){Jt.isArrayLike=Li}),tr&&(Dt.backBuffer=[gl],Dt.drawBuffer=Go(et.maxDrawbuffers,function(Z){return Z===0?[0]:Go(Z,function(ue){return um+ue})}));var vt=0;function Lr(){var Z=ct(),ue=Z.link,Pe=Z.global;Z.id=vt++,Z.batchId="0";var Qe=ue(Jt),qe=Z.shared={props:"a0"};Object.keys(Jt).forEach(function(Ce){qe[Ce]=Pe.def(Qe,".",Ce)}),se.optional(function(){Z.CHECK=ue(se),Z.commandStr=se.guessCommand(),Z.command=ue(Z.commandStr),Z.assert=function(Ce,ae,Me){Ce("if(!(",ae,"))",this.CHECK,".commandRaise(",ue(Me),",",this.command,");")},Dt.invalidBlendCombinations=id});var Se=Z.next={},Ne=Z.current={};Object.keys(Tt).forEach(function(Ce){Array.isArray(At[Ce])&&(Se[Ce]=Pe.def(qe.next,".",Ce),Ne[Ce]=Pe.def(qe.current,".",Ce))});var Ue=Z.constants={};Object.keys(Dt).forEach(function(Ce){Ue[Ce]=Pe.def(JSON.stringify(Dt[Ce]))}),Z.invoke=function(Ce,ae){switch(ae.type){case Cr:var Me=["this",qe.context,qe.props,Z.batchId];return Ce.def(ue(ae.data),".call(",Me.slice(0,Math.max(ae.data.length+1,4)),")");case Dr:return Ce.def(qe.props,ae.data);case Nr:return Ce.def(qe.context,ae.data);case Lo:return Ce.def("this",ae.data);case cr:return ae.data.append(Z,Ce),ae.data.ref}},Z.attribCache={};var me={};return Z.scopeAttrib=function(Ce){var ae=ie.id(Ce);if(ae in me)return me[ae];var Me=Xt.scope[ae];Me||(Me=Xt.scope[ae]=new je);var nt=me[ae]=ue(Me);return nt},Z}function xo(Z){var ue=Z.static,Pe=Z.dynamic,Qe;if(Bi in ue){var qe=!!ue[Bi];Qe=fn(function(Ne,Ue){return qe}),Qe.enable=qe}else if(Bi in Pe){var Se=Pe[Bi];Qe=ts(Se,function(Ne,Ue){return Ne.invoke(Ue,Se)})}return Qe}function sr(Z,ue){var Pe=Z.static,Qe=Z.dynamic;if(da in Pe){var qe=Pe[da];return qe?(qe=Ot.getFramebuffer(qe),se.command(qe,"invalid framebuffer object"),fn(function(Ne,Ue){var me=Ne.link(qe),Ce=Ne.shared;Ue.set(Ce.framebuffer,".next",me);var ae=Ce.context;return Ue.set(ae,"."+ap,me+".width"),Ue.set(ae,"."+hs,me+".height"),me})):fn(function(Ne,Ue){var me=Ne.shared;Ue.set(me.framebuffer,".next","null");var Ce=me.context;return Ue.set(Ce,"."+ap,Ce+"."+ya),Ue.set(Ce,"."+hs,Ce+"."+zy),"null"})}else if(da in Qe){var Se=Qe[da];return ts(Se,function(Ne,Ue){var me=Ne.invoke(Ue,Se),Ce=Ne.shared,ae=Ce.framebuffer,Me=Ue.def(ae,".getFramebuffer(",me,")");se.optional(function(){Ne.assert(Ue,"!"+me+"||"+Me,"invalid framebuffer object")}),Ue.set(ae,".next",Me);var nt=Ce.context;return Ue.set(nt,"."+ap,Me+"?"+Me+".width:"+nt+"."+ya),Ue.set(nt,"."+hs,Me+"?"+Me+".height:"+nt+"."+zy),Me})}else return null}function ho(Z,ue,Pe){var Qe=Z.static,qe=Z.dynamic;function Se(me){if(me in Qe){var Ce=Qe[me];se.commandType(Ce,"object","invalid "+me,Pe.commandStr);var ae=!0,Me=Ce.x|0,nt=Ce.y|0,yt,St;return"width"in Ce?(yt=Ce.width|0,se.command(yt>=0,"invalid "+me,Pe.commandStr)):ae=!1,"height"in Ce?(St=Ce.height|0,se.command(St>=0,"invalid "+me,Pe.commandStr)):ae=!1,new ha(!ae&&ue&&ue.thisDep,!ae&&ue&&ue.contextDep,!ae&&ue&&ue.propDep,function(Tr,fr){var vr=Tr.shared.context,Hr=yt;"width"in Ce||(Hr=fr.def(vr,".",ap,"-",Me));var Qr=St;return"height"in Ce||(Qr=fr.def(vr,".",hs,"-",nt)),[Me,nt,Hr,Qr]})}else if(me in qe){var xt=qe[me],It=ts(xt,function(Tr,fr){var vr=Tr.invoke(fr,xt);se.optional(function(){Tr.assert(fr,vr+"&&typeof "+vr+'==="object"',"invalid "+me)});var Hr=Tr.shared.context,Qr=fr.def(vr,".x|0"),Yo=fr.def(vr,".y|0"),vn=fr.def('"width" in ',vr,"?",vr,".width|0:","(",Hr,".",ap,"-",Qr,")"),au=fr.def('"height" in ',vr,"?",vr,".height|0:","(",Hr,".",hs,"-",Yo,")");return se.optional(function(){Tr.assert(fr,vn+">=0&&"+au+">=0","invalid "+me)}),[Qr,Yo,vn,au]});return ue&&(It.thisDep=It.thisDep||ue.thisDep,It.contextDep=It.contextDep||ue.contextDep,It.propDep=It.propDep||ue.propDep),It}else return ue?new ha(ue.thisDep,ue.contextDep,ue.propDep,function(Tr,fr){var vr=Tr.shared.context;return[0,0,fr.def(vr,".",ap),fr.def(vr,".",hs)]}):null}var Ne=Se(kn);if(Ne){var Ue=Ne;Ne=new ha(Ne.thisDep,Ne.contextDep,Ne.propDep,function(me,Ce){var ae=Ue.append(me,Ce),Me=me.shared.context;return Ce.set(Me,"."+ic,ae[2]),Ce.set(Me,"."+J0,ae[3]),ae})}return{viewport:Ne,scissor_box:Se(Du)}}function eo(Z,ue){var Pe=Z.static,Qe=typeof Pe[ys]=="string"&&typeof Pe[es]=="string";if(Qe){if(Object.keys(ue.dynamic).length>0)return null;var qe=ue.static,Se=Object.keys(qe);if(Se.length>0&&typeof qe[Se[0]]=="number"){for(var Ne=[],Ue=0;Ue=0,"invalid "+ae,ue.commandStr),fn(function(St,xt){return Me&&(St.OFFSET=nt),nt})}else if(ae in Qe){var yt=Qe[ae];return ts(yt,function(St,xt){var It=St.invoke(xt,yt);return Me&&(St.OFFSET=It,se.optional(function(){St.assert(xt,It+">=0","invalid "+ae)})),It})}else if(Me&&Se)return fn(function(St,xt){return St.OFFSET="0",0});return null}var me=Ue(Ms,!0);function Ce(){if(Ki in Pe){var ae=Pe[Ki]|0;return se.command(typeof ae=="number"&&ae>=0,"invalid vertex count",ue.commandStr),fn(function(){return ae})}else if(Ki in Qe){var Me=Qe[Ki];return ts(Me,function(St,xt){var It=St.invoke(xt,Me);return se.optional(function(){St.assert(xt,"typeof "+It+'==="number"&&'+It+">=0&&"+It+"===("+It+"|0)","invalid vertex count")}),It})}else if(Se)if(ia(Se)){if(Se)return me?new ha(me.thisDep,me.contextDep,me.propDep,function(St,xt){var It=xt.def(St.ELEMENTS,".vertCount-",St.OFFSET);return se.optional(function(){St.assert(xt,It+">=0","invalid vertex offset/element buffer too small")}),It}):fn(function(St,xt){return xt.def(St.ELEMENTS,".vertCount")});var nt=fn(function(){return-1});return se.optional(function(){nt.MISSING=!0}),nt}else{var yt=new ha(Se.thisDep||me.thisDep,Se.contextDep||me.contextDep,Se.propDep||me.propDep,function(St,xt){var It=St.ELEMENTS;return St.OFFSET?xt.def(It,"?",It,".vertCount-",St.OFFSET,":-1"):xt.def(It,"?",It,".vertCount:-1")});return se.optional(function(){yt.DYNAMIC=!0}),yt}return null}return{elements:Se,primitive:Ne(),count:Ce(),instances:Ue(oc,!1),offset:me}}function Qi(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Mt.forEach(function(Se){var Ne=Qt(Se);function Ue(me,Ce){if(Se in Pe){var ae=me(Pe[Se]);qe[Ne]=fn(function(){return ae})}else if(Se in Qe){var Me=Qe[Se];qe[Ne]=ts(Me,function(nt,yt){return Ce(nt,yt,nt.invoke(yt,Me))})}}switch(Se){case hn:case lo:case $r:case Ip:case jr:case ds:case Zn:case oa:case Ja:case Si:return Ue(function(me){return se.commandType(me,"boolean",Se,ue.commandStr),me},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="boolean"',"invalid flag "+Se,me.commandStr)}),ae});case zr:return Ue(function(me){return se.commandParameter(me,El,"invalid "+Se,ue.commandStr),El[me]},function(me,Ce,ae){var Me=me.constants.compareFuncs;return se.optional(function(){me.assert(Ce,ae+" in "+Me,"invalid "+Se+", must be one of "+Object.keys(El))}),Ce.def(Me,"[",ae,"]")});case qi:return Ue(function(me){return se.command(Li(me)&&me.length===2&&typeof me[0]=="number"&&typeof me[1]=="number"&&me[0]<=me[1],"depth range is 2d array",ue.commandStr),me},function(me,Ce,ae){se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===2&&typeof "+ae+'[0]==="number"&&typeof '+ae+'[1]==="number"&&'+ae+"[0]<="+ae+"[1]","depth range must be a 2d array")});var Me=Ce.def("+",ae,"[0]"),nt=Ce.def("+",ae,"[1]");return[Me,nt]});case uo:return Ue(function(me){se.commandType(me,"object","blend.func",ue.commandStr);var Ce="srcRGB"in me?me.srcRGB:me.src,ae="srcAlpha"in me?me.srcAlpha:me.src,Me="dstRGB"in me?me.dstRGB:me.dst,nt="dstAlpha"in me?me.dstAlpha:me.dst;return se.commandParameter(Ce,Lu,Ne+".srcRGB",ue.commandStr),se.commandParameter(ae,Lu,Ne+".srcAlpha",ue.commandStr),se.commandParameter(Me,Lu,Ne+".dstRGB",ue.commandStr),se.commandParameter(nt,Lu,Ne+".dstAlpha",ue.commandStr),se.command(id.indexOf(Ce+", "+Me)===-1,"unallowed blending combination (srcRGB, dstRGB) = ("+Ce+", "+Me+")",ue.commandStr),[Lu[Ce],Lu[Me],Lu[ae],Lu[nt]]},function(me,Ce,ae){var Me=me.constants.blendFuncs;se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid blend func, must be an object")});function nt(vr,Hr){var Qr=Ce.def('"',vr,Hr,'" in ',ae,"?",ae,".",vr,Hr,":",ae,".",vr);return se.optional(function(){me.assert(Ce,Qr+" in "+Me,"invalid "+Se+"."+vr+Hr+", must be one of "+Object.keys(Lu))}),Qr}var yt=nt("src","RGB"),St=nt("dst","RGB");se.optional(function(){var vr=me.constants.invalidBlendCombinations;me.assert(Ce,vr+".indexOf("+yt+'+", "+'+St+") === -1 ","unallowed blending combination for (srcRGB, dstRGB)")});var xt=Ce.def(Me,"[",yt,"]"),It=Ce.def(Me,"[",nt("src","Alpha"),"]"),Tr=Ce.def(Me,"[",St,"]"),fr=Ce.def(Me,"[",nt("dst","Alpha"),"]");return[xt,Tr,It,fr]});case Gr:return Ue(function(me){if(typeof me=="string")return se.commandParameter(me,pt,"invalid "+Se,ue.commandStr),[pt[me],pt[me]];if(typeof me=="object")return se.commandParameter(me.rgb,pt,Se+".rgb",ue.commandStr),se.commandParameter(me.alpha,pt,Se+".alpha",ue.commandStr),[pt[me.rgb],pt[me.alpha]];se.commandRaise("invalid blend.equation",ue.commandStr)},function(me,Ce,ae){var Me=me.constants.blendEquations,nt=Ce.def(),yt=Ce.def(),St=me.cond("typeof ",ae,'==="string"');return se.optional(function(){function xt(It,Tr,fr){me.assert(It,fr+" in "+Me,"invalid "+Tr+", must be one of "+Object.keys(pt))}xt(St.then,Se,ae),me.assert(St.else,ae+"&&typeof "+ae+'==="object"',"invalid "+Se),xt(St.else,Se+".rgb",ae+".rgb"),xt(St.else,Se+".alpha",ae+".alpha")}),St.then(nt,"=",yt,"=",Me,"[",ae,"];"),St.else(nt,"=",Me,"[",ae,".rgb];",yt,"=",Me,"[",ae,".alpha];"),Ce(St),[nt,yt]});case Xr:return Ue(function(me){return se.command(Li(me)&&me.length===4,"blend.color must be a 4d array",ue.commandStr),Go(4,function(Ce){return+me[Ce]})},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===4","blend.color must be a 4d array")}),Go(4,function(Me){return Ce.def("+",ae,"[",Me,"]")})});case ip:return Ue(function(me){return se.commandType(me,"number",Ne,ue.commandStr),me|0},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="number"',"invalid stencil.mask")}),Ce.def(ae,"|0")});case Is:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.cmp||"keep",ae=me.ref||0,Me="mask"in me?me.mask:-1;return se.commandParameter(Ce,El,Se+".cmp",ue.commandStr),se.commandType(ae,"number",Se+".ref",ue.commandStr),se.commandType(Me,"number",Se+".mask",ue.commandStr),[El[Ce],ae,Me]},function(me,Ce,ae){var Me=me.constants.compareFuncs;se.optional(function(){function xt(){me.assert(Ce,Array.prototype.join.call(arguments,""),"invalid stencil.func")}xt(ae+"&&typeof ",ae,'==="object"'),xt('!("cmp" in ',ae,")||(",ae,".cmp in ",Me,")")});var nt=Ce.def('"cmp" in ',ae,"?",Me,"[",ae,".cmp]",":",Lp),yt=Ce.def(ae,".ref|0"),St=Ce.def('"mask" in ',ae,"?",ae,".mask|0:-1");return[nt,yt,St]});case Nu:case ou:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.fail||"keep",ae=me.zfail||"keep",Me=me.zpass||"keep";return se.commandParameter(Ce,Bp,Se+".fail",ue.commandStr),se.commandParameter(ae,Bp,Se+".zfail",ue.commandStr),se.commandParameter(Me,Bp,Se+".zpass",ue.commandStr),[Se===ou?gl:up,Bp[Ce],Bp[ae],Bp[Me]]},function(me,Ce,ae){var Me=me.constants.stencilOps;se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid "+Se)});function nt(yt){return se.optional(function(){me.assert(Ce,'!("'+yt+'" in '+ae+")||("+ae+"."+yt+" in "+Me+")","invalid "+Se+"."+yt+", must be one of "+Object.keys(Bp))}),Ce.def('"',yt,'" in ',ae,"?",Me,"[",ae,".",yt,"]:",Lp)}return[Se===ou?gl:up,nt("fail"),nt("zfail"),nt("zpass")]});case Cs:return Ue(function(me){se.commandType(me,"object",Ne,ue.commandStr);var Ce=me.factor|0,ae=me.units|0;return se.commandType(Ce,"number",Ne+".factor",ue.commandStr),se.commandType(ae,"number",Ne+".units",ue.commandStr),[Ce,ae]},function(me,Ce,ae){se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid "+Se)});var Me=Ce.def(ae,".factor|0"),nt=Ce.def(ae,".units|0");return[Me,nt]});case Fi:return Ue(function(me){var Ce=0;return me==="front"?Ce=up:me==="back"&&(Ce=gl),se.command(!!Ce,Ne,ue.commandStr),Ce},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,ae+'==="front"||'+ae+'==="back"',"invalid cull.face")}),Ce.def(ae,'==="front"?',up,":",gl)});case ra:return Ue(function(me){return se.command(typeof me=="number"&&me>=et.lineWidthDims[0]&&me<=et.lineWidthDims[1],"invalid line width, must be a positive number between "+et.lineWidthDims[0]+" and "+et.lineWidthDims[1],ue.commandStr),me},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,"typeof "+ae+'==="number"&&'+ae+">="+et.lineWidthDims[0]+"&&"+ae+"<="+et.lineWidthDims[1],"invalid line width")}),ae});case wi:return Ue(function(me){return se.commandParameter(me,Up,Ne,ue.commandStr),Up[me]},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,ae+'==="cw"||'+ae+'==="ccw"',"invalid frontFace, must be one of cw,ccw")}),Ce.def(ae+'==="cw"?'+W1+":"+td)});case Rn:return Ue(function(me){return se.command(Li(me)&&me.length===4,"color.mask must be length 4 array",ue.commandStr),me.map(function(Ce){return!!Ce})},function(me,Ce,ae){return se.optional(function(){me.assert(Ce,me.shared.isArrayLike+"("+ae+")&&"+ae+".length===4","invalid color.mask")}),Go(4,function(Me){return"!!"+ae+"["+Me+"]"})});case wa:return Ue(function(me){se.command(typeof me=="object"&&me,Ne,ue.commandStr);var Ce="value"in me?me.value:1,ae=!!me.invert;return se.command(typeof Ce=="number"&&Ce>=0&&Ce<=1,"sample.coverage.value must be a number between 0 and 1",ue.commandStr),[Ce,ae]},function(me,Ce,ae){se.optional(function(){me.assert(Ce,ae+"&&typeof "+ae+'==="object"',"invalid sample.coverage")});var Me=Ce.def('"value" in ',ae,"?+",ae,".value:1"),nt=Ce.def("!!",ae,".invert");return[Me,nt]})}}),qe}function zn(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Object.keys(Pe).forEach(function(Se){var Ne=Pe[Se],Ue;if(typeof Ne=="number"||typeof Ne=="boolean")Ue=fn(function(){return Ne});else if(typeof Ne=="function"){var me=Ne._reglType;me==="texture2d"||me==="textureCube"?Ue=fn(function(Ce){return Ce.link(Ne)}):me==="framebuffer"||me==="framebufferCube"?(se.command(Ne.color.length>0,'missing color attachment for framebuffer sent to uniform "'+Se+'"',ue.commandStr),Ue=fn(function(Ce){return Ce.link(Ne.color[0])})):se.commandRaise('invalid data for uniform "'+Se+'"',ue.commandStr)}else Li(Ne)?Ue=fn(function(Ce){var ae=Ce.global.def("[",Go(Ne.length,function(Me){return se.command(typeof Ne[Me]=="number"||typeof Ne[Me]=="boolean","invalid uniform "+Se,Ce.commandStr),Ne[Me]}),"]");return ae}):se.commandRaise('invalid or missing data for uniform "'+Se+'"',ue.commandStr);Ue.value=Ne,qe[Se]=Ue}),Object.keys(Qe).forEach(function(Se){var Ne=Qe[Se];qe[Se]=ts(Ne,function(Ue,me){return Ue.invoke(me,Ne)})}),qe}function Ro(Z,ue){var Pe=Z.static,Qe=Z.dynamic,qe={};return Object.keys(Pe).forEach(function(Se){var Ne=Pe[Se],Ue=ie.id(Se),me=new je;if(X1(Ne))me.state=Bt,me.buffer=gt.getBuffer(gt.create(Ne,nc,!1,!0)),me.type=0;else{var Ce=gt.getBuffer(Ne);if(Ce)me.state=Bt,me.buffer=Ce,me.type=0;else if(se.command(typeof Ne=="object"&&Ne,"invalid data for attribute "+Se,ue.commandStr),"constant"in Ne){var ae=Ne.constant;me.buffer="null",me.state=nr,typeof ae=="number"?me.x=ae:(se.command(Li(ae)&&ae.length>0&&ae.length<=4,"invalid constant for attribute "+Se,ue.commandStr),Pt.forEach(function(Tr,fr){fr=0,'invalid offset for attribute "'+Se+'"',ue.commandStr);var nt=Ne.stride|0;se.command(nt>=0&&nt<256,'invalid stride for attribute "'+Se+'", must be integer betweeen [0, 255]',ue.commandStr);var yt=Ne.size|0;se.command(!("size"in Ne)||yt>0&&yt<=4,'invalid size for attribute "'+Se+'", must be 1,2,3,4',ue.commandStr);var St=!!Ne.normalized,xt=0;"type"in Ne&&(se.commandParameter(Ne.type,Bn,"invalid type for attribute "+Se,ue.commandStr),xt=Bn[Ne.type]);var It=Ne.divisor|0;"divisor"in Ne&&(se.command(It===0||Lt,'cannot specify divisor for attribute "'+Se+'", instancing not supported',ue.commandStr),se.command(It>=0,'invalid divisor for attribute "'+Se+'"',ue.commandStr)),se.optional(function(){var Tr=ue.commandStr,fr=["buffer","offset","divisor","normalized","type","size","stride"];Object.keys(Ne).forEach(function(vr){se.command(fr.indexOf(vr)>=0,'unknown parameter "'+vr+'" for attribute pointer "'+Se+'" (valid parameters are '+fr+")",Tr)})}),me.buffer=Ce,me.state=Bt,me.size=yt,me.normalized=St,me.type=xt||Ce.dtype,me.offset=Me,me.stride=nt,me.divisor=It}}qe[Se]=fn(function(Tr,fr){var vr=Tr.attribCache;if(Ue in vr)return vr[Ue];var Hr={isStream:!1};return Object.keys(me).forEach(function(Qr){Hr[Qr]=me[Qr]}),me.buffer&&(Hr.buffer=Tr.link(me.buffer),Hr.type=Hr.type||Hr.buffer+".dtype"),vr[Ue]=Hr,Hr})}),Object.keys(Qe).forEach(function(Se){var Ne=Qe[Se];function Ue(me,Ce){var ae=me.invoke(Ce,Ne),Me=me.shared,nt=me.constants,yt=Me.isBufferArgs,St=Me.buffer;se.optional(function(){me.assert(Ce,ae+"&&(typeof "+ae+'==="object"||typeof '+ae+'==="function")&&('+yt+"("+ae+")||"+St+".getBuffer("+ae+")||"+St+".getBuffer("+ae+".buffer)||"+yt+"("+ae+'.buffer)||("constant" in '+ae+"&&(typeof "+ae+'.constant==="number"||'+Me.isArrayLike+"("+ae+".constant))))",'invalid dynamic attribute "'+Se+'"')});var xt={isStream:Ce.def(!1)},It=new je;It.state=Bt,Object.keys(It).forEach(function(Hr){xt[Hr]=Ce.def(""+It[Hr])});var Tr=xt.buffer,fr=xt.type;Ce("if(",yt,"(",ae,")){",xt.isStream,"=true;",Tr,"=",St,".createStream(",nc,",",ae,");",fr,"=",Tr,".dtype;","}else{",Tr,"=",St,".getBuffer(",ae,");","if(",Tr,"){",fr,"=",Tr,".dtype;",'}else if("constant" in ',ae,"){",xt.state,"=",nr,";","if(typeof "+ae+'.constant === "number"){',xt[Pt[0]],"=",ae,".constant;",Pt.slice(1).map(function(Hr){return xt[Hr]}).join("="),"=0;","}else{",Pt.map(function(Hr,Qr){return xt[Hr]+"="+ae+".constant.length>"+Qr+"?"+ae+".constant["+Qr+"]:0;"}).join(""),"}}else{","if(",yt,"(",ae,".buffer)){",Tr,"=",St,".createStream(",nc,",",ae,".buffer);","}else{",Tr,"=",St,".getBuffer(",ae,".buffer);","}",fr,'="type" in ',ae,"?",nt.glTypes,"[",ae,".type]:",Tr,".dtype;",xt.normalized,"=!!",ae,".normalized;");function vr(Hr){Ce(xt[Hr],"=",ae,".",Hr,"|0;")}return vr("size"),vr("offset"),vr("stride"),vr("divisor"),Ce("}}"),Ce.exit("if(",xt.isStream,"){",St,".destroyStream(",Tr,");","}"),xt}qe[Se]=ts(Ne,Ue)}),qe}function Ji(Z,ue){var Pe=Z.static,Qe=Z.dynamic;if(Ou in Pe){var qe=Pe[Ou];return qe!==null&&Xt.getVAO(qe)===null&&(qe=Xt.createVAO(qe)),fn(function(Ne){return Ne.link(Xt.getVAO(qe))})}else if(Ou in Qe){var Se=Qe[Ou];return ts(Se,function(Ne,Ue){var me=Ne.invoke(Ue,Se);return Ue.def(Ne.shared.vao+".getVAO("+me+")")})}return null}function mi(Z){var ue=Z.static,Pe=Z.dynamic,Qe={};return Object.keys(ue).forEach(function(qe){var Se=ue[qe];Qe[qe]=fn(function(Ne,Ue){return typeof Se=="number"||typeof Se=="boolean"?""+Se:Ne.link(Se)})}),Object.keys(Pe).forEach(function(qe){var Se=Pe[qe];Qe[qe]=ts(Se,function(Ne,Ue){return Ne.invoke(Ue,Se)})}),Qe}function mn(Z,ue,Pe,Qe,qe){var Se=Z.static,Ne=Z.dynamic;se.optional(function(){var vr=[da,es,ys,Io,Cn,Ms,Ki,oc,Bi,Ou].concat(Mt);function Hr(Qr){Object.keys(Qr).forEach(function(Yo){se.command(vr.indexOf(Yo)>=0,'unknown parameter "'+Yo+'"',qe.commandStr)})}Hr(Se),Hr(Ne)});var Ue=eo(Z,ue),me=sr(Z),Ce=ho(Z,me,qe),ae=jo(Z,qe),Me=Qi(Z,qe),nt=Wr(Z,qe,Ue);function yt(vr){var Hr=Ce[vr];Hr&&(Me[vr]=Hr)}yt(kn),yt(Qt(Du));var St=Object.keys(Me).length>0,xt={framebuffer:me,draw:ae,shader:nt,state:Me,dirty:St,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(xt.profile=xo(Z),xt.uniforms=zn(Pe,qe),xt.drawVAO=xt.scopeVAO=Ji(Z),!xt.drawVAO&&nt.program&&!Ue&&xe.angle_instanced_arrays){var It=!0,Tr=nt.program.attributes.map(function(vr){var Hr=ue.static[vr];return It=It&&!!Hr,Hr});if(It&&Tr.length>0){var fr=Xt.getVAO(Xt.createVAO(Tr));xt.drawVAO=new ha(null,null,null,function(vr,Hr){return vr.link(fr)}),xt.useVAO=!0}}return Ue?xt.useVAO=!0:xt.attributes=Ro(ue,qe),xt.context=mi(Qe),xt}function _n(Z,ue,Pe){var Qe=Z.shared,qe=Qe.context,Se=Z.scope();Object.keys(Pe).forEach(function(Ne){ue.save(qe,"."+Ne);var Ue=Pe[Ne];Se(qe,".",Ne,"=",Ue.append(Z,ue),";")}),ue(Se)}function ki(Z,ue,Pe,Qe){var qe=Z.shared,Se=qe.gl,Ne=qe.framebuffer,Ue;tr&&(Ue=ue.def(qe.extensions,".webgl_draw_buffers"));var me=Z.constants,Ce=me.drawBuffer,ae=me.backBuffer,Me;Pe?Me=Pe.append(Z,ue):Me=ue.def(Ne,".next"),Qe||ue("if(",Me,"!==",Ne,".cur){"),ue("if(",Me,"){",Se,".bindFramebuffer(",vl,",",Me,".framebuffer);"),tr&&ue(Ue,".drawBuffersWEBGL(",Ce,"[",Me,".colorAttachments.length]);"),ue("}else{",Se,".bindFramebuffer(",vl,",null);"),tr&&ue(Ue,".drawBuffersWEBGL(",ae,");"),ue("}",Ne,".cur=",Me,";"),Qe||ue("}")}function In(Z,ue,Pe){var Qe=Z.shared,qe=Qe.gl,Se=Z.current,Ne=Z.next,Ue=Qe.current,me=Qe.next,Ce=Z.cond(Ue,".dirty");Mt.forEach(function(ae){var Me=Qt(ae);if(!(Me in Pe.state)){var nt,yt;if(Me in Ne){nt=Ne[Me],yt=Se[Me];var St=Go(At[Me].length,function(It){return Ce.def(nt,"[",It,"]")});Ce(Z.cond(St.map(function(It,Tr){return It+"!=="+yt+"["+Tr+"]"}).join("||")).then(qe,".",Tt[Me],"(",St,");",St.map(function(It,Tr){return yt+"["+Tr+"]="+It}).join(";"),";"))}else{nt=Ce.def(me,".",Me);var xt=Z.cond(nt,"!==",Ue,".",Me);Ce(xt),Me in rr?xt(Z.cond(nt).then(qe,".enable(",rr[Me],");").else(qe,".disable(",rr[Me],");"),Ue,".",Me,"=",nt,";"):xt(qe,".",Tt[Me],"(",nt,");",Ue,".",Me,"=",nt,";")}}}),Object.keys(Pe.state).length===0&&Ce(Ue,".dirty=false;"),ue(Ce)}function na(Z,ue,Pe,Qe){var qe=Z.shared,Se=Z.current,Ne=qe.current,Ue=qe.gl;Z1(Object.keys(Pe)).forEach(function(me){var Ce=Pe[me];if(!(Qe&&!Qe(Ce))){var ae=Ce.append(Z,ue);if(rr[me]){var Me=rr[me];ia(Ce)?ae?ue(Ue,".enable(",Me,");"):ue(Ue,".disable(",Me,");"):ue(Z.cond(ae).then(Ue,".enable(",Me,");").else(Ue,".disable(",Me,");")),ue(Ne,".",me,"=",ae,";")}else if(Li(ae)){var nt=Se[me];ue(Ue,".",Tt[me],"(",ae,");",ae.map(function(yt,St){return nt+"["+St+"]="+yt}).join(";"),";")}else ue(Ue,".",Tt[me],"(",ae,");",Ne,".",me,"=",ae,";")}})}function gn(Z,ue){Lt&&(Z.instancing=ue.def(Z.shared.extensions,".angle_instanced_arrays"))}function yo(Z,ue,Pe,Qe,qe){var Se=Z.shared,Ne=Z.stats,Ue=Se.current,me=Se.timer,Ce=Pe.profile;function ae(){return typeof performance>"u"?"Date.now()":"performance.now()"}var Me,nt;function yt(vr){Me=ue.def(),vr(Me,"=",ae(),";"),typeof qe=="string"?vr(Ne,".count+=",qe,";"):vr(Ne,".count++;"),Ct&&(Qe?(nt=ue.def(),vr(nt,"=",me,".getNumPendingQueries();")):vr(me,".beginQuery(",Ne,");"))}function St(vr){vr(Ne,".cpuTime+=",ae(),"-",Me,";"),Ct&&(Qe?vr(me,".pushScopeStats(",nt,",",me,".getNumPendingQueries(),",Ne,");"):vr(me,".endQuery();"))}function xt(vr){var Hr=ue.def(Ue,".profile");ue(Ue,".profile=",vr,";"),ue.exit(Ue,".profile=",Hr,";")}var It;if(Ce){if(ia(Ce)){Ce.enable?(yt(ue),St(ue.exit),xt("true")):xt("false");return}It=Ce.append(Z,ue),xt(It)}else It=ue.def(Ue,".profile");var Tr=Z.block();yt(Tr),ue("if(",It,"){",Tr,"}");var fr=Z.block();St(fr),ue.exit("if(",It,"){",fr,"}")}function Yn(Z,ue,Pe,Qe,qe){var Se=Z.shared;function Ne(me){switch(me){case V1:case G1:case hl:return 2;case ac:case Ui:case fl:return 3;case H1:case yl:case Op:return 4;default:return 1}}function Ue(me,Ce,ae){var Me=Se.gl,nt=ue.def(me,".location"),yt=ue.def(Se.attributes,"[",nt,"]"),St=ae.state,xt=ae.buffer,It=[ae.x,ae.y,ae.z,ae.w],Tr=["buffer","normalized","offset","stride"];function fr(){ue("if(!",yt,".buffer){",Me,".enableVertexAttribArray(",nt,");}");var Hr=ae.type,Qr;if(ae.size?Qr=ue.def(ae.size,"||",Ce):Qr=Ce,ue("if(",yt,".type!==",Hr,"||",yt,".size!==",Qr,"||",Tr.map(function(vn){return yt+"."+vn+"!=="+ae[vn]}).join("||"),"){",Me,".bindBuffer(",nc,",",xt,".buffer);",Me,".vertexAttribPointer(",[nt,Qr,Hr,ae.normalized,ae.stride,ae.offset],");",yt,".type=",Hr,";",yt,".size=",Qr,";",Tr.map(function(vn){return yt+"."+vn+"="+ae[vn]+";"}).join(""),"}"),Lt){var Yo=ae.divisor;ue("if(",yt,".divisor!==",Yo,"){",Z.instancing,".vertexAttribDivisorANGLE(",[nt,Yo],");",yt,".divisor=",Yo,";}")}}function vr(){ue("if(",yt,".buffer){",Me,".disableVertexAttribArray(",nt,");",yt,".buffer=null;","}if(",Pt.map(function(Hr,Qr){return yt+"."+Hr+"!=="+It[Qr]}).join("||"),"){",Me,".vertexAttrib4f(",nt,",",It,");",Pt.map(function(Hr,Qr){return yt+"."+Hr+"="+It[Qr]+";"}).join(""),"}")}St===Bt?fr():St===nr?vr():(ue("if(",St,"===",Bt,"){"),fr(),ue("}else{"),vr(),ue("}"))}Qe.forEach(function(me){var Ce=me.name,ae=Pe.attributes[Ce],Me;if(ae){if(!qe(ae))return;Me=ae.append(Z,ue)}else{if(!qe($y))return;var nt=Z.scopeAttrib(Ce);se.optional(function(){Z.assert(ue,nt+".state","missing attribute "+Ce)}),Me={},Object.keys(new je).forEach(function(yt){Me[yt]=ue.def(nt,".",yt)})}Ue(Z.link(me),Ne(me.info.type),Me)})}function Zo(Z,ue,Pe,Qe,qe){for(var Se=Z.shared,Ne=Se.gl,Ue,me=0;me1?ue(Go(Hr,function(au){return xt+"["+au+"]"})):ue(xt);ue(");")}}function Vr(Z,ue,Pe,Qe){var qe=Z.shared,Se=qe.gl,Ne=qe.draw,Ue=Qe.draw;function me(){var Qr=Ue.elements,Yo,vn=ue;return Qr?((Qr.contextDep&&Qe.contextDynamic||Qr.propDep)&&(vn=Pe),Yo=Qr.append(Z,vn)):Yo=vn.def(Ne,".",Io),Yo&&vn("if("+Yo+")"+Se+".bindBuffer("+Jf+","+Yo+".buffer.buffer);"),Yo}function Ce(){var Qr=Ue.count,Yo,vn=ue;return Qr?((Qr.contextDep&&Qe.contextDynamic||Qr.propDep)&&(vn=Pe),Yo=Qr.append(Z,vn),se.optional(function(){Qr.MISSING&&Z.assert(ue,"false","missing vertex count"),Qr.DYNAMIC&&Z.assert(vn,Yo+">=0","missing vertex count")})):(Yo=vn.def(Ne,".",Ki),se.optional(function(){Z.assert(vn,Yo+">=0","missing vertex count")})),Yo}var ae=me();function Me(Qr){var Yo=Ue[Qr];return Yo?Yo.contextDep&&Qe.contextDynamic||Yo.propDep?Yo.append(Z,Pe):Yo.append(Z,ue):ue.def(Ne,".",Qr)}var nt=Me(Cn),yt=Me(Ms),St=Ce();if(typeof St=="number"){if(St===0)return}else Pe("if(",St,"){"),Pe.exit("}");var xt,It;Lt&&(xt=Me(oc),It=Z.instancing);var Tr=ae+".type",fr=Ue.elements&&ia(Ue.elements);function vr(){function Qr(){Pe(It,".drawElementsInstancedANGLE(",[nt,St,Tr,yt+"<<(("+Tr+"-"+Ht+")>>1)",xt],");")}function Yo(){Pe(It,".drawArraysInstancedANGLE(",[nt,yt,St,xt],");")}ae?fr?Qr():(Pe("if(",ae,"){"),Qr(),Pe("}else{"),Yo(),Pe("}")):Yo()}function Hr(){function Qr(){Pe(Se+".drawElements("+[nt,St,Tr,yt+"<<(("+Tr+"-"+Ht+")>>1)"]+");")}function Yo(){Pe(Se+".drawArrays("+[nt,yt,St]+");")}ae?fr?Qr():(Pe("if(",ae,"){"),Qr(),Pe("}else{"),Yo(),Pe("}")):Yo()}Lt&&(typeof xt!="number"||xt>=0)?typeof xt=="string"?(Pe("if(",xt,">0){"),vr(),Pe("}else if(",xt,"<0){"),Hr(),Pe("}")):vr():Hr()}function To(Z,ue,Pe,Qe,qe){var Se=Lr(),Ne=Se.proc("body",qe);return se.optional(function(){Se.commandStr=ue.commandStr,Se.command=Se.link(ue.commandStr)}),Lt&&(Se.instancing=Ne.def(Se.shared.extensions,".angle_instanced_arrays")),Z(Se,Ne,Pe,Qe),Se.compile().body}function zo(Z,ue,Pe,Qe){gn(Z,ue),Pe.useVAO?Pe.drawVAO?ue(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,ue),");"):ue(Z.shared.vao,".setVAO(",Z.shared.vao,".targetVAO);"):(ue(Z.shared.vao,".setVAO(null);"),Yn(Z,ue,Pe,Qe.attributes,function(){return!0})),Zo(Z,ue,Pe,Qe.uniforms,function(){return!0}),Vr(Z,ue,ue,Pe)}function en(Z,ue){var Pe=Z.proc("draw",1);gn(Z,Pe),_n(Z,Pe,ue.context),ki(Z,Pe,ue.framebuffer),In(Z,Pe,ue),na(Z,Pe,ue.state),yo(Z,Pe,ue,!1,!0);var Qe=ue.shader.progVar.append(Z,Pe);if(Pe(Z.shared.gl,".useProgram(",Qe,".program);"),ue.shader.program)zo(Z,Pe,ue,ue.shader.program);else{Pe(Z.shared.vao,".setVAO(null);");var qe=Z.global.def("{}"),Se=Pe.def(Qe,".id"),Ne=Pe.def(qe,"[",Se,"]");Pe(Z.cond(Ne).then(Ne,".call(this,a0);").else(Ne,"=",qe,"[",Se,"]=",Z.link(function(Ue){return To(zo,Z,ue,Ue,1)}),"(",Qe,");",Ne,".call(this,a0);"))}Object.keys(ue.state).length>0&&Pe(Z.shared.current,".dirty=true;")}function nu(Z,ue,Pe,Qe){Z.batchId="a1",gn(Z,ue);function qe(){return!0}Yn(Z,ue,Pe,Qe.attributes,qe),Zo(Z,ue,Pe,Qe.uniforms,qe),Vr(Z,ue,ue,Pe)}function fe(Z,ue,Pe,Qe){gn(Z,ue);var qe=Pe.contextDep,Se=ue.def(),Ne="a0",Ue="a1",me=ue.def();Z.shared.props=me,Z.batchId=Se;var Ce=Z.scope(),ae=Z.scope();ue(Ce.entry,"for(",Se,"=0;",Se,"<",Ue,";++",Se,"){",me,"=",Ne,"[",Se,"];",ae,"}",Ce.exit);function Me(Tr){return Tr.contextDep&&qe||Tr.propDep}function nt(Tr){return!Me(Tr)}if(Pe.needsContext&&_n(Z,ae,Pe.context),Pe.needsFramebuffer&&ki(Z,ae,Pe.framebuffer),na(Z,ae,Pe.state,Me),Pe.profile&&Me(Pe.profile)&&yo(Z,ae,Pe,!1,!0),Qe)Pe.useVAO?Pe.drawVAO?Me(Pe.drawVAO)?ae(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,ae),");"):Ce(Z.shared.vao,".setVAO(",Pe.drawVAO.append(Z,Ce),");"):Ce(Z.shared.vao,".setVAO(",Z.shared.vao,".targetVAO);"):(Ce(Z.shared.vao,".setVAO(null);"),Yn(Z,Ce,Pe,Qe.attributes,nt),Yn(Z,ae,Pe,Qe.attributes,Me)),Zo(Z,Ce,Pe,Qe.uniforms,nt),Zo(Z,ae,Pe,Qe.uniforms,Me),Vr(Z,Ce,ae,Pe);else{var yt=Z.global.def("{}"),St=Pe.shader.progVar.append(Z,ae),xt=ae.def(St,".id"),It=ae.def(yt,"[",xt,"]");ae(Z.shared.gl,".useProgram(",St,".program);","if(!",It,"){",It,"=",yt,"[",xt,"]=",Z.link(function(Tr){return To(nu,Z,Pe,Tr,2)}),"(",St,");}",It,".call(this,a0[",Se,"],",Se,");")}}function ot(Z,ue){var Pe=Z.proc("batch",2);Z.batchId="0",gn(Z,Pe);var Qe=!1,qe=!0;Object.keys(ue.context).forEach(function(yt){Qe=Qe||ue.context[yt].propDep}),Qe||(_n(Z,Pe,ue.context),qe=!1);var Se=ue.framebuffer,Ne=!1;Se?(Se.propDep?Qe=Ne=!0:Se.contextDep&&Qe&&(Ne=!0),Ne||ki(Z,Pe,Se)):ki(Z,Pe,null),ue.state.viewport&&ue.state.viewport.propDep&&(Qe=!0);function Ue(yt){return yt.contextDep&&Qe||yt.propDep}In(Z,Pe,ue),na(Z,Pe,ue.state,function(yt){return!Ue(yt)}),(!ue.profile||!Ue(ue.profile))&&yo(Z,Pe,ue,!1,"a1"),ue.contextDep=Qe,ue.needsContext=qe,ue.needsFramebuffer=Ne;var me=ue.shader.progVar;if(me.contextDep&&Qe||me.propDep)fe(Z,Pe,ue,null);else{var Ce=me.append(Z,Pe);if(Pe(Z.shared.gl,".useProgram(",Ce,".program);"),ue.shader.program)fe(Z,Pe,ue,ue.shader.program);else{Pe(Z.shared.vao,".setVAO(null);");var ae=Z.global.def("{}"),Me=Pe.def(Ce,".id"),nt=Pe.def(ae,"[",Me,"]");Pe(Z.cond(nt).then(nt,".call(this,a0,a1);").else(nt,"=",ae,"[",Me,"]=",Z.link(function(yt){return To(fe,Z,ue,yt,2)}),"(",Ce,");",nt,".call(this,a0,a1);"))}}Object.keys(ue.state).length>0&&Pe(Z.shared.current,".dirty=true;")}function Ke(Z,ue){var Pe=Z.proc("scope",3);Z.batchId="a2";var Qe=Z.shared,qe=Qe.current;_n(Z,Pe,ue.context),ue.framebuffer&&ue.framebuffer.append(Z,Pe),Z1(Object.keys(ue.state)).forEach(function(Ne){var Ue=ue.state[Ne],me=Ue.append(Z,Pe);Li(me)?me.forEach(function(Ce,ae){Pe.set(Z.next[Ne],"["+ae+"]",Ce)}):Pe.set(Qe.next,"."+Ne,me)}),yo(Z,Pe,ue,!0,!0),[Io,Ms,Ki,oc,Cn].forEach(function(Ne){var Ue=ue.draw[Ne];Ue&&Pe.set(Qe.draw,"."+Ne,""+Ue.append(Z,Pe))}),Object.keys(ue.uniforms).forEach(function(Ne){Pe.set(Qe.uniforms,"["+ie.id(Ne)+"]",ue.uniforms[Ne].append(Z,Pe))}),Object.keys(ue.attributes).forEach(function(Ne){var Ue=ue.attributes[Ne].append(Z,Pe),me=Z.scopeAttrib(Ne);Object.keys(new je).forEach(function(Ce){Pe.set(me,"."+Ce,Ue[Ce])})}),ue.scopeVAO&&Pe.set(Qe.vao,".targetVAO",ue.scopeVAO.append(Z,Pe));function Se(Ne){var Ue=ue.shader[Ne];Ue&&Pe.set(Qe.shader,"."+Ne,Ue.append(Z,Pe))}Se(es),Se(ys),Object.keys(ue.state).length>0&&(Pe(qe,".dirty=true;"),Pe.exit(qe,".dirty=true;")),Pe("a1(",Z.shared.context,",a0,",Z.batchId,");")}function ur(Z){if(!(typeof Z!="object"||Li(Z))){for(var ue=Object.keys(Z),Pe=0;Pe=0;--Vr){var To=vt[Vr];To&&To(Ct,null,0)}xe.flush(),Xt&&Xt.update()}function Wr(){!ho&&vt.length>0&&(ho=us.next(eo))}function jo(){ho&&(us.cancel(eo),ho=null)}function Qi(Vr){Vr.preventDefault(),gt=!0,jo(),Lr.forEach(function(To){To()})}function zn(Vr){xe.getError(),gt=!1,tt.restore(),Mt.restore(),Lt.restore(),rr.restore(),Tt.restore(),Qt.restore(),tr.restore(),Xt&&Xt.restore(),Or.procs.refresh(),Wr(),xo.forEach(function(To){To()})}Dt&&(Dt.addEventListener(nd,Qi,!1),Dt.addEventListener(eh,zn,!1));function Ro(){vt.length=0,jo(),Dt&&(Dt.removeEventListener(nd,Qi),Dt.removeEventListener(eh,zn)),Mt.clear(),Qt.clear(),Tt.clear(),rr.clear(),ar.clear(),Lt.clear(),tr.clear(),Xt&&Xt.clear(),sr.forEach(function(Vr){Vr()})}function Ji(Vr){se(!!Vr,"invalid args to regl({...})"),se.type(Vr,"object","invalid args to regl({...})");function To(qe){var Se=i({},qe);delete Se.uniforms,delete Se.attributes,delete Se.context,delete Se.vao,"stencil"in Se&&Se.stencil.op&&(Se.stencil.opBack=Se.stencil.opFront=Se.stencil.op,delete Se.stencil.op);function Ne(Ue){if(Ue in Se){var me=Se[Ue];delete Se[Ue],Object.keys(me).forEach(function(Ce){Se[Ue+"."+Ce]=me[Ce]})}}return Ne("blend"),Ne("depth"),Ne("cull"),Ne("stencil"),Ne("polygonOffset"),Ne("scissor"),Ne("sample"),"vao"in qe&&(Se.vao=qe.vao),Se}function zo(qe){var Se={},Ne={};return Object.keys(qe).forEach(function(Ue){var me=qe[Ue];zi.isDynamic(me)?Ne[Ue]=zi.unbox(me,Ue):Se[Ue]=me}),{dynamic:Ne,static:Se}}var en=zo(Vr.context||{}),nu=zo(Vr.uniforms||{}),fe=zo(Vr.attributes||{}),ot=zo(To(Vr)),Ke={gpuTime:0,cpuTime:0,count:0},ur=Or.compile(ot,fe,nu,en,Ke),fo=ur.draw,ii=ur.batch,Z=ur.scope,ue=[];function Pe(qe){for(;ue.length0)return ii.call(this,Pe(qe|0),qe|0)}else if(Array.isArray(qe)){if(qe.length)return ii.call(this,qe,qe.length)}else return fo.call(this,qe)}return i(Qe,{stats:Ke})}var mi=Qt.setFBO=Ji({framebuffer:zi.define.call(null,ad,"framebuffer")});function mn(Vr,To){var zo=0;Or.procs.poll();var en=To.color;en&&(xe.clearColor(+en[0]||0,+en[1]||0,+en[2]||0,+en[3]||0),zo|=Qy),"depth"in To&&(xe.clearDepth(+To.depth),zo|=fa),"stencil"in To&&(xe.clearStencil(To.stencil|0),zo|=dm),se(!!zo,"called regl.clear with no buffer specified"),xe.clear(zo)}function _n(Vr){if(se(typeof Vr=="object"&&Vr,"regl.clear() takes an object as input"),"framebuffer"in Vr)if(Vr.framebuffer&&Vr.framebuffer_reglType==="framebufferCube")for(var To=0;To<6;++To)mi(i({framebuffer:Vr.framebuffer.faces[To]},Vr),mn);else mi(Vr,mn);else mn(null,Vr)}function ki(Vr){se.type(Vr,"function","regl.frame() callback must be a function"),vt.push(Vr);function To(){var zo=th(vt,Vr);se(zo>=0,"cannot cancel a frame twice");function en(){var nu=th(vt,en);vt[nu]=vt[vt.length-1],vt.length-=1,vt.length<=0&&jo()}vt[zo]=en}return Wr(),{cancel:To}}function In(){var Vr=Jt.viewport,To=Jt.scissor_box;Vr[0]=Vr[1]=To[0]=To[1]=0,Ct.viewportWidth=Ct.framebufferWidth=Ct.drawingBufferWidth=Vr[2]=To[2]=xe.drawingBufferWidth,Ct.viewportHeight=Ct.framebufferHeight=Ct.drawingBufferHeight=Vr[3]=To[3]=xe.drawingBufferHeight}function na(){Ct.tick+=1,Ct.time=yo(),In(),Or.procs.poll()}function gn(){In(),Or.procs.refresh(),Xt&&Xt.update()}function yo(){return(xa()-Ut)/1e3}gn();function Yn(Vr,To){se.type(To,"function","listener callback must be a function");var zo;switch(Vr){case"frame":return ki(To);case"lost":zo=Lr;break;case"restore":zo=xo;break;case"destroy":zo=sr;break;default:se.raise("invalid event, must be one of frame,lost,restore,destroy")}return zo.push(To),{cancel:function(){for(var en=0;en=0},read:ro,destroy:Ro,_gl:xe,_refresh:gn,poll:function(){na(),Xt&&Xt.update()},now:yo,stats:Ot});return ie.onDone(null,Zo),Zo}return rh})})(z7);var kB=z7.exports;const zB=_p(kB);var VB=class{constructor(e,t){const{buffer:r,offset:i,stride:s,normalized:u,size:n,divisor:y}=t;this.buffer=r,this.attribute={buffer:r.get(),offset:i||0,stride:s||0,normalized:u||!1,divisor:y||0},n&&(this.attribute.size=n)}get(){return this.attribute}updateBuffer(e){this.buffer.subData(e)}destroy(){this.buffer.destroy()}},HB={[L.POINTS]:"points",[L.LINES]:"lines",[L.LINE_LOOP]:"line loop",[L.LINE_STRIP]:"line strip",[L.TRIANGLES]:"triangles",[L.TRIANGLE_FAN]:"triangle fan",[L.TRIANGLE_STRIP]:"triangle strip"},V7={[L.STATIC_DRAW]:"static",[L.DYNAMIC_DRAW]:"dynamic",[L.STREAM_DRAW]:"stream"},W6={[L.BYTE]:"int8",[L.INT]:"int32",[L.UNSIGNED_BYTE]:"uint8",[L.UNSIGNED_SHORT]:"uint16",[L.UNSIGNED_INT]:"uint32",[L.FLOAT]:"float"},GB={[L.ALPHA]:"alpha",[L.LUMINANCE]:"luminance",[L.LUMINANCE_ALPHA]:"luminance alpha",[L.RGB]:"rgb",[L.RGBA]:"rgba",[L.RGBA4]:"rgba4",[L.RGB5_A1]:"rgb5 a1",[L.RGB565]:"rgb565",[L.DEPTH_COMPONENT]:"depth",[L.DEPTH_STENCIL]:"depth stencil"},jB={[L.DONT_CARE]:"dont care",[L.NICEST]:"nice",[L.FASTEST]:"fast"},Ng={[L.NEAREST]:"nearest",[L.LINEAR]:"linear",[L.LINEAR_MIPMAP_LINEAR]:"mipmap",[L.NEAREST_MIPMAP_LINEAR]:"nearest mipmap linear",[L.LINEAR_MIPMAP_NEAREST]:"linear mipmap nearest",[L.NEAREST_MIPMAP_NEAREST]:"nearest mipmap nearest"},Dg={[L.REPEAT]:"repeat",[L.CLAMP_TO_EDGE]:"clamp",[L.MIRRORED_REPEAT]:"mirror"},WB={[L.NONE]:"none",[L.BROWSER_DEFAULT_WEBGL]:"browser"},XB={[L.NEVER]:"never",[L.ALWAYS]:"always",[L.LESS]:"less",[L.LEQUAL]:"lequal",[L.GREATER]:"greater",[L.GEQUAL]:"gequal",[L.EQUAL]:"equal",[L.NOTEQUAL]:"notequal"},Og={[L.FUNC_ADD]:"add",[L.MIN_EXT]:"min",[L.MAX_EXT]:"max",[L.FUNC_SUBTRACT]:"subtract",[L.FUNC_REVERSE_SUBTRACT]:"reverse subtract"},Gh={[L.ZERO]:"zero",[L.ONE]:"one",[L.SRC_COLOR]:"src color",[L.ONE_MINUS_SRC_COLOR]:"one minus src color",[L.SRC_ALPHA]:"src alpha",[L.ONE_MINUS_SRC_ALPHA]:"one minus src alpha",[L.DST_COLOR]:"dst color",[L.ONE_MINUS_DST_COLOR]:"one minus dst color",[L.DST_ALPHA]:"dst alpha",[L.ONE_MINUS_DST_ALPHA]:"one minus dst alpha",[L.CONSTANT_COLOR]:"constant color",[L.ONE_MINUS_CONSTANT_COLOR]:"one minus constant color",[L.CONSTANT_ALPHA]:"constant alpha",[L.ONE_MINUS_CONSTANT_ALPHA]:"one minus constant alpha",[L.SRC_ALPHA_SATURATE]:"src alpha saturate"},ZB={[L.NEVER]:"never",[L.ALWAYS]:"always",[L.LESS]:"less",[L.LEQUAL]:"lequal",[L.GREATER]:"greater",[L.GEQUAL]:"gequal",[L.EQUAL]:"equal",[L.NOTEQUAL]:"notequal"},g0={[L.ZERO]:"zero",[L.KEEP]:"keep",[L.REPLACE]:"replace",[L.INVERT]:"invert",[L.INCR]:"increment",[L.DECR]:"decrement",[L.INCR_WRAP]:"increment wrap",[L.DECR_WRAP]:"decrement wrap"},YB={[L.FRONT]:"front",[L.BACK]:"back"},$B=class{constructor(e,t){this.isDestroyed=!1;const{data:r,usage:i,type:s}=t;this.buffer=e.buffer({data:r,usage:V7[i||L.STATIC_DRAW],type:W6[s||L.UNSIGNED_BYTE]})}get(){return this.buffer}destroy(){this.isDestroyed||this.buffer.destroy(),this.isDestroyed=!0}subData({data:e,offset:t}){this.buffer.subdata(e,t)}},qB=class{constructor(e,t){const{data:r,usage:i,type:s,count:u}=t;this.elements=e.elements({data:r,usage:V7[i||L.STATIC_DRAW],type:W6[s||L.UNSIGNED_BYTE],count:u})}get(){return this.elements}subData({data:e}){this.elements.subdata(e)}destroy(){}},KB=class{constructor(e,t){const{width:r,height:i,color:s,colors:u}=t,n={width:r,height:i};Array.isArray(u)&&(n.colors=u.map(y=>y.get())),s&&typeof s!="boolean"&&(n.color=s.get()),this.framebuffer=e.framebuffer(n)}get(){return this.framebuffer}destroy(){this.framebuffer.destroy()}resize({width:e,height:t}){this.framebuffer.resize(e,t)}},QB=Object.defineProperty,JB=Object.defineProperties,eU=Object.getOwnPropertyDescriptors,Lg=Object.getOwnPropertySymbols,tU=Object.prototype.hasOwnProperty,rU=Object.prototype.propertyIsEnumerable,Bg=(e,t,r)=>t in e?QB(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Zd=(e,t)=>{for(var r in t||(t={}))tU.call(t,r)&&Bg(e,r,t[r]);if(Lg)for(var r of Lg(t))rU.call(t,r)&&Bg(e,r,t[r]);return e},oU=(e,t)=>JB(e,eU(t)),{isPlainObject:iU,isTypedArray:nU}=Qn,aU=class{constructor(e,t){this.destroyed=!1,this.uniforms={},this.reGl=e;const{vs:r,fs:i,attributes:s,uniforms:u,primitive:n,count:y,elements:m,depth:g,cull:x,instances:b}=t,F={glslVersion:"#version 100",explicitBindingLocations:!1,separateSamplerTextures:!1,viewportOrigin:fp.LOWER_LEFT,clipSpaceNearZ:V0.NEGATIVE_ONE},R={};this.options=t,u&&(this.uniforms=this.extractUniforms(u),Object.keys(u).forEach(Q=>{R[Q]=e.prop(Q)}));const I={};Object.keys(s).forEach(Q=>{I[Q]=s[Q].get()});const U=M_(W0(F,"frag",i,null,!1)),V=M_(W0(F,"vert",r,null,!1)),J={attributes:I,frag:U,uniforms:R,vert:V,colorMask:e.prop("colorMask"),lineWidth:1,blend:{enable:e.prop("blend.enable"),func:e.prop("blend.func"),equation:e.prop("blend.equation"),color:e.prop("blend.color")},stencil:{enable:e.prop("stencil.enable"),mask:e.prop("stencil.mask"),func:e.prop("stencil.func"),opFront:e.prop("stencil.opFront"),opBack:e.prop("stencil.opBack")},primitive:HB[n===void 0?L.TRIANGLES:n]};b&&(J.instances=b),y?J.count=y:m&&(J.elements=m.get()),this.initDepthDrawParams({depth:g},J),this.initCullDrawParams({cull:x},J),this.drawCommand=e(J),this.drawParams=J}updateAttributesAndElements(e,t){const r={};Object.keys(e).forEach(i=>{r[i]=e[i].get()}),this.drawParams.attributes=r,this.drawParams.elements=t.get(),this.drawCommand=this.reGl(this.drawParams)}updateAttributes(e){const t={};Object.keys(e).forEach(r=>{t[r]=e[r].get()}),this.drawParams.attributes=t,this.drawCommand=this.reGl(this.drawParams)}addUniforms(e){this.uniforms=Zd(Zd({},this.uniforms),this.extractUniforms(e))}draw(e,t){if(this.drawParams.attributes&&Object.keys(this.drawParams.attributes).length===0)return;const r=Zd(Zd({},this.uniforms),this.extractUniforms(e.uniforms||{})),i={};Object.keys(r).forEach(s=>{const u=typeof r[s];u==="boolean"||u==="number"||Array.isArray(r[s])||r[s].BYTES_PER_ELEMENT?i[s]=r[s]:i[s]=r[s].get()}),i.blend=t?this.getBlendDrawParams({blend:{enable:!1}}):this.getBlendDrawParams(e),i.stencil=this.getStencilDrawParams(e),i.colorMask=this.getColorMaskDrawParams(e,t),this.drawCommand(i)}destroy(){var e,t;(t=(e=this.drawParams)==null?void 0:e.elements)==null||t.destroy(),this.options.attributes&&Object.values(this.options.attributes).forEach(r=>{r==null||r.destroy()}),this.destroyed=!0}initDepthDrawParams({depth:e},t){e&&(t.depth={enable:e.enable===void 0?!0:!!e.enable,mask:e.mask===void 0?!0:!!e.mask,func:XB[e.func||L.LESS],range:e.range||[0,1]})}getBlendDrawParams({blend:e}){const{enable:t,func:r,equation:i,color:s=[0,0,0,0]}=e||{};return{enable:!!t,func:{srcRGB:Gh[r&&r.srcRGB||L.SRC_ALPHA],srcAlpha:Gh[r&&r.srcAlpha||L.SRC_ALPHA],dstRGB:Gh[r&&r.dstRGB||L.ONE_MINUS_SRC_ALPHA],dstAlpha:Gh[r&&r.dstAlpha||L.ONE_MINUS_SRC_ALPHA]},equation:{rgb:Og[i&&i.rgb||L.FUNC_ADD],alpha:Og[i&&i.alpha||L.FUNC_ADD]},color:s}}getStencilDrawParams({stencil:e}){const{enable:t,mask:r=-1,func:i={cmp:L.ALWAYS,ref:0,mask:-1},opFront:s={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP},opBack:u={fail:L.KEEP,zfail:L.KEEP,zpass:L.KEEP}}=e||{};return{enable:!!t,mask:r,func:oU(Zd({},i),{cmp:ZB[i.cmp]}),opFront:{fail:g0[s.fail],zfail:g0[s.zfail],zpass:g0[s.zpass]},opBack:{fail:g0[u.fail],zfail:g0[u.zfail],zpass:g0[u.zpass]}}}getColorMaskDrawParams({stencil:e},t){return e!=null&&e.enable&&e.opFront&&!t?[!1,!1,!1,!1]:[!0,!0,!0,!0]}initCullDrawParams({cull:e},t){if(e){const{enable:r,face:i=L.BACK}=e;t.cull={enable:!!r,face:YB[i]}}}extractUniforms(e){const t={};return Object.keys(e).forEach(r=>{this.extractUniformsRecursively(r,e[r],t,"")}),t}extractUniformsRecursively(e,t,r,i){if(t===null||typeof t=="number"||typeof t=="boolean"||Array.isArray(t)&&typeof t[0]=="number"||nU(t)||t===""||"resize"in t){r[`${i&&i+"."}${e}`]=t;return}iU(t)&&Object.keys(t).forEach(s=>{this.extractUniformsRecursively(s,t[s],r,`${i&&i+"."}${e}`)}),Array.isArray(t)&&t.forEach((s,u)=>{Object.keys(s).forEach(n=>{this.extractUniformsRecursively(n,s[n],r,`${i&&i+"."}${e}[${u}]`)})})}},sU=class{constructor(e,t){this.isDestroy=!1;const{data:r,type:i=L.UNSIGNED_BYTE,width:s,height:u,flipY:n=!1,format:y=L.RGBA,mipmap:m=!1,wrapS:g=L.CLAMP_TO_EDGE,wrapT:x=L.CLAMP_TO_EDGE,aniso:b=0,alignment:F=1,premultiplyAlpha:R=!1,mag:I=L.NEAREST,min:U=L.NEAREST,colorSpace:V=L.BROWSER_DEFAULT_WEBGL,x:J=0,y:Q=0,copy:te=!1}=t;this.width=s,this.height=u;const ne={width:s,height:u,type:W6[i],format:GB[y],wrapS:Dg[g],wrapT:Dg[x],mag:Ng[I],min:Ng[U],alignment:F,flipY:n,colorSpace:WB[V],premultiplyAlpha:R,aniso:b,x:J,y:Q,copy:te};r&&(ne.data=r),typeof m=="number"?ne.mipmap=jB[m]:typeof m=="boolean"&&(ne.mipmap=m),this.texture=e.texture(ne)}get(){return this.texture}update(e={}){this.texture(e)}bind(){this.texture._texture.bind()}resize({width:e,height:t}){this.texture.resize(e,t),this.width=e,this.height=t}getSize(){return[this.width,this.height]}destroy(){var e;this.isDestroy||(e=this.texture)==null||e.destroy(),this.isDestroy=!0}},a2=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),uU=class{constructor(){this.uniformBuffers=[],this.queryVerdorInfo=()=>"WebGL1",this.createModel=e=>new aU(this.gl,e),this.createAttribute=e=>new VB(this.gl,e),this.createBuffer=e=>new $B(this.gl,e),this.createElements=e=>new qB(this.gl,e),this.createTexture2D=e=>new sU(this.gl,e),this.createFramebuffer=e=>new KB(this.gl,e),this.useFramebuffer=(e,t)=>{this.gl({framebuffer:e?e.get():null})(t)},this.useFramebufferAsync=(e,t)=>a2(this,null,function*(){this.gl({framebuffer:e?e.get():null})(t)}),this.clear=e=>{var t;const{color:r,depth:i,stencil:s,framebuffer:u=null}=e,n={color:r,depth:i,stencil:s};n.framebuffer=u===null?u:u.get(),(t=this.gl)==null||t.clear(n)},this.viewport=({x:e,y:t,width:r,height:i})=>{this.gl._gl.viewport(e,t,r,i),this.width=r,this.height=i,this.gl._refresh()},this.readPixels=e=>{const{framebuffer:t,x:r,y:i,width:s,height:u}=e,n={x:r,y:i,width:s,height:u};return t&&(n.framebuffer=t.get()),this.gl.read(n)},this.readPixelsAsync=e=>a2(this,null,function*(){return this.readPixels(e)}),this.getViewportSize=()=>({width:this.gl._gl.drawingBufferWidth,height:this.gl._gl.drawingBufferHeight}),this.getContainer=()=>{var e;return(e=this.canvas)==null?void 0:e.parentElement},this.getCanvas=()=>this.canvas,this.getGLContext=()=>this.gl._gl,this.destroy=()=>{var e,t,r;this.canvas=null,(r=(t=(e=this.gl)==null?void 0:e._gl)==null?void 0:t.getExtension("WEBGL_lose_context"))==null||r.loseContext(),this.gl.destroy(),this.gl=null}}init(e,t,r){return a2(this,null,function*(){this.canvas=e,r?this.gl=r:this.gl=yield new Promise((i,s)=>{zB({canvas:this.canvas,attributes:{alpha:!0,antialias:t.antialias,premultipliedAlpha:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,stencil:t.stencil},extensions:["OES_element_index_uint","OES_standard_derivatives","ANGLE_instanced_arrays"],optionalExtensions:["oes_texture_float_linear","OES_texture_float","EXT_texture_filter_anisotropic","EXT_blend_minmax","WEBGL_depth_texture","WEBGL_lose_context"],profile:!0,onDone:(u,n)=>{(u||!n)&&s(u),i(n)}})}),this.extensionObject={OES_texture_float:this.testExtension("OES_texture_float")}})}getPointSizeRange(){return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE)}testExtension(e){return!!this.getGLContext().getExtension(e)}setState(){this.gl({cull:{enable:!1,face:"back"},viewport:{x:0,y:0,height:this.width,width:this.height},blend:{enable:!0,equation:"add"},framebuffer:null}),this.gl._refresh()}setBaseState(){this.gl({cull:{enable:!1,face:"back"},viewport:{x:0,y:0,height:this.width,width:this.height},blend:{enable:!1,equation:"add"},framebuffer:null}),this.gl._refresh()}setCustomLayerDefaults(){const e=this.getGLContext();e.disable(e.CULL_FACE)}setDirty(e){this.isDirty=e}getDirty(){return this.isDirty}beginFrame(){}endFrame(){}},s2=["selectstart","selecting","selectend"],pU=class extends du.EventEmitter{constructor(e,t={}){super(),this.isEnable=!1,this.onDragStart=r=>{this.box.style.display="block",this.startEvent=this.endEvent=r,this.syncBoxBound(),this.emit("selectstart",this.getLngLatBox(),this.startEvent,this.endEvent)},this.onDragging=r=>{this.endEvent=r,this.syncBoxBound(),this.emit("selecting",this.getLngLatBox(),this.startEvent,this.endEvent)},this.onDragEnd=r=>{this.endEvent=r,this.box.style.display="none",this.emit("selectend",this.getLngLatBox(),this.startEvent,this.endEvent)},this.scene=e,this.options=t}get container(){return this.scene.getMapService().getMarkerContainer()}enable(){if(this.isEnable)return;const{className:e}=this.options;if(this.scene.setMapStatus({dragEnable:!1}),this.container.style.cursor="crosshair",!this.box){const t=lu("div",void 0,this.container);t.classList.add("l7-select-box"),e&&t.classList.add(e),t.style.display="none",this.box=t}this.scene.on("dragstart",this.onDragStart),this.scene.on("dragging",this.onDragging),this.scene.on("dragend",this.onDragEnd),this.isEnable=!0}disable(){this.isEnable&&(this.scene.setMapStatus({dragEnable:!0}),this.container.style.cursor="auto",this.scene.off("dragstart",this.onDragStart),this.scene.off("dragging",this.onDragging),this.scene.off("dragend",this.onDragEnd),this.isEnable=!1)}syncBoxBound(){const{x:e,y:t}=this.startEvent,{x:r,y:i}=this.endEvent,s=Math.min(e,r),u=Math.min(t,i),n=Math.abs(e-r),y=Math.abs(t-i);this.box.style.top=`${u}px`,this.box.style.left=`${s}px`,this.box.style.width=`${n}px`,this.box.style.height=`${y}px`}getLngLatBox(){const{lngLat:{lng:e,lat:t}}=this.startEvent,{lngLat:{lng:r,lat:i}}=this.endEvent;return zE([[e,t],[r,i]])}},lU=Object.defineProperty,cU=Object.defineProperties,dU=Object.getOwnPropertyDescriptors,Ug=Object.getOwnPropertySymbols,yU=Object.prototype.hasOwnProperty,hU=Object.prototype.propertyIsEnumerable,kg=(e,t,r)=>t in e?lU(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,fU=(e,t)=>{for(var r in t||(t={}))yU.call(t,r)&&kg(e,r,t[r]);if(Ug)for(var r of Ug(t))hU.call(t,r)&&kg(e,r,t[r]);return e},mU=(e,t)=>cU(e,dU(t)),Yd=(e,t,r)=>new Promise((i,s)=>{var u=m=>{try{y(r.next(m))}catch(g){s(g)}},n=m=>{try{y(r.throw(m))}catch(g){s(g)}},y=m=>m.done?i(m.value):Promise.resolve(m.value).then(u,n);y((r=r.apply(e,t)).next())}),_U=class{constructor(e){const{id:t,map:r,renderer:i="device"}=e,s=hT();this.container=s,r.setContainer(s,t),i==="regl"?s.rendererService=new uU:s.rendererService=new UB,this.sceneService=s.sceneService,this.mapService=s.mapService,this.iconService=s.iconService,this.fontService=s.fontService,this.controlService=s.controlService,this.layerService=s.layerService,this.debugService=s.debugService,this.debugService.setEnable(e.debug),this.markerService=s.markerService,this.interactionService=s.interactionService,this.popupService=s.popupService,this.boxSelect=new pU(this,{}),this.initComponent(t),this.sceneService.init(e),this.initControl()}get map(){return this.mapService.map}get loaded(){return this.sceneService.loaded}getServiceContainer(){return this.container}getSize(){return this.mapService.getSize()}getMinZoom(){return this.mapService.getMinZoom()}getMaxZoom(){return this.mapService.getMaxZoom()}getType(){return this.mapService.getType()}getMapContainer(){return this.mapService.getMapContainer()}getMapCanvasContainer(){return this.mapService.getMapCanvasContainer()}getMapService(){return this.mapService}getDebugService(){return this.debugService}exportPng(e){return Yd(this,null,function*(){return this.sceneService.exportPng(e)})}exportMap(e){return Yd(this,null,function*(){return this.sceneService.exportPng(e)})}registerRenderService(e){this.sceneService.loaded?new e(this).init():this.on("loaded",()=>{new e(this).init()})}setBgColor(e){this.mapService.setBgColor(e)}addLayer(e){this.loaded?this.preAddLayer(e):this.once("loaded",()=>{this.preAddLayer(e)})}preAddLayer(e){const t=ly(this.container);if(e.setContainer(t),this.sceneService.addLayer(e),e.inited){this.initTileLayer(e);const r=this.initMask(e);this.addMask(r,e.id)}else e.on("inited",()=>{this.initTileLayer(e);const r=this.initMask(e);this.addMask(r,e.id)})}initMask(e){const{mask:t,maskfence:r,maskColor:i="#000",maskOpacity:s=0}=e.getLayerConfig();return!t||!r?void 0:new y7().source(r).shape("fill").style({color:i,opacity:s})}addMask(e,t){if(!e)return;const r=this.getLayer(t);if(r){const i=ly(this.container);e.setContainer(i),r.addMaskLayer(e),this.sceneService.addMask(e)}else console.warn("parent layer not find!")}getPickedLayer(){return this.layerService.pickedLayerId}getLayers(){return this.layerService.getLayers()}getLayer(e){return this.layerService.getLayer(e)}getLayerByName(e){return this.layerService.getLayerByName(e)}removeLayer(e,t){return Yd(this,null,function*(){yield this.layerService.remove(e,t)})}removeAllLayer(){return Yd(this,null,function*(){yield this.layerService.removeAllLayers()})}render(){this.sceneService.render()}setEnableRender(e){this.layerService.setEnableRender(e)}addIconFont(e,t){this.fontService.addIconFont(e,t)}addIconFonts(e){e.forEach(([t,r])=>{this.fontService.addIconFont(t,r)})}addFontFace(e,t){this.fontService.once("fontloaded",r=>{this.emit("fontloaded",r)}),this.fontService.addFontFace(e,t)}addImage(e,t){return Yd(this,null,function*(){yield this.iconService.addImage(e,t)})}hasImage(e){return this.iconService.hasImage(e)}removeImage(e){this.iconService.removeImage(e)}addIconFontGlyphs(e,t){this.fontService.addIconGlyphs(t)}addControl(e){this.controlService.addControl(e,this.container)}removeControl(e){this.controlService.removeControl(e)}getControlByName(e){return this.controlService.getControlByName(e)}addMarker(e){this.markerService.addMarker(e)}addMarkerLayer(e){this.markerService.addMarkerLayer(e)}removeMarkerLayer(e){this.markerService.removeMarkerLayer(e)}removeAllMarkers(){this.markerService.removeAllMarkers()}removeAllMakers(){console.warn("removeAllMakers 已废弃,请使用 removeAllMarkers"),this.markerService.removeAllMarkers()}addPopup(e){this.popupService.addPopup(e)}removePopup(e){this.popupService.removePopup(e)}on(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.on(e,t):Sh.includes(e)?this.sceneService.on(e,t):this.mapService.on(e,t)}once(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.once(e,t):Sh.includes(e)?this.sceneService.once(e,t):this.mapService.once(e,t)}emit(e,t){Sh.indexOf(e)===-1?this.mapService.on(e,t):this.sceneService.emit(e,t)}off(e,t){var r;s2.includes(e)?(r=this.boxSelect)==null||r.off(e,t):Sh.includes(e)?this.sceneService.off(e,t):this.mapService.off(e,t)}getZoom(){return this.mapService.getZoom()}getCenter(e){return this.mapService.getCenter(e)}setCenter(e,t){return this.mapService.setCenter(e,t)}getPitch(){return this.mapService.getPitch()}setPitch(e){return this.mapService.setPitch(e)}getRotation(){return this.mapService.getRotation()}getBounds(){return this.mapService.getBounds()}setRotation(e){this.mapService.setRotation(e)}zoomIn(){this.mapService.zoomIn()}zoomOut(){this.mapService.zoomOut()}panTo(e){this.mapService.panTo(e)}panBy(e,t){this.mapService.panBy(e,t)}getContainer(){return this.mapService.getContainer()}setZoom(e){this.mapService.setZoom(e)}fitBounds(e,t){const{fitBoundsOptions:r,animate:i}=this.sceneService.getSceneConfig();this.mapService.fitBounds(e,t||mU(fU({},r),{animate:i}))}setZoomAndCenter(e,t){this.mapService.setZoomAndCenter(e,t)}setMapStyle(e){this.mapService.setMapStyle(e)}setMapStatus(e){this.mapService.setMapStatus(e)}pixelToLngLat(e){return this.mapService.pixelToLngLat(e)}lngLatToPixel(e){return this.mapService.lngLatToPixel(e)}containerToLngLat(e){return this.mapService.containerToLngLat(e)}lngLatToContainer(e){return this.mapService.lngLatToContainer(e)}destroy(){this.sceneService.destroy()}registerPostProcessingPass(e){this.container.postProcessingPass.name=new e}enableShaderPick(){this.layerService.enableShaderPick()}diasbleShaderPick(){this.layerService.disableShaderPick()}enableBoxSelect(e=!0){this.boxSelect.enable(),e&&this.boxSelect.once("selectend",()=>{this.disableBoxSelect()})}disableBoxSelect(){this.boxSelect.disable()}static addProtocol(e,t){jh.REGISTERED_PROTOCOLS[e]=t}static removeProtocol(e){delete jh.REGISTERED_PROTOCOLS[e]}getProtocol(e){return jh.REGISTERED_PROTOCOLS[e]}startAnimate(){this.layerService.startAnimate()}stopAnimate(){this.layerService.stopAnimate()}getPointSizeRange(){return this.sceneService.getPointSizeRange()}initComponent(e){this.controlService.init({container:PE(e)},this.container),this.markerService.init(this.container),this.popupService.init(this.container)}initControl(){const{logoVisible:e,logoPosition:t}=this.sceneService.getSceneConfig();e&&this.addControl(new uw({position:t}))}initTileLayer(e){e.getSource().isTile&&(e.tileLayer=new BD(e))}};const gU={type:"FeatureCollection",crs:{type:"name",properties:{name:"urn:ogc:def:crs:OGC:1.3:CRS84"}},features:[{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,83.29769733567451]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,83.03042231213165]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,82.75254360190782]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,82.46364732289885]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,82.1633042838823]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.85106952420345]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,81.52648185344404]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,81.18906339325112]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,80.83831912383923]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,80.47373643805125]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,80.09478470628163]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,79.70091485602755]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,79.29155897034926]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,78.8661299100901]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,78.42402096533623]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,77.96460554228973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,77.48723689249104]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,76.99124789216098]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,76.47595088034483]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,75.94063756553139]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,75.38457901149432]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,74.80702571426096]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,74.20720778335601]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,73.5843352417925]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,72.93759846068625]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,72.26616874584563]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,71.56919909522618]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,70.8458251477235]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,70.09516634538973]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-27.19657017226435,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-24.950781961965546,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,69.3163273327709]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-31.688146592861955,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-29.442358382563153,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,68.50839961864305]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-33.93393480316076,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,67.67046352692999]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,66.80159046496628]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-179.910168472583,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-177.6643802622842,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-170.92701563138777,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-166.43543921079018,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,65.90084553846057]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-175.4185920519854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-173.17280384168657,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-166.43543921079018,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-22.70499375166674,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[179.41594517522557,64.96729054344385]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-20.45920554136794,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-18.213417331069138,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,63.99998736606511]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,62.998001821223895]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,61.960407960584604]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-148.46913352839977,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-146.22334531810094,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-143.97755710780214,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-141.73176889750331,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[165.94121591343273,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,60.88629287937398]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-161.94386279019255,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-150.71492173869854,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-139.48598068720452,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-134.99440426660692,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,59.774762049371134]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-155.20649815929616,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-137.24019247690575,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[163.69542770313396,58.624945202502865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-157.45228636959496,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-152.96070994899736,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,57.43600278528517]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-159.69807457989376,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,56.20713299883136]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-164.18965100049138,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-130.5028278460093,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,54.9375794321014]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-132.74861605630812,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-128.2570396357105,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,53.62663928732969]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[156.95806307223754,52.27367218598878]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,50.87810953110461]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-126.01125142541171,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[154.7122748619387,49.43946438716008]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,47.957341822195296]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,46.431449638103075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,44.861609394697915]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,43.24776761119706]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,41.59000700572742]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-123.7654632151129,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,39.88855760995075]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,38.14380757263771]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-121.5196750048141,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,36.356313443941325]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-119.27388679451529,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,34.52680971230379]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-117.02809858421651,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,32.65621734958849]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-114.7823103739177,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,30.745651108469865]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-110.29073395332009,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,28.796425310677574]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-112.53652216361888,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[60.389170029388985,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[62.63495823968778,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[64.88074644998659,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,26.81005786667896]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-108.04494574302129,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[67.1265346602854,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[69.3723228705842,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,24.78827227796699]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-105.79915753272248,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-81.09548721943564,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[71.618111080883,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[87.33862855297463,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[89.58441676327342,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[91.83020497357224,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,22.73299739323544]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[58.14338181909017,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[85.09284034267581,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[94.07599318387103,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,20.64636471996892]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-103.55336932242368,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-101.30758111212486,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-99.06179290182607,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[53.65180539849257,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[55.89759360879138,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[82.84705213237703,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[96.32178139416983,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,18.530703133508972]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-96.81600469152727,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-94.57021648122846,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-92.32442827092966,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[51.406017188193765,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[73.8638992911818,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,16.38853087610306]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-90.07864006063085,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-87.83285185033205,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,14.222544797837983]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-85.58706364003325,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-15.967629120770331,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-13.721840910471528,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[76.10968750148061,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[107.55072244566385,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,12.035606858112935]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-83.34127542973445,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[78.3554757117794,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,9.830727978242566]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-11.476052700172726,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-.247111648678712,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[1.998676561620092,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[4.244464771918896,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[80.60126392207822,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,7.611049410181301]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-9.230264489873921,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-6.984476279575122,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-4.738688069276319,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-2.492899858977515,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[6.490252982217699,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[8.736041192516502,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,5.379821860119629]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[98.56756960446864,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,3.140382675475547]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[42.42286434699856,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[109.79651065596265,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,.896131466226635]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[100.81335781476744,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-1.349495416557252]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[10.981829402815306,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[103.05914602506625,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[105.30493423536505,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-3.593051083437981]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-5.831104505676867]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-78.84969900913683,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-36.17972301345956,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[112.04229886626146,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[159.20385128253633,-8.060266618955612]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[161.44963949283516,-10.277215650248287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-76.60391079883803,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-38.42551122375836,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-12.478721212934401]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[40.17707613669975,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-14.661666756789273]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[37.93128792640095,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[49.16022897789497,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-16.823070013760287]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-40.67129943405717,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[13.22761761311411,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[35.68549971610214,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-18.960101144608686]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-42.917087644355966,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-21.0700983623477]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-47.40866406495358,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-45.16287585465477,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[46.91444076759616,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-23.15058088256119]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[33.43971150580334,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[44.66865255729736,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-25.199259124830366]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[15.473405823412913,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[114.28808707656027,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-27.214042160587546]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-49.65445227525238,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[17.719194033711716,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[31.193923295504536,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-29.193042468141503]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-51.90024048555119,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[28.948135085205735,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[125.51702812805428,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[127.76281633835309,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[130.0086045486519,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[132.2543927589507,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[152.46648665163994,-31.134578113313832]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-56.39181690614879,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-54.146028695849985,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[19.96498224401052,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[22.210770454309323,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[24.456558664608128,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[26.70234687490693,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[118.77966349715788,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[121.02545170745668,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[123.27123991775547,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[134.5001809692495,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[136.7459691795483,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-33.037172522628715]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[116.53387528685907,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[138.9917573898471,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[150.2206984413411,-34.89955205446631]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[141.23754560014592,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-36.72064160176216]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-60.88339332674639,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-58.6376051164476,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[143.4833338104447,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[174.92436875462795,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[177.17015696492675,-38.49955847796458]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-63.129181537045206,-40.23560484672428]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[145.72912202074352,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[147.97491023104232,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,-41.92825895617992]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-65.374969747344,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[172.67858054432918,-43.57716543192309]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[168.18700412373155,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[170.43279233403035,-45.18212487009332]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-46.74308295490721]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-48.260119304558145]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-49.73343622702246]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-49.73343622702246]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-74.35812258853922,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-72.11233437824042,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-51.16334754392393]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-53.89470068992965]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-67.62075795764281,-53.89470068992965]}},{type:"Feature",properties:{},geometry:{type:"Point",coordinates:[-69.8665461679416,-55.19723063288941]}}]},vU={type:"FeatureCollection",features:[{type:"Feature",id:161792,geometry:{type:"Point",coordinates:[103.893473101,36.51870146]},properties:{ADM0_NAME:"China",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:83005,cum_clin:null,cum_susp:null,cum_death:3340,EPIWeek:15,EPIYear:2020,Comment:null,ID:161792,GUID:"af40da08-eeb3-40e9-bd59-41c06c17191f",CENTER_LON:103.8934731,CENTER_LAT:36.51870146,ADM0_VIZ_NAME:"China",Short_Name_ZH:"中国",Short_Name_FR:"Chine",Short_Name_ES:"China",Short_Name_RU:"Китай",Short_Name_AR:"الصين"}},{type:"Feature",id:161793,geometry:{type:"Point",coordinates:[127.829343915,36.367702276]},properties:{ADM0_NAME:"Republic of Korea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10284,cum_clin:null,cum_susp:null,cum_death:186,EPIWeek:15,EPIYear:2020,Comment:null,ID:161793,GUID:"8d331366-4bc7-4313-8e11-dea0054e7ad4",CENTER_LON:127.82934392,CENTER_LAT:36.36770228,ADM0_VIZ_NAME:"Republic of Korea",Short_Name_ZH:"大韩民国",Short_Name_FR:"République de Corée",Short_Name_ES:"República de Corea",Short_Name_RU:"Республика Корея",Short_Name_AR:"جمهورية كوريا"}},{type:"Feature",id:161794,geometry:{type:"Point",coordinates:[134.490975946,-25.733260232]},properties:{ADM0_NAME:"Australia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5795,cum_clin:null,cum_susp:null,cum_death:39,EPIWeek:15,EPIYear:2020,Comment:null,ID:161794,GUID:"bb79d7c7-29b4-45f2-93e6-2df1acc709ad",CENTER_LON:134.49097595,CENTER_LAT:-25.73326023,ADM0_VIZ_NAME:"Australia",Short_Name_ZH:"澳大利亚",Short_Name_FR:"Australie",Short_Name_ES:"Australia",Short_Name_RU:"Австралия",Short_Name_AR:"أستراليا"}},{type:"Feature",id:161795,geometry:{type:"Point",coordinates:[113.252212273,2.36614385200005]},properties:{ADM0_NAME:"Malaysia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3662,cum_clin:null,cum_susp:null,cum_death:61,EPIWeek:15,EPIYear:2020,Comment:null,ID:161795,GUID:"305e146d-efa9-43e5-a000-688bef88a933",CENTER_LON:109.7115743,CENTER_LAT:3.79382045,ADM0_VIZ_NAME:"Malaysia",Short_Name_ZH:"马来西亚",Short_Name_FR:"Malaisie",Short_Name_ES:"Malasia",Short_Name_RU:"Малайзия",Short_Name_AR:"ماليزيا"}},{type:"Feature",id:161796,geometry:{type:"Point",coordinates:[138.756881,36.466956]},properties:{ADM0_NAME:"Japan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3654,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161796,GUID:"9cba65ba-ddfd-418e-8501-21b13e24e90e",CENTER_LON:137.97387026,CENTER_LAT:37.53982621,ADM0_VIZ_NAME:"Japan",Short_Name_ZH:"日本",Short_Name_FR:"Japon",Short_Name_ES:"Japón",Short_Name_RU:"Япония",Short_Name_AR:"اليابان"}},{type:"Feature",id:161797,geometry:{type:"Point",coordinates:[122.873607427,11.747402026]},properties:{ADM0_NAME:"Philippines",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3246,cum_clin:null,cum_susp:null,cum_death:152,EPIWeek:15,EPIYear:2020,Comment:null,ID:161797,GUID:"73f7c9bf-ebf4-48dd-b4a8-ce2005c7b2fd",CENTER_LON:122.87360743,CENTER_LAT:11.74740203,ADM0_VIZ_NAME:"Philippines",Short_Name_ZH:"菲律宾",Short_Name_FR:"Philippines",Short_Name_ES:"Filipinas",Short_Name_RU:"Филиппины",Short_Name_AR:"الفلبين"}},{type:"Feature",id:161798,geometry:{type:"Point",coordinates:[103.807653591,1.35118038100006]},properties:{ADM0_NAME:"Singapore",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1309,cum_clin:null,cum_susp:null,cum_death:6,EPIWeek:15,EPIYear:2020,Comment:null,ID:161798,GUID:"f701475b-b12e-4647-8747-5f066797615a",CENTER_LON:103.80765359,CENTER_LAT:1.35118038,ADM0_VIZ_NAME:"Singapore",Short_Name_ZH:"新加坡",Short_Name_FR:"Singapour",Short_Name_ES:"Singapur",Short_Name_RU:"Сингапур",Short_Name_AR:"سنغافورة"}},{type:"Feature",id:161799,geometry:{type:"Point",coordinates:[171.603971284,-41.837106886]},properties:{ADM0_NAME:"New Zealand",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:911,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161799,GUID:"4b1c43e1-ae35-4d9a-9cc7-86b92722c762",CENTER_LON:171.60397128,CENTER_LAT:-41.83710689,ADM0_VIZ_NAME:"New Zealand",Short_Name_ZH:"新西兰",Short_Name_FR:"Nouvelle-Zélande",Short_Name_ES:"Nueva Zelandia",Short_Name_RU:"Новая Зеландия",Short_Name_AR:"نيوزيلندا"}},{type:"Feature",id:161800,geometry:{type:"Point",coordinates:[108.371477,15.8749560000001]},properties:{ADM0_NAME:"Viet Nam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:241,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161800,GUID:"7306ccbf-f0ee-4f1b-8c7e-516065fe2ae1",CENTER_LON:106.30403531,CENTER_LAT:16.65160342,ADM0_VIZ_NAME:"Viet Nam",Short_Name_ZH:"越南",Short_Name_FR:"Viet Nam",Short_Name_ES:"Viet Nam",Short_Name_RU:"Вьетнам",Short_Name_AR:"فييت نام"}},{type:"Feature",id:161801,geometry:{type:"Point",coordinates:[114.761320882,4.52147838100007]},properties:{ADM0_NAME:"Brunei Darussalam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:135,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161801,GUID:"688a16e9-73e3-4495-8eec-a9ef51d28b4a",CENTER_LON:114.76132088,CENTER_LAT:4.52147838,ADM0_VIZ_NAME:"Brunei Darussalam",Short_Name_ZH:"文莱达鲁萨兰国",Short_Name_FR:"Brunéi Darussalam",Short_Name_ES:"Brunei Darussalam",Short_Name_RU:"Бруней-Даруссалам ",Short_Name_AR:"بروني دار السلام"}},{type:"Feature",id:161802,geometry:{type:"Point",coordinates:[104.92123962,12.714029941]},properties:{ADM0_NAME:"Cambodia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:114,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161802,GUID:"752bbf3c-e667-405f-a381-64dc3d7250e9",CENTER_LON:104.92123962,CENTER_LAT:12.71402994,ADM0_VIZ_NAME:"Cambodia",Short_Name_ZH:"柬埔寨",Short_Name_FR:"Cambodge",Short_Name_ES:"Camboya",Short_Name_RU:"Камбоджа",Short_Name_AR:"كمبوديا"}},{type:"Feature",id:161803,geometry:{type:"Point",coordinates:[144.775856782,13.4440310690001]},properties:{ADM0_NAME:"Guam",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:112,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161803,GUID:"07a13d36-90ef-4597-8599-bce2894a8a50",CENTER_LON:144.77585678,CENTER_LAT:13.44403107,ADM0_VIZ_NAME:"Guam",Short_Name_ZH:`关岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161804,geometry:{type:"Point",coordinates:[-149.567999999,-17.5319999979999]},properties:{ADM0_NAME:"French Polynesia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:41,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161804,GUID:"5b4d9703-49bb-40f3-8f1a-426055d3630e",CENTER_LON:-149.568,CENTER_LAT:-17.532,ADM0_VIZ_NAME:"French Polynesia",Short_Name_ZH:`法属波利尼西亚\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161805,geometry:{type:"Point",coordinates:[165.671849774,-21.2946141899999]},properties:{ADM0_NAME:"New Caledonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161805,GUID:"0c2acf2b-a803-4fdb-af96-dd5eba270bd3",CENTER_LON:165.67184977,CENTER_LAT:-21.29461419,ADM0_VIZ_NAME:"New Caledonia",Short_Name_ZH:`新喀里多尼亚\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161806,geometry:{type:"Point",coordinates:[103.083031076,46.8352087220001]},properties:{ADM0_NAME:"Mongolia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:15,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161806,GUID:"62c58dff-1d74-40b7-8bb4-fb2d4ea17224",CENTER_LON:103.08303108,CENTER_LAT:46.83520872,ADM0_VIZ_NAME:"Mongolia",Short_Name_ZH:"蒙古",Short_Name_FR:"Mongolie",Short_Name_ES:"Mongolia",Short_Name_RU:"Монголия",Short_Name_AR:"منغوليا"}},{type:"Feature",id:161807,geometry:{type:"Point",coordinates:[178.182000002,-17.8549999969999]},properties:{ADM0_NAME:"Fiji",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161807,GUID:"10a110c7-9bca-41a2-8665-e967984c4f31",CENTER_LON:178.182,CENTER_LAT:-17.855,ADM0_VIZ_NAME:"Fiji",Short_Name_ZH:"斐济",Short_Name_FR:"Fidji",Short_Name_ES:"Fiji",Short_Name_RU:"Фиджи ",Short_Name_AR:"فيجي"}},{type:"Feature",id:161808,geometry:{type:"Point",coordinates:[103.763405594,18.5024505710001]},properties:{ADM0_NAME:"Lao People's Democratic Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161808,GUID:"ab453840-eb7a-431c-b52f-e79d58df4850",CENTER_LON:103.76340559,CENTER_LAT:18.50245057,ADM0_VIZ_NAME:"Lao People's Democratic Republic",Short_Name_ZH:"老挝人民民主共和国",Short_Name_FR:"République démocratique populaire lao",Short_Name_ES:"República Democrática Popular Lao",Short_Name_RU:"Лаосская Народно-Демократическая Республика",Short_Name_AR:"جمهورية لاوس الديمقراطية الشعبية"}},{type:"Feature",id:161809,geometry:{type:"Point",coordinates:[145.587832112,16.255704635]},properties:{ADM0_NAME:"Northern Mariana Islands (Commonwealth of the)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:8,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161809,GUID:"b6207b55-8d8b-4599-9ea6-714cad3be598",CENTER_LON:145.58783211,CENTER_LAT:16.25570464,ADM0_VIZ_NAME:"Northern Mariana Islands (Commonwealth of the)",Short_Name_ZH:`北马里亚纳群岛自由邦\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161810,geometry:{type:"Point",coordinates:[145.253687589,-6.47589334999998]},properties:{ADM0_NAME:"Papua New Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161810,GUID:"d4e68089-5dc0-41e2-baf9-f9ba4bf31fa1",CENTER_LON:145.25368759,CENTER_LAT:-6.47589335,ADM0_VIZ_NAME:"Papua New Guinea",Short_Name_ZH:"巴布亚新几内亚",Short_Name_FR:"Papouasie-Nouvelle-Guinée",Short_Name_ES:"Papua Nueva Guinea",Short_Name_RU:"Папуа-Новая Гвинея",Short_Name_AR:"بابوا غينيا الجديدة"}},{type:"Feature",id:161811,geometry:{type:"Point",coordinates:[-3.64931117899994,40.2274959580001]},properties:{ADM0_NAME:"Spain",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:130759,cum_clin:null,cum_susp:null,cum_death:12418,EPIWeek:15,EPIYear:2020,Comment:null,ID:161811,GUID:"a2915e2f-0d93-4ee6-8e41-1fa268228580",CENTER_LON:-3.64931118,CENTER_LAT:40.22749596,ADM0_VIZ_NAME:"Spain",Short_Name_ZH:"西班牙",Short_Name_FR:"Espagne",Short_Name_ES:"España",Short_Name_RU:"Испания",Short_Name_AR:"إسبانيا"}},{type:"Feature",id:161812,geometry:{type:"Point",coordinates:[12.071655591,42.7911916680001]},properties:{ADM0_NAME:"Italy",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:128948,cum_clin:null,cum_susp:null,cum_death:15889,EPIWeek:15,EPIYear:2020,Comment:null,ID:161812,GUID:"e595e984-0e40-4363-aa46-5e7decf832f6",CENTER_LON:12.07165559,CENTER_LAT:42.79119167,ADM0_VIZ_NAME:"Italy",Short_Name_ZH:"意大利",Short_Name_FR:"Italie",Short_Name_ES:"Italia",Short_Name_RU:"Италия",Short_Name_AR:"إيطاليا"}},{type:"Feature",id:161813,geometry:{type:"Point",coordinates:[10.392329666,51.110153956]},properties:{ADM0_NAME:"Germany",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:95391,cum_clin:null,cum_susp:null,cum_death:1434,EPIWeek:15,EPIYear:2020,Comment:null,ID:161813,GUID:"a46bc45e-bcab-46d8-a50b-5008714077c0",CENTER_LON:10.39232967,CENTER_LAT:51.11015396,ADM0_VIZ_NAME:"Germany",Short_Name_ZH:"德国",Short_Name_FR:"Allemagne",Short_Name_ES:"Alemania",Short_Name_RU:"Германия",Short_Name_AR:"ألمانيا"}},{type:"Feature",id:161814,geometry:{type:"Point",coordinates:[2.55042645600003,46.5648740250001]},properties:{ADM0_NAME:"France",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:69607,cum_clin:null,cum_susp:null,cum_death:8064,EPIWeek:15,EPIYear:2020,Comment:null,ID:161814,GUID:"4c308a42-4e33-4d8f-a408-0746862545c7",CENTER_LON:2.55042646,CENTER_LAT:46.56487403,ADM0_VIZ_NAME:"France",Short_Name_ZH:"法国",Short_Name_FR:"France",Short_Name_ES:"Francia",Short_Name_RU:"Франция",Short_Name_AR:"فرنسا"}},{type:"Feature",id:161815,geometry:{type:"Point",coordinates:[-2.90049476399997,54.160179204]},properties:{ADM0_NAME:"The United Kingdom",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:47810,cum_clin:null,cum_susp:null,cum_death:4934,EPIWeek:15,EPIYear:2020,Comment:null,ID:161815,GUID:"50626e89-e145-4d23-8cc4-911240017430",CENTER_LON:-2.90049476,CENTER_LAT:54.1601792,ADM0_VIZ_NAME:"The United Kingdom",Short_Name_ZH:"大不列颠及北爱尔兰联合王国",Short_Name_FR:"Royaume-Uni de Grande-Bretagne et d'Irlande du Nord",Short_Name_ES:"Reino Unido de Gran Bretaña e Irlanda del Norte",Short_Name_RU:"Соединенное Королевство Великобритании и Северной Ирландии",Short_Name_AR:"المملكة المتحدة لبريطانيا العظمى وآيرلندا الشمالية "}},{type:"Feature",id:161816,geometry:{type:"Point",coordinates:[35.1792181100001,39.0606185600001]},properties:{ADM0_NAME:"Turkey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:27069,cum_clin:null,cum_susp:null,cum_death:574,EPIWeek:15,EPIYear:2020,Comment:null,ID:161816,GUID:"a135ad5a-5f50-44c3-bcca-18554926127a",CENTER_LON:35.17921811,CENTER_LAT:39.06061856,ADM0_VIZ_NAME:"Turkey",Short_Name_ZH:"土耳其",Short_Name_FR:"Turquie",Short_Name_ES:"Turquía",Short_Name_RU:"Турция",Short_Name_AR:"تركيا"}},{type:"Feature",id:161817,geometry:{type:"Point",coordinates:[8.23458738300008,46.8025828]},properties:{ADM0_NAME:"Switzerland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21065,cum_clin:null,cum_susp:null,cum_death:715,EPIWeek:15,EPIYear:2020,Comment:null,ID:161817,GUID:"3af18dcb-7d8a-4b6e-bc45-84611b8b6ecc",CENTER_LON:8.23458738,CENTER_LAT:46.8025828,ADM0_VIZ_NAME:"Switzerland",Short_Name_ZH:"瑞士",Short_Name_FR:"Suisse",Short_Name_ES:"Suiza",Short_Name_RU:"Швейцария",Short_Name_AR:"سويسرا"}},{type:"Feature",id:161818,geometry:{type:"Point",coordinates:[4.66434840900007,50.6429517600001]},properties:{ADM0_NAME:"Belgium",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19691,cum_clin:null,cum_susp:null,cum_death:1447,EPIWeek:15,EPIYear:2020,Comment:null,ID:161818,GUID:"effea6fa-d758-4860-ad26-41cdc15c23fb",CENTER_LON:4.66434841,CENTER_LAT:50.64295176,ADM0_VIZ_NAME:"Belgium",Short_Name_ZH:"比利时",Short_Name_FR:"Belgique",Short_Name_ES:"Bélgica",Short_Name_RU:"Бельгия",Short_Name_AR:"بلجيكا"}},{type:"Feature",id:161819,geometry:{type:"Point",coordinates:[5.60099775900005,52.253576303]},properties:{ADM0_NAME:"Netherlands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:17851,cum_clin:null,cum_susp:null,cum_death:1766,EPIWeek:15,EPIYear:2020,Comment:null,ID:161819,GUID:"f4139dd7-53a2-45a3-8e8c-c82b9323a391",CENTER_LON:5.60099776,CENTER_LAT:52.2535763,ADM0_VIZ_NAME:"Netherlands",Short_Name_ZH:"荷兰",Short_Name_FR:"Pays-Bas",Short_Name_ES:"Países Bajos",Short_Name_RU:"Нидерланды",Short_Name_AR:"هولندا"}},{type:"Feature",id:161820,geometry:{type:"Point",coordinates:[14.1399883120001,47.59295768]},properties:{ADM0_NAME:"Austria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11983,cum_clin:null,cum_susp:null,cum_death:204,EPIWeek:15,EPIYear:2020,Comment:null,ID:161820,GUID:"8608cb86-e05d-483d-8eda-8d1b03069602",CENTER_LON:14.13998831,CENTER_LAT:47.59295768,ADM0_VIZ_NAME:"Austria",Short_Name_ZH:"奥地利",Short_Name_FR:"Autriche",Short_Name_ES:"Austria",Short_Name_RU:"Австрия",Short_Name_AR:"النمسا"}},{type:"Feature",id:161821,geometry:{type:"Point",coordinates:[-8.46736074199993,39.6026951090001]},properties:{ADM0_NAME:"Portugal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11278,cum_clin:null,cum_susp:null,cum_death:295,EPIWeek:15,EPIYear:2020,Comment:null,ID:161821,GUID:"48a4e6f7-f991-43b0-a27c-22d79e1a36bd",CENTER_LON:-8.46736074,CENTER_LAT:39.60269511,ADM0_VIZ_NAME:"Portugal",Short_Name_ZH:"葡萄牙",Short_Name_FR:"Portugal",Short_Name_ES:"Portugal",Short_Name_RU:"Португалия",Short_Name_AR:"البرتغال"}},{type:"Feature",id:161822,geometry:{type:"Point",coordinates:[34.9659827130001,31.3580565250001]},properties:{ADM0_NAME:"Israel",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:8018,cum_clin:null,cum_susp:null,cum_death:46,EPIWeek:15,EPIYear:2020,Comment:null,ID:161822,GUID:"81d5bb84-8e84-4830-9fa3-f29e9b09fda8",CENTER_LON:34.96598271,CENTER_LAT:31.35805652,ADM0_VIZ_NAME:"Israel",Short_Name_ZH:"以色列",Short_Name_FR:"Israël",Short_Name_ES:"Israel",Short_Name_RU:"Израиль",Short_Name_AR:"إسرائيل"}},{type:"Feature",id:161823,geometry:{type:"Point",coordinates:[16.741155258,62.7877422610001]},properties:{ADM0_NAME:"Sweden",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6830,cum_clin:null,cum_susp:null,cum_death:401,EPIWeek:15,EPIYear:2020,Comment:null,ID:161823,GUID:"35ec511a-2e1c-4483-a917-1f67a1342382",CENTER_LON:16.74115526,CENTER_LAT:62.78774226,ADM0_VIZ_NAME:"Sweden",Short_Name_ZH:"瑞典",Short_Name_FR:"Suède",Short_Name_ES:"Suecia",Short_Name_RU:"Швеция",Short_Name_AR:"السويد"}},{type:"Feature",id:161824,geometry:{type:"Point",coordinates:[14.0750891050001,64.447848874]},properties:{ADM0_NAME:"Norway",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5640,cum_clin:null,cum_susp:null,cum_death:58,EPIWeek:15,EPIYear:2020,Comment:null,ID:161824,GUID:"82efba96-e610-4592-a329-95d7c3a57b4f",CENTER_LON:14.07508911,CENTER_LAT:64.44784887,ADM0_VIZ_NAME:"Norway",Short_Name_ZH:"挪威",Short_Name_FR:"Norvège",Short_Name_ES:"Noruega",Short_Name_RU:"Норвегия",Short_Name_AR:"النرويج"}},{type:"Feature",id:161825,geometry:{type:"Point",coordinates:[96.689442146,61.9882456010001]},properties:{ADM0_NAME:"Russian Federation",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5389,cum_clin:null,cum_susp:null,cum_death:45,EPIWeek:15,EPIYear:2020,Comment:null,ID:161825,GUID:"58afb040-3a74-491b-809d-00b145c55577",CENTER_LON:96.68944215,CENTER_LAT:61.9882456,ADM0_VIZ_NAME:"Russian Federation",Short_Name_ZH:"俄罗斯联邦",Short_Name_FR:"Fédération de Russie",Short_Name_ES:"Federación de Rusia",Short_Name_RU:"Российская Федерация",Short_Name_AR:"الاتحاد الروسي"}},{type:"Feature",id:161826,geometry:{type:"Point",coordinates:[-8.15157629999993,53.1770868180001]},properties:{ADM0_NAME:"Ireland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5111,cum_clin:null,cum_susp:null,cum_death:158,EPIWeek:15,EPIYear:2020,Comment:null,ID:161826,GUID:"f5d664d0-c086-4d71-8874-044e3d094c5d",CENTER_LON:-8.1515763,CENTER_LAT:53.17708682,ADM0_VIZ_NAME:"Ireland",Short_Name_ZH:"爱尔兰",Short_Name_FR:"Irlande",Short_Name_ES:"Irlanda",Short_Name_RU:"Ирландия",Short_Name_AR:"آيرلندا"}},{type:"Feature",id:161827,geometry:{type:"Point",coordinates:[15.338339951,49.743036139]},properties:{ADM0_NAME:"Czechia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4587,cum_clin:null,cum_susp:null,cum_death:67,EPIWeek:15,EPIYear:2020,Comment:null,ID:161827,GUID:"8cf681ef-d988-4d5d-86c7-5483977059e7",CENTER_LON:15.33833995,CENTER_LAT:49.74303614,ADM0_VIZ_NAME:"Czechia",Short_Name_ZH:"捷克",Short_Name_FR:"Tchéquie",Short_Name_ES:"Chequia",Short_Name_RU:"Чехия",Short_Name_AR:"تشيكيا"}},{type:"Feature",id:161828,geometry:{type:"Point",coordinates:[10.0508208200001,55.962332802]},properties:{ADM0_NAME:"Denmark",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4369,cum_clin:null,cum_susp:null,cum_death:179,EPIWeek:15,EPIYear:2020,Comment:null,ID:161828,GUID:"39dcd44b-aa79-48a8-9840-3179a28a35a9",CENTER_LON:10.05082082,CENTER_LAT:55.9623328,ADM0_VIZ_NAME:"Denmark",Short_Name_ZH:"丹麦",Short_Name_FR:"Danemark",Short_Name_ES:"Dinamarca",Short_Name_RU:"Дания",Short_Name_AR:"الدانمرك"}},{type:"Feature",id:161829,geometry:{type:"Point",coordinates:[19.4009201690001,52.1247240530001]},properties:{ADM0_NAME:"Poland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4102,cum_clin:null,cum_susp:null,cum_death:94,EPIWeek:15,EPIYear:2020,Comment:null,ID:161829,GUID:"1c04cb3c-08f6-47a3-bb42-dd9da35e226c",CENTER_LON:19.40092017,CENTER_LAT:52.12472405,ADM0_VIZ_NAME:"Poland",Short_Name_ZH:"波兰",Short_Name_FR:"Pologne",Short_Name_ES:"Polonia",Short_Name_RU:"Польша",Short_Name_AR:"بولندا"}},{type:"Feature",id:161830,geometry:{type:"Point",coordinates:[24.96990758,45.843605584]},properties:{ADM0_NAME:"Romania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3864,cum_clin:null,cum_susp:null,cum_death:148,EPIWeek:15,EPIYear:2020,Comment:null,ID:161830,GUID:"26eaed41-b340-4f38-90e3-9392e04420c6",CENTER_LON:24.96990758,CENTER_LAT:45.84360558,ADM0_VIZ_NAME:"Romania",Short_Name_ZH:"罗马尼亚",Short_Name_FR:"Roumanie",Short_Name_ES:"Rumania",Short_Name_RU:"Румыния",Short_Name_AR:"رومانيا"}},{type:"Feature",id:161831,geometry:{type:"Point",coordinates:[6.08754415700002,49.7709639620001]},properties:{ADM0_NAME:"Luxembourg",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2804,cum_clin:null,cum_susp:null,cum_death:36,EPIWeek:15,EPIYear:2020,Comment:null,ID:161831,GUID:"05241edc-00fd-47ec-ba71-800dbf3f853d",CENTER_LON:6.08754416,CENTER_LAT:49.77096396,ADM0_VIZ_NAME:"Luxembourg",Short_Name_ZH:"卢森堡",Short_Name_FR:"Luxembourg",Short_Name_ES:"Luxemburgo",Short_Name_RU:"Люксембург",Short_Name_AR:"لكسمبرغ"}},{type:"Feature",id:161832,geometry:{type:"Point",coordinates:[26.258842304,64.4943312920001]},properties:{ADM0_NAME:"Finland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1927,cum_clin:null,cum_susp:null,cum_death:28,EPIWeek:15,EPIYear:2020,Comment:null,ID:161832,GUID:"e3fd3d41-feaa-443f-a135-08a80552525c",CENTER_LON:26.2588423,CENTER_LAT:64.49433129,ADM0_VIZ_NAME:"Finland",Short_Name_ZH:"芬兰",Short_Name_FR:"Finlande",Short_Name_ES:"Finlandia",Short_Name_RU:"Финляндия",Short_Name_AR:"فنلندا"}},{type:"Feature",id:161833,geometry:{type:"Point",coordinates:[20.8113308580001,44.0338722170001]},properties:{ADM0_NAME:"Serbia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1908,cum_clin:null,cum_susp:null,cum_death:51,EPIWeek:15,EPIYear:2020,Comment:"145",ID:161833,GUID:"c2a1295d-39bf-42fa-89ed-cadee2ea50c0",CENTER_LON:20.81133086,CENTER_LAT:44.03387222,ADM0_VIZ_NAME:"Serbia",Short_Name_ZH:"塞尔维亚",Short_Name_FR:"Serbie",Short_Name_ES:"Serbia",Short_Name_RU:"Сербия",Short_Name_AR:"صربيا"}},{type:"Feature",id:161834,geometry:{type:"Point",coordinates:[22.9879848,39.0445287420001]},properties:{ADM0_NAME:"Greece",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1735,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161834,GUID:"89efdcec-75e3-4185-83a8-d2cb7f6beff6",CENTER_LON:22.9879848,CENTER_LAT:39.04452874,ADM0_VIZ_NAME:"Greece",Short_Name_ZH:"希腊",Short_Name_FR:"Grèce",Short_Name_ES:"Grecia",Short_Name_RU:"Греция",Short_Name_AR:"اليونان"}},{type:"Feature",id:161835,geometry:{type:"Point",coordinates:[-18.6057025969999,64.9976499840001]},properties:{ADM0_NAME:"Iceland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1486,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161835,GUID:"66510a15-4a49-4fb4-9400-6e6fd0d1d259",CENTER_LON:-18.6057026,CENTER_LAT:64.99764998,ADM0_VIZ_NAME:"Iceland",Short_Name_ZH:"冰岛",Short_Name_FR:"Islande",Short_Name_ES:"Islandia",Short_Name_RU:"Исландия",Short_Name_AR:"آيسلندا"}},{type:"Feature",id:161836,geometry:{type:"Point",coordinates:[31.3878455180001,49.0160942850001]},properties:{ADM0_NAME:"Ukraine",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1319,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161836,GUID:"95185552-2b03-429c-8efb-c5779d556529",CENTER_LON:31.38784552,CENTER_LAT:49.01609429,ADM0_VIZ_NAME:"Ukraine",Short_Name_ZH:"乌克兰",Short_Name_FR:"Ukraine",Short_Name_ES:"Ucrania",Short_Name_RU:"Украина",Short_Name_AR:"أوكرانيا"}},{type:"Feature",id:161837,geometry:{type:"Point",coordinates:[16.409342489,45.043636959]},properties:{ADM0_NAME:"Croatia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1182,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161837,GUID:"0632bd7c-fa87-4b49-847e-747eb322c506",CENTER_LON:16.40934249,CENTER_LAT:45.04363696,ADM0_VIZ_NAME:"Croatia",Short_Name_ZH:"克罗地亚",Short_Name_FR:"Croatie",Short_Name_ES:"Croacia",Short_Name_RU:"Хорватия",Short_Name_AR:"كرواتيا"}},{type:"Feature",id:161838,geometry:{type:"Point",coordinates:[25.525770902,58.674007869]},properties:{ADM0_NAME:"Estonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1097,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161838,GUID:"465ebc0d-dc95-4d49-8c01-58d7e2a9629f",CENTER_LON:25.5257709,CENTER_LAT:58.67400787,ADM0_VIZ_NAME:"Estonia",Short_Name_ZH:"爱沙尼亚",Short_Name_FR:"Estonie",Short_Name_ES:"Estonia",Short_Name_RU:"Эстония",Short_Name_AR:"إستونيا"}},{type:"Feature",id:161839,geometry:{type:"Point",coordinates:[14.8270744380001,46.123550256]},properties:{ADM0_NAME:"Slovenia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:997,cum_clin:null,cum_susp:null,cum_death:28,EPIWeek:15,EPIYear:2020,Comment:null,ID:161839,GUID:"a1f8bec8-8628-4e46-9c7e-238a386177b5",CENTER_LON:14.82707444,CENTER_LAT:46.12355026,ADM0_VIZ_NAME:"Slovenia",Short_Name_ZH:"斯洛文尼亚",Short_Name_FR:"Slovénie",Short_Name_ES:"Eslovenia",Short_Name_RU:"Словения",Short_Name_AR:"سلوفينيا"}},{type:"Feature",id:161840,geometry:{type:"Point",coordinates:[28.4743431700001,47.1933256130001]},properties:{ADM0_NAME:"Republic of Moldova",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:864,cum_clin:null,cum_susp:null,cum_death:15,EPIWeek:15,EPIYear:2020,Comment:null,ID:161840,GUID:"2e685fb5-826d-4cda-8f11-ab4e215115c8",CENTER_LON:28.47434317,CENTER_LAT:47.19332561,ADM0_VIZ_NAME:"Republic of Moldova",Short_Name_ZH:"摩尔多瓦共和国",Short_Name_FR:"République de Moldova",Short_Name_ES:"la República de Moldova",Short_Name_RU:"Республика Молдова",Short_Name_AR:" جمهورية مولدوفا"}},{type:"Feature",id:161841,geometry:{type:"Point",coordinates:[23.8968307550001,55.3358501330001]},properties:{ADM0_NAME:"Lithuania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:811,cum_clin:null,cum_susp:null,cum_death:13,EPIWeek:15,EPIYear:2020,Comment:null,ID:161841,GUID:"9dedcb14-a08f-4f9c-9248-f3e734fe9026",CENTER_LON:23.89683075,CENTER_LAT:55.33585013,ADM0_VIZ_NAME:"Lithuania",Short_Name_ZH:"立陶宛",Short_Name_FR:"Lituanie",Short_Name_ES:"Lituania",Short_Name_RU:"Литва",Short_Name_AR:"ليتوانيا"}},{type:"Feature",id:161842,geometry:{type:"Point",coordinates:[44.947934237,40.2864168850001]},properties:{ADM0_NAME:"Armenia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:746,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161842,GUID:"eacf41cc-aa5e-48c9-a3db-386fce22497f",CENTER_LON:44.94793424,CENTER_LAT:40.28641688,ADM0_VIZ_NAME:"Armenia",Short_Name_ZH:"亚美尼亚",Short_Name_FR:"Arménie",Short_Name_ES:"Armenia",Short_Name_RU:"Армения",Short_Name_AR:"أرمينيا"}},{type:"Feature",id:161843,geometry:{type:"Point",coordinates:[19.413428132,47.166479059]},properties:{ADM0_NAME:"Hungary",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:744,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161843,GUID:"dd6f8b0d-73f4-4afc-889e-185c363755bd",CENTER_LON:19.41342813,CENTER_LAT:47.16647906,ADM0_VIZ_NAME:"Hungary",Short_Name_ZH:"匈牙利",Short_Name_FR:"Hongrie",Short_Name_ES:"Hungría",Short_Name_RU:"Венгрия",Short_Name_AR:"هنغاريا"}},{type:"Feature",id:161844,geometry:{type:"Point",coordinates:[17.788588722,44.166459531]},properties:{ADM0_NAME:"Bosnia and Herzegovina",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:662,cum_clin:null,cum_susp:null,cum_death:21,EPIWeek:15,EPIYear:2020,Comment:null,ID:161844,GUID:"e72216b1-90ca-4ef3-8ca5-334dc566e491",CENTER_LON:17.78861095,CENTER_LAT:44.16643966,ADM0_VIZ_NAME:"Bosnia and Herzegovina",Short_Name_ZH:"波斯尼亚和黑塞哥维那",Short_Name_FR:"Bosnie-Herzégovine",Short_Name_ES:"Bosnia y Herzegovina",Short_Name_RU:"Босния и Герцеговина",Short_Name_AR:"البوسنة والهرسك"}},{type:"Feature",id:161845,geometry:{type:"Point",coordinates:[67.3013001780001,48.160042703]},properties:{ADM0_NAME:"Kazakhstan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:604,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161845,GUID:"4977dd2e-53da-4f6e-8b28-b232665dce70",CENTER_LON:67.30130018,CENTER_LAT:48.1600427,ADM0_VIZ_NAME:"Kazakhstan",Short_Name_ZH:"哈萨克斯坦",Short_Name_FR:"Kazakhstan",Short_Name_ES:"Kazajstán",Short_Name_RU:"Казахстан",Short_Name_AR:"كازاخستان"}},{type:"Feature",id:161846,geometry:{type:"Point",coordinates:[47.5323268120001,40.292219501]},properties:{ADM0_NAME:"Azerbaijan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:584,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161846,GUID:"7c545b04-b947-4d2a-94f1-af4010981973",CENTER_LON:47.53232681,CENTER_LAT:40.2922195,ADM0_VIZ_NAME:"Azerbaijan",Short_Name_ZH:"阿塞拜疆",Short_Name_FR:"Azerbaïdjan",Short_Name_ES:"Azerbaiyán",Short_Name_RU:"Азербайджан",Short_Name_AR:"أذربيجان"}},{type:"Feature",id:161847,geometry:{type:"Point",coordinates:[28.046964476,53.5402195120001]},properties:{ADM0_NAME:"Belarus",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:562,cum_clin:null,cum_susp:null,cum_death:8,EPIWeek:15,EPIYear:2020,Comment:null,ID:161847,GUID:"b0db3eb1-014d-4f19-ad8a-0d42e84400bc",CENTER_LON:28.04696448,CENTER_LAT:53.54021951,ADM0_VIZ_NAME:"Belarus",Short_Name_ZH:"白俄罗斯",Short_Name_FR:"Bélarus",Short_Name_ES:"Belarús",Short_Name_RU:"Беларусь",Short_Name_AR:"بيلاروس"}},{type:"Feature",id:161848,geometry:{type:"Point",coordinates:[21.699148501,41.5992207530001]},properties:{ADM0_NAME:"North Macedonia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:555,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161848,GUID:"3e3320e9-1f0d-44fb-9ca7-59fcb032f585",CENTER_LON:21.6991485,CENTER_LAT:41.59922075,ADM0_VIZ_NAME:"North Macedonia",Short_Name_ZH:"北马其顿",Short_Name_FR:"Macédoine du Nord",Short_Name_ES:"Macedonia del Norte",Short_Name_RU:"Северная Македония",Short_Name_AR:"مقدونيا الشمالية"}},{type:"Feature",id:161849,geometry:{type:"Point",coordinates:[24.9291533160001,56.857669393]},properties:{ADM0_NAME:"Latvia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:533,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161849,GUID:"0c31644b-8d04-4f24-aca0-d49b0523a771",CENTER_LON:24.92915332,CENTER_LAT:56.85766939,ADM0_VIZ_NAME:"Latvia",Short_Name_ZH:"拉脱维亚",Short_Name_FR:"Lettonie",Short_Name_ES:"Letonia",Short_Name_RU:"Латвия",Short_Name_AR:"لاتفيا"}},{type:"Feature",id:161850,geometry:{type:"Point",coordinates:[25.234757556,42.7603214050001]},properties:{ADM0_NAME:"Bulgaria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:531,cum_clin:null,cum_susp:null,cum_death:20,EPIWeek:15,EPIYear:2020,Comment:null,ID:161850,GUID:"9ec1719f-edd7-42af-8988-ed246a25ff6e",CENTER_LON:25.23475756,CENTER_LAT:42.76032141,ADM0_VIZ_NAME:"Bulgaria",Short_Name_ZH:"保加利亚",Short_Name_FR:"Bulgarie",Short_Name_ES:"Bulgaria",Short_Name_RU:"Болгария",Short_Name_AR:"بلغاريا"}},{type:"Feature",id:161851,geometry:{type:"Point",coordinates:[1.57568832800007,42.548582966]},properties:{ADM0_NAME:"Andorra",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:523,cum_clin:null,cum_susp:null,cum_death:17,EPIWeek:15,EPIYear:2020,Comment:null,ID:161851,GUID:"066f0f3c-d111-4a65-afdd-5f86e5ac8ddc",CENTER_LON:1.57568833,CENTER_LAT:42.54858297,ADM0_VIZ_NAME:"Andorra",Short_Name_ZH:"安道尔",Short_Name_FR:"Andorre",Short_Name_ES:"Andorra",Short_Name_RU:"Андорра",Short_Name_AR:"أندورا"}},{type:"Feature",id:161852,geometry:{type:"Point",coordinates:[19.4914502780001,48.7073588010001]},properties:{ADM0_NAME:"Slovakia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:485,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161852,GUID:"7ec96ad8-a352-4125-af49-b14e8cb9876b",CENTER_LON:19.49145028,CENTER_LAT:48.7073588,ADM0_VIZ_NAME:"Slovakia",Short_Name_ZH:"斯洛伐克",Short_Name_FR:"Slovaquie",Short_Name_ES:"Eslovaquia",Short_Name_RU:"Словакия",Short_Name_AR:"سلوفاكيا"}},{type:"Feature",id:161853,geometry:{type:"Point",coordinates:[33.2186370790001,35.042991746]},properties:{ADM0_NAME:"Cyprus",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:446,cum_clin:null,cum_susp:null,cum_death:14,EPIWeek:15,EPIYear:2020,Comment:null,ID:161853,GUID:"21711ed5-ad84-4f8f-af93-6e4d12e558bf",CENTER_LON:33.21863708,CENTER_LAT:35.04299175,ADM0_VIZ_NAME:"Cyprus",Short_Name_ZH:"塞浦路斯",Short_Name_FR:"Chypre",Short_Name_ES:"Chipre",Short_Name_RU:"Кипр",Short_Name_AR:"قبرص"}},{type:"Feature",id:161854,geometry:{type:"Point",coordinates:[63.169505783,41.750416607]},properties:{ADM0_NAME:"Uzbekistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:390,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161854,GUID:"6041dd4d-0f77-4e28-8d46-cc9afc8dbf9a",CENTER_LON:63.16950578,CENTER_LAT:41.75041661,ADM0_VIZ_NAME:"Uzbekistan",Short_Name_ZH:"乌兹别克斯坦",Short_Name_FR:"Ouzbékistan",Short_Name_ES:"Uzbekistán",Short_Name_RU:"Узбекистан",Short_Name_AR:"أوزبكستان"}},{type:"Feature",id:161855,geometry:{type:"Point",coordinates:[20.0691781670001,41.145958029]},properties:{ADM0_NAME:"Albania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:377,cum_clin:null,cum_susp:null,cum_death:21,EPIWeek:15,EPIYear:2020,Comment:null,ID:161855,GUID:"c7192fcc-f547-44ed-a758-3d8e48420cef",CENTER_LON:20.06917817,CENTER_LAT:41.14595803,ADM0_VIZ_NAME:"Albania",Short_Name_ZH:"阿尔巴尼亚",Short_Name_FR:"Albanie",Short_Name_ES:"Albania",Short_Name_RU:"Албания",Short_Name_AR:"ألبانيا"}},{type:"Feature",id:161856,geometry:{type:"Point",coordinates:[12.4603576160001,43.9419147360001]},properties:{ADM0_NAME:"San Marino",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:266,cum_clin:null,cum_susp:null,cum_death:32,EPIWeek:15,EPIYear:2020,Comment:null,ID:161856,GUID:"1e7562c6-655a-4a6d-879f-7f80ff842b20",CENTER_LON:12.46035762,CENTER_LAT:43.94191474,ADM0_VIZ_NAME:"San Marino",Short_Name_ZH:"圣马力诺",Short_Name_FR:"Saint-Marin",Short_Name_ES:"San Marino",Short_Name_RU:"Сан-Марино",Short_Name_AR:"سان مارينو"}},{type:"Feature",id:161857,geometry:{type:"Point",coordinates:[14.404573585,35.9203665150001]},properties:{ADM0_NAME:"Malta",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:234,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161857,GUID:"fbafb313-9be5-49cc-9633-26c40e77d9d9",CENTER_LON:14.40457358,CENTER_LAT:35.92036651,ADM0_VIZ_NAME:"Malta",Short_Name_ZH:"马耳他",Short_Name_FR:"Malte",Short_Name_ES:"Malta",Short_Name_RU:"Мальта",Short_Name_AR:"مالطة"}},{type:"Feature",id:161858,geometry:{type:"Point",coordinates:[74.555492998,41.464907168]},properties:{ADM0_NAME:"Kyrgyzstan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:216,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161858,GUID:"874ef90d-615d-4ad3-8893-17d62ecda937",CENTER_LON:74.555493,CENTER_LAT:41.46490717,ADM0_VIZ_NAME:"Kyrgyzstan",Short_Name_ZH:"吉尔吉斯斯坦",Short_Name_FR:"Kirghizistan",Short_Name_ES:"Kirguistán",Short_Name_RU:"Кыргызстан",Short_Name_AR:"قيرغيزستان"}},{type:"Feature",id:161859,geometry:{type:"Point",coordinates:[19.264632787,42.796243544]},properties:{ADM0_NAME:"Montenegro",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:203,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161859,GUID:"09650ef3-8793-4a1f-b8a2-b6c1da8c2bef",CENTER_LON:19.26458919,CENTER_LAT:42.79659203,ADM0_VIZ_NAME:"Montenegro",Short_Name_ZH:"黑山",Short_Name_FR:"Monténégro",Short_Name_ES:"Montenegro",Short_Name_RU:"Черногория",Short_Name_AR:"الجبل الأسود"}},{type:"Feature",id:161860,geometry:{type:"Point",coordinates:[43.517571151,42.1763258280001]},properties:{ADM0_NAME:"Georgia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:188,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161860,GUID:"e75c6929-6252-4e54-af0f-83798afe3123",CENTER_LON:43.51757115,CENTER_LAT:42.17632583,ADM0_VIZ_NAME:"Georgia",Short_Name_ZH:"格鲁吉亚",Short_Name_FR:"Géorgie",Short_Name_ES:"Georgia",Short_Name_RU:"Грузия",Short_Name_AR:"جورجيا"}},{type:"Feature",id:161861,geometry:{type:"Point",coordinates:[-6.86363601799997,62.050314004]},properties:{ADM0_NAME:"Faroe Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:181,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161861,GUID:"53f56a27-5297-4c05-a47b-b2033e95db63",CENTER_LON:-6.86363602,CENTER_LAT:62.050314,ADM0_VIZ_NAME:"Faroe Islands",Short_Name_ZH:`法罗群岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161862,geometry:{type:"Point",coordinates:[-2.12891773399997,49.2194981580001]},properties:{ADM0_NAME:"Jersey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:155,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161862,GUID:"82a7eebf-4858-4ad8-b68f-1b7bd7b719bc",CENTER_LON:-2.12891773,CENTER_LAT:49.21949816,ADM0_VIZ_NAME:"Jersey",Short_Name_ZH:`泽西岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161863,geometry:{type:"Point",coordinates:[-2.57582282299995,49.459046304]},properties:{ADM0_NAME:"Guernsey",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:154,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161863,GUID:"2cb7929d-d72e-4129-83c9-c293fc73d996",CENTER_LON:-2.57582282,CENTER_LAT:49.4590463,ADM0_VIZ_NAME:"Guernsey",Short_Name_ZH:`根西岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161864,geometry:{type:"Point",coordinates:[20.9369550000001,42.568695]},properties:{ADM0_NAME:"Kosovo[1]",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:145,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:"1908",ID:161864,GUID:"71d5bb45-bba6-4305-a423-19927e9f4c53",CENTER_LON:20.936955,CENTER_LAT:42.568695,ADM0_VIZ_NAME:"Kosovo[1]",Short_Name_ZH:"科索沃[1]",Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161865,geometry:{type:"Point",coordinates:[-4.52652992499998,54.2288332950001]},properties:{ADM0_NAME:"Isle of Man",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:127,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161865,GUID:"45b3fcba-3667-474b-8081-b17737d8cb5f",CENTER_LON:-4.52652992,CENTER_LAT:54.2288333,ADM0_VIZ_NAME:"Isle of Man",Short_Name_ZH:`马恩岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161866,geometry:{type:"Point",coordinates:[-5.34488893099996,36.1381932030001]},properties:{ADM0_NAME:"Gibraltar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:103,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161866,GUID:"6e156108-e9e8-4087-b89c-37e5851bd8d0",CENTER_LON:-5.34488893,CENTER_LAT:36.1381932,ADM0_VIZ_NAME:"Gibraltar",Short_Name_ZH:`直布罗陀\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161867,geometry:{type:"Point",coordinates:[9.55526492600006,47.1525954850001]},properties:{ADM0_NAME:"Liechtenstein",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:78,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161867,GUID:"8b38ed63-f4bf-4683-96b5-e8c2eb7bd7e7",CENTER_LON:9.55526493,CENTER_LAT:47.15259548,ADM0_VIZ_NAME:"Liechtenstein",Short_Name_ZH:`列支敦士登\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161868,geometry:{type:"Point",coordinates:[7.41201715200003,43.7503461470001]},properties:{ADM0_NAME:"Monaco",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:37,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161868,GUID:"ac716d7e-26d7-46d8-a1a2-4222f42042f3",CENTER_LON:7.41201715,CENTER_LAT:43.75034615,ADM0_VIZ_NAME:"Monaco",Short_Name_ZH:"摩纳哥",Short_Name_FR:"Monaco",Short_Name_ES:"Mónaco",Short_Name_RU:"Монако",Short_Name_AR:"موناكو"}},{type:"Feature",id:161869,geometry:{type:"Point",coordinates:[-41.39096667,74.7189535310001]},properties:{ADM0_NAME:"Greenland",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161869,GUID:"e7d73b5c-27bf-451c-be96-73de13560e8c",CENTER_LON:-41.39096667,CENTER_LAT:74.71895353,ADM0_VIZ_NAME:"Greenland",Short_Name_ZH:`格陵兰岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161870,geometry:{type:"Point",coordinates:[12.4857111430001,41.893241947]},properties:{ADM0_NAME:"Holy See",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161870,GUID:"38144504-0224-4815-a545-5c8d34bb44d8",CENTER_LON:12.48571114,CENTER_LAT:41.89324195,ADM0_VIZ_NAME:"Holy See",Short_Name_ZH:`梵蒂冈\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161871,geometry:{type:"Point",coordinates:[79.6188182980001,22.881320567]},properties:{ADM0_NAME:"India",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4067,cum_clin:null,cum_susp:null,cum_death:109,EPIWeek:15,EPIYear:2020,Comment:null,ID:161871,GUID:"e75886d8-11ce-4563-bd85-86bcb9312cee",CENTER_LON:79.6188183,CENTER_LAT:22.88132057,ADM0_VIZ_NAME:"India",Short_Name_ZH:"印度",Short_Name_FR:"Inde",Short_Name_ES:"India",Short_Name_RU:"Индия",Short_Name_AR:"الهند"}},{type:"Feature",id:161872,geometry:{type:"Point",coordinates:[113.355162997,-.950074241999971]},properties:{ADM0_NAME:"Indonesia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2491,cum_clin:null,cum_susp:null,cum_death:209,EPIWeek:15,EPIYear:2020,Comment:null,ID:161872,GUID:"9350b806-04ca-4c8f-926e-7c5f644a13c7",CENTER_LON:117.31101692,CENTER_LAT:-2.22903453,ADM0_VIZ_NAME:"Indonesia",Short_Name_ZH:"印度尼西亚",Short_Name_FR:"Indonésie",Short_Name_ES:"Indonesia",Short_Name_RU:"Индонезия",Short_Name_AR:"إندونيسيا"}},{type:"Feature",id:161873,geometry:{type:"Point",coordinates:[101.014907816,15.1198987560001]},properties:{ADM0_NAME:"Thailand",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2220,cum_clin:null,cum_susp:null,cum_death:26,EPIWeek:15,EPIYear:2020,Comment:null,ID:161873,GUID:"3d1f17d7-1553-476a-a8d8-62dcd54d4779",CENTER_LON:101.01490782,CENTER_LAT:15.11989876,ADM0_VIZ_NAME:"Thailand",Short_Name_ZH:"泰国",Short_Name_FR:"Thaïlande",Short_Name_ES:"Tailandia",Short_Name_RU:"Таиланд",Short_Name_AR:"تايلند"}},{type:"Feature",id:161874,geometry:{type:"Point",coordinates:[80.7042626200001,7.61236242700005]},properties:{ADM0_NAME:"Sri Lanka",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:176,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161874,GUID:"12d0a30e-4c87-4a62-b124-c751e10cacac",CENTER_LON:80.70426262,CENTER_LAT:7.61236243,ADM0_VIZ_NAME:"Sri Lanka",Short_Name_ZH:"斯里兰卡",Short_Name_FR:"Sri Lanka",Short_Name_ES:"Sri Lanka",Short_Name_RU:"Шри-Ланка",Short_Name_AR:"سري لانكا"}},{type:"Feature",id:161875,geometry:{type:"Point",coordinates:[90.2709257590001,23.833007201]},properties:{ADM0_NAME:"Bangladesh",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:123,cum_clin:null,cum_susp:null,cum_death:12,EPIWeek:15,EPIYear:2020,Comment:null,ID:161875,GUID:"c4d7552f-faa1-4bf4-a22e-c9b5d9ee14c2",CENTER_LON:90.27092576,CENTER_LAT:23.8330072,ADM0_VIZ_NAME:"Bangladesh",Short_Name_ZH:"孟加拉国",Short_Name_FR:"Bangladesh",Short_Name_ES:"Bangladesh",Short_Name_RU:"Бангладеш",Short_Name_AR:"بنغلاديش"}},{type:"Feature",id:161876,geometry:{type:"Point",coordinates:[96.508682057,21.1400953610001]},properties:{ADM0_NAME:"Myanmar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161876,GUID:"a8c48537-a6ee-4d80-83f8-b3dda8858d94",CENTER_LON:96.50868206,CENTER_LAT:21.14009536,ADM0_VIZ_NAME:"Myanmar",Short_Name_ZH:"缅甸",Short_Name_FR:"Myanmar",Short_Name_ES:"Myanmar",Short_Name_RU:"Мьянма",Short_Name_AR:"ميانمار"}},{type:"Feature",id:161877,geometry:{type:"Point",coordinates:[73.2517847770001,3.37481931800005]},properties:{ADM0_NAME:"Maldives",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161877,GUID:"65914a49-5435-4cda-b916-f9ee5e14147b",CENTER_LON:73.25178478,CENTER_LAT:3.37481932,ADM0_VIZ_NAME:"Maldives",Short_Name_ZH:"马尔代夫",Short_Name_FR:"Maldives",Short_Name_ES:"Maldivas",Short_Name_RU:"Мальдивские Острова",Short_Name_AR:"ملديف"}},{type:"Feature",id:161878,geometry:{type:"Point",coordinates:[83.9385170750001,28.253007847]},properties:{ADM0_NAME:"Nepal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161878,GUID:"da7d5887-ee15-421c-8ad9-b785996b0536",CENTER_LON:83.93851707,CENTER_LAT:28.25300785,ADM0_VIZ_NAME:"Nepal",Short_Name_ZH:"尼泊尔",Short_Name_FR:"Népal",Short_Name_ES:"Nepal",Short_Name_RU:"Непал",Short_Name_AR:"نيبال"}},{type:"Feature",id:161879,geometry:{type:"Point",coordinates:[90.4294327480001,27.415460823]},properties:{ADM0_NAME:"Bhutan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161879,GUID:"0d97d3e1-4ba2-431a-8404-f13231d663bd",CENTER_LON:90.42943275,CENTER_LAT:27.41546082,ADM0_VIZ_NAME:"Bhutan",Short_Name_ZH:"不丹",Short_Name_FR:"Bhoutan",Short_Name_ES:"Bhután",Short_Name_RU:"Бутан",Short_Name_AR:"بوتان"}},{type:"Feature",id:161880,geometry:{type:"Point",coordinates:[125.860996098,-8.82052123499994]},properties:{ADM0_NAME:"Timor-Leste",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161880,GUID:"57acee0b-5cc0-45d5-b65c-1d928ac08d16",CENTER_LON:125.8609961,CENTER_LAT:-8.82052123,ADM0_VIZ_NAME:"Timor-Leste",Short_Name_ZH:"东帝汶",Short_Name_FR:"Timor-Leste",Short_Name_ES:"Timor-Leste",Short_Name_RU:"Тимор-Лешти",Short_Name_AR:"تيمور- ليشتي"}},{type:"Feature",id:161881,geometry:{type:"Point",coordinates:[54.301413763,32.564799586]},properties:{ADM0_NAME:"Iran (Islamic Republic of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:60500,cum_clin:null,cum_susp:null,cum_death:3739,EPIWeek:15,EPIYear:2020,Comment:null,ID:161881,GUID:"2eea3a5c-8a36-4a18-a7ab-1b927a092a60",CENTER_LON:54.30141376,CENTER_LAT:32.56479959,ADM0_VIZ_NAME:"Iran (Islamic Republic of)",Short_Name_ZH:"伊朗(伊斯兰共和国)",Short_Name_FR:"Iran (République islamique d')",Short_Name_ES:"Irán (República Islámica del)",Short_Name_RU:"Иран (Исламская Республика)",Short_Name_AR:"إيران (جمهورية - الإسلامية)"}},{type:"Feature",id:161882,geometry:{type:"Point",coordinates:[69.3858188080001,29.966788981]},properties:{ADM0_NAME:"Pakistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3424,cum_clin:null,cum_susp:null,cum_death:50,EPIWeek:15,EPIYear:2020,Comment:null,ID:161882,GUID:"30ee6f01-1785-4ecb-b194-ba3becf5fd33",CENTER_LON:69.38581881,CENTER_LAT:29.96678898,ADM0_VIZ_NAME:"Pakistan",Short_Name_ZH:"巴基斯坦",Short_Name_FR:"Pakistan",Short_Name_ES:"Pakistán",Short_Name_RU:"Пакистан",Short_Name_AR:"باكستان"}},{type:"Feature",id:161883,geometry:{type:"Point",coordinates:[44.5704496550001,24.0808819160001]},properties:{ADM0_NAME:"Saudi Arabia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2523,cum_clin:null,cum_susp:null,cum_death:38,EPIWeek:15,EPIYear:2020,Comment:null,ID:161883,GUID:"fa5a7f77-0dca-4f91-9571-3b8a44607f74",CENTER_LON:44.57044965,CENTER_LAT:24.08088192,ADM0_VIZ_NAME:"Saudi Arabia",Short_Name_ZH:"沙特阿拉伯",Short_Name_FR:"Arabie saoudite",Short_Name_ES:"Arabia Saudita",Short_Name_RU:"Саудовская Аравия",Short_Name_AR:"المملكة العربية السعودية"}},{type:"Feature",id:161884,geometry:{type:"Point",coordinates:[54.3321987830001,23.912672544]},properties:{ADM0_NAME:"United Arab Emirates",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2076,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:161884,GUID:"549ed949-4c36-4ab0-b37c-ec9f84ee8e14",CENTER_LON:54.33219878,CENTER_LAT:23.91267254,ADM0_VIZ_NAME:"United Arab Emirates",Short_Name_ZH:"阿拉伯联合酋长国",Short_Name_FR:"Émirats arabes unis",Short_Name_ES:"Emiratos Árabes Unidos",Short_Name_RU:"Объединенные Арабские Эмираты",Short_Name_AR:"الإمارات العربية المتحدة"}},{type:"Feature",id:161885,geometry:{type:"Point",coordinates:[51.1912008290001,25.3158099720001]},properties:{ADM0_NAME:"Qatar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1604,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161885,GUID:"d5c3fdc5-6328-4dc7-a12c-27f168944d11",CENTER_LON:51.19120083,CENTER_LAT:25.31580997,ADM0_VIZ_NAME:"Qatar",Short_Name_ZH:"卡塔尔",Short_Name_FR:"Qatar",Short_Name_ES:"Qatar",Short_Name_RU:"Катар",Short_Name_AR:"قطر"}},{type:"Feature",id:161886,geometry:{type:"Point",coordinates:[29.7821070850001,26.5565645950001]},properties:{ADM0_NAME:"Egypt",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1173,cum_clin:null,cum_susp:null,cum_death:78,EPIWeek:15,EPIYear:2020,Comment:null,ID:161886,GUID:"598e205c-5683-49e0-b61e-4b279e6c2082",CENTER_LON:29.78210708,CENTER_LAT:26.5565646,ADM0_VIZ_NAME:"Egypt",Short_Name_ZH:"埃及",Short_Name_FR:"Égypte",Short_Name_ES:"Egipto",Short_Name_RU:"Египет",Short_Name_AR:"مصر"}},{type:"Feature",id:161887,geometry:{type:"Point",coordinates:[-6.31780294899994,31.8835569710001]},properties:{ADM0_NAME:"Morocco",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1113,cum_clin:null,cum_susp:null,cum_death:71,EPIWeek:15,EPIYear:2020,Comment:null,ID:161887,GUID:"8b881b86-2b79-4d8d-992d-01d939e1cdb9",CENTER_LON:-6.31780295,CENTER_LAT:31.88355697,ADM0_VIZ_NAME:"Morocco",Short_Name_ZH:"摩洛哥",Short_Name_FR:"Maroc",Short_Name_ES:"Marruecos",Short_Name_RU:"Марокко",Short_Name_AR:"المغرب"}},{type:"Feature",id:161888,geometry:{type:"Point",coordinates:[43.7722455160001,33.048006538]},properties:{ADM0_NAME:"Iraq",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1031,cum_clin:null,cum_susp:null,cum_death:64,EPIWeek:15,EPIYear:2020,Comment:null,ID:161888,GUID:"1ffa0200-4cdb-47df-ba42-2e687224b89d",CENTER_LON:43.77224552,CENTER_LAT:33.04800654,ADM0_VIZ_NAME:"Iraq",Short_Name_ZH:"伊拉克",Short_Name_FR:"Iraq",Short_Name_ES:"Iraq",Short_Name_RU:"Ирак",Short_Name_AR:"العراق"}},{type:"Feature",id:161889,geometry:{type:"Point",coordinates:[50.5624891480001,26.0194739230001]},properties:{ADM0_NAME:"Bahrain",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:723,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161889,GUID:"9c36e72c-28fe-463f-8d8a-43ec9be45bc6",CENTER_LON:50.56248915,CENTER_LAT:26.01947392,ADM0_VIZ_NAME:"Bahrain",Short_Name_ZH:"巴林",Short_Name_FR:"Bahreïn",Short_Name_ES:"Bahrein",Short_Name_RU:"Бахрейн",Short_Name_AR:"البحرين"}},{type:"Feature",id:161890,geometry:{type:"Point",coordinates:[47.5935512790001,29.342509057]},properties:{ADM0_NAME:"Kuwait",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:665,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161890,GUID:"3b548ca2-357e-4c78-b4b8-9ed0205e0d29",CENTER_LON:47.59355128,CENTER_LAT:29.34250906,ADM0_VIZ_NAME:"Kuwait",Short_Name_ZH:"科威特",Short_Name_FR:"Koweït",Short_Name_ES:"Kuwait",Short_Name_RU:"Кувейт",Short_Name_AR:"الكويت"}},{type:"Feature",id:161891,geometry:{type:"Point",coordinates:[9.56156142200007,34.1112491690001]},properties:{ADM0_NAME:"Tunisia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:574,cum_clin:null,cum_susp:null,cum_death:22,EPIWeek:15,EPIYear:2020,Comment:null,ID:161891,GUID:"9e2fe46a-7ed9-4eda-9a6d-91dfb3d70d34",CENTER_LON:9.56156142,CENTER_LAT:34.11124917,ADM0_VIZ_NAME:"Tunisia",Short_Name_ZH:"突尼斯",Short_Name_FR:"Tunisie",Short_Name_ES:"Túnez",Short_Name_RU:"Тунис",Short_Name_AR:"تونس"}},{type:"Feature",id:161892,geometry:{type:"Point",coordinates:[35.8880612290001,33.920393044]},properties:{ADM0_NAME:"Lebanon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:541,cum_clin:null,cum_susp:null,cum_death:19,EPIWeek:15,EPIYear:2020,Comment:null,ID:161892,GUID:"3611afe5-e2e8-4576-aa04-e9516c701991",CENTER_LON:35.88806123,CENTER_LAT:33.92039304,ADM0_VIZ_NAME:"Lebanon",Short_Name_ZH:"黎巴嫩",Short_Name_FR:"Liban",Short_Name_ES:"Líbano",Short_Name_RU:"Ливан",Short_Name_AR:"لبنان"}},{type:"Feature",id:161893,geometry:{type:"Point",coordinates:[36.786941142,31.253381786]},properties:{ADM0_NAME:"Jordan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:345,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161893,GUID:"79882e66-3900-4c94-b9e1-fa2de8a2a6f0",CENTER_LON:36.78694114,CENTER_LAT:31.25338179,ADM0_VIZ_NAME:"Jordan",Short_Name_ZH:"约旦",Short_Name_FR:"Jordanie",Short_Name_ES:"Jordania",Short_Name_RU:"Иордания",Short_Name_AR:"الأردن"}},{type:"Feature",id:161894,geometry:{type:"Point",coordinates:[66.0265297700001,33.8389011570001]},properties:{ADM0_NAME:"Afghanistan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:337,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161894,GUID:"bf4e1516-20f9-4d0b-afee-15fb1fbbbbbe",CENTER_LON:66.02652977,CENTER_LAT:33.83890116,ADM0_VIZ_NAME:"Afghanistan",Short_Name_ZH:"阿富汗",Short_Name_FR:"Afghanistan",Short_Name_ES:"Afganistán",Short_Name_RU:"Афганистан",Short_Name_AR:"أفغانستان"}},{type:"Feature",id:161895,geometry:{type:"Point",coordinates:[56.1098174690001,20.6020836820001]},properties:{ADM0_NAME:"Oman",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:331,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161895,GUID:"5585e0a1-3071-45dd-9b00-1d4c91cb2c36",CENTER_LON:56.10981747,CENTER_LAT:20.60208368,ADM0_VIZ_NAME:"Oman",Short_Name_ZH:"阿曼",Short_Name_FR:"Oman",Short_Name_ES:"Omán",Short_Name_RU:"Оман",Short_Name_AR:"عمان"}},{type:"Feature",id:161896,geometry:{type:"Point",coordinates:[35.2037687770001,31.9139511390001]},properties:{ADM0_NAME:"occupied Palestinian territory",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:253,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161896,GUID:"34239be2-e939-4309-b18d-36cc81ef3230",CENTER_LON:35.20376878,CENTER_LAT:31.91395114,ADM0_VIZ_NAME:"occupied Palestinian territory",Short_Name_ZH:`巴勒斯坦被占领土\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161897,geometry:{type:"Point",coordinates:[42.5779402960001,11.7498128010001]},properties:{ADM0_NAME:"Djibouti",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:90,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161897,GUID:"01f29008-138c-45c3-a1e0-68200f08e1e9",CENTER_LON:42.5779403,CENTER_LAT:11.7498128,ADM0_VIZ_NAME:"Djibouti",Short_Name_ZH:"吉布提",Short_Name_FR:"Djibouti",Short_Name_ES:"Djibouti",Short_Name_RU:"Джибути",Short_Name_AR:"جيبوتي"}},{type:"Feature",id:161898,geometry:{type:"Point",coordinates:[38.5058474360001,35.0130727170001]},properties:{ADM0_NAME:"Syrian Arab Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:19,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161898,GUID:"cc57a348-8512-41f0-a924-29bce5e06948",CENTER_LON:38.50584744,CENTER_LAT:35.01307272,ADM0_VIZ_NAME:"Syrian Arab Republic",Short_Name_ZH:"阿拉伯叙利亚共和国",Short_Name_FR:"République arabe syrienne",Short_Name_ES:"República Árabe Siria",Short_Name_RU:"Сирийская Арабская Республика",Short_Name_AR:"الجمهورية العربية السورية"}},{type:"Feature",id:161899,geometry:{type:"Point",coordinates:[18.0231862690001,27.0440452400001]},properties:{ADM0_NAME:"Libya",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161899,GUID:"767c2628-8079-4eba-8899-55f29cfafb83",CENTER_LON:18.02318627,CENTER_LAT:27.04404524,ADM0_VIZ_NAME:"Libya",Short_Name_ZH:"利比亚",Short_Name_FR:"Libye",Short_Name_ES:"Libia",Short_Name_RU:"Ливия",Short_Name_AR:"ليبيا"}},{type:"Feature",id:161900,geometry:{type:"Point",coordinates:[30.004381349,16.048838211]},properties:{ADM0_NAME:"Sudan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:12,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161900,GUID:"3050873e-f010-4c4f-82d1-541e3c4fd887",CENTER_LON:30.00438135,CENTER_LAT:16.04883821,ADM0_VIZ_NAME:"Sudan",Short_Name_ZH:"苏丹",Short_Name_FR:"Soudan",Short_Name_ES:"Sudán",Short_Name_RU:"Судан",Short_Name_AR:"السودان"}},{type:"Feature",id:161901,geometry:{type:"Point",coordinates:[47.9564849590001,5.73058895600008]},properties:{ADM0_NAME:"Somalia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161901,GUID:"b5ff48b9-7282-445c-8cd2-befce4e0bda7",CENTER_LON:45.86255927,CENTER_LAT:6.0637135,ADM0_VIZ_NAME:"Somalia",Short_Name_ZH:"索马里",Short_Name_FR:"Somalie",Short_Name_ES:"Somalia",Short_Name_RU:"Сомали",Short_Name_AR:"الصومال"}},{type:"Feature",id:161903,geometry:{type:"Point",coordinates:[-101.433248,39.8897640000001]},properties:{ADM0_NAME:"United States of America",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:307318,cum_clin:null,cum_susp:null,cum_death:8358,EPIWeek:15,EPIYear:2020,Comment:null,ID:161903,GUID:"686f0da6-9025-4eb1-8f95-b164936ce382",CENTER_LON:-112.49356447,CENTER_LAT:45.6954816,ADM0_VIZ_NAME:"United States of America",Short_Name_ZH:"美利坚合众国",Short_Name_FR:"États-Unis d'Amérique",Short_Name_ES:"Estados Unidos de América",Short_Name_RU:"Соединенные Штаты Америки",Short_Name_AR:"الولايات المتحدة الأمريكية "}},{type:"Feature",id:161904,geometry:{type:"Point",coordinates:[-101.433248,57.393067]},properties:{ADM0_NAME:"Canada",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:13904,cum_clin:null,cum_susp:null,cum_death:231,EPIWeek:15,EPIYear:2020,Comment:null,ID:161904,GUID:"3c3c3405-35c5-4143-a7ab-738cf519268d",CENTER_LON:-98.26094698,CENTER_LAT:61.3930667,ADM0_VIZ_NAME:"Canada",Short_Name_ZH:"加拿大",Short_Name_FR:"Canada",Short_Name_ES:"Canadá",Short_Name_RU:"Канада",Short_Name_AR:"كندا"}},{type:"Feature",id:161905,geometry:{type:"Point",coordinates:[-53.088754363,-10.772282796]},properties:{ADM0_NAME:"Brazil",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10278,cum_clin:null,cum_susp:null,cum_death:432,EPIWeek:15,EPIYear:2020,Comment:null,ID:161905,GUID:"dbe63621-0172-44aa-a620-596915232432",CENTER_LON:-53.08875436,CENTER_LAT:-10.7722828,ADM0_VIZ_NAME:"Brazil",Short_Name_ZH:"巴西",Short_Name_FR:"Brésil",Short_Name_ES:"Brasil",Short_Name_RU:"Бразилия",Short_Name_AR:"البرازيل"}},{type:"Feature",id:161906,geometry:{type:"Point",coordinates:[-71.380093845,-37.868119222]},properties:{ADM0_NAME:"Chile",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4471,cum_clin:null,cum_susp:null,cum_death:34,EPIWeek:15,EPIYear:2020,Comment:null,ID:161906,GUID:"b359383b-d629-4086-b6b3-2bb5380272dc",CENTER_LON:-71.38009385,CENTER_LAT:-37.86811922,ADM0_VIZ_NAME:"Chile",Short_Name_ZH:"智利",Short_Name_FR:"Chili",Short_Name_ES:"Chile",Short_Name_RU:"Чили",Short_Name_AR:"شيلي"}},{type:"Feature",id:161907,geometry:{type:"Point",coordinates:[-78.780961767,-1.42528336599997]},properties:{ADM0_NAME:"Ecuador",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3465,cum_clin:null,cum_susp:null,cum_death:172,EPIWeek:15,EPIYear:2020,Comment:null,ID:161907,GUID:"41c1d495-2f62-42c7-a9be-16e90c179973",CENTER_LON:-78.78096177,CENTER_LAT:-1.42528337,ADM0_VIZ_NAME:"Ecuador",Short_Name_ZH:"厄瓜多尔",Short_Name_FR:"Équateur",Short_Name_ES:"Ecuador",Short_Name_RU:"Эквадор",Short_Name_AR:"إكوادور"}},{type:"Feature",id:161908,geometry:{type:"Point",coordinates:[-102.534990927,23.950928413]},properties:{ADM0_NAME:"Mexico",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1890,cum_clin:null,cum_susp:null,cum_death:79,EPIWeek:15,EPIYear:2020,Comment:null,ID:161908,GUID:"6c394d8d-8acc-4369-a7ee-c367dc533fdf",CENTER_LON:-102.53499093,CENTER_LAT:23.95092841,ADM0_VIZ_NAME:"Mexico",Short_Name_ZH:"墨西哥",Short_Name_FR:"Mexique",Short_Name_ES:"México",Short_Name_RU:"Мексика",Short_Name_AR:"المكسيك"}},{type:"Feature",id:161909,geometry:{type:"Point",coordinates:[-80.1090688369999,8.50544318000004]},properties:{ADM0_NAME:"Panama",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1801,cum_clin:null,cum_susp:null,cum_death:46,EPIWeek:15,EPIYear:2020,Comment:null,ID:161909,GUID:"91321513-fa2a-4cf9-a076-9b4e7d336306",CENTER_LON:-80.10906884,CENTER_LAT:8.50544318,ADM0_VIZ_NAME:"Panama",Short_Name_ZH:"巴拿马",Short_Name_FR:"Panama",Short_Name_ES:"Panamá",Short_Name_RU:"Панама",Short_Name_AR:"بنما"}},{type:"Feature",id:161910,geometry:{type:"Point",coordinates:[-74.375406681,-9.16377132599996]},properties:{ADM0_NAME:"Peru",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1746,cum_clin:null,cum_susp:null,cum_death:73,EPIWeek:15,EPIYear:2020,Comment:null,ID:161910,GUID:"aec1089a-a796-4ccb-bba0-bffde1eda7ee",CENTER_LON:-74.37540668,CENTER_LAT:-9.16377133,ADM0_VIZ_NAME:"Peru",Short_Name_ZH:"秘鲁",Short_Name_FR:"Pérou",Short_Name_ES:"Perú",Short_Name_RU:"Перу",Short_Name_AR:"بيرو"}},{type:"Feature",id:161911,geometry:{type:"Point",coordinates:[-70.485434472,18.8930938570001]},properties:{ADM0_NAME:"Dominican Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1488,cum_clin:null,cum_susp:null,cum_death:68,EPIWeek:15,EPIYear:2020,Comment:null,ID:161911,GUID:"29bca7cc-63a9-4125-aba4-d9d7ffaec4f8",CENTER_LON:-70.48543447,CENTER_LAT:18.89309386,ADM0_VIZ_NAME:"Dominican Republic",Short_Name_ZH:"多米尼加 ",Short_Name_FR:"République dominicaine",Short_Name_ES:"República Dominicana",Short_Name_RU:"Доминиканская Республика",Short_Name_AR:"الجمهورية الدومينيكية"}},{type:"Feature",id:161912,geometry:{type:"Point",coordinates:[-65.167484744,-35.376672529]},properties:{ADM0_NAME:"Argentina",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1451,cum_clin:null,cum_susp:null,cum_death:44,EPIWeek:15,EPIYear:2020,Comment:null,ID:161912,GUID:"61ea4a3a-5a12-410e-8af0-0d59d828a9dd",CENTER_LON:-65.16748474,CENTER_LAT:-35.37667253,ADM0_VIZ_NAME:"Argentina",Short_Name_ZH:"阿根廷 ",Short_Name_FR:"Argentine",Short_Name_ES:"Argentina",Short_Name_RU:"Аргентина",Short_Name_AR:"الأرجنتين"}},{type:"Feature",id:161913,geometry:{type:"Point",coordinates:[-73.075763345,3.90037400800003]},properties:{ADM0_NAME:"Colombia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1406,cum_clin:null,cum_susp:null,cum_death:32,EPIWeek:15,EPIYear:2020,Comment:null,ID:161913,GUID:"140398f0-b719-4865-aa11-f3dd7a3e137b",CENTER_LON:-73.07576335,CENTER_LAT:3.90037401,ADM0_VIZ_NAME:"Colombia",Short_Name_ZH:"哥伦比亚",Short_Name_FR:"Colombie",Short_Name_ES:"Colombia",Short_Name_RU:"Колумбия",Short_Name_AR:"كولومبيا"}},{type:"Feature",id:161914,geometry:{type:"Point",coordinates:[-66.466127479,18.220930739]},properties:{ADM0_NAME:"Puerto Rico",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:452,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161914,GUID:"d6d8a819-df69-4d1d-9773-210daee6fa94",CENTER_LON:-66.46612748,CENTER_LAT:18.22093074,ADM0_VIZ_NAME:"Puerto Rico",Short_Name_ZH:`波多黎各\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161915,geometry:{type:"Point",coordinates:[-84.189038674,9.97052135000007]},properties:{ADM0_NAME:"Costa Rica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:435,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161915,GUID:"6a30141b-1259-45ef-9303-9b3087a67606",CENTER_LON:-84.18903867,CENTER_LAT:9.97052135,ADM0_VIZ_NAME:"Costa Rica",Short_Name_ZH:"哥斯达黎加",Short_Name_FR:"Costa Rica",Short_Name_ES:"Costa Rica",Short_Name_RU:"Коста-Рика",Short_Name_AR:"كوستاريكا"}},{type:"Feature",id:161916,geometry:{type:"Point",coordinates:[-56.012173616,-32.7995699159999]},properties:{ADM0_NAME:"Uruguay",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:400,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161916,GUID:"6c459166-4e08-4ab6-8ada-b4509dbc38d8",CENTER_LON:-56.01217362,CENTER_LAT:-32.79956992,ADM0_VIZ_NAME:"Uruguay",Short_Name_ZH:"乌拉圭",Short_Name_FR:"Uruguay",Short_Name_ES:"Uruguay",Short_Name_RU:"Уругвай",Short_Name_AR:"أوروغواي"}},{type:"Feature",id:161917,geometry:{type:"Point",coordinates:[-79.0381997969999,21.621420958]},properties:{ADM0_NAME:"Cuba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:320,cum_clin:null,cum_susp:null,cum_death:8,EPIWeek:15,EPIYear:2020,Comment:null,ID:161917,GUID:"57e6170d-3eb1-4cfe-9335-a61c5f2ff534",CENTER_LON:-79.0381998,CENTER_LAT:21.62142096,ADM0_VIZ_NAME:"Cuba",Short_Name_ZH:"古巴",Short_Name_FR:"Cuba",Short_Name_ES:"Cuba",Short_Name_RU:"Куба",Short_Name_AR:"كوبا"}},{type:"Feature",id:161918,geometry:{type:"Point",coordinates:[-86.619658987,14.819348125]},properties:{ADM0_NAME:"Honduras",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:268,cum_clin:null,cum_susp:null,cum_death:22,EPIWeek:15,EPIYear:2020,Comment:null,ID:161918,GUID:"8d033cd7-4b1e-4c4c-87f0-879f94799ca2",CENTER_LON:-86.61965899,CENTER_LAT:14.81934813,ADM0_VIZ_NAME:"Honduras",Short_Name_ZH:"洪都拉斯",Short_Name_FR:"Honduras",Short_Name_ES:"Honduras",Short_Name_RU:"Гондурас",Short_Name_AR:"هندوراس"}},{type:"Feature",id:161919,geometry:{type:"Point",coordinates:[-64.6705484729999,-16.7151098919999]},properties:{ADM0_NAME:"Bolivia (Plurinational State of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:157,cum_clin:null,cum_susp:null,cum_death:10,EPIWeek:15,EPIYear:2020,Comment:null,ID:161919,GUID:"500e72b0-dbef-4fea-b333-bcd8fd377eb9",CENTER_LON:-64.67054847,CENTER_LAT:-16.71510989,ADM0_VIZ_NAME:"Bolivia (Plurinational State of)",Short_Name_ZH:"玻利维亚(多民族国)",Short_Name_FR:"Bolivie (État plurinational de)",Short_Name_ES:"Bolivia (Estado Plurinacional de) ",Short_Name_RU:"Боливия (Многонациональное Государство)",Short_Name_AR:"بوليفيا (دولة - المتعددة القوميات)"}},{type:"Feature",id:161920,geometry:{type:"Point",coordinates:[-61.021473822,14.6527741950001]},properties:{ADM0_NAME:"Martinique",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:145,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161920,GUID:"91fe4643-e623-462d-a9ae-d704c5ea52c1",CENTER_LON:-61.02147382,CENTER_LAT:14.65277419,ADM0_VIZ_NAME:"Martinique",Short_Name_ZH:`马提尼克岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161921,geometry:{type:"Point",coordinates:[-66.1662151469999,7.12493711500002]},properties:{ADM0_NAME:"Venezuela (Bolivarian Republic of)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:144,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161921,GUID:"64a39a4b-9812-43f6-861e-d1f31045aced",CENTER_LON:-66.16621515,CENTER_LAT:7.12493711,ADM0_VIZ_NAME:"Venezuela (Bolivarian Republic of)",Short_Name_ZH:"委内瑞拉(玻利瓦尔共和国)",Short_Name_FR:"Venezuela (République bolivarienne du)",Short_Name_ES:"Venezuela (República Bolivariana de)",Short_Name_RU:"Венесуэла (Боливарианская Республика)",Short_Name_AR:"فنزويلا"}},{type:"Feature",id:161922,geometry:{type:"Point",coordinates:[-61.530392424,16.2012635740001]},properties:{ADM0_NAME:"Guadeloupe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:134,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161922,GUID:"899b5328-c489-48c0-b77d-536f26908563",CENTER_LON:-61.53039242,CENTER_LAT:16.20126357,ADM0_VIZ_NAME:"Guadeloupe",Short_Name_ZH:`瓜德罗普岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161923,geometry:{type:"Point",coordinates:[-58.390951781,-23.236128874]},properties:{ADM0_NAME:"Paraguay",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:104,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161923,GUID:"7e78b4f3-d231-444c-a8ab-c82373666a3f",CENTER_LON:-58.39095178,CENTER_LAT:-23.23612887,ADM0_VIZ_NAME:"Paraguay",Short_Name_ZH:"巴拉圭",Short_Name_FR:"Paraguay",Short_Name_ES:"Paraguay",Short_Name_RU:"Парагвай",Short_Name_AR:"باراغواي"}},{type:"Feature",id:161924,geometry:{type:"Point",coordinates:[-61.2526372249999,10.4683642860001]},properties:{ADM0_NAME:"Trinidad and Tobago",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:103,cum_clin:null,cum_susp:null,cum_death:6,EPIWeek:15,EPIYear:2020,Comment:null,ID:161924,GUID:"f78fa74a-5f4e-4e3d-870e-aad4ac4fcc6c",CENTER_LON:-61.25263722,CENTER_LAT:10.46836429,ADM0_VIZ_NAME:"Trinidad and Tobago",Short_Name_ZH:"特立尼达和多巴哥",Short_Name_FR:"Trinité-et-Tobago",Short_Name_ES:"Trinidad y Tabago",Short_Name_RU:"Тринидад и Тобаго ",Short_Name_AR:"ترينيداد وتوباغو"}},{type:"Feature",id:161925,geometry:{type:"Point",coordinates:[-53.2412669619999,3.92438820100006]},properties:{ADM0_NAME:"French Guiana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:66,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161925,GUID:"31ab5f81-ad33-43ce-8491-1fa569d46c57",CENTER_LON:-53.24126696,CENTER_LAT:3.9243882,ADM0_VIZ_NAME:"French Guiana",Short_Name_ZH:`法属圭亚那\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161926,geometry:{type:"Point",coordinates:[-69.977133134,12.5166873650001]},properties:{ADM0_NAME:"Aruba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:64,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161926,GUID:"a5ca2f77-2705-4a8f-baee-ce6df1770224",CENTER_LON:-69.97713313,CENTER_LAT:12.51668736,ADM0_VIZ_NAME:"Aruba",Short_Name_ZH:`阿鲁巴\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161927,geometry:{type:"Point",coordinates:[-88.8656067429999,13.736145316]},properties:{ADM0_NAME:"El Salvador",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:62,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161927,GUID:"fa42353f-8656-4bc4-8ef4-19ba8a07848c",CENTER_LON:-88.86560674,CENTER_LAT:13.73614532,ADM0_VIZ_NAME:"El Salvador",Short_Name_ZH:"萨尔瓦多",Short_Name_FR:"El Salvador",Short_Name_ES:"El Salvador",Short_Name_RU:"Сальвадор",Short_Name_AR:"السلفادور"}},{type:"Feature",id:161928,geometry:{type:"Point",coordinates:[-90.356949304,15.7023025980001]},properties:{ADM0_NAME:"Guatemala",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:61,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161928,GUID:"7c9c0379-abf3-47b2-be97-0f40ded5f732",CENTER_LON:-90.3569493,CENTER_LAT:15.7023026,ADM0_VIZ_NAME:"Guatemala",Short_Name_ZH:"危地马拉",Short_Name_FR:"Guatemala",Short_Name_ES:"Guatemala",Short_Name_RU:"Гватемала",Short_Name_AR:"غواتيمالا"}},{type:"Feature",id:161929,geometry:{type:"Point",coordinates:[-77.3197508119999,18.151330639]},properties:{ADM0_NAME:"Jamaica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:55,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161929,GUID:"203d9c03-8c32-4506-8ae0-abfc176c586f",CENTER_LON:-77.31975081,CENTER_LAT:18.15133064,ADM0_VIZ_NAME:"Jamaica",Short_Name_ZH:"牙买加",Short_Name_FR:"Jamaïque",Short_Name_ES:"Jamaica",Short_Name_RU:"Ямайка",Short_Name_AR:"جامايكا"}},{type:"Feature",id:161930,geometry:{type:"Point",coordinates:[-59.5621269649999,13.1787990180001]},properties:{ADM0_NAME:"Barbados",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:51,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161930,GUID:"7c810b1f-298c-4f95-a84d-ce460e6e593d",CENTER_LON:-59.56212696,CENTER_LAT:13.17879902,ADM0_VIZ_NAME:"Barbados",Short_Name_ZH:"巴巴多斯",Short_Name_FR:"Barbade",Short_Name_ES:"Barbados",Short_Name_RU:"Барбадос",Short_Name_AR:"بربادوس"}},{type:"Feature",id:161931,geometry:{type:"Point",coordinates:[-64.7869272139999,17.967889896]},properties:{ADM0_NAME:"United States Virgin Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:42,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161931,GUID:"446c32b0-82a6-46a6-896d-731014da7e78",CENTER_LON:-64.78692721,CENTER_LAT:17.9678899,ADM0_VIZ_NAME:"United States Virgin Islands",Short_Name_ZH:`美属维尔京群岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161932,geometry:{type:"Point",coordinates:[-64.7563772199999,32.3134949820001]},properties:{ADM0_NAME:"Bermuda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:37,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161932,GUID:"52405a96-0ce0-44d8-9634-3d0585d5e7fa",CENTER_LON:-64.75637722,CENTER_LAT:32.31349498,ADM0_VIZ_NAME:"Bermuda",Short_Name_ZH:`百慕大\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161933,geometry:{type:"Point",coordinates:[-80.82909683,19.4315249970001]},properties:{ADM0_NAME:"Cayman Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:35,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161933,GUID:"5e1bff1e-8435-4bf8-ae33-bea5d4269c84",CENTER_LON:-80.82909683,CENTER_LAT:19.431525,ADM0_VIZ_NAME:"Cayman Islands",Short_Name_ZH:`开曼群岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161934,geometry:{type:"Point",coordinates:[-63.064572292,18.0876049020001]},properties:{ADM0_NAME:"Saint Martin",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:29,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161934,GUID:"17c12ab2-0c7d-412b-b525-3f740cbc3e6c",CENTER_LON:-63.06457229,CENTER_LAT:18.0876049,ADM0_VIZ_NAME:"Saint Martin",Short_Name_ZH:`圣马丁岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161935,geometry:{type:"Point",coordinates:[-76.5004385,24.166682904]},properties:{ADM0_NAME:"Bahamas",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:28,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161935,GUID:"33b1cbcb-fe87-4a85-95cb-6da429e96a44",CENTER_LON:-76.5004385,CENTER_LAT:24.1666829,ADM0_VIZ_NAME:"Bahamas",Short_Name_ZH:"巴哈马",Short_Name_FR:"Bahamas",Short_Name_ES:"Bahamas",Short_Name_RU:"Багамские Острова",Short_Name_AR:"جزر البهاما"}},{type:"Feature",id:161936,geometry:{type:"Point",coordinates:[-58.9741634929999,4.79237827200006]},properties:{ADM0_NAME:"Guyana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:24,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161936,GUID:"b663554a-3aa6-47a6-ba74-453b3ef0dcd1",CENTER_LON:-58.97416349,CENTER_LAT:4.79237827,ADM0_VIZ_NAME:"Guyana",Short_Name_ZH:"圭亚那",Short_Name_FR:"Guyana",Short_Name_ES:"Guyana",Short_Name_RU:"Гайана",Short_Name_AR:"غيانا"}},{type:"Feature",id:161937,geometry:{type:"Point",coordinates:[-63.061943376,18.046835238]},properties:{ADM0_NAME:"Sint Maarten",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:23,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161937,GUID:"7974e7a0-7846-4685-946a-da7f5315015d",CENTER_LON:-63.06194338,CENTER_LAT:18.04683524,ADM0_VIZ_NAME:"Sint Maarten",Short_Name_ZH:`圣马丁\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161938,geometry:{type:"Point",coordinates:[-72.683580138,18.9390013620001]},properties:{ADM0_NAME:"Haiti",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161938,GUID:"45438a36-15d1-416a-b380-1606669af4c7",CENTER_LON:-72.68358014,CENTER_LAT:18.93900136,ADM0_VIZ_NAME:"Haiti",Short_Name_ZH:"海地",Short_Name_FR:"Haïti",Short_Name_ES:"Haití",Short_Name_RU:"Гаити",Short_Name_AR:"هايتي"}},{type:"Feature",id:161939,geometry:{type:"Point",coordinates:[-60.968690838,13.8981151830001]},properties:{ADM0_NAME:"Saint Lucia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161939,GUID:"4f023367-6b34-4f1f-9570-0a3fb3983ca5",CENTER_LON:-60.96869084,CENTER_LAT:13.89811518,ADM0_VIZ_NAME:"Saint Lucia",Short_Name_ZH:"圣卢西亚",Short_Name_FR:"Sainte-Lucie",Short_Name_ES:"Santa Lucía",Short_Name_RU:"Сент-Люсия",Short_Name_AR:"سانت لوسيا"}},{type:"Feature",id:161940,geometry:{type:"Point",coordinates:[-61.650039087,12.162515732]},properties:{ADM0_NAME:"Grenada",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:12,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161940,GUID:"4b754e02-4287-4b40-9237-7e13fb010e05",CENTER_LON:-61.65003909,CENTER_LAT:12.16251573,ADM0_VIZ_NAME:"Grenada",Short_Name_ZH:"格林纳达",Short_Name_FR:"Grenade",Short_Name_ES:"Granada",Short_Name_RU:"Гренада",Short_Name_AR:"غرينادا"}},{type:"Feature",id:161941,geometry:{type:"Point",coordinates:[-68.967490546,12.187797523]},properties:{ADM0_NAME:"Curaçao",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161941,GUID:"9ebcf8c2-5724-465e-93ee-b30f90cc72d2",CENTER_LON:-68.96749055,CENTER_LAT:12.18779752,ADM0_VIZ_NAME:"Curaçao",Short_Name_ZH:`库拉索岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161942,geometry:{type:"Point",coordinates:[-61.355493849,15.4366125190001]},properties:{ADM0_NAME:"Dominica",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:11,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161942,GUID:"1c6dac95-666f-4994-abdc-7d788e9d27cd",CENTER_LON:-61.35549385,CENTER_LAT:15.43661252,ADM0_VIZ_NAME:"Dominica",Short_Name_ZH:"多米尼克",Short_Name_FR:"Dominique",Short_Name_ES:"Dominica",Short_Name_RU:"Доминика",Short_Name_AR:"دومينيكا"}},{type:"Feature",id:161943,geometry:{type:"Point",coordinates:[-55.9115812429999,4.12671321000005]},properties:{ADM0_NAME:"Suriname",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161943,GUID:"33662fcb-6959-4784-a877-29e3781477c2",CENTER_LON:-55.91158124,CENTER_LAT:4.12671321,ADM0_VIZ_NAME:"Suriname",Short_Name_ZH:"苏里南",Short_Name_FR:"Suriname",Short_Name_ES:"Suriname",Short_Name_RU:"Суринам",Short_Name_AR:"سورينام"}},{type:"Feature",id:161944,geometry:{type:"Point",coordinates:[-62.696173968,17.2658565570001]},properties:{ADM0_NAME:"Saint Kitts and Nevis",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161944,GUID:"f6334680-79c9-450c-bddb-95facb6af2b9",CENTER_LON:-62.69617397,CENTER_LAT:17.26585656,ADM0_VIZ_NAME:"Saint Kitts and Nevis",Short_Name_ZH:"圣基茨和尼维斯",Short_Name_FR:"Saint-Kitts-et-Nevis",Short_Name_ES:"Saint Kitts y Nevis",Short_Name_RU:"Сент-Китс и Невис",Short_Name_AR:"سانت كيتس ونيفس"}},{type:"Feature",id:161945,geometry:{type:"Point",coordinates:[-61.791127591,17.280137]},properties:{ADM0_NAME:"Antigua and Barbuda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:7,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161945,GUID:"2debcae0-be57-4212-8b92-8a0be7da51a4",CENTER_LON:-61.79112759,CENTER_LAT:17.280137,ADM0_VIZ_NAME:"Antigua and Barbuda",Short_Name_ZH:"安提瓜和巴布达",Short_Name_FR:"Antigua-et-Barbuda",Short_Name_ES:"Antigua y Barbuda",Short_Name_RU:"Антигуа и Барбуда",Short_Name_AR:"أنتيغوا وبربودا"}},{type:"Feature",id:161946,geometry:{type:"Point",coordinates:[-62.186921449,16.7357596900001]},properties:{ADM0_NAME:"Montserrat",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161946,GUID:"9a351f16-f468-4e6a-925e-03db8fbd4ba7",CENTER_LON:-62.18692145,CENTER_LAT:16.73575969,ADM0_VIZ_NAME:"Montserrat",Short_Name_ZH:`蒙特塞拉特岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161947,geometry:null,properties:{ADM0_NAME:"Saint Bathélemy",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161947,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:null,Short_Name_ZH:null,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161948,geometry:{type:"Point",coordinates:[-88.682785445,17.218528292]},properties:{ADM0_NAME:"Belize",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161948,GUID:"a4d24382-fdc3-4d00-9100-b548a6242d22",CENTER_LON:-88.68278545,CENTER_LAT:17.21852829,ADM0_VIZ_NAME:"Belize",Short_Name_ZH:"伯利兹",Short_Name_FR:"Belize",Short_Name_ES:"Belice",Short_Name_RU:"Белиз",Short_Name_AR:"بليز"}},{type:"Feature",id:161949,geometry:{type:"Point",coordinates:[-85.033750249,12.8400697610001]},properties:{ADM0_NAME:"Nicaragua",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161949,GUID:"85203b89-a328-4d85-b6e4-c9596a5c5a6f",CENTER_LON:-85.03375025,CENTER_LAT:12.84006976,ADM0_VIZ_NAME:"Nicaragua",Short_Name_ZH:"尼加拉瓜",Short_Name_FR:"Nicaragua",Short_Name_ES:"Nicaragua",Short_Name_RU:"Никарагуа",Short_Name_AR:"نيكاراغوا"}},{type:"Feature",id:161950,geometry:{type:"Point",coordinates:[-71.882079172,21.8086929190001]},properties:{ADM0_NAME:"Turks and Caicos Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161950,GUID:"370668bf-3302-4cb1-928d-261a3fdd09ee",CENTER_LON:-71.88207917,CENTER_LAT:21.80869292,ADM0_VIZ_NAME:"Turks and Caicos Islands",Short_Name_ZH:`特克斯和凯科斯群岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161951,geometry:{type:"Point",coordinates:[-63.057956094,18.2242329370001]},properties:{ADM0_NAME:"Anguilla",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161951,GUID:"a4e72e84-00bb-4ad5-890e-a9e6734a28ee",CENTER_LON:-63.05795609,CENTER_LAT:18.22423294,ADM0_VIZ_NAME:"Anguilla",Short_Name_ZH:`安圭拉\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161952,geometry:{type:"Point",coordinates:[-64.481892015,18.5099570350001]},properties:{ADM0_NAME:"British Virgin Islands",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161952,GUID:"81eb8a93-1c6f-46a7-8927-543258b1b974",CENTER_LON:-64.48189201,CENTER_LAT:18.50995704,ADM0_VIZ_NAME:"British Virgin Islands",Short_Name_ZH:`英属维尔京群岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161953,geometry:{type:"Point",coordinates:[-61.2075300889999,13.2020546800001]},properties:{ADM0_NAME:"Saint Vincent and the Grenadines",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161953,GUID:"e0de017e-24ec-454f-aee3-57443de5b7d2",CENTER_LON:-61.20753009,CENTER_LAT:13.20205468,ADM0_VIZ_NAME:"Saint Vincent and the Grenadines",Short_Name_ZH:"圣文森特和格林纳丁斯",Short_Name_FR:"Saint-Vincent-et-les Grenadines",Short_Name_ES:"San Vicente y las Granadinas",Short_Name_RU:"Сент-Винсент и Гренадины",Short_Name_AR:"سانت فنسنت وجزر غرينادين"}},{type:"Feature",id:161954,geometry:{type:"Point",coordinates:[-67.6837091749999,12.801902598]},properties:{ADM0_NAME:"Bonaire, Sint Eustatius and Saba",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161954,GUID:"03d049e6-6b6d-40e8-8be7-c2d0bf288b51",CENTER_LON:-67.68370917,CENTER_LAT:12.8019026,ADM0_VIZ_NAME:"Bonaire, Sint Eustatius and Saba",Short_Name_ZH:`博内尔、圣尤斯特歇斯和萨巴\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161955,geometry:{type:"Point",coordinates:[-59.3723460369999,-51.739824397]},properties:{ADM0_NAME:"Falkland Islands (Malvinas)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:2,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161955,GUID:"769ffe65-df8d-4c93-aae9-abb20ae84439",CENTER_LON:-59.37234604,CENTER_LAT:-51.7398244,ADM0_VIZ_NAME:"Falkland Islands (Malvinas)",Short_Name_ZH:`福克兰群岛(马尔维纳斯群岛)\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161956,geometry:{type:"Point",coordinates:[25.0887119870001,-28.993213517]},properties:{ADM0_NAME:"South Africa",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1655,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:161956,GUID:"36a8fa2c-5b69-47e3-bac8-dc657e44de43",CENTER_LON:25.08871199,CENTER_LAT:-28.99321352,ADM0_VIZ_NAME:"South Africa",Short_Name_ZH:"南非",Short_Name_FR:"Afrique du Sud",Short_Name_ES:"Sudáfrica",Short_Name_RU:"Южная Африка",Short_Name_AR:"جنوب أفريقيا"}},{type:"Feature",id:161957,geometry:{type:"Point",coordinates:[2.63236594700004,28.1633574140001]},properties:{ADM0_NAME:"Algeria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1251,cum_clin:null,cum_susp:null,cum_death:130,EPIWeek:15,EPIYear:2020,Comment:null,ID:161957,GUID:"74e60ac9-fe75-4273-9483-536bb1dd9f64",CENTER_LON:2.63236595,CENTER_LAT:28.16335741,ADM0_VIZ_NAME:"Algeria",Short_Name_ZH:"阿尔及利亚",Short_Name_FR:"Algérie",Short_Name_ES:"Argelia",Short_Name_RU:"Алжир",Short_Name_AR:"الجزائر"}},{type:"Feature",id:161958,geometry:{type:"Point",coordinates:[12.7432535040001,5.68580436000002]},properties:{ADM0_NAME:"Cameroon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:555,cum_clin:null,cum_susp:null,cum_death:9,EPIWeek:15,EPIYear:2020,Comment:null,ID:161958,GUID:"5cdb6bf4-89ce-457e-9c53-fb9142d71ba0",CENTER_LON:12.7432535,CENTER_LAT:5.68580436,ADM0_VIZ_NAME:"Cameroon",Short_Name_ZH:"喀麦隆",Short_Name_FR:"Cameroun",Short_Name_ES:"Camerún",Short_Name_RU:"Камерун",Short_Name_AR:"الكاميرون"}},{type:"Feature",id:161959,geometry:{type:"Point",coordinates:[-1.73983521099996,12.277937148]},properties:{ADM0_NAME:"Burkina Faso",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:345,cum_clin:null,cum_susp:null,cum_death:17,EPIWeek:15,EPIYear:2020,Comment:null,ID:161959,GUID:"9612ac85-d7cd-4b88-b2b9-c7b6db8ab6de",CENTER_LON:-1.73983521,CENTER_LAT:12.27793715,ADM0_VIZ_NAME:"Burkina Faso",Short_Name_ZH:"布基纳法索",Short_Name_FR:"Burkina Faso",Short_Name_ES:"Burkina Faso",Short_Name_RU:"Буркина-Фасо",Short_Name_AR:"بوركينا فاسو"}},{type:"Feature",id:161960,geometry:{type:"Point",coordinates:[55.538212738,-21.1216294619999]},properties:{ADM0_NAME:"Réunion",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:344,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161960,GUID:"be01a35a-ea31-4453-bb23-5a01330a658f",CENTER_LON:55.53821274,CENTER_LAT:-21.12162946,ADM0_VIZ_NAME:"Réunion",Short_Name_ZH:`留尼汪岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161961,geometry:null,properties:{ADM0_NAME:"Côte d'Ivoire",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:261,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161961,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:null,Short_Name_ZH:null,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161962,geometry:{type:"Point",coordinates:[8.10527725500003,9.59360399500002]},properties:{ADM0_NAME:"Nigeria",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:232,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161962,GUID:"3eba1f03-98d4-4335-804e-6c3f9e7d5da1",CENTER_LON:8.10527726,CENTER_LAT:9.59360399,ADM0_VIZ_NAME:"Nigeria",Short_Name_ZH:"尼日利亚",Short_Name_FR:"Nigéria",Short_Name_ES:"Nigeria",Short_Name_RU:"Нигерия",Short_Name_AR:"نيجيريا"}},{type:"Feature",id:161963,geometry:{type:"Point",coordinates:[57.868475995,-20.1700677979999]},properties:{ADM0_NAME:"Mauritius",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:227,cum_clin:null,cum_susp:null,cum_death:7,EPIWeek:15,EPIYear:2020,Comment:null,ID:161963,GUID:"2094fffc-8af7-4e5e-8bcd-176608114177",CENTER_LON:57.868476,CENTER_LAT:-20.1700678,ADM0_VIZ_NAME:"Mauritius",Short_Name_ZH:"毛里求斯",Short_Name_FR:"Maurice",Short_Name_ES:"Mauricio",Short_Name_RU:"Маврикий",Short_Name_AR:"موريشيوس"}},{type:"Feature",id:161964,geometry:{type:"Point",coordinates:[-14.4681770789999,14.3669795380001]},properties:{ADM0_NAME:"Senegal",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:226,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161964,GUID:"08acdf4e-cc04-46d9-b4c1-75f6ef39b685",CENTER_LON:-14.46817708,CENTER_LAT:14.36697954,ADM0_VIZ_NAME:"Senegal",Short_Name_ZH:"塞内加尔",Short_Name_FR:"Sénégal",Short_Name_ES:"Senegal",Short_Name_RU:"Сенегал",Short_Name_AR:"السنغال"}},{type:"Feature",id:161965,geometry:{type:"Point",coordinates:[-1.20704618899993,7.95964382200003]},properties:{ADM0_NAME:"Ghana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:214,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161965,GUID:"f582ca2f-9b52-4cea-ac99-2ae687930d8e",CENTER_LON:-1.20704619,CENTER_LAT:7.95964382,ADM0_VIZ_NAME:"Ghana",Short_Name_ZH:"加纳",Short_Name_FR:"Ghana",Short_Name_ES:"Ghana",Short_Name_RU:"Гана",Short_Name_AR:"غانا"}},{type:"Feature",id:161966,geometry:{type:"Point",coordinates:[9.39765753500006,17.4263228230001]},properties:{ADM0_NAME:"Niger",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:184,cum_clin:null,cum_susp:null,cum_death:10,EPIWeek:15,EPIYear:2020,Comment:null,ID:161966,GUID:"bb6da46b-2209-45c4-b51a-fb815b957eee",CENTER_LON:9.39765754,CENTER_LAT:17.42632282,ADM0_VIZ_NAME:"Niger",Short_Name_ZH:"尼日尔",Short_Name_FR:"Niger",Short_Name_ES:"Níger",Short_Name_RU:"Нигер",Short_Name_AR:"النيجر"}},{type:"Feature",id:161967,geometry:{type:"Point",coordinates:[23.6544653930001,-2.87619975299998]},properties:{ADM0_NAME:"Democratic Republic of the Congo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:161,cum_clin:null,cum_susp:null,cum_death:18,EPIWeek:15,EPIYear:2020,Comment:null,ID:161967,GUID:"39cf5edd-97d7-4d13-a724-a5d098782320",CENTER_LON:23.65431545,CENTER_LAT:-2.87622576,ADM0_VIZ_NAME:"Democratic Republic of the Congo",Short_Name_ZH:"刚果民主共和国",Short_Name_FR:"République démocratique du Congo",Short_Name_ES:"República Democrática del Congo",Short_Name_RU:"Демократическая Республика Конго",Short_Name_AR:"جمهورية الكونغو الديمقراطية "}},{type:"Feature",id:161968,geometry:{type:"Point",coordinates:[45.139261742,-12.8183500609999]},properties:{ADM0_NAME:"Mayotte",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:147,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161968,GUID:"54c780ec-3aa8-442e-987f-6589116a3f57",CENTER_LON:45.13926174,CENTER_LAT:-12.81835006,ADM0_VIZ_NAME:"Mayotte",Short_Name_ZH:`马约特岛\r `,Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}},{type:"Feature",id:161969,geometry:{type:"Point",coordinates:[37.857864416,.529780176000031]},properties:{ADM0_NAME:"Kenya",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:142,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161969,GUID:"2198ecc4-8b3b-4003-9ea9-874348df3de0",CENTER_LON:37.85786442,CENTER_LAT:.52978018,ADM0_VIZ_NAME:"Kenya",Short_Name_ZH:"肯尼亚",Short_Name_FR:"Kenya",Short_Name_ES:"Kenya",Short_Name_RU:"Кения",Short_Name_AR:"كينيا"}},{type:"Feature",id:161970,geometry:{type:"Point",coordinates:[-10.9418254249999,10.438540941]},properties:{ADM0_NAME:"Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:111,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161970,GUID:"3740a605-5160-4f27-bd0d-d8f08466011a",CENTER_LON:-10.94182542,CENTER_LAT:10.43854094,ADM0_VIZ_NAME:"Guinea",Short_Name_ZH:"几内亚",Short_Name_FR:"Guinée",Short_Name_ES:"Guinea",Short_Name_RU:"Гвинея",Short_Name_AR:"غينيا"}},{type:"Feature",id:161971,geometry:{type:"Point",coordinates:[29.917205531,-1.99796797799996]},properties:{ADM0_NAME:"Rwanda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:102,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161971,GUID:"895ea23f-dbcd-467f-bf1e-54aa4d3f2c45",CENTER_LON:29.91720553,CENTER_LAT:-1.99796798,ADM0_VIZ_NAME:"Rwanda",Short_Name_ZH:"卢旺达",Short_Name_FR:"Rwanda",Short_Name_ES:"Rwanda",Short_Name_RU:"Руанда",Short_Name_AR:"رواندا"}},{type:"Feature",id:161972,geometry:{type:"Point",coordinates:[46.7059924820001,-19.373521329]},properties:{ADM0_NAME:"Madagascar",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:77,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161972,GUID:"820b442d-b7ed-4c39-ab5a-51b0babbeecf",CENTER_LON:46.70599248,CENTER_LAT:-19.37352133,ADM0_VIZ_NAME:"Madagascar",Short_Name_ZH:"马达加斯加",Short_Name_FR:"Madagascar",Short_Name_ES:"Madagascar",Short_Name_RU:"Мадагаскар",Short_Name_AR:"مدغشقر"}},{type:"Feature",id:161973,geometry:{type:"Point",coordinates:[32.386266425,1.28002949000006]},properties:{ADM0_NAME:"Uganda",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:48,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161973,GUID:"1be45e1a-dfcd-4b79-870d-92166cf43e82",CENTER_LON:32.38622999,CENTER_LAT:1.28008463,ADM0_VIZ_NAME:"Uganda",Short_Name_ZH:"乌干达",Short_Name_FR:"Ouganda",Short_Name_ES:"Uganda",Short_Name_RU:"Уганда",Short_Name_AR:"أوغندا"}},{type:"Feature",id:161974,geometry:{type:"Point",coordinates:[15.224282988,-.839998298999944]},properties:{ADM0_NAME:"Congo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:45,cum_clin:null,cum_susp:null,cum_death:5,EPIWeek:15,EPIYear:2020,Comment:null,ID:161974,GUID:"a32af07d-abed-484a-b1e9-4b7b0785c3dc",CENTER_LON:15.22427459,CENTER_LAT:-.84006603,ADM0_VIZ_NAME:"Congo",Short_Name_ZH:"刚果",Short_Name_FR:"Congo",Short_Name_ES:"Congo (el)",Short_Name_RU:"Конго",Short_Name_AR:"الكونغو"}},{type:"Feature",id:161975,geometry:{type:"Point",coordinates:[.97584596400003,8.53491037400005]},properties:{ADM0_NAME:"Togo",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:44,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161975,GUID:"19b27a13-b30b-4a0a-b085-084cddf5db4b",CENTER_LON:.97584596,CENTER_LAT:8.53491037,ADM0_VIZ_NAME:"Togo",Short_Name_ZH:"多哥",Short_Name_FR:"Togo",Short_Name_ES:"Togo (el)",Short_Name_RU:"Того",Short_Name_AR:"توغو"}},{type:"Feature",id:161976,geometry:{type:"Point",coordinates:[39.6160189350001,8.62613927100006]},properties:{ADM0_NAME:"Ethiopia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:43,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161976,GUID:"e9f231cb-35e1-467b-8b7c-067df2b9b8f5",CENTER_LON:39.61601894,CENTER_LAT:8.62613927,ADM0_VIZ_NAME:"Ethiopia",Short_Name_ZH:"埃塞俄比亚",Short_Name_FR:"Éthiopie",Short_Name_ES:"Etiopía",Short_Name_RU:"Эфиопия",Short_Name_AR:"إثيوبيا"}},{type:"Feature",id:161977,geometry:{type:"Point",coordinates:[-3.52433671799997,17.350369329]},properties:{ADM0_NAME:"Mali",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:39,cum_clin:null,cum_susp:null,cum_death:4,EPIWeek:15,EPIYear:2020,Comment:null,ID:161977,GUID:"77642364-9b1b-46c8-aaf4-d9ffd8f62712",CENTER_LON:-3.52433672,CENTER_LAT:17.35036933,ADM0_VIZ_NAME:"Mali",Short_Name_ZH:"马里",Short_Name_FR:"Mali",Short_Name_ES:"Malí",Short_Name_RU:"Мали",Short_Name_AR:"مالي"}},{type:"Feature",id:161978,geometry:{type:"Point",coordinates:[27.7978489400001,-13.453075312]},properties:{ADM0_NAME:"Zambia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:39,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161978,GUID:"125935a9-188d-4b78-86a8-ffbf546077e0",CENTER_LON:27.79788004,CENTER_LAT:-13.45307543,ADM0_VIZ_NAME:"Zambia",Short_Name_ZH:"赞比亚",Short_Name_FR:"Zambie",Short_Name_ES:"Zambia",Short_Name_RU:"Замбия",Short_Name_AR:"زامبيا"}},{type:"Feature",id:161979,geometry:{type:"Point",coordinates:[38.852925552,15.3588410250001]},properties:{ADM0_NAME:"Eritrea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:29,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161979,GUID:"7b9e18fe-ff3c-44de-9b50-b91a8311dddf",CENTER_LON:38.85292555,CENTER_LAT:15.35884102,ADM0_VIZ_NAME:"Eritrea",Short_Name_ZH:"厄立特里亚",Short_Name_FR:"Érythrée",Short_Name_ES:"Eritrea",Short_Name_RU:"Эритрея",Short_Name_AR:"إريتريا"}},{type:"Feature",id:161980,geometry:{type:"Point",coordinates:[2.34326270500003,9.64764996800005]},properties:{ADM0_NAME:"Benin",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:22,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161980,GUID:"27d0edf7-b070-4943-bb9b-dcee5a4d216e",CENTER_LON:2.34326271,CENTER_LAT:9.64764997,ADM0_VIZ_NAME:"Benin",Short_Name_ZH:"贝宁",Short_Name_FR:"Bénin",Short_Name_ES:"Benin",Short_Name_RU:"Бенин",Short_Name_AR:"بنن"}},{type:"Feature",id:161981,geometry:{type:"Point",coordinates:[34.8234035560001,-6.27020075299993]},properties:{ADM0_NAME:"United Republic of Tanzania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:22,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161981,GUID:"a09fda23-b91a-49e4-ba7d-02cb8540b936",CENTER_LON:34.82340201,CENTER_LAT:-6.27019905,ADM0_VIZ_NAME:"United Republic of Tanzania",Short_Name_ZH:"坦桑尼亚联合共和国",Short_Name_FR:"République-Unie de Tanzanie",Short_Name_ES:"República Unida de Tanzanía",Short_Name_RU:"Объединенная Республика Танзания",Short_Name_AR:"جمهورية تنزانيا المتحدة"}},{type:"Feature",id:161982,geometry:{type:"Point",coordinates:[11.797157624,-.590677967999966]},properties:{ADM0_NAME:"Gabon",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:21,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161982,GUID:"cbf1734a-37f7-4691-bb44-0123114cb49e",CENTER_LON:11.79715762,CENTER_LAT:-.59067797,ADM0_VIZ_NAME:"Gabon",Short_Name_ZH:"加蓬",Short_Name_FR:"Gabon",Short_Name_ES:"Gabón",Short_Name_RU:"Габон",Short_Name_AR:"غابون"}},{type:"Feature",id:161983,geometry:{type:"Point",coordinates:[-14.987484013,12.016198296]},properties:{ADM0_NAME:"Guinea-Bissau",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:18,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161983,GUID:"0334af86-91ef-485e-805f-a204ef2764ab",CENTER_LON:-14.98748401,CENTER_LAT:12.0161983,ADM0_VIZ_NAME:"Guinea-Bissau",Short_Name_ZH:"几内亚比绍",Short_Name_FR:"Guinée-Bissau",Short_Name_ES:"Guinea-Bissau",Short_Name_RU:"Гвинея-Бисау",Short_Name_AR:"غينيا - بيساو"}},{type:"Feature",id:161984,geometry:{type:"Point",coordinates:[10.3384962750001,1.71016859900004]},properties:{ADM0_NAME:"Equatorial Guinea",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:16,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161984,GUID:"af7e3138-b823-4063-8a50-4408c8527cc9",CENTER_LON:10.33849628,CENTER_LAT:1.7101686,ADM0_VIZ_NAME:"Equatorial Guinea",Short_Name_ZH:"赤道几内亚",Short_Name_FR:"Guinée équatoriale",Short_Name_ES:"Guinea Ecuatorial",Short_Name_RU:"Экваториальная Гвинея",Short_Name_AR:"غينيا الاستوائية"}},{type:"Feature",id:161985,geometry:{type:"Point",coordinates:[17.218450277,-22.133293291]},properties:{ADM0_NAME:"Namibia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:16,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161985,GUID:"60026c01-d644-439e-beda-ec2c280304a7",CENTER_LON:17.21845028,CENTER_LAT:-22.13329329,ADM0_VIZ_NAME:"Namibia",Short_Name_ZH:"纳米比亚",Short_Name_FR:"Namibie",Short_Name_ES:"Namibia",Short_Name_RU:"Намибия",Short_Name_AR:"ناميبيا"}},{type:"Feature",id:161986,geometry:{type:"Point",coordinates:[17.543777778,-12.2957307139999]},properties:{ADM0_NAME:"Angola",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:14,cum_clin:null,cum_susp:null,cum_death:2,EPIWeek:15,EPIYear:2020,Comment:null,ID:161986,GUID:"2a5aaf40-e526-4778-a1e2-204d26254d21",CENTER_LON:17.54379621,CENTER_LAT:-12.29575318,ADM0_VIZ_NAME:"Angola",Short_Name_ZH:"安哥拉",Short_Name_FR:"Angola",Short_Name_ES:"Angola",Short_Name_RU:"Ангола",Short_Name_AR:"أنغولا"}},{type:"Feature",id:161987,geometry:{type:"Point",coordinates:[-9.30784656399993,6.44811846300007]},properties:{ADM0_NAME:"Liberia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:13,cum_clin:null,cum_susp:null,cum_death:3,EPIWeek:15,EPIYear:2020,Comment:null,ID:161987,GUID:"78dbdf5d-226b-4be4-b853-5a58d9da21a6",CENTER_LON:-9.30784656,CENTER_LAT:6.44811846,ADM0_VIZ_NAME:"Liberia",Short_Name_ZH:"利比里亚",Short_Name_FR:"Libéria",Short_Name_ES:"Liberia",Short_Name_RU:"Либерия",Short_Name_AR:"ليبريا"}},{type:"Feature",id:161988,geometry:{type:"Point",coordinates:[35.552260533,-17.260193924]},properties:{ADM0_NAME:"Mozambique",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161988,GUID:"b09a5bf6-36d9-4abd-9d4a-793639ac9457",CENTER_LON:35.55226053,CENTER_LAT:-17.26019392,ADM0_VIZ_NAME:"Mozambique",Short_Name_ZH:"莫桑比克",Short_Name_FR:"Mozambique",Short_Name_ES:"Mozambique",Short_Name_RU:"Мозамбик",Short_Name_AR:"موزامبيق"}},{type:"Feature",id:161989,geometry:{type:"Point",coordinates:[52.2300590070001,-6.39906405099993]},properties:{ADM0_NAME:"Seychelles",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:10,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161989,GUID:"17e46d71-5bc2-479c-8d3a-0d966592ac32",CENTER_LON:52.23005901,CENTER_LAT:-6.39906405,ADM0_VIZ_NAME:"Seychelles",Short_Name_ZH:"塞舌尔",Short_Name_FR:"Seychelles",Short_Name_ES:"Seychelles",Short_Name_RU:"Сейшельские Острова",Short_Name_AR:"سيشيل"}},{type:"Feature",id:161990,geometry:{type:"Point",coordinates:[20.482782022,6.57145244100008]},properties:{ADM0_NAME:"Central African Republic",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161990,GUID:"5a37f024-c6e9-444e-832a-57db29915f70",CENTER_LON:20.48278081,CENTER_LAT:6.57145342,ADM0_VIZ_NAME:"Central African Republic",Short_Name_ZH:"中非共和国",Short_Name_FR:"République centrafricaine",Short_Name_ES:"República Centroafricana",Short_Name_RU:"Центральноафриканская Республика",Short_Name_AR:"جمهورية أفريقيا الوسطى"}},{type:"Feature",id:161991,geometry:{type:"Point",coordinates:[18.6646033860001,15.361145703]},properties:{ADM0_NAME:"Chad",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161991,GUID:"aef0e5a2-d0cb-4074-82c0-39f932bd297a",CENTER_LON:18.66460339,CENTER_LAT:15.3611457,ADM0_VIZ_NAME:"Chad",Short_Name_ZH:"乍得",Short_Name_FR:"Tchad",Short_Name_ES:"Chad (el)",Short_Name_RU:"Чад",Short_Name_AR:"تشاد"}},{type:"Feature",id:161992,geometry:{type:"Point",coordinates:[31.497188798,-26.562116744]},properties:{ADM0_NAME:"Eswatini",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161992,GUID:"393f6615-8c13-42ca-9bdd-1594735cbdcf",CENTER_LON:31.4971888,CENTER_LAT:-26.56211674,ADM0_VIZ_NAME:"Eswatini",Short_Name_ZH:"斯威士兰",Short_Name_FR:"Eswatini",Short_Name_ES:"Eswatini",Short_Name_RU:"Эсватини",Short_Name_AR:"إسواتيني"}},{type:"Feature",id:161993,geometry:{type:"Point",coordinates:[29.871759825,-19.0000057739999]},properties:{ADM0_NAME:"Zimbabwe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:9,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161993,GUID:"a125fc97-acbd-43f1-add2-1e5d11d2570a",CENTER_LON:29.87175983,CENTER_LAT:-19.00000577,ADM0_VIZ_NAME:"Zimbabwe",Short_Name_ZH:"津巴布韦",Short_Name_FR:"Zimbabwe",Short_Name_ES:"Zimbabwe",Short_Name_RU:"Зимбабве",Short_Name_AR:"زمبابوي"}},{type:"Feature",id:161994,geometry:{type:"Point",coordinates:[-10.3322604099999,20.259903606]},properties:{ADM0_NAME:"Mauritania",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161994,GUID:"c2aa3415-b740-47f3-8abc-c5ccbb14d5b0",CENTER_LON:-10.33226041,CENTER_LAT:20.25990361,ADM0_VIZ_NAME:"Mauritania",Short_Name_ZH:"毛里塔尼亚",Short_Name_FR:"Mauritanie",Short_Name_ES:"Mauritania",Short_Name_RU:"Мавритания",Short_Name_AR:"موريتانيا"}},{type:"Feature",id:161995,geometry:{type:"Point",coordinates:[-11.792102896,8.56034092400006]},properties:{ADM0_NAME:"Sierra Leone",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:6,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161995,GUID:"e1cd65ea-4261-4a92-a8af-1709465c2cd3",CENTER_LON:-11.7921029,CENTER_LAT:8.56034092,ADM0_VIZ_NAME:"Sierra Leone",Short_Name_ZH:"塞拉利昂",Short_Name_FR:"Sierra Leone",Short_Name_ES:"Sierra Leona",Short_Name_RU:"Сьерра-Леоне",Short_Name_AR:"سيراليون"}},{type:"Feature",id:161996,geometry:{type:"Point",coordinates:[-23.544999999,14.9280000000001]},properties:{ADM0_NAME:"Cabo Verde",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:5,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161996,GUID:"b6d5830a-0a76-4c5e-9b69-9bbc651c6fee",CENTER_LON:-23.545,CENTER_LAT:14.928,ADM0_VIZ_NAME:"Cabo Verde",Short_Name_ZH:"佛得角",Short_Name_FR:"Cabo Verde",Short_Name_ES:"Cabo Verde",Short_Name_RU:"Кабо-Верде",Short_Name_AR:"كابو فيردي"}},{type:"Feature",id:161997,geometry:{type:"Point",coordinates:[23.815077504,-22.182042021]},properties:{ADM0_NAME:"Botswana",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161997,GUID:"689dde45-4727-4b7b-9e35-5ddcc5ef2791",CENTER_LON:23.8150775,CENTER_LAT:-22.18204202,ADM0_VIZ_NAME:"Botswana",Short_Name_ZH:"博茨瓦纳",Short_Name_FR:"Botswana",Short_Name_ES:"Botswana",Short_Name_RU:"Ботсвана",Short_Name_AR:"بوتسوانا"}},{type:"Feature",id:161998,geometry:{type:"Point",coordinates:[-15.385619595,13.452944399]},properties:{ADM0_NAME:"Gambia",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:1,EPIWeek:15,EPIYear:2020,Comment:null,ID:161998,GUID:"71d4622e-3ccd-4650-9e66-ee0421f0f2b3",CENTER_LON:-15.3856196,CENTER_LAT:13.4529444,ADM0_VIZ_NAME:"Gambia",Short_Name_ZH:"冈比亚",Short_Name_FR:"Gambie",Short_Name_ES:"Gambia",Short_Name_RU:"Гамбия",Short_Name_AR:"غامبيا"}},{type:"Feature",id:161999,geometry:{type:"Point",coordinates:[34.3069850380001,-13.21510424]},properties:{ADM0_NAME:"Malawi",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:161999,GUID:"895071fb-8240-4b2d-bfac-a51f8243d620",CENTER_LON:34.30698504,CENTER_LAT:-13.21510424,ADM0_VIZ_NAME:"Malawi",Short_Name_ZH:"马拉维",Short_Name_FR:"Malawi",Short_Name_ES:"Malawi",Short_Name_RU:"Малави",Short_Name_AR:"ملاوي"}},{type:"Feature",id:162e3,geometry:{type:"Point",coordinates:[6.71649314900003,.436446692000061]},properties:{ADM0_NAME:"Sao Tome and Principe",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:4,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162e3,GUID:"8d36d705-3e3e-412e-a13b-1ee158a07c36",CENTER_LON:6.73729084,CENTER_LAT:.45825363,ADM0_VIZ_NAME:"Sao Tome and Principe",Short_Name_ZH:"圣多美和普林西比",Short_Name_FR:"Sao Tomé-et-Principe",Short_Name_ES:"Santo Tomé y Príncipe",Short_Name_RU:"Сан-Томе и Принсипи",Short_Name_AR:"سان تومي وبرينسيبي"}},{type:"Feature",id:162001,geometry:{type:"Point",coordinates:[29.8868213920001,-3.35629711799993]},properties:{ADM0_NAME:"Burundi",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:3,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162001,GUID:"bf20d4f1-d25b-4be3-b8f5-7a2a94a20ecf",CENTER_LON:29.88682139,CENTER_LAT:-3.35629712,ADM0_VIZ_NAME:"Burundi",Short_Name_ZH:"布隆迪",Short_Name_FR:"Burundi",Short_Name_ES:"Burundi",Short_Name_RU:"Бурунди",Short_Name_AR:"بوروندي"}},{type:"Feature",id:162002,geometry:{type:"Point",coordinates:[30.340676547,7.27961187200003]},properties:{ADM0_NAME:"South Sudan",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:1,cum_clin:null,cum_susp:null,cum_death:0,EPIWeek:15,EPIYear:2020,Comment:null,ID:162002,GUID:"322068a7-b312-4393-b5d1-fe2dc7a5c78a",CENTER_LON:30.34067655,CENTER_LAT:7.27961187,ADM0_VIZ_NAME:"South Sudan",Short_Name_ZH:"南苏丹",Short_Name_FR:"Soudan du Sud",Short_Name_ES:" Sudán del Sur ",Short_Name_RU:"Южный Судан",Short_Name_AR:"جنوب السودان"}},{type:"Feature",id:162006,geometry:null,properties:{ADM0_NAME:"International conveyance (Diamond Princess)",ADM1_NAME:null,DateOfReport:15860448e5,DateOfDataEntry:1586196e6,new_conf:null,new_clin:null,new_susp:null,new_death:null,cum_conf:712,cum_clin:null,cum_susp:null,cum_death:11,EPIWeek:15,EPIYear:2020,Comment:null,ID:162006,GUID:null,CENTER_LON:null,CENTER_LAT:null,ADM0_VIZ_NAME:"International conveyance (Diamond Princess)",Short_Name_ZH:"国际交通工具(“钻石公主号”邮轮))",Short_Name_FR:null,Short_Name_ES:null,Short_Name_RU:null,Short_Name_AR:null}}]},EU={id:"map"},xU={__name:"custom-map",setup(e){let t,r,i,s;return Mv(()=>{t=new _U({id:"map",map:new dO({style:{position:"relative",width:"100%",height:"452px",version:8,sources:{},layers:[]},center:[110.19382669582967,50.258134],pitch:0,zoom:1})});const u=gU,n=vU;r=new jI({}),r.source(u,{transforms:[{type:"hexagon",size:8e5,field:"capacity",method:"sum"}]}).shape("hexagon").color("#ddd").style({coverage:.7,opacity:.8}),t.addLayer(r),i=new wy({autoFit:!0}),i.source(n).shape("circle").size("cum_conf",[0,17]).scale("cum_conf",{type:"quantile"}).color("cum_conf",["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"]).active({color:"#0c2c84"}).style({opacity:.8}),s=new wy({autoFit:!0}),s.source(n).shape("Short_Name_ZH","text").filter("cum_conf",y=>y>2e3).size(12).active(!0).color("#fff").style({opacity:1,strokeOpacity:1,strokeWidth:0}),t.addLayer(i),t.addLayer(s)}),Nv(()=>{var u,n,y,m;(u=r.destroy)==null||u.call(r),(n=s==null?void 0:s.destroy)==null||n.call(s),(y=i==null?void 0:i.destroy)==null||y.call(i),(m=t.destroy)==null||m.call(t)}),(u,n)=>(Ov(),Dv("div",EU))}},LU=Fv(xU,[["__scopeId","data-v-99a4c5a7"]]);export{LU as default};