@maptrip/map-tiles 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/map-tiles.d.ts +3 -2
- package/dist/map-tiles.js +911 -25
- package/dist/map-tiles.js.map +1 -1
- package/lib/main.ts +4 -2
- package/package.json +1 -1
package/dist/map-tiles.js
CHANGED
|
@@ -5597,28 +5597,6 @@ class MapReleaseFetcher {
|
|
|
5597
5597
|
}
|
|
5598
5598
|
}
|
|
5599
5599
|
|
|
5600
|
-
class MapTripGoogleMapType {
|
|
5601
|
-
tileSize = new google.maps.Size(256, 256);
|
|
5602
|
-
alt = null;
|
|
5603
|
-
maxZoom = MAX_ZOOM;
|
|
5604
|
-
minZoom = MIN_ZOOM;
|
|
5605
|
-
projection = null;
|
|
5606
|
-
radius = 6378137;
|
|
5607
|
-
name;
|
|
5608
|
-
token;
|
|
5609
|
-
factory;
|
|
5610
|
-
constructor(properties) {
|
|
5611
|
-
this.name = properties.name ? properties.name : "infoware";
|
|
5612
|
-
this.token = properties.token;
|
|
5613
|
-
this.factory = VectorTileFactory.createFactory(properties);
|
|
5614
|
-
}
|
|
5615
|
-
getTile(coord, zoom) {
|
|
5616
|
-
return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
|
|
5617
|
-
}
|
|
5618
|
-
releaseTile() {
|
|
5619
|
-
}
|
|
5620
|
-
}
|
|
5621
|
-
|
|
5622
5600
|
var leafletSrc$1 = {exports: {}};
|
|
5623
5601
|
|
|
5624
5602
|
/* @preserve
|
|
@@ -20142,7 +20120,7 @@ function requireLeafletSrc () {
|
|
|
20142
20120
|
}
|
|
20143
20121
|
|
|
20144
20122
|
var leafletSrcExports = requireLeafletSrc();
|
|
20145
|
-
const L$
|
|
20123
|
+
const L$2 = /*@__PURE__*/getDefaultExportFromCjs(leafletSrcExports);
|
|
20146
20124
|
|
|
20147
20125
|
class VectorTileUtils {
|
|
20148
20126
|
static async getAttribution(token, provider, attribution, releaseDate) {
|
|
@@ -20164,7 +20142,7 @@ class VectorTileUtils {
|
|
|
20164
20142
|
}
|
|
20165
20143
|
}
|
|
20166
20144
|
|
|
20167
|
-
class MapTripLeafletGridLayer extends L$
|
|
20145
|
+
class MapTripLeafletGridLayer extends L$2.GridLayer {
|
|
20168
20146
|
static attributions = [];
|
|
20169
20147
|
token;
|
|
20170
20148
|
factory;
|
|
@@ -20221,6 +20199,892 @@ class MapTripLeafletGridLayer extends L$1.GridLayer {
|
|
|
20221
20199
|
}
|
|
20222
20200
|
}
|
|
20223
20201
|
|
|
20202
|
+
/**
|
|
20203
|
+
* MapLibre GL JS
|
|
20204
|
+
* @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v6.16.0/LICENSE.txt
|
|
20205
|
+
*/
|
|
20206
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(t(o,`default`,{value:n,enumerable:true}),n));function u(e,t){this.x=e,this.y=t;}u.prototype={clone(){return new u(this.x,this.y)},add(e){return this.clone()._add(e)},sub(e){return this.clone()._sub(e)},multByPoint(e){return this.clone()._multByPoint(e)},divByPoint(e){return this.clone()._divByPoint(e)},mult(e){return this.clone()._mult(e)},div(e){return this.clone()._div(e)},rotate(e){return this.clone()._rotate(e)},rotateAround(e,t){return this.clone()._rotateAround(e,t)},matMult(e){return this.clone()._matMult(e)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(e){return this.x===e.x&&this.y===e.y},dist(e){return Math.sqrt(this.distSqr(e))},distSqr(e){let t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle(){return Math.atan2(this.y,this.x)},angleTo(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith(e){return this.angleWithSep(e.x,e.y)},angleWithSep(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult(e){let t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add(e){return this.x+=e.x,this.y+=e.y,this},_sub(e){return this.x-=e.x,this.y-=e.y,this},_mult(e){return this.x*=e,this.y*=e,this},_div(e){return this.x/=e,this.y/=e,this},_multByPoint(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint(e){return this.x/=e.x,this.y/=e.y,this},_unit(){return this._div(this.mag()),this},_perp(){let e=this.y;return this.y=this.x,this.x=-e,this},_rotate(e){let t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,i=n*this.x+t*this.y;return this.x=r,this.y=i,this},_rotateAround(e,t){let n=Math.cos(e),r=Math.sin(e),i=t.x+n*(this.x-t.x)-r*(this.y-t.y),a=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=i,this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:u},u.convert=function(e){if(e instanceof u)return e;if(Array.isArray(e))return new u(+e[0],+e[1]);if(e.x!==void 0&&e.y!==void 0)return new u(+e.x,+e.y);throw Error(`Expected [x, y] or {x, y} point format`)};function d(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var g=typeof Float32Array<`u`?Float32Array:Array;function x(){var e=new g(9);return g!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function T(){var e=new g(16);return g!=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 O(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function de(){var e=new g(3);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function pe(e){var t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function me(e,t,n){var r=new g(3);return r[0]=e,r[1]=t,r[2]=n,r}function be(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function xe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Se(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}var Me=pe;(function(){var e=de();return function(t,n,r,i,a,o){var s,c;for(n||=3,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();function Ne(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Le(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}(function(){var e=Ne();return function(t,n,r,i,a,o){var s,c;for(n||=4,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}})();function Be(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function He(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function We(e,t,n,r){var i=t[0],a=t[1],o=t[2],s=t[3],c=n[0],l=n[1],u=n[2],d=n[3],f,p=i*c+a*l+o*u+s*d,m,h,g;return p<0&&(p=-p,c=-c,l=-l,u=-u,d=-d),1-p>1e-6?(f=Math.acos(p),m=Math.sin(f),h=Math.sin((1-r)*f)/m,g=Math.sin(r*f)/m):(h=1-r,g=r),e[0]=h*i+g*c,e[1]=h*a+g*l,e[2]=h*o+g*u,e[3]=h*s+g*d,e}function Ge(e,t){var n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else {var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[o*3+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[a*3+o]-t[o*3+a])*r,e[a]=(t[a*3+i]+t[i*3+a])*r,e[o]=(t[o*3+i]+t[i*3+o])*r;}return e}var Je=Le;((function(){var e=de(),t=me(1,0,0),n=me(0,1,0);return function(r,i,a){var o=xe(i,a);return o<-0.999999?(Se(e,t,i),Me(e)<1e-6&&Se(e,n,i),be(e,e),He(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Se(e,i,a),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,Je(r,r))}}))(),function(){var e=Be(),t=Be();return function(n,r,i,a,o,s){return We(e,r,o,s),We(t,i,a,s),We(n,e,t,2*s*(1-s)),n}}(),function(){var e=x();return function(t,n,r,i){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Je(t,Ge(t,e))}}();function Ye(){var e=new g(2);return g!=Float32Array&&(e[0]=0,e[1]=0),e}(function(){var e=Ye();return function(t,n,r,i,a,o){var s,c;for(n||=2,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}})();const P=8192;function rt(e){return e instanceof Error?e:Error(typeof e==`string`?e:String(e))}function St(e,t,n,r){return d(e,t,n,r)}function F(e,t,n){return Math.min(n,Math.max(t,e))}function wt(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function I(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Nt(e,t,n){let r={};for(let i in e)r[i]=t.call(this,e[i],i,e);return r}const Lt={};function L$1(e){Lt[e]||(typeof console<`u`&&console.warn(e),Lt[e]=true);}function Rt(e,t,n){return (n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function Vt(e){return typeof WorkerGlobalScope<`u`&&e!==void 0&&e instanceof WorkerGlobalScope}let Ut=null;function Wt(e){if(Ut==null){let t=e.navigator?e.navigator.userAgent:null;Ut=!!e.safari||!!(t&&(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)));}return Ut}function Gt(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap}const Kt=async(e,t)=>{let n=new Blob([new Uint8Array(e)],{type:`image/png`});try{return createImageBitmap(n,t)}catch(e){throw Error(`Could not load image because of ${rt(e).message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}},qt=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>{t(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>r.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`);},r.onerror=()=>n(/* @__PURE__ */ 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.`));let i=new Blob([new Uint8Array(e)],{type:`image/png`});r.src=URL.createObjectURL(i);});const un=`AbortError`;var dn=class extends Error{constructor(e=un){super(e instanceof Error?e.message:e),this.name=un,e instanceof Error&&e.stack&&(this.stack=e.stack);}};function fn(e){return e instanceof Error&&e.name===`AbortError`}function pn(e){if(e.aborted)throw new dn(e.reason)}const _n={get hardwareConcurrency(){return typeof navigator<`u`&&navigator.hardwareConcurrency||4}};const Cn=/* @__PURE__ */ new Set(/* @__PURE__ */ `a.abbr.b.bdi.bdo.br.cite.code.del.div.em.i.img.ins.kbd.li.mark.ol.p.q.s.samp.small.span.strong.sub.sup.time.u.ul.var.wbr`.split(`.`)),wn=/* @__PURE__ */ new Set([`alt`,`class`,`datetime`,`dir`,`height`,`href`,`hreflang`,`lang`,`referrerpolicy`,`rel`,`role`,`src`,`target`,`title`,`translate`,`type`,`width`]),Tn=/* @__PURE__ */ new Set([`href`,`src`]),En=/* @__PURE__ */ new Set([`http:`,`https:`,`mailto:`]);let Dn;function On(){return Dn??={getAttribute:Element.prototype.getAttribute,getAttributeNames:Element.prototype.getAttributeNames,querySelectorAll:Element.prototype.querySelectorAll,remove:Element.prototype.remove,removeAttribute:Element.prototype.removeAttribute,localName:Object.getOwnPropertyDescriptor(Element.prototype,`localName`).get,namespaceURI:Object.getOwnPropertyDescriptor(Element.prototype,`namespaceURI`).get},Dn}(class e{static{this.docStyle=typeof window<`u`&&window.document?.documentElement.style;}static{this.selectProp=!e.docStyle||`userSelect`in e.docStyle?`userSelect`:`webkitUserSelect`;}static create(e,t,n){let r=window.document.createElement(e);return t!==void 0&&(r.className=t),n&&n.appendChild(r),r}static createNS(e,t){return window.document.createElementNS(e,t)}static disableDrag(){e.docStyle&&e.selectProp&&(e.userSelect=e.docStyle[e.selectProp],e.docStyle[e.selectProp]=`none`);}static enableDrag(){e.docStyle&&e.selectProp&&(e.docStyle[e.selectProp]=e.userSelect);}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener(`click`,e.suppressClickInternal,true);}static suppressClick(){window.addEventListener(`click`,e.suppressClickInternal,true),window.setTimeout(()=>{window.removeEventListener(`click`,e.suppressClickInternal,true);},0);}static getScale(e){let t=e.getBoundingClientRect();return {x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}static getPoint(e,t,n){let r=t.boundingClientRect;return new u((n.clientX-r.left)/t.x-e.clientLeft,(n.clientY-r.top)/t.y-e.clientTop)}static mousePos(t,n){let r=e.getScale(t);return e.getPoint(t,r,n)}static touchPos(t,n){let r=[],i=e.getScale(t);for(let a of n)r.push(e.getPoint(t,i,a));return r}static sanitize(t){let n=new DOMParser().parseFromString(t,`text/html`).body,{querySelectorAll:r,remove:i}=On();for(let t of Array.from(r.call(n,`*`)))e.isAllowedElement(t)?e.removeDisallowedAttributes(t):i.call(t);let a=document.createDocumentFragment();return a.append(...n.childNodes),a}static isAllowedElement(e){let{namespaceURI:t,localName:n}=On();return t.call(e)===`http://www.w3.org/1999/xhtml`&&Cn.has(n.call(e))}static removeDisallowedAttributes(t){let{getAttributeNames:n,getAttribute:r,removeAttribute:i}=On();for(let a of n.call(t))e.isAllowedAttribute(a,r.call(t,a))||i.call(t,a);}static isAllowedAttribute(e,t){if(!wn.has(e)&&!e.startsWith(`aria-`))return false;if(!Tn.has(e))return true;try{return En.has(new URL(t,`https://maplibre.invalid/`).protocol)}catch{return false}}});const kn={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,REGISTERED_PROTOCOLS:{}};function An(e){return kn.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf(`://`))]}function jn(e,t){kn.REGISTERED_PROTOCOLS[e]=t;}const Nn=`global-dispatcher`;var Pn=class extends Error{constructor(e,t,n,r){super(`AJAXError: ${t} (${e}): ${n}`),this.status=e,this.statusText=t,this.url=n,this.body=r;}};function Fn(){if(Vt(self))return self.worker?.referrer;if(window.location.protocol===`blob:`)try{return window.parent.location.href}catch{}return window.location.href}const In=e=>e.startsWith(`file:`)||Fn()?.startsWith(`file:`)&&!/^\w+:/.test(e);async function Ln(e,t){let n=new Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,cache:e.cache,referrer:Fn(),referrerPolicy:e.referrerPolicy,signal:t.signal});e.type===`json`&&!n.headers.has(`Accept`)&&n.headers.set(`Accept`,`application/json`);let r;try{r=await fetch(n);}catch(t){throw fn(t)?t:new Pn(0,rt(t).message,e.url,new Blob)}if(!r.ok){let t=await r.blob();throw new Pn(r.status,r.statusText,e.url,t)}let i;i=e.type===`arrayBuffer`||e.type===`image`?r.arrayBuffer():e.type===`json`?r.json():r.text();let a=await i;return pn(t.signal),{data:a,cacheControl:r.headers.get(`Cache-Control`),expires:r.headers.get(`Expires`),etag:r.headers.get(`ETag`)}}function Rn(e,t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(e.method||`GET`,e.url,true),(e.type===`arrayBuffer`||e.type===`image`)&&(i.responseType=`arraybuffer`);for(let t in e.headers)i.setRequestHeader(t,e.headers[t]);e.type===`json`&&(i.responseType=`text`,e.headers?.Accept||i.setRequestHeader(`Accept`,`application/json`)),i.withCredentials=e.credentials===`include`,i.onerror=()=>{r(Error(i.statusText));},i.onload=()=>{if(!t.signal.aborted){if((i.status>=200&&i.status<300||i.status===0)&&i.response!==null){let t=i.response;if(e.type===`json`)try{t=JSON.parse(i.response);}catch(e){r(e);return}n({data:t,cacheControl:i.getResponseHeader(`Cache-Control`),expires:i.getResponseHeader(`Expires`),etag:i.getResponseHeader(`ETag`)});}else {let t=new Blob([i.response],{type:i.getResponseHeader(`Content-Type`)});r(new Pn(i.status,i.statusText,e.url,t));}}},t.signal.addEventListener(`abort`,()=>{i.abort(),r(new dn(t.signal.reason));}),i.send(e.body);})}const zn=async function(e,t){if(e.url.includes(`://`)&&!/^https?:|^file:/.test(e.url)){let n=An(e.url);if(n){let r=await n(e,t);return !r.data&&e.type===`arrayBuffer`?I(r,{data:/* @__PURE__ */ new ArrayBuffer(0)}):r}if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,targetMapId:Nn},t)}if(!In(e.url)){if(fetch&&Request&&AbortController&&Object.hasOwn(Request.prototype,`signal`))return Ln(e,t);if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,mustQueue:true,targetMapId:Nn},t)}return Rn(e,t)};function Hn(e){if(!e||e.startsWith(`data:image/`))return true;if(e.startsWith(`blob:`)&&(e=e.slice(5),e.startsWith(`null`)))return false;if(e.indexOf(`://`)<=0)return true;let t=new URL(e),n=window.location;return t.protocol===n.protocol&&t.host===n.host}var Jn=class e{constructor(e,t,n){let r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;let i=new Int32Array(this.arrayBuffer);e=i[0],t=i[1],n=i[2],this.d=t+2*n;for(let e=0;e<this.d*this.d;e++){let t=i[3+e],n=i[3+e+1];r.push(t===n?null:i.subarray(t,n));}let a=i[3+r.length],o=i[3+r.length+1];this.keys=i.subarray(a,o),this.bboxes=i.subarray(o),this.insert=this._insertReadonly;}else {this.d=t+2*n;for(let e=0;e<this.d*this.d;e++)r.push([]);this.keys=[],this.bboxes=[];}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;let i=n/t*e;this.min=-i,this.max=e+i;}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i);}_insertReadonly(){throw Error(`Cannot insert into a GridIndex created from an ArrayBuffer.`)}_insertCell(e,t,n,r,i,a){this.cells[i].push(a);}query(e,t,n,r,i){let a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return [...this.keys];{let a=[];return this._forEachCell(e,t,n,r,this._queryCell,a,{},i),a}}_queryCell(e,t,n,r,i,a,o,s){let c=this.cells[i];if(c!==null){let i=this.keys,l=this.bboxes;for(let u of c)if(o[u]===void 0){let c=u*4;(s?s(l[c+0],l[c+1],l[c+2],l[c+3]):e<=l[c+2]&&t<=l[c+3]&&n>=l[c+0]&&r>=l[c+1])?(o[u]=true,a.push(i[u])):o[u]=false;}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.d*c+f;if((!s||s(this._convertFromCellCoord(f),this._convertFromCellCoord(c),this._convertFromCellCoord(f+1),this._convertFromCellCoord(c+1)))&&i.call(this,e,t,n,r,l,a,o,s))return}}_convertFromCellCoord(e){return (e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let e=this.cells,t=3+this.cells.length+1+1,n=0;for(let e of this.cells)n+=e.length;let r=new Int32Array(t+n+this.keys.length+this.bboxes.length);r[0]=this.extent,r[1]=this.n,r[2]=this.padding;let i=t;for(let t=0;t<e.length;t++){let n=e[t];r[3+t]=i,r.set(n,i),i+=n.length;}return r[3+e.length]=i,r.set(this.keys,i),i+=this.keys.length,r[3+e.length+1]=i,r.set(this.bboxes,i),i+=this.bboxes.length,r.buffer}static serialize(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}}static deserialize(t){return new e(t.buffer)}},Yn={$version:8,$root:{version:{required:true,type:`enum`,values:[8]},name:{type:`string`},metadata:{type:`*`},center:{type:`array`,value:`number`,length:2},centerAltitude:{type:`number`},zoom:{type:`number`},bearing:{type:`number`,default:0,period:360,units:`degrees`},pitch:{type:`number`,default:0,units:`degrees`},roll:{type:`number`,default:0,units:`degrees`},state:{type:`state`,default:{}},light:{type:`light`},sky:{type:`sky`},projection:{type:`projection`},terrain:{type:`terrain`},sources:{required:true,type:`sources`},sprite:{type:`sprite`},glyphs:{type:`string`},"font-faces":{type:`fontFaces`},transition:{type:`transition`},layers:{required:true,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:true,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:false},encoding:{type:`enum`,values:{mvt:{},mlt:{}},default:`mvt`},"*":{type:`*`}},source_raster:{type:{required:true,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:false},"*":{type:`*`}},source_raster_dem:{type:{required:true,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:{},custom:{}},default:`mapbox`},redFactor:{type:`number`,default:1},blueFactor:{type:`number`,default:1},greenFactor:{type:`number`,default:1},baseShift:{type:`number`,default:0},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_geojson:{type:{required:true,type:`enum`,values:{geojson:{}}},data:{required:true,type:`*`},maxzoom:{type:`number`,default:18},attribution:{type:`string`},buffer:{type:`number`,default:128,maximum:512,minimum:0},filter:{type:`filter`},tolerance:{type:`number`,default:.375},cluster:{type:`boolean`,default:false},clusterRadius:{type:`number`,default:50,minimum:0},clusterMaxZoom:{type:`number`},clusterMinPoints:{type:`number`},clusterProperties:{type:`*`},lineMetrics:{type:`boolean`,default:false},generateId:{type:`boolean`,default:false},promoteId:{type:`promoteId`}},source_video:{type:{required:true,type:`enum`,values:{video:{}}},urls:{required:true,type:`array`,value:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},source_image:{type:{required:true,type:`enum`,values:{image:{}}},url:{type:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},layer:{id:{type:`string`,required:true},type:{type:`enum`,values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:true},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_color-relief`,`layout_background`],layout_background:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_fill:{"fill-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_circle:{"circle-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_heatmap:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_fill-extrusion":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`},"fill-extrusion-rounded-corner-distance":{type:`number`,default:0,minimum:0,units:`meters`,"property-type":`constant`}},layout_line:{"line-cap":{type:`enum`,values:{butt:{},round:{},square:{}},default:`butt`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-join":{type:`enum`,values:{bevel:{},round:{},miter:{}},default:`miter`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-miter-limit":{type:`number`,default:2,requires:[{"line-join":`miter`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-round-limit":{type:`number`,default:1.05,requires:[{"line-join":`round`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_symbol:{"symbol-placement":{type:`enum`,values:{point:{},line:{},"line-center":{}},default:`point`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-spacing":{type:`number`,default:250,minimum:1,units:`pixels`,requires:[{"symbol-placement":`line`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-avoid-edges":{type:`boolean`,default:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-z-order":{type:`enum`,values:{auto:{},"viewport-y":{},source:{}},default:`auto`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-allow-overlap":{type:`boolean`,default:false,requires:[`icon-image`,{"!":`icon-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-ignore-placement":{type:`boolean`,default:false,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-optional":{type:`boolean`,default:false,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-size":{type:`number`,default:1,minimum:0,units:`factor of the original icon size`,requires:[`icon-image`],expression:{interpolated:true,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:false,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:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-image":{type:`resolvedImage`,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-padding":{type:`padding`,default:[2],units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-keep-upright":{type:`boolean`,default:false,requires:[`icon-image`,{"icon-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-offset":{type:`array`,value:`number`,length:2,default:[0,0],requires:[`icon-image`],expression:{interpolated:true,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:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-field":{type:`formatted`,default:``,tokens:true,expression:{interpolated:false,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:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-size":{type:`number`,default:16,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-width":{type:`number`,default:10,minimum:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-line-height":{type:`number`,default:1.2,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-letter-spacing":{type:`number`,default:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-justify":{type:`enum`,values:{auto:{},left:{},center:{},right:{}},default:`center`,requires:[`text-field`],expression:{interpolated:false,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:true,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:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-variable-anchor-offset":{type:`variableAnchorOffsetCollection`,requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"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:false,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:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-writing-mode":{type:`array`,value:`enum`,values:{horizontal:{},vertical:{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-padding":{type:`number`,default:2,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-keep-upright":{type:`boolean`,default:true,requires:[`text-field`,{"text-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-transform":{type:`enum`,values:{none:{},uppercase:{},lowercase:{}},default:`none`,requires:[`text-field`],expression:{interpolated:false,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:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-allow-overlap":{type:`boolean`,default:false,requires:[`text-field`,{"!":`text-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-ignore-placement":{type:`boolean`,default:false,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-optional":{type:`boolean`,default:false,requires:[`text-field`,`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-height-offset":{type:`number`,default:0,units:`meters`,requires:[{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-height-anchor":{type:`enum`,values:{ground:{},absolute:{}},default:`ground`,requires:[`symbol-height-offset`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_raster:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_hillshade:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_color-relief":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},filter:{type:`boolean`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},filter_operator:{type:`enum`,values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},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:false}},function_stop:{type:`array`,minimum:0,maximum:24,value:[`number`,`color`],length:2},expression:{type:`array`,value:`expression_name`,minimum:1},light:{anchor:{type:`enum`,default:`viewport`,values:{map:{},viewport:{}},"property-type":`data-constant`,transition:false,expression:{interpolated:false,parameters:[`zoom`]}},position:{type:`array`,default:[1.15,210,30],length:3,value:`number`,"property-type":`data-constant`,transition:true,expression:{interpolated:true,parameters:[`zoom`]}},color:{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},intensity:{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},sky:{"sky-color":{type:`color`,"property-type":`data-constant`,default:`#88C6FC`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-ground-blend":{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-fog-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"sky-horizon-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"atmosphere-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},terrain:{source:{type:`string`,required:true},exaggeration:{type:`number`,minimum:0,default:1}},projection:{type:{type:`projectionDefinition`,default:`mercator`,"property-type":`data-constant`,transition:false,expression:{interpolated:true,parameters:[`zoom`]}}},paint:[`paint_fill`,`paint_line`,`paint_circle`,`paint_heatmap`,`paint_fill-extrusion`,`paint_symbol`,`paint_raster`,`paint_hillshade`,`paint_color-relief`,`paint_background`],paint_fill:{"fill-antialias":{type:`boolean`,default:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"fill-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-outline-color":{type:`color`,transition:true,requires:[{"!":`fill-pattern`},{"fill-antialias":true}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`fill-extrusion-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-extrusion-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"fill-extrusion-height":{type:`number`,default:0,units:`meters`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-base":{type:`number`,default:0,units:`meters`,transition:true,requires:[`fill-extrusion-height`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-vertical-gradient":{type:`boolean`,default:true,transition:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_line:{"line-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"line-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`line-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"line-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`line-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"line-width":{type:`number`,default:1,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-gap-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-offset":{type:`number`,default:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-dasharray":{type:`array`,value:`number`,minimum:0,transition:true,units:`line widths`,requires:[{"!":`line-pattern`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-gradient":{type:`color`,transition:false,requires:[{"!":`line-dasharray`},{"!":`line-pattern`},{source:`geojson`,has:{lineMetrics:true}}],expression:{interpolated:true,parameters:[`line-progress`]},"property-type":`color-ramp`}},paint_circle:{"circle-radius":{type:`number`,default:5,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-blur":{type:`number`,default:0,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"circle-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`circle-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-scale":{type:`enum`,values:{map:{},viewport:{}},default:`map`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-alignment":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-stroke-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`}},paint_heatmap:{"heatmap-radius":{type:`number`,default:30,minimum:1,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-weight":{type:`number`,default:1,minimum:0,transition:false,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-intensity":{type:`number`,default:1,minimum:0,transition:true,expression:{interpolated:true,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:false,expression:{interpolated:true,parameters:[`heatmap-density`]},"property-type":`color-ramp`},"heatmap-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_symbol:{"icon-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-color":{type:`color`,default:`#000000`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`icon-image`,`icon-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-color":{type:`color`,default:`#000000`,transition:true,overridable:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`text-field`,`text-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_raster:{"raster-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-hue-rotate":{type:`number`,default:0,period:360,transition:true,units:`degrees`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-min":{type:`number`,default:0,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-max":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-saturation":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-contrast":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-resampling":{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-fade-duration":{type:`number`,default:300,minimum:0,transition:false,units:`milliseconds`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_hillshade:{"hillshade-illumination-direction":{type:`numberArray`,default:335,minimum:0,maximum:359,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-altitude":{type:`numberArray`,default:45,minimum:0,maximum:90,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-exaggeration":{type:`number`,default:.5,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-shadow-color":{type:`colorArray`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-highlight-color":{type:`colorArray`,default:`#FFFFFF`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-accent-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-method":{type:`enum`,values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:`standard`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},"paint_color-relief":{"color-relief-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"color-relief-color":{type:`color`,transition:false,expression:{interpolated:true,parameters:[`elevation`]},"property-type":`color-ramp`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_background:{"background-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`background-pattern`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"background-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`cross-faded`},"background-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,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`}},interpolation:{type:`array`,value:`interpolation_name`,minimum:1},interpolation_name:{type:`enum`,values:{linear:{syntax:{overloads:[{parameters:[],"output-type":`interpolation`}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:[`base`],"output-type":`interpolation`}],parameters:[{name:`base`,type:`number literal`}]}},"cubic-bezier":{syntax:{overloads:[{parameters:[`x1`,`y1`,`x2`,`y2`],"output-type":`interpolation`}],parameters:[{name:`x1`,type:`number literal`},{name:`y1`,type:`number literal`},{name:`x2`,type:`number literal`},{name:`y2`,type:`number literal`}]}}}}};const B=Yn;const fr={kind:`null`},H={kind:`number`},U={kind:`string`},pr={kind:`boolean`},mr={kind:`color`},hr={kind:`projectionDefinition`},gr={kind:`object`},W={kind:`value`},_r={kind:`error`},vr={kind:`collator`},yr={kind:`formatted`},br={kind:`padding`},xr={kind:`colorArray`},Sr={kind:`numberArray`},Cr={kind:`resolvedImage`},wr={kind:`variableAnchorOffsetCollection`};function Tr(e,t){return {kind:`array`,itemType:e,N:t}}function Er(e){if(e.kind===`array`){let t=Er(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}const Dr=[fr,H,U,pr,mr,hr,yr,gr,Tr(W),br,Sr,xr,Cr,wr];function Or(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!Or(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else if(e.kind===t.kind)return null;else if(e.kind===`value`){for(let e of Dr)if(!Or(e,t))return null}return `Expected ${Er(e)} but found ${Er(t)} instead.`}function kr(e,t){return t.some(t=>t.kind===e.kind)}function Ar(e,t){return t.some(t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e)}function jr(e,t){return e.kind===`array`&&t.kind===`array`?e.itemType.kind===t.itemType.kind&&typeof e.N==`number`:e.kind===t.kind}const Mr=.96422,Nr=.82521,Pr=4/29,Fr=6/29,Ir=3*Fr*Fr,Lr=Math.PI/180,Rr=180/Math.PI;function zr(e){return e%=360,e<0&&(e+=360),e}function Br([e,t,n,r]){e=Vr(e),t=Vr(t),n=Vr(n);let i,a,o=Hr((.2225045*e+.7168786*t+.0606169*n)/1);e===t&&t===n?i=a=o:(i=Hr((.4360747*e+.3850649*t+.1430804*n)/Mr),a=Hr((.0139322*e+.0971045*t+.7141733*n)/Nr));let s=116*o-16;return [s<0?0:s,500*(i-o),200*(o-a),r]}function Vr(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Hr(e){return e>.008856451679035631?e**(1/3):e/Ir+Pr}function Ur([e,t,n,r]){let i=(e+16)/116,a=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*Gr(i),a=Mr*Gr(a),o=Nr*Gr(o),[Wr(3.1338561*a-1.6168667*i-.4906146*o),Wr(-0.9787684*a+1.9161415*i+.033454*o),Wr(.0719453*a-.2289914*i+1.4052427*o),r]}function Wr(e){return e=e<=.00304?12.92*e:1.055*e**(1/2.4)-.055,e<0?0:e>1?1:e}function Gr(e){return e>Fr?e*e*e:Ir*(e-Pr)}function Kr(e){let[t,n,r,i]=Br(e),a=Math.sqrt(n*n+r*r);return [Math.round(a*1e4)?zr(Math.atan2(r,n)*Rr):NaN,a,t,i]}function qr([e,t,n,r]){return e=isNaN(e)?0:e*Lr,Ur([n,Math.cos(e)*t,Math.sin(e)*t,r])}function Jr([e,t,n,r]){e=zr(e),t/=100,n/=100;function i(r){let i=(r+e/30)%12,a=t*Math.min(n,1-n);return n-a*Math.max(-1,Math.min(i-3,9-i,1))}return [i(0),i(8),i(4),r]}const Yr=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function Xr(e,t){return Yr(e,t)?e[t]:void 0}function Zr(e){if(e=e.toLowerCase().trim(),e===`transparent`)return [0,0,0,0];let t=Xr(ni,e);if(t){let[e,n,r]=t;return [e/255,n/255,r/255,1]}if(e.startsWith(`#`)&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){let t=e.length<6?1:2,n=1;return [Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+t)||`ff`)]}if(e.startsWith(`rgb`)){let t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){let[e,n,r,i,a,o,s,c,l,u,d,f]=t,p=[i||` `,s||` `,u].join(``);if(p===` `||p===` /`||p===`,,`||p===`,,,`){let e=[r,o,l].join(``),t=e===`%%%`?100:e===``?255:0;if(t){let e=[ei(+n/t,0,1),ei(+a/t,0,1),ei(+c/t,0,1),d?$r(+d,f):1];if(ti(e))return e}}return}}let n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){let[e,t,r,i,a,o,s,c,l]=n,u=[r||` `,a||` `,s].join(``);if(u===` `||u===` /`||u===`,,`||u===`,,,`){let e=[+t,ei(+i,0,100),ei(+o,0,100),c?$r(+c,l):1];if(ti(e))return Jr(e)}}}function Qr(e){return parseInt(e.padEnd(2,e),16)/255}function $r(e,t){return ei(t?e/100:e,0,1)}function ei(e,t,n){return Math.min(Math.max(t,e),n)}function ti(e){return !e.some(Number.isNaN)}const ni={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function ri(e,t,n){return e+n*(t-e)}function ii(e,t,n){return e.map((e,r)=>ri(e,t[r],n))}function ai(e){return e===`rgb`||e===`hcl`||e===`lab`}var G=class e{constructor(e,t,n,r=1,i=true){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter(`rgb`,[e,t,n,r]));}static{this.black=new e(0,0,0,1);}static{this.white=new e(1,1,1,1);}static{this.transparent=new e(0,0,0,0);}static{this.red=new e(1,0,0,1);}static parse(t){if(t instanceof e)return t;if(typeof t!=`string`)return;let n=Zr(t);if(n)return new e(...n,false)}get rgb(){let{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter(`rgb`,[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter(`hcl`,Kr(this.rgb))}get lab(){return this.overwriteGetter(`lab`,Br(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){let[e,t,n,r]=this.rgb;return `rgba(${[e,t,n].map(e=>Math.round(e*255)).join(`,`)},${r})`}static interpolate(t,n,r,i=`rgb`){switch(i){case `rgb`:{let[i,a,o,s]=ii(t.rgb,n.rgb,r);return new e(i,a,o,s,false)}case `hcl`:{let[i,a,o,s]=t.hcl,[c,l,u,d]=n.hcl,f,p;if(!isNaN(i)&&!isNaN(c)){let e=c-i;c>i&&e>180?e-=360:c<i&&i-c>180&&(e+=360),f=i+r*e;}else isNaN(i)?isNaN(c)?f=NaN:(f=c,(o===1||o===0)&&(p=l)):(f=i,(u===1||u===0)&&(p=a));let[m,h,g,_]=qr([f,p??ri(a,l,r),ri(o,u,r),ri(s,d,r)]);return new e(m,h,g,_,false)}case `lab`:{let[i,a,o,s]=Ur(ii(t.lab,n.lab,r));return new e(i,a,o,s,false)}}}};const oi=[`bottom`,`center`,`top`];var si=class{constructor(e,t,n,r,i,a){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=a;}},ci=class e{constructor(e){this.sections=e;}static fromString(t){return new e([new si(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(t){return t instanceof e?t:e.fromString(t)}toString(){return this.sections.length===0?``:this.sections.map(e=>e.text).join(``)}},li=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(let e of t)if(typeof e!=`number`)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},ui=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t]);if(Array.isArray(t)){for(let e of t)if(typeof e!=`number`)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},di=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`string`){let n=G.parse(t);return n?new e([n]):void 0}if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`string`)return;let t=G.parse(e);if(!t)return;n.push(t);}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i=`rgb`){let a=[];if(t.values.length!=n.values.length)throw Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e<t.values.length;e++)a.push(G.interpolate(t.values[e],n.values[e],r,i));return new e(a)}},fi=class extends Error{constructor(e,t){super(e),this.name=`RuntimeError`,this.path=t;}toJSON(){return this.message}};const pi=/* @__PURE__ */ new Set([`center`,`left`,`right`,`top`,`bottom`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]);var mi=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(!(!Array.isArray(t)||t.length<1||t.length%2!=0)){for(let e=0;e<t.length;e+=2){let n=t[e],r=t[e+1];if(typeof n!=`string`||!pi.has(n)||!Array.isArray(r)||r.length!==2||typeof r[0]!=`number`||typeof r[1]!=`number`)return}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i){let a=t.values,o=n.values;if(a.length!==o.length)throw new fi(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${n.toString()}`,i);let s=[];for(let e=0;e<a.length;e+=2){if(a[e]!==o[e])throw new fi(`Cannot interpolate values containing mismatched anchors. from[${e}]: ${a[e]}, to[${e}]: ${o[e]}`,i);s.push(a[e]);let[t,n]=a[e+1],[c,l]=o[e+1];s.push([ri(t,c,r),ri(n,l,r)]);}return new e(s)}},hi=class e{constructor(e){this.name=e.name,this.available=e.available;}toString(){return this.name}static fromString(t){return t?new e({name:t,available:false}):null}},gi=class e{constructor(e,t,n){this.from=e,this.to=t,this.transition=n;}toString(){return this.from===this.to&&this.transition===1?this.from:JSON.stringify([this.from,this.to,this.transition])}static interpolate(t,n,r){return new e(t,n,r)}static parse(t){if(t instanceof e)return t;if(Array.isArray(t)&&t.length===3&&typeof t[0]==`string`&&typeof t[1]==`string`&&typeof t[2]==`number`)return new e(t[0],t[1],t[2]);if(typeof t==`object`&&typeof t.from==`string`&&typeof t.to==`string`&&typeof t.transition==`number`)return new e(t.from,t.to,t.transition);if(typeof t==`string`)return new e(t,t,1)}},_i=class{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`});}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};function vi(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function yi(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof gi||e instanceof G||e instanceof _i||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi)return true;if(Array.isArray(e)){for(let t of e)if(!yi(t))return false;return true}if(typeof e==`object`){for(let t in e)if(!yi(e[t]))return false;return true}return false}function bi(e){if(e===null)return fr;if(typeof e==`string`)return U;if(typeof e==`boolean`)return pr;if(typeof e==`number`)return H;if(e instanceof G)return mr;if(e instanceof gi)return hr;if(e instanceof _i)return vr;if(e instanceof ci)return yr;if(e instanceof li)return br;if(e instanceof ui)return Sr;if(e instanceof di)return xr;if(e instanceof mi)return wr;if(e instanceof hi)return Cr;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=bi(t);if(!n)n=e;else if(n===e)continue;else {n=W;break}}return Tr(n||W,t)}return gr}function xi(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof G||e instanceof gi||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi?e.toString():JSON.stringify(e)}var Si=class e{constructor(e,t){this.type=e,this.value=t;}static parse(t,n){if(t.length!==2)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r),a=n.expectedType;return i.kind===`array`&&i.N===0&&a&&a.kind===`array`&&(typeof a.N!=`number`||a.N===0)&&(i=a),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return true}};const Ci=[`Unknown`,`Point`,`LineString`,`Polygon`];var wi=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=/* @__PURE__ */ new Map,this.availableImages=null,this.canonical=null;}id(){return this.feature&&`id`in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==`number`?Ci[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&`geometry`in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let t=this._parseColorCache.get(e);return t||(t=G.parse(e),this._parseColorCache.set(e,t)),t}};function Ti(e,t,n){let r=e.length-1,i=0,a=r,o=0,s,c;for(;i<=a;)if(o=Math.floor((i+a)/2),s=e[o],c=e[o+1],s<=t){if(o===r||t<c)return o;i=o+1;}else if(s>t)a=o-1;else throw new fi(`Input is not a number.`,n);return 0}var Ei=class e{constructor(e,t,n,r){this.type=e,this.input=t,this.key=r,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t);}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=[],a=null;n.expectedType&&n.expectedType.kind!==`value`&&(a=n.expectedType);for(let e=1;e<t.length;e+=2){let r=e===1?-1/0:t[e],o=t[e+1],s=e,c=e+1;if(typeof r!=`number`)return n.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(i.length&&i[i.length-1][0]>=r)return n.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=n.parse(o,c,a);if(!l)return null;a||=l.type,i.push([r,l]);}return new e(a,r,i,n.key)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Ti(t,r,this.key)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Di(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var Oi=class e{constructor(e,t,n,r,i,a){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.key=a,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t);}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=ki(t,e.base,n,r);else if(e.name===`linear`)i=ki(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=Di(a[0],a[1],a[2],a[3])(ki(t,1,n,r));}return i}static parse(t,n){let[r,i,a,...o]=t;if(!Array.isArray(i)||i.length===0)return n.error(`Expected an interpolation type expression.`,1);if(i[0]===`linear`)i={name:`linear`};else if(i[0]===`exponential`){let e=i[1];if(typeof e!=`number`)return n.error(`Exponential interpolation requires a numeric base.`,1,1);i={name:`exponential`,base:e};}else if(i[0]===`cubic-bezier`){let e=i.slice(1);if(e.length!==4||e.some(e=>typeof e!=`number`||e<0||e>1))return n.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);i={name:`cubic-bezier`,controlPoints:e};}else return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);if(a=n.parse(a,2,H),!a)return null;let s=[],c=null;(r===`interpolate-hcl`||r===`interpolate-lab`)&&n.expectedType!=xr?c=mr:n.expectedType&&n.expectedType.kind!==`value`&&(c=n.expectedType);for(let e=0;e<o.length;e+=2){let t=o[e],r=o[e+1],i=e+3,a=e+4;if(typeof t!=`number`)return n.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(s.length&&s[s.length-1][0]>=t)return n.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=n.parse(r,a,c);if(!l)return null;c||=l.type,s.push([t,l]);}return !jr(c,H)&&!jr(c,hr)&&!jr(c,mr)&&!jr(c,br)&&!jr(c,Sr)&&!jr(c,xr)&&!jr(c,wr)&&!jr(c,Tr(H))?n.error(`Type ${Er(c)} is not interpolatable.`):new e(c,r,i,a,s,n.key)}evaluate(t){let n=this.labels,r=this.outputs;if(n.length===1)return r[0].evaluate(t);let i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);let a=n.length;if(i>=n[a-1])return r[a-1].evaluate(t);let o=Ti(n,i,this.key),s=n[o],c=n[o+1],l=e.interpolationFactor(this.interpolation,i,s,c),u=r[o].evaluate(t),d=r[o+1].evaluate(t);switch(this.operator){case `interpolate`:switch(this.type.kind){case `number`:return ri(u,d,l);case `color`:return G.interpolate(u,d,l);case `padding`:return li.interpolate(u,d,l);case `colorArray`:return di.interpolate(u,d,l);case `numberArray`:return ui.interpolate(u,d,l);case `variableAnchorOffsetCollection`:return mi.interpolate(u,d,l,this.key);case `array`:return ii(u,d,l);case `projectionDefinition`:return gi.interpolate(u,d,l)}case `interpolate-hcl`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`hcl`);case `colorArray`:return di.interpolate(u,d,l,`hcl`)}case `interpolate-lab`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`lab`);case `colorArray`:return di.interpolate(u,d,l,`lab`)}}}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function ki(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}const Ai={color:G.interpolate,number:ri,padding:li.interpolate,numberArray:ui.interpolate,colorArray:di.interpolate,variableAnchorOffsetCollection:mi.interpolate,array:ii};var ji=class e{constructor(e){this.type=yr,this.sections=e;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[1];if(!Array.isArray(r)&&typeof r==`object`)return n.error(`First argument must be an image or text section.`);let i=[],a=false;for(let e=1;e<=t.length-1;++e){let r=t[e];if(a&&typeof r==`object`&&!Array.isArray(r)){a=false;let e=null;if(r[`font-scale`]&&(e=n.parse(r[`font-scale`],1,H),!e))return null;let t=null;if(r[`text-font`]&&(t=n.parse(r[`text-font`],1,Tr(U)),!t))return null;let o=null;if(r[`text-color`]&&(o=n.parse(r[`text-color`],1,mr),!o))return null;let s=null;if(r[`vertical-align`]){if(typeof r[`vertical-align`]==`string`&&!oi.includes(r[`vertical-align`]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r[`vertical-align`]}' instead.`);if(s=n.parse(r[`vertical-align`],1,U),!s)return null}let c=i[i.length-1];c.scale=e,c.font=t,c.textColor=o,c.verticalAlign=s;}else {let r=n.parse(t[e],1,W);if(!r)return null;let o=r.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return n.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);a=true,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null});}}return new e(i)}evaluate(e){return new ci(this.sections.map(t=>{let n=t.content.evaluate(e);return bi(n)===Cr?new si(``,n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new si(xi(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign);}outputDefined(){return false}};function Mi(e,t,n=0,r=e.length-1,i=Pi){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);Mi(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i);}let a=e[t],o=n,s=r;for(Ni(e,n,t),i(e[r],a)>0&&Ni(e,n,r);o<s;){for(Ni(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--;}i(e[n],a)===0?Ni(e,n,s):(s++,Ni(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1);}}function Ni(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}function Pi(e,t){return e<t?-1:+(e>t)}function Fi(e,t){if(e.length<=1)return [e];let n=[],r,i;for(let t of e){let e=Li(t);e!==0&&(t.area=Math.abs(e),i===void 0&&(i=e<0),i===e<0?(r&&n.push(r),r=[t]):r.push(t));}if(r&&n.push(r),t>1)for(let e=0;e<n.length;e++)n[e].length<=t||(Mi(n[e],t,1,n[e].length-1,Ii),n[e]=n[e].slice(0,t));return n}function Ii(e,t){return t.area-e.area}function Li(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}const Ri={string:U,number:H,boolean:pr,object:gr};var zi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=1,i,a=t[0];if(a===`array`){let e;if(t.length>2){let i=t[1];if(typeof i!=`string`||!(i in Ri)||i===`object`)return n.error(`The item type argument of "array" must be one of string, number, boolean`,1);e=Ri[i],r++;}else e=W;let a;if(t.length>3){if(t[2]!==null&&(typeof t[2]!=`number`||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(`The length argument to "array" must be a positive integer literal`,2);a=t[2],r++;}i=Tr(e,a);}else {if(!Ri[a])throw Error(`Types doesn't contain name = ${a}`);i=Ri[a];}let o=[];for(;r<t.length;r++){let e=n.parse(t[r],r,W);if(!e)return null;o.push(e);}return new e(i,o,n.key)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!Or(this.type,bi(n)))return n;if(t===this.args.length-1)throw new fi(`Expected value to be of type ${Er(this.type)}, but found ${Er(bi(n))} instead.`,this.key)}throw Error()}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};const Bi={"to-boolean":pr,"to-color":mr,"to-number":H,"to-string":U};var Vi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[0];if(!Bi[r])throw Error(`Can't parse ${r} as it is not part of the known types`);if((r===`to-boolean`||r===`to-string`)&&t.length!==2)return n.error(`Expected one argument.`);let i=Bi[r],a=[];for(let e=1;e<t.length;e++){let r=n.parse(t[e],e,W);if(!r)return null;a.push(r);}return new e(i,a,n.key)}evaluate(e){switch(this.type.kind){case `boolean`:return !!this.args[0].evaluate(e);case `color`:{let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof G)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:vi(t[0],t[1],t[2],t[3]),!n))return new G(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new fi(n||`Could not parse color from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `padding`:{let t;for(let n of this.args){t=n.evaluate(e);let r=li.parse(t);if(r)return r}throw new fi(`Could not parse padding from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `numberArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ui.parse(t);if(r)return r}throw new fi(`Could not parse numberArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `colorArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=di.parse(t);if(r)return r}throw new fi(`Could not parse colorArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `variableAnchorOffsetCollection`:{let t;for(let n of this.args){t=n.evaluate(e);let r=mi.parse(t);if(r)return r}throw new fi(`Could not parse variableAnchorOffsetCollection from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `number`:{let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new fi(`Could not convert ${JSON.stringify(t)} to number.`,this.key)}case `formatted`:return ci.fromString(xi(this.args[0].evaluate(e)));case `resolvedImage`:return hi.fromString(xi(this.args[0].evaluate(e)));case `projectionDefinition`:{let t=this.args[0].evaluate(e);if(gi.parse(t))return t;throw new fi(`Could not parse projectionDefinition from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}default:return xi(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}},Hi=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t;}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result);}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);let r=[];for(let e=1;e<t.length-1;e+=2){let i=t[e];if(typeof i!=`string`)return n.error(`Expected string, but found ${typeof i} instead.`,e);if(/[^a-zA-Z0-9_]/.test(i))return n.error(`Variable names must contain only alphanumeric characters or '_'.`,e);let a=n.parse(t[e+1],e+1);if(!a)return null;r.push([i,a]);}let i=n.parse(t[t.length-1],t.length-1,n.expectedType,r);return i?new e(r,i):null}outputDefined(){return this.result.outputDefined()}},Ui=class e{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t;}static parse(t,n){if(t.length!==2||typeof t[1]!=`string`)return n.error(`'var' expression requires exactly one string literal argument.`);let r=t[1];return n.scope.has(r)?new e(r,n.scope.get(r)):n.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return false}},Wi=class e{constructor(e,t,n,r){this.type=e,this.index=t,this.input=n,this.key=r;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,H),i=n.parse(t[2],2,Tr(n.expectedType||W));if(!r||!i)return null;let a=i.type;return new e(a.itemType,r,i,n.key)}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new fi(`Array index out of bounds: ${t} < 0.`,this.key);if(t>=n.length)throw new fi(`Array index out of bounds: ${t} > ${n.length-1}.`,this.key);if(t!==Math.floor(t))throw new fi(`Array index must be an integer, but found ${t} instead.`,this.key);return n[t]}eachChild(e){e(this.index),e(this.input);}outputDefined(){return false}},Gi=class e{constructor(e,t,n){this.needle=e,this.haystack=t,this.key=n,this.type=pr;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);return !r||!i?null:kr(r.type,[pr,U,H,fr,W])?new e(r,i,n.key):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return false;if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);if(!Ar(n,[`string`,`array`]))throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack);}outputDefined(){return true}},Ki=class e{constructor(e,t,n,r){this.needle=e,this.haystack=t,this.key=n,this.fromIndex=r,this.type=H;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);if(!r||!i)return null;if(!kr(r.type,[pr,U,H,fr,W]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r,i,n.key,a):null}return new e(r,i,n.key)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),Ar(n,[`string`])){let e=n.indexOf(t,r);return e===-1?-1:[...n.slice(0,e)].length}if(Ar(n,[`array`]))return n.indexOf(t,r);throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex);}outputDefined(){return false}},qi=class e{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a;}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error(`Expected an even number of arguments.`);let r,i;n.expectedType&&n.expectedType.kind!==`value`&&(i=n.expectedType);let a={},o=[];for(let e=2;e<t.length-1;e+=2){let s=t[e],c=t[e+1];Array.isArray(s)||(s=[s]);let l=n.concat(e);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(!r)r=bi(e);else if(l.checkSubtype(r,bi(e)))return null;if(a[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);a[String(e)]=o.length;}let u=n.parse(c,e,i);if(!u)return null;i||=u.type,o.push(u);}let s=n.parse(t[1],1,W);if(!s)return null;let c=n.parse(t[t.length-1],t.length-1,i);return !c||s.type.kind!==`value`&&n.concat(1).checkSubtype(r,s.type)?null:new e(r,i,s,a,o,c)}evaluate(e){let t=this.input.evaluate(e);return (bi(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise);}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}},Ji=class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n;}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error(`Expected an odd number of arguments.`);let r;n.expectedType&&n.expectedType.kind!==`value`&&(r=n.expectedType);let i=[];for(let e=1;e<t.length-1;e+=2){let a=n.parse(t[e],e,pr);if(!a)return null;let o=n.parse(t[e+1],e+1,r);if(!o)return null;i.push([a,o]),r||=o.type;}let a=n.parse(t[t.length-1],t.length-1,r);if(!a)return null;if(!r)throw Error(`Can't infer output type`);return new e(r,i,a)}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise);}outputDefined(){return this.branches.every(([e,t])=>t.outputDefined())&&this.otherwise.outputDefined()}},Yi=class e{constructor(e,t,n,r,i){this.type=e,this.input=t,this.beginIndex=n,this.key=r,this.endIndex=i;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,H);if(!r||!i)return null;if(!kr(r.type,[Tr(W),U,W]))return n.error(`Expected first argument to be of type array or string, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r.type,r,i,n.key,a):null}return new e(r.type,r,i,n.key)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e),r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),Ar(t,[`string`]))return [...t].slice(n,r).join(``);if(Ar(t,[`array`]))return t.slice(n,r);throw new fi(`Expected first argument to be of type array or string, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex);}outputDefined(){return false}},Xi=class e{constructor(e,t){this.type=e,this.args=t;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=null,i=n.expectedType;i&&i.kind!==`value`&&(r=i);let a=[];for(let e of t.slice(1)){let t=n.parse(e,1+a.length,r,void 0,{typeAnnotation:`omit`});if(!t)return null;r||=t.type,a.push(t);}if(!r)throw Error(`No output type`);return i&&a.some(e=>Or(i,e.type))?new e(W,a):new e(r,a)}evaluate(e){let t=null,n=0,r;for(let i of this.args)if(n++,t=i.evaluate(e),t&&t instanceof hi&&!t.available&&(r||=t.name,t=null,n===this.args.length&&(t=r)),t!==null)break;return t}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};function Zi(e,t){return e===`==`||e===`!=`?t.kind===`boolean`||t.kind===`string`||t.kind===`number`||t.kind===`null`||t.kind===`value`:t.kind===`string`||t.kind===`number`||t.kind===`value`}function Qi(e,t,n){return t===n}function $i(e,t,n){return t!==n}function ea(e,t,n){return t<n}function ta(e,t,n){return t>n}function na(e,t,n){return t<=n}function ra(e,t,n){return t>=n}function ia(e,t,n,r){return r.compare(t,n)===0}function aa(e,t,n,r){return !ia(e,t,n,r)}function oa(e,t,n,r){return r.compare(t,n)<0}function sa(e,t,n,r){return r.compare(t,n)>0}function ca(e,t,n,r){return r.compare(t,n)<=0}function la(e,t,n,r){return r.compare(t,n)>=0}function ua$1(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n,r){this.lhs=e,this.rhs=t,this.key=n,this.collator=r,this.type=pr,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`;}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,W);if(!a)return null;if(!Zi(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${Er(a.type)}'.`);let o=t.parse(e[2],2,W);if(!o)return null;if(!Zi(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${Er(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${Er(a.type)}' and '${Er(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new zi(o.type,[a],t.key):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new zi(a.type,[o],t.key)));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,vr),!s)return null}return new i(a,o,t.key,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=bi(a),n=bi(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new fi(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`,this.key)}if(this.collator&&!r&&this.hasUntypedArgument){let e=bi(a),n=bi(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator);}outputDefined(){return true}}}const da=ua$1(`==`,Qi,ia),fa=ua$1(`!=`,$i,aa),pa=ua$1(`<`,ea,oa),ma=ua$1(`>`,ta,sa),ha=ua$1(`<=`,na,ca),ga=ua$1(`>=`,ra,la);var _a=class e{constructor(e,t,n){this.type=vr,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t;}static parse(t,n){if(t.length!==2)return n.error(`Expected one argument.`);let r=t[1];if(typeof r!=`object`||Array.isArray(r))return n.error(`Collator options argument must be an object.`);let i=n.parse(r[`case-sensitive`]!==void 0&&r[`case-sensitive`],1,pr);if(!i)return null;let a=n.parse(r[`diacritic-sensitive`]!==void 0&&r[`diacritic-sensitive`],1,pr);if(!a)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,U),!o)?null:new e(i,a,o)}evaluate(e){return new _i(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale);}outputDefined(){return false}},va=class e{constructor(e,t,n,r,i,a){this.type=U,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a;}static parse(t,n){if(t.length!==3)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=t[2];if(typeof i!=`object`||Array.isArray(i))return n.error(`NumberFormat options argument must be an object.`);let a=null;if(i.locale&&(a=n.parse(i.locale,1,U),!a))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,U),!o))return null;let s=null;if(i.unit&&(s=n.parse(i.unit,1,U),!s))return null;if(o&&s)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let c=null;if(i[`min-fraction-digits`]&&(c=n.parse(i[`min-fraction-digits`],1,H),!c))return null;let l=null;return i[`max-fraction-digits`]&&(l=n.parse(i[`max-fraction-digits`],1,H),!l)?null:new e(r,a,o,s,c,l)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?`currency`:this.unit?`unit`:`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits);}outputDefined(){return false}},ya=class e{constructor(e){this.type=Cr,this.input=e;}static parse(t,n){if(t.length!==2)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,U);return r?new e(r):n.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=hi.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input);}outputDefined(){return false}},ba=class e{constructor(e,t){this.input=e,this.key=t,this.type=H;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=n.parse(t[1],1);return r?r.type.kind!==`array`&&r.type.kind!==`string`&&r.type.kind!==`value`?n.error(`Expected argument of type string or array, but found ${Er(r.type)} instead.`):new e(r,n.key):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`)return [...t].length;if(Array.isArray(t))return t.length;throw new fi(`Expected value to be of type string or array, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input);}outputDefined(){return false}};const xa=8192;function Sa(e,t){let n=wa(e[0]),r=Ea(e[1]),i=2**t.z;return [Math.round(n*i*xa),Math.round(r*i*xa)]}function Ca(e,t){let n=2**t.z,r=(e[0]/xa+t.x)/n,i=(e[1]/xa+t.y)/n;return [Ta(r),Da(i)]}function wa(e){return (180+e)/360}function Ta(e){return e*360-180}function Ea(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function Da(e){return 360/Math.PI*Math.atan(Math.exp((180-e*360)*Math.PI/180))-90}function Oa(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1]);}function ka(e,t){return !(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function Aa(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function ja(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i===0&&r*a<=0&&i*o<=0}function Ma(e,t,n,r){let i=[t[0]-e[0],t[1]-e[1]];return Ra([r[0]-n[0],r[1]-n[1]],i)!==0&&!!(za(e,t,n,r)&&za(n,r,e,t))}function Na(e,t,n){for(let r of n)for(let n=0;n<r.length-1;++n)if(Ma(e,t,r[n],r[n+1]))return true;return false}function Pa(e,t,n=false){let r=false;for(let i of t)for(let t=0;t<i.length-1;t++){if(ja(e,i[t],i[t+1]))return n;Aa(e,i[t],i[t+1])&&(r=!r);}return r}function Fa(e,t){for(let n of t)if(Pa(e,n))return true;return false}function Ia(e,t){for(let n of e)if(!Pa(n,t))return false;for(let n=0;n<e.length-1;++n)if(Na(e[n],e[n+1],t))return false;return true}function La(e,t){for(let n of t)if(Ia(e,n))return true;return false}function Ra(e,t){return e[0]*t[1]-e[1]*t[0]}function za(e,t,n,r){let i=e[0]-n[0],a=e[1]-n[1],o=t[0]-n[0],s=t[1]-n[1],c=r[0]-n[0],l=r[1]-n[1],u=i*l-c*a,d=o*l-c*s;return u>0&&d<0||u<0&&d>0}function Ba(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=Sa(e[i][r],n);Oa(t,o),a.push(o);}r.push(a);}return r}function Va(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=Ba(e[i],t,n);r.push(a);}return r}function Ha(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=r*.5,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i;}Oa(t,e);}function Ua(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0;}function Wa(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];Ha(r,t,n,i),o.push(r);}return o}function Ga(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];Oa(t,n),e.push(n);}o.push(e);}if(t[2]-t[0]<=i/2){Ua(t);for(let e of o)for(let r of e)Ha(r,t,n,i);}return o}function Ka(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Pa(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Fa(e,a))return false}return true}function qa(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Ia(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!La(e,a))return false}return true}var Ja=class e{constructor(e,t){this.type=pr,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`){let t=[];for(let e of n.features){let{type:n,coordinates:r}=e.geometry;n===`Polygon`&&t.push(r),n===`MultiPolygon`&&t.push(...r);}if(t.length)return new e(n,{type:`MultiPolygon`,coordinates:t})}else if(n.type===`Feature`){let t=n.geometry.type;if(t===`Polygon`||t===`MultiPolygon`)return new e(n,n.geometry)}else if(n.type===`Polygon`||n.type===`MultiPolygon`)return new e(n,n)}return n.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return Ka(e,this.geometries);if(e.geometryType()===`LineString`)return qa(e,this.geometries)}return false}eachChild(){}outputDefined(){return true}},Ya=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};const Xa=Math.PI/180;var Za=class{constructor(e){let t=Xa*6378.137*1e3,n=Math.cos(e*Xa),r=1/(1-.0066943799901413165*(1-n*n)),i=Math.sqrt(r);this.kx=t*i*n,this.ky=t*i*r*.9933056200098587;}distance(e,t){let n=this.wrap(e[0]-t[0])*this.kx,r=(e[1]-t[1])*this.ky;return Math.sqrt(n*n+r*r)}pointOnLine(e,t){let n=1/0,r,i,a,o;for(let s=0;s<e.length-1;s++){let c=e[s][0],l=e[s][1],u=this.wrap(e[s+1][0]-c)*this.kx,d=(e[s+1][1]-l)*this.ky,f=0;(u!==0||d!==0)&&(f=(this.wrap(t[0]-c)*this.kx*u+(t[1]-l)*this.ky*d)/(u*u+d*d),f>1?(c=e[s+1][0],l=e[s+1][1]):f>0&&(c+=u/this.kx*f,l+=d/this.ky*f)),u=this.wrap(t[0]-c)*this.kx,d=(t[1]-l)*this.ky;let p=u*u+d*d;p<n&&(n=p,r=c,i=l,a=s,o=f);}return {point:[r,i],index:a,t:Math.max(0,Math.min(1,o))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};function Qa(e,t){return t[0]-e[0]}function $a(e){return e[1]-e[0]+1}function eo(e,t){return e[1]>=e[0]&&e[1]<t}function to(e,t){if(e[0]>e[1])return [null,null];let n=$a(e);if(t){if(n===2)return [e,null];let t=Math.floor(n/2);return [[e[0],e[0]+t],[e[0]+t,e[1]]]}if(n===1)return [e,null];let r=Math.floor(n/2)-1;return [[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function no(e,t){if(!eo(t,e.length))return [1/0,1/0,-1/0,-1/0];let n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)Oa(n,e[r]);return n}function ro(e){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)for(let e of n)Oa(t,e);return t}function io(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function ao(e,t,n){if(!io(e)||!io(t))return NaN;let r=0,i=0;return e[2]<t[0]&&(r=t[0]-e[2]),e[0]>t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]<t[1]&&(i=t[1]-e[3]),n.distance([0,0],[r,i])}function oo(e,t,n){let r=n.pointOnLine(t,e);return n.distance(e,r.point)}function so(e,t,n,r,i){let a=Math.min(oo(e,[n,r],i),oo(t,[n,r],i)),o=Math.min(oo(n,[e,t],i),oo(r,[e,t],i));return Math.min(a,o)}function co(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return 1/0;let a=1/0;for(let o=t[0];o<t[1];++o){let t=e[o],s=e[o+1];for(let e=r[0];e<r[1];++e){let r=n[e],o=n[e+1];if(Ma(t,s,r,o))return 0;a=Math.min(a,so(t,s,r,o,i));}}return a}function lo(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return NaN;let a=1/0;for(let o=t[0];o<=t[1];++o)for(let t=r[0];t<=r[1];++t)if(a=Math.min(a,i.distance(e[o],n[t])),a===0)return a;return a}function uo(e,t,n){if(Pa(e,t,true))return 0;let r=1/0;for(let i of t){let t=i[0],a=i[i.length-1];if(t!==a&&(r=Math.min(r,oo(e,[a,t],n)),r===0))return r;let o=n.pointOnLine(i,e);if(r=Math.min(r,n.distance(e,o.point)),r===0)return r}return r}function fo(e,t,n,r){if(!eo(t,e.length))return NaN;for(let r=t[0];r<=t[1];++r)if(Pa(e[r],n,true))return 0;let i=1/0;for(let a=t[0];a<t[1];++a){let t=e[a],o=e[a+1];for(let e of n)for(let n=0,a=e.length,s=a-1;n<a;s=n++){let a=e[s],c=e[n];if(Ma(t,o,a,c))return 0;i=Math.min(i,so(t,o,a,c,r));}}return i}function po(e,t){for(let n of e)for(let e of n)if(Pa(e,t,true))return true;return false}function mo(e,t,n,r=1/0){let i=ro(e),a=ro(t);if(r!==1/0&&ao(i,a,n)>=r)return r;if(ka(i,a)){if(po(e,t))return 0}else if(po(t,e))return 0;let o=1/0;for(let r of e)for(let e=0,i=r.length,a=i-1;e<i;a=e++){let i=r[a],s=r[e];for(let e of t)for(let t=0,r=e.length,a=r-1;t<r;a=t++){let r=e[a],c=e[t];if(Ma(i,s,r,c))return 0;o=Math.min(o,so(i,s,r,c,n));}}return o}function ho(e,t,n,r,i,a){if(!a)return;let o=ao(no(r,a),i,n);o<t&&e.push([o,a,[0,0]]);}function go(e,t,n,r,i,a,o){if(!a||!o)return;let s=ao(no(r,a),no(i,o),n);s<t&&e.push([s,a,o]);}function _o(e,t,n,r,i=1/0){let a=Math.min(r.distance(e[0],n[0][0]),i);if(a===0)return a;let o=new Ya([[0,[0,e.length-1],[0,0]]],Qa),s=ro(n);for(;o.length>0;){let i=o.pop();if(i[0]>=a)continue;let c=i[1],l=t?50:100;if($a(c)<=l){if(!eo(c,e.length))return NaN;if(t){let t=fo(e,c,n,r);if(isNaN(t)||t===0)return t;a=Math.min(a,t);}else for(let t=c[0];t<=c[1];++t){let i=uo(e[t],n,r);if(a=Math.min(a,i),a===0)return 0}}else {let n=to(c,t);ho(o,a,r,e,s,n[0]),ho(o,a,r,e,s,n[1]);}}return a}function vo(e,t,n,r,i,a=1/0){let o=Math.min(a,i.distance(e[0],n[0]));if(o===0)return o;let s=new Ya([[0,[0,e.length-1],[0,n.length-1]]],Qa);for(;s.length>0;){let a=s.pop();if(a[0]>=o)continue;let c=a[1],l=a[2],u=t?50:100,d=r?50:100;if($a(c)<=u&&$a(l)<=d){if(!eo(c,e.length)&&eo(l,n.length))return NaN;let a;if(t&&r)a=co(e,c,n,l,i),o=Math.min(o,a);else if(t&&!r){let t=e.slice(c[0],c[1]+1);for(let e=l[0];e<=l[1];++e)if(a=oo(n[e],t,i),o=Math.min(o,a),o===0)return o}else if(!t&&r){let t=n.slice(l[0],l[1]+1);for(let n=c[0];n<=c[1];++n)if(a=oo(e[n],t,i),o=Math.min(o,a),o===0)return o}else a=lo(e,c,n,l,i),o=Math.min(o,a);}else {let a=to(c,t),u=to(l,r);go(s,o,i,e,n,a[0],u[0]),go(s,o,i,e,n,a[0],u[1]),go(s,o,i,e,n,a[1],u[0]),go(s,o,i,e,n,a[1],u[1]);}}return o}function yo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,false,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,false,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,false,e.coordinates,i,a));}if(a===0)return a}return a}function bo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,true,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,true,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,true,e.coordinates,i,a));}if(a===0)return a}return a}function xo(e,t){let n=e.geometry();if(n.length===0||n[0].length===0)return NaN;let r=Fi(n,0).map(t=>t.map(t=>t.map(t=>Ca([t.x,t.y],e.canonical)))),i=new Za(r[0][0][0][1]),a=1/0;for(let e of t)for(let t of r){switch(e.type){case `Point`:a=Math.min(a,_o([e.coordinates],false,t,i,a));break;case `LineString`:a=Math.min(a,_o(e.coordinates,true,t,i,a));break;case `Polygon`:a=Math.min(a,mo(t,e.coordinates,i,a));}if(a===0)return a}return a}function So(e){return e.type===`MultiPolygon`?e.coordinates.map(e=>({type:`Polygon`,coordinates:e})):e.type===`MultiLineString`?e.coordinates.map(e=>({type:`LineString`,coordinates:e})):e.type===`MultiPoint`?e.coordinates.map(e=>({type:`Point`,coordinates:e})):[e]}var Co=class e{constructor(e,t){this.type=H,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`)return new e(n,n.features.map(e=>So(e.geometry)).flat());if(n.type===`Feature`)return new e(n,So(n.geometry));if(`type`in n&&`coordinates`in n)return new e(n,So(n))}return n.error(`'distance' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return yo(e,this.geometries);if(e.geometryType()===`LineString`)return bo(e,this.geometries);if(e.geometryType()===`Polygon`)return xo(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return true}},wo=class e{constructor(e){let t=null;for(let n of e)if(!t)t=n.type;else if(t===n.type)continue;else {t=W;break}this.type=Tr(t??W,e.length),this.arr=e;}static parse(t,n){if(t.length!==2)return n.error(`'semiliteral' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r);if(i.kind===`array`){let t=r,i=n.concat(1),a=[];for(let e=0;e<t.length;e++){let n=i.parse(t[e],e,W);if(!n)return null;a.push(n);}return new e(a)}return new Si(i,r)}evaluate(e){return this.arr.map(t=>t.evaluate(e))}eachChild(e){this.arr.forEach(e);}outputDefined(){return this.arr.every(e=>e.outputDefined())}},To=class e{constructor(e){this.key=e,this.type=W;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=t[1];return r==null?n.error(`Global state property must be defined.`):typeof r==`string`?new e(r):n.error(`Global state property must be string, but found ${typeof t[1]} instead.`)}evaluate(e){let t=e.globals?.globalState;return !t||Object.keys(t).length===0?null:Xr(t,this.key)??null}eachChild(){}outputDefined(){return false}};const Eo={"==":da,"!=":fa,">":ma,"<":pa,">=":ga,"<=":ha,array:zi,at:Wi,boolean:zi,case:Ji,coalesce:Xi,collator:_a,format:ji,image:ya,in:Gi,"index-of":Ki,interpolate:Oi,"interpolate-hcl":Oi,"interpolate-lab":Oi,length:ba,let:Hi,literal:Si,match:qi,number:zi,"number-format":va,object:zi,semiliteral:wo,slice:Yi,step:Ei,string:zi,"to-boolean":Vi,"to-color":Vi,"to-number":Vi,"to-string":Vi,var:Ui,within:Ja,distance:Co,"global-state":To};var Do=class extends Error{constructor(e,t){super(t),this.message=t,this.key=e;}},Oo=class e{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n;}concat(t){return new e(this,t)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return this.bindings[e]?true:this.parent?this.parent.has(e):false}},ko=class e{constructor(e,t,n=[],r,i=new Oo,a=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(``),this.scope=i,this.errors=a,this.expectedType=r,this._isConstant=t;}parse(e,t,n,r,i={}){return t==null?this._parse(e,i):this.concat(t,n,r)._parse(e,i)}_parse(e,t){(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`)&&(e=[`literal`,e]);let n=this.key;function r(e,t,r){return r===`assert`?new zi(t,[e],n):r===`coerce`?new Vi(t,[e],n):e}if(Array.isArray(e)){if(e.length===0)return this.error(`Expected an array with at least one element. If you wanted a literal array, use ["literal", []].`);let n=e[0];if(typeof n!=`string`)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[n];if(i){let n=i.parse(e,this);if(!n)return null;if(this.expectedType){let e=this.expectedType,i=n.type;if((e.kind===`string`||e.kind===`number`||e.kind===`boolean`||e.kind===`object`||e.kind===`array`)&&i.kind===`value`)n=r(n,e,t.typeAnnotation||`assert`);else if(e.kind===`projectionDefinition`&&[`string`,`array`,`value`].includes(i.kind)||[`color`,`formatted`,`resolvedImage`].includes(e.kind)&&[`value`,`string`].includes(i.kind)||[`padding`,`numberArray`].includes(e.kind)&&[`value`,`number`,`array`].includes(i.kind)||e.kind===`colorArray`&&[`value`,`string`,`array`].includes(i.kind)||e.kind===`variableAnchorOffsetCollection`&&[`value`,`array`].includes(i.kind))n=r(n,e,t.typeAnnotation||`coerce`);else if(this.checkSubtype(e,i))return null}if(!(n instanceof Si)&&n.type.kind!==`resolvedImage`&&this._isConstant(n)){let e=new wi;try{n=new Si(n.type,n.evaluate(e));}catch(e){return this.error(e.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return e===void 0?this.error(`'undefined' value invalid. Use null instead.`):typeof e==`object`?this.error(`Bare objects invalid. Use ["literal", {...}] instead.`):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){let i=typeof t==`number`?this.path.concat(t):this.path,a=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,a,this.errors)}error(e,...t){let n=`${this.key}${t.map(e=>`[${e}]`).join(``)}`;this.errors.push(new Do(n,e));}checkSubtype(e,t){let n=Or(e,t);return n&&this.error(n),n}},Ao=class e{constructor(e,t,n,r,i){this.name=e,this.type=t,this._evaluate=n,this.args=r,this.key=i;}evaluate(e){return this._evaluate(e,this.args,this.key)}eachChild(e){this.args.forEach(e);}outputDefined(){return false}static parse(t,n){let r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);let a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1),c=null;for(let[i,o]of s){c=new ko(n.registry,Lo,n.path,null,n.scope);let s=[],l=false;for(let e=1;e<t.length;e++){let n=t[e],r=Array.isArray(i)?i[e-1]:i.type,a=c.parse(n,1+s.length,r);if(!a){l=true;break}s.push(a);}if(!l){if(Array.isArray(i)&&i.length!==s.length)c.error(`Expected ${i.length} arguments, but found ${s.length} instead.`);else {for(let e=0;e<s.length;e++){let t=Array.isArray(i)?i[e]:i.type,n=s[e];c.concat(e+1).checkSubtype(t,n.type);}if(c.errors.length===0)return new e(r,a,o,s,n.key)}}}if(s.length===1)n.errors.push(...c.errors);else {let e=(s.length?s:o).map(([e])=>Io(e)).join(` | `),r=[];for(let e=1;e<t.length;e++){let i=n.parse(t[e],1+r.length);if(!i)return null;r.push(Er(i.type));}n.error(`Expected arguments of type ${e}, but found (${r.join(`, `)}) instead.`);}return null}static register(t,n){e.definitions=n;for(let r in n)t[r]=e;}};function jo(e,[t,n,r,i],a){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let o=i?i.evaluate(e):1,s=vi(t,n,r,o);if(s)throw new fi(s,a);return new G(t/255,n/255,r/255,o,false)}function Mo(e,t){return e in t&&t[e]!==void 0}function No(e,t){let n=t[e];return n===void 0?null:n}function Po(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return true;t[i]>e?r=i-1:n=i+1;}return false}function Fo(e){return {type:e}}Ao.register(Eo,{error:[_r,[U],(e,[t],n)=>{throw new fi(t.evaluate(e),n)}],typeof:[U,[W],(e,[t])=>Er(bi(t.evaluate(e)))],"to-rgba":[Tr(H,4),[mr],(e,[t])=>{let[n,r,i,a]=t.evaluate(e).rgb;return [n*255,r*255,i*255,a]}],rgb:[mr,[H,H,H],jo],rgba:[mr,[H,H,H,H],jo],has:{type:pr,overloads:[[[U],(e,[t])=>Mo(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>Mo(t.evaluate(e),n.evaluate(e))]]},get:{type:W,overloads:[[[U],(e,[t])=>No(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>No(t.evaluate(e),n.evaluate(e))]]},"feature-state":[W,[U],(e,[t])=>No(t.evaluate(e),e.featureState||{})],properties:[gr,[],e=>e.properties()],"geometry-type":[U,[],e=>e.geometryType()],id:[W,[],e=>e.id()],zoom:[H,[],e=>e.globals.zoom],"heatmap-density":[H,[],e=>e.globals.heatmapDensity||0],elevation:[H,[],e=>e.globals.elevation||0],"line-progress":[H,[],e=>e.globals.lineProgress||0],accumulated:[W,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[H,Fo(H),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[H,Fo(H),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:H,overloads:[[[H,H],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[H],(e,[t])=>-t.evaluate(e)]]},"/":[H,[H,H],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[H,[H,H],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[H,[],()=>Math.LN2],pi:[H,[],()=>Math.PI],e:[H,[],()=>Math.E],"^":[H,[H,H],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[H,[H],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[H,[H],(e,[t])=>Math.log(t.evaluate(e))],log2:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[H,[H],(e,[t])=>Math.sin(t.evaluate(e))],cos:[H,[H],(e,[t])=>Math.cos(t.evaluate(e))],tan:[H,[H],(e,[t])=>Math.tan(t.evaluate(e))],asin:[H,[H],(e,[t])=>Math.asin(t.evaluate(e))],acos:[H,[H],(e,[t])=>Math.acos(t.evaluate(e))],atan:[H,[H],(e,[t])=>Math.atan(t.evaluate(e))],min:[H,Fo(H),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[H,Fo(H),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[H,[H],(e,[t])=>Math.abs(t.evaluate(e))],round:[H,[H],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[H,[H],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[H,[H],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[pr,[U,W],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[pr,[W],(e,[t])=>e.id()===t.value],"filter-type-==":[pr,[U],(e,[t])=>e.geometryType()===t.value],"filter-<":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[pr,[W],(e,[t])=>{let n=t.value,r=e.properties();return n in r&&r[n]!==void 0}],"filter-has-id":[pr,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[pr,[Tr(U)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[pr,[Tr(W)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[pr,[U,Tr(W)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[pr,[U,Tr(W)],(e,[t,n])=>Po(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(!n.evaluate(e))return false;return true}]]},any:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(n.evaluate(e))return true;return false}]]},"!":[pr,[pr],(e,[t])=>!t.evaluate(e)],"is-supported-script":[pr,[U],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return !n||n(t.evaluate(e))}],upcase:[U,[U],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[U,[U],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[U,Fo(W),(e,t)=>t.map(t=>xi(t.evaluate(e))).join(``)],split:[Tr(U),[U,U],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[U,[Tr(U),U],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[U,[vr],(e,[t])=>t.evaluate(e).resolvedLocale()]});function Io(e){return Array.isArray(e)?`(${e.map(Er).join(`, `)})`:`(${Er(e.type)}...)`}function Lo(e){if(e instanceof Ui)return Lo(e.boundExpression);if(e instanceof Ao&&e.name===`error`||e instanceof _a||e instanceof Ja||e instanceof Co||e instanceof To)return false;let t=e instanceof Vi||e instanceof zi,n=true;return e.eachChild(e=>{n&&=t?Lo(e):e instanceof Si;}),n?Ro(e)&&Bo(e,[`zoom`,`heatmap-density`,`elevation`,`line-progress`,`accumulated`,`is-supported-script`]):false}function Ro(e){if(e instanceof Ao&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof Ja||e instanceof Co)return false;let t=true;return e.eachChild(e=>{t&&!Ro(e)&&(t=false);}),t}function zo(e){if(e instanceof Ao&&e.name===`feature-state`)return false;let t=true;return e.eachChild(e=>{t&&!zo(e)&&(t=false);}),t}function Bo(e,t){if(e instanceof Ao&&t.indexOf(e.name)>=0)return false;let n=true;return e.eachChild(e=>{n&&!Bo(e,t)&&(n=false);}),n}function Vo(e){return e[`property-type`]===`data-driven`||e[`property-type`]===`cross-faded-data-driven`}function Uo(e){return !!e.expression&&e.expression.interpolated}function Go(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Ko(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function qo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&bi(e)===gr}function Jo(e){return e}function Yo(e){switch(e.type){case `color`:return G.parse;case `padding`:return li.parse;case `numberArray`:return ui.parse;case `colorArray`:return di.parse;default:return null}}function Xo(e){switch(e){case `exponential`:return ts;case `interval`:return es;case `categorical`:return $o;case `identity`:return ns;default:throw Error(`Unknown function type "${e}"`)}}function Zo(e,t){let n=e.stops&&typeof e.stops[0][0]==`object`,r=n||e.property!==void 0,i=n||!r,a=e.type||(Uo(t)?`exponential`:`interval`),o=Yo(t);if(o&&(e=Go({},e),e.stops&&(e.stops=e.stops.map(e=>[e[0],o(e[1])])),e.default?e.default=o(e.default):e.default=o(t.default)),e.colorSpace&&!ai(e.colorSpace))throw Error(`Unknown color space: "${e.colorSpace}"`);let s=Xo(a),c,l;if(a===`categorical`){c=Object.create(null);for(let t of e.stops)c[t[0]]=t[1];l=typeof e.stops[0][0];}if(n){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]]);}let i=[];for(let e of r)i.push([n[e].zoom,Zo(n[e],t)]);let a={name:`linear`};return {kind:`composite`,interpolationType:a,interpolationFactor:Oi.interpolationFactor.bind(void 0,a),zoomStops:i.map(e=>e[0]),evaluate({zoom:n},r){return ts({stops:i,base:e.base},t,n).evaluate(n,r)}}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return {kind:`camera`,interpolationType:n,interpolationFactor:Oi.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map(e=>e[0]),evaluate:({zoom:n})=>s(e,t,n,c,l)}}return {kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?Qo(e.default,t.default):s(e,t,i,c,l)}}}function Qo(e,t,n){if(e!==void 0)return e;if(t!==void 0)return t;if(n!==void 0)return n}function $o(e,t,n,r,i){return Qo(typeof n===i?r[n]:void 0,e.default,t.default)}function es(e,t,n){if(Ko(n)!==`number`)return Qo(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Ti(e.stops.map(e=>e[0]),n,``);return e.stops[i][1]}function ts(e,t,n){let r=e.base===void 0?1:e.base;if(Ko(n)!==`number`)return Qo(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Ti(e.stops.map(e=>e[0]),n,``),o=rs(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=Ai[t.type]||Jo;return typeof s.evaluate==`function`?{evaluate(...t){let n=s.evaluate.apply(void 0,t),r=c.evaluate.apply(void 0,t);if(n!==void 0&&r!==void 0)return l(n,r,o,e.colorSpace)}}:l(s,c,o,e.colorSpace)}function ns(e,t,n){switch(t.type){case `color`:n=G.parse(n);break;case `formatted`:n=ci.fromString(n.toString());break;case `resolvedImage`:n=hi.fromString(n.toString());break;case `padding`:n=li.parse(n);break;case `colorArray`:n=di.parse(n);break;case `numberArray`:n=ui.parse(n);break;default:Ko(n)!==t.type&&(t.type!==`enum`||!t.values[n])&&(n=void 0);}return Qo(n,e.default,t.default)}function rs(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}function is(e){return {result:`success`,value:e}}function as(e){return {result:`error`,value:e}}var os=class{constructor(e,t,n,r){this.expression=e,this._warningHistory={},this._evaluator=new wi,this._defaultValue=n?bs(n):null,this._enumValues=n&&n.type===`enum`?n.values:null,this._globalState=r,this._rootKey=t;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a){this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!==e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(`, `)}, but found ${JSON.stringify(e)} instead.`,``);return e}catch(e){let t=e instanceof fi?e.path:``,n=`${t}|${e.message}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,t,e.message,this._defaultValue))),this._defaultValue}}};function ss(e,t,n,r){return `${e}${t}: ${n}${r==null?``:` Falling back to ${String(r)}.`}`}function cs(e){if(!e)throw Error(`rootKey must identify the location of the expression in the style JSON, e.g. "layers[3].paint.line-width".`)}function us(e,t,n,r){cs(t);let i=new ko(Eo,Lo,[],n?ys(n):void 0),a=i.parse(e,void 0,void 0,void 0,n&&n.type===`string`?{typeAnnotation:`coerce`}:void 0);return a?is(new os(a,t,n,r)):as(i.errors)}var ds=class{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this._globalState=n;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}},fs=class{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this.interpolationType=r,this._globalState=i;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?Oi.interpolationFactor(this.interpolationType,e,t,n):0}};var hs=class e{constructor(e,t,n){this.isStateDependent=false,this.globalStateRefs=/* @__PURE__ */ new Set,this._globalState=null,cs(t),this._parameters=e,this._specification=n,this._rootKey=t,this._defaultValue=bs(n),this._warningHistory={};let r=Zo(this._parameters,this._specification);this.kind=r.kind,this.interpolationFactor=r.interpolationFactor,this.zoomStops=r.zoomStops,this.interpolationType=r.interpolationType,this._innerEvaluate=r.evaluate;}evaluate(e,t){try{return this._innerEvaluate(e,t)}catch(e){let t=e instanceof Error?e.message:String(e),n=`|${t}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,``,t,this._defaultValue))),this._defaultValue}}static deserialize(t){return new e(t._parameters,t._rootKey,t._specification)}static serialize(e){return {_parameters:e._parameters,_specification:e._specification,_rootKey:e._rootKey}}};function vs(e,t=/* @__PURE__ */ new Set){return e instanceof To&&t.add(e.key),e.eachChild(e=>{vs(e,t);}),t}function ys(e){let t={color:mr,string:U,number:H,enum:U,boolean:pr,formatted:yr,padding:br,numberArray:Sr,colorArray:xr,projectionDefinition:hr,resolvedImage:Cr,variableAnchorOffsetCollection:wr};return e.type===`array`?Tr(t[e.value]||W,e.length):t[e.type]}function bs(e){if(e.type===`color`&&qo(e.default))return new G(0,0,0,0);switch(e.type){case `color`:return G.parse(e.default)||null;case `padding`:return li.parse(e.default)||null;case `numberArray`:return ui.parse(e.default)||null;case `colorArray`:return di.parse(e.default)||null;case `variableAnchorOffsetCollection`:return mi.parse(e.default)||null;case `projectionDefinition`:return gi.parse(e.default)||null;default:return e.default===void 0?null:e.default}}function xs(e,t){let{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s}=e??{};return {zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s,globalState:t}}function Ss(e){let t=false;for(let n of e){let e=Cs(n);if(e===`expression`)return `expression`;e===`legacy`&&(t=true);}return t?`legacy`:`neutral`}function Cs(e){if(typeof e==`boolean`)return `neutral`;if(!Array.isArray(e)||e.length===0)return `legacy`;switch(e[0]){case `has`:return e.length<2||e[1]===`$id`||e[1]===`$type`?`legacy`:e.length===2?`neutral`:`expression`;case `in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]))?`expression`:`legacy`;case `!in`:case `!has`:return `legacy`;case `==`:case `!=`:case `>`:case `>=`:case `<`:case `<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2])?`expression`:`legacy`;case `none`:return `legacy`;case `any`:case `all`:return Ss(e.slice(1));default:return `expression`}}function ws(e){return Cs(e)!==`legacy`}function Ts(e){return e===`$type`?[`geometry-type`]:e===`$id`?[`id`]:[`get`,e]}function Es(e){switch(e[0]){case `==`:case `!=`:case `<`:case `<=`:case `>`:case `>=`:return e.length!==3||typeof e[1]!=`string`?null:[e[0],Ts(e[1]),e[2]];case `in`:case `!in`:{if(e.length<2||typeof e[1]!=`string`)return null;let t=[`in`,Ts(e[1]),[`literal`,e.slice(2)]];return e[0]===`!in`?[`!`,t]:t}case `has`:case `!has`:{if(e.length!==2||typeof e[1]!=`string`||e[1]===`$type`||e[1]===`$id`)return null;let t=[`has`,e[1]];return e[0]===`!has`?[`!`,t]:t}default:return null}}function Ds(e){if((e[0]===`<`||e[0]===`<=`||e[0]===`>`||e[0]===`>=`)&&e[1]===`$type`)return `"$type" cannot be use with operator "${e[0]}"`;let t=Es(e);return t?`Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(e)} with ${JSON.stringify(t)}.`:`Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(e)} to expression syntax.`}function Os(e,t,n){let r=n[e];return Array.isArray(r)?ws(r)?ks(r,t.concat(e)):{path:t.concat(e),legacyFilter:r}:null}function ks(e,t=[]){if(!Array.isArray(e)||e.length<1)return null;switch(e[0]){case `all`:case `any`:case `none`:for(let n=1;n<e.length;n++){let r=Os(n,t,e);if(r)return r}break;case `!`:{let n=Os(1,t,e);if(n)return n;break}case `case`:for(let n=1;n<e.length-1;n+=2){let r=Os(n,t,e);if(r)return r}}return null}function As(e,t){let n=ks(e);if(!n||typeof console>`u`)return;let r=n.path.map(e=>`[${e}]`).join(``);console.warn(`${t}${r}: ${Ds(n.legacyFilter)}`);}const js={type:`boolean`,default:false,transition:false,"property-type":`data-driven`,expression:{interpolated:false,parameters:[`zoom`,`feature`]}};function Ms(e,t,n){if(e==null)return {filter:()=>true,needGeometry:false,getGlobalStateRefs:()=>/* @__PURE__ */ new Set};ws(e)?As(e,t):e=Fs(e);let r=us(e,t,js,n);if(r.result===`error`)throw Error(r.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return {filter:(e,t,n)=>r.value.evaluate(e,t,{},n),needGeometry:Ps(e),getGlobalStateRefs:()=>vs(r.value.expression)}}function Ns(e,t){return e<t?-1:+(e>t)}function Ps(e){if(!Array.isArray(e))return false;if(e[0]===`within`||e[0]===`distance`)return true;for(let t=1;t<e.length;t++)if(Ps(e[t]))return true;return false}function Fs(e){if(!e)return true;let t=e[0];return e.length<=1?t!==`any`:t===`==`?Is(e[1],e[2],`==`):t===`!=`?Bs(Is(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?Is(e[1],e[2],t):t===`any`?Ls(e.slice(1)):t===`all`?[`all`].concat(e.slice(1).map(Fs)):t===`none`?[`all`].concat(e.slice(1).map(Fs).map(Bs)):t===`in`?Rs(e[1],e.slice(2)):t===`!in`?Bs(Rs(e[1],e.slice(2))):t===`has`?zs(e[1]):t!==`!has`||Bs(zs(e[1]))}function Is(e,t,n){switch(e){case `$type`:return [`filter-type-${n}`,t];case `$id`:return [`filter-id-${n}`,t];default:return [`filter-${n}`,e,t]}}function Ls(e){return [`any`].concat(e.map(Fs))}function Rs(e,t){if(t.length===0)return false;switch(e){case `$type`:return [`filter-type-in`,[`literal`,t]];case `$id`:return [`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?[`filter-in-large`,e,[`literal`,t.sort(Ns)]]:[`filter-in-small`,e,[`literal`,t]]}}function zs(e){switch(e){case `$type`:return true;case `$id`:return [`filter-has-id`];default:return [`filter-has`,e]}}function Bs(e){return [`!`,e]}function Vs(){let e={},t=B.$version;for(let n in B.$root){let r=B.$root[n];if(r.required){let i=null;i=n===`version`?t:r.type===`array`?[]:{},i!=null&&(e[n]=i);}}return e}const Hc={};function K(e,t,n={}){if(Hc[e])throw Error(`${e} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:e,writeable:false}),Hc[e]={klass:t,omit:n.omit||[],shallow:n.shallow||[]};}K(`Object`,Object),K(`Set`,Set),K(`TransferableGridIndex`,Jn),K(`Color`,G),K(`Error`,Error),K(`AJAXError`,Pn),K(`ResolvedImage`,hi),K(`StylePropertyFunction`,hs),K(`StyleExpression`,os,{omit:[`_evaluator`]}),K(`ZoomDependentExpression`,fs),K(`ZoomConstantExpression`,ds),K(`CompoundExpression`,Ao,{omit:[`_evaluate`]});for(let e in Eo)Eo[e]._classRegistryKey||K(`Expression_${e}`,Eo[e]);const cl=Math.floor(_n.hardwareConcurrency/2);Wt(globalThis)?Math.max(Math.min(cl,3),1):1;let gl;((function(e){let t,n,r,i;e.resetRequestQueue=()=>{t=[],n=0,r=0,i={};},e.addThrottleControl=e=>{let t=r++;return i[t]=e,t},e.removeThrottleControl=e=>{delete i[e],l();};let a=()=>{for(let e of Object.keys(i))if(i[e]())return true;return false};async function o(e,t,n,r,i=true,a){let o=await e.transformRequest(t,n);return pn(r.signal),gl.getImage(o,r,i,a)}e.transformAndGetImage=o,e.getImage=(e,n,r=true,i)=>new Promise((a,o)=>{e.headers||={},e.headers.accept=`image/webp,*/*`,I(e,{type:`image`});let s={abortController:n,requestParameters:e,supportImageRefresh:r,imageBitmapOptions:i,state:`queued`,onError:e=>{o(e);},onSuccess:e=>{a(e);}};t.push(s),l();});let s=(e,t)=>typeof createImageBitmap==`function`?Kt(e,t):qt(e),c=async e=>{e.state=`running`;let{requestParameters:t,supportImageRefresh:r,imageBitmapOptions:i,onError:a,onSuccess:o,abortController:c}=e,d=r===false&&!i&&!Vt(self)&&!An(t.url)&&(!t.headers||Object.keys(t.headers).reduce((e,t)=>e&&t===`accept`,true));n++;let f=d?u(t,c):zn(t,c);try{let t=await f;delete e.abortController,e.state=`completed`,t.data instanceof HTMLImageElement||Gt(t.data)?o(t):!t.data||t.data.byteLength===0?o({data:null,cacheControl:t.cacheControl,expires:t.expires}):o({data:await s(t.data,i),cacheControl:t.cacheControl,expires:t.expires});}catch(t){delete e.abortController,a(rt(t));}finally{n--,l();}},l=()=>{let e=a()?kn.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:kn.MAX_PARALLEL_IMAGE_REQUESTS;for(let r=n;r<e&&t.length>0;r++){let e=t.shift();e.abortController.signal.aborted?r--:c(e);}},u=(e,t)=>new Promise((n,r)=>{let i=new Image,a=e.url,o=e.credentials;o&&o===`include`?i.crossOrigin=`use-credentials`:(o&&o===`same-origin`||!Hn(a))&&(i.crossOrigin=`anonymous`),t.signal.addEventListener(`abort`,()=>{i.src=``,r(new dn(t.signal.reason));}),i.fetchPriority=`high`,i.onload=()=>{i.onerror=i.onload=null,n({data:i});},i.onerror=()=>{i.onerror=i.onload=null,!t.signal.aborted&&r(/* @__PURE__ */ 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.`));},i.src=a;});}))(gl||={}),gl.resetRequestQueue();new Set(Object.keys(B).filter(e=>e.startsWith(`source_`)).map(e=>e.slice(7).replaceAll(`_`,`-`)));var Il=class{constructor(){this.first=true;}update(e,t){let n=Math.floor(e);return this.first?(this.first=false,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=n,true):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=t):this.lastFloorZoom<n&&(this.lastIntegerZoom=n,this.lastIntegerZoomTime=t),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=n,true))}},Ll=class{constructor(e,t){this.zoom=e,t?(this.now=t.now||0,this.fadeDuration=t.fadeDuration||0,this.zoomHistory=t.zoomHistory||new Il,this.transition=t.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Il,this.transition={});}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let e=this.zoom,t=e-Math.floor(e),n=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:t+(1-t)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*t}}},Wl=class{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n;}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}},Gl=class{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues);}get(e){return this._values[e]}};function Kl(e){if(Array.isArray(e))return e.length;let t=e?.values;return Array.isArray(t)?t.length:void 0}function ql(e,t){let n=Kl(e),r=Kl(t);return n!==void 0&&r!==void 0&&n!==r}var J=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t){if(e.isDataDriven())throw Error(`Value should not be data driven`);return e.expression.evaluate(t)}interpolate(e,t,n){if(ql(e,t))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];return i?i(e,t,n):e}},Y=class{constructor(e,t,n){this.specification=e,this.name=t,this.overrides=n;}possiblyEvaluate(e,t,n,r){return e.expression.kind===`constant`||e.expression.kind===`camera`?new Wl(this,{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)},t):new Wl(this,e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},e.parameters);if(ql(e.value.value,t.value.value))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];if(i){let r=i(e.value.value,t.value.value,n);return new Wl(this,{kind:`constant`,value:r},e.parameters)}return e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}},Jl=class extends Y{possiblyEvaluate(e,t,n,r){if(e.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},t);if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r),a=e.property.specification.type===`resolvedImage`&&typeof i!=`string`?i.name:i,o=this._calculate(a,a,a,t);return new Wl(this,{kind:`constant`,value:o},t)}if(e.expression.kind===`camera`){let n=this._calculate(e.expression.evaluate({zoom:t.zoom-1}),e.expression.evaluate({zoom:t.zoom}),e.expression.evaluate({zoom:t.zoom+1}),t);return new Wl(this,{kind:`constant`,value:n},t)}return new Wl(this,e.expression,t)}evaluate(e,t,n,r,i,a){if(e.kind===`source`){let o=e.evaluate(t,n,r,i,a);return this._calculate(o,o,o,t)}return e.kind===`composite`?this._calculate(e.evaluate({zoom:Math.floor(t.zoom)-1},n,r),e.evaluate({zoom:Math.floor(t.zoom)},n,r),e.evaluate({zoom:Math.floor(t.zoom)+1},n,r),t):e.value}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Yl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){if(e.value!==void 0){if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r);return this._calculate(i,i,i,t)}return this._calculate(e.expression.evaluate(new Ll(Math.floor(t.zoom-1),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom+1),t)),t)}}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Xl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){return !!e.expression.evaluate(t,null,{},n,r)}interpolate(){return false}};K(`DataDrivenProperty`,Y),K(`DataConstantProperty`,J),K(`CrossFadedDataDrivenProperty`,Jl),K(`CrossFadedProperty`,Yl),K(`ColorRampProperty`,Xl);const ou={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};var su=class{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}},cu=class{constructor(){this.isTransferred=false,this.capacity=-1,this.resize(0);}static serialize(e,t){return e._trim(),t&&(e.isTransferred=true,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(e){this.reserve(e),this.length=e;}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(this.capacity*5),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t);}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}freeBufferAfterUpload(){this.arrayBuffer=/* @__PURE__ */ new ArrayBuffer(0),this._refreshViews();}};function lu(e,t=1){let n=0,r=0;return {members:e.map(e=>{let i=uu(e.type),a=n=du(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}}),size:du(n,Math.max(r,t)),alignment:t}}function uu(e){return ou[e].BYTES_PER_ELEMENT}function du(e,t){return Math.ceil(e/t)*t}var fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.int16[r+0]=t,this.int16[r+1]=n,e}};fu.prototype.bytesPerElement=4,K(`StructArrayLayout2i4`,fu);var pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}};pu.prototype.bytesPerElement=6,K(`StructArrayLayout3i6`,pu);var mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}};mu.prototype.bytesPerElement=8,K(`StructArrayLayout4i8`,mu);var hu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};hu.prototype.bytesPerElement=12,K(`StructArrayLayout2i4i12`,hu);var gu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.int8=new Int8Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*5,u=e*10;return this.int16[l+0]=t,this.int16[l+1]=n,this.uint8[u+4]=r,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,this.int8[u+8]=s,this.int8[u+9]=c,e}};gu.prototype.bytesPerElement=10,K(`StructArrayLayout2i4ub2b10`,gu);var _u=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.float32[r+0]=t,this.float32[r+1]=n,e}};_u.prototype.bytesPerElement=8,K(`StructArrayLayout2f8`,_u);var vu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l){let u=this.length;return this.resize(u+1),this.emplace(u,e,t,n,r,i,a,o,s,c,l)}emplace(e,t,n,r,i,a,o,s,c,l,u){let d=e*10;return this.uint16[d+0]=t,this.uint16[d+1]=n,this.uint16[d+2]=r,this.uint16[d+3]=i,this.uint16[d+4]=a,this.uint16[d+5]=o,this.uint16[d+6]=s,this.uint16[d+7]=c,this.uint16[d+8]=l,this.uint16[d+9]=u,e}};vu.prototype.bytesPerElement=20,K(`StructArrayLayout10ui20`,vu);var yu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*8;return this.uint16[l+0]=t,this.uint16[l+1]=n,this.uint16[l+2]=r,this.uint16[l+3]=i,this.uint16[l+4]=a,this.uint16[l+5]=o,this.uint16[l+6]=s,this.uint16[l+7]=c,e}};yu.prototype.bytesPerElement=16,K(`StructArrayLayout8ui16`,yu);var bu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=this.length;return this.resize(p+1),this.emplace(p,e,t,n,r,i,a,o,s,c,l,u,d,f)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=e*14,h=e*7;return this.int16[m+0]=t,this.int16[m+1]=n,this.int16[m+2]=r,this.int16[m+3]=i,this.uint16[m+4]=a,this.uint16[m+5]=o,this.uint16[m+6]=s,this.uint16[m+7]=c,this.int16[m+8]=l,this.int16[m+9]=u,this.int16[m+10]=d,this.int16[m+11]=f,this.float32[h+6]=p,e}};bu.prototype.bytesPerElement=28,K(`StructArrayLayout4i4ui4i1f28`,bu);var xu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}};xu.prototype.bytesPerElement=12,K(`StructArrayLayout3f12`,xu);var Su=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint32[n+0]=t,e}};Su.prototype.bytesPerElement=4,K(`StructArrayLayout1ul4`,Su);var Cu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c){let l=this.length;return this.resize(l+1),this.emplace(l,e,t,n,r,i,a,o,s,c)}emplace(e,t,n,r,i,a,o,s,c,l){let u=e*10,d=e*5;return this.int16[u+0]=t,this.int16[u+1]=n,this.int16[u+2]=r,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[d+3]=s,this.uint16[u+8]=c,this.uint16[u+9]=l,e}};Cu.prototype.bytesPerElement=20,K(`StructArrayLayout6i1ul2ui20`,Cu);var wu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};wu.prototype.bytesPerElement=12,K(`StructArrayLayout2i2i2i12`,wu);var Tu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=e*4,s=e*8;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}};Tu.prototype.bytesPerElement=16,K(`StructArrayLayout2f1f2i16`,Tu);var Eu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*16,c=e*4,l=e*8;return this.uint8[s+0]=t,this.uint8[s+1]=n,this.float32[c+1]=r,this.float32[c+2]=i,this.int16[l+6]=a,this.int16[l+7]=o,e}};Eu.prototype.bytesPerElement=16,K(`StructArrayLayout2ub2f2i16`,Eu);var Du=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}};Du.prototype.bytesPerElement=6,K(`StructArrayLayout3ui6`,Du);var Ou=class extends cu{_refreshViews(){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);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=this.length;return this.resize(v+1),this.emplace(v,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e*26,b=e*13,x=e*52;return this.int16[y+0]=t,this.int16[y+1]=n,this.uint16[y+2]=r,this.uint16[y+3]=i,this.uint32[b+2]=a,this.uint32[b+3]=o,this.uint32[b+4]=s,this.uint16[y+10]=c,this.uint16[y+11]=l,this.uint16[y+12]=u,this.float32[b+7]=d,this.float32[b+8]=f,this.uint8[x+36]=p,this.uint8[x+37]=m,this.uint8[x+38]=h,this.uint32[b+10]=g,this.int16[y+22]=_,this.float32[b+12]=v,e}};Ou.prototype.bytesPerElement=52,K(`StructArrayLayout2i2ui3ul3ui2f3ub1ul1i1f52`,Ou);var ku=class extends cu{_refreshViews(){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);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O){let k=this.length;return this.resize(k+1),this.emplace(k,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k){let A=e*34,j=e*17;return this.int16[A+0]=t,this.int16[A+1]=n,this.int16[A+2]=r,this.int16[A+3]=i,this.int16[A+4]=a,this.int16[A+5]=o,this.int16[A+6]=s,this.int16[A+7]=c,this.uint16[A+8]=l,this.uint16[A+9]=u,this.uint16[A+10]=d,this.uint16[A+11]=f,this.uint16[A+12]=p,this.uint16[A+13]=m,this.uint16[A+14]=h,this.uint16[A+15]=g,this.uint16[A+16]=_,this.uint16[A+17]=v,this.uint16[A+18]=y,this.uint16[A+19]=b,this.uint16[A+20]=x,this.uint16[A+21]=S,this.uint16[A+22]=C,this.uint32[j+12]=w,this.float32[j+13]=T,this.float32[j+14]=E,this.uint16[A+30]=D,this.uint16[A+31]=O,this.float32[j+16]=k,e}};ku.prototype.bytesPerElement=68,K(`StructArrayLayout8i15ui1ul2f2ui1f68`,ku);var Au=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.float32[n+0]=t,e}};Au.prototype.bytesPerElement=4,K(`StructArrayLayout1f4`,Au);var ju=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*6,a=e*3;return this.uint16[i+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,e}};ju.prototype.bytesPerElement=12,K(`StructArrayLayout1ui2f12`,ju);var Mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*2,a=e*4;return this.uint32[i+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,e}};Mu.prototype.bytesPerElement=8,K(`StructArrayLayout1ul2ui8`,Mu);var Nu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}};Nu.prototype.bytesPerElement=4,K(`StructArrayLayout2ui4`,Nu);var Pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint16[n+0]=t,e}};Pu.prototype.bytesPerElement=2,K(`StructArrayLayout1ui2`,Pu);var Fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}};Fu.prototype.bytesPerElement=16,K(`StructArrayLayout4f16`,Fu);var Iu=class extends su{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new u(this.anchorPointX,this.anchorPointY)}};Iu.prototype.size=20;var Lu=class extends Cu{get(e){return new Iu(this,e)}};K(`CollisionBoxArray`,Lu);var Ru=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}get heightOffset(){return this._structArray.float32[this._pos4+12]}};Ru.prototype.size=52;var zu=class extends Ou{get(e){return new Ru(this,e)}};K(`PlacedSymbolArray`,zu);var Bu=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}get heightOffset(){return this._structArray.float32[this._pos4+16]}};Bu.prototype.size=68;var Vu=class extends ku{get(e){return new Bu(this,e)}};K(`SymbolInstanceArray`,Vu);var Hu=class extends Au{getoffsetX(e){return this.float32[e*1+0]}};K(`GlyphOffsetArray`,Hu);var Uu=class extends pu{getx(e){return this.int16[e*3+0]}gety(e){return this.int16[e*3+1]}gettileUnitDistanceFromAnchor(e){return this.int16[e*3+2]}};K(`SymbolLineVertexArray`,Uu);var Wu=class extends su{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}};Wu.prototype.size=12;var Gu=class extends ju{get(e){return new Wu(this,e)}};K(`TextAnchorOffsetArray`,Gu);var Ku=class extends su{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}};Ku.prototype.size=8;var qu=class extends Mu{get(e){return new Ku(this,e)}};K(`FeatureIndexArray`,qu);var Ju=class extends fu{},Zu=class extends fu{},Qu=class extends fu{},$u=class extends hu{},ed=class extends gu{},td=class extends _u{},nd=class extends vu{},rd=class extends yu{},id=class extends bu{},ad=class extends xu{},od=class extends Su{},sd=class extends wu{},ld=class extends Eu{},dd=class extends Du{},fd=class extends Nu{};const md=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hd=md.members;var gd=class e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=false,this.segments=e;}prepareSegment(t,n,r,i){let a=this.segments[this.segments.length-1];return t>e.MAX_VERTEX_ARRAY_LENGTH&&L$1(`Max vertices per segment is ${e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!a||a.vertexLength+t>e.MAX_VERTEX_ARRAY_LENGTH||a.sortKey!==i?this.createNewSegment(n,r,i):a}createNewSegment(e,t,n){let r={vertexOffset:e.length,primitiveOffset:t.length,vertexLength:0,primitiveLength:0,vaos:{}};return n!==void 0&&(r.sortKey=n),this._forceNewSegmentOnNextPrepare=false,this.segments.push(r),r}getOrCreateLatestSegment(e,t,n){return this.prepareSegment(0,e,t,n)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=true;}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy();}static simpleSegment(t,n,r,i){return new e([{vertexOffset:t,primitiveOffset:n,vertexLength:r,primitiveLength:i,vaos:{},sortKey:0}])}};gd.MAX_VERTEX_ARRAY_LENGTH=2**16-1,K(`SegmentVector`,gd);function _d(e,t){return e=F(Math.floor(e),0,255),t=F(Math.floor(t),0,255),256*e+t}const vd=lu([{name:`a_pattern_from`,components:4,type:`Uint16`},{name:`a_pattern_to`,components:4,type:`Uint16`},{name:`a_pixel_ratio_from`,components:1,type:`Uint16`},{name:`a_pixel_ratio_to`,components:1,type:`Uint16`}]),yd=lu([{name:`a_dasharray_from`,components:4,type:`Uint16`},{name:`a_dasharray_to`,components:4,type:`Uint16`}]);var bd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length&3,r=e.length-n,i=t,a,o=3432918353,s=461845907,c,l=0;l<r;)c=e.charCodeAt(l)&255|(e.charCodeAt(++l)&255)<<8|(e.charCodeAt(++l)&255)<<16|(e.charCodeAt(++l)&255)<<24,++l,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c,i=i<<13|i>>>19,a=(i&65535)*5+(((i>>>16)*5&65535)<<16)|0,i=(a&65535)+27492+(((a>>>16)+58964&65535)<<16);switch(c=0,n){case 3:c^=(e.charCodeAt(l+2)&255)<<16;case 2:c^=(e.charCodeAt(l+1)&255)<<8;case 1:c^=e.charCodeAt(l)&255,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c;}return i^=e.length,i^=i>>>16,i=(i&65535)*2246822507+(((i>>>16)*2246822507&65535)<<16)|0,i^=i>>>13,i=(i&65535)*3266489909+(((i>>>16)*3266489909&65535)<<16)|0,i^=i>>>16,i>>>0}t!==void 0&&(t.exports=n);})),xd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length,r=t^n,i=0,a;n>=4;)a=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),a^=a>>>24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)^a,n-=4,++i;switch(n){case 3:r^=(e.charCodeAt(i+2)&255)<<16;case 2:r^=(e.charCodeAt(i+1)&255)<<8;case 1:r^=e.charCodeAt(i)&255,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16);}return r^=r>>>13,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>15,r>>>0}t.exports=n;})),Sd=/* @__PURE__ */ c((/* @__PURE__ */ o(((e,t)=>{var n=bd(),r=xd();t.exports=n,t.exports.murmur3=n,t.exports.murmur2=r;})))()),Cd=class e{constructor(){this.ids=[],this.positions=[],this.indexed=false;}add(e,t,n,r){this.ids.push(wd(e)),this.positions.push(t,n,r);}getPositions(e){if(!this.indexed)throw Error(`Trying to get index, but feature positions are not indexed`);let t=wd(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1;}let i=[];for(;this.ids[n]===t;){let e=this.positions[3*n],t=this.positions[3*n+1],r=this.positions[3*n+2];i.push({index:e,start:t,end:r}),n++;}return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return Td(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(t){let n=new e;return n.ids=t.ids,n.positions=t.positions,n.indexed=true,n}};function wd(e){let t=+e;return !isNaN(t)&&t<=2**53-1?t:(0, Sd.default)(String(e))}function Td(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;Ed(e,a,o),Ed(t,3*a,3*o),Ed(t,3*a+1,3*o+1),Ed(t,3*a+2,3*o+2);}o-n<r-o?(Td(e,t,n,o),n=o+1):(Td(e,t,o+1,r),r=o);}}function Ed(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}K(`FeaturePositionMap`,Cd);var Dd=class{constructor(e,t){this.gl=e.gl,this.location=t;}},Z=class extends Dd{constructor(e,t){super(e,t),this.current=0;}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e));}},Ad=class extends Dd{constructor(e,t){super(e,t),this.current=[0,0,0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2]||e[3]!==this.current[3])&&(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]));}},jd=class extends Dd{constructor(e,t){super(e,t),this.current=G.transparent;}set(e){(e.r!==this.current.r||e.g!==this.current.g||e.b!==this.current.b||e.a!==this.current.a)&&(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a));}};function Id(e){return [_d(255*e.r,255*e.g),_d(255*e.b,255*e.a)]}var Ld=class{constructor(e,t,n){this.value=e,this.uniformNames=t.map(e=>`u_${e}`),this.type=n;}setUniform(e,t,n){e.set(n.constantOr(this.value));}getBinding(e,t,n){return this.type===`color`?new jd(e,t):new Z(e,t)}},Rd=class{constructor(e,t){this.uniformNames=t.map(e=>`u_${e}`),this.patternFrom=null,this.patternTo=null,this.dashFrom=null,this.dashTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(e,t){this.pixelRatioFrom=t.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=t.tlbr,this.patternTo=e.tlbr;}setConstantDashPositions(e,t){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,t.y,t.height,t.width];}setUniform(e,t,n,r){let i=null;r===`u_pattern_to`?i=this.patternTo:r===`u_pattern_from`?i=this.patternFrom:r===`u_dasharray_to`?i=this.dashTo:r===`u_dasharray_from`?i=this.dashFrom:r===`u_pixel_ratio_to`?i=this.pixelRatioTo:r===`u_pixel_ratio_from`&&(i=this.pixelRatioFrom),i!==null&&e.set(i);}getBinding(e,t,n){return n.startsWith(`u_pattern`)||n.startsWith(`u_dasharray_`)?new Ad(e,t):new Z(e,t)}},zd=class{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0})),this.paintVertexArray=new r;}populatePaintArray(e,t,n){let r=this.paintVertexArray.length,i=this.expression.evaluate(new Ll(0,n),t,{},n.canonical,[],n.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(r,e,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(0,i),n,r);this._setPaintValue(e,t,a);}_setPaintValue(e,t,n){if(this.type===`color`){let r=Id(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1]);}else {for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}},Bd=class{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map(e=>`u_${e}_t`),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0})),this.paintVertexArray=new a;}populatePaintArray(e,t,n){let r=this.expression.evaluate(new Ll(this.zoom,n),t,{},n.canonical,[],n.formattedSection),i=this.expression.evaluate(new Ll(this.zoom+1,n),t,{},n.canonical,[],n.formattedSection),a=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(a,e,r,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(this.zoom,i),n,r),o=this.expression.evaluate(new Ll(this.zoom+1,i),n,r);this._setPaintValue(e,t,a,o);}_setPaintValue(e,t,n,r){if(this.type===`color`){let i=Id(n),a=Id(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1]);}else {for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}setUniform(e,t){let n=this.useIntegerZoom?Math.floor(t.zoom):t.zoom,r=F(this.expression.interpolationFactor(n,this.zoom,this.zoom+1),0,1);e.set(r);}getBinding(e,t,n){return new Z(e,t)}},Vd=class{constructor(e,t,n,r,i,a){this.expression=e,this.type=t,this.useIntegerZoom=n,this.zoom=r,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i;}populatePaintArray(e,t,n){let r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(r,e,this.getPositionIds(t),n);}updatePaintArray(e,t,n,r,i){this._setPaintValues(e,t,this.getPositionIds(n),i);}_setPaintValues(e,t,n,r){let i=this.getPositions(r);if(!i||!n)return;let a=i[n.min],o=i[n.mid],s=i[n.max];if(a&&o&&s)for(let n=e;n<t;n++)this.emplace(this.zoomInPaintVertexArray,n,a,o),this.emplace(this.zoomOutPaintVertexArray,n,s,o);}upload(e){if(this.zoomInPaintVertexArray?.arrayBuffer.byteLength&&this.zoomOutPaintVertexArray?.arrayBuffer.byteLength){let t=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,t,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,t,this.expression.isStateDependent);}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy();}},Hd=class extends Vd{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns?.[this.layerId]}getVertexAttributes(){return vd.members}emplace(e,t,n,r){e.emplace(t,n.tlbr[0],n.tlbr[1],n.tlbr[2],n.tlbr[3],r.tlbr[0],r.tlbr[1],r.tlbr[2],r.tlbr[3],n.pixelRatio,r.pixelRatio);}},Ud=class extends Vd{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes?.[this.layerId]}getVertexAttributes(){return yd.members}emplace(e,t,n,r){e.emplace(t,0,n.y,n.height,n.width,0,r.y,r.height,r.width);}},Wd=class{constructor(e,t,n){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof Wl)||!Vo(a.property.specification))continue;let o=Kd(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=a.property.specification[`property-type`],d=u===`cross-faded`||u===`cross-faded-data-driven`;if(s.kind===`constant`)this.binders[i]=d?new Rd(s.value,o):new Ld(s.value,o,c),r.push(`/u_${i}`);else if(s.kind===`source`||d){let n=Jd(i,c,`source`);this.binders[i]=d?i===`line-dasharray`?new Ud(s,c,l,t,n,e.id):new Hd(s,c,l,t,n,e.id):new zd(s,o,c,n),r.push(`/a_${i}`);}else {let e=Jd(i,c,`composite`);this.binders[i]=new Bd(s,o,c,l,t,e),r.push(`/z_${i}`);}}this.cacheKey=r.sort().join(``);}getMaxValue(e){let t=this.binders[e];return t instanceof zd||t instanceof Bd?t.maxValue:0}populatePaintArrays(e,t,n){for(let r in this.binders){let i=this.binders[r];(i instanceof zd||i instanceof Bd||i instanceof Vd)&&i.populatePaintArray(e,t,n);}}setConstantPatternPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantPatternPositions(e,t);}}setConstantDashPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantDashPositions(e,t);}}updatePaintArrays(e,t,n,r,i){let a=false;for(let o of e){let e=t.getPositions(o.id);for(let t of e){let e=n.feature(t.index);for(let n in this.binders){let s=this.binders[n];(s instanceof zd||s instanceof Bd||s instanceof Vd)&&s.expression.isStateDependent===true&&(s.expression=r.paint.get(n).value,s.updatePaintArray(t.start,t.end,e,o.state,i),a=true);}}}return a}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof Ld||n instanceof Rd)&&e.push(...n.uniformNames.map(e=>`#define HAS_UNIFORM_${e}`));}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof zd||n instanceof Bd)for(let t of n.paintVertexAttributes)e.push(t.name);else if(n instanceof Vd){let t=n.getVertexAttributes();for(let n of t)e.push(n.name);}}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof Ld||n instanceof Rd||n instanceof Bd)for(let t of n.uniformNames)e.push(t);}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,t){let n=[];for(let r in this.binders){let i=this.binders[r];if(i instanceof Ld||i instanceof Rd||i instanceof Bd){for(let a of i.uniformNames)if(t[a]){let o=i.getBinding(e,t[a],a);n.push({name:a,property:r,binding:o});}}}return n}setUniforms(e,t,n,r){for(let{name:e,property:i,binding:a}of t)this.binders[i].setUniform(a,r,n.get(i),e);}updatePaintBuffers(e){this._buffers=[];for(let t in this.binders){let n=this.binders[t];if(e&&n instanceof Vd){let t=e.fromScale===2?n.zoomInPaintVertexBuffer:n.zoomOutPaintVertexBuffer;t&&this._buffers.push(t);}else (n instanceof zd||n instanceof Bd)&&n.paintVertexBuffer&&this._buffers.push(n.paintVertexBuffer);}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof zd||n instanceof Bd||n instanceof Vd)&&n.upload(e);}this.updatePaintBuffers();}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof zd||t instanceof Bd||t instanceof Vd)&&t.destroy();}}},Gd=class{constructor(e,t,n=()=>true){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new Wd(r,t,n);this.needsUpload=false,this._featureMap=new Cd,this._bufferOffset=0;}populatePaintArrays(e,t,n,r){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=true;}updatePaintArrays(e,t,n,r){for(let i of n)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(e,this._featureMap,t,i,r)||this.needsUpload;}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=false;}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy();}};function Kd(e,t){return {"text-opacity":[`opacity`],"icon-opacity":[`opacity`],"text-color":[`fill_color`],"icon-color":[`fill_color`],"text-halo-color":[`halo_color`],"icon-halo-color":[`halo_color`],"text-halo-blur":[`halo_blur`],"icon-halo-blur":[`halo_blur`],"text-halo-width":[`halo_width`],"icon-halo-width":[`halo_width`],"line-gap-width":[`gapwidth`],"line-dasharray":[`dasharray_to`,`dasharray_from`],"line-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-extrusion-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`]}[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}function qd(e){return {"line-pattern":{source:nd,composite:nd},"fill-pattern":{source:nd,composite:nd},"fill-extrusion-pattern":{source:nd,composite:nd},"line-dasharray":{source:rd,composite:rd}}[e]}function Jd(e,t,n){let r={color:{source:_u,composite:Fu},number:{source:Au,composite:_u}};return qd(e)?.[n]||r[t][n]}K(`ConstantBinder`,Ld),K(`CrossFadedConstantBinder`,Rd),K(`SourceExpressionBinder`,zd),K(`CrossFadedPatternBinder`,Hd),K(`CrossFadedDasharrayBinder`,Ud),K(`CompositeExpressionBinder`,Bd),K(`ProgramConfiguration`,Wd,{omit:[`_buffers`]}),K(`ProgramConfigurationSet`,Gd);const Yd=2**14-1,Xd=-Yd-1;function Zd(e){let t=P/e.extent,n=e.loadGeometry();for(let e of n)for(let n of e){let e=Math.round(n.x*t),r=Math.round(n.y*t);n.x=F(e,Xd,Yd),n.y=F(r,Xd,Yd),(e<n.x||e>n.x+1||r<n.y||r>n.y+1)&&L$1(`Geometry exceeds allowed extent, reduce your vector tile buffer size`);}return n}function Qd(e,t){return {type:e.type,id:e.id,properties:e.properties,geometry:t?Zd(e):[]}}var $d=class e{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0;}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(t){let n=new e;return n.extend(t(new u(this.minX,this.minY))),n.extend(t(new u(this.maxX,this.minY))),n.extend(t(new u(this.minX,this.maxY))),n.extend(t(new u(this.maxX,this.maxY))),n}static fromPoints(t){let n=new e;for(let e of t)n.extend(e);return n}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return !this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return !this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}};$d.fromPoints([new u(0,0),new u(P,P)]);function tf(e,t){return e.x===t.x&&(e.x<0||e.x>8192)||e.y===t.y&&(e.y<0||e.y>8192)}function nf(e){return e.every(e=>e.x<0)||e.every(e=>e.x>8192)||e.every(e=>e.y<0)||e.every(e=>e.y>8192)}function rf(e){return e.x<0||e.x>=8192||e.y<0||e.y>=8192}const af=-32768;function of(e,t,n,r,i){e.emplaceBack(af+t*8+r,af+n*8+i);}var sf=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new Zu,this.indexArray=new dd,this.segments=new gd,this.programConfigurations=new Gd(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){let r=this.layers[0],i=[],a=null,o=false,s=r.type===`heatmap`;if(r.type===`circle`){let e=r;a=e.layout.get(`circle-sort-key`),o=!a.isConstant(),s||=e.paint.get(`circle-pitch-alignment`)===`map`;}let c=s?t.subdivisionGranularity.circle:1,l=new Ll(this.zoom),u=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:r,index:s,sourceLayerIndex:c}of e){let e=Qd(t,u);if(!this.layers[0]._featureFilter.filter(l,e,n))continue;let d=o?a.evaluate(e,{},n):void 0,f={id:r,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:u?e.geometry:Zd(t),patterns:{},sortKey:d};i.push(f);}o&&i.sort((e,t)=>e.sortKey-t.sortKey);for(let r of i){let{geometry:i,index:a,sourceLayerIndex:o}=r,s=e[a].feature;this.addFeature(r,i,a,n,c),t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures(e){}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hd),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(e,t,n,r,i=1){let a;switch(i){case 1:a=[0,7];break;case 3:a=[0,2,5,7];break;case 5:a=[0,1,3,4,6,7];break;case 7:a=[0,1,2,3,4,5,6,7];break;default:throw Error(`Invalid circle bucket granularity: ${i}; valid values are 1, 3, 5, 7.`)}let o=a.length;for(let n of t)for(let t of n){let n=t.x,r=t.y;if(rf(t))continue;let i=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,e.sortKey),s=i.vertexLength;for(let e=0;e<o;e++)for(let t=0;t<o;t++)of(this.layoutVertexArray,n,r,a[t],a[e]);for(let e=0;e<o-1;e++)for(let t=0;t<o-1;t++){let n=s+e*o+t,r=s+(e+1)*o+t;this.indexArray.emplaceBack(n,r+1,n+1),this.indexArray.emplaceBack(n,r,r+1);}i.vertexLength+=o*o,i.primitiveLength+=(o-1)*(o-1)*2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:{},canonical:r});}};K(`CircleBucket`,sf,{omit:[`layers`]});function gf(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return i<0?e.distSqr(t):i>1?e.distSqr(n):e.distSqr(n.sub(t)._mult(i)._add(t))}function vf(e,t){let n=false;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n);}return n}function yf(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return true;let a=[new u(t,n),new u(t,i),new u(r,i),new u(r,n)];if(e.length>2){for(let t of a)if(vf(e,t))return true}for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(bf(n,r,a))return true}return false}function bf(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return false;let a=Rt(e,t,n[0]);return a!==Rt(e,t,n[1])||a!==Rt(e,t,n[2])||a!==Rt(e,t,n[3])}var Bf=class extends sf{};K(`HeatmapBucket`,Bf,{omit:[`layers`]});function Wf(e,{width:t,height:n},r,i){if(!i)i=new Uint8Array(t*n*r);else if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size. expected: ${i.length} but got: ${t*n*r}`);return e.width=t,e.height=n,e.data=i,e}function Gf(e,{width:t,height:n},r){if(t===e.width&&n===e.height)return;let i=Wf({},{width:t,height:n},r);Kf(e,i,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,t),height:Math.min(e.height,n)},r),e.width=t,e.height=n,e.data=i.data;}function Kf(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;if(o===s)throw Error(`srcData equals dstData, so image is already copied`);for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e];}return t}var qf=class e{constructor(e,t){Wf(this,e,1,t);}resize(e){Gf(this,e,1);}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,1);}},Jf=class e{constructor(e,t){Wf(this,e,4,t);}resize(e){Gf(this,e,4);}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e;}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,4);}setPixel(e,t,n){let r=(e*this.width+t)*4;this.data[r+0]=Math.round(n.r*255/n.a),this.data[r+1]=Math.round(n.g*255/n.a),this.data[r+2]=Math.round(n.b*255/n.a),this.data[r+3]=Math.round(n.a*255);}};K(`AlphaImage`,qf),K(`RGBAImage`,Jf);var up=class e{static{this.byteViewCache=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i=1,a=1,o=1,s=0){if(this.uid=t,n.height!==n.width)throw RangeError(`DEM tiles must be square`);if(r&&![`mapbox`,`terrarium`,`custom`].includes(r)){L$1(`"${r}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);return}this.stride=n.height;let c=this.dim=n.height-4;switch(this.data=new Uint32Array(n.data.buffer),e.byteViewCache.set(this,new Uint8Array(this.data.buffer)),r){case `terrarium`:this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case `custom`:this.redFactor=i,this.greenFactor=a,this.blueFactor=o,this.baseShift=s;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4;}for(let e=-2;e<c+2;e++){let t=this._idx(0,Math.max(0,Math.min(c-1,e)));(e<0||e>=c)&&this.data.copyWithin(this._idx(0,e),t,t+c),this.data.fill(this.data[t],this._idx(-2,e),this._idx(0,e)),this.data.fill(this.data[t+c-1],this._idx(c,e),this._idx(c+1,e)+1);}let l=this._getByteView();this.min=2**53-1,this.max=-9007199254740991;for(let e=0;e<c;e++)for(let t=0;t<c;t++){let n=this._idx(e,t)*4,r=this._unpackAtIndex(l,n);r>this.max&&(this.max=r),r<this.min&&(this.min=r);}}get(e,t){let n=this._getByteView(),r=this._idx(e,t)*4;return this._unpackAtIndex(n,r)}sampleBilinear(e,t){let n=Math.floor(e),r=Math.floor(t);if(n<-1||n>=this.dim||r<-1||r>=this.dim)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);let i=this._getByteView(),a=((r+2)*this.stride+n+2)*4,o=this.stride*4,s=e-n,c=t-r,l=this._unpackAtIndex(i,a),u=this._unpackAtIndex(i,a+4),d=this._unpackAtIndex(i,a+o),f=this._unpackAtIndex(i,a+o+4);return l*(1-s)*(1-c)+u*s*(1-c)+d*(1-s)*c+f*s*c}getUnpackVector(){return [this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,t){if(e<-2||e>=this.dim+2||t<-2||t>=this.dim+2)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);return (t+2)*this.stride+(e+2)}unpack(e,t,n){return e*this.redFactor+t*this.greenFactor+n*this.blueFactor-this.baseShift}pack(e){return dp(e,this.getUnpackVector())}getPixels(){return new Jf({width:this.stride,height:this.stride},this._getByteView())}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case -1:r=i-2;break;case 1:i=r+2;}switch(n){case -1:a=o-2;break;case 1:o=a+2;}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++)this.data[this._idx(n,t)]=e.data[this._idx(n+s,t+c)];}_getByteView(){let t=e.byteViewCache.get(this);return t?.buffer!==this.data.buffer&&(t=new Uint8Array(this.data.buffer),e.byteViewCache.set(this,t)),t}_unpackAtIndex(e,t){return this.unpack(e[t],e[t+1],e[t+2])}};function dp(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=[n,r,i].filter(e=>e!==0);if(o.length===0)return {r:0,g:0,b:0};let s=Math.min(...o),c=Math.round((e+a)/s),l=e=>e===0?0:Math.floor(c*s/e)%256;return {r:l(n),g:l(r),b:l(i)}}K(`DEMData`,up);const mp=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hp=mp.members;function gp(e,t,n){let r=n.patternDependencies,i=false;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=true);let a=t.constantOr(null);a&&(i=true,r[a.to]=true,r[a.from]=true);}return i}function _p(e,t,n,r,i){let{zoom:a}=r,o=i.patternDependencies;for(let r of t){let t=r.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:a-1},n,{},i.availableImages),s=t.evaluate({zoom:a},n,{},i.availableImages),c=t.evaluate({zoom:a+1},n,{},i.availableImages);e=e?.name?e.name:e,s=s?.name?s.name:s,c=c?.name?c.name:c,o[e]=true,o[s]=true,o[c]=true,n.patterns[r.id]={min:e,mid:s,max:c};}}return n}const vp=/* @__PURE__ */ new Set;let yp=false;function bp(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length;vp.size&&vp.clear();let a=xp(e,0,i,n,true),o=[];if(!a||a.next===a.prev)return o;let s=0,c=0,l=0;if(r&&(a=kp(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i);}l=Math.max(t-s,r-c),l=l===0?0:32767/l;}return Cp(a,o,s,c,l),o}function xp(e,t,n,r,i){let a=null;if(i===fm(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=lm(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=lm(i/r|0,e[i],e[i+1],a);return a&&nm(a,a.next)&&(um(a),a=a.next),a}function Sp(e,t=e){let n=t===e,r=e,i;do i=false,r!==r.next&&(vp.size===0||!vp.has(r))&&(nm(r,r.next)||tm(r.prev,r,r.next)===0)?((n||r===t)&&(t=r.prev),yp=true,um(r),r=r.prev,i=true):(n||r!==t)&&(r=r.next,i=!n);while(i||r!==t);return t}function Cp(e,t,n,r,i){i&&Jp(e,n,r,i);let a=e,o=false;for(;e.prev!==e.next;){let s=e.prev,c=e.next;if(tm(s,e,c)<0&&(i?Tp(e,n,r,i):wp(e)))t.push(s.i,e.i,c.i),um(e),e=c,a=c;else if(e=c,e===a){if(yp=false,e=Sp(e),yp){a=e;continue}if(!o){e=Ep(e,t),a=e,o=true;continue}Dp(e,t,n,r,i);break}}}function wp(e){let t=e.prev,n=e,r=e.next,i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&(i!==m.x||s!==m.y)&&$p(i,s,a,c,o,l,m.x,m.y)&&tm(m.prev,m,m.next)>=0)return false;m=m.next;}return true}function Tp(e,t,n,r){let i=e.prev,a=e,o=e.next,s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=Zp(p,m,t,n,r),v=Zp(h,g,t,n,r),y=e.prevZ;for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==o&&(s!==y.x||u!==y.y)&&$p(s,u,c,d,l,f,y.x,y.y)&&tm(y.prev,y,y.next)>=0)return false;y=y.prevZ;}let b=e.nextZ;for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==o&&(s!==b.x||u!==b.y)&&$p(s,u,c,d,l,f,b.x,b.y)&&tm(b.prev,b,b.next)>=0)return false;b=b.nextZ;}return true}function Ep(e,t){let n=e,r=false;do{let i=n.prev,a=n.next.next;rm(i,n,n.next,a,false)&&om(i,a)&&om(a,i)&&(t.push(i.i,n.i,a.i),um(n),um(n.next),n=e=a,r=true),n=n.next;}while(n!==e);return r?Sp(n):n}function Dp(e,t,n,r,i){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&em(a,e)){let o=cm(a,e);a=Sp(a,a.next),o=Sp(o,o.next),Cp(a,t,n,r,i),Cp(o,t,n,r,i);return}e=e.next;}a=a.next;}while(a!==e)}let Op=false;function kp(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=xp(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,false);o===o.next&&vp.add(o),i.push(Qp(o));}i.sort(Ap),Ip(e.length/r,t.length),Lp(n,n),Op=true;for(let e=0;e<i.length;e++)n=jp(i[e],n);return Op=false,Sp(n)}function Ap(e,t){return e.x-t.x||e.y-t.y||(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x)}function jp(e,t){let n=Vp(e,t);if(!n)return t;let r=cm(n,e),i=r.next;return Lp(n,i.next),Sp(r,r.next),Sp(n,n.next)}let Mp=/* @__PURE__ */ new Float64Array,Np=0;const Pp=[],Fp=[];function Ip(e,t){let n=Math.ceil((e+2*t)/16)+t+2;Mp.length<n*4&&(Mp=new Float64Array(n*4)),Np=0;}function Lp(e,t){let n=e;do{let e=Np++;Pp[e]=n;let r=n.x,i=n.y,a=n.x,o=n.y,s=0;do{let t=n.next;n.z=e,t.x<r&&(r=t.x),t.x>a&&(a=t.x),t.y<i&&(i=t.y),t.y>o&&(o=t.y),n=t;}while(++s<16&&n!==t);Fp[e]=n;let c=e*4;Mp[c]=r,Mp[c+1]=i,Mp[c+2]=a,Mp[c+3]=o;}while(n!==t)}function Rp(e,t){let n=e.z*4;t.x<Mp[n]&&(Mp[n]=t.x),t.y<Mp[n+1]&&(Mp[n+1]=t.y),t.x>Mp[n+2]&&(Mp[n+2]=t.x),t.y>Mp[n+3]&&(Mp[n+3]=t.y);}function zp(e){let t=Fp[e];for(;t.prev.next!==t;)t=t.next;return Fp[e]=t,t}function Bp(e){let t=Pp[e];for(;t.prev.next!==t;)t=t.next;return Pp[e]=t,t}function Vp(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(nm(e,n))return n;for(let t=0,s=0;t<Np;t++,s+=4){if(i<Mp[s+1]||i>Mp[s+3]||Mp[s]>r||Mp[s+2]<=a)continue;let c=zp(t);n=Bp(t);do{if(n.prev.next===n){if(nm(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}}n=n.next;}while(n!==c)}if(!o)return null;let s=o.x,c=o.y,l=Math.min(i,c),u=Math.max(i,c),d=1/0;for(let t=0,f=0;t<Np;t++,f+=4){if(Mp[f+2]<s||Mp[f]>r||Mp[f+3]<l||Mp[f+1]>u)continue;let p=zp(t);n=Bp(t);do{if(n.prev.next===n&&r>=n.x&&n.x>=s&&r!==n.x&&$p(i<c?r:a,i,s,c,i<c?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);(om(n,e)||n.y===i&&n.next.y===i&&n.next.x>r)&&(t<d||t===d&&(n.x>o.x||n.x===o.x&&Hp(o,n)))&&(o=n,d=t);}n=n.next;}while(n!==p)}return o}function Hp(e,t){return tm(e.prev,e,t.prev)<0&&tm(t.next,e,e.next)<0}const Up=[];let Wp=[],Gp=/* @__PURE__ */ new Uint32Array,Kp=/* @__PURE__ */ new Uint32Array;const qp=/* @__PURE__ */ new Uint32Array(256);function Jp(e,t,n,r){let i=e,a=0;do i.z=Zp(i.x,i.y,t,n,r),Up[a++]=i,i=i.next;while(i!==e);Yp(a);let o=null;for(let e=0;e<a;e++){let t=Up[e];t.prevZ=o,o&&(o.nextZ=t),o=t;}o.nextZ=null,Up.fill(null,0,a),Wp.fill(null,0,a);}function Yp(e){if(e<=32)for(let t=1;t<e;t++){let e=Up[t],n=e.z,r=t-1;for(;r>=0&&Up[r].z>n;)Up[r+1]=Up[r],r--;Up[r+1]=e;}else {Gp.length<e&&(Gp=new Uint32Array(e),Kp=new Uint32Array(e),Wp=Array(e));for(let t=0;t<e;t++)Gp[t]=Up[t].z;Xp(e,Up,Gp,Wp,Kp,0),Xp(e,Wp,Kp,Up,Gp,8),Xp(e,Up,Gp,Wp,Kp,16),Xp(e,Wp,Kp,Up,Gp,24);}}function Xp(e,t,n,r,i,a){qp.fill(0);for(let t=0;t<e;t++)qp[n[t]>>>a&255]++;let o=0;for(let e=0;e<256;e++){let t=qp[e];qp[e]=o,o+=t;}for(let o=0;o<e;o++){let e=n[o],s=qp[e>>>a&255]++;r[s]=t[o],i[s]=e;}}function Zp(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|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 Qp(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function $p(e,t,n,r,i,a,o,s){return (i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function em(e,t){let n=nm(e,t)&&tm(e.prev,e,e.next)>0&&tm(t.prev,t,t.next)>0;return e.next.i!==t.i&&(n||om(e,t)&&om(t,e)&&(tm(e.prev,e,t.prev)!==0||tm(e,t.prev,t)!==0))&&!am(e,t)&&(n||sm(e,t))}function tm(e,t,n){return (t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function nm(e,t){return e.x===t.x&&e.y===t.y}function rm(e,t,n,r,i=true){let a=tm(e,t,n),o=tm(e,t,r),s=tm(n,r,e),c=tm(n,r,t);return (a>0&&o<0||a<0&&o>0)&&(s>0&&c<0||s<0&&c>0)?true:i?!!(a===0&&im(e,n,t)||o===0&&im(e,r,t)||s===0&&im(n,e,r)||c===0&&im(n,t,r)):false}function im(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function am(e,t){let n=Math.min(e.x,t.x),r=Math.max(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.y,t.y),o=e;do{let s=o.next;if(o.x>r&&s.x>r||o.x<n&&s.x<n||o.y>a&&s.y>a||o.y<i&&s.y<i)o=s;else {if(o.i!==e.i&&s.i!==e.i&&o.i!==t.i&&s.i!==t.i&&rm(o,s,e,t))return true;o=s;}}while(o!==e);return false}function om(e,t){return tm(e.prev,e,e.next)<0?tm(e,t,e.next)>=0&&tm(e,e.prev,t)>=0:tm(e,t,e.prev)<0||tm(e,e.next,t)<0}function sm(e,t){let n=e,r=false,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{let e=n.next;n.y>a!=e.y>a&&i<(e.x-n.x)*(a-n.y)/(e.y-n.y)+n.x&&(r=!r),n=e;}while(n!==e);return r}function cm(e,t){let n=dm(e.i,e.x,e.y),r=dm(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function lm(e,t,n,r){let i=dm(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function um(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),Op&&Rp(e.prev,e.next);}function dm(e,t,n){return {i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function fm(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var pm=class{constructor(e,t){if(t>e)throw Error(`Min granularity must not be greater than base granularity.`);this._baseZoomGranularity=e,this._minGranularity=t;}getGranularityForZoomLevel(e){let t=1<<e;return Math.max(Math.floor(this._baseZoomGranularity/t),this._minGranularity,1)}},mm=class e{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle;}static{this.noSubdivision=new e({fill:new pm(0,0),line:new pm(0,0),tile:new pm(0,0),stencil:new pm(0,0),circle:1});}};K(`SubdivisionGranularityExpression`,pm),K(`SubdivisionGranularitySetting`,mm);const hm=-32768,gm=32767;var _m=class{constructor(e,t){this._vertexBuffer=[],this._vertexDictionary=/* @__PURE__ */ new Map,this._used=false,this._granularity=e,this._granularityCellSize=P/e,this._canonical=t;}_getKey(e,t){return e+=32768,t+=32768,e<<16|t}_vertexToIndex(e,t){if(e<-32768||t<-32768||e>32767||t>32767)throw Error(`Vertex coordinates are out of signed 16 bit integer range.`);let n=Math.round(e)|0,r=Math.round(t)|0,i=this._getKey(n,r),a=this._vertexDictionary.get(i);if(a!==void 0)return a;let o=this._vertexBuffer.length/2;return this._vertexDictionary.set(i,o),this._vertexBuffer.push(n,r),o}_subdivideTrianglesScanline(e,t){if(this._granularity<2)return Cm(this._vertexBuffer,Sm(e,t));let n=[],r=e.length;for(let i=0;i<r;i+=3){let r=[t[e[i+0]],t[e[i+1]],t[e[i+2]]],a=[this._vertexBuffer[r[0]*2+0],this._vertexBuffer[r[0]*2+1],this._vertexBuffer[r[1]*2+0],this._vertexBuffer[r[1]*2+1],this._vertexBuffer[r[2]*2+0],this._vertexBuffer[r[2]*2+1]],o=1/0,s=1/0,c=-1/0,l=-1/0;for(let e=0;e<3;e++){let t=a[e*2],n=a[e*2+1];o=Math.min(o,t),c=Math.max(c,t),s=Math.min(s,n),l=Math.max(l,n);}if(o===c||s===l)continue;let u=Math.floor(o/this._granularityCellSize),d=Math.ceil(c/this._granularityCellSize),f=Math.floor(s/this._granularityCellSize),p=Math.ceil(l/this._granularityCellSize);if(u===d&&f===p)n.push(...r);else for(let e=f;e<p;e++){let t=this._scanlineGenerateVertexRingForCellRow(e,a,r);wm(this._vertexBuffer,t,n);}}return n}_scanlineGenerateVertexRingForCellRow(e,t,n){let r=e*this._granularityCellSize,i=r+this._granularityCellSize,a=[];for(let e=0;e<3;e++){let o=t[e*2],s=t[e*2+1],c=t[(e+1)*2%6],l=t[((e+1)*2+1)%6],u=t[(e+2)*2%6],d=t[((e+2)*2+1)%6],f=c-o,p=l-s,m=f===0,h=p===0,g=(r-s)/p,_=(i-s)/p,v=Math.min(g,_),y=Math.max(g,_);if(!h&&(v>=1||y<=0)||h&&(s<r||s>i)){l>=r&&l<=i&&a.push(n[(e+1)%3]);continue}if(!h&&v>0){let e=o+f*v,t=s+p*v;a.push(this._vertexToIndex(e,t));}let b=o+f*Math.max(v,0),x=o+f*Math.min(y,1);if(m||this._generateIntraEdgeVertices(a,o,s,c,l,b,x),!h&&y<1){let e=o+f*y,t=s+p*y;a.push(this._vertexToIndex(e,t));}(h||l>=r&&l<=i)&&a.push(n[(e+1)%3]),!h&&(l<=r||l>=i)&&this._generateInterEdgeVertices(a,o,s,c,l,u,d,x,r,i);}return a}_generateIntraEdgeVertices(e,t,n,r,i,a,o){let s=r-t,c=i-n,l=c===0,u=l?Math.min(t,r):Math.min(a,o),d=l?Math.max(t,r):Math.max(a,o),f=Math.floor(u/this._granularityCellSize)+1,p=Math.ceil(d/this._granularityCellSize)-1;if(l?t<r:a<o)for(let r=f;r<=p;r++){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}else for(let r=p;r>=f;r--){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}}_generateInterEdgeVertices(e,t,n,r,i,a,o,s,c,l){let u=i-n,d=a-r,f=o-i,p=(c-i)/f,m=(l-i)/f,h=Math.min(p,m),g=Math.max(p,m),_=r+d*h,v=Math.floor(Math.min(_,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(_,s)/this._granularityCellSize)-1,b=s<_,x=f===0;if(x&&(o===c||o===l))return;if(x||h>=1||g<=0){let e=t-a,r=n-o,i=(c-o)/r,u=(l-o)/r,d=a+e*Math.min(i,u);v=Math.floor(Math.min(d,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(d,s)/this._granularityCellSize)-1,b=s<d;}let S=u>0?l:c;if(b)for(let t=v;t<=y;t++){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}else for(let t=y;t>=v;t--){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}}_generateOutline(e,t){let n=[],r=0;for(let i of e){let e=this._granularity<2?this._ringPathIndices(i,r,t):this._pointArrayToIndices(ym(i,this._granularity,true));r+=i.length;let a=[];for(let t=1;t<e.length;t++)a.push(e[t-1]),a.push(e[t]);n.push(a);}return n}_ringPathIndices(e,t,n){let r=n.slice(t,t+e.length);return r.length>=2&&bm(e)&&r.push(r[0]),r}_handlePoles(e){let t=false,n=false;this._canonical&&(this._canonical.y===0&&(t=true),this._canonical.y===(1<<this._canonical.z)-1&&(n=true)),(t||n)&&this._fillPoles(e,t,n);}_ensureNoPoleVertices(){let e=this._vertexBuffer;for(let t=0;t<e.length;t+=2){let n=e[t+1];n===-32768&&(e[t+1]=-32767),n===32767&&(e[t+1]=32766);}}_generatePoleQuad(e,t,n,r,i,a){r>i==(a===-32768)?(e.push(n),e.push(t),e.push(this._vertexToIndex(r,a)),e.push(this._vertexToIndex(i,a)),e.push(n),e.push(this._vertexToIndex(r,a))):(e.push(t),e.push(n),e.push(this._vertexToIndex(r,a)),e.push(n),e.push(this._vertexToIndex(i,a)),e.push(this._vertexToIndex(r,a)));}_fillPoles(e,t,n){let r=this._vertexBuffer,i=P,a=e.length;for(let o=2;o<a;o+=3){let a=e[o-2],s=e[o-1],c=e[o],l=r[a*2],u=r[a*2+1],d=r[s*2],f=r[s*2+1],p=r[c*2],m=r[c*2+1];t&&(u===0&&f===0&&this._generatePoleQuad(e,a,s,l,d,hm),f===0&&m===0&&this._generatePoleQuad(e,s,c,d,p,hm),m===0&&u===0&&this._generatePoleQuad(e,c,a,p,l,hm)),n&&(u===i&&f===i&&this._generatePoleQuad(e,a,s,l,d,gm),f===i&&m===i&&this._generatePoleQuad(e,s,c,d,p,gm),m===i&&u===i&&this._generatePoleQuad(e,c,a,p,l,gm));}}_initializeVertices(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(this._vertexToIndex(e[n],e[n+1]));return t}subdividePolygonInternal(e,t){if(this._used)throw Error(`Subdivision: multiple use not allowed.`);this._used=true;let{flattened:n,holeIndices:r}=xm(e),i=this._initializeVertices(n),a;try{let e=bp(n,r);a=this._subdivideTrianglesScanline(e,i);}catch(e){console.error(e);}let o=[];return t&&(o=this._generateOutline(e,i)),this._ensureNoPoleVertices(),this._handlePoles(a),this._granularity>=2&&this._canonical?.z===0&&(a=this._removeTrianglesOutsideTileX(a),o=o.map(e=>this._removeLinesOutsideTileX(e))),{verticesFlattened:this._vertexBuffer,indicesTriangles:a,indicesLineList:o}}_vertexOutsideTileX(e){let t=this._vertexBuffer[e*2];return t<0||t>8192}_removeTrianglesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=3)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||this._vertexOutsideTileX(e[n+2])||t.push(e[n],e[n+1],e[n+2]);return t}_removeLinesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=2)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||t.push(e[n],e[n+1]);return t}_pointArrayToIndices(e){let t=[];for(let n of e)t.push(this._vertexToIndex(n.x,n.y));return t}};function vm(e,t,n,r=true){return new _m(n,t).subdividePolygonInternal(e,r)}function ym(e,t,n=false){if(!e||e.length<1||e.length<2)return [];let r=n&&bm(e);if(t<2)return r?[...e,e[0]]:[...e];let i=Math.floor(P/t),a=[];a.push(new u(e[0].x,e[0].y));let o=e.length,s=r?o:o-1;for(let t=0;t<s;t++){let n=e[t],r=t<o-1?e[t+1]:e[0],s=n.x,c=n.y,l=r.x,d=r.y,f=s!==l,p=c!==d;if(!f&&!p)continue;let m=l-s,h=d-c,g=Math.abs(m),_=Math.abs(h),v=s,y=c;for(;;){let e=m>0?(Math.floor(v/i)+1)*i:(Math.ceil(v/i)-1)*i,t=h>0?(Math.floor(y/i)+1)*i:(Math.ceil(y/i)-1)*i,n=Math.abs(v-e),r=Math.abs(y-t),o=Math.abs(v-l),s=Math.abs(y-d),c=f?n/g:1/0,b=p?r/_:1/0;if((o<=n||!f)&&(s<=r||!p))break;if(c<b&&f||!p){v=e,y+=h*c;let t=new u(v,Math.round(y));(a[a.length-1].x!==t.x||a[a.length-1].y!==t.y)&&a.push(t);}else {v+=m*b,y=t;let e=new u(Math.round(v),y);(a[a.length-1].x!==e.x||a[a.length-1].y!==e.y)&&a.push(e);}}let b=new u(l,d);(a[a.length-1].x!==b.x||a[a.length-1].y!==b.y)&&a.push(b);}return a}function bm(e){return !e[0].equals(e[e.length-1])}function xm(e){let t=[],n=[];for(let r of e)if(r.length!==0){r!==e[0]&&t.push(n.length/2);for(let e of r)n.push(e.x),n.push(e.y);}return {flattened:n,holeIndices:t}}function Sm(e,t){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=t[e[r]];return n}function Cm(e,t){let n=[];for(let r=0;r<t.length;r+=3){let i=t[r],a=t[r+1],o=t[r+2],s=e[i*2],c=e[i*2+1],l=e[a*2],u=e[a*2+1],d=e[o*2],f=e[o*2+1],p=l-s,m=u-c,h=d-s;p*(f-c)-m*h>0?(n.push(i),n.push(o),n.push(a)):(n.push(i),n.push(a),n.push(o));}return n}function wm(e,t,n){if(t.length===0)throw Error(`Subdivision vertex ring is empty.`);let r=0,i=e[t[0]*2];for(let n=1;n<t.length;n++){let a=e[t[n]*2];a<i&&(i=a,r=n);}let a=t.length,o=r,s=(o+1)%a;for(;;){let r=o-1>=0?o-1:a-1,i=(s+1)%a,c=e[t[r]*2],l=e[t[r]*2+1],u=e[t[i]*2],d=e[t[i]*2+1],f=e[t[o]*2],p=e[t[o]*2+1],m=e[t[s]*2],h=e[t[s]*2+1],g=false;if(c<u)g=true;else if(c>u)g=false;else {let e=h-p,t=-(m-f),n=p<h?1:-1;((c-f)*e+(l-p)*t)*n>((u-f)*e+(d-p)*t)*n&&(g=true);}if(g){let e=t[r],i=t[o],c=t[s];e!==i&&e!==c&&i!==c&&n.push(c,i,e),o--,o<0&&(o=a-1);}else {let e=t[i],r=t[o],c=t[s];e!==r&&e!==c&&r!==c&&n.push(c,r,e),s++,s>=a&&(s=0);}if(r===i)break}}function Tm(e,t,n,r,i,a,o,s,c){let l=i.length/2,u=o&&s&&c;if(l<gd.MAX_VERTEX_ARRAY_LENGTH){let d=t.prepareSegment(l,n,r),f=d.vertexLength;for(let e=0;e<a.length;e+=3)r.emplaceBack(f+a[e],f+a[e+1],f+a[e+2]);d.vertexLength+=l,d.primitiveLength+=a.length/3;let p,m;u&&(m=o.prepareSegment(l,n,s),p=m.vertexLength,m.vertexLength+=l);for(let t=0;t<i.length;t+=2)e(i[t],i[t+1]);if(u)for(let e of c){for(let t=1;t<e.length;t+=2)s.emplaceBack(p+e[t-1],p+e[t]);m.primitiveLength+=e.length/2;}}else Dm(t,n,r,i,a,e),u&&Om(o,n,s,i,c,e),t.forceNewSegmentOnNextPrepare(),o?.forceNewSegmentOnNextPrepare();}function Em(e,t,n,r,i,a,o){if(a){let a=r.count;return n(t[i*2],t[i*2+1]),e[i]=r.count,r.count++,o.vertexLength++,a}return e[i]}function Dm(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d=2;d<i.length;d+=3){let f=i[d-2],p=i[d-1],m=i[d],h=o[f]<c,g=o[p]<c,_=o[m]<c,v=+!!h+ +!!g+ +!!_;l.vertexLength+v>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,h=true,g=true,_=true,u=0);let y=Em(o,r,a,s,f,h,l),b=Em(o,r,a,s,p,g,l),x=Em(o,r,a,s,m,_,l);n.emplaceBack(u+y-c,u+b-c,u+x-c),l.primitiveLength++;}}function Om(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d of i)for(let i=1;i<d.length;i+=2){let f=d[i-1],p=d[i],m=o[f]<c,h=o[p]<c,g=+!!m+ +!!h;l.vertexLength+g>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,m=true,h=true,u=0);let _=Em(o,r,a,s,f,m,l),v=Em(o,r,a,s,p,h,l);n.emplaceBack(u+_-c,u+v-c),l.primitiveLength++;}}var km=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.sdfPatterns={},this.patternFeatures=[],this.layoutVertexArray=new Qu,this.indexArray=new dd,this.indexArray2=new fd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.segments2=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`fill`,this.layers,t);let r=this.layers[0].layout.get(`fill-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:c,id:l,index:u,sourceLayerIndex:d}of e){let e=Qd(c,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let f=i?r.evaluate(e,{},n,t.availableImages):void 0,p={id:l,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:s?e.geometry:Zd(c),patterns:{},sortKey:f};a.push(p);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasDependencies){let e=_p(`fill`,this.layers,r,{zoom:this.zoom},t);this.patternFeatures.push(e);}else this.addFeature(r,i,a,n,{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures({options:e,canonical:t,patternPositions:n,patternMap:r}){this.detectSdfPatterns(r);for(let r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,t,n,e.subdivisionGranularity);}detectSdfPatterns(e){for(let t of this.patternFeatures)for(let n in t.patterns){let r=t.patterns[n];this.recordSdfPattern(n,e[r.min]),this.recordSdfPattern(n,e[r.mid]),this.recordSdfPattern(n,e[r.max]);}for(let t of this.layers){let n=t.paint.get(`fill-pattern`).constantOr(null);n&&(this.recordSdfPattern(t.id,e[n.from.toString()]),this.recordSdfPattern(t.id,e[n.to.toString()]));}}recordSdfPattern(e,t){if(!t)return;let n=t.sdf===true,r=this.sdfPatterns[e];r===void 0?this.sdfPatterns[e]=n:r!==n&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF fill patterns in layer "${e}"`);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hp),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(e,t,n,r,i,a){for(let e of Fi(t,500)){let t=vm(e,r,a.fill.getGranularityForZoomLevel(r.z)),n=this.layoutVertexArray;Tm((e,t)=>{n.emplaceBack(e,t);},this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}};K(`FillBucket`,km,{omit:[`layers`,`patternFeatures`]});const Lm=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_normal_ed`,components:4,type:`Int16`}],4),Rm=lu([{name:`a_centroid`,components:2,type:`Int16`}],4),zm=Lm.members;var Bm=class{constructor(e,t,n,r,i){for(this.properties=Object.create(null),this.extent=n,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i;e.pos<t;){let t=e.readVarint();if(t===8)this.id=e.readVarint();else if(t===18){let t=e.readVarint()+e.pos;for(;e.pos<t;){let t=r[e.readVarint()],n=i[e.readVarint()];this.properties[t]=n;}}else t===24?this.type=e.readVarint():(t===34&&(this._geometry=e.pos),e.skip(t));}}loadGeometry(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=[],r,i=1,a=0,o=0,s=0;for(;e.pos<t;){if(a<=0){let t=e.readVarint();if(i=t&7,a=t>>3,a===0)continue}if(a--,i===1)o+=e.readSVarint(),s+=e.readSVarint(),r&&n.push(r),r=[new u(o,s)];else if(i===2)o+=e.readSVarint(),s+=e.readSVarint(),r&&r.push(new u(o,s));else if(i===7)r&&r.push(r[0].clone());else throw Error(`unknown command ${i}`)}return r&&n.push(r),n}bbox(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;for(;e.pos<t;){if(r<=0){let t=e.readVarint();if(n=t&7,r=t>>3,r===0)continue}if(r--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),i<o&&(o=i),i>s&&(s=i),a<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command ${n}`)}return [o,c,s,l]}toGeoJSON(e,t,n){let r=this.extent*2**n,i=this.extent*e,a=this.extent*t,o=this.loadGeometry();function s(e){return [(e.x+i)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+a)*2/r)*Math.PI))-90]}function c(e){return e.map(s)}let l;if(this.type===1){let e=[];for(let t of o)e.push(t[0]);let t=c(e);l=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};}else if(this.type===2){let e=o.map(c);l=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};}else if(this.type===3){let e=Vm(o),t=[];for(let n of e)t.push(n.map(c));l=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};}else throw Error(`unknown feature type`);let u={type:`Feature`,geometry:l,properties:this.properties};return this.id!=null&&(u.id=this.id),u}};Bm.types=[`Unknown`,`Point`,`LineString`,`Polygon`];function Vm(e){let t=e.length;if(t<=1)return [e];let n=[],r,i;for(let a=0;a<t;a++){let t=Hm(e[a]);t!==0&&(i===void 0&&(i=t<0),i===t<0?(r&&n.push(r),r=[e[a]]):r&&r.push(e[a]));}return r&&n.push(r),n}function Hm(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var Um=class{constructor(e,t){for(this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],t===void 0&&(t=e.length);e.pos<t;){let t=e.readVarint();t===10?this.name=e.readString():t===18?(this._features.push(e.pos),e.skip(t)):t===26?this._keys.push(e.readString()):t===34?this._values.push(Wm(e)):t===40?this.extent=e.readVarint():t===120?this.version=e.readVarint():e.skip(t);}this.length=this._features.length;}feature(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let t=this._pbf.readVarint()+this._pbf.pos;return new Bm(this._pbf,t,this.extent,this._keys,this._values)}};function Wm(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let n=e.readVarint();t=n===10?e.readString():n===21?e.readFloat():n===25?e.readDouble():n===32?e.readVarint(true):n===40?e.readVarint():n===48?e.readSVarint():n===56?e.readBoolean():(e.skip(n),null);}if(t==null)throw Error(`unknown feature value`);return t}var Gm=class{constructor(e,t=e.length){let n=Object.create(null);for(;e.pos<t;){let t=e.readVarint();if(t===26){let t=new Um(e,e.readVarint()+e.pos);t.length&&(n[t.name]=t);}else e.skip(t);}this.layers=n;}};const Km=6371008.8;var Q=class e{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new e(wt(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return Km*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof e)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new e(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t==`object`&&t)return new e(Number(`lng`in t?t.lng:t.lon),Number(t.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}};const qm=6378137,Jm={origin:[-Math.PI*qm,Math.PI*qm],extentAtZoom0:2*Math.PI*qm},Ym=2*Math.PI*Km;function Xm(e){return Ym*Math.cos(e*Math.PI/180)}function Zm(e){return (180+e)/360}function Qm(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function $m(e,t){return e/Xm(t)}function eh(e){return e*360-180}function th(e){let t=180-e*360;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}function nh(e,t){return e*Xm(th(t))}function rh(e){return 1/Math.cos(e*Math.PI/180)}var ih=class e{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n;}static fromLngLat(t,n=0){let r=Q.convert(t);return new e(Zm(r.lng),Qm(r.lat),$m(n,r.lat))}toLngLat(){return new Q(eh(this.x),th(this.y))}toAltitude(){return nh(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Ym*rh(th(this.y))}};const ah=new class{constructor(){this.name=`mercator`,this.wraps=true,this.tileMatrixSet=Jm;}worldFromLngLat(e,t,n){return new ih(Zm(e),Qm(t),n===void 0?0:$m(n,t))}lngLatFromWorld(e,t){return new Q(eh(e),th(t))}hasLngLat(e,t){return true}metersPerWorldUnit(e,t){return 1/(1/Ym*rh(th(t)))}worldZFromAltitude(e,t){return $m(e,t.lat)}};function sh(e,t,n){let r=1/(1<<n.z);return new ih(e/P*r+n.x*r,t/P*r+n.y*r)}function ch(e,t,n){return sh(e,t,n).toLngLat()}function xh(e,t){return t<=0||!e||e.length===0?e:e.map(e=>Eh(e,t))}function Sh(e,t){let n=ch(P/2,P/2,t),r=ih.fromLngLat(n).meterInMercatorCoordinateUnits(),i=(1<<t.z)*P;return e*r*i}const Ch=Math.cos(35*Math.PI/180);function wh(e){let t=[null];for(let n=1;n<e.length;n++){let r=e[n].sub(e[n-1]),i=!tf(e[n],e[n-1])&&r.mag()>0;t.push(i?r._perp():null);}let n=e.length-1,r=n>1&&e[0].equals(e[n]),i=[null];for(let e=1;e<=n;e++){let a=t[e];if(!a){i.push(null);continue}let o=r&&e===1?t[n]:t[e-1],s=r&&e===n?t[1]:t[e+1];i.push({start:Th(a,o),end:Th(a,s)});}return i}function Th(e,t){if(!t)return e.unit();let n=e.mag(),r=t.mag();return e.x*t.x+e.y*t.y<Ch*n*r||n>=2*r?e.unit():r>=2*n?t.unit():e.add(t)._unit()}function Eh(e,t){if(!e||e.length<3)return e;let n=e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y,r=n?e.length-1:e.length;if(r<3)return e;let i=[],a=tf(e[r-1],e[0]);for(let n=0;n<r;n++){let o=e[(n-1+r)%r],s=e[n],c=e[(n+1)%r],l=tf(s,c);a||l?i.push(s.clone()):Oh(i,o,s,c,t),a=l;}let o=Dh(i);return o.length<3?e:(n&&o.push(o[0].clone()),o)}function Dh(e){let t=[];for(let n of e){let e=n.round(),r=t[t.length-1];(r?.x!==e.x||r?.y!==e.y)&&t.push(e);}for(;t.length>1&&t[0].x===t[t.length-1].x&&t[0].y===t[t.length-1].y;)t.pop();return t}function Oh(e,t,n,r,i){let a=t.sub(n),o=r.sub(n),s=a.mag(),c=o.mag();if(s<1e-6||c<1e-6){e.push(n.clone());return}a._div(s),o._div(c);let l=a.x*o.x+a.y*o.y;if(Math.abs(l)>Math.cos(5*Math.PI/180)){e.push(n.clone());return}let u=.2,d=Math.min(i,s*u,c*u),f=n.add(a.mult(d)),p=n.add(o.mult(d)),m=Math.sqrt((1+l)/2),h=n.add(a.add(o)._unit()._mult(d/m)),g=f.sub(h).angleWith(p.sub(h)),_=Math.max(2,Math.ceil(Math.abs(g)/(Math.PI/6)-1e-6));for(let t=0;t<=_;t++)e.push(f.rotateAround(t/_*g,h));}const kh=8192;function Ah(e,t,n,r,i,a,o,s){e.emplaceBack(t,n,Math.floor(r*kh)*2+o,i*kh*2,a*kh*2,Math.round(s));}var jh=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new $u,this.centroidVertexArray=new Ju,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.features=[],this.hasDependencies=gp(`fill-extrusion`,this.layers,t);let r=new Ll(this.zoom),i=this.layers[0],a=i.layout.get(`fill-extrusion-rounded-corner-distance`),o=a>0?Sh(a,n):0,s=i._featureFilter.needGeometry;for(let{feature:a,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(a,s);if(!i._featureFilter.filter(r,e,n))continue;let d={id:c,sourceLayerIndex:u,index:l,geometry:xh(s?e.geometry:Zd(a),o),properties:a.properties,type:a.type,patterns:{}};this.hasDependencies?this.features.push(_p(`fill-extrusion`,this.layers,d,{zoom:this.zoom},t)):this.addFeature(d,d.geometry,l,n,{},t.subdivisionGranularity),t.featureIndex.insert(a,d.geometry,l,u,this.index,true);}}addFeatures({options:e,canonical:t,patternPositions:n}){for(let r of this.features){let{geometry:i}=r;this.addFeature(r,i,r.index,t,n,e.subdivisionGranularity);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,zm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,Rm.members,true),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(e,t,n,r,i,a){for(let n of Fi(t,500)){let t={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(t,r,e,n,a);let o=this.layoutVertexArray.length-i,s=Math.floor(t.x/t.sampleCount),c=Math.floor(t.y/t.sampleCount);for(let e=0;e<o;e++)this.centroidVertexArray.emplaceBack(s,c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}processPolygon(e,t,n,r,i){if(r.length<1||nf(r[0]))return;for(let t of r)t.length!==0&&Mh(e,t);let a={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},o=i.fill.getGranularityForZoomLevel(t.z),s=Bm.types[n.type]===`Polygon`;for(let e of r){if(e.length===0||nf(e))continue;let t=ym(e,o,s);this._generateSideFaces(t,a);}if(!s)return;let c=vm(r,t,o,false),l=this.layoutVertexArray;Tm((e,t)=>{Ah(l,e,t,0,0,1,1,0);},this.segments,this.layoutVertexArray,this.indexArray,c.verticesFlattened,c.indicesTriangles);}_generateSideFaces(e,t){let n=0,r=this.layers[0].layout.get(`fill-extrusion-rounded-corner-distance`)>0?wh(e):null;for(let i=1;i<e.length;i++){let a=e[i],o=e[i-1];if(tf(a,o)||r&&!r[i])continue;t.segment.vertexLength+4>gd.MAX_VERTEX_ARRAY_LENGTH&&(t.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let s=a.sub(o)._perp()._unit(),{start:c,end:l}=r?r[i]:{start:s,end:s},u=o.dist(a);n+u>32768&&(n=0),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,0,n),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,1,n),n+=u,Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,0,n),Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,1,n);let d=t.segment.vertexLength;this.indexArray.emplaceBack(d,d+2,d+1),this.indexArray.emplaceBack(d+1,d+2,d+3),t.segment.vertexLength+=4,t.segment.primitiveLength+=2;}}};function Mh(e,t){for(let n=0;n<t.length;n++){let r=t[n];(n!==t.length-1||t[0].x!==r.x||t[0].y!==r.y)&&(e.x+=r.x,e.y+=r.y,e.sampleCount++);}}K(`FillExtrusionBucket`,jh,{omit:[`layers`,`features`]});const qh=lu([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`},{name:`a_offset_normal`,components:2,type:`Int8`}],2),Jh=qh.members;const Yh=lu([{name:`a_uv_x`,components:1,type:`Float32`},{name:`a_split_index`,components:1,type:`Float32`}]),Xh=Yh.members;const Zh=Math.cos(75/2*(Math.PI/180)),Qh=1/2,$h=2**14/Qh;var eg=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={};for(let e of this.layers)this.gradients[e.id]={};this.layoutVertexArray=new ed,this.layoutVertexArray2=new td,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`line`,this.layers,t)||this.hasLineDasharray(this.layers);let r=this.layers[0].layout.get(`line-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(t,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let d=i?r.evaluate(e,{},n):void 0,f={id:c,properties:t.properties,type:t.type,sourceLayerIndex:u,index:l,geometry:s?e.geometry:Zd(t),patterns:{},dashes:{},sortKey:d};a.push(f);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;this.hasDependencies?(gp(`line`,this.layers,t)?_p(`line`,this.layers,r,{zoom:this.zoom},t):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,r,this.zoom,t),this.patternFeatures.push(r)):this.addFeature(r,i,a,n,{},{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n,dashPositions:r});}addFeatures({options:e,canonical:t,patternPositions:n,dashPositions:r}){for(let i of this.patternFeatures)this.addFeature(i,i.geometry,i.index,t,n,r,e.subdivisionGranularity);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,Xh)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Jh),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(e){if(e.properties&&Object.hasOwn(e.properties,`geojsonvt_clip_start`)&&Object.hasOwn(e.properties,`geojsonvt_clip_end`))return {start:+e.properties.geojsonvt_clip_start,end:+e.properties.geojsonvt_clip_end}}addFeature(e,t,n,r,i,a,o){let s=this.layers[0].layout,c=s.get(`line-join`).evaluate(e,{}),l=s.get(`line-cap`).evaluate(e,{}),u=s.get(`line-miter-limit`).evaluate(e,{}),d=s.get(`line-round-limit`).evaluate(e,{});this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,c,l,u,d,r,o);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,dashPositions:a,canonical:r});}addLine(e,t,n,r,i,a,o,s){this.distance=0,this.scaledDistance=0,this.totalDistance=0;let c=o?s.line.getGranularityForZoomLevel(o.z):1;if(e=ym(e,c),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}let l=Bm.types[t.type]===`Polygon`,u=e.length;for(;u>=2&&e[u-1].equals(e[u-2]);)u--;let d=0;for(;d<u-1&&e[d].equals(e[d+1]);)d++;if(u-d<(l?3:2))return;n===`bevel`&&(i=1.05);let f=this.overscaling<=16?15*P/(512*this.overscaling):0,p=this.segments.prepareSegment(u*10,this.layoutVertexArray,this.indexArray),m,h,g,_,v;this.e1=this.e2=-1,l&&(m=e[u-2],v=e[d].sub(m)._unit()._perp());for(let t=d;t<u;t++){if(g=t===u-1?l?e[d+1]:void 0:e[t+1],g&&e[t].equals(g))continue;v&&(_=v),m&&(h=m),m=e[t],v=g?g.sub(m)._unit()._perp():_,_||=v;let o=_.add(v);(o.x!==0||o.y!==0)&&o._unit();let s=_.x*v.x+_.y*v.y,c=o.x*v.x+o.y*v.y,y=c===0?1/0:1/c,b=2*Math.sqrt(2-2*c),x=c<Zh&&h&&g,S=_.x*v.y-_.y*v.x>0,C=o.mult(Math.min(y,2)),w=F((y-3)/5,0,1);if(x&&t>d){let e=m.dist(h);if(e>2*f){let t=m.sub(m.sub(h)._mult(f/e)._round());this.updateDistance(h,t),this.addCurrentVertex(t,_,0,0,p),h=t;}}let T=h&&g,E=T?n:l?`butt`:r;if(T&&E===`round`&&(y<a?E=`miter`:y<=2&&(E=`fakeround`)),E===`miter`&&y>i&&(E=`bevel`),E===`bevel`&&(y>2&&(E=`flipbevel`),y<i&&(E=`miter`)),h&&this.updateDistance(h,m),E===`miter`)o._mult(y),this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`flipbevel`){if(y>100)o=v.mult(-1);else {let e=y*_.add(v).mag()/_.sub(v).mag();o._perp()._mult(e*(S?-1:1));}this.addCurrentVertex(m,o,0,0,p,false,C,w),this.addCurrentVertex(m,o.mult(-1),0,0,p,false,C,w);}else if(E===`bevel`||E===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(h&&this.addCurrentVertex(m,_,t,n,p,false,C),E===`fakeround`){let e=Math.round(b*180/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5,t=1.0904+s*(-3.2452+s*(3.55645-s*1.43519)),r=.848013+s*(-1.06021+s*.215638);n+=n*e*(n-1)*(t*e*e+r);}let r=v.sub(_)._mult(n)._add(_)._unit()._mult(S?-1:1);this.addHalfVertex(m,r.x,r.y,S?-C.x:C.x,S?-C.y:C.y,false,S,p);}}g&&this.addCurrentVertex(m,v,-t,-n,p,false,C);}else if(E===`butt`)this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`square`){let e=h?1:-1;this.addCurrentVertex(m,o,e,e,p,false,C);}else E===`round`&&(h&&(this.addCurrentVertex(m,_,0,0,p,false,C,w),this.addCurrentVertex(m,_,1,1,p,true,C,w)),g&&(this.addCurrentVertex(m,v,-1,-1,p,true,C,w),this.addCurrentVertex(m,v,0,0,p,false,C,w)));if(x&&t<u-1){let e=m.dist(g);if(e>2*f){let t=m.add(g.sub(m)._mult(f/e)._round());this.updateDistance(m,t),this.addCurrentVertex(t,v,0,0,p),m=t;}}}}addCurrentVertex(e,t,n,r,i,a=false,o=t,s=0){let c=t.x+t.y*n,l=t.y-t.x*n,u=-t.x+t.y*r,d=-t.y-t.x*r,f=o.x+(t.x-o.x)*s,p=o.y+(t.y-o.y)*s;this.addHalfVertex(e,c,l,f,p,a,false,i),this.addHalfVertex(e,u,d,-f,-p,a,true,i),this.distance>$h/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,t,n,r,i,a,o,s));}addHalfVertex({x:e,y:t},n,r,i,a,o,s,c){let l=(this.lineClips?this.scaledDistance*($h-1):this.scaledDistance)*Qh;if(this.layoutVertexArray.emplaceBack((e<<1)+ +!!o,(t<<1)+ +!!s,Math.round(63*n)+128,Math.round(63*r)+128,(l&63)<<2,l>>6,Math.round(63*i),Math.round(63*a)),this.lineClips){let e=(this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start);this.layoutVertexArray2.emplaceBack(e,this.lineClipsArray.length);}let u=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,u,this.e2),c.primitiveLength++),s?this.e2=u:this.e1=u;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance();}hasLineDasharray(e){for(let t of e){let e=t.paint.get(`line-dasharray`);if(e&&!e.isConstant())return true}return false}addLineDashDependencies(e,t,n,r){for(let i of e){let e=i.paint.get(`line-dasharray`);if(!e||e.value.kind===`constant`)continue;let a=i.layout.get(`line-cap`).evaluate(t,{})===`round`,o={dasharray:e.value.evaluate({zoom:n-1},t,{}),round:a},s={dasharray:e.value.evaluate({zoom:n},t,{}),round:a},c={dasharray:e.value.evaluate({zoom:n+1},t,{}),round:a},l=`${o.dasharray.join(`,`)},${o.round}`,u=`${s.dasharray.join(`,`)},${s.round}`,d=`${c.dasharray.join(`,`)},${c.round}`;r.dashDependencies[l]=o,r.dashDependencies[u]=s,r.dashDependencies[d]=c,t.dashes[i.id]={min:l,mid:u,max:d};}}};K(`LineBucket`,eg,{omit:[`layers`,`patternFeatures`]});const dg=lu([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_data`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`},{name:`a_height_offset`,components:1,type:`Float32`}],4),fg=lu([{name:`a_projected_pos`,components:3,type:`Float32`}],4);lu([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);const pg=lu([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`},{name:`a_box_real`,components:2,type:`Int16`}]);lu([{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`}]);const mg=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4);lu([{name:`a_pos`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);lu([{name:`triangle`,components:3,type:`Uint16`}]),lu([{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`},{type:`Float32`,name:`heightOffset`}]);const gg=lu([{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`,name:`collisionCircleDiameter`},{type:`Uint16`,name:`textAnchorOffsetStartIndex`},{type:`Uint16`,name:`textAnchorOffsetEndIndex`},{type:`Float32`,name:`heightOffset`}]);lu([{type:`Float32`,name:`offsetX`}]),lu([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`},{type:`Int16`,name:`tileUnitDistanceFromAnchor`}]),lu([{type:`Uint16`,name:`textAnchor`},{type:`Float32`,components:2,name:`textOffset`}]);const _g=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=`unavailable`,this.pluginURL=null,this.loadScriptResolve=()=>{};}setState(e){this.pluginStatus=e.pluginStatus,this.pluginURL=e.pluginURL;}getState(){return {pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(e){if(_g.isParsed())throw Error(`RTL text plugin already registered.`);this.applyArabicShaping=e.applyArabicShaping,this.processBidirectionalText=e.processBidirectionalText,this.processStyledBidirectionalText=e.processStyledBidirectionalText,this.loadScriptResolve();}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}async syncState(e,t){if(this.isParsed())return this.getState();if(e.pluginStatus!==`loading`)return this.setState(e),e;let n=e.pluginURL,r=new Promise(e=>{this.loadScriptResolve=e;}),i=new Promise(e=>setTimeout(()=>e(),this.TIMEOUT));if(await t(n),await Promise.race([r,i]),this.isParsed()){let e={pluginStatus:`loaded`,pluginURL:n};return this.setState(e),e}throw this.setState({pluginStatus:`error`,pluginURL:``}),Error(`RTL Text Plugin failed to import scripts from ${n}`)}};function vg(e){return /[\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u077F\u07C0-\u07FA\u07FD-\u07FF\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\u1800\u1801\u1804\u1806-\u1819\u1820-\u1878\u1880-\u18AA\uA840-\uA877\uFB50-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDD00-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDEFF\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB]|\uD805[\uDE60-\uDE6C]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]|\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function yg(e){return /[\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC57-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD1F-\uDD39\uDD3F-\uDD59\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58\uDE60-\uDE9F\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF00-\uDF35\uDF39-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD85\uDD8E\uDD8F\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB-\uDEAD\uDEB0\uDEB1\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDF27\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function Sg(e){return /[\u02EA\u02EB\u2E80-\u2FDF\u2FF0-\u303F\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FD-\u30FF\u3105-\u312F\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function Cg(e){return /[\u02EA\u02EB\u1100-\u11FF\u1401-\u167F\u18B0-\u18FF\u2065\u20DD-\u20E0\u20E2-\u20E4\u2B97\u2BF0-\u2BFF\u2E50\u2E51\u2E80-\u3007\u3012\u3013\u3020-\u302F\u3031-\u30FB\u30FD-\uA4CF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7\uFFF0-\uFFF8]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|[\uD80C-\uD810\uD81C-\uD822\uD83C\uD83D\uD840-\uD87E\uD880-\uD8BE][\uDC00-\uDFFF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFFF]|\uD823[\uDC00-\uDDFF]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFF]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83E[\uDD00-\uDEFF]|[\uD87F\uD8BF][\uDC00-\uDFFD]/gim.test(String.fromCodePoint(e))}function wg(e){return /[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))}function Tg(e){return /[\r\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0600-\u0605\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DD\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0890\u0891\u0897-\u089F\u08CA-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E33-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB3-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1037\u1039-\u103E\u1056-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1084-\u1086\u108D\u109D\u1100-\u11FF\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60\u1A62\u1A65-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA960-\uA97C\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD69-\uDD6D\uDEAB\uDEAC\uDEFA-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCBD\uDCC2\uDCCD\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC2\uDDC3\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF1F\uDF22-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE84-\uDE99\uDF60-\uDF67]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6\uDF00-\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD2F]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDD63\uDD67-\uDD6A\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF\uDDEE\uDDEF\uDEE3\uDEE6\uDEEE\uDEEF\uDEF5]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDDE6-\uDDFF\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF]/.test(e)}function Eg(e){return /[\u0E01-\u0E3A\u0E40-\u0E4E\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA\u1000-\u103F\u1050-\u108F\u109A-\u109F\u1780-\u17D3\u17D7\u17DC\u17DD\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19DE\u19DF\u1A20-\u1A5E\u1A60-\u1A7C\u1AA0-\u1AAD\u1B00-\u1B4C\u1B4E-\u1B7F\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE-\uA9EF\uA9FA-\uA9FE\uAA60-\uAAC2\uAADB-\uAADF]|\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF3A\uDF3B\uDF3F-\uDF46]/gim.test(String.fromCodePoint(e))}function Dg(e,t){return /(?:[\u1039\u17D2\u1A60\u1BAB\u200D\uAAF6]|\uD802\uDE3F|\uD804[\uDD33\uDFD0]|\uD806[\uDD3E\uDE47\uDE99]|\uD807[\uDD45\uDD97\uDF42])$/.test(e)||/^\p{gc=Mc}/u.test(t)}const Og={C:`18g,1;g2,3;4nb,1`,D:`17k,1;5,1;1,1;1,5;4,d;1,7;1,2;z,2;8,g;i,12;1,2;9,1;1,1;1,2;14,3;2,1;28,9;3,f;2,4;1,1;2,3;2,6;7a,1;2,5;1,1;g,a;5,2;2,6;1,f`,R:`17m,4;1,1;1,1;5,4;l,1;14,3;1,3;g,i;12,1;2,9;1,1;1,1;2,2;1,1;o,2;2x,3;f,2;4,1;1,2;3,2;6u,j;b,1;r,3;1,1;2,2;6,1`,T:`174,b;1,1;1a,l;g,1;2t,7;2,6;2,2;1,4;bt,9;16,o;1,t;1clb,1`},kg={1569:[65152,0,0,0],1570:[65153,65154,0,0],1571:[65155,65156,0,0],1572:[65157,65158,0,0],1573:[65159,65160,0,0],1574:[65161,65162,65163,65164],1575:[65165,65166,0,0],1576:[65167,65168,65169,65170],1577:[65171,65172,0,0],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194,0,0],1584:[65195,65196,0,0],1585:[65197,65198,0,0],1586:[65199,65200,0,0],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262,0,0],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1611:[65136,0,0,65137],1612:[65138,0,0,0],1613:[65140,0,0,0],1614:[65142,0,0,65143],1615:[65144,0,0,65145],1616:[65146,0,0,65147],1617:[65148,0,0,65149],1618:[65150,0,0,65151],1649:[64336,64337,0,0],1655:[64477,0,0,0],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393,0,0],1676:[64388,64389,0,0],1677:[64386,64387,0,0],1678:[64390,64391,0,0],1681:[64396,64397,0,0],1688:[64394,64395,0,0],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415,0,0],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421,0,0],1729:[64422,64423,64424,64425],1733:[64480,64481,0,0],1734:[64473,64474,0,0],1735:[64471,64472,0,0],1736:[64475,64476,0,0],1737:[64482,64483,0,0],1739:[64478,64479,0,0],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431,0,0],1747:[64432,64433,0,0]},Ag={لآ:[65269,65270],لأ:[65271,65272],لإ:[65273,65274],لا:[65275,65276]},jg=1604,Mg=/[\u0600-\u06ff\u0750-\u077f\u0870-\u089f\u08a0-\u08ff\ufb50-\ufdff\ufe70-\ufeff]/;function Ng(e,t,n){let r=0;for(let i of e.split(`;`)){let[e,a]=i.split(`,`).map(e=>parseInt(e,36)),o=r+e;for(let e=o;e<o+a;e++)n.set(e,t);r=o+a;}}const Pg=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(Og))Ng(t,e,Pg);function Fg(e){return Pg.get(e)??`U`}function Ig(e){return e===`D`||e===`L`||e===`C`}function Lg(e){return e===`D`||e===`R`||e===`C`}function Rg(e,t,n){return e===`D`?t&&n?3:t?1:n?2:0:e===`R`?+!!t:e===`L`?n?2:0:null}function zg(e){return [...e].map(e=>{let t=e.codePointAt(0);return {codePoint:t,type:Fg(t),form:null}})}function Bg(e){let t=e.filter(e=>e.type!==`T`);for(let e=0;e<t.length;e++){let n=t[e],r=e>0&&Ig(t[e-1].type),i=e+1<t.length&&Lg(t[e+1].type);n.form=Rg(n.type,r,i);}}function Vg(e){let t=false;for(let n of e)n.type===`T`?n.form=t?3:0:t=n.form===2||n.form===3;}function Hg(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r.codePoint!==jg){t.push(r);continue}let i=n+1;for(;i<e.length&&e[i].type===`T`;)i++;let a=e[i],o=a&&Ag[String.fromCodePoint(jg,a.codePoint)];if(!o){t.push(r);continue}let s=r.form===3||r.form===1;t.push({codePoint:o[+!!s],type:`R`,form:0}),t.push(...e.slice(n+1,i)),n=i;}return t}function Ug(e){if(e.form===null)return e.codePoint;let t=kg[e.codePoint];return t&&(t[e.form]||t[0])||e.codePoint}function Wg(e){if(!Mg.test(e))return e;let t=zg(e);return Bg(t),Vg(t),Hg(t).map(e=>String.fromCodePoint(Ug(e))).join(``)}function Gg(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),(_g.applyArabicShaping??Wg)(e)}function Kg(e,t,n){for(let r of e.sections)r.text=Gg(r.text,t,n);return e}function qg(e,t,n){let r=n?t.last.points:t.first.points,i=n?r[r.length-1]:r[0];return `${e}:${i.x}:${i.y}`}function Jg(e){let t=e.first.points,n=t.length;for(let t=e.first.next;t;t=t.next)n+=t.points.length-1;let r=Array(n);for(let e=0;e<t.length;e++)r[e]=t[e];let i=t.length;for(let t=e.first.next;t;t=t.next){let e=t.points;for(let t=1;t<e.length;t++)r[i++]=e[t];}return r}function Yg(e,t,n,r,i){let a=t[n];delete t[n],t[r]=a;let o=e[a];return o.last.next=i.first,o.last=i.last,a}function Xg(e,t,n,r,i){let a=t[r];delete t[r],t[n]=a;let o=e[a];return i.last.next=o.first,o.first=i.first,a}function Zg(e){let t={},n={},r=[];for(let i of e){let e=i.text?i.text.toString():null,a={points:i.geometry[0],next:null},o={feature:i,first:a,last:a};if(!e){r.push(o);continue}let s=qg(e,o),c=qg(e,o,true);if(s in n&&c in t&&n[s]!==t[c]){let i=Xg(r,t,s,c,o),a=Yg(r,n,s,c,r[i]);delete t[s],delete n[c],n[qg(e,r[a],true)]=a,r[i].feature.geometry=null;}else if(s in n)Yg(r,n,s,c,o);else if(c in t)Xg(r,t,s,c,o);else {let e=r.push(o)-1;t[s]=e,n[c]=e;}}let i=[];for(let e of r){let t=e.feature;t.geometry&&(e.first.next&&(t.geometry[0]=Jg(e)),i.push(t));}return i}const Qg=typeof Intl<`u`&&`Segmenter`in Intl;let $g,e_;function t_(e){if(!Qg||!Tg(e))return [...e];$g??=new Intl.Segmenter(void 0,{granularity:`grapheme`});let t=[];for(let{segment:n}of $g.segment(e)){let e=t.length-1;e>=0&&Dg(t[e],n)?t[e]+=n:t.push(n);}return t}function n_(e){let t=/* @__PURE__ */ new Set;if(Qg){e_??=new Intl.Segmenter(void 0,{granularity:`word`});for(let{index:n}of e_.segment(e))t.add(n);return t}let n=0;for(let r of e.split(/\b|(?=\p{Ideo})/u))t.add(n),n+=r.length;return t}function r_(e){let t=e.codePointAt(0);return e.length>(t>65535?2:1)}function i_(e){return /\s/u.test(String.fromCodePoint(e))}function a_(e){return /[\p{P}\p{S}]/u.test(String.fromCodePoint(e))}function o_(e){for(let t of e)if(Cg(t.codePointAt(0)))return true;return false}function s_(e){for(let t of e)if(!c_(t.codePointAt(0)))return false;return true}function c_(e){return !vg(e)}function l_(e){return !(Cg(e)||wg(e))}function u_(e){return /\p{sc=Arab}/u.test(String.fromCodePoint(e))}function d_(e){return yg(e)}function f_(e){for(let t of e)if(d_(t.codePointAt(0)))return true;return false}const p_={"!":`︕`,"#":`#`,$:`$`,"%":`%`,"&":`&`,"(":`︵`,")":`︶`,"*":`*`,"+":`+`,",":`︐`,"-":`︲`,".":`・`,"/":`/`,":":`︓`,";":`︔`,"<":`︿`,"=":`=`,">":`﹀`,"?":`︖`,"@":`@`,"[":`﹇`,"\\":`\`,"]":`﹈`,"^":`^`,_:`︳`,"`":```,"{":`︷`,"|":`―`,"}":`︸`,"~":`~`,"¢":`¢`,"£":`£`,"¥":`¥`,"¦":`¦`,"¬":`¬`,"¯":` ̄`,"–":`︲`,"—":`︱`,"‘":`﹃`,"’":`﹄`,"“":`﹁`,"”":`﹂`,"…":`︙`,"⋯":`︙`,"‧":`・`,"₩":`₩`,"、":`︑`,"。":`︒`,"〈":`︿`,"〉":`﹀`,"《":`︽`,"》":`︾`,"「":`﹁`,"」":`﹂`,"『":`﹃`,"』":`﹄`,"【":`︻`,"】":`︼`,"〔":`︹`,"〕":`︺`,"〖":`︗`,"〗":`︘`,"!":`︕`,"(":`︵`,")":`︶`,",":`︐`,"-":`︲`,".":`・`,":":`︓`,";":`︔`,"<":`︿`,">":`﹀`,"?":`︖`,"[":`﹇`,"]":`﹈`,"_":`︳`,"{":`︷`,"|":`―`,"}":`︸`,"⦅":`︵`,"⦆":`︶`,"。":`︒`,"「":`﹁`,"」":`﹂`};function m_(e){let t=``,n={premature:true,value:void 0},r=e[Symbol.iterator](),i=r.next(),a=e[Symbol.iterator]();a.next();let o=a.next();for(;!i.done;)(o.done||!l_(o.value.codePointAt(0))||p_[o.value])&&(n.premature||!l_(n.value.codePointAt(0))||p_[n.value])&&p_[i.value]?t+=p_[i.value]:t+=i.value,n={value:i.value,premature:false},i=r.next(),o=a.next();return t}const h_={10:true,13:true,32:true,38:true,41:true,43:true,45:true,47:true,173:true,183:true,8203:true,8208:true,8211:true,8231:true},g_={40:true};function __(e,t,n,r,i,a){if(`fontStack`in t){let r=n[t.fontStack]?.default,a=r?.[e];if(a)return a.metrics.advance*t.scale+i;let o=0;for(let n of e){let e=r?.[n];e&&(o+=e.metrics.advance*t.scale+i);}return o}{let e=r[t.imageName];return e?e.displaySize[0]*t.scale*24/a+i:0}}function v_(e,t,n,r){let i=(e-t)**2;return r?e<t?i/2:i*2:i+Math.abs(n)*n}function y_(e){return /^\s+$/u.test(e)}function b_(e,t,n){let r=0;return (e===10||e===13)&&(r-=1e4),n&&(r+=150),(e===40||e===65288)&&(r+=50),(t===41||t===65289)&&(r+=50),r}function x_(e,t,n,r,i,a){let o=null,s=v_(t,n,i,a);for(let e of r){let r=v_(t-e.x,n,i,a)+e.badness;r<=s&&(o=e,s=r);}return {index:e,x:t,priorBreak:o,badness:s}}function S_(e){return e?S_(e.priorBreak).concat(e.index):[]}var C_=class e{constructor(e=``,t=[],n=[]){this.text=e,this.sections=t,this.sectionIndex=n,this.imageSectionID=null,this.cachedGraphemes=null;}graphemes(){return this.cachedGraphemes??=t_(this.text),this.cachedGraphemes}static fromFeature(t,n,r,i){let a=new e;for(let e of t.sections)e.image?a.addImageSection(e):a.addTextSection(e,n);return r&&a.verticalizePunctuation(i),a}length(){return this.graphemes().length}getSection(e){return this.sections[this.sectionIndex[e]]}getSectionIndex(e){return this.sectionIndex[e]}verticalizePunctuation(e={},t){let n=m_(this.text),r=0;this.cachedGraphemes=this.graphemes().map((i,a)=>{let o=n.slice(r,r+i.length);r+=i.length;let s=this.getSection(a);return t?.[a]!==false&&`fontStack`in s&&e[s.fontStack]?.vertical?.[i]?i:o}),this.text=this.cachedGraphemes.join(``);}hasZeroWidthSpaces(){return this.text.includes(``)}trim(){let e=this.graphemes(),t=0;for(;t<e.length&&y_(e[t]);)t++;let n=e.length;for(;n>t&&y_(e[n-1]);)n--;this.text=e.slice(t,n).join(``),this.sectionIndex=this.sectionIndex.slice(t,n),this.cachedGraphemes=null;}substring(t,n){let r=this.graphemes().slice(t,n).join(``),i=this.sectionIndex.slice(t,n);return new e(r,this.sections,i)}toCodeUnitIndex(e){return this.graphemes().slice(0,e).join(``).length}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,t)=>Math.max(e,this.sections[t].scale),0)}getMaxImageSize(e){let t=0,n=0;for(let r=0;r<this.length();r++){let i=this.getSection(r);if(`imageName`in i){let r=e[i.imageName];if(!r)continue;let a=r.displaySize;t=Math.max(t,a[0]),n=Math.max(n,a[1]);}}return {maxImageWidth:t,maxImageHeight:n}}_appendSection(e,t){let n=this.graphemes(),r=n.length>0?n[n.length-1]:``,i=t_(r+e);this.text+=e,this.cachedGraphemes=n.slice(0,r?-1:void 0).concat(i);let a=i.length-+!!r;for(let e=0;e<a;e++)this.sectionIndex.push(t);}addTextSection(e,t){this.sections.push({scale:e.scale||1,verticalAlign:e.verticalAlign||`bottom`,fontStack:e.fontStack||t}),this._appendSection(e.text,this.sections.length-1);}addImageSection(e){let t=e.image?e.image.name:``;if(t.length===0){L$1(`Can't add FormattedSection with an empty image.`);return}let n=this.getNextImageSectionCharCode();n?(this.sections.push({scale:1,verticalAlign:e.verticalAlign||`bottom`,imageName:t}),this._appendSection(String.fromCharCode(n),this.sections.length-1)):L$1(`Reached maximum number of images 6401`);}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,t,n,r,i){let a=this.determineTotalWidth(e,n,r,i);if(e>=0&&a>0&&a<=t&&!/[\n\r]/.test(this.text))return [this.length()];let o=[],s=a/Math.max(1,Math.ceil(a/t)),c=this.hasZeroWidthSpaces(),l=this.graphemes(),u=null,d=0,f=0;for(let t=0;t<l.length;t++){let a=l[t];if(t>0){let e=l[t-1].codePointAt(0),n=a.codePointAt(0),r=Sg(e),i=Eg(e)&&Eg(n);(h_[e]||r||`imageName`in this.getSection(t-1)||l[t+1]!==void 0&&g_[n]||i&&(u??=n_(this.text)).has(f))&&o.push(x_(t,d,s,o,b_(e,n,r&&c),false));}i_(a.codePointAt(0))||(d+=__(a,this.getSection(t),n,r,e,i)),f+=a.length;}return S_(x_(this.length(),d,s,o,0,true))}determineTotalWidth(e,t,n,r){let i=0,a=0;for(let o of this.graphemes()){let s=this.getSection(a);i+=__(o,s,t,n,e,r),a++;}return i}};function w_(){return (function(e){var t={R:`13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73`,EN:`1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9`,ES:`17,2,6dp+1,f+1,av,16vr,mx+1,4o,2`,ET:`z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj`,AN:`16o+5,2j+9,2+1,35,ed,1ff2+9,87+u`,CS:`18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b`,B:`a,3,f+2,2v,690`,S:`9,2,k`,WS:`c,k,4f4,1vk+a,u,1j,335`,ON:`x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i`,BN:`0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1`,NSM:`lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n`,AL:`16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d`,LRO:`6ct`,RLO:`6cu`,LRE:`6cq`,RLE:`6cr`,PDF:`6cs`,LRI:`6ee`,RLI:`6ef`,FSI:`6eg`,PDI:`6eh`},n={},r={};n.L=1,r[1]=`L`,Object.keys(t).forEach(function(e,t){n[e]=1<<t+1,r[n[e]]=e;}),Object.freeze(n);var i=n.LRI|n.RLI|n.FSI,a=n.L|n.R|n.AL,o=n.B|n.S|n.WS|n.ON|n.FSI|n.LRI|n.RLI|n.PDI,s=n.BN|n.RLE|n.LRE|n.RLO|n.LRO|n.PDF,c=n.S|n.WS|n.B|i|n.PDI|s,l=null;function u(){if(!l){l=/* @__PURE__ */ new Map;var e=0;for(var r in t)if(t.hasOwnProperty(r))for(var i=t[r],a=``,o=void 0,s=false,c=0,u=0;u<=i.length+1;u+=1){var d=i[u];if(d!==`,`&&u!==i.length)d===`+`?(s=true,c=e=c+parseInt(a,36),a=``):a+=d;else {s?o=e+parseInt(a,36):(c=e=c+parseInt(a,36),o=e),s=false,a=``,c=o;for(var f=e;f<o+1;f+=1)l.set(f,n[r]);}}}}function d(e){return u(),l.get(e.codePointAt(0))||n.L}function f(e){return r[d(e)]}var p={pairs:`14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1`,canonical:`6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye`};function m(e,t){var n=0,r=/* @__PURE__ */ new Map,i=t&&/* @__PURE__ */ new Map,a;return e.split(`,`).forEach(function e(o){if(o.indexOf(`+`)!==-1)for(var s=+o;s--;)e(a);else {a=o;var c=o.split(`>`),l=c[0],u=c[1];l=String.fromCodePoint(n+=parseInt(l,36)),u=String.fromCodePoint(n+=parseInt(u,36)),r.set(l,u),t&&i.set(u,l);}}),{map:r,reverseMap:i}}var h,g,_;function v(){if(!h){var e=m(p.pairs,true),t=e.map,n=e.reverseMap;h=t,g=n,_=m(p.canonical,false).map;}}function y(e){return v(),h.get(e)||null}function b(e){return v(),g.get(e)||null}function x(e){return v(),_.get(e)||null}var S=n.L,C=n.R,w=n.EN,T=n.ES,E=n.ET,D=n.AN,O=n.CS,k=n.B,A=n.S,j=n.ON,ee=n.BN,te=n.NSM,ne=n.AL,re=n.LRO,ie=n.RLO,ae=n.LRE,oe=n.RLE,se=n.PDF,ce=n.LRI,le=n.RLI,ue=n.FSI,de=n.PDI;function fe(e,t){for(var n=125,r=new Uint32Array(e.length),l=0;l<e.length;l++)r[l]=d(e[l]);var u=/* @__PURE__ */ new Map;function f(e,t){var n=r[e];r[e]=t,u.set(n,u.get(n)-1),n&o&&u.set(o,u.get(o)-1),u.set(t,(u.get(t)||0)+1),t&o&&u.set(o,(u.get(o)||0)+1);}for(var p=new Uint8Array(e.length),m=/* @__PURE__ */ new Map,h=[],g=null,_=0;_<e.length;_++)g||h.push(g={start:_,end:e.length-1,level:t===`rtl`?1:t===`ltr`?0:rn(_,false)}),r[_]&k&&(g.end=_,g=null);for(var v=oe|ae|ie|re|i|de|se|k,fe=function(e){return e+(e&1?1:2)},pe=function(e){return e+(e&1?2:1)},me=0;me<h.length;me++){g=h[me];var he=[{_level:g.level,_override:0,_isolate:0}],ge=void 0,M=0,_e=0,ve=0;u.clear();for(var ye=g.start;ye<=g.end;ye++){var be=r[ye];if(ge=he[he.length-1],u.set(be,(u.get(be)||0)+1),be&o&&u.set(o,(u.get(o)||0)+1),be&v){if(be&(oe|ae)){p[ye]=ge._level;var xe=(be===oe?pe:fe)(ge._level);xe<=n&&!M&&!_e?he.push({_level:xe,_override:0,_isolate:0}):M||_e++;}else if(be&(ie|re)){p[ye]=ge._level;var Se=(be===ie?pe:fe)(ge._level);Se<=n&&!M&&!_e?he.push({_level:Se,_override:be&ie?C:S,_isolate:0}):M||_e++;}else if(be&i){be&ue&&(be=rn(ye+1,true)===1?le:ce),p[ye]=ge._level,ge._override&&f(ye,ge._override);var Ce=(be===le?pe:fe)(ge._level);Ce<=n&&M===0&&_e===0?(ve++,he.push({_level:Ce,_override:0,_isolate:1,_isolInitIndex:ye})):M++;}else if(be&de){if(M>0)M--;else if(ve>0){for(_e=0;!he[he.length-1]._isolate;)he.pop();var we=he[he.length-1]._isolInitIndex;we!=null&&(m.set(we,ye),m.set(ye,we)),he.pop(),ve--;}ge=he[he.length-1],p[ye]=ge._level,ge._override&&f(ye,ge._override);}else be&se?(M===0&&(_e>0?_e--:!ge._isolate&&he.length>1&&(he.pop(),ge=he[he.length-1])),p[ye]=ge._level):be&k&&(p[ye]=g.level);}else p[ye]=ge._level,ge._override&&be!==ee&&f(ye,ge._override);}for(var Te=[],Ee=null,De=g.start;De<=g.end;De++){var Oe=r[De];if(!(Oe&s)){var ke=p[De],Ae=Oe&i,je=Oe===de;Ee&&ke===Ee._level?(Ee._end=De,Ee._endsWithIsolInit=Ae):Te.push(Ee={_start:De,_end:De,_level:ke,_startsWithPDI:je,_endsWithIsolInit:Ae});}}for(var Me=[],Ne=0;Ne<Te.length;Ne++){var Pe=Te[Ne];if(!Pe._startsWithPDI||Pe._startsWithPDI&&!m.has(Pe._start)){for(var Fe=[Ee=Pe],Ie=void 0;Ee&&Ee._endsWithIsolInit&&(Ie=m.get(Ee._end))!=null;)for(var Le=Ne+1;Le<Te.length;Le++)if(Te[Le]._start===Ie){Fe.push(Ee=Te[Le]);break}for(var Re=[],ze=0;ze<Fe.length;ze++)for(var Be=Fe[ze],Ve=Be._start;Ve<=Be._end;Ve++)Re.push(Ve);for(var He=p[Re[0]],Ue=g.level,We=Re[0]-1;We>=0;We--)if(!(r[We]&s)){Ue=p[We];break}var Ge=Re[Re.length-1],Ke=p[Ge],qe=g.level;if(!(r[Ge]&i)){for(var Je=Ge+1;Je<=g.end;Je++)if(!(r[Je]&s)){qe=p[Je];break}}Me.push({_seqIndices:Re,_sosType:Math.max(Ue,He)%2?C:S,_eosType:Math.max(qe,Ke)%2?C:S});}}for(var Ye=0;Ye<Me.length;Ye++){var Xe=Me[Ye],N=Xe._seqIndices,Ze=Xe._sosType,Qe=Xe._eosType,$e=p[N[0]]&1?C:S;if(u.get(te))for(var et=0;et<N.length;et++){var tt=N[et];if(r[tt]&te){for(var P=Ze,nt=et-1;nt>=0;nt--)if(!(r[N[nt]]&s)){P=r[N[nt]];break}f(tt,P&(i|de)?j:P);}}if(u.get(w))for(var rt=0;rt<N.length;rt++){var it=N[rt];if(r[it]&w)for(var at=rt-1;at>=-1;at--){var ot=at===-1?Ze:r[N[at]];if(ot&a){ot===ne&&f(it,D);break}}}if(u.get(ne))for(var st=0;st<N.length;st++){var ct=N[st];r[ct]&ne&&f(ct,C);}if(u.get(T)||u.get(O))for(var lt=1;lt<N.length-1;lt++){var ut=N[lt];if(r[ut]&(T|O)){for(var dt=0,ft=0,pt=lt-1;pt>=0&&(dt=r[N[pt]],dt&s);pt--);for(var mt=lt+1;mt<N.length&&(ft=r[N[mt]],ft&s);mt++);dt===ft&&(r[ut]===T?dt===w:dt&(w|D))&&f(ut,dt);}}if(u.get(w)){for(var ht=0;ht<N.length;ht++)if(r[N[ht]]&w){for(var gt=ht-1;gt>=0&&r[N[gt]]&(E|s);gt--)f(N[gt],w);for(ht++;ht<N.length&&r[N[ht]]&(E|s|w);ht++)r[N[ht]]!==w&&f(N[ht],w);}}if(u.get(E)||u.get(T)||u.get(O))for(var _t=0;_t<N.length;_t++){var vt=N[_t];if(r[vt]&(E|T|O)){f(vt,j);for(var yt=_t-1;yt>=0&&r[N[yt]]&s;yt--)f(N[yt],j);for(var bt=_t+1;bt<N.length&&r[N[bt]]&s;bt++)f(N[bt],j);}}if(u.get(w))for(var xt=0,St=Ze;xt<N.length;xt++){var Ct=N[xt],F=r[Ct];F&w?St===S&&f(Ct,S):F&a&&(St=F);}if(u.get(o)){for(var wt=C|w|D,I=wt|S,Tt=[],Et=[],Dt=0;Dt<N.length;Dt++)if(r[N[Dt]]&o){var Ot=e[N[Dt]],kt=void 0;if(y(Ot)!==null){if(Et.length<63)Et.push({char:Ot,seqIndex:Dt});else break}else if((kt=b(Ot))!==null)for(var At=Et.length-1;At>=0;At--){var jt=Et[At].char;if(jt===kt||jt===b(x(Ot))||y(x(jt))===Ot){Tt.push([Et[At].seqIndex,Dt]),Et.length=At;break}}}Tt.sort(function(e,t){return e[0]-t[0]});for(var Mt=0;Mt<Tt.length;Mt++){for(var Nt=Tt[Mt],Pt=Nt[0],Ft=Nt[1],It=false,Lt=0,L=Pt+1;L<Ft;L++){var Rt=N[L];if(r[Rt]&I){It=true;var zt=r[Rt]&wt?C:S;if(zt===$e){Lt=zt;break}}}if(It&&!Lt){Lt=Ze;for(var Bt=Pt-1;Bt>=0;Bt--){var Vt=N[Bt];if(r[Vt]&I){var Ht=r[Vt]&wt?C:S;Lt=Ht===$e?$e:Ht;break}}}if(Lt){if(r[N[Pt]]=r[N[Ft]]=Lt,Lt!==$e){for(var Ut=Pt+1;Ut<N.length;Ut++)if(!(r[N[Ut]]&s)){d(e[N[Ut]])&te&&(r[N[Ut]]=Lt);break}}if(Lt!==$e){for(var Wt=Ft+1;Wt<N.length;Wt++)if(!(r[N[Wt]]&s)){d(e[N[Wt]])&te&&(r[N[Wt]]=Lt);break}}}}for(var Gt=0;Gt<N.length;Gt++)if(r[N[Gt]]&o){for(var Kt=Gt,qt=Gt,Jt=Ze,Yt=Gt-1;Yt>=0;Yt--)if(r[N[Yt]]&s)Kt=Yt;else {Jt=r[N[Yt]]&wt?C:S;break}for(var Xt=Qe,Zt=Gt+1;Zt<N.length;Zt++)if(r[N[Zt]]&(o|s))qt=Zt;else {Xt=r[N[Zt]]&wt?C:S;break}for(var Qt=Kt;Qt<=qt;Qt++)r[N[Qt]]=Jt===Xt?Jt:$e;Gt=qt;}}}for(var $t=g.start;$t<=g.end;$t++){var en=p[$t],tn=r[$t];if(en&1?tn&(S|w|D)&&p[$t]++:tn&C?p[$t]++:tn&(D|w)&&(p[$t]+=2),tn&s&&(p[$t]=$t===0?g.level:p[$t-1]),$t===g.end||d(e[$t])&(A|k))for(var nn=$t;nn>=0&&d(e[nn])&c;nn--)p[nn]=g.level;}}return {levels:p,paragraphs:h};function rn(t,n){for(var a=t;a<e.length;a++){var o=r[a];if(o&(C|ne))return 1;if(o&(k|S)||n&&o===de)return 0;if(o&i){var s=an(a);a=s===-1?e.length:s;}}return 0}function an(t){for(var n=1,a=t+1;a<e.length;a++){var o=r[a];if(o&k)break;if(o&de){if(--n===0)return a}else o&i&&n++;}return -1}}var pe=`14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1`,me;function he(){if(!me){var e=m(pe,true),t=e.map;e.reverseMap.forEach(function(e,n){t.set(n,e);}),me=t;}}function ge(e){return he(),me.get(e)||null}function M(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);for(var a=/* @__PURE__ */ new Map,o=n;o<=r;o++)if(t[o]&1){var s=ge(e[o]);s!==null&&a.set(o,s);}return a}function _e(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);var a=[];return t.paragraphs.forEach(function(i){var o=Math.max(n,i.start),s=Math.min(r,i.end);if(o<s){for(var l=t.levels.slice(o,s+1),u=s;u>=o&&d(e[u])&c;u--)l[u]=i.level;for(var f=i.level,p=1/0,m=0;m<l.length;m++){var h=l[m];h>f&&(f=h),h<p&&(p=h|1);}for(var g=f;g>=p;g--)for(var _=0;_<l.length;_++)if(l[_]>=g){for(var v=_;_+1<l.length&&l[_+1]>=g;)_++;_>v&&a.push([v+o,_+o]);}}}),a}function ve(e,t,n,r){var i=ye(e,t,n,r),a=[].concat(e);return i.forEach(function(n,r){a[r]=(t.levels[n]&1?ge(e[n]):null)||e[n];}),a.join(``)}function ye(e,t,n,r){for(var i=_e(e,t,n,r),a=[],o=0;o<e.length;o++)a[o]=o;return i.forEach(function(e){for(var t=e[0],n=e[1],r=a.slice(t,n+1),i=r.length;i--;)a[n-i]=r[i];}),a}return e.closingToOpeningBracket=b,e.getBidiCharType=d,e.getBidiCharTypeName=f,e.getCanonicalBracket=x,e.getEmbeddingLevels=fe,e.getMirroredCharacter=ge,e.getMirroredCharactersMap=M,e.getReorderSegments=_e,e.getReorderedIndices=ye,e.getReorderedString=ve,e.openingToClosingBracket=y,Object.defineProperty(e,"__esModule",{value:true}),e})({})}const T_=w_(),E_=/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/,D_=/* @__PURE__ */ new Set([`WS`,`FSI`,`LRI`,`RLI`,`PDI`]),O_=/* @__PURE__ */ new Set([`S`,`B`]);function k_(e,t,n,r){let i=[],a=n;for(let o of t_(e.slice(n,r)))i.push({index:a,text:o,level:t[a]}),a+=o.length;return i}function A_(e,t){let n=true;for(let r=e.length-1;r>=0;r--){let i=T_.getBidiCharTypeName(e[r].text[0]);O_.has(i)?(e[r].level=t,n=true):n&&D_.has(i)?e[r].level=t:n=false;}}function j_(e,t){let n=t,r=1/0;for(let{level:t}of e)t>n&&(n=t),(t|1)<r&&(r=t|1);let i=e.slice();for(let e=n;e>=r;e--)for(let t=0;t<i.length;t++){if(i[t].level<e)continue;let n=t;for(;n+1<i.length&&i[n+1].level>=e;)n++;for(let e=t,r=n;e<r;e++,r--)[i[e],i[r]]=[i[r],i[e]];t=n;}return i}function M_(e){return e.level%2==0?e.text:T_.getMirroredCharacter(e.text)??e.text}function N_(e,t){return e.find(e=>t>=e.start&&t<=e.end)?.level??0}function P_(e,t,n,r,i){let a=k_(e,t,r,i);A_(a,n);let o=``,s=[];for(let e of j_(a,n)){if(E_.test(e.text))continue;let t=M_(e);o+=t,s.push(...Array(t.length).fill(e.index));}return {text:o,sourceIndices:s}}function F_(e,t){let n=t.filter(t=>t>0&&t<e.length),r=[.../* @__PURE__ */ new Set([0,...n,e.length])].sort((e,t)=>e-t),i=[];for(let e=0;e+1<r.length;e++)i.push([r[e],r[e+1]]);return i}function I_(e,t){let{levels:n,paragraphs:r}=T_.getEmbeddingLevels(e);return F_(e,t.concat(r.map(e=>e.start))).map(([t,i])=>P_(e,n,N_(r,t),t,i))}function L_(e,t){return I_(e,t).map(e=>e.text)}function R_(e,t,n){return I_(e,n).map(e=>[e.text,e.sourceIndices.map(e=>t[e]??0)])}const z_=4294967296,B_=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`);var V_=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length;}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,true);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,true);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getUint32(this.pos+4,true)*z_;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getInt32(this.pos+4,true)*z_;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,true);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,true);return this.pos+=8,e}readVarint(e){let t=this.buf,n=t[this.pos++];if(n<128)return n;let r=n&127,i;return 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,H_(r,e,this))}readSVarint(){let e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return !!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&B_?B_.decode(this.buf.subarray(t,e)):W_(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos<n;)e.push(this.readVarint(t));return e}readPackedSVarint(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFloat());return e}readPackedDouble(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}nextField(e=this.length){if(this.pos===this._valueStart&&this.skip(this.type),this.pos>=e)return 0;let t=this.readVarint();return this.type=t&7,this._valueStart=this.pos,t>>>3}skip(e){let t=e&7;if(t===0)for(;this.buf[this.pos++]>127;);else if(t===2)this.pos=this.readVarint()+this.pos;else if(t===5)this.pos+=4;else if(t===1)this.pos+=8;else throw Error(`Unimplemented type: ${t}`)}};function H_(e,t,n){let r=n.buf,i,a;if(a=r[n.pos++],i=(a&112)>>4,a<128||(a=r[n.pos++],i|=(a&127)<<3,a<128)||(a=r[n.pos++],i|=(a&127)<<10,a<128)||(a=r[n.pos++],i|=(a&127)<<17,a<128)||(a=r[n.pos++],i|=(a&127)<<24,a<128)||(a=r[n.pos++],i|=(a&1)<<31,a<128))return U_(e,i,t);throw Error(`Expected varint not more than 10 bytes`)}function U_(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function W_(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function Y_(e){return typeof e?.renderWithWebGL==`function`}function Z_(e){let t=0,n=0;for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort((e,t)=>t.h-e.h);let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();t&&e<r.length&&(r[e]=t);}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return {w:i,h:a,fill:t/(i*a)||0}}var Q_=class{constructor(e,{pixelRatio:t,version:n,isWebGLImage:r=false,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n,this.needsFirstWebGLRender=r,this.textFitWidth=s,this.textFitHeight=c;}get tl(){return [this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}},$_=class{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[],this.patchedUpdateVersion=-1;let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=Z_(i),s=new Jf({width:a||1,height:o||1});for(let t in e){let r=e[t];if(r.isWebGLImage)continue;let i=n[t].paddedRect;Jf.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data);}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),Jf.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),Jf.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),Jf.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l});}this.image=s,this.iconPositions=n,this.patternPositions=r;}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new Q_(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r);}}patchUpdatedImages(e,t){if(e.dispatchRenderCallbacks(this.haveRenderCallbacks),this.patchedUpdateVersion!==e.updateVersion){this.patchedUpdateVersion=e.updateVersion;for(let n in this.iconPositions)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t);for(let n in this.patternPositions)this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t);}}patchUpdatedImage(e,t,n){if(!e||!t||!e.needsFirstWebGLRender&&e.version===t.version)return;e.needsFirstWebGLRender=false,e.version=t.version;let[r,i]=e.tl,a=t.userImage?.data;if(!Y_(a)){n.update(t.data,void 0,{x:r,y:i});return}let{width:o,height:s}=t.data;n.context.setCustomLayerDefaults(),a.renderWithWebGL({gl:n.context.gl,texture:n.texture,x:r,y:i,width:o,height:s}),n.context.setDirty();}};K(`ImagePosition`,Q_),K(`ImageAtlas`,$_);var ev=/* @__PURE__ */ function(e){return e[e.none=0]=`none`,e[e.horizontal=1]=`horizontal`,e[e.vertical=2]=`vertical`,e[e.horizontalOnly=3]=`horizontalOnly`,e}(ev||{});function tv(e){for(let t of e)if(t.positionedGlyphs.length!==0)return false;return true}function nv(e,t){let n=[],r=0;for(let i of t)n.push(e.substring(r,i)),r=i;return r<e.length()&&n.push(e.substring(r,e.length())),n}const rv=/^\p{gc=M}$/u;function iv(e){let t=[],n=0;for(;n<e.length;){if(!rv.test(e[n])){t.push(n),n++;continue}let r=n;for(;r<e.length&&rv.test(e[r]);)r++;let i=e[r];if(i!==void 0&&d_(i.codePointAt(0))){t.push(r);for(let e=r-1;e>=n;e--)t.push(e);n=r+1;}else {for(let e=n;e<r;e++)t.push(e);n=r;}}return t}function av(e){let t=[],n=0;for(let r of e.graphemes())t.push(...Array(r.length).fill(e.sectionIndex[n])),n++;return t}function ov(e,t){let n=t.map(t=>e.toCodeUnitIndex(t)),r=_g.isParsed()?_g:null;if(e.sections.length===1)return r?r.processBidirectionalText(e.toString(),n).map(t=>lv(t,e.sections,[...t].map(()=>0))):L_(e.toString(),n).map(t=>sv([...t],e.sections,[...t].map(()=>0)));let i=av(e);return r?r.processStyledBidirectionalText(e.text,i,n).map(([t,n])=>lv(t,e.sections,n)):R_(e.text,i,n).map(([t,n])=>{let r=[...t];return sv(r,e.sections,cv(r).map(e=>n[e]??0))})}function sv(e,t,n){let r=new C_(e.join(``),t,[]),i=0;for(let e of r.graphemes())r.sectionIndex.push(n[i]??0),i+=[...e].length;return r}function cv(e){let t=[],n=0;for(let r of e)t.push(n),n+=r.length;return t}function lv(e,t,n){let r=[...e],i=cv(r),a=iv(r);return sv(a.map(e=>r[e]),t,a.map(e=>n[i[e]]??0))}function uv(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=C_.fromFeature(e,i,d===2,t),g=h.determineLineBreaks(l,a,t,r,p),_=f_(h.text)?ov(h,g):nv(h,g),v=[],y={positionedLines:v,text:h.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:d,iconsInText:false,verticalizable:false};return wv(y,t,n,r,_,o,s,c,d,l,f,m),!tv(v)&&y}function dv(e){let t=.5,n=.5;switch(e){case `right`:case `top-right`:case `bottom-right`:t=1;break;case `left`:case `top-left`:case `bottom-left`:t=0;}switch(e){case `bottom`:case `bottom-right`:case `bottom-left`:n=1;break;case `top`:case `top-right`:case `top-left`:n=0;}return {horizontalAlign:t,verticalAlign:n}}function fv(e,t,n){let r=t.getMaxScale()*24,{maxImageWidth:i,maxImageHeight:a}=t.getMaxImageSize(e),o=Math.max(r,a*n);return {verticalLineContentWidth:Math.max(r,i*n),horizontalLineContentHeight:o}}function pv(e){switch(e){case `top`:return 0;case `center`:return .5;default:return 1}}function mv(e,t){return e?.rect?e:t?{rect:null,metrics:t.metrics}:null}function hv(e,t,n){return !(e===1||!t&&!Cg(n)||t&&(i_(n)||u_(n)))}function gv(e){return /\p{Nd}/u.test(String.fromCodePoint(e))}function _v(e){return /\p{Lu}/u.test(String.fromCodePoint(e))}function vv(e){let t=e.some(gv)&&e.every(e=>gv(e)||a_(e)),n=e.length<=3&&e.every(e=>_v(e)||gv(e));return t||n}function yv(e){return (gv(e)||_v(e))&&!u_(e)}function bv(e,t){return t?hv(2,true,e):!l_(e)||yv(e)||a_(e)}function xv(e,t,n){let r=false;for(let i=0;i<e.length;i++){if(t[i])continue;let a=p_[e[i]];if(a&&(i===0||t[i-1])&&(i===e.length-1||t[i+1])){if(t[i]=true,n[i])continue;e[i]=a,r=true;}}return r}function Sv(e,t,n){for(;t>=0&&t<e.length&&i_(e[t]);)t+=n;let r=[];for(;t>=0&&t<e.length&&!Cg(e[t])&&!i_(e[t]);)r.push(e[t]),t+=n;return !vv(r)&&!r.every(a_)&&r.some(l_)}function Cv(e,t){let n=e.graphemes().slice(),r=n.map(e=>e.codePointAt(0)),i=n.map((n,r)=>{let i=e.getSection(r);return `fontStack`in i&&!!t[i.fontStack]?.vertical?.[n]}),a=r.map(Cg),o=t=>!a[t]&&!i_(r[t])&&!(`imageName`in e.getSection(t));for(let e=0;e<r.length;e++){if(!o(e))continue;let t=e;for(;t+1<r.length&&o(t+1);)t++;let n=r.slice(e,t+1),s=vv(n),c=n.every(a_),l=c&&(Sv(r,e-1,-1)||Sv(r,t+1,1)),u=!s&&n.some(l_);for(let n=e;n<=t;n++)a[n]=s&&yv(r[n])||i[n]&&!l&&(c||!u&&!l_(r[n]));e=t;}if(i.some((e,t)=>e&&!a[t])){let n=e.text;if(e.verticalizePunctuation(t,a),e.text!==n)return Cv(e,t)}return xv(n,a,i)&&(e.text=n.join(``),e.cachedGraphemes=n),a}function wv(e,t,n,r,i,a,o,s,c,l,u,d){let f=0,p=0,m=0,h=0,g=s===`right`?1:s===`left`?0:.5,_=24/d,v=0;for(let o of i){o.trim();let i=o.getMaxScale(),s={positionedGlyphs:[],lineOffset:0};e.positionedLines[v]=s;let d=s.positionedGlyphs,y=0;if(!o.length()){p+=a,++v;continue}let b=fv(r,o,_),x=c===2&&!u?Cv(o,t):null,S=o.graphemes();for(let a=0;a<S.length;a++){let s=o.getSection(a),m=S[a],h=m.codePointAt(0),g=x?x[a]:hv(c,u,h),v=`fontStack`in s&&r_(m)&&!t[s.fontStack]?.default?.[m]?[...m]:[m];for(let c of v){let u={glyph:c.codePointAt(0),grapheme:c,imageName:null,x:f,y:p+-17,vertical:g,scale:1,fontStack:``,sectionIndex:o.getSectionIndex(a),metrics:null,rect:null},m;if(`fontStack`in s){if(m=Tv(s,c,g,b,t,n),!m)continue;u.fontStack=s.fontStack;}else {if(e.iconsInText=true,s.scale*=_,m=Ev(s,g,i,b,r),!m)continue;y=Math.max(y,m.imageOffset),u.imageName=s.imageName;}let{rect:h,metrics:v,baselineOffset:x}=m;if(u.y+=x,u.scale=s.scale,u.metrics=v,u.rect=h,d.push(u),!g)f+=v.advance*s.scale+l;else {e.verticalizable=true;let t=`imageName`in s?v.advance:24;f+=t*s.scale+l;}}}if(d.length!==0){let e=f-l;m=Math.max(e,m),Dv(d,0,d.length-1,g);}f=0;let C=(i-1)*24;s.lineOffset=Math.max(y,C);let w=a*i+y;p+=w,h=Math.max(w,h),++v;}let{horizontalAlign:y,verticalAlign:b}=dv(o);Ov(e.positionedLines,g,y,b,m,h,a,p,i.length),e.top+=-b*p,e.bottom=e.top+p,e.left+=-y*m,e.right=e.left+m;}function Tv(e,t,n,r,i,a){let o=n&&i[e.fontStack]?.vertical?.[t]?`vertical`:`default`,s=a[e.fontStack]?.[o]?.[t],c=i[e.fontStack]?.[o]?.[t],l=mv(s,c);if(l===null)return null;let u;if(n)u=r.verticalLineContentWidth-e.scale*24;else {let t=pv(e.verticalAlign);u=(r.horizontalLineContentHeight-e.scale*24)*t;}return {rect:l.rect,metrics:l.metrics,baselineOffset:u}}function Ev(e,t,n,r,i){let a=i[e.imageName];if(!a)return null;let o=a.paddedRect,s=a.displaySize,c={width:s[0],height:s[1],left:1,top:-3,advance:t?s[1]:s[0]},l;if(t)l=r.verticalLineContentWidth-s[1]*e.scale;else {let t=pv(e.verticalAlign);l=(r.horizontalLineContentHeight-s[1]*e.scale)*t;}let u=(t?s[0]:s[1])*e.scale-24*n;return {rect:o,metrics:c,baselineOffset:l,imageOffset:u}}function Dv(e,t,n,r){if(r===0)return;let i=e[n],a=i.metrics.advance*i.scale,o=(e[n].x+a)*r;for(let r=t;r<=n;r++)e[r].x-=o;}function Ov(e,t,n,r,i,a,o,s,c){let l=(t-n)*i,u=0;u=a===o?-r*c*o+.5*o:-s*r- -17;for(let t of e)for(let e of t.positionedGlyphs)e.x+=l,e.y+=u;}function kv(e,t,n){let{horizontalAlign:r,verticalAlign:i}=dv(n),a=t[0],o=t[1],s=a-e.displaySize[0]*r,c=s+e.displaySize[0],l=o-e.displaySize[1]*i;return {image:e,top:l,bottom:l+e.displaySize[1],left:s,right:c}}function Av(e){let t=e.left,n=e.top,r=e.right-t,i=e.bottom-n,a=e.image.content[2]-e.image.content[0],o=e.image.content[3]-e.image.content[1],s=e.image.textFitWidth??`stretchOrShrink`,c=e.image.textFitHeight??`stretchOrShrink`,l=a/o;if(c===`proportional`){if(s===`stretchOnly`&&r/i<l||s===`proportional`){let e=Math.ceil(i*l);t*=e/r,r=e;}}else if(s===`proportional`&&c===`stretchOnly`&&l!==0&&r/i>l){let e=Math.ceil(r/l);n*=e/i,i=e;}return {x1:t,y1:n,x2:t+r,y2:n+i}}function jv(e,t,n,r,i,a){let o=e.image,s;if(o.content){let e=o.content,t=o.pixelRatio||1;s=[e[0]/t,e[1]/t,o.displaySize[0]-e[2]/t,o.displaySize[1]-e[3]/t];}let c=t.left*a,l=t.right*a,u,d,f,p;n===`width`||n===`both`?(p=i[0]+c-r[3],d=i[0]+l+r[1]):(p=i[0]+(c+l-o.displaySize[0])/2,d=p+o.displaySize[0]);let m=t.top*a,h=t.bottom*a;return n===`height`||n===`both`?(u=i[1]+m-r[0],f=i[1]+h+r[2]):(u=i[1]+(m+h-o.displaySize[1])/2,f=u+o.displaySize[1]),{image:o,top:u,right:d,bottom:f,left:p,collisionPadding:s}}const Mv=32640;function Nv(e,t){let{expression:n}=t;if(n.kind===`constant`)return {kind:`constant`,layoutSize:n.evaluate(new Ll(e+1))};if(n.kind===`source`)return {kind:`source`};if(n.kind===`composite`){let{minZoom:t,maxZoom:r}=Pv(n.zoomStops,e);return {kind:`composite`,minZoom:t,maxZoom:r,interpolationType:n.interpolationType}}{let t=Fv(n),r=n.evaluate(new Ll(e+1));return {kind:`camera`,zoomStops:n.zoomStops,sizes:t,layoutSize:r,interpolationType:n.interpolationType}}}function Pv(e,t){let n=0;for(;n<e.length&&e[n]<=t;)n++;n=Math.max(0,n-1);let r=n;for(;r<e.length&&e[r]<t+1;)r++;return r=Math.min(e.length-1,r),{minZoom:e[n],maxZoom:e[r]}}function Fv(e){return e.zoomStops.map(t=>e.evaluate(new Ll(t===-1/0?e.zoomStops[1]-1:t)))}var Bv=class e extends u{constructor(e,t,n,r){super(e,t),this.angle=n,r!==void 0&&(this.segment=r);}clone(){return new e(this.x,this.y,this.angle,this.segment)}};K(`Anchor`,Bv);function Vv(e,t,n,r,i){if(t.segment===void 0||n===0)return true;let a=t,o=t.segment+1,s=0;for(;s>-n/2;){if(o--,o<0)return false;s-=e[o].dist(a),a=e[o];}s+=e[o].dist(e[o+1]),o++;let c=[],l=0;for(;s<n/2;){let t=e[o-1],n=e[o],a=e[o+1];if(!a)return false;let u=t.angleTo(n)-n.angleTo(a);for(u=Math.abs((u+3*Math.PI)%(Math.PI*2)-Math.PI),c.push({distance:s,angleDelta:u}),l+=u;s-c[0].distance>r;)l-=c.shift().angleDelta;if(l>i)return false;o++,s+=n.dist(a);}return true}function Hv(e){let t=0;for(let n=0;n<e.length-1;n++)t+=e[n].dist(e[n+1]);return t}function Uv(e,t,n){return e?3/5*t*n:0}function Wv(e,t){return Math.max(e?e.right-e.left:0,t?t.right-t.left:0)}function Gv(e,t,n,r,i,a){let o=Uv(n,i,a),s=Wv(n,r)*a,c=0,l=Hv(e)/2;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.dist(i);if(c+a>l){let u=(l-c)/a,d=new Bv(Ai.number(r.x,i.x,u),Ai.number(r.y,i.y,u),i.angleTo(r),n);return d._round(),!o||Vv(e,d,s,o,t)?d:void 0}c+=a;}}function Kv(e,t,n,r,i,a,o,s,c){let l=Uv(r,a,o),u=Wv(r,i),d=u*o,f=e[0].x===0||e[0].x===c||e[0].y===0||e[0].y===c;t-d<t/4&&(t=d+t/4);let p=a*2;return qv(e,f?t/2*s%t:(u/2+p)*o*s%t,t,l,n,d,f,false,c)}function qv(e,t,n,r,i,a,o,s,c){let l=a/2,u=Hv(e),d=0,f=t-n,p=[];for(let t=0;t<e.length-1;t++){let o=e[t],s=e[t+1],m=o.dist(s),h=s.angleTo(o);for(;f+n<d+m;){f+=n;let g=(f-d)/m,_=Ai.number(o.x,s.x,g),v=Ai.number(o.y,s.y,g);if(_>=0&&_<c&&v>=0&&v<c&&f-l>=0&&f+l<=u){let n=new Bv(_,v,h,t);n._round(),(!r||Vv(e,n,a,r,i))&&p.push(n);}}d+=m;}return !s&&!p.length&&!o&&(p=qv(e,d/2,n,r,i,a,o,true,c)),p}function Jv(e,t,n,r,i){let a=[];for(let o of e){let e;for(let s=0;s<o.length-1;s++){let c=o[s],l=o[s+1];c.x<t&&l.x<t||(c.x<t?c=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round():l.x<t&&(l=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round()),!(c.y<n&&l.y<n)&&(c.y<n?c=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round():l.y<n&&(l=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round()),!(c.x>=r&&l.x>=r)&&(c.x>=r?c=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round():l.x>=r&&(l=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round()),!(c.y>=i&&l.y>=i)&&(c.y>=i?c=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round():l.y>=i&&(l=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round()),(!e||!c.equals(e[e.length-1]))&&(e=[c],a.push(e)),e.push(l)))));}}return a}function Yv(e,t,n,r){let i=[],a=e.image,o=a.pixelRatio,s=a.paddedRect.w-2,c=a.paddedRect.h-2,l={x1:e.left,y1:e.top,x2:e.right,y2:e.bottom},d=a.stretchX||[[0,s]],f=a.stretchY||[[0,c]],p=(e,t)=>e+t[1]-t[0],m=d.reduce(p,0),h=f.reduce(p,0),g=s-m,_=c-h,v=0,y=m,b=0,x=h,S=0,C=g,w=0,T=_;if(a.content&&r){let t=a.content,n=t[2]-t[0],r=t[3]-t[1];(a.textFitWidth||a.textFitHeight)&&(l=Av(e)),v=Xv(d,0,t[0]),b=Xv(f,0,t[1]),y=Xv(d,t[0],t[2]),x=Xv(f,t[1],t[3]),S=t[0]-v,w=t[1]-b,C=n-y,T=r-x;}let E=l.x1,D=l.y1,O=l.x2-E,k=l.y2-D,A=(e,r,i,s)=>{let c=Qv(e.stretch-v,y,O,E),l=$v(e.fixed-S,C,e.stretch,m),d=Qv(r.stretch-b,x,k,D),f=$v(r.fixed-w,T,r.stretch,h),p=Qv(i.stretch-v,y,O,E),g=$v(i.fixed-S,C,i.stretch,m),_=Qv(s.stretch-b,x,k,D),A=$v(s.fixed-w,T,s.stretch,h),j=new u(c,d),ee=new u(p,d),te=new u(p,_),ne=new u(c,_),re=new u(l/o,f/o),ie=new u(g/o,A/o),ae=t*Math.PI/180;if(ae){let e=Math.sin(ae),t=Math.cos(ae),n=[t,-e,e,t];j._matMult(n),ee._matMult(n),ne._matMult(n),te._matMult(n);}let oe=e.stretch+e.fixed,se=i.stretch+i.fixed,ce=r.stretch+r.fixed,le=s.stretch+s.fixed;return {tl:j,tr:ee,bl:ne,br:te,tex:{x:a.paddedRect.x+1+oe,y:a.paddedRect.y+1+ce,w:se-oe,h:le-ce},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:re,pixelOffsetBR:ie,minFontScaleX:C/o/O,minFontScaleY:T/o/k,isSDF:n}};if(!r||!a.stretchX&&!a.stretchY)i.push(A({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:s+1},{fixed:0,stretch:c+1}));else {let e=Zv(d,g,m),t=Zv(f,_,h);for(let n=0;n<e.length-1;n++){let r=e[n],a=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],o=t[e+1];i.push(A(r,n,a,o));}}}return i}function Xv(e,t,n){let r=0;for(let i of e)r+=Math.max(t,Math.min(n,i[1]))-Math.max(t,Math.min(n,i[0]));return r}function Zv(e,t,n){let r=[{fixed:-1,stretch:0}];for(let[t,n]of e){let e=r[r.length-1];r.push({fixed:t-e.stretch,stretch:e.stretch}),r.push({fixed:t-e.stretch,stretch:e.stretch+(n-t)});}return r.push({fixed:t+1,stretch:n}),r}function Qv(e,t,n,r){return e/t*n+r}function $v(e,t,n,r){return e-t*n/r}function ey(e,t,n,r,i,a,o,s){let c=r.layout.get(`text-rotate`).evaluate(a,{})*Math.PI/180,l=[];for(let e of t.positionedLines)for(let r of e.positionedGlyphs){if(!r.rect)continue;let a=r.rect||{},d=4,f=true,p=1,m=0,h=(i||s)&&r.vertical,g=r.metrics.advance*r.scale/2;if(s&&t.verticalizable){let t=(r.scale-1)*24,n=(24-r.metrics.width*r.scale)/2;m=e.lineOffset/2-(r.imageName?-n:t);}if(r.imageName){let e=o[r.imageName];f=e.sdf,p=e.pixelRatio,d=1/p;}let _=i?[r.x+g,r.y]:[0,0],v=i?[0,0]:[r.x+g+n[0],r.y+n[1]-m],y=[0,0];h&&(y=v,v=[0,0]);let b=r.metrics.isDoubleResolution?2:1,x=(r.metrics.left-d)*r.scale-g+v[0],S=(-r.metrics.top-d)*r.scale+v[1],C=x+a.w/b*r.scale/p,w=S+a.h/b*r.scale/p,T=new u(x,S),E=new u(C,S),D=new u(x,w),O=new u(C,w);if(h){let e=new u(-g,g- -17),t=-Math.PI/2,n=12-g,i=r.imageName?n:0,a=new u(22-n,-i),o=new u(...y);T._rotateAround(t,e)._add(a)._add(o),E._rotateAround(t,e)._add(a)._add(o),D._rotateAround(t,e)._add(a)._add(o),O._rotateAround(t,e)._add(a)._add(o);}if(c){let e=Math.sin(c),t=Math.cos(c),n=[t,-e,e,t];T._matMult(n),E._matMult(n),D._matMult(n),O._matMult(n);}let k=new u(0,0),A=new u(0,0);l.push({tl:T,tr:E,bl:D,br:O,tex:a,writingMode:t.writingMode,glyphOffset:_,sectionIndex:r.sectionIndex,isSDF:f,pixelOffsetTL:k,pixelOffsetBR:A,minFontScaleX:0,minFontScaleY:0});}return l}var ty=class{constructor(e,t,n,r,i,a,o,s,c,l){if(this.boxStartIndex=e.length,c){let e=a.top,t=a.bottom,n=a.collisionPadding;n&&(e-=n[1],t+=n[3]);let r=t-e;r>0&&(r=Math.max(10,r),this.circleDiameter=r);}else {let c=a.image?.content&&(a.image.textFitWidth||a.image.textFitHeight)?Av(a):{x1:a.left,y1:a.top,x2:a.right,y2:a.bottom};c.y1=c.y1*o-s[0],c.y2=c.y2*o+s[2],c.x1=c.x1*o-s[3],c.x2=c.x2*o+s[1];let d=a.collisionPadding;if(d&&(c.x1-=d[0]*o,c.y1-=d[1]*o,c.x2+=d[2]*o,c.y2+=d[3]*o),l){let e=new u(c.x1,c.y1),t=new u(c.x2,c.y1),n=new u(c.x1,c.y2),r=new u(c.x2,c.y2),i=l*Math.PI/180;e._rotate(i),t._rotate(i),n._rotate(i),r._rotate(i),c.x1=Math.min(e.x,t.x,n.x,r.x),c.x2=Math.max(e.x,t.x,n.x,r.x),c.y1=Math.min(e.y,t.y,n.y,r.y),c.y2=Math.max(e.y,t.y,n.y,r.y);}e.emplaceBack(t.x,t.y,c.x1,c.y1,c.x2,c.y2,n,r,i);}this.boxEndIndex=e.length;}},ny=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};function ry(e,t=1){let n=$d.fromPoints(e[0]),r=Math.min(n.width(),n.height()),i=r/2,a=new ny([],iy),{minX:o,minY:s,maxX:c,maxY:l}=n;if(r===0)return new u(o,s);for(let t=o;t<c;t+=r)for(let n=s;n<l;n+=r)a.push(new ay(t+i,n+i,i,e));let d=sy(e),f=d;for(;a.length;){let n=a.pop();(n.d>f.d||!f.d)&&(f=n),!(n.max-f.d<=t)&&(i=n.h/2,a.push(new ay(n.p.x-i,n.p.y-i,i,e)),a.push(new ay(n.p.x+i,n.p.y-i,i,e)),a.push(new ay(n.p.x-i,n.p.y+i,i,e)),a.push(new ay(n.p.x+i,n.p.y+i,i,e)));}return d.d>0&&f.d-d.d<=t?d.p:f.p}function iy(e,t){return t.max-e.max}var ay=class{constructor(e,t,n,r){this.p=new u(e,t),this.h=n,this.d=oy(this.p,r),this.max=this.d+this.h*Math.SQRT2;}};function oy(e,t){let n=false,r=1/0;for(let i of t)for(let t=0,a=i.length,o=a-1;t<a;o=t++){let a=i[t],s=i[o];a.y>e.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(n=!n),r=Math.min(r,gf(e,a,s));}return (n?1:-1)*Math.sqrt(r)}function sy(e){let t=0,n=0,r=0,i=e[0];for(let e=0,a=i.length,o=a-1;e<a;o=e++){let a=i[e],s=i[o],c=a.x*s.y-s.x*a.y;n+=(a.x+s.x)*c,r+=(a.y+s.y)*c,t+=c*3;}return new ay(n/t,r/t,0,e)}let cy=/* @__PURE__ */ function(e){return e[e.center=1]=`center`,e[e.left=2]=`left`,e[e.right=3]=`right`,e[e.top=4]=`top`,e[e.bottom=5]=`bottom`,e[e[`top-left`]=6]=`top-left`,e[e[`top-right`]=7]=`top-right`,e[e[`bottom-left`]=8]=`bottom-left`,e[e[`bottom-right`]=9]=`bottom-right`,e}({});const ly=1/0;function uy(e,t){function n(e,t){let n=0,r=0;t<0&&(t=0);let i=t/Math.SQRT2;switch(e){case `top-right`:case `top-left`:r=i-7;break;case `bottom-right`:case `bottom-left`:r=-i+7;break;case `bottom`:r=-t+7;break;case `top`:r=t-7;}switch(e){case `top-right`:case `bottom-right`:n=-i;break;case `top-left`:case `bottom-left`:n=i;break;case `left`:n=t;break;case `right`:n=-t;}return [n,r]}function r(e,t,n){let r=0,i=0;switch(t=Math.abs(t),n=Math.abs(n),e){case `top-right`:case `top-left`:case `top`:i=n-7;break;case `bottom-right`:case `bottom-left`:case `bottom`:i=-n+7;}switch(e){case `top-right`:case `bottom-right`:case `right`:r=-t;break;case `top-left`:case `bottom-left`:case `left`:r=t;}return [r,i]}return t[1]===ly?n(e,t[0]):r(e,t[0],t[1])}function dy(e,t,n){let r=e.layout,i=r.get(`text-variable-anchor-offset`)?.evaluate(t,{},n);if(i){let e=i.values,t=[];for(let n=0;n<e.length;n+=2){let r=t[n]=e[n],i=e[n+1].map(e=>e*24);r.startsWith(`top`)?i[1]-=7:r.startsWith(`bottom`)&&(i[1]+=7),t[n+1]=i;}return new mi(t)}let a=r.get(`text-variable-anchor`);if(a){let i;i=e._unevaluatedLayout.getValue(`text-radial-offset`)===void 0?r.get(`text-offset`).evaluate(t,{},n).map(e=>e*24):[r.get(`text-radial-offset`).evaluate(t,{},n)*24,ly];let o=[];for(let e of a)o.push(e,uy(e,i));return new mi(o)}return null}function fy(e){e.bucket.createArrays();let t=512*e.bucket.overscaling;e.bucket.tilePixelRatio=P/t,e.bucket.compareText={},e.bucket.iconsNeedLinear=false;let n=e.bucket.layers[0],r=n.layout,i=n._unevaluatedLayout._values,a={layoutIconSize:i[`icon-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),layoutTextSize:i[`text-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),textMaxSize:i[`text-size`].possiblyEvaluate(new Ll(18))};if(e.bucket.textSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.textSizeData;a.compositeTextSizes=[i[`text-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`text-size`].possiblyEvaluate(new Ll(n),e.canonical)];}if(e.bucket.iconSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.iconSizeData;a.compositeIconSizes=[i[`icon-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`icon-size`].possiblyEvaluate(new Ll(n),e.canonical)];}let o=r.get(`text-line-height`)*24,s=r.get(`text-rotation-alignment`)!==`viewport`&&r.get(`symbol-placement`)!==`point`,c=r.get(`text-keep-upright`),l=r.get(`text-size`);for(let t of e.bucket.features){let i=r.get(`text-font`).evaluate(t,{},e.canonical).join(`,`),u=l.evaluate(t,{},e.canonical),d=a.layoutTextSize.evaluate(t,{},e.canonical),f=a.layoutIconSize.evaluate(t,{},e.canonical),p={horizontal:{},vertical:void 0},m=t.text,h=[0,0];if(m){let a=m.toString(),l=r.get(`text-letter-spacing`).evaluate(t,{},e.canonical)*24,f=s_(a)?l:0,g=r.get(`text-anchor`).evaluate(t,{},e.canonical),_=dy(n,t,e.canonical);if(!_){let n=r.get(`text-radial-offset`).evaluate(t,{},e.canonical);h=n?uy(g,[n*24,ly]):r.get(`text-offset`).evaluate(t,{},e.canonical).map(e=>e*24);}let v=s?`center`:r.get(`text-justify`).evaluate(t,{},e.canonical),y=r.get(`symbol-placement`)===`point`?r.get(`text-max-width`).evaluate(t,{},e.canonical)*24:1/0,b=()=>{e.bucket.allowVerticalPlacement&&o_(a)&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,`left`,f,h,2,true,d,u));};if(!s&&_){let t=/* @__PURE__ */ new Set;if(v===`auto`)for(let e=0;e<_.values.length;e+=2)t.add(py(_.values[e]));else t.add(v);let n=false;for(let r of t)if(!p.horizontal[r]){if(n)p.horizontal[r]=p.horizontal[0];else {let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,`center`,r,f,h,1,false,d,u);t&&(p.horizontal[r]=t,n=t.positionedLines.length===1);}}b();}else {v===`auto`&&(v=py(g));let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,1,false,d,u);t&&(p.horizontal[v]=t),b(),o_(a)&&s&&c&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,2,false,d,u));}}let g,_=false;if(t.icon?.name){let n=e.imageMap[t.icon.name];n&&(g=kv(e.imagePositions[t.icon.name],r.get(`icon-offset`).evaluate(t,{},e.canonical),r.get(`icon-anchor`).evaluate(t,{},e.canonical)),_=!!n.sdf,e.bucket.sdfIcons===void 0?e.bucket.sdfIcons=_:e.bucket.sdfIcons!==_&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer`),n.pixelRatio===e.bucket.pixelRatio?r.get(`icon-rotate`).constantOr(1)!==0&&(e.bucket.iconsNeedLinear=true):e.bucket.iconsNeedLinear=true);}let v=_y(p.horizontal)||p.vertical;e.bucket.iconsInText||=v?v.iconsInText:false,(v||g)&&my(e.bucket,t,p,g,e.imageMap,a,d,f,h,_,e.canonical,e.subdivisionGranularity,e.hasPromoteId);}e.showCollisionBoxes&&e.bucket.generateCollisionDebugBuffers();}function py(e){switch(e){case `right`:case `top-right`:case `bottom-right`:return `right`;case `left`:case `top-left`:case `bottom-left`:return `left`}return `center`}function my(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=a.textMaxSize.evaluate(t,{});p===void 0&&(p=o);let m=e.layers[0].layout,h=m.get(`icon-offset`).evaluate(t,{},u),g=_y(n.horizontal),_=o/24,v=e.tilePixelRatio*_,y=e.tilePixelRatio*p/24,b=e.tilePixelRatio*s,x=e.tilePixelRatio*m.get(`symbol-spacing`),S=m.get(`text-padding`)*e.tilePixelRatio,C=zy(m,t,u,e.tilePixelRatio),w=m.get(`text-max-angle`)/180*Math.PI,T=m.get(`text-rotation-alignment`)!==`viewport`&&m.get(`symbol-placement`)!==`point`,E=m.get(`icon-rotation-alignment`).constantOr(`viewport`)===`map`&&m.get(`symbol-placement`)!==`point`,D=m.get(`symbol-placement`),O=x/2,k=m.get(`icon-text-fit`),A;r&&k!==`none`&&(e.allowVerticalPlacement&&n.vertical&&(A=jv(r,n.vertical,k,m.get(`icon-text-fit-padding`),h,_)),g&&(r=jv(r,g,k,m.get(`icon-text-fit-padding`),h,_)));let j=u?d.line.getGranularityForZoomLevel(u.z):1,ee=(s,d)=>{rf(d)||vy(e,d,s,n,r,i,A,e.layers[0],e.collisionBoxArray,t.index,t.sourceLayerIndex,e.index,v,[S,S,S,S],T,c,b,C,E,h,t,a,l,u,o,f);};if(D===`line`)for(let i of Jv(t.geometry,0,0,P,P)){let t=ym(i,j),a=Kv(t,x,w,n.vertical||g,r,24,y,e.overscaling,P);for(let n of a){let r=g;(!r||!yy(e,r.text,O,n))&&ee(t,n);}}else if(D===`line-center`){for(let e of t.geometry)if(e.length>1){let t=ym(e,j),i=Gv(t,w,n.vertical||g,r,24,y);i&&ee(t,i);}}else if(t.type===`Polygon`)for(let e of Fi(t.geometry,0)){let t=ry(e,16);ee(ym(e[0],j,true),new Bv(t.x,t.y,0));}else if(t.type===`LineString`)for(let e of t.geometry){let t=ym(e,j);ee(t,new Bv(t[0].x,t[0].y,0));}else if(t.type===`Point`)for(let e of t.geometry)for(let t of e)ee([t],new Bv(t.x,t.y,0));}function hy(e,t){let n=e.length,r=t?.values;if(r?.length>0)for(let t=0;t<r.length;t+=2){let n=cy[r[t]],i=r[t+1];e.emplaceBack(n,i[0],i[1]);}return [n,e.length]}function gy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=ey(t,n,s,i,a,o,r,e.allowVerticalPlacement),_=e.textSizeData,v=null;_.kind===`source`?(v=[128*i.layout.get(`text-size`).evaluate(o,{})],v[0]>32640&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):_.kind===`composite`&&(v=[128*m.compositeTextSizes[0].evaluate(o,{},h),128*m.compositeTextSizes[1].evaluate(o,{},h)],(v[0]>32640||v[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),e.addSymbols(e.text,g,v,s,a,o,u,t,l.lineStartIndex,l.lineLength,p,h,c);for(let t of d)f[t]=e.text.placedSymbolArray.length-1;return g.length*4}function _y(e){for(let t in e)return e[t];return null}function vy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T){let E=e.addToLineVertexArray(t,n),D=s.layout.get(`symbol-height-offset`).evaluate(b,{},C);D>e.maxHeightOffset&&(e.maxHeightOffset=D);let O,k,A,j,ee=0,te=0,ne=0,re=0,ie=-1,ae=-1,oe={},se=(0, Sd.default)(``);if(e.allowVerticalPlacement&&r.vertical){let e=s.layout.get(`text-rotate`).evaluate(b,{},C)+90,n=r.vertical;A=new ty(c,t,l,u,d,n,f,p,m,e),o&&(j=new ty(c,t,l,u,d,o,g,_,m,e));}if(i){let n=s.layout.get(`icon-rotate`).evaluate(b,{}),r=s.layout.get(`icon-text-fit`)!==`none`,a=Yv(i,n,S,r),f=o?Yv(o,n,S,r):void 0;k=new ty(c,t,l,u,d,i,g,_,false,n),ee=a.length*4;let p=e.iconSizeData,m=null;p.kind===`source`?(m=[128*s.layout.get(`icon-size`).evaluate(b,{})],m[0]>32640&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):p.kind===`composite`&&(m=[128*x.compositeIconSizes[0].evaluate(b,{},C),128*x.compositeIconSizes[1].evaluate(b,{},C)],(m[0]>32640||m[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),e.addSymbols(e.icon,a,m,y,v,b,0,t,E.lineStartIndex,E.lineLength,-1,C,D),ie=e.icon.placedSymbolArray.length-1,f&&(te=f.length*4,e.addSymbols(e.icon,f,m,y,v,b,2,t,E.lineStartIndex,E.lineLength,-1,C,D),ae=e.icon.placedSymbolArray.length-1);}let ce=Object.keys(r.horizontal);for(let n of ce){let i=r.horizontal[n];O||=(se=(0, Sd.default)(i.text),new ty(c,t,l,u,d,i,f,p,m,s.layout.get(`text-rotate`).evaluate(b,{},C)));let o=i.positionedLines.length===1;if(ne+=gy(e,t,i,a,s,m,b,h,D,E,r.vertical?1:3,o?ce:[n],oe,ie,x,C),o)break}r.vertical&&(re+=gy(e,t,r.vertical,a,s,m,b,h,D,E,2,[`vertical`],oe,ae,x,C));let le=O?O.boxStartIndex:e.collisionBoxArray.length,ue=O?O.boxEndIndex:e.collisionBoxArray.length,de=A?A.boxStartIndex:e.collisionBoxArray.length,fe=A?A.boxEndIndex:e.collisionBoxArray.length,pe=k?k.boxStartIndex:e.collisionBoxArray.length,me=k?k.boxEndIndex:e.collisionBoxArray.length,he=j?j.boxStartIndex:e.collisionBoxArray.length,ge=j?j.boxEndIndex:e.collisionBoxArray.length,M=-1,_e=(e,t)=>e?.circleDiameter?Math.max(e.circleDiameter,t):t;M=_e(O,M),M=_e(A,M),M=_e(k,M),M=_e(j,M);let ve=+(M>-1);ve&&(M*=w/24),e.glyphOffsetArray.length>=e.maxGlyphs&&L$1(`Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907`),b.sortKey!==void 0&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey);let ye=dy(s,b,C),[be,xe]=hy(e.textAnchorOffsets,ye);T&&(se=by(se,b)),e.symbolInstances.emplaceBack(t.x,t.y,oe.right>=0?oe.right:-1,oe.center>=0?oe.center:-1,oe.left>=0?oe.left:-1,oe.vertical||-1,ie,ae,se,le,ue,de,fe,pe,me,he,ge,l,ne,re,ee,te,ve,0,f,M,be,xe,D);}function yy(e,t,n,r){let i=e.compareText;if(!(t in i))i[t]=[];else {let e=i[t];for(let t=e.length-1;t>=0;t--)if(r.dist(e[t])<n)return true}return i[t].push(r),false}function by(e,t){return t.id==null||t.properties?.cluster?e:(0, Sd.default)(String(t.id),e)}function xy(e,t,n){let r=`never`,i=e.get(t);return i?r=i:e.get(n)&&(r=`always`),r}const Sy=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function Cy(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=s?Math.min(Mv,Math.round(s[0])):0,h=s?Math.min(Mv,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(r*32),Math.round(i*32),a,o,(m<<1)+ +!!c,h,l*16,u*16,d*256,f*256,p);}function wy(e,t,n){e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n);}function Ty(e){for(let t of e.sections)if(f_(t.text))return true;return false}var Ey=class{constructor(e){this.layoutVertexArray=new id,this.indexArray=new dd,this.programConfigurations=e,this.segments=new gd,this.dynamicLayoutVertexArray=new ad,this.opacityVertexArray=new od,this.hasVisibleVertices=false,this.placedSymbolArray=new zu;}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,dg.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,fg.members,true),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Sy,true),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy());}};K(`SymbolBuffers`,Ey);var Dy=class{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new gd,this.collisionVertexArray=new ld;}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,pg.members,true);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy());}};K(`CollisionBuffers`,Dy);var Oy=class{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=true,this.hasRTLText=false,this.maxHeightOffset=0,this.sortKeyRanges=[],this.collisionCircleArray=[],this.maxGlyphs=65535;let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Nv(this.zoom,t[`text-size`]),this.iconSizeData=Nv(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=xy(n,`text-overlap`,`text-allow-overlap`)!==`never`||xy(n,`icon-overlap`,`icon-allow-overlap`)!==`never`||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&!r.isConstant();let a=i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&this.canOverlap,n.get(`symbol-placement`)===`point`&&(this.writingModes=n.get(`text-writing-mode`).map(e=>ev[e])),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id),this.sourceID=e.sourceID;}createArrays(){this.text=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`text`))),this.icon=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`icon`))),this.glyphOffsetArray=new Hu,this.lineVertexArray=new Uu,this.symbolInstances=new Vu,this.textAnchorOffsets=new Gu;}calculateGlyphDependencies(e,t,n,r){let i=C_.fromFeature(e,n,false),a=i.graphemes();for(let e=0;e<a.length;e++){let n=i.getSection(e);if(`imageName`in n)continue;t[n.fontStack]||={default:{},vertical:{}};let o=t[n.fontStack],s=a[e],c=r&&bv(s.codePointAt(0),this.allowVerticalPlacement);r_(s)&&(o.default[s]=true),c&&(o.vertical[s]=true);for(let e of s){if(o.default[e]=true,!r)continue;c&&r_(s)&&(o.vertical[e]=true);let t=p_[e];t&&(o.default[t]=true);}}}populate(e,t,n){let r=this.layers[0],i=r.layout,a=i.get(`text-font`),o=i.get(`text-field`),s=i.get(`icon-image`),c=(o.value.kind!==`constant`||o.value.value instanceof ci&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&(a.value.kind!==`constant`||a.value.value.length>0),l=s.value.kind!==`constant`||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get(`symbol-sort-key`),d=i.get(`symbol-placement`)===`point`;if(this.features=[],!c&&!l)return;let f=t.iconDependencies,p=t.glyphDependencies,m=t.availableImages,h=new Ll(this.zoom),g=i.get(`text-keep-upright`);for(let{feature:t,id:o,index:s,sourceLayerIndex:_}of e){let e=r._featureFilter.needGeometry,v=Qd(t,e);if(!r._featureFilter.filter(h,v,n)||(e||(v.geometry=Zd(t)),d&&t.type===1&&ky(v.geometry)))continue;let y;if(c){let e=r.getValueAndResolveTokens(`text-field`,v,n,m),t=ci.factory(e);this.hasRTLText||=Ty(t),y=Kg(t,r,v);}let b;if(l){let e=r.getValueAndResolveTokens(`icon-image`,v,n,m);b=e instanceof hi?e:hi.fromString(e);}if(!y&&!b)continue;let x=this.sortFeaturesByKey?u.evaluate(v,{},n):void 0,S={id:o,text:y,icon:b,index:s,sourceLayerIndex:_,geometry:v.geometry,properties:t.properties,type:Bm.types[t.type],sortKey:x};if(this.features.push(S),b&&(f[b.name]=true),y){let e=a.evaluate(v,{},n).join(`,`),t=i.get(`text-rotation-alignment`)!==`viewport`&&i.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes?.includes(2);let r=(t&&g||this.allowVerticalPlacement)&&o_(y.toString());this.calculateGlyphDependencies(y,p,e,r);for(let e of y.sections)e.image&&(f[e.image.name]=true);}}i.get(`symbol-placement`)===`line`&&(this.features=Zg(this.features)),this.sortFeaturesByKey&&this.features.sort((e,t)=>e.sortKey-t.sortKey);}update(e,t,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}));}addFeatures({options:e,canonical:t,glyphMap:n,glyphPositions:r,iconMap:i,iconPositions:a,showCollisionBoxes:o}){fy({bucket:this,glyphMap:n,glyphPositions:r,imageMap:i,imagePositions:a,showCollisionBoxes:o,canonical:t,subdivisionGranularity:e.subdivisionGranularity,hasPromoteId:e.featureIndex.promoteId!=null});}isEmpty(){return this.symbolInstances.length===0}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=true;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(e,t){let n=this.lineVertexArray.length;if(e.segment!==void 0){let n=e.dist(t[e.segment+1]),r=e.dist(t[e.segment]),i={};for(let r=e.segment+1;r<t.length;r++)i[r]={x:t[r].x,y:t[r].y,tileUnitDistanceFromAnchor:n},r<t.length-1&&(n+=t[r+1].dist(t[r]));for(let n=e.segment||0;n>=0;n--)i[n]={x:t[n].x,y:t[n].y,tileUnitDistanceFromAnchor:r},n>0&&(r+=t[n-1].dist(t[n]));for(let e=0;e<t.length;e++){let t=i[e];this.lineVertexArray.emplaceBack(t.x,t.y,t.tileUnitDistanceFromAnchor);}}return {lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e.indexArray,m=e.layoutVertexArray,h=e.segments.prepareSegment(4*t.length,m,p,this.canOverlap?a.sortKey:void 0),g=this.glyphOffsetArray.length,_=h.vertexLength,v=this.allowVerticalPlacement&&o===2?Math.PI/2:0,y=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:c,br:l,tex:u,pixelOffsetTL:g,pixelOffsetBR:_,minFontScaleX:b,minFontScaleY:x,glyphOffset:S,isSDF:C,sectionIndex:w}=t[r],T=h.vertexLength,E=S[1];Cy(m,s.x,s.y,i.x,E+i.y,u.x,u.y,n,C,g.x,g.y,b,x,f),Cy(m,s.x,s.y,o.x,E+o.y,u.x+u.w,u.y,n,C,_.x,g.y,b,x,f),Cy(m,s.x,s.y,c.x,E+c.y,u.x,u.y+u.h,n,C,g.x,_.y,b,x,f),Cy(m,s.x,s.y,l.x,E+l.y,u.x+u.w,u.y+u.h,n,C,_.x,_.y,b,x,f),wy(e.dynamicLayoutVertexArray,s,v),p.emplaceBack(T,T+2,T+1),p.emplaceBack(T+1,T+2,T+3),h.vertexLength+=4,h.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(S[0]),(r===t.length-1||w!==t[r+1].sectionIndex)&&e.programConfigurations.populatePaintArrays(m.length,a,a.index,{imagePositions:{},canonical:d,formattedSection:y?.[w]});}e.placedSymbolArray.emplaceBack(s.x,s.y,g,this.glyphOffsetArray.length-g,_,c,l,s.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,false,0,u,f);}_addCollisionDebugVertex(e,t,n,r,i,a){return t.emplaceBack(0,0),e.emplaceBack(n.x,n.y,r,i,Math.round(a.x),Math.round(a.y))}addCollisionDebugVertices(e,t,n,r,i,a,o){let s=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),c=s.vertexLength,l=i.layoutVertexArray,d=i.collisionVertexArray,f=o.anchorX,p=o.anchorY;this._addCollisionDebugVertex(l,d,a,f,p,new u(e,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,r)),this._addCollisionDebugVertex(l,d,a,f,p,new u(e,r)),s.vertexLength+=4;let m=i.indexArray;m.emplaceBack(c,c+1),m.emplaceBack(c+1,c+2),m.emplaceBack(c+2,c+3),m.emplaceBack(c+3,c),s.primitiveLength+=4;}addDebugCollisionBoxes(e,t,n,r){for(let i=e;i<t;i++){let e=this.collisionBoxArray.get(i),t=e.x1,a=e.y1,o=e.x2,s=e.y2;this.addCollisionDebugVertices(t,a,o,s,r?this.textCollisionBox:this.iconCollisionBox,e.anchorPoint,n);}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Dy(sd,mg.members,fd),this.iconCollisionBox=new Dy(sd,mg.members,fd);for(let e=0;e<this.symbolInstances.length;e++){let t=this.symbolInstances.get(e);this.addDebugCollisionBoxes(t.textBoxStartIndex,t.textBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.verticalTextBoxStartIndex,t.verticalTextBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.iconBoxStartIndex,t.iconBoxEndIndex,t,false),this.addDebugCollisionBoxes(t.verticalIconBoxStartIndex,t.verticalIconBoxEndIndex,t,false);}}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};for(let r=t;r<n;r++){let t=e.get(r);l.textBox={x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,anchorPointX:t.anchorPointX,anchorPointY:t.anchorPointY},l.textFeatureIndex=t.featureIndex;break}for(let t=r;t<i;t++){let n=e.get(t);l.verticalTextBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalTextFeatureIndex=n.featureIndex;break}for(let t=a;t<o;t++){let n=e.get(t);l.iconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.iconFeatureIndex=n.featureIndex;break}for(let t=s;t<c;t++){let n=e.get(t);l.verticalIconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalIconFeatureIndex=n.featureIndex;break}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex));}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+n.numGlyphs*4;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+2,t+1),e.indexArray.emplaceBack(t+1,t+2,t+3);}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(Math.round(t*o.anchorX+n*o.anchorY)|0),i.push(o.featureIndex);}return a.sort((e,t)=>r[e]-r[t]||i[t]-i[e]),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n?.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,symbolInstanceStart:e,symbolInstanceEnd:e+1});}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let n=[t.rightJustifiedTextSymbolIndex,t.centerJustifiedTextSymbolIndex,t.leftJustifiedTextSymbolIndex];for(let e=0;e<n.length;e++){let t=n[e];t>=0&&n.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);}t.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,t.verticalPlacedTextSymbolIndex),t.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.placedIconSymbolIndex),t.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}};function ky(e){return e.every(e=>e.every(rf))}K(`SymbolBucket`,Oy,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]});var Iy=class{constructor(e){if(e.property.overrides===void 0)throw Error(`overrides must be provided to instantiate FormatSectionOverride class`);this.type=e.property.overrides?e.property.overrides.runtimeType:fr,this.defaultValue=e;}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t?.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){if(!this.defaultValue.isConstant()){let t=this.defaultValue.value;e(t._styleExpression.expression);}}outputDefined(){return false}serialize(){return null}};K(`FormatSectionOverride`,Iy,{omit:[`defaultValue`]});function zy(e,t,n,r=1){let i=e.get(`icon-padding`).evaluate(t,{},n)?.values;return [i[0]*r,i[1]*r,i[2]*r,i[3]*r]}const lb=/* @__PURE__ */ new Float64Array(256);for(let e=0;e<256;e++){let t=.5-(e/255)**(1/2.2);lb[e]=t*Math.abs(t);}lb[255]=-1e20;B.layout_symbol[`text-font`].default.join(`,`);function Hb(e,t,n){return !(e<0||e>25||n<0||n>=2**e||t<0||t>=2**e)}var Wb=class{constructor(e,t,n){if(!Hb(e,t,n))throw Error(`x=${t}, y=${n}, z=${e} outside of bounds. 0<=x<${2**e}, 0<=y<${2**e} 0<=z<=25 `);this.z=e,this.x=t,this.y=n,this.key=qb(0,e,e,t,n);}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t,n,r=Jm){let i=Yb(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(n===`tms`?2**this.z-this.y-1:this.y)).replace(/{ratio}/g,t>1?`@2x`:``).replace(/{quadkey}/g,i).replace(/{bbox-epsg-3857}/g,()=>Jb(this.x,this.y,this.z,Jm)).replace(/{bbox}/g,()=>Jb(this.x,this.y,this.z,r))}isChildOf(e){let t=this.z-e.z;return t>0&&e.x===this.x>>t&&e.y===this.y>>t}getTilePoint(e){let t=2**this.z;return new u((e.x*t-this.x)*P,(e.y*t-this.y)*P)}toString(){return `${this.z}/${this.x}/${this.y}`}},Gb=class{constructor(e,t){this.wrap=e,this.canonical=t,this.key=qb(e,t.z,t.z,t.x,t.y);}},Kb=class e{constructor(e,t,n,r,i){if(this.terrainRttPosMatrix32f=null,e<n)throw Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${n}`);this.overscaledZ=e,this.wrap=t,this.canonical=new Wb(n,+r,+i),this.key=qb(t,e,n,r,i);}clone(){return new e(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(t){if(t>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-t;return t>this.canonical.z?new e(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new e(t,this.wrap,t,this.canonical.x>>n,this.canonical.y>>n)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,t){if(e>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-e;return e>this.canonical.z?qb(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y):qb(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return false;if(e.overscaledZ===0)return this.overscaledZ>0;let t=this.canonical.z-e.canonical.z;return t<0?false:e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(t){if(this.overscaledZ>=t)return [new e(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let n=this.canonical.z+1,r=this.canonical.x*2,i=this.canonical.y*2;return [new e(n,this.wrap,n,r,i),new e(n,this.wrap,n,r+1,i),new e(n,this.wrap,n,r,i+1),new e(n,this.wrap,n,r+1,i+1)]}isLessThan(e){return this.wrap<e.wrap?true:this.wrap>e.wrap?false:this.overscaledZ<e.overscaledZ?true:this.overscaledZ>e.overscaledZ?false:this.canonical.x<e.canonical.x?true:this.canonical.x>e.canonical.x?false:this.canonical.y<e.canonical.y}wrapped(){return new e(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new e(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Gb(this.wrap,this.canonical)}toString(){return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new ih(e.x-this.wrap,e.y))}normalizeCoordinates(t,n,r=P){if(t>=0&&t<r&&n>=0&&n<r)return {tileID:this,x:t,y:n};let i=Math.floor(t/r),a=Math.floor(n/r),o=t-i*r,s=n-a*r,c=this.canonical.z,l=1<<c,u=this.canonical.y+a;if(u<0||u>=l)return null;let d=this.canonical.x+i,f=this.wrap;return d<0?(f-=Math.ceil(-d/l),d=(d%l+l)%l):d>=l&&(f+=Math.floor(d/l),d%=l),{tileID:new e(this.overscaledZ,f,c,d,u),x:o,y:s}}};function qb(e,t,n,r,i){e*=2,e<0&&(e=e*-1-1);let a=1<<n;return (a*a*e+a*i+r).toString(36)+n.toString(36)+t.toString(36)}function Jb(e,t,n,r){let i=2**n,a=r.extentAtZoom0/i,[o,s]=r.origin,c=s-r.extentAtZoom0,l=i-t-1;return `${o+e*a},${c+l*a},${o+(e+1)*a},${c+(l+1)*a}`}function Yb(e,t,n){let r=``;for(let i=e;i>0;i--){let e=1<<i-1;r+=(t&e?1:0)+(n&e?2:0);}return r}K(`CanonicalTileID`,Wb),K(`OverscaledTileID`,Kb,{omit:[`terrainRttPosMatrix32f`]});var fx=class{forward(e){return [e[0],e[1]]}inverse(e){return [e[0],e[1]]}};const px=new class{constructor(){this.name=`identity`,this.projection=new fx,this.tileMatrixSet={origin:[-90,90],extentAtZoom0:180};}};/* @__PURE__ */ new Map([[px.name,px]]);lu([{name:`a_pos`,type:`Int16`,components:2}]);const Ux=`_geojsonTileLayer`;var Wx=class{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n;}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}},Gx=class e{static{this.worldCoordinateHelpers=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i,a,o){this.type=`Feature`,this._vectorTileFeature=t,this._x=r,this._y=i,this._z=n,o!==ah&&e.worldCoordinateHelpers.set(this,o);for(let e in t.properties)typeof t.properties[e]==`string`&&t.properties[e].startsWith(`__$json__:`)&&(t.properties[e]=JSON.parse(t.properties[e].slice(10)));this.properties=t.properties,this.id=a;}projectPoint(e,t,n,r,i){if(i){let a=i.lngLatFromWorld((e.x+t)/r,(e.y+n)/r);return [a.lng,a.lat]}return [(e.x+t)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+n)*2/r)*Math.PI))-90]}projectLine(e,t,n,r,i){return e.map(e=>this.projectPoint(e,t,n,r,i))}get geometry(){if(this._geometry)return this._geometry;let t=this._vectorTileFeature,n=e.worldCoordinateHelpers.get(this),r=t.extent*2**this._z,i=t.extent*this._x,a=t.extent*this._y,o=t.loadGeometry();switch(t.type){case 1:{let e=[];for(let t of o)e.push(t[0]);let t=this.projectLine(e,i,a,r,n);this._geometry=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};break}case 2:{let e=o.map(e=>this.projectLine(e,i,a,r,n));this._geometry=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};break}case 3:{let e=Vm(o),t=[];for(let o of e)t.push(o.map(e=>this.projectLine(e,i,a,r,n)));this._geometry=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};break}default:throw Error(`unknown feature type: ${t.type}`)}return this._geometry}set geometry(e){this._geometry=e;}toJSON(){let e={geometry:this.geometry};for(let t in this)t!==`_geometry`&&t!==`_vectorTileFeature`&&t!==`_x`&&t!==`_y`&&t!==`_z`&&(e[t]=this[t]);return e}},Kx=class{constructor(e,t,n){this._name=e,this.dataBuffer=t,typeof n==`number`?this._size=n:(this.nullabilityBuffer=n,this._size=n.size());}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer?.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}},qx=class extends Kx{},Jx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Yx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Xx=class extends Kx{constructor(e,t,n,r){super(e,t,r),this.delta=n;}},Zx=class extends Xx{constructor(e,t,n,r,i){super(e,i?Int32Array.of(t):Uint32Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}},Qx=class extends Kx{constructor(e,t,n,r){super(e,r?Int32Array.of(t):Uint32Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},$x=class{constructor(e,t,n,r,i=4096){if(this._name=e,this._geometryVector=t,this._idVector=n,this._propertyVectors=r,this._extent=i,e.length===0)throw Error(`Missing layer name`)}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors??[]}getPropertyVector(e){return this.propertyVectorsMap||=new Map(this.propertyVectors.map(e=>[e.name,e])),this.propertyVectorsMap.get(e)}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){let e=[],t=this.geometryVector.getGeometries();for(let n=0;n<this.numFeatures;n++){let r;if(this.idVector){let e=this.idVector.getValue(n);e!==null&&(r=this.containsMaxSafeIntegerValues(this.idVector)?Number(e):e);}let i={coordinates:t[n],type:this.geometryVector.geometryType(n)},a={};for(let e of this.propertyVectors){if(!e)continue;let t=e.name,r=e.getValue(n);r!==null&&(a[t]=r);}e.push({id:r,geometry:i,properties:a});}return e}containsMaxSafeIntegerValues(e){return e instanceof Jx||e instanceof Qx||e instanceof Zx||e instanceof Yx}};const eS={FEATURE:0},tS={BOOLEAN:0,INT_8:1,UINT_8:2,INT_32:3,UINT_32:4,INT_64:5,UINT_64:6,FLOAT:7,DOUBLE:8,STRING:9},nS={GEOMETRY:0,STRUCT:1,MAP:2},rS={ID:0};var iS=class{constructor(e){this.value=e;}get(){return this.value}set(e){this.value=e;}increment(){return this.value++}add(e){this.value+=e;}},$;(function(e){e.NONE=`NONE`,e.DELTA=`DELTA`,e.COMPONENTWISE_DELTA=`COMPONENTWISE_DELTA`,e.RLE=`RLE`,e.MORTON=`MORTON`;})($||={});var aS;(function(e){e.NONE=`NONE`,e.FAST_PFOR=`FAST_PFOR`,e.VARINT=`VARINT`;})(aS||={});const oS=/* @__PURE__ */ new Uint32Array(33);oS[0]=0;for(let e=1;e<=32;e++)oS[e]=e===32?4294967295:4294967295>>>32-e;const sS=oS,cS=65536;function lS(e,t){return e-e%t}function uS(e){return lS(e+31,32)}function dS(e){if(!Number.isFinite(e)||e<=0)return cS;let t=lS(Math.floor(e),256);return t===0?256:t}function fS(e){let t=e>>>0;return ((t&255)<<24|(t&65280)<<8|t>>>8&65280|t>>>24&255)>>>0}function pS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0;n[i++]=a>>>0&3,n[i++]=a>>>2&3,n[i++]=a>>>4&3,n[i++]=a>>>6&3,n[i++]=a>>>8&3,n[i++]=a>>>10&3,n[i++]=a>>>12&3,n[i++]=a>>>14&3,n[i++]=a>>>16&3,n[i++]=a>>>18&3,n[i++]=a>>>20&3,n[i++]=a>>>22&3,n[i++]=a>>>24&3,n[i++]=a>>>26&3,n[i++]=a>>>28&3,n[i++]=a>>>30&3,n[i++]=o>>>0&3,n[i++]=o>>>2&3,n[i++]=o>>>4&3,n[i++]=o>>>6&3,n[i++]=o>>>8&3,n[i++]=o>>>10&3,n[i++]=o>>>12&3,n[i++]=o>>>14&3,n[i++]=o>>>16&3,n[i++]=o>>>18&3,n[i++]=o>>>20&3,n[i++]=o>>>22&3,n[i++]=o>>>24&3,n[i++]=o>>>26&3,n[i++]=o>>>28&3,n[i]=o>>>30&3;}function mS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0;n[i++]=a>>>0&7,n[i++]=a>>>3&7,n[i++]=a>>>6&7,n[i++]=a>>>9&7,n[i++]=a>>>12&7,n[i++]=a>>>15&7,n[i++]=a>>>18&7,n[i++]=a>>>21&7,n[i++]=a>>>24&7,n[i++]=a>>>27&7,n[i++]=(a>>>30|(o&1)<<2)&7,n[i++]=o>>>1&7,n[i++]=o>>>4&7,n[i++]=o>>>7&7,n[i++]=o>>>10&7,n[i++]=o>>>13&7,n[i++]=o>>>16&7,n[i++]=o>>>19&7,n[i++]=o>>>22&7,n[i++]=o>>>25&7,n[i++]=o>>>28&7,n[i++]=(o>>>31|(s&3)<<1)&7,n[i++]=s>>>2&7,n[i++]=s>>>5&7,n[i++]=s>>>8&7,n[i++]=s>>>11&7,n[i++]=s>>>14&7,n[i++]=s>>>17&7,n[i++]=s>>>20&7,n[i++]=s>>>23&7,n[i++]=s>>>26&7,n[i]=s>>>29&7;}function hS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0;n[i++]=a>>>0&15,n[i++]=a>>>4&15,n[i++]=a>>>8&15,n[i++]=a>>>12&15,n[i++]=a>>>16&15,n[i++]=a>>>20&15,n[i++]=a>>>24&15,n[i++]=a>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15,n[i++]=c>>>0&15,n[i++]=c>>>4&15,n[i++]=c>>>8&15,n[i++]=c>>>12&15,n[i++]=c>>>16&15,n[i++]=c>>>20&15,n[i++]=c>>>24&15,n[i]=c>>>28&15;}function gS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0;n[i++]=a>>>0&31,n[i++]=a>>>5&31,n[i++]=a>>>10&31,n[i++]=a>>>15&31,n[i++]=a>>>20&31,n[i++]=a>>>25&31,n[i++]=(a>>>30|(o&7)<<2)&31,n[i++]=o>>>3&31,n[i++]=o>>>8&31,n[i++]=o>>>13&31,n[i++]=o>>>18&31,n[i++]=o>>>23&31,n[i++]=(o>>>28|(s&1)<<4)&31,n[i++]=s>>>1&31,n[i++]=s>>>6&31,n[i++]=s>>>11&31,n[i++]=s>>>16&31,n[i++]=s>>>21&31,n[i++]=s>>>26&31,n[i++]=(s>>>31|(c&15)<<1)&31,n[i++]=c>>>4&31,n[i++]=c>>>9&31,n[i++]=c>>>14&31,n[i++]=c>>>19&31,n[i++]=c>>>24&31,n[i++]=(c>>>29|(l&3)<<3)&31,n[i++]=l>>>2&31,n[i++]=l>>>7&31,n[i++]=l>>>12&31,n[i++]=l>>>17&31,n[i++]=l>>>22&31,n[i]=l>>>27&31;}function _S(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0;n[i++]=a>>>0&63,n[i++]=a>>>6&63,n[i++]=a>>>12&63,n[i++]=a>>>18&63,n[i++]=a>>>24&63,n[i++]=(a>>>30|(o&15)<<2)&63,n[i++]=o>>>4&63,n[i++]=o>>>10&63,n[i++]=o>>>16&63,n[i++]=o>>>22&63,n[i++]=(o>>>28|(s&3)<<4)&63,n[i++]=s>>>2&63,n[i++]=s>>>8&63,n[i++]=s>>>14&63,n[i++]=s>>>20&63,n[i++]=s>>>26&63,n[i++]=c>>>0&63,n[i++]=c>>>6&63,n[i++]=c>>>12&63,n[i++]=c>>>18&63,n[i++]=c>>>24&63,n[i++]=(c>>>30|(l&15)<<2)&63,n[i++]=l>>>4&63,n[i++]=l>>>10&63,n[i++]=l>>>16&63,n[i++]=l>>>22&63,n[i++]=(l>>>28|(u&3)<<4)&63,n[i++]=u>>>2&63,n[i++]=u>>>8&63,n[i++]=u>>>14&63,n[i++]=u>>>20&63,n[i]=u>>>26&63;}function vS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0;n[i++]=a>>>0&127,n[i++]=a>>>7&127,n[i++]=a>>>14&127,n[i++]=a>>>21&127,n[i++]=(a>>>28|(o&7)<<4)&127,n[i++]=o>>>3&127,n[i++]=o>>>10&127,n[i++]=o>>>17&127,n[i++]=o>>>24&127,n[i++]=(o>>>31|(s&63)<<1)&127,n[i++]=s>>>6&127,n[i++]=s>>>13&127,n[i++]=s>>>20&127,n[i++]=(s>>>27|(c&3)<<5)&127,n[i++]=c>>>2&127,n[i++]=c>>>9&127,n[i++]=c>>>16&127,n[i++]=c>>>23&127,n[i++]=(c>>>30|(l&31)<<2)&127,n[i++]=l>>>5&127,n[i++]=l>>>12&127,n[i++]=l>>>19&127,n[i++]=(l>>>26|(u&1)<<6)&127,n[i++]=u>>>1&127,n[i++]=u>>>8&127,n[i++]=u>>>15&127,n[i++]=u>>>22&127,n[i++]=(u>>>29|(d&15)<<3)&127,n[i++]=d>>>4&127,n[i++]=d>>>11&127,n[i++]=d>>>18&127,n[i]=d>>>25&127;}function yS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0;n[i++]=a>>>0&255,n[i++]=a>>>8&255,n[i++]=a>>>16&255,n[i++]=a>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255,n[i++]=f>>>0&255,n[i++]=f>>>8&255,n[i++]=f>>>16&255,n[i]=f>>>24&255;}function bS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0;n[i++]=a>>>0&511,n[i++]=a>>>9&511,n[i++]=a>>>18&511,n[i++]=(a>>>27|(o&15)<<5)&511,n[i++]=o>>>4&511,n[i++]=o>>>13&511,n[i++]=o>>>22&511,n[i++]=(o>>>31|(s&255)<<1)&511,n[i++]=s>>>8&511,n[i++]=s>>>17&511,n[i++]=(s>>>26|(c&7)<<6)&511,n[i++]=c>>>3&511,n[i++]=c>>>12&511,n[i++]=c>>>21&511,n[i++]=(c>>>30|(l&127)<<2)&511,n[i++]=l>>>7&511,n[i++]=l>>>16&511,n[i++]=(l>>>25|(u&3)<<7)&511,n[i++]=u>>>2&511,n[i++]=u>>>11&511,n[i++]=u>>>20&511,n[i++]=(u>>>29|(d&63)<<3)&511,n[i++]=d>>>6&511,n[i++]=d>>>15&511,n[i++]=(d>>>24|(f&1)<<8)&511,n[i++]=f>>>1&511,n[i++]=f>>>10&511,n[i++]=f>>>19&511,n[i++]=(f>>>28|(p&31)<<4)&511,n[i++]=p>>>5&511,n[i++]=p>>>14&511,n[i]=p>>>23&511;}function xS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0;n[i++]=a>>>0&1023,n[i++]=a>>>10&1023,n[i++]=a>>>20&1023,n[i++]=(a>>>30|(o&255)<<2)&1023,n[i++]=o>>>8&1023,n[i++]=o>>>18&1023,n[i++]=(o>>>28|(s&63)<<4)&1023,n[i++]=s>>>6&1023,n[i++]=s>>>16&1023,n[i++]=(s>>>26|(c&15)<<6)&1023,n[i++]=c>>>4&1023,n[i++]=c>>>14&1023,n[i++]=(c>>>24|(l&3)<<8)&1023,n[i++]=l>>>2&1023,n[i++]=l>>>12&1023,n[i++]=l>>>22&1023,n[i++]=u>>>0&1023,n[i++]=u>>>10&1023,n[i++]=u>>>20&1023,n[i++]=(u>>>30|(d&255)<<2)&1023,n[i++]=d>>>8&1023,n[i++]=d>>>18&1023,n[i++]=(d>>>28|(f&63)<<4)&1023,n[i++]=f>>>6&1023,n[i++]=f>>>16&1023,n[i++]=(f>>>26|(p&15)<<6)&1023,n[i++]=p>>>4&1023,n[i++]=p>>>14&1023,n[i++]=(p>>>24|(m&3)<<8)&1023,n[i++]=m>>>2&1023,n[i++]=m>>>12&1023,n[i]=m>>>22&1023;}function SS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0;n[i++]=a>>>0&2047,n[i++]=a>>>11&2047,n[i++]=(a>>>22|(o&1)<<10)&2047,n[i++]=o>>>1&2047,n[i++]=o>>>12&2047,n[i++]=(o>>>23|(s&3)<<9)&2047,n[i++]=s>>>2&2047,n[i++]=s>>>13&2047,n[i++]=(s>>>24|(c&7)<<8)&2047,n[i++]=c>>>3&2047,n[i++]=c>>>14&2047,n[i++]=(c>>>25|(l&15)<<7)&2047,n[i++]=l>>>4&2047,n[i++]=l>>>15&2047,n[i++]=(l>>>26|(u&31)<<6)&2047,n[i++]=u>>>5&2047,n[i++]=u>>>16&2047,n[i++]=(u>>>27|(d&63)<<5)&2047,n[i++]=d>>>6&2047,n[i++]=d>>>17&2047,n[i++]=(d>>>28|(f&127)<<4)&2047,n[i++]=f>>>7&2047,n[i++]=f>>>18&2047,n[i++]=(f>>>29|(p&255)<<3)&2047,n[i++]=p>>>8&2047,n[i++]=p>>>19&2047,n[i++]=(p>>>30|(m&511)<<2)&2047,n[i++]=m>>>9&2047,n[i++]=m>>>20&2047,n[i++]=(m>>>31|(h&1023)<<1)&2047,n[i++]=h>>>10&2047,n[i]=h>>>21&2047;}function CS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0;n[i++]=a>>>0&4095,n[i++]=a>>>12&4095,n[i++]=(a>>>24|(o&15)<<8)&4095,n[i++]=o>>>4&4095,n[i++]=o>>>16&4095,n[i++]=(o>>>28|(s&255)<<4)&4095,n[i++]=s>>>8&4095,n[i++]=s>>>20&4095,n[i++]=c>>>0&4095,n[i++]=c>>>12&4095,n[i++]=(c>>>24|(l&15)<<8)&4095,n[i++]=l>>>4&4095,n[i++]=l>>>16&4095,n[i++]=(l>>>28|(u&255)<<4)&4095,n[i++]=u>>>8&4095,n[i++]=u>>>20&4095,n[i++]=d>>>0&4095,n[i++]=d>>>12&4095,n[i++]=(d>>>24|(f&15)<<8)&4095,n[i++]=f>>>4&4095,n[i++]=f>>>16&4095,n[i++]=(f>>>28|(p&255)<<4)&4095,n[i++]=p>>>8&4095,n[i++]=p>>>20&4095,n[i++]=m>>>0&4095,n[i++]=m>>>12&4095,n[i++]=(m>>>24|(h&15)<<8)&4095,n[i++]=h>>>4&4095,n[i++]=h>>>16&4095,n[i++]=(h>>>28|(g&255)<<4)&4095,n[i++]=g>>>8&4095,n[i]=g>>>20&4095;}function wS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0,_=e[t+12]>>>0,v=e[t+13]>>>0,y=e[t+14]>>>0,b=e[t+15]>>>0;n[i++]=a>>>0&65535,n[i++]=a>>>16&65535,n[i++]=o>>>0&65535,n[i++]=o>>>16&65535,n[i++]=s>>>0&65535,n[i++]=s>>>16&65535,n[i++]=c>>>0&65535,n[i++]=c>>>16&65535,n[i++]=l>>>0&65535,n[i++]=l>>>16&65535,n[i++]=u>>>0&65535,n[i++]=u>>>16&65535,n[i++]=d>>>0&65535,n[i++]=d>>>16&65535,n[i++]=f>>>0&65535,n[i++]=f>>>16&65535,n[i++]=p>>>0&65535,n[i++]=p>>>16&65535,n[i++]=m>>>0&65535,n[i++]=m>>>16&65535,n[i++]=h>>>0&65535,n[i++]=h>>>16&65535,n[i++]=g>>>0&65535,n[i++]=g>>>16&65535,n[i++]=_>>>0&65535,n[i++]=_>>>16&65535,n[i++]=v>>>0&65535,n[i++]=v>>>16&65535,n[i++]=y>>>0&65535,n[i++]=y>>>16&65535,n[i++]=b>>>0&65535,n[i]=b>>>16&65535;}function TS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0;n[i++]=t>>>0&1,n[i++]=t>>>1&1,n[i++]=t>>>2&1,n[i++]=t>>>3&1,n[i++]=t>>>4&1,n[i++]=t>>>5&1,n[i++]=t>>>6&1,n[i++]=t>>>7&1,n[i++]=t>>>8&1,n[i++]=t>>>9&1,n[i++]=t>>>10&1,n[i++]=t>>>11&1,n[i++]=t>>>12&1,n[i++]=t>>>13&1,n[i++]=t>>>14&1,n[i++]=t>>>15&1,n[i++]=t>>>16&1,n[i++]=t>>>17&1,n[i++]=t>>>18&1,n[i++]=t>>>19&1,n[i++]=t>>>20&1,n[i++]=t>>>21&1,n[i++]=t>>>22&1,n[i++]=t>>>23&1,n[i++]=t>>>24&1,n[i++]=t>>>25&1,n[i++]=t>>>26&1,n[i++]=t>>>27&1,n[i++]=t>>>28&1,n[i++]=t>>>29&1,n[i++]=t>>>30&1,n[i++]=t>>>31&1;}}function ES(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0;n[i++]=t>>>0&3,n[i++]=t>>>2&3,n[i++]=t>>>4&3,n[i++]=t>>>6&3,n[i++]=t>>>8&3,n[i++]=t>>>10&3,n[i++]=t>>>12&3,n[i++]=t>>>14&3,n[i++]=t>>>16&3,n[i++]=t>>>18&3,n[i++]=t>>>20&3,n[i++]=t>>>22&3,n[i++]=t>>>24&3,n[i++]=t>>>26&3,n[i++]=t>>>28&3,n[i++]=t>>>30&3,n[i++]=r>>>0&3,n[i++]=r>>>2&3,n[i++]=r>>>4&3,n[i++]=r>>>6&3,n[i++]=r>>>8&3,n[i++]=r>>>10&3,n[i++]=r>>>12&3,n[i++]=r>>>14&3,n[i++]=r>>>16&3,n[i++]=r>>>18&3,n[i++]=r>>>20&3,n[i++]=r>>>22&3,n[i++]=r>>>24&3,n[i++]=r>>>26&3,n[i++]=r>>>28&3,n[i++]=r>>>30&3;}}function DS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0;n[i++]=t>>>0&7,n[i++]=t>>>3&7,n[i++]=t>>>6&7,n[i++]=t>>>9&7,n[i++]=t>>>12&7,n[i++]=t>>>15&7,n[i++]=t>>>18&7,n[i++]=t>>>21&7,n[i++]=t>>>24&7,n[i++]=t>>>27&7,n[i++]=(t>>>30|(r&1)<<2)&7,n[i++]=r>>>1&7,n[i++]=r>>>4&7,n[i++]=r>>>7&7,n[i++]=r>>>10&7,n[i++]=r>>>13&7,n[i++]=r>>>16&7,n[i++]=r>>>19&7,n[i++]=r>>>22&7,n[i++]=r>>>25&7,n[i++]=r>>>28&7,n[i++]=(r>>>31|(o&3)<<1)&7,n[i++]=o>>>2&7,n[i++]=o>>>5&7,n[i++]=o>>>8&7,n[i++]=o>>>11&7,n[i++]=o>>>14&7,n[i++]=o>>>17&7,n[i++]=o>>>20&7,n[i++]=o>>>23&7,n[i++]=o>>>26&7,n[i++]=o>>>29&7;}}function OS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0;n[i++]=t>>>0&15,n[i++]=t>>>4&15,n[i++]=t>>>8&15,n[i++]=t>>>12&15,n[i++]=t>>>16&15,n[i++]=t>>>20&15,n[i++]=t>>>24&15,n[i++]=t>>>28&15,n[i++]=r>>>0&15,n[i++]=r>>>4&15,n[i++]=r>>>8&15,n[i++]=r>>>12&15,n[i++]=r>>>16&15,n[i++]=r>>>20&15,n[i++]=r>>>24&15,n[i++]=r>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15;}}function kS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0;n[i++]=t>>>0&31,n[i++]=t>>>5&31,n[i++]=t>>>10&31,n[i++]=t>>>15&31,n[i++]=t>>>20&31,n[i++]=t>>>25&31,n[i++]=(t>>>30|(r&7)<<2)&31,n[i++]=r>>>3&31,n[i++]=r>>>8&31,n[i++]=r>>>13&31,n[i++]=r>>>18&31,n[i++]=r>>>23&31,n[i++]=(r>>>28|(o&1)<<4)&31,n[i++]=o>>>1&31,n[i++]=o>>>6&31,n[i++]=o>>>11&31,n[i++]=o>>>16&31,n[i++]=o>>>21&31,n[i++]=o>>>26&31,n[i++]=(o>>>31|(s&15)<<1)&31,n[i++]=s>>>4&31,n[i++]=s>>>9&31,n[i++]=s>>>14&31,n[i++]=s>>>19&31,n[i++]=s>>>24&31,n[i++]=(s>>>29|(c&3)<<3)&31,n[i++]=c>>>2&31,n[i++]=c>>>7&31,n[i++]=c>>>12&31,n[i++]=c>>>17&31,n[i++]=c>>>22&31,n[i++]=c>>>27&31;}}function AS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0;n[i++]=t>>>0&63,n[i++]=t>>>6&63,n[i++]=t>>>12&63,n[i++]=t>>>18&63,n[i++]=t>>>24&63,n[i++]=(t>>>30|(r&15)<<2)&63,n[i++]=r>>>4&63,n[i++]=r>>>10&63,n[i++]=r>>>16&63,n[i++]=r>>>22&63,n[i++]=(r>>>28|(o&3)<<4)&63,n[i++]=o>>>2&63,n[i++]=o>>>8&63,n[i++]=o>>>14&63,n[i++]=o>>>20&63,n[i++]=o>>>26&63,n[i++]=s>>>0&63,n[i++]=s>>>6&63,n[i++]=s>>>12&63,n[i++]=s>>>18&63,n[i++]=s>>>24&63,n[i++]=(s>>>30|(c&15)<<2)&63,n[i++]=c>>>4&63,n[i++]=c>>>10&63,n[i++]=c>>>16&63,n[i++]=c>>>22&63,n[i++]=(c>>>28|(l&3)<<4)&63,n[i++]=l>>>2&63,n[i++]=l>>>8&63,n[i++]=l>>>14&63,n[i++]=l>>>20&63,n[i++]=l>>>26&63;}}function jS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0;n[i++]=t>>>0&127,n[i++]=t>>>7&127,n[i++]=t>>>14&127,n[i++]=t>>>21&127,n[i++]=(t>>>28|(r&7)<<4)&127,n[i++]=r>>>3&127,n[i++]=r>>>10&127,n[i++]=r>>>17&127,n[i++]=r>>>24&127,n[i++]=(r>>>31|(o&63)<<1)&127,n[i++]=o>>>6&127,n[i++]=o>>>13&127,n[i++]=o>>>20&127,n[i++]=(o>>>27|(s&3)<<5)&127,n[i++]=s>>>2&127,n[i++]=s>>>9&127,n[i++]=s>>>16&127,n[i++]=s>>>23&127,n[i++]=(s>>>30|(c&31)<<2)&127,n[i++]=c>>>5&127,n[i++]=c>>>12&127,n[i++]=c>>>19&127,n[i++]=(c>>>26|(l&1)<<6)&127,n[i++]=l>>>1&127,n[i++]=l>>>8&127,n[i++]=l>>>15&127,n[i++]=l>>>22&127,n[i++]=(l>>>29|(u&15)<<3)&127,n[i++]=u>>>4&127,n[i++]=u>>>11&127,n[i++]=u>>>18&127,n[i++]=u>>>25&127;}}function MS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0,d=e[a++]>>>0;n[i++]=t>>>0&255,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=r>>>0&255,n[i++]=r>>>8&255,n[i++]=r>>>16&255,n[i++]=r>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255;}}function NS(e,t,n,r){let i=r,a=t;for(let t=0;t<128;t++){let t=e[a++]>>>0;n[i++]=t&65535,n[i++]=t>>>16&65535;}}function PS(e,t,n,r,i){let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0,l=r;for(let t=0;t<8;t++){for(let t=0;t<32;t++)if(s+i<=32){let r=c>>>s&a;n[l+t]=r|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let r=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=i-r,f=-1>>>32-d>>>0,p=(u|(c&f)<<r)&a;n[l+t]=p|0,s=d;}l+=32,s=0,t<7&&(c=e[o]>>>0);}}const FS=dS(cS),IS=3*FS/256+FS|0;function LS(){let e=new Uint8Array(IS);return {dataToBePacked:Array(33),dataPointers:/* @__PURE__ */ new Int32Array(33),byteContainer:e,byteContainerI32:new Int32Array(e.buffer,e.byteOffset,e.byteLength>>>2),exceptionSizes:/* @__PURE__ */ new Int32Array(33)}}function RS(e=16){if(e<0)throw RangeError(`initialEncodedWordCapacity must be >= 0, got ${e}`);let t=Math.max(16,e|0);return {encodedWords:new Uint32Array(t),decoderWorkspace:LS()}}function zS(e,t){if(t<=e.encodedWords.length)return e.encodedWords;let n=new Uint32Array(Math.max(16,t*2));return e.encodedWords=n,n}function BS(e,t,n,r){r.byteContainer.length<n&&(r.byteContainer=new Uint8Array(n*2),r.byteContainerI32=void 0);let i=r.byteContainer,a=n>>>2;if(i.byteOffset&3)for(let n=0;n<a;n=n+1|0){let r=e[t+n|0]|0,a=n<<2;i[a]=r&255,i[a+1|0]=r>>>8&255,i[a+2|0]=r>>>16&255,i[a+3|0]=r>>>24&255;}else {let n=r.byteContainerI32;(!n||n.buffer!==i.buffer||n.byteOffset!==i.byteOffset||n.length<a)&&(n=r.byteContainerI32=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>>2)),n.set(e.subarray(t,t+a));}let o=n&3;if(o>0){let n=e[t+a|0]|0,r=a<<2;for(let e=0;e<o;e=e+1|0)i[r+e|0]=n>>>(e<<3)&255;}return i}function VS(e,t,n){let r=e[t++]|0,i=n.dataToBePacked;for(let a=2;a<=32;a=a+1|0){if(!(r>>>a-1&1))continue;if(t>=e.length)throw Error(`FastPFOR decode: truncated exception stream header (bitWidth=${a}, streamWordIndex=${t}, needWords=1, availableWords=${e.length-t}, encodedWords=${e.length})`);let o=e[t++]>>>0,s=uS(o),c=o*a+31>>>5;if(t+c>e.length)throw Error(`FastPFOR decode: truncated exception stream (bitWidth=${a}, size=${o}, streamWordIndex=${t}, needWords=${c}, availableWords=${e.length-t}, encodedWords=${e.length})`);let l=i[a];(!l||l.length<s)&&(l=i[a]=new Uint32Array(s));let u=0;for(;u<o;u=u+32|0)ZS(e,t,l,u,a),t=t+a|0;let d=u-o|0;t=t-(d*a>>>5)|0,n.exceptionSizes[a]=o;}return t}function HS(e,t,n,r,i){switch(i){case 1:TS(e,t,n,r);break;case 2:ES(e,t,n,r);break;case 3:DS(e,t,n,r);break;case 4:OS(e,t,n,r);break;case 5:kS(e,t,n,r);break;case 6:AS(e,t,n,r);break;case 7:jS(e,t,n,r);break;case 8:MS(e,t,n,r);break;case 16:NS(e,t,n,r);break;default:PS(e,t,n,r,i);}return t+(i<<3)|0}function US(e,t,n,r){if(n+2>t)throw Error(`FastPFOR decode: byteContainer underflow at block=${r} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${n}, byteSize=${t})`);let i=e[n++],a=e[n++];if(i>32)throw Error(`FastPFOR decode: invalid bitWidth=${i} at block=${r} (expected 0..32). This likely indicates corrupted or truncated input.`);return {bitWidth:i,exceptionCount:a,bytePosIn:n}}function WS(e,t,n,r,i,a){if(n+1>t)throw Error(`FastPFOR decode: exception header underflow at block=${a} (need 1 byte for maxBits, bytePos=${n}, byteSize=${t})`);let o=e[n++];if(o<r||o>32)throw Error(`FastPFOR decode: invalid maxBits=${o} at block=${a} (bitWidth=${r}, expected ${r}..32)`);let s=o-r|0;if(s<1||s>32)throw Error(`FastPFOR decode: invalid exceptionBitWidth=${s} at block=${a} (bitWidth=${r}, maxBits=${o})`);if(n+i>t)throw Error(`FastPFOR decode: exception positions underflow at block=${a} (need=${i}, have=${t-n})`);return {maxBits:o,exceptionBitWidth:s,bytePosIn:n}}function GS(e,t,n,r,i,a,o,s,c){let{maxBits:l,exceptionBitWidth:u,bytePosIn:d}=WS(i,a,o,n,r,c);if(o=d,u===1){let a=1<<n;for(let n=0;n<r;n=n+1|0){let n=i[o++];e[n+t|0]|=a;}return o}let f=s.dataToBePacked[u];if(!f)throw Error(`FastPFOR decode: missing exception stream for exceptionBitWidth=${u} (bitWidth=${n}, maxBits=${l}) at block ${c}`);let p=s.dataPointers,m=p[u]|0,h=s.exceptionSizes[u]|0;if(m+r>h)throw Error(`FastPFOR decode: exception stream overflow for exceptionBitWidth=${u} (ptr=${m}, need ${r}, size=${h}) at block ${c}`);for(let a=0;a<r;a=a+1|0){let r=i[o++],a=f[m++]|0;e[r+t|0]|=a<<n;}return p[u]=m,o}function KS(e,t,n,r,i,a,o,s,c,l){let u=n|0,d=0;for(let t=0;t<o;t=t+1|0){let n=US(s,c,d,t);d=n.bytePosIn;let r=n.bitWidth,o=n.exceptionCount,f=a+t*256|0;switch(r){case 0:i.fill(0,f,f+256);break;case 32:for(let t=0;t<256;t=t+1|0)i[f+t|0]=e[u+t|0]|0;u=u+256|0;break;default:u=HS(e,u,i,f,r);}o>0&&(d=GS(i,f,r,o,s,c,d,l,t));}if(u!==r)throw Error(`FastPFOR decode: packed region mismatch (pageStart=${t}, packedStart=${n}, consumedPackedEnd=${u}, expectedPackedEnd=${r}, packedWords=${r-n}, encoded.length=${e.length})`)}function qS(e,t,n,r,i,a){let o=n|0,s=e[o]|0;if(s<=0||o+s>e.length-1)throw Error(`FastPFOR decode: invalid whereMeta=${s} at pageStart=${o} (expected > 0 and pageStart+whereMeta < encoded.length=${e.length})`);let c=o+1|0,l=o+s|0,u=e[l]>>>0,d=u+3>>>2,f=l+1,p=f+d;if(p>=e.length)throw Error(`FastPFOR decode: invalid byteSize=${u} (metaInts=${d}, pageStart=${o}, packedEnd=${l}, byteContainerStart=${f}) causes bitmapPos=${p} out of bounds (encoded.length=${e.length})`);let m=BS(e,f,u,a),h=u,g=VS(e,p,a);return a.dataPointers.fill(0),KS(e,o,c,l,t,r|0,i/256|0,m,h,a),g}function JS(e,t,n,r,i,a){let o=r+lS(i,256),s=r,c=n;for(;s!==o;){let n=Math.min(FS,o-s);c=qS(e,t,c,s,n,a),s=s+n|0;}return c}function YS(e,t,n,r,i,a){if(a===0)return t;let o=0,s=t,c=t+n,l=i,u=i,d=i+a,f=0,p=0;for(;s<c&&u<d;){let t=e[s]>>>o&255;if(o+=8,s+=o>>>5,o&=31,f|=(t&127)<<p,t&128)r[u++]=f|0,f=0,p=0;else if(p+=7,p>28)throw Error(`FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${p}, partial=${f}, decoded=${u-l}/${a}, inPos=${s}, inEnd=${c})`)}if(u!==d)throw Error(`FastPFOR VByte: truncated stream (decoded=${u-l}, expected=${a}, consumedWords=${s-t}/${n}, vbyteStart=${t}, vbyteEnd=${c})`);return s}function XS(e,t,n){let r=0,i=0,a=new Uint32Array(t),o=n??LS();if(e.length>0){let t=e[r]|0;if(r=r+1|0,t&255)throw Error(`FastPFOR decode: invalid alignedLength=${t} (expected multiple of 256)`);if(i+t>a.length)throw Error(`FastPFOR decode: output buffer too small (outPos=${i}, alignedLength=${t}, out.length=${a.length})`);r=JS(e,a,r,i,t,o),i=i+t|0;}let s=e.length-r|0,c=t-i|0;return YS(e,r,s,a,i,c),a}function ZS(e,t,n,r,i){switch(i){case 2:pS(e,t,n,r);return;case 3:mS(e,t,n,r);return;case 4:hS(e,t,n,r);return;case 5:gS(e,t,n,r);return;case 6:_S(e,t,n,r);return;case 7:vS(e,t,n,r);return;case 8:yS(e,t,n,r);return;case 9:bS(e,t,n,r);return;case 10:xS(e,t,n,r);return;case 11:SS(e,t,n,r);return;case 12:CS(e,t,n,r);return;case 16:wS(e,t,n,r);return;case 32:for(let i=0;i<32;i=i+1|0)n[r+i|0]=e[t+i|0]|0;return}let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0;for(let t=0;t<32;t++)if(s+i<=32){let l=c>>>s&a;n[r+t]=l|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let l=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=sS[i-l]>>>0,f=(u|(c&d)<<l)&a;n[r+t]=f|0,s=i-l;}}function QS(e,t,n,r){if(t<0||n<0||t+n>e.length)throw RangeError(`decodeBigEndianInt32sInto: out of bounds (offset=${t}, byteLength=${n}, bytes.length=${e.length})`);let i=Math.floor(n/4),a=n%4!=0,o=a?i+1:i;if(r.length<o)throw RangeError(`decodeBigEndianInt32sInto: out.length=${r.length} < ${o}`);if(i>0){let n=e.byteOffset+t;if(n&3)for(let n=0;n<i;n++){let i=t+n*4;r[n]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3];}else {let t=new Uint32Array(e.buffer,n,i);for(let e=0;e<i;e++)r[e]=fS(t[e])|0;}}if(a){let a=t+i*4,o=n-i*4,s=0;for(let t=0;t<o;t++)s|=e[a+t]<<24-t*8;r[i]=s|0;}return o}function $S(e,t,n){let r=new Uint32Array(n),i=0,a=t.get();for(let t=0;t<r.length;t++){let t=e[a++],n=t&127;t<128||(t=e[a++],n|=(t&127)<<7,t<128||(t=e[a++],n|=(t&127)<<14,t<128||(t=e[a++],n|=(t&127)<<21,t<128||(t=e[a++],n|=(t&15)<<28)))),r[i++]=n;}return t.set(a),r}function eC(e,t,n){let r=new BigUint64Array(n);for(let n=0;n<r.length;n++)r[n]=tC(e,t);return r}function tC(e,t){let n=0n,r=0,i=t.get();for(;i<e.length;){let t=e[i++];if(n|=BigInt(t&127)<<BigInt(r),!(t&128))break;if(r+=7,r>=64)throw Error(`Varint too long`)}return t.set(i),n}function nC(e,t,n){let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=rC(e,t);return r}function rC(e,t){let n,r;return r=e[t.get()],t.increment(),n=r&127,r<128||(r=e[t.get()],t.increment(),n|=(r&127)<<7,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<14,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<21,r<128)?n:(r=e[t.get()],n|=(r&15)<<28,iC(n,e,t))}function iC(e,t,n){let r,i;if(i=t[n.get()],n.increment(),r=(i&112)>>4,i<128||(i=t[n.get()],n.increment(),r|=(i&127)<<3,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<10,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<17,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<24,i<128)||(i=t[n.get()],n.increment(),r|=(i&1)<<31,i<128))return r*4294967296+(e>>>0);throw Error(`Expected varint not more than 10 bytes`)}function aC(e,t,n,r){return oC(e,t,n,r,RS(n>>>2))}function oC(e,t,n,r,i){let a=r.get();if(n&3)throw Error(`FastPFOR: invalid encodedByteLength=${n} at offset=${a} (encodedBytes.length=${e.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`);let o=n>>>2,s=zS(i,o);QS(e,a,n,s);let c=XS(s.subarray(0,o),t,i.decoderWorkspace);return r.add(n),c}function sC(e){return e>>>1^-(e&1)}function cC(e){return e>>1n^-(e&1n)}function lC(e){return e%2==1?(e+1)/-2:e/2}function uC(e){let t=new Int32Array(e.length);for(let n=0;n<e.length;n++)t[n]=sC(e[n]);return t}function dC(e){let t=new BigInt64Array(e.length);for(let n=0;n<e.length;n++)t[n]=cC(e[n]);return t}function pC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Uint32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function mC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigUint64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function hC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function gC(e){let t=new Int32Array(e.length);t[0]=sC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-1],t[r+1]=sC(i)+t[r],t[r+2]=sC(a)+t[r+1],t[r+3]=sC(o)+t[r+2];}for(;r!==e.length;++r)t[r]=sC(e[r])+t[r-1];return t}function _C(e){let t=new BigInt64Array(e.length);t[0]=cC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=cC(n)+t[r-1],t[r+1]=cC(i)+t[r],t[r+2]=cC(a)+t[r+1],t[r+3]=cC(o)+t[r+2];}for(;r!==t.length;++r)t[r]=cC(e[r])+t[r-1];return t}function vC(e){e[0]=lC(e[0]);let t=e.length/4*4,n=1;if(t>=4)for(;n<t-4;n+=4){let t=e[n],r=e[n+1],i=e[n+2],a=e[n+3];e[n]=lC(t)+e[n-1],e[n+1]=lC(r)+e[n],e[n+2]=lC(i)+e[n+1],e[n+3]=lC(a)+e[n+2];}for(;n!==e.length;++n)e[n]=lC(e[n])+e[n-1];}function yC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Int32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=sC(o),r.fill(o,i,i+a),i+=a;}return r}function bC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigInt64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];o=cC(o),r.fill(o,i,i+a),i+=a;}return r}function xC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=lC(o),r.fill(o,i,i+a),i+=a;}return r}function SC(e){let t=e.length/4*4,n=1;if(t>=4)for(let r=e[0];n<t-4;n+=4)r=e[n]+=r,r=e[n+1]+=r,r=e[n+2]+=r,r=e[n+3]+=r;for(;n!==e.length;)e[n]+=e[n-1],++n;}function CC(e){let t=0;for(let n=0;n<e.length;n++)e[n]+=t,t=e[n];}function wC(e){if(e.length<2)return new Int32Array(e);let t=new Int32Array(e.length);t[0]=sC(e[0]),t[1]=sC(e[1]);let n=e.length/4*4,r=2;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-2],t[r+1]=sC(i)+t[r-1],t[r+2]=sC(a)+t[r],t[r+3]=sC(o)+t[r+1];}for(;r!==e.length;r+=2)t[r]=sC(e[r])+t[r-2],t[r+1]=sC(e[r+1])+t[r-1];return t}function DC(e){let t=new Int32Array(e.length+1);t[0]=0,t[1]=sC(e[0]);let n=t[1];for(let r=2;r!==t.length;++r){let i=e[r-1],a=sC(i);n+=a,t[r]=t[r-1]+n;}return new Uint32Array(t)}function OC(e,t,n){let r=new Int32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];s=sC(s);for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function kC(e,t,n){let r=new Uint32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function AC(e,t,n){let r=new Int32Array(n),i=0,a=0;for(let n=0;n<t;n++){let o=e[n],s=e[n+t],c=sC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function jC(e,t,n){let r=new BigInt64Array(n),i=0,a=0n;for(let n=0;n<t;n++){let o=Number(e[n]),s=e[n+t],c=cC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function MC(e){let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0;for(let n=1;n<e.length;n++)t[n]=t[n-1]+sC(e[n])>>>0;return t}function NC(e){let t=new BigUint64Array(e.length);t[0]=BigInt.asUintN(64,cC(e[0]));for(let n=1;n<e.length;n++)t[n]=BigInt.asUintN(64,t[n-1]+cC(e[n]));return t}function PC(e){if(e.length<2)return new Uint32Array(e);let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0,t[1]=sC(e[1])>>>0;for(let n=2;n<e.length;n+=2)t[n]=t[n-2]+sC(e[n])>>>0,t[n+1]=t[n-1]+sC(e[n+1])>>>0;return t}function IC(e){return e[1]}function LC(e){return sC(e[1])}function RC(e){if(e.length===2){let t=sC(e[1]);return [t,t]}return [sC(e[2]),sC(e[3])]}function zC(e){return e[1]}function BC(e){return cC(e[1])}function VC(e){if(e.length===2){let t=cC(e[1]);return [t,t]}return [cC(e[2]),cC(e[3])]}var HC;(function(e){e.PRESENT=`PRESENT`,e.DATA=`DATA`,e.OFFSET=`OFFSET`,e.LENGTH=`LENGTH`;})(HC||={});var UC;(function(e){e.NONE=`NONE`,e.SINGLE=`SINGLE`,e.SHARED=`SHARED`,e.VERTEX=`VERTEX`,e.MORTON=`MORTON`,e.FSST=`FSST`;})(UC||={});var WC;(function(e){e.VERTEX=`VERTEX`,e.INDEX=`INDEX`,e.STRING=`STRING`,e.KEY=`KEY`;})(WC||={});var GC;(function(e){e.VAR_BINARY=`VAR_BINARY`,e.GEOMETRIES=`GEOMETRIES`,e.PARTS=`PARTS`,e.RINGS=`RINGS`,e.TRIANGLES=`TRIANGLES`,e.SYMBOL=`SYMBOL`,e.DICTIONARY=`DICTIONARY`;})(GC||={});const KC=[HC.PRESENT,HC.DATA,HC.OFFSET,HC.LENGTH],qC=[$.NONE,$.DELTA,$.COMPONENTWISE_DELTA,$.RLE,$.MORTON],JC=[aS.NONE,aS.FAST_PFOR,aS.VARINT],YC=[UC.NONE,UC.SINGLE,UC.SHARED,UC.VERTEX,UC.MORTON,UC.FSST],XC=[WC.VERTEX,WC.INDEX,WC.STRING,WC.KEY],ZC=[GC.VAR_BINARY,GC.GEOMETRIES,GC.PARTS,GC.RINGS,GC.TRIANGLES,GC.SYMBOL,GC.DICTIONARY];function QC(e,t){let n=tw(e,t);return n.logicalLevelTechnique1===$.MORTON?$C(n,e,t):($.RLE===n.logicalLevelTechnique1||$.RLE===n.logicalLevelTechnique2)&&aS.NONE!==n.physicalLevelTechnique?ew(n,e,t):n}function $C(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:e.decompressedCount,numBits:r[0],coordinateShift:r[1]}}function ew(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:r[1],runs:r[0],numRleValues:r[1]}}function tw(e,t){let n=e[t.get()],r=KC[n>>4],i={};switch(r){case HC.DATA:i={dictionaryType:YC[n&15]};break;case HC.OFFSET:i={offsetType:XC[n&15]};break;case HC.LENGTH:i={lengthType:ZC[n&15]};}t.increment();let a=e[t.get()],o=qC[a>>5],s=qC[a>>2&7],c=JC[a&3];t.increment();let l=$S(e,t,2),u=l[0],d=l[1];return {physicalStreamType:r,logicalStreamType:i,logicalLevelTechnique1:o,logicalLevelTechnique2:s,physicalLevelTechnique:c,numValues:u,byteLength:d,decompressedCount:u}}var nw;(function(e){e[e.FLAT=0]=`FLAT`,e[e.CONST=1]=`CONST`,e[e.SEQUENCE=2]=`SEQUENCE`,e[e.DICTIONARY=3]=`DICTIONARY`,e[e.FSST_DICTIONARY=4]=`FSST_DICTIONARY`;})(nw||={});var rw=class{constructor(e,t){this.values=e,this._size=t;}get(e){let t=Math.floor(e/8),n=e%8;return (this.values[t]>>n&1)==1}set(e,t){let n=Math.floor(e/8),r=e%8;this.values[n]=this.values[n]|+!!t<<r;}getInt(e){let t=Math.floor(e/8),n=e%8;return this.values[t]>>n&1}size(){return this._size}getBuffer(){return this.values}};function iw(e,t,n){if(!t)return e;let r=t.size(),i=e.constructor,a=new i(r),o=0;for(let i=0;i<r;i++)a[i]=t.get(i)?e[o++]:n;return a}function aw(e,t,n){if(!n)return e;let r=n.size(),i=new rw(e,t),a=new rw(new Uint8Array(Math.ceil(r/8)),r),o=0;for(let e=0;e<r;e++){let t=n.get(e)?i.get(o++):false;a.set(e,t);}return a.getBuffer()}function sw(e,t,n,r,i){let a=cw(e,Math.ceil(t/8),n,r);return i?aw(a,t,i):a}function cw(e,t,n,r){let i=new Uint8Array(t),a=0,o=r.get()+n;for(;a<t&&!(r.get()>=o);){let n=e[r.increment()];if(n<=127){let o=n+3,s=e[r.increment()],c=Math.min(a+o,t);i.fill(s,a,c),a=c;}else {let o=256-n;for(let n=0;n<o&&a<t;n++)i[a++]=e[r.increment()];}}return r.set(o),i}function lw(e,t,n,r){let i=t.get(),a=i+n*Float32Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float32Array(o);return t.set(a),r?iw(s,r,0):s}function uw(e,t,n,r){let i=t.get(),a=i+n*Float64Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float64Array(o);return t.set(a),r?iw(s,r,0):s}function dw(e,t,n){let r=t.get(),i=n*Uint32Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new Uint32Array(n);for(let e=0;e<n;e++)o[e]=a.getUint32(r+e*Uint32Array.BYTES_PER_ELEMENT,true);return t.add(i),o}function fw(e,t,n){let r=t.get(),i=n*BigUint64Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new BigUint64Array(n);for(let e=0;e<n;e++)o[e]=a.getBigUint64(r+e*BigUint64Array.BYTES_PER_ELEMENT,true);return t.add(i),o}const pw=new TextDecoder;function mw(e,t,n){return n-t>=12?pw.decode(e.subarray(t,n)):hw(e,t,n)}function hw(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function gw(e,t,n,r,i){return jw(yw(e,t,n),n,r,i)}function _w(e,t,n,r,i){return Mw(yw(e,t,n),n,r,i)}function vw(e,t,n){return Iw(yw(e,t,n),n)}function yw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.FAST_PFOR:return aC(e,n.numValues,n.byteLength,t);case aS.VARINT:return $S(e,t,n.numValues);case aS.NONE:return dw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function bw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.VARINT:return eC(e,t,n.numValues);case aS.NONE:return fw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function xw(e,t,n){let r=yw(e,t,n);return r.length===1?sC(r[0]):LC(r)}function Sw(e,t,n){let r=yw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?sC(r[0]):r[0]:IC(r)}function Cw(e,t,n){return RC(yw(e,t,n))}function ww(e,t,n){return VC(eC(e,t,n.numValues))}function Tw(e,t,n,r){return Nw(bw(e,t,n),n,r)}function Ew(e,t,n,r){return Pw(bw(e,t,n),n,r)}function Dw(e,t,n,r){let i=Ow(e,t,n,false);return r?iw(i,r,0):i}function Ow(e,t,n,r){if(n.physicalLevelTechnique===aS.VARINT)return Fw(nC(e,t,n.numValues),n,r);let i=bw(e,t,n),a=Pw(i,n);return Float64Array.from(a,Number)}function kw(e,t,n){let r=bw(e,t,n);return r.length===1?cC(r[0]):BC(r)}function Aw(e,t,n){let r=bw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?cC(r[0]):r[0]:zC(r)}function jw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;if(!r)return AC(e,n.runs,n.numRleValues);e=pC(e,n.runs,n.numRleValues),i=gC(e);}else i=gC(e);break;case $.RLE:i=yC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=new Int32Array(e);break;case $.COMPONENTWISE_DELTA:i=wC(e);break;case $.NONE:i=uC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Mw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;i=MC(pC(e,n.runs,n.numRleValues));}else i=MC(e);break;case $.RLE:i=pC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=e;break;case $.COMPONENTWISE_DELTA:i=PC(e);break;case $.NONE:i=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Nw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let i=t;if(!n)return jC(e,i.runs,i.numRleValues);e=mC(e,i.runs,i.numRleValues),r=_C(e);}else r=_C(e);break;case $.RLE:r=bC(e,t.runs,t.numRleValues);break;case $.NONE:r=dC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Pw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;r=NC(mC(e,n.runs,n.numRleValues));}else r=NC(e);break;case $.RLE:r=mC(e,t.runs,t.numRleValues);break;case $.NONE:r=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Fw(e,t,n){switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;e=hC(e,n.runs,n.numRleValues);}return vC(e),e;case $.RLE:return zw(e,t,n);case $.NONE:return e;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}}function Iw(e,t){if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.NONE)return DC(e);if(t.logicalLevelTechnique1===$.RLE&&t.logicalLevelTechnique2===$.NONE){let n=t;return kC(e,n.runs,n.numRleValues)}if(t.logicalLevelTechnique1===$.NONE&&t.logicalLevelTechnique2===$.NONE){CC(e);let n=new Uint32Array(t.numValues+1);return n[0]=0,n.set(e,1),n}if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.RLE){let n=t,r=OC(e,n.runs,n.numRleValues);return SC(r),new Uint32Array(r)}throw Error(`Only delta encoding is supported for transforming length to offset streams yet.`)}function Lw(e,t,n,r,i=`int32`){let a=e.logicalLevelTechnique1;if(a===$.RLE)return e.runs===1?nw.CONST:nw.FLAT;if(a!==$.DELTA||e.logicalLevelTechnique2!==$.RLE)return e.numValues===1?nw.CONST:nw.FLAT;let o=t instanceof rw?t.size():t,s=e;if(s.numRleValues!==o)return nw.FLAT;if(s.runs===1)return nw.SEQUENCE;if(s.runs!==2)return e.numValues===1?nw.CONST:nw.FLAT;let c=r.get();if(e.physicalLevelTechnique===aS.VARINT)return Rw(n,r,i)?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT;let l=r.get(),u=new Int32Array(n.buffer,n.byteOffset+l,4);return r.set(c),u[2]===2&&u[3]===2?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT}function Rw(e,t,n){let r=new iS(t.get());if(n===`int64`){let t=eC(e,r,4);return t[2]===2n&&t[3]===2n}let i=$S(e,r,4);return i[2]===2&&i[3]===2}function zw(e,t,n){return n?xC(e,t.runs,t.numRleValues):hC(e,t.runs,t.numRleValues)}var Bw=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Vw=class extends Xx{constructor(e,t,n,r,i){super(e,i?BigInt64Array.of(t):BigUint64Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}};function Hw(e,t,n){return {x:Uw(e,t)-n,y:Uw(e>>1,t)-n}}function Uw(e,t){let n=0;for(let r=0;r<t;r++)n|=(e&1<<2*r)>>r;return n}var Ww;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`,e[e.MULTIPOINT=3]=`MULTIPOINT`,e[e.MULTILINESTRING=4]=`MULTILINESTRING`,e[e.MULTIPOLYGON=5]=`MULTIPOLYGON`;})(Ww||={});var Gw;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`;})(Gw||={});var Kw;(function(e){e[e.MORTON=0]=`MORTON`,e[e.VEC_2=1]=`VEC_2`,e[e.VEC_3=2]=`VEC_3`;})(Kw||={});function qw(e){let t=Array(e.numGeometries),n=1,r=1,i=1,a=0,o=0,s=0,c=e.mortonSettings,l=e.topologyVector,d=l.geometryOffsets,f=l.partOffsets,p=l.ringOffsets,m=e.vertexOffsets,h=!m||m.length===0,g=e.containsPolygonGeometry(),_=e.vertexBuffer;for(let l=0;l<e.numGeometries;l++){let v=e.geometryType(l);switch(v){case Ww.POINT:{let l,g;if(h)l=_[o++],g=_[o++];else if(e.vertexBufferType===Kw.MORTON){let e=_[m[s++]],t=Hw(e,c.numBits,c.coordinateShift);l=t.x,g=t.y;}else {let e=m[s++]*2;l=_[e],g=_[e+1];}t[a++]=[[new u(l,g)]],d&&i++,f&&n++,p&&r++;}break;case Ww.MULTIPOINT:{let l=d[i]-d[i-1];i++;let f;if(h){f=Array(l);for(let e=0;e<l;e++){let t=_[o++],n=_[o++];f[e]=new u(t,n);}}else f=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l;t[a++]=f.map(e=>[e]),n+=l,r+=l;}break;case Ww.LINESTRING:{let l;g?(l=p[r]-p[r-1],r++):l=f[n]-f[n-1],n++;let u;h?(u=Yw(_,o,l,false),o+=l*2):(u=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l),t[a++]=[u],d&&i++;}break;case Ww.POLYGON:{let l=f[n]-f[n-1];n++;let u=Array(l-1),g,v=p[r]-p[r-1];if(r++,h){g=Yw(_,o,v,true),o+=v*2;for(let e=0;e<u.length;e++)v=p[r]-p[r-1],r++,u[e]=Yw(_,o,v,true),o+=v*2;}else {g=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;for(let t=0;t<u.length;t++)v=p[r]-p[r-1],r++,u[t]=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;}t[a++]=[g].concat(u),d&&i++;}break;case Ww.MULTILINESTRING:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i;if(g?(i=p[r]-p[r-1],r++):i=f[n]-f[n-1],n++,h)u[t]=Yw(_,o,i,false),o+=i*2;else {let n=Jw(e.vertexBufferType,_,m,s,i,false,c);u[t]=n,s+=i;}}t[a++]=u;}break;case Ww.MULTIPOLYGON:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i=f[n]-f[n-1];n++;let a,l=Array(i-1),d=p[r]-p[r-1];r++,h?(a=Yw(_,o,d,true),o+=d*2):(a=Jw(e.vertexBufferType,_,m,s,d,true,c),s+=d);for(let t=0;t<l.length;t++){let n=p[r]-p[r-1];r++,h?(l[t]=Yw(_,o,n,true),o+=n*2):(l[t]=Jw(e.vertexBufferType,_,m,s,n,true,c),s+=n);}u[t]=[a].concat(l);}t[a++]=u.flat();}break;default:throw Error(`The specified geometry type (${v}) is currently not supported.`)}}return t}function Jw(e,t,n,r,i,a,o){return e===Kw.MORTON?Zw(t,n,r,i,a,o):Xw(t,n,r,i,a)}function Yw(e,t,n,r){let i=Array(r?n+1:n);for(let r=0;r<n*2;r+=2){let n=e[t+r],a=e[t+r+1];i[r/2]=new u(n,a);}return r&&(i[i.length-1]=i[0]),i}function Xw(e,t,n,r,i){let a=Array(i?r+1:r);for(let i=0;i<r*2;i+=2){let r=t[n+i/2]*2,o=e[r],s=e[r+1];a[i/2]=new u(o,s);}return i&&(a[a.length-1]=a[0]),a}function Zw(e,t,n,r,i,a){let o=Array(i?r+1:r);for(let i=0;i<r;i++){let r=e[t[n+i]],s=Hw(r,a.numBits,a.coordinateShift);o[i]=new u(s.x,s.y);}return i&&(o[o.length-1]=o[0]),o}var Qw=class{constructor(e,t,n,r,i){this._vertexBufferType=e,this._topologyVector=t,this._vertexOffsets=n,this._vertexBuffer=r,this._mortonSettings=i;}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}getSimpleEncodedVertex(e){let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){let t=this.vertexOffsets[e],n=this.vertexBuffer[t],r=Hw(n,this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return [r.x,r.y]}let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getGeometries(){return qw(this)}get mortonSettings(){return this._mortonSettings}};function $w(e,t,n,r,i){return new tT(e,t,Kw.VEC_2,n,r,i)}function eT(e,t,n,r,i,a){return new tT(e,t,Kw.MORTON,n,r,i,a)}var tT=class extends Qw{constructor(e,t,n,r,i,a,o){super(n,r,i,a,o),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===Ww.POLYGON||this._geometryType===Ww.MULTIPOLYGON}containsSingleGeometryType(){return true}};function nT(e,t,n,r){return new iT(Kw.VEC_2,e,t,n,r)}function rT(e,t,n,r,i){return new iT(Kw.MORTON,e,t,n,r,i)}var iT=class extends Qw{constructor(e,t,n,r,i,a){super(e,n,r,i,a),this._geometryTypes=t;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===Ww.POLYGON||this.geometryType(e)===Ww.MULTIPOLYGON)return true;return false}containsSingleGeometryType(){return false}},aT=class{constructor(e,t,n,r){this._triangleOffsets=e,this._indexBuffer=t,this._vertexBuffer=n,this._topologyVector=r;}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw Error(`Cannot convert GpuVector to coordinates without topology information`);let e=new Uint32Array(this.numGeometries);for(let t=0;t<this.numGeometries;t++)e[t]=this.geometryType(t);return nT(e,this._topologyVector,void 0,this._vertexBuffer).getGeometries()}[Symbol.iterator](){return null}};function oT(e,t,n,r,i,a){return new sT(e,t,n,r,i,a)}var sT=class extends aT{constructor(e,t,n,r,i,a){super(n,r,i,a),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return true}};function cT(e,t,n,r,i){return new lT(e,t,n,r,i)}var lT=class extends aT{constructor(e,t,n,r,i){super(t,n,r,i),this._geometryTypes=e;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return false}};function uT(e,t,n,r,i){let a=QC(e,n),o=Lw(a,r,e,n),s,c,l,u;if(o===nw.CONST){let o=Sw(e,n,a),d,f,p,m;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:d=vw(e,n,t);break;case GC.PARTS:f=vw(e,n,t);break;case GC.RINGS:p=vw(e,n,t);break;case GC.TRIANGLES:m=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}return u?d!==void 0||f!==void 0?oT(r,o,m,u,c,{geometryOffsets:d,partOffsets:f,ringOffsets:p}):oT(r,o,m,u,c):l===void 0?$w(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c):eT(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c,l)}let d=_w(e,n,a),f,p,m,h;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:f=_w(e,n,t);break;case GC.PARTS:p=_w(e,n,t);break;case GC.RINGS:m=_w(e,n,t);break;case GC.TRIANGLES:h=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}let g,_,v;return f?(g=dT(d,f,2),p&&m?(_=fT(d,g,p,false),v=mT(d,g,_,m)):p&&(_=pT(d,g,p))):p&&m?(_=dT(d,p,1),v=fT(d,_,m,true)):p&&(_=dT(d,p,0)),u&&!_?cT(d,h,u,c):u?cT(d,h,u,c,{geometryOffsets:g,partOffsets:_,ringOffsets:v}):l===void 0?nT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c):rT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c,l)}function dT(e,t,n){let r=new Uint32Array(e.length+1),i=0;r[0]=i;let a=0;for(let o=0;o<e.length;o++)i=r[o+1]=i+(e[o]>n?t[a++]:1);return r}function fT(e,t,n,r){let i=new Uint32Array(t[t.length-1]+1),a=0;i[0]=a;let o=1,s=0;for(let c=0;c<e.length;c++){let l=e[c],u=t[c+1]-t[c];if(l===5||l===2||r&&(l===4||l===1))for(let e=0;e<u;e++)a=i[o++]=a+n[s++];else for(let e=0;e<u;e++)i[o++]=++a;}return i}function pT(e,t,n){let r=new Uint32Array(t[t.length-1]+1),i=0;r[0]=i;let a=1,o=0;for(let s=0;s<e.length;s++){let c=e[s],l=t[s+1]-t[s];if(c===4||c===1)for(let e=0;e<l;e++)i=r[a++]=i+n[o++];else for(let e=0;e<l;e++)r[a++]=++i;}return r}function mT(e,t,n,r){let i=new Uint32Array(n[n.length-1]+1),a=0;i[0]=a;let o=1,s=1,c=0;for(let l=0;l<e.length;l++){let u=e[l],d=t[l+1]-t[l];if(u!==0&&u!==3)for(let e=0;e<d;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++)a=i[s++]=a+r[c++];}else for(let e=0;e<d;e++)i[s++]=++a,o++;}return i}var hT=class extends Kx{constructor(e,t,n){super(e,t.getBuffer(),n),this.dataVector=t;}getValueFromBuffer(e){return this.dataVector.get(e)}},gT=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},_T=class extends Kx{constructor(e,t,n,r){super(e,r?BigInt64Array.of(t):BigUint64Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},vT=class extends Kx{constructor(e,t,n,r){super(e,n,r),this.offsetBuffer=t;}},yT=class extends vT{constructor(e,t,n,r){super(e,t,n,r??t.length-1);}getValueFromBuffer(e){let t=this.offsetBuffer[e],n=this.offsetBuffer[e+1];return mw(this.dataBuffer,t,n)}},bT=class extends vT{constructor(e,t,n,r,i){super(e,n,r,i??t.length),this.indexBuffer=t,this.indexBuffer=t;}getValueFromBuffer(e){let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.dataBuffer,n,r)}};function xT(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];i===255?(n++,r++):n+=e[i];}return n}function ST(e,t,n){let r=new Uint32Array(t.length);for(let e=1;e<t.length;e++)r[e]=r[e-1]+t[e-1];let i=new Uint8Array(xT(t,n)),a=0;for(let o=0;o<n.length;o++){let s=n[o];if(s===255)o++,i[a++]=n[o];else {let n=t[s],o=r[s];for(;n-->0;)i[a++]=e[o++];}}return i}var CT=class extends vT{constructor(e,t,n,r,i,a,o,s){super(e,n,r,o??t.length),this.indexBuffer=t,this.symbolOffsetBuffer=i,this.symbolTableBuffer=a,this.sharedDictionaryCache=s;}getValueFromBuffer(e){this.decodedDictionary??(this.decodedDictionary=this.sharedDictionaryCache?.decodedDictionary,this.decodedDictionary??(this.decodedDictionary=this.decodeDictionary(),this.sharedDictionaryCache&&(this.sharedDictionaryCache.decodedDictionary=this.decodedDictionary)));let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.decodedDictionary,n,r)}decodeDictionary(){return this.symbolLengthBuffer??=this.offsetToLengthBuffer(this.symbolOffsetBuffer),ST(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer)}offsetToLengthBuffer(e){let t=new Uint32Array(e.length-1),n=e[0];for(let r=1;r<e.length;r++){let i=e[r];t[r-1]=i-n,n=i;}return t}};function wT(e,t,n,r,i){let a,o,s,c,l,u=i,d,f;for(let e=0;e<r;e++){let e=QC(t,n);switch(e.physicalStreamType){case HC.PRESENT:{let r=new rw(sw(t,e.numValues,e.byteLength,n),e.numValues);u=i??r;break}case HC.OFFSET:o=_w(t,n,e,void 0,u);break;case HC.LENGTH:{let r=vw(t,n,e);GC.DICTIONARY===e.logicalStreamType.lengthType?a=r:GC.SYMBOL===e.logicalStreamType.lengthType?c=r:d=r;break}case HC.DATA:{let r=t.subarray(n.get(),n.get()+e.byteLength);n.add(e.byteLength);let i=e.logicalStreamType.dictionaryType;UC.FSST===i?l=r:UC.SINGLE===i||UC.SHARED===i?s=r:UC.NONE===i&&(f=r);break}}}return TT(e,l,o,a,s,c,u)??ET(e,s,o,a,u)??DT(e,d,f,o,u)}function TT(e,t,n,r,i,a,o){if(t){if(!n||!r||!i||!a)throw Error(`Incomplete FSST dictionary string column "${e}"`);return new CT(e,n,r,i,a,t,o)}}function ET(e,t,n,r,i){if(t){if(!n||!r)throw Error(`Incomplete dictionary string column "${e}"`);return i?new bT(e,n,r,t,i):new bT(e,n,r,t)}}function DT(e,t,n,r,i){if(t&&n){if(r)return i?new bT(e,r,t,n,i):new bT(e,r,t,n);if(i&&i.size()!==t.length-1){let r=new Uint32Array(i.size()),a=0;for(let e=0;e<i.size();e++)i.get(e)?r[e]=a++:r[e]=0;return new bT(e,r,t,n,i)}return i?new yT(e,t,n,i):new yT(e,t,n)}}function OT(e,t,n,r){let i,a,o,s,c=false;for(;!c;){let n=QC(e,t);switch(n.physicalStreamType){case HC.LENGTH:GC.DICTIONARY===n.logicalStreamType.lengthType?i=vw(e,t,n):o=vw(e,t,n);break;case HC.DATA:UC.SINGLE===n.logicalStreamType.dictionaryType||UC.SHARED===n.logicalStreamType.dictionaryType?(a=e.subarray(t.get(),t.get()+n.byteLength),c=true):s=e.subarray(t.get(),t.get()+n.byteLength),t.add(n.byteLength);}}if(n.type!==`complexType`)throw Error(`Shared dictionary column ${n.name} must be a complex (struct) column.`);if(!i||!a)throw Error(`Incomplete shared dictionary for column "${n.name}"`);let l=n.complexType.children,u=[],d=s?{}:void 0,f=0;for(let c of l){let l=$S(e,t,1)[0];if(l===0)continue;let p=c.name?`${n.name}${c.name}`:n.name;if(c.type!==`scalarField`||c.scalarField.physicalType!==tS.STRING)throw Error(`Currently only scalar string fields are implemented for a struct.`);if(l>1&&!c.nullable||l===1&&c.nullable)throw Error(`The number of streams for the child field ${c.name} does not match its nullability. nullibilty: ${c.nullable}, numStreams: ${l}`);let m;if(c.nullable){let n=QC(e,t);m=new rw(sw(e,n.numValues,n.byteLength,t),n.numValues);}let h=_w(e,t,QC(e,t),void 0,m);if(s){if(!o)throw Error(`Incomplete shared FSST dictionary for column "${p}"`);u[f++]=new CT(p,h,i,a,o,s,m,d);}else u[f++]=new bT(p,h,i,a,m);}return u}var kT=class extends Kx{constructor(e,t,n){super(e,/* @__PURE__ */ new Uint8Array,n??t.length),this.values=t;}getValueFromBuffer(e){return this.values[e]}},AT;(function(e){e[e.STRING=1]=`STRING`,e[e.INT32=2]=`INT32`,e[e.UINT32=4]=`UINT32`,e[e.INT64=8]=`INT64`,e[e.UINT64=16]=`UINT64`,e[e.FLOAT=32]=`FLOAT`,e[e.DOUBLE=64]=`DOUBLE`,e[e.PRESENCE=128]=`PRESENCE`;})(AT||={});var jT;(function(e){e[e.FALSE=0]=`FALSE`,e[e.TRUE=1]=`TRUE`,e[e.START_MAP=2]=`START_MAP`,e[e.START_LIST=3]=`START_LIST`,e[e.COUNT=4]=`COUNT`;})(jT||={});function MT(e,t,n,r){let i=NT(n);if(r===0)return i.map(e=>new kT(e,[]));let a=PT(e,t,r),o=(a.presentStream?a.presentCount:a.lengthStream.length)/i.length,s=[],c=0,l=0;for(let e=0;e<i.length;e++){let t=zT(a,e,o,c,l);s.push(new kT(i[e],t.value,t.nullabilityBuffer)),c=t.countsEnd,l=t.valuesEnd;}return s}function NT(e){let t=e.type===`complexType`?e.complexType.children:void 0;return !t||t.length===0?[e.name]:t.map(t=>e.name+(t.name??``))}function PT(e,t,n){let r=e[t.get()];t.add(1);let i=_w(e,t,QC(e,t)),a=n-1,o=[];r&AT.STRING&&(a-=FT(e,t,o)),a-=IT(e,t,r,o),a-=LT(e,t,r,o);let s,c=0;if(r&AT.PRESENCE){let n=RT(e,t);s=n.value,c=n.count,a--;}let l=/* @__PURE__ */ new Uint32Array;if(a>0&&(l=_w(e,t,QC(e,t)),a--),a!==0)throw Error(`Unexpected number of remaining streams while decoding map column: ${a}`);return {lengthStream:i,dictionary:o,presentStream:s,presentCount:c,flattenedValues:l}}function FT(e,t,n){let r=e[t.get()];t.add(1);let i=wT(``,e,t,r);if(i)for(let e=0;e<i.size;e++)n.push(i.getValue(e));return r}function IT(e,t,n,r){let i=0;return n&AT.INT32?(GT(r,gw(e,t,QC(e,t))),i++):n&AT.INT64&&(GT(r,Tw(e,t,QC(e,t))),i++),n&AT.UINT32?(GT(r,_w(e,t,QC(e,t))),i++):n&AT.UINT64&&(GT(r,Ew(e,t,QC(e,t))),i++),i}function LT(e,t,n,r){let i=0;return n&AT.FLOAT&&(GT(r,lw(e,t,QC(e,t).numValues)),i++),n&AT.DOUBLE&&(GT(r,uw(e,t,QC(e,t).numValues)),i++),i}function RT(e,t){let n=QC(e,t);if(n.physicalStreamType!==HC.PRESENT)throw Error(`Expected PRESENT stream for map column but found: ${n.physicalStreamType}`);let r=n.numValues,i=t.get(),a=new rw(sw(e,r,n.byteLength,t),r);return t.set(i+n.byteLength),{value:a,count:r}}function zT(e,t,n,r,i){let{lengthStream:a,flattenedValues:o,presentStream:s,dictionary:c}=e,l=t*n,u=n,d;if(s){d=new rw(new Uint8Array(Math.ceil(n/8)),n),u=0;for(let e=0;e<n;e++)s.get(l+e)&&(d.set(e,true),u++);}let f=r+u;if(f>a.length)throw Error(`Merged map counts underflow while decoding child streams`);let p=Array(n),m=r,h=i;for(let e=0;e<n;e++){if(s&&!s.get(l+e)){p[e]=null;continue}let t=h+a[m++];if(t>o.length)throw Error(`Map value stream underflow while decoding feature payload`);let n=BT(o,h,t,c);p[e]=n.value,h=n.nextIndex;}let g=0;for(let e=r;e<f;e++)g+=a[e];let _=i+g;if(h!==_)throw Error(`Unused flattened map values remain after decode`);return {value:p,nullabilityBuffer:d,countsEnd:f,valuesEnd:_}}function BT(e,t,n,r){return n-t===1||e[t]===jT.START_LIST?HT(e,t,n,r):VT(e,t,n,r)}function VT(e,t,n,r){let i=Object.create(null),a=t;for(;a<n;){let t=WT(e[a++],r);if(typeof t!=`string`)throw Error(`Map key dictionary index does not resolve to a string: ${t}`);let o=HT(e,a,n,r);i[t]=o.value,a=o.nextIndex;}return {value:i,nextIndex:a}}function HT(e,t,n,r){if(t>=n)throw Error(`Unexpected end of map value stream`);let i=e[t];if(i===jT.FALSE)return {value:false,nextIndex:t+1};if(i===jT.TRUE)return {value:true,nextIndex:t+1};if(i===jT.START_MAP){let i=UT(e,t,n);return {value:VT(e,t+2,i,r).value,nextIndex:i}}if(i===jT.START_LIST){let i=UT(e,t,n),a=[],o=t+2;for(;o<i;){let t=HT(e,o,i,r);a.push(t.value),o=t.nextIndex;}return {value:a,nextIndex:i}}return {value:WT(i,r),nextIndex:t+1}}function UT(e,t,n){if(t+1>=n)throw Error(`Missing length for nested map/list payload`);let r=e[t+1];if(r<2)throw Error(`Invalid nested payload length: ${r}`);let i=t+r;if(i>n)throw Error(`Nested payload exceeds containing payload bounds`);return i}function WT(e,t){let n=e-jT.COUNT;if(n<0||n>=t.length)throw Error(`Scalar dictionary index out of range: ${e}`);return t[n]}function GT(e,t){for(let n of t)e.push(n);}function KT(e,t,n,r,i,a){return n.type===`scalarType`?qT(r,e,t,i,n.scalarType,n):n.complexType?.physicalType===nS.MAP?MT(e,t,n,r):r===0?null:OT(e,t,n)}function qT(e,t,n,r,i,a){let o;if(e===0)return null;if(a.nullable){let e=QC(t,n),r=e.numValues,i=n.get(),a=sw(t,r,e.byteLength,n);n.set(i+e.byteLength),o=new rw(a,e.numValues);}let s=o??r;switch(i.physicalType){case tS.UINT_32:case tS.INT_32:return QT(t,n,a,i,s);case tS.STRING:{let r=a.nullable?e-1:e;return wT(a.name,t,n,r,o)??null}case tS.BOOLEAN:return JT(t,n,a,r,s);case tS.UINT_64:case tS.INT_64:return ZT(t,n,a,s,i);case tS.FLOAT:return YT(t,n,a,s);case tS.DOUBLE:return XT(t,n,a,s);default:throw Error(`The specified data type for the field is currently not supported: ${i}`)}}function JT(e,t,n,r,i){let a=QC(e,t),o=a.numValues,s=t.get(),c=$T(i)?i:void 0,l=sw(e,o,a.byteLength,t,c);t.set(s+a.byteLength);let u=new rw(l,o);return new hT(n.name,u,i)}function YT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=lw(e,t,i.numValues,a);return new gT(n.name,o,r)}function XT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=uw(e,t,i.numValues,a);return new Yx(n.name,o,r)}function ZT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,r,e,t,`int64`),s=i.physicalType===tS.INT_64;if(o===nw.FLAT){let i=$T(r)?r:void 0,o=s?Tw(e,t,a,i):Ew(e,t,a,i);return new Bw(n.name,o,r)}if(o===nw.SEQUENCE){let r=ww(e,t,a);return new Vw(n.name,r[0],r[1],a.numRleValues,s)}let c=s?kw(e,t,a):Aw(e,t,a);return new _T(n.name,c,r,s)}function QT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,i,e,t),s=r.physicalType===tS.INT_32;if(o===nw.FLAT){let r=$T(i)?i:void 0,o=s?gw(e,t,a,void 0,r):_w(e,t,a,void 0,r);return new Jx(n.name,o,i)}if(o===nw.SEQUENCE){let r=Cw(e,t,a);return new Zx(n.name,r[0],r[1],a.numRleValues,s)}let c=s?xw(e,t,a):Sw(e,t,a);return new Qx(n.name,c,i,s)}function $T(e){return e instanceof rw}const eE={ID:0,ID_NULLABLE:1,ID_LONG:2,GEOMETRY:4,SCALAR_BASE:10,STRUCT:30,MAP:31};function tE(e){switch(e){case eE.ID:case eE.ID|eE.ID_NULLABLE:case eE.ID|eE.ID_LONG:case eE.ID|eE.ID_LONG|eE.ID_NULLABLE:return {nullable:(e&eE.ID_NULLABLE)!==0,columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:(e&eE.ID_LONG)!==0,type:`logicalType`,logicalType:rS.ID}};case eE.GEOMETRY:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.GEOMETRY,children:[]}};case eE.STRUCT:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.STRUCT,children:[]}};case eE.MAP:return {nullable:true,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.MAP,children:[]}};default:return sE(e)}}function nE(e){return e>=eE.SCALAR_BASE}function rE(e){return e===eE.STRUCT||e===eE.MAP}function iE(e){if(e.type===`scalarType`){let t=e.scalarType;if(t.type===`physicalType`)switch(t.physicalType){case tS.BOOLEAN:case tS.INT_8:case tS.UINT_8:case tS.INT_32:case tS.UINT_32:case tS.INT_64:case tS.UINT_64:case tS.FLOAT:case tS.DOUBLE:return false;case tS.STRING:return true;default:return false}if(t.type===`logicalType`)return false}else if(e.type===`complexType`){let t=e.complexType;if(t.type===`physicalType`)switch(t.physicalType){case nS.GEOMETRY:case nS.STRUCT:case nS.MAP:return true;default:return false}}return console.warn(`Unexpected column type in hasStreamCount`,e),false}function aE(e){return e.type===`scalarType`&&e.scalarType?.type===`logicalType`&&e.scalarType.logicalType===rS.ID}function oE(e){return e.type===`complexType`&&e.complexType?.type===`physicalType`&&e.complexType.physicalType===nS.GEOMETRY}function sE(e){let t;switch(e){case 10:case 11:t=tS.BOOLEAN;break;case 12:case 13:t=tS.INT_8;break;case 14:case 15:t=tS.UINT_8;break;case 16:case 17:t=tS.INT_32;break;case 18:case 19:t=tS.UINT_32;break;case 20:case 21:t=tS.INT_64;break;case 22:case 23:t=tS.UINT_64;break;case 24:case 25:t=tS.FLOAT;break;case 26:case 27:t=tS.DOUBLE;break;case 28:case 29:t=tS.STRING;break;default:return null}return {nullable:!!(e&1),columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:false,type:`physicalType`,physicalType:t}}}const cE=new TextDecoder,lE=`0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT), 31(MAP)`;function uE(e,t){let n=$S(e,t,1)[0];if(n===0)return ``;let r=t.get(),i=r+n,a=e.subarray(r,i);return t.add(n),cE.decode(a)}function dE(e){let t=e.name,n=e.nullable;return e.type===`scalarType`?{type:`scalarField`,scalarField:e.scalarType,name:t,nullable:n}:{type:`complexField`,complexField:e.complexType,name:t,nullable:n}}function fE(e,t){let n=$S(e,t,1)[0]>>>0,r=n>=eE.SCALAR_BASE?tE(n):null;if(!r)throw Error(`Unsupported field type code ${n}. Supported: 10-29(scalars), 30(STRUCT), 31(MAP)`);let i={...r,name:uE(e,t)};if(i.type===`complexType`&&rE(n)){let n=i.complexType,r=$S(e,t,1)[0]>>>0;n.children=Array(r);for(let i=0;i<r;i++)n.children[i]=fE(e,t);}return dE(i)}function pE(e,t){let n=$S(e,t,1)[0]>>>0,r=tE(n);if(!r)throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let i;if(nE(n))i=uE(e,t);else if(n<eE.GEOMETRY)i=`id`;else if(n===eE.GEOMETRY)i=`geometry`;else throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let a={...r,name:i};if(a.type===`complexType`&&rE(n)){let n=$S(e,t,1)[0]>>>0,r=a.complexType;r.children=Array(n);for(let i=0;i<n;i++)r.children[i]=fE(e,t);}return a}function mE(e,t){let n={};n.featureTables=[];let r={};if(r.name=uE(e,t),r.name.length===0)throw Error(`Missing layer name`);let i=$S(e,t,1)[0]>>>0,a=$S(e,t,1)[0]>>>0;r.columns=Array(a);for(let n=0;n<a;n++)r.columns[n]=pE(e,t);return n.featureTables.push(r),[n,i]}function hE(e,t,n=true){let r=new iS(0),i=[];for(;r.get()<e.length;){let a=$S(e,r,1)[0]>>>0,o=r.get()+a;if(o>e.length)throw Error(`Block overruns tile: ${o} > ${e.length}`);let s=$S(e,r,1)[0]>>>0;if(s!==1&&s!==2){r.set(o);continue}let[c,l]=mE(e,r),u=c.featureTables[0],d=null,f=null,p=[],m=0;for(let i of u.columns){let a=i.name;if(aE(i)){let t=null;if(i.nullable){let n=QC(e,r),i=r.get(),a=sw(e,n.numValues,n.byteLength,r);r.set(i+n.byteLength),t=new rw(a,n.numValues);}let o=QC(e,r);m=t?t.size():o.decompressedCount,d=gE(e,i,r,a,o,t??m,n);}else if(oE(i)){let n=$S(e,r,1)[0];if(m===0){let t=r.get();m=QC(e,r).decompressedCount,r.set(t);}f=uT(e,n,r,m,t);}else {let t=iE(i)?$S(e,r,1)[0]:1;if(t===0)continue;let n=KT(e,r,i,t,m);if(n){if(Array.isArray(n))for(let e of n)p.push(e);else p.push(n);}}}let h=new $x(u.name,f,d,p,l);i.push(h),r.set(o);}return i}function gE(e,t,n,r,i,a,o=false){let s=t.scalarType?.longID?tS.UINT_64:tS.UINT_32,c=typeof a==`number`?void 0:a,l=Lw(i,a,e,n,s===tS.UINT_64?`int64`:`int32`);if(s===tS.UINT_32)switch(l){case nw.FLAT:return new Jx(r,_w(e,n,i,void 0,c),a);case nw.SEQUENCE:{let t=Cw(e,n,i);return new Zx(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new Qx(r,Sw(e,n,i),a,false)}switch(l){case nw.FLAT:return o?new Yx(r,Dw(e,n,i,c),a):new Bw(r,Ew(e,n,i,c),a);case nw.SEQUENCE:{let t=ww(e,n,i);return new Vw(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new _T(r,Aw(e,n,i),a,false)}throw Error(`Vector type not supported for id column.`)}var vE=class{constructor(e,t){switch(this._featureData=e,this.properties=this._featureData.properties||{},this._featureData.geometry?.type){case Ww.POINT:case Ww.MULTIPOINT:this.type=1;break;case Ww.LINESTRING:case Ww.MULTILINESTRING:this.type=2;break;case Ww.POLYGON:case Ww.MULTIPOLYGON:this.type=3;break;default:this.type=0;}this.extent=t,this.id=Number(this._featureData.id);}loadGeometry(){let e=[];for(let t of this._featureData.geometry.coordinates){let n=[];for(let e of t)n.push(new u(e.x,e.y));e.push(n);}return e}},yE=class{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length;}feature(e){return new vE(this.features[e],this.extent)}},bE=class{constructor(e){this.layers={};let t=hE(new Uint8Array(e));this.layers=t.reduce((e,t)=>({...e,[t.name]:new yE(t)}),{});}};K(`FeatureIndex`,class{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Jn(P,16,0),this.grid3D=new Jn(P,16,0),this.featureIndexArray=new qu,this.promoteId=t;}insert(e,t,n,r,i,a){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i);let s=a?this.grid3D:this.grid;for(let e of t){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)t[0]=Math.min(t[0],n.x),t[1]=Math.min(t[1],n.y),t[2]=Math.max(t[2],n.x),t[3]=Math.max(t[3],n.y);t[0]<8192&&t[1]<8192&&t[2]>=0&&t[3]>=0&&s.insert(o,t[0],t[1],t[2],t[3]);}}loadVTLayers(){if(!this.vtLayers){switch(this.encoding){case `mlt`:this.vtLayers=new bE(this.rawTileData).layers;break;default:this.vtLayers=new Gm(new V_(this.rawTileData)).layers;}this.sourceLayerCoder=new Wx(this.vtLayers?Object.keys(this.vtLayers).sort():[Ux]);}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params,a=P/e.tileSize/e.scale,o=Ms(i.filter,`queryRenderedFeatures filter`,i.globalState),s=e.queryGeometry,c=e.queryPadding*a,l=$d.fromPoints(s),u=this.grid.query(l.minX-c,l.minY-c,l.maxX+c,l.maxY+c),d=$d.fromPoints(e.cameraQueryGeometry).expandBy(c),f=this.grid3D.query(d.minX,d.minY,d.maxX,d.maxY,(t,n,r,i)=>yf(e.cameraQueryGeometry,t-c,n-c,r+c,i+c));for(let e of f)u.push(e);u.sort(CE);let p={},m;for(let c of u){if(c===m)continue;m=c;let l=this.featureIndexArray.get(c),u=null;this.loadMatchingFeature(p,l.bucketIndex,l.sourceLayerIndex,l.featureIndex,o,i.layers,i.availableImages,t,n,e.transform.worldCoordinateHelper,r,(t,n,r)=>(u||=Zd(t),n.queryIntersectsFeature({queryGeometry:s,feature:t,featureState:r,geometry:u,zoom:this.z,transform:e.transform,pixelsToTileUnits:a,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation})));}return p}loadMatchingFeature(e,t,n,r,i,a,o,s,c,l,u,d){let f=this.bucketLayerIDs[t];if(a&&!f.some(e=>a.has(e)))return;let p=this.sourceLayerCoder.decode(n),m=this.vtLayers[p].feature(r);if(i.needGeometry){let e=Qd(m,true);if(!i.filter(new Ll(this.tileID.overscaledZ),e,this.tileID.canonical))return}else if(!i.filter(new Ll(this.tileID.overscaledZ),m))return;let h=this.getId(m,p);for(let t of f){if(a&&!a.has(t))continue;let n=s[t];if(!n)continue;let i={};h&&u&&(i=u.getState(n.sourceLayer||`_geojsonTileLayer`,h));let f=I({},c[t]);f.paint=SE(f.paint,n.paint,m,i,o),f.layout=SE(f.layout,n.layout,m,i,o);let p=!d||d(m,n,i);if(!p)continue;let g=new Gx(m,this.z,this.x,this.y,h,l);g.layer=f;let _=e[t];_===void 0&&(_=e[t]=[]),_.push({featureIndex:r,feature:g,intersectionZ:p});}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=Ms(i.filterSpec,`queryRenderedFeatures symbol filter`,i.globalState);for(let u of e)this.loadMatchingFeature(c,n,r,u,l,a,o,s,t,i.worldCoordinateHelper);return c}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return true;return false}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];n=e.properties[r],typeof n==`boolean`&&(n=Number(n)),n===void 0&&e.properties?.cluster&&this.promoteId&&(n=Number(e.properties.cluster_id));}return n}},{omit:[`rawTileData`,`sourceLayerCoder`]});function xE(e){return typeof e==`object`&&!!e&&`evaluate`in e}function SE(e,t,n,r,i){return Nt(e,(e,a)=>{let o=t instanceof Gl?t.get(a):null;return xE(o)?o.evaluate(n,r,void 0,i):o})}function CE(e,t){return t-e}T();gg.members.find(e=>e.name===`crossTileID`).offset/4;var pO=`#ifdef GL_ES
|
|
20207
|
+
precision mediump float;
|
|
20208
|
+
#else
|
|
20209
|
+
#if !defined(lowp)
|
|
20210
|
+
#define lowp
|
|
20211
|
+
#endif
|
|
20212
|
+
#if !defined(mediump)
|
|
20213
|
+
#define mediump
|
|
20214
|
+
#endif
|
|
20215
|
+
#if !defined(highp)
|
|
20216
|
+
#define highp
|
|
20217
|
+
#endif
|
|
20218
|
+
#endif
|
|
20219
|
+
out highp vec4 fragColor;layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,mO=`#ifdef GL_ES
|
|
20220
|
+
precision highp float;
|
|
20221
|
+
#else
|
|
20222
|
+
#if !defined(lowp)
|
|
20223
|
+
#define lowp
|
|
20224
|
+
#endif
|
|
20225
|
+
#if !defined(mediump)
|
|
20226
|
+
#define mediump
|
|
20227
|
+
#endif
|
|
20228
|
+
#if !defined(highp)
|
|
20229
|
+
#define highp
|
|
20230
|
+
#endif
|
|
20231
|
+
#endif
|
|
20232
|
+
vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const uint packedOpacity) {return vec2(float(packedOpacity >> 1u)/127.0,float(packedOpacity & 1u));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
|
|
20233
|
+
);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
|
|
20234
|
+
);}
|
|
20235
|
+
#ifdef TERRAIN3D
|
|
20236
|
+
uniform sampler2D u_terrain;uniform highp sampler2D u_depth;layout(std140) uniform TerrainUBO {highp mat4 u_terrain_matrix;highp vec4 u_terrain_unpack;highp float u_terrain_dim;highp float u_terrain_exaggeration;};
|
|
20237
|
+
#endif
|
|
20238
|
+
const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
|
|
20239
|
+
#ifdef TERRAIN3D
|
|
20240
|
+
highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
|
|
20241
|
+
#else
|
|
20242
|
+
return 1.0;
|
|
20243
|
+
#endif
|
|
20244
|
+
}float calculate_visibility(vec4 pos) {
|
|
20245
|
+
#ifdef TERRAIN3D
|
|
20246
|
+
vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
|
|
20247
|
+
#else
|
|
20248
|
+
return 1.0;
|
|
20249
|
+
#endif
|
|
20250
|
+
}float ele(ivec2 pos) {
|
|
20251
|
+
#ifdef TERRAIN3D
|
|
20252
|
+
vec4 rgb=(texelFetch(u_terrain,pos,0)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
|
|
20253
|
+
#else
|
|
20254
|
+
return 0.0;
|
|
20255
|
+
#endif
|
|
20256
|
+
}float get_elevation(vec2 pos) {
|
|
20257
|
+
#ifdef TERRAIN3D
|
|
20258
|
+
#ifdef GLOBE
|
|
20259
|
+
if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
|
|
20260
|
+
#endif
|
|
20261
|
+
vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.5;vec2 f=fract(coord);ivec2 c=ivec2(floor(coord));ivec2 hi=textureSize(u_terrain,0)-1;float tl=ele(clamp(c,ivec2(0),hi));float tr=ele(clamp(c+ivec2(1,0),ivec2(0),hi));float bl=ele(clamp(c+ivec2(0,1),ivec2(0),hi));float br=ele(clamp(c+ivec2(1,1),ivec2(0),hi));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
|
|
20262
|
+
#else
|
|
20263
|
+
return 0.0;
|
|
20264
|
+
#endif
|
|
20265
|
+
}const float PI=3.141592653589793;
|
|
20266
|
+
#define PROJECTION_UBO
|
|
20267
|
+
layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,hO=`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
|
|
20268
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20269
|
+
fragColor=vec4(1.0);
|
|
20270
|
+
#endif
|
|
20271
|
+
}`,gO=`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`,_O=`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
|
|
20272
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20273
|
+
fragColor=vec4(1.0);
|
|
20274
|
+
#endif
|
|
20275
|
+
}`,vO=`uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}`,yO=`in vec3 v_data;in float v_visibility;
|
|
20276
|
+
#pragma maplibre: define highp vec4 color
|
|
20277
|
+
#pragma maplibre: define mediump float radius
|
|
20278
|
+
#pragma maplibre: define lowp float blur
|
|
20279
|
+
#pragma maplibre: define lowp float opacity
|
|
20280
|
+
#pragma maplibre: define highp vec4 stroke_color
|
|
20281
|
+
#pragma maplibre: define mediump float stroke_width
|
|
20282
|
+
#pragma maplibre: define lowp float stroke_opacity
|
|
20283
|
+
void main() {
|
|
20284
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20285
|
+
#pragma maplibre: initialize mediump float radius
|
|
20286
|
+
#pragma maplibre: initialize lowp float blur
|
|
20287
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20288
|
+
#pragma maplibre: initialize highp vec4 stroke_color
|
|
20289
|
+
#pragma maplibre: initialize mediump float stroke_width
|
|
20290
|
+
#pragma maplibre: initialize lowp float stroke_opacity
|
|
20291
|
+
vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
|
|
20292
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20293
|
+
fragColor=vec4(1.0);
|
|
20294
|
+
#endif
|
|
20295
|
+
}`,bO=`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform vec2 u_translate;layout(location=0) in ivec2 a_pos;out vec3 v_data;out float v_visibility;
|
|
20296
|
+
#pragma maplibre: define highp vec4 color
|
|
20297
|
+
#pragma maplibre: define mediump float radius
|
|
20298
|
+
#pragma maplibre: define lowp float blur
|
|
20299
|
+
#pragma maplibre: define lowp float opacity
|
|
20300
|
+
#pragma maplibre: define highp vec4 stroke_color
|
|
20301
|
+
#pragma maplibre: define mediump float stroke_width
|
|
20302
|
+
#pragma maplibre: define lowp float stroke_opacity
|
|
20303
|
+
void main(void) {
|
|
20304
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20305
|
+
#pragma maplibre: initialize mediump float radius
|
|
20306
|
+
#pragma maplibre: initialize lowp float blur
|
|
20307
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20308
|
+
#pragma maplibre: initialize highp vec4 stroke_color
|
|
20309
|
+
#pragma maplibre: initialize mediump float stroke_width
|
|
20310
|
+
#pragma maplibre: initialize lowp float stroke_opacity
|
|
20311
|
+
ivec2 pos_raw=a_pos+32768;vec2 extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;vec2 circle_center=vec2(pos_raw >> 3)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
|
|
20312
|
+
#ifdef GLOBE
|
|
20313
|
+
vec3 center_vector=projectToSphere(circle_center);
|
|
20314
|
+
#endif
|
|
20315
|
+
float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
|
|
20316
|
+
#ifdef GLOBE
|
|
20317
|
+
vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
|
|
20318
|
+
#else
|
|
20319
|
+
vec4 projected_center=projectTileWithElevation(circle_center,ele);
|
|
20320
|
+
#endif
|
|
20321
|
+
corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
|
|
20322
|
+
#ifdef GLOBE
|
|
20323
|
+
vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
|
|
20324
|
+
#else
|
|
20325
|
+
gl_Position=projectTileWithElevation(corner_position,ele);
|
|
20326
|
+
#endif
|
|
20327
|
+
} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`,xO=`void main() {fragColor=vec4(1.0);}`;({prelude:CO(pO,mO),projectionMercator:CO(`
|
|
20328
|
+
void clipAntimeridian() {}`,`float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}`),projectionGlobe:CO(`in highp float v_projection_tile_x;void clipAntimeridian() {if (u_projection_clip_antimeridian !=0 && (v_projection_tile_x < 0.0 || v_projection_tile_x >=8192.0)) {discard;}}`,`#define GLOBE_RADIUS 6371008.8
|
|
20329
|
+
#ifndef PROJECTION_UBO
|
|
20330
|
+
uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;
|
|
20331
|
+
#endif
|
|
20332
|
+
out highp float v_projection_tile_x;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
|
|
20333
|
+
);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float t=exp(PI-(mercator_pos_y*PI*2.0));return (2.0*t)/(t*t+1.0);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;float spherical_x=mercator_pos.x*PI*2.0+PI;float t=exp(PI-(mercator_pos.y*PI*2.0));float t2=t*t;float denom=t2+1.0;float sin_sy=(t2-1.0)/denom;float cos_sy=(2.0*t)/denom;vec3 pos=vec3(sin(spherical_x)*cos_sy,sin_sy,cos(spherical_x)*cos_sy
|
|
20334
|
+
);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:CO(hO,gO),backgroundPattern:CO(_O,vO),circle:CO(yO,bO),clippingMask:CO(xO,`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`),heatmap:CO(`uniform highp float u_intensity;in vec2 v_extrude;
|
|
20335
|
+
#pragma maplibre: define highp float weight
|
|
20336
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
20337
|
+
void main() {
|
|
20338
|
+
#pragma maplibre: initialize highp float weight
|
|
20339
|
+
float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
|
|
20340
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20341
|
+
fragColor=vec4(1.0);
|
|
20342
|
+
#endif
|
|
20343
|
+
}`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;layout(location=0) in ivec2 a_pos;out vec2 v_extrude;
|
|
20344
|
+
#pragma maplibre: define highp float weight
|
|
20345
|
+
#pragma maplibre: define mediump float radius
|
|
20346
|
+
const highp float ZERO=1.0/255.0/16.0;
|
|
20347
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
20348
|
+
void main(void) {
|
|
20349
|
+
#pragma maplibre: initialize highp float weight
|
|
20350
|
+
#pragma maplibre: initialize mediump float radius
|
|
20351
|
+
ivec2 pos_raw=a_pos+32768;vec2 unscaled_extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=vec2(pos_raw >> 3);
|
|
20352
|
+
#ifdef GLOBE
|
|
20353
|
+
vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
|
|
20354
|
+
#else
|
|
20355
|
+
gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
|
|
20356
|
+
#endif
|
|
20357
|
+
}`),heatmapTexture:CO(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
|
|
20358
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20359
|
+
fragColor=vec4(0.0);
|
|
20360
|
+
#endif
|
|
20361
|
+
}`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world_size,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),collisionBox:CO(`in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}`,`layout(location=0) in vec2 a_anchor_pos;layout(location=1) in vec2 a_placed;layout(location=2) in vec2 a_box_real;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:CO(`in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;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);fragColor=color*alpha*opacity_t;}`,`layout(location=0) in vec2 a_pos;layout(location=1) in float a_radius;layout(location=2) in vec2 a_flags;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {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;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),colorRelief:CO(`#ifdef GL_ES
|
|
20362
|
+
precision highp float;
|
|
20363
|
+
#endif
|
|
20364
|
+
uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {vec4 data=texelFetch(u_elevation_stops,ivec2(stop,0),0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
|
|
20365
|
+
{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
|
|
20366
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20367
|
+
fragColor=vec4(1.0);
|
|
20368
|
+
#endif
|
|
20369
|
+
}`,`uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=2.0/u_dimension;float scale=(u_dimension.x-4.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),debug:CO(`uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}`,`layout(location=0) in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}`),depth:CO(xO,`layout(location=0) in vec2 a_pos;void main() {
|
|
20370
|
+
#ifdef GLOBE
|
|
20371
|
+
gl_Position=projectTileFor3D(a_pos,0.0);
|
|
20372
|
+
#else
|
|
20373
|
+
gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
|
|
20374
|
+
#endif
|
|
20375
|
+
}`),fill:CO(`#pragma maplibre: define highp vec4 color
|
|
20376
|
+
#pragma maplibre: define lowp float opacity
|
|
20377
|
+
void main() {
|
|
20378
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20379
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20380
|
+
fragColor=color*opacity;
|
|
20381
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20382
|
+
fragColor=vec4(1.0);
|
|
20383
|
+
#endif
|
|
20384
|
+
}`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;
|
|
20385
|
+
#pragma maplibre: define highp vec4 color
|
|
20386
|
+
#pragma maplibre: define lowp float opacity
|
|
20387
|
+
void main() {
|
|
20388
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20389
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20390
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:CO(`in vec2 v_pos;
|
|
20391
|
+
#ifdef GLOBE
|
|
20392
|
+
in float v_depth;
|
|
20393
|
+
#endif
|
|
20394
|
+
#pragma maplibre: define highp vec4 outline_color
|
|
20395
|
+
#pragma maplibre: define lowp float opacity
|
|
20396
|
+
void main() {
|
|
20397
|
+
#pragma maplibre: initialize highp vec4 outline_color
|
|
20398
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20399
|
+
float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
|
|
20400
|
+
#ifdef GLOBE
|
|
20401
|
+
if (v_depth > 1.0) {discard;}
|
|
20402
|
+
#endif
|
|
20403
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20404
|
+
fragColor=vec4(1.0);
|
|
20405
|
+
#endif
|
|
20406
|
+
}`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos;
|
|
20407
|
+
#ifdef GLOBE
|
|
20408
|
+
out float v_depth;
|
|
20409
|
+
#endif
|
|
20410
|
+
#pragma maplibre: define highp vec4 outline_color
|
|
20411
|
+
#pragma maplibre: define lowp float opacity
|
|
20412
|
+
void main() {
|
|
20413
|
+
#pragma maplibre: initialize highp vec4 outline_color
|
|
20414
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20415
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
|
|
20416
|
+
#ifdef GLOBE
|
|
20417
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20418
|
+
#endif
|
|
20419
|
+
}`),fillOutlinePattern:CO(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;uniform bool u_sdf_pattern;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
|
|
20420
|
+
#ifdef GLOBE
|
|
20421
|
+
in float v_depth;
|
|
20422
|
+
#endif
|
|
20423
|
+
#pragma maplibre: define lowp float opacity
|
|
20424
|
+
#pragma maplibre: define highp vec4 color
|
|
20425
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20426
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20427
|
+
void main() {
|
|
20428
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20429
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20430
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20431
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20432
|
+
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=texture(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=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*alpha*opacity;} else {fragColor=mix(color1,color2,u_fade)*alpha*opacity;}
|
|
20433
|
+
#ifdef GLOBE
|
|
20434
|
+
if (v_depth > 1.0) {discard;}
|
|
20435
|
+
#endif
|
|
20436
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20437
|
+
fragColor=vec4(1.0);
|
|
20438
|
+
#endif
|
|
20439
|
+
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
|
|
20440
|
+
#ifdef GLOBE
|
|
20441
|
+
out float v_depth;
|
|
20442
|
+
#endif
|
|
20443
|
+
#pragma maplibre: define lowp float opacity
|
|
20444
|
+
#pragma maplibre: define highp vec4 color
|
|
20445
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20446
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20447
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20448
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20449
|
+
void main() {
|
|
20450
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20451
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20452
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20453
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20454
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20455
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20456
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}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=projectTile(a_pos+u_fill_translate,a_pos);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_size;
|
|
20457
|
+
#ifdef GLOBE
|
|
20458
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20459
|
+
#endif
|
|
20460
|
+
}`),fillPattern:CO(`#ifdef GL_ES
|
|
20461
|
+
precision highp float;
|
|
20462
|
+
#endif
|
|
20463
|
+
uniform vec2 u_texsize;uniform float u_fade;uniform bool u_sdf_pattern;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
|
|
20464
|
+
#pragma maplibre: define lowp float opacity
|
|
20465
|
+
#pragma maplibre: define highp vec4 color
|
|
20466
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20467
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20468
|
+
void main() {
|
|
20469
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20470
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20471
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20472
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20473
|
+
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=texture(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=texture(u_image,pos2);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*opacity;} else {fragColor=mix(color1,color2,u_fade)*opacity;}
|
|
20474
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20475
|
+
fragColor=vec4(1.0);
|
|
20476
|
+
#endif
|
|
20477
|
+
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
|
|
20478
|
+
#pragma maplibre: define lowp float opacity
|
|
20479
|
+
#pragma maplibre: define highp vec4 color
|
|
20480
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20481
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20482
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20483
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20484
|
+
void main() {
|
|
20485
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20486
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20487
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20488
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20489
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20490
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20491
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}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=projectTile(a_pos+u_fill_translate,a_pos);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);}`),fillExtrusion:CO(`in vec4 v_color;void main() {fragColor=v_color;
|
|
20492
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20493
|
+
fragColor=vec4(1.0);
|
|
20494
|
+
#endif
|
|
20495
|
+
}`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
|
|
20496
|
+
#ifdef TERRAIN3D
|
|
20497
|
+
layout(location=2) in vec2 a_centroid;
|
|
20498
|
+
#endif
|
|
20499
|
+
out vec4 v_color;
|
|
20500
|
+
#pragma maplibre: define highp float base
|
|
20501
|
+
#pragma maplibre: define highp float height
|
|
20502
|
+
#pragma maplibre: define highp vec4 color
|
|
20503
|
+
void main() {
|
|
20504
|
+
#pragma maplibre: initialize highp float base
|
|
20505
|
+
#pragma maplibre: initialize highp float height
|
|
20506
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20507
|
+
vec3 normal=vec3(a_normal_ed.xyz);float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
|
|
20508
|
+
#ifdef TERRAIN3D
|
|
20509
|
+
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
20510
|
+
#else
|
|
20511
|
+
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
20512
|
+
#endif
|
|
20513
|
+
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
|
|
20514
|
+
#ifdef GLOBE
|
|
20515
|
+
vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
20516
|
+
#else
|
|
20517
|
+
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
20518
|
+
#endif
|
|
20519
|
+
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;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
|
|
20520
|
+
#ifdef GLOBE
|
|
20521
|
+
mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
|
|
20522
|
+
#endif
|
|
20523
|
+
directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_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;}`),fillExtrusionPattern:CO(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
|
|
20524
|
+
#pragma maplibre: define lowp float base
|
|
20525
|
+
#pragma maplibre: define lowp float height
|
|
20526
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20527
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20528
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20529
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20530
|
+
void main() {
|
|
20531
|
+
#pragma maplibre: initialize lowp float base
|
|
20532
|
+
#pragma maplibre: initialize lowp float height
|
|
20533
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20534
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20535
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20536
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20537
|
+
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=texture(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=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
|
|
20538
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20539
|
+
fragColor=vec4(1.0);
|
|
20540
|
+
#endif
|
|
20541
|
+
}`,`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 vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
|
|
20542
|
+
#ifdef TERRAIN3D
|
|
20543
|
+
layout(location=2) in vec2 a_centroid;
|
|
20544
|
+
#endif
|
|
20545
|
+
#ifdef GLOBE
|
|
20546
|
+
out vec3 v_sphere_pos;
|
|
20547
|
+
#endif
|
|
20548
|
+
out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
|
|
20549
|
+
#pragma maplibre: define lowp float base
|
|
20550
|
+
#pragma maplibre: define lowp float height
|
|
20551
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20552
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20553
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20554
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20555
|
+
void main() {
|
|
20556
|
+
#pragma maplibre: initialize lowp float base
|
|
20557
|
+
#pragma maplibre: initialize lowp float height
|
|
20558
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20559
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20560
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20561
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20562
|
+
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=vec3(a_normal_ed.xyz);float edgedistance=float(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;float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
|
|
20563
|
+
#ifdef TERRAIN3D
|
|
20564
|
+
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
20565
|
+
#else
|
|
20566
|
+
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
20567
|
+
#endif
|
|
20568
|
+
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
|
|
20569
|
+
#ifdef GLOBE
|
|
20570
|
+
vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
20571
|
+
#else
|
|
20572
|
+
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
20573
|
+
#endif
|
|
20574
|
+
vec2 pos=a_normal_ed.x==1 && a_normal_ed.y==0 && a_normal_ed.z==16384
|
|
20575
|
+
? a_pos
|
|
20576
|
+
: vec2(edgedistance,elevation*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.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_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;}`),hillshadePrepare:CO(`#ifdef GL_ES
|
|
20577
|
+
precision highp float;
|
|
20578
|
+
#endif
|
|
20579
|
+
uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;uniform float u_log2_world_width;float getElevation(ivec2 texel) {vec4 data=texelFetch(u_image,texel,0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {ivec2 pos=ivec2(gl_FragCoord.xy)+ivec2(1);float tileSize=u_dimension.x-4.0;float a=getElevation(pos+ivec2(-1,-1));float b=getElevation(pos+ivec2(0,-1));float c=getElevation(pos+ivec2(1,-1));float d=getElevation(pos+ivec2(-1,0));float e=getElevation(pos);float f=getElevation(pos+ivec2(1,0));float g=getElevation(pos+ivec2(-1,1));float h=getElevation(pos+ivec2(0,1));float i=getElevation(pos+ivec2(1,1));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))*tileSize/pow(2.0,exaggeration+(3.0+u_log2_world_width-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+128.0/255.0,deriv.y/8.0+128.0/255.0,1.0,1.0),0.0,1.0);
|
|
20580
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20581
|
+
fragColor=vec4(1.0);
|
|
20582
|
+
#endif
|
|
20583
|
+
}`,`uniform mat4 u_matrix;uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;layout(location=1) in vec2 a_texture_pos;out 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;}`),hillshade:CO(`uniform sampler2D u_image;in highp vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
|
|
20584
|
+
#define PI 3.141592653589793
|
|
20585
|
+
#define STANDARD 0
|
|
20586
|
+
#define COMBINED 1
|
|
20587
|
+
#define IGOR 2
|
|
20588
|
+
#define MULTIDIRECTIONAL 3
|
|
20589
|
+
#define BASIC 4
|
|
20590
|
+
float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;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_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
|
|
20591
|
+
{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
|
|
20592
|
+
{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {highp vec2 size=vec2(textureSize(u_image,0));highp vec2 texturePos=(v_pos*(size-2.0)+1.0)/size;vec4 pixel=texture(u_image,texturePos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=(pixel.rg-128.0/255.0)*8.0/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
|
|
20593
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20594
|
+
fragColor=vec4(1.0);
|
|
20595
|
+
#endif
|
|
20596
|
+
}`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),line:CO(`in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
|
|
20597
|
+
#ifdef GLOBE
|
|
20598
|
+
in float v_depth;
|
|
20599
|
+
#endif
|
|
20600
|
+
#pragma maplibre: define highp vec4 color
|
|
20601
|
+
#pragma maplibre: define lowp float blur
|
|
20602
|
+
#pragma maplibre: define lowp float opacity
|
|
20603
|
+
void main() {
|
|
20604
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20605
|
+
#pragma maplibre: initialize lowp float blur
|
|
20606
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20607
|
+
clipAntimeridian();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);fragColor=color*(alpha*opacity);
|
|
20608
|
+
#ifdef GLOBE
|
|
20609
|
+
if (v_depth > 1.0) {discard;}
|
|
20610
|
+
#endif
|
|
20611
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20612
|
+
fragColor=vec4(1.0);
|
|
20613
|
+
#endif
|
|
20614
|
+
}`,`
|
|
20615
|
+
#define scale 0.015873016
|
|
20616
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
|
|
20617
|
+
#ifdef GLOBE
|
|
20618
|
+
out float v_depth;
|
|
20619
|
+
#endif
|
|
20620
|
+
#pragma maplibre: define highp vec4 color
|
|
20621
|
+
#pragma maplibre: define lowp float blur
|
|
20622
|
+
#pragma maplibre: define lowp float opacity
|
|
20623
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20624
|
+
#pragma maplibre: define lowp float offset
|
|
20625
|
+
#pragma maplibre: define mediump float width
|
|
20626
|
+
void main() {
|
|
20627
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20628
|
+
#pragma maplibre: initialize lowp float blur
|
|
20629
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20630
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20631
|
+
#pragma maplibre: initialize lowp float offset
|
|
20632
|
+
#pragma maplibre: initialize mediump float width
|
|
20633
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);v_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*2.0;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);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 vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20634
|
+
#ifdef GLOBE
|
|
20635
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20636
|
+
#endif
|
|
20637
|
+
#ifdef TERRAIN3D
|
|
20638
|
+
v_gamma_scale=1.0;
|
|
20639
|
+
#else
|
|
20640
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20641
|
+
#endif
|
|
20642
|
+
v_width2=vec2(outset,inset);}`),lineGradient:CO(`uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
|
|
20643
|
+
#ifdef GLOBE
|
|
20644
|
+
in float v_depth;
|
|
20645
|
+
#endif
|
|
20646
|
+
#pragma maplibre: define lowp float blur
|
|
20647
|
+
#pragma maplibre: define lowp float opacity
|
|
20648
|
+
void main() {
|
|
20649
|
+
#pragma maplibre: initialize lowp float blur
|
|
20650
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20651
|
+
clipAntimeridian();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=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
|
|
20652
|
+
#ifdef GLOBE
|
|
20653
|
+
if (v_depth > 1.0) {discard;}
|
|
20654
|
+
#endif
|
|
20655
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20656
|
+
fragColor=vec4(1.0);
|
|
20657
|
+
#endif
|
|
20658
|
+
}`,`
|
|
20659
|
+
#define scale 0.015873016
|
|
20660
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
|
|
20661
|
+
#ifdef GLOBE
|
|
20662
|
+
out float v_depth;
|
|
20663
|
+
#endif
|
|
20664
|
+
#pragma maplibre: define lowp float blur
|
|
20665
|
+
#pragma maplibre: define lowp float opacity
|
|
20666
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20667
|
+
#pragma maplibre: define lowp float offset
|
|
20668
|
+
#pragma maplibre: define mediump float width
|
|
20669
|
+
void main() {
|
|
20670
|
+
#pragma maplibre: initialize lowp float blur
|
|
20671
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20672
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20673
|
+
#pragma maplibre: initialize lowp float offset
|
|
20674
|
+
#pragma maplibre: initialize mediump float width
|
|
20675
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);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=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);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 vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20676
|
+
#ifdef GLOBE
|
|
20677
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20678
|
+
#endif
|
|
20679
|
+
#ifdef TERRAIN3D
|
|
20680
|
+
v_gamma_scale=1.0;
|
|
20681
|
+
#else
|
|
20682
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20683
|
+
#endif
|
|
20684
|
+
v_width2=vec2(outset,inset);}`),linePattern:CO(`#ifdef GL_ES
|
|
20685
|
+
precision highp float;
|
|
20686
|
+
#endif
|
|
20687
|
+
uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;
|
|
20688
|
+
#ifdef GLOBE
|
|
20689
|
+
in float v_depth;
|
|
20690
|
+
#endif
|
|
20691
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20692
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20693
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20694
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20695
|
+
#pragma maplibre: define lowp float blur
|
|
20696
|
+
#pragma maplibre: define lowp float opacity
|
|
20697
|
+
void main() {
|
|
20698
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20699
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20700
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20701
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20702
|
+
#pragma maplibre: initialize lowp float blur
|
|
20703
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20704
|
+
clipAntimeridian();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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
|
|
20705
|
+
#ifdef GLOBE
|
|
20706
|
+
if (v_depth > 1.0) {discard;}
|
|
20707
|
+
#endif
|
|
20708
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20709
|
+
fragColor=vec4(1.0);
|
|
20710
|
+
#endif
|
|
20711
|
+
}`,`
|
|
20712
|
+
#define scale 0.015873016
|
|
20713
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20714
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
|
|
20715
|
+
#ifdef GLOBE
|
|
20716
|
+
out float v_depth;
|
|
20717
|
+
#endif
|
|
20718
|
+
#pragma maplibre: define lowp float blur
|
|
20719
|
+
#pragma maplibre: define lowp float opacity
|
|
20720
|
+
#pragma maplibre: define lowp float offset
|
|
20721
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20722
|
+
#pragma maplibre: define mediump float width
|
|
20723
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20724
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20725
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20726
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20727
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20728
|
+
void main() {
|
|
20729
|
+
#pragma maplibre: initialize lowp float blur
|
|
20730
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20731
|
+
#pragma maplibre: initialize lowp float offset
|
|
20732
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20733
|
+
#pragma maplibre: initialize mediump float width
|
|
20734
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20735
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20736
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20737
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20738
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20739
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);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 vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20740
|
+
#ifdef GLOBE
|
|
20741
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20742
|
+
#endif
|
|
20743
|
+
#ifdef TERRAIN3D
|
|
20744
|
+
v_gamma_scale=1.0;
|
|
20745
|
+
#else
|
|
20746
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20747
|
+
#endif
|
|
20748
|
+
v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:CO(`uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
|
|
20749
|
+
#ifdef GLOBE
|
|
20750
|
+
in float v_depth;
|
|
20751
|
+
#endif
|
|
20752
|
+
#pragma maplibre: define highp vec4 color
|
|
20753
|
+
#pragma maplibre: define lowp float blur
|
|
20754
|
+
#pragma maplibre: define lowp float opacity
|
|
20755
|
+
#pragma maplibre: define mediump float width
|
|
20756
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20757
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20758
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20759
|
+
void main() {
|
|
20760
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20761
|
+
#pragma maplibre: initialize lowp float blur
|
|
20762
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20763
|
+
#pragma maplibre: initialize mediump float width
|
|
20764
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20765
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20766
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20767
|
+
clipAntimeridian();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=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
|
|
20768
|
+
#ifdef GLOBE
|
|
20769
|
+
if (v_depth > 1.0) {discard;}
|
|
20770
|
+
#endif
|
|
20771
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20772
|
+
fragColor=vec4(1.0);
|
|
20773
|
+
#endif
|
|
20774
|
+
}`,`
|
|
20775
|
+
#define scale 0.015873016
|
|
20776
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20777
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
|
|
20778
|
+
#ifdef GLOBE
|
|
20779
|
+
out float v_depth;
|
|
20780
|
+
#endif
|
|
20781
|
+
#pragma maplibre: define highp vec4 color
|
|
20782
|
+
#pragma maplibre: define lowp float blur
|
|
20783
|
+
#pragma maplibre: define lowp float opacity
|
|
20784
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20785
|
+
#pragma maplibre: define lowp float offset
|
|
20786
|
+
#pragma maplibre: define mediump float width
|
|
20787
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20788
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20789
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20790
|
+
void main() {
|
|
20791
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20792
|
+
#pragma maplibre: initialize lowp float blur
|
|
20793
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20794
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20795
|
+
#pragma maplibre: initialize lowp float offset
|
|
20796
|
+
#pragma maplibre: initialize mediump float width
|
|
20797
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20798
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20799
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20800
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);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 vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20801
|
+
#ifdef GLOBE
|
|
20802
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20803
|
+
#endif
|
|
20804
|
+
#ifdef TERRAIN3D
|
|
20805
|
+
v_gamma_scale=1.0;
|
|
20806
|
+
#else
|
|
20807
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20808
|
+
#endif
|
|
20809
|
+
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:CO(`uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
|
|
20810
|
+
#ifdef GLOBE
|
|
20811
|
+
in float v_depth;
|
|
20812
|
+
#endif
|
|
20813
|
+
#pragma maplibre: define lowp float blur
|
|
20814
|
+
#pragma maplibre: define lowp float opacity
|
|
20815
|
+
#pragma maplibre: define mediump float width
|
|
20816
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20817
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20818
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20819
|
+
void main() {
|
|
20820
|
+
#pragma maplibre: initialize lowp float blur
|
|
20821
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20822
|
+
#pragma maplibre: initialize mediump float width
|
|
20823
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20824
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20825
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20826
|
+
clipAntimeridian();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=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
|
|
20827
|
+
#ifdef GLOBE
|
|
20828
|
+
if (v_depth > 1.0) {discard;}
|
|
20829
|
+
#endif
|
|
20830
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20831
|
+
fragColor=vec4(1.0);
|
|
20832
|
+
#endif
|
|
20833
|
+
}`,`
|
|
20834
|
+
#define scale 0.015873016
|
|
20835
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20836
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
|
|
20837
|
+
#ifdef GLOBE
|
|
20838
|
+
out float v_depth;
|
|
20839
|
+
#endif
|
|
20840
|
+
#pragma maplibre: define lowp float blur
|
|
20841
|
+
#pragma maplibre: define lowp float opacity
|
|
20842
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20843
|
+
#pragma maplibre: define lowp float offset
|
|
20844
|
+
#pragma maplibre: define mediump float width
|
|
20845
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20846
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20847
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20848
|
+
void main() {
|
|
20849
|
+
#pragma maplibre: initialize lowp float blur
|
|
20850
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20851
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20852
|
+
#pragma maplibre: initialize lowp float offset
|
|
20853
|
+
#pragma maplibre: initialize mediump float width
|
|
20854
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20855
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20856
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20857
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);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 vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20858
|
+
#ifdef GLOBE
|
|
20859
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20860
|
+
#endif
|
|
20861
|
+
#ifdef TERRAIN3D
|
|
20862
|
+
v_gamma_scale=1.0;
|
|
20863
|
+
#else
|
|
20864
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20865
|
+
#endif
|
|
20866
|
+
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),layerOpacity:CO(`uniform sampler2D u_image;uniform float u_opacity;in vec2 v_pos;void main() {fragColor=texture(u_image,v_pos)*u_opacity;
|
|
20867
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20868
|
+
fragColor=vec4(0.0);
|
|
20869
|
+
#endif
|
|
20870
|
+
}`,`layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos.x*2.0-1.0,1.0-a_pos.y*2.0,0.0,1.0);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),raster:CO(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec3 v_pos0;in vec3 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=texture(u_image0,v_pos0.xy/v_pos0.z);vec4 color1=texture(u_image1,v_pos1.xy/v_pos1.z);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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
|
|
20871
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20872
|
+
fragColor=vec4(1.0);
|
|
20873
|
+
#endif
|
|
20874
|
+
}`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec3 u_image_warp;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;layout(location=0) in vec2 a_pos;out vec3 v_pos0;out vec3 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 topLeft=u_coords_top.xy;vec2 topRight=u_coords_top.zw;vec2 bottomLeft=u_coords_bottom.xy;vec2 bottomRight=u_coords_bottom.zw;vec2 bilinearPos=mix(mix(topLeft,topRight,fractionalPos.x),mix(bottomLeft,bottomRight,fractionalPos.x),fractionalPos.y);float denominator=dot(u_image_warp.xy,fractionalPos)+1.0;vec2 acrossTop=topRight-topLeft+u_image_warp.x*topRight;vec2 downLeft=bottomLeft-topLeft+u_image_warp.y*bottomLeft;vec2 projectivePos=(acrossTop*fractionalPos.x+downLeft*fractionalPos.y+topLeft)/denominator;vec2 position=mix(projectivePos,bilinearPos,u_image_warp.z);gl_Position=projectTile(position,position);vec2 texturePos=((fractionalPos-0.5)/u_buffer_scale)+0.5;
|
|
20875
|
+
#ifdef GLOBE
|
|
20876
|
+
if (a_pos.y <-32767.5) {texturePos.y=0.0;}if (a_pos.y > 32766.5) {texturePos.y=1.0;}
|
|
20877
|
+
#endif
|
|
20878
|
+
float perspectiveRatio=mix(1.0/denominator,1.0,u_image_warp.z);v_pos0=vec3(texturePos*perspectiveRatio,perspectiveRatio);vec2 parentPos=(texturePos*u_scale_parent)+u_tl_parent;v_pos1=vec3(parentPos*perspectiveRatio,perspectiveRatio);}`),symbolIcon:CO(`uniform sampler2D u_texture;in vec2 v_tex;in float v_total_opacity;void main() {fragColor=texture(u_texture,v_tex)*v_total_opacity;
|
|
20879
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20880
|
+
fragColor=vec4(1.0);
|
|
20881
|
+
#endif
|
|
20882
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;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 bool u_rotate_symbol;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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_tex;out float v_total_opacity;
|
|
20883
|
+
#pragma maplibre: define lowp float opacity
|
|
20884
|
+
void main() {
|
|
20885
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20886
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float visibility=calculate_visibility(projectedPoint);v_total_opacity=opacity*max(0.0,min(visibility,fade_opacity[0]+fade_change));if (v_total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20887
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20888
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20889
|
+
#ifdef GLOBE
|
|
20890
|
+
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20891
|
+
#endif
|
|
20892
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;}`),symbolSDF:CO(`#define SDF_PX 8.0
|
|
20893
|
+
uniform bool u_is_halo;uniform bool u_is_plain;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
|
|
20894
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20895
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20896
|
+
#pragma maplibre: define lowp float halo_width
|
|
20897
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20898
|
+
void main() {
|
|
20899
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20900
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20901
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20902
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20903
|
+
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 total_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out_text,color_alpha_out_halo;if (u_is_plain){highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);color_alpha_out_text=total_opacity*alpha*fill_color;}if (u_is_halo) {float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);float inner_edge_halo=inner_edge+gamma_halo*gamma_scale;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(inner_edge_halo-gamma_scaled_halo,inner_edge_halo+gamma_scaled_halo,dist);highp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha_halo= min(smoothstep(halo_edge-gamma_scaled_halo,halo_edge+gamma_scaled_halo,dist),1.0-alpha_halo);color_alpha_out_halo=total_opacity*alpha_halo*halo_color;}if (u_is_plain && u_is_halo) {fragColor=color_alpha_out_text+(1.-color_alpha_out_text.a)*color_alpha_out_halo;} else if (u_is_halo){fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out_text;}
|
|
20904
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20905
|
+
fragColor=vec4(1.0);
|
|
20906
|
+
#endif
|
|
20907
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_data0;out vec3 v_data1;
|
|
20908
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20909
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20910
|
+
#pragma maplibre: define lowp float opacity
|
|
20911
|
+
#pragma maplibre: define lowp float halo_width
|
|
20912
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20913
|
+
void main() {
|
|
20914
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20915
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20916
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20917
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20918
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20919
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20920
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20921
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20922
|
+
#ifdef GLOBE
|
|
20923
|
+
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20924
|
+
#endif
|
|
20925
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,total_opacity);}`),symbolTextAndIcon:CO(`#define SDF_PX 8.0
|
|
20926
|
+
#define SDF 1.0
|
|
20927
|
+
#define ICON 0.0
|
|
20928
|
+
uniform bool u_is_halo;uniform bool u_is_text;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;in vec4 v_data0;in vec3 v_data1;in float v_is_sdf;
|
|
20929
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20930
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20931
|
+
#pragma maplibre: define lowp float halo_width
|
|
20932
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20933
|
+
void main() {
|
|
20934
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20935
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20936
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20937
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20938
|
+
float total_opacity=v_data1[2];if (v_is_sdf==ICON) {vec2 tex_icon=v_data0.zw;fragColor=texture(u_texture_icon,tex_icon)*total_opacity;
|
|
20939
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20940
|
+
fragColor=vec4(1.0);
|
|
20941
|
+
#endif
|
|
20942
|
+
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;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out,color_alpha_out_halo;if (u_is_text) {highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);color_alpha_out=fill_color*(alpha*total_opacity);}if (u_is_halo) {highp float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);lowp float buff_halo=(6.0-halo_width/fontScale)/SDF_PX;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(buff_halo-gamma_scaled_halo,buff_halo+gamma_scaled_halo,dist);color_alpha_out_halo=halo_color*(alpha_halo*total_opacity);}if (u_is_text && u_is_halo) {fragColor=color_alpha_out+(1.-color_alpha_out.a)*color_alpha_out_halo;} else if (u_is_halo) {fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out;}
|
|
20943
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20944
|
+
fragColor=vec4(1.0);
|
|
20945
|
+
#endif
|
|
20946
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec3 a_projected_pos;layout(location=3) in uint a_fade_opacity;layout(location=4) in float a_height_offset;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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec4 v_data0;out vec3 v_data1;out float v_is_sdf;
|
|
20947
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20948
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20949
|
+
#pragma maplibre: define lowp float opacity
|
|
20950
|
+
#pragma maplibre: define lowp float halo_width
|
|
20951
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20952
|
+
void main() {
|
|
20953
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20954
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20955
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20956
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20957
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20958
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);float is_sdf=float(a_data.z & 1u);float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20959
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20960
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20961
|
+
#ifdef GLOBE
|
|
20962
|
+
if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20963
|
+
#endif
|
|
20964
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec3(gamma_scale,size,total_opacity);v_is_sdf=is_sdf;}`),terrain:CO(`uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && u_fog_ground_blend_opacity > 0.0 && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}`,`layout(location=0) in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}`),terrainDepth:CO(`in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}`),terrainHeight:CO(`in highp float v_elevation;void main() {fragColor=vec4(v_elevation,0.0,0.0,1.0);}`,`layout(location=0) in vec3 a_pos3d;uniform vec4 u_tile_bounds;out highp float v_elevation;void main() {v_elevation=get_elevation(a_pos3d.xy);vec2 position=u_tile_bounds.xy+a_pos3d.xy/8192.0*u_tile_bounds.zw;gl_Position=vec4(position.x*2.0-1.0,1.0-position.y*2.0,0.0,1.0);}`),atmosphere:CO(`#ifdef GL_ES
|
|
20965
|
+
precision highp float;
|
|
20966
|
+
#endif
|
|
20967
|
+
in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
|
|
20968
|
+
);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}`),sky:CO(`uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;in vec3 v_view_direction;const float ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS=100000.0/6371000.0;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;float opacity=1.0;if (u_sky_blend > 0.0) {vec3 ray=normalize(v_view_direction);float globe_distance=length(u_globe_position);float angle_to_globe_center=acos(clamp(dot(ray,u_globe_position)/globe_distance,-1.0,1.0));float horizon_angle=asin(min(u_globe_radius/globe_distance,1.0));blend=mix(blend,((angle_to_globe_center-horizon_angle)*u_camera_to_center_distance+1.0)*u_device_pixel_ratio,u_sky_blend);float closest_approach=max(dot(ray,u_globe_position),0.0);float lowest_altitude=sqrt(max(globe_distance*globe_distance-closest_approach*closest_approach,0.0))-u_globe_radius;float atmosphere_height=u_globe_radius*ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS;float inside_atmosphere=1.0-smoothstep(atmosphere_height,10.0*atmosphere_height,globe_distance-u_globe_radius);float through_atmosphere=1.0-smoothstep(0.0,atmosphere_height,lowest_altitude);opacity=inside_atmosphere*through_atmosphere*(1.0-u_atmosphere_blend);}if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor*=mix(1.0,opacity,u_sky_blend);}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 v_view_direction;void main() {v_view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,1.0,1.0);}`)});function CO(e,t){let n=/#pragma maplibre: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/in ([\w]+) ([\w]+)/g),i=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=a?a.concat(i):i,s=r?r.length:0,c={};return e=e.replace(n,(e,t,n,r,i)=>(c[i]=true,t===`define`?`
|
|
20969
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20970
|
+
in ${n} ${r} ${i};
|
|
20971
|
+
#else
|
|
20972
|
+
uniform ${n} ${r} u_${i};
|
|
20973
|
+
#endif
|
|
20974
|
+
`:`
|
|
20975
|
+
#ifdef HAS_UNIFORM_u_${i}
|
|
20976
|
+
${n} ${r} ${i} = u_${i};
|
|
20977
|
+
#endif
|
|
20978
|
+
`)),t=t.replace(n,(e,t,n,r,i)=>{let a=r===`float`?`vec2`:`vec4`,o=i.match(/color/)?`color`:a;return c[i]?t===`define`?`
|
|
20979
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20980
|
+
uniform lowp float u_${i}_t;
|
|
20981
|
+
layout(location = ${s++}) in ${n} ${a} a_${i};
|
|
20982
|
+
out ${n} ${r} ${i};
|
|
20983
|
+
#else
|
|
20984
|
+
uniform ${n} ${r} u_${i};
|
|
20985
|
+
#endif
|
|
20986
|
+
`:o===`vec4`?`
|
|
20987
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20988
|
+
${i} = a_${i};
|
|
20989
|
+
#else
|
|
20990
|
+
${n} ${r} ${i} = u_${i};
|
|
20991
|
+
#endif
|
|
20992
|
+
`:`
|
|
20993
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20994
|
+
${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
|
|
20995
|
+
#else
|
|
20996
|
+
${n} ${r} ${i} = u_${i};
|
|
20997
|
+
#endif
|
|
20998
|
+
`:t===`define`?`
|
|
20999
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21000
|
+
uniform lowp float u_${i}_t;
|
|
21001
|
+
layout(location = ${s++}) in ${n} ${a} a_${i};
|
|
21002
|
+
#else
|
|
21003
|
+
uniform ${n} ${r} u_${i};
|
|
21004
|
+
#endif
|
|
21005
|
+
`:o===`vec4`?`
|
|
21006
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21007
|
+
${n} ${r} ${i} = a_${i};
|
|
21008
|
+
#else
|
|
21009
|
+
${n} ${r} ${i} = u_${i};
|
|
21010
|
+
#endif
|
|
21011
|
+
`:`
|
|
21012
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21013
|
+
${n} ${r} ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
|
|
21014
|
+
#else
|
|
21015
|
+
${n} ${r} ${i} = u_${i};
|
|
21016
|
+
#endif
|
|
21017
|
+
`}),{fragmentSource:e,vertexSource:t,staticAttributes:r,staticUniforms:o}}new mm({fill:new pm(128,2),line:new pm(512,0),tile:new pm(128,32),stencil:new pm(128,1),circle:3});Vs();lu([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]);const UA={float:[1,1],int:[1,1],vec2:[2,2],vec4:[4,4],mat4:[16,4]};function WA(e){let t={},n=0;for(let{name:r,type:i}of e){let[e,a]=UA[i];n=Math.ceil(n/a)*a,t[r]=n,n+=e;}return {offsets:t,contentWords:n,sizeWords:Math.ceil(n/4)*4}}WA([{name:`u_projection_matrix`,type:`mat4`},{name:`u_projection_fallback_matrix`,type:`mat4`},{name:`u_projection_tile_mercator_coords`,type:`vec4`},{name:`u_projection_clipping_plane`,type:`vec4`},{name:`u_projection_transition`,type:`float`},{name:`u_projection_clip_antimeridian`,type:`int`}]);WA([{name:`u_units_to_pixels`,type:`vec2`},{name:`u_world_size`,type:`vec2`},{name:`u_camera_to_center_distance`,type:`float`},{name:`u_symbol_fade_change`,type:`float`},{name:`u_aspect_ratio`,type:`float`},{name:`u_device_pixel_ratio`,type:`float`},{name:`u_viewport_size`,type:`vec2`},{name:`u_pixel_extrude_scale`,type:`vec2`},{name:`u_pitch`,type:`float`}]);WA([{name:`u_terrain_matrix`,type:`mat4`},{name:`u_terrain_unpack`,type:`vec4`},{name:`u_terrain_dim`,type:`float`},{name:`u_terrain_exaggeration`,type:`float`}]);var cj=class{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n;}};cj.Replace=[1,0],cj.disabled=new cj(cj.Replace,G.transparent,[false,false,false,false]),cj.unblended=new cj(cj.Replace,G.transparent,[true,true,true,true]),cj.alphaBlended=new cj([1,771],G.transparent,[true,true,true,true]);O(/* @__PURE__ */ new Float32Array(16));new G(1,0,0,1);new G(0,1,0,1);new G(0,0,1,1);new G(1,0,1,1);new G(0,1,1,1);const cP={linearity:.3,easing:St(0,0,.3,1)};I({deceleration:2500,maxSpeed:1400},cP);I({deceleration:20,maxSpeed:1400},cP);I({deceleration:1e3,maxSpeed:360},cP);I({deceleration:1e3,maxSpeed:90},cP);I({deceleration:1e3,maxSpeed:360},cP);lu([{name:`a_pos3d`,type:`Int16`,components:3}]);
|
|
21018
|
+
|
|
21019
|
+
class MapLibreStyleFactory {
|
|
21020
|
+
protocolId = 0;
|
|
21021
|
+
createMapTripStyle(options) {
|
|
21022
|
+
const token = options.token;
|
|
21023
|
+
const factory = VectorTileFactory.createFactory(options);
|
|
21024
|
+
const protocol = `maptrip${++this.protocolId}`;
|
|
21025
|
+
let attributionPromise;
|
|
21026
|
+
jn(protocol, async (params) => {
|
|
21027
|
+
if (params.url === `${protocol}://metadata`) {
|
|
21028
|
+
const attribution = await (attributionPromise ??= VectorTileUtils.getAttribution(token, options.provider, options.attribution, options.releaseDate));
|
|
21029
|
+
return {
|
|
21030
|
+
data: {
|
|
21031
|
+
tilejson: "2.2.0",
|
|
21032
|
+
tileSize: 256,
|
|
21033
|
+
tiles: [`${protocol}://{z}/{x}/{y}`],
|
|
21034
|
+
minzoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
|
|
21035
|
+
maxzoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM),
|
|
21036
|
+
attribution
|
|
21037
|
+
}
|
|
21038
|
+
};
|
|
21039
|
+
}
|
|
21040
|
+
const match = params.url.match(
|
|
21041
|
+
/^maptrip\d+:\/\/(\d+)\/(\d+)\/(\d+)$/
|
|
21042
|
+
);
|
|
21043
|
+
if (!match) {
|
|
21044
|
+
throw new Error(`Invalid tile URL: ${params.url}`);
|
|
21045
|
+
}
|
|
21046
|
+
const z = Number(match[1]);
|
|
21047
|
+
const x = Number(match[2]);
|
|
21048
|
+
const y = Number(match[3]);
|
|
21049
|
+
const canvas = await this.getTileCanvasAsync(factory, z, x, y, token);
|
|
21050
|
+
return {
|
|
21051
|
+
data: await createImageBitmap(canvas)
|
|
21052
|
+
};
|
|
21053
|
+
});
|
|
21054
|
+
return {
|
|
21055
|
+
version: 8,
|
|
21056
|
+
name: "MapTrip Map",
|
|
21057
|
+
sources: {
|
|
21058
|
+
maptrip: {
|
|
21059
|
+
type: "raster",
|
|
21060
|
+
url: `${protocol}://metadata`
|
|
21061
|
+
}
|
|
21062
|
+
},
|
|
21063
|
+
layers: [
|
|
21064
|
+
{
|
|
21065
|
+
id: "maptrip-layer",
|
|
21066
|
+
type: "raster",
|
|
21067
|
+
source: "maptrip"
|
|
21068
|
+
}
|
|
21069
|
+
]
|
|
21070
|
+
};
|
|
21071
|
+
}
|
|
21072
|
+
getTileCanvasAsync(factory, z, x, y, token) {
|
|
21073
|
+
return new Promise((resolve, reject) => {
|
|
21074
|
+
try {
|
|
21075
|
+
const canvas = factory.getJsonTile(z, x, y, token, () => {
|
|
21076
|
+
resolve(canvas);
|
|
21077
|
+
});
|
|
21078
|
+
if (!canvas) {
|
|
21079
|
+
reject(new Error("getJsonTile returned no canvas"));
|
|
21080
|
+
}
|
|
21081
|
+
} catch (err) {
|
|
21082
|
+
reject(err);
|
|
21083
|
+
}
|
|
21084
|
+
});
|
|
21085
|
+
}
|
|
21086
|
+
}
|
|
21087
|
+
|
|
20224
21088
|
/**
|
|
20225
21089
|
* @module ol/events/EventType
|
|
20226
21090
|
*/
|
|
@@ -28048,6 +28912,28 @@ class XYZ extends TileImage {
|
|
|
28048
28912
|
}
|
|
28049
28913
|
}
|
|
28050
28914
|
|
|
28915
|
+
class MapTripGoogleMapType {
|
|
28916
|
+
tileSize = new google.maps.Size(256, 256);
|
|
28917
|
+
alt = null;
|
|
28918
|
+
maxZoom = MAX_ZOOM;
|
|
28919
|
+
minZoom = MIN_ZOOM;
|
|
28920
|
+
projection = null;
|
|
28921
|
+
radius = 6378137;
|
|
28922
|
+
name;
|
|
28923
|
+
token;
|
|
28924
|
+
factory;
|
|
28925
|
+
constructor(properties) {
|
|
28926
|
+
this.name = properties.name ? properties.name : "infoware";
|
|
28927
|
+
this.token = properties.token;
|
|
28928
|
+
this.factory = VectorTileFactory.createFactory(properties);
|
|
28929
|
+
}
|
|
28930
|
+
getTile(coord, zoom) {
|
|
28931
|
+
return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
|
|
28932
|
+
}
|
|
28933
|
+
releaseTile() {
|
|
28934
|
+
}
|
|
28935
|
+
}
|
|
28936
|
+
|
|
28051
28937
|
class MapTripOpenLayersSource extends XYZ {
|
|
28052
28938
|
token;
|
|
28053
28939
|
factory;
|
|
@@ -28119,5 +29005,5 @@ class MapTripOpenLayersSource extends XYZ {
|
|
|
28119
29005
|
}
|
|
28120
29006
|
}
|
|
28121
29007
|
|
|
28122
|
-
export { MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
|
|
29008
|
+
export { MapLibreStyleFactory, MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
|
|
28123
29009
|
//# sourceMappingURL=map-tiles.js.map
|