@opengis/gis 0.1.13 → 0.1.14

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.
@@ -0,0 +1,845 @@
1
+ "use strict";var sv=Object.defineProperty;var ov=(h,d,_)=>d in h?sv(h,d,{enumerable:!0,configurable:!0,writable:!0,value:_}):h[d]=_;var lr=(h,d,_)=>ov(h,typeof d!="symbol"?d+"":d,_);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("vue"),rm=require("vue3-smooth-dnd");function yg(h,d){return function(){return h.apply(d,arguments)}}const{toString:av}=Object.prototype,{getPrototypeOf:td}=Object,{iterator:sh,toStringTag:_g}=Symbol,oh=(h=>d=>{const _=av.call(d);return h[_]||(h[_]=_.slice(8,-1).toLowerCase())})(Object.create(null)),xn=h=>(h=h.toLowerCase(),d=>oh(d)===h),ah=h=>d=>typeof d===h,{isArray:Ba}=Array,rc=ah("undefined");function lv(h){return h!==null&&!rc(h)&&h.constructor!==null&&!rc(h.constructor)&&Ni(h.constructor.isBuffer)&&h.constructor.isBuffer(h)}const vg=xn("ArrayBuffer");function cv(h){let d;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?d=ArrayBuffer.isView(h):d=h&&h.buffer&&vg(h.buffer),d}const uv=ah("string"),Ni=ah("function"),xg=ah("number"),lh=h=>h!==null&&typeof h=="object",hv=h=>h===!0||h===!1,Ku=h=>{if(oh(h)!=="object")return!1;const d=td(h);return(d===null||d===Object.prototype||Object.getPrototypeOf(d)===null)&&!(_g in h)&&!(sh in h)},pv=xn("Date"),dv=xn("File"),fv=xn("Blob"),mv=xn("FileList"),gv=h=>lh(h)&&Ni(h.pipe),yv=h=>{let d;return h&&(typeof FormData=="function"&&h instanceof FormData||Ni(h.append)&&((d=oh(h))==="formdata"||d==="object"&&Ni(h.toString)&&h.toString()==="[object FormData]"))},_v=xn("URLSearchParams"),[vv,xv,bv,wv]=["ReadableStream","Request","Response","Headers"].map(xn),Sv=h=>h.trim?h.trim():h.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ic(h,d,{allOwnKeys:_=!1}={}){if(h===null||typeof h>"u")return;let w,k;if(typeof h!="object"&&(h=[h]),Ba(h))for(w=0,k=h.length;w<k;w++)d.call(null,h[w],w,h);else{const P=_?Object.getOwnPropertyNames(h):Object.keys(h),x=P.length;let s;for(w=0;w<x;w++)s=P[w],d.call(null,h[s],s,h)}}function bg(h,d){d=d.toLowerCase();const _=Object.keys(h);let w=_.length,k;for(;w-- >0;)if(k=_[w],d===k.toLowerCase())return k;return null}const Co=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,wg=h=>!rc(h)&&h!==Co;function Hp(){const{caseless:h}=wg(this)&&this||{},d={},_=(w,k)=>{const P=h&&bg(d,k)||k;Ku(d[P])&&Ku(w)?d[P]=Hp(d[P],w):Ku(w)?d[P]=Hp({},w):Ba(w)?d[P]=w.slice():d[P]=w};for(let w=0,k=arguments.length;w<k;w++)arguments[w]&&ic(arguments[w],_);return d}const Av=(h,d,_,{allOwnKeys:w}={})=>(ic(d,(k,P)=>{_&&Ni(k)?h[P]=yg(k,_):h[P]=k},{allOwnKeys:w}),h),kv=h=>(h.charCodeAt(0)===65279&&(h=h.slice(1)),h),Tv=(h,d,_,w)=>{h.prototype=Object.create(d.prototype,w),h.prototype.constructor=h,Object.defineProperty(h,"super",{value:d.prototype}),_&&Object.assign(h.prototype,_)},Cv=(h,d,_,w)=>{let k,P,x;const s={};if(d=d||{},h==null)return d;do{for(k=Object.getOwnPropertyNames(h),P=k.length;P-- >0;)x=k[P],(!w||w(x,h,d))&&!s[x]&&(d[x]=h[x],s[x]=!0);h=_!==!1&&td(h)}while(h&&(!_||_(h,d))&&h!==Object.prototype);return d},Ev=(h,d,_)=>{h=String(h),(_===void 0||_>h.length)&&(_=h.length),_-=d.length;const w=h.indexOf(d,_);return w!==-1&&w===_},Pv=h=>{if(!h)return null;if(Ba(h))return h;let d=h.length;if(!xg(d))return null;const _=new Array(d);for(;d-- >0;)_[d]=h[d];return _},Iv=(h=>d=>h&&d instanceof h)(typeof Uint8Array<"u"&&td(Uint8Array)),Mv=(h,d)=>{const w=(h&&h[sh]).call(h);let k;for(;(k=w.next())&&!k.done;){const P=k.value;d.call(h,P[0],P[1])}},Lv=(h,d)=>{let _;const w=[];for(;(_=h.exec(d))!==null;)w.push(_);return w},Rv=xn("HTMLFormElement"),Dv=h=>h.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(_,w,k){return w.toUpperCase()+k}),im=(({hasOwnProperty:h})=>(d,_)=>h.call(d,_))(Object.prototype),zv=xn("RegExp"),Sg=(h,d)=>{const _=Object.getOwnPropertyDescriptors(h),w={};ic(_,(k,P)=>{let x;(x=d(k,P,h))!==!1&&(w[P]=x||k)}),Object.defineProperties(h,w)},Bv=h=>{Sg(h,(d,_)=>{if(Ni(h)&&["arguments","caller","callee"].indexOf(_)!==-1)return!1;const w=h[_];if(Ni(w)){if(d.enumerable=!1,"writable"in d){d.writable=!1;return}d.set||(d.set=()=>{throw Error("Can not rewrite read-only method '"+_+"'")})}})},Vv=(h,d)=>{const _={},w=k=>{k.forEach(P=>{_[P]=!0})};return Ba(h)?w(h):w(String(h).split(d)),_},Fv=()=>{},Ov=(h,d)=>h!=null&&Number.isFinite(h=+h)?h:d;function Nv(h){return!!(h&&Ni(h.append)&&h[_g]==="FormData"&&h[sh])}const qv=h=>{const d=new Array(10),_=(w,k)=>{if(lh(w)){if(d.indexOf(w)>=0)return;if(!("toJSON"in w)){d[k]=w;const P=Ba(w)?[]:{};return ic(w,(x,s)=>{const B=_(x,k+1);!rc(B)&&(P[s]=B)}),d[k]=void 0,P}}return w};return _(h,0)},Uv=xn("AsyncFunction"),jv=h=>h&&(lh(h)||Ni(h))&&Ni(h.then)&&Ni(h.catch),Ag=((h,d)=>h?setImmediate:d?((_,w)=>(Co.addEventListener("message",({source:k,data:P})=>{k===Co&&P===_&&w.length&&w.shift()()},!1),k=>{w.push(k),Co.postMessage(_,"*")}))(`axios@${Math.random()}`,[]):_=>setTimeout(_))(typeof setImmediate=="function",Ni(Co.postMessage)),Hv=typeof queueMicrotask<"u"?queueMicrotask.bind(Co):typeof process<"u"&&process.nextTick||Ag,Wv=h=>h!=null&&Ni(h[sh]),Ne={isArray:Ba,isArrayBuffer:vg,isBuffer:lv,isFormData:yv,isArrayBufferView:cv,isString:uv,isNumber:xg,isBoolean:hv,isObject:lh,isPlainObject:Ku,isReadableStream:vv,isRequest:xv,isResponse:bv,isHeaders:wv,isUndefined:rc,isDate:pv,isFile:dv,isBlob:fv,isRegExp:zv,isFunction:Ni,isStream:gv,isURLSearchParams:_v,isTypedArray:Iv,isFileList:mv,forEach:ic,merge:Hp,extend:Av,trim:Sv,stripBOM:kv,inherits:Tv,toFlatObject:Cv,kindOf:oh,kindOfTest:xn,endsWith:Ev,toArray:Pv,forEachEntry:Mv,matchAll:Lv,isHTMLForm:Rv,hasOwnProperty:im,hasOwnProp:im,reduceDescriptors:Sg,freezeMethods:Bv,toObjectSet:Vv,toCamelCase:Dv,noop:Fv,toFiniteNumber:Ov,findKey:bg,global:Co,isContextDefined:wg,isSpecCompliantForm:Nv,toJSONObject:qv,isAsyncFn:Uv,isThenable:jv,setImmediate:Ag,asap:Hv,isIterable:Wv};function Dt(h,d,_,w,k){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=h,this.name="AxiosError",d&&(this.code=d),_&&(this.config=_),w&&(this.request=w),k&&(this.response=k,this.status=k.status?k.status:null)}Ne.inherits(Dt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ne.toJSONObject(this.config),code:this.code,status:this.status}}});const kg=Dt.prototype,Tg={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(h=>{Tg[h]={value:h}});Object.defineProperties(Dt,Tg);Object.defineProperty(kg,"isAxiosError",{value:!0});Dt.from=(h,d,_,w,k,P)=>{const x=Object.create(kg);return Ne.toFlatObject(h,x,function(B){return B!==Error.prototype},s=>s!=="isAxiosError"),Dt.call(x,h.message,d,_,w,k),x.cause=h,x.name=h.name,P&&Object.assign(x,P),x};const Zv=null;function Wp(h){return Ne.isPlainObject(h)||Ne.isArray(h)}function Cg(h){return Ne.endsWith(h,"[]")?h.slice(0,-2):h}function nm(h,d,_){return h?h.concat(d).map(function(k,P){return k=Cg(k),!_&&P?"["+k+"]":k}).join(_?".":""):d}function Kv(h){return Ne.isArray(h)&&!h.some(Wp)}const Gv=Ne.toFlatObject(Ne,{},null,function(d){return/^is[A-Z]/.test(d)});function ch(h,d,_){if(!Ne.isObject(h))throw new TypeError("target must be an object");d=d||new FormData,_=Ne.toFlatObject(_,{metaTokens:!0,dots:!1,indexes:!1},!1,function(U,K){return!Ne.isUndefined(K[U])});const w=_.metaTokens,k=_.visitor||M,P=_.dots,x=_.indexes,B=(_.Blob||typeof Blob<"u"&&Blob)&&Ne.isSpecCompliantForm(d);if(!Ne.isFunction(k))throw new TypeError("visitor must be a function");function D(C){if(C===null)return"";if(Ne.isDate(C))return C.toISOString();if(!B&&Ne.isBlob(C))throw new Dt("Blob is not supported. Use a Buffer instead.");return Ne.isArrayBuffer(C)||Ne.isTypedArray(C)?B&&typeof Blob=="function"?new Blob([C]):Buffer.from(C):C}function M(C,U,K){let ie=C;if(C&&!K&&typeof C=="object"){if(Ne.endsWith(U,"{}"))U=w?U:U.slice(0,-2),C=JSON.stringify(C);else if(Ne.isArray(C)&&Kv(C)||(Ne.isFileList(C)||Ne.endsWith(U,"[]"))&&(ie=Ne.toArray(C)))return U=Cg(U),ie.forEach(function(Ae,te){!(Ne.isUndefined(Ae)||Ae===null)&&d.append(x===!0?nm([U],te,P):x===null?U:U+"[]",D(Ae))}),!1}return Wp(C)?!0:(d.append(nm(K,U,P),D(C)),!1)}const F=[],R=Object.assign(Gv,{defaultVisitor:M,convertValue:D,isVisitable:Wp});function T(C,U){if(!Ne.isUndefined(C)){if(F.indexOf(C)!==-1)throw Error("Circular reference detected in "+U.join("."));F.push(C),Ne.forEach(C,function(ie,le){(!(Ne.isUndefined(ie)||ie===null)&&k.call(d,ie,Ne.isString(le)?le.trim():le,U,R))===!0&&T(ie,U?U.concat(le):[le])}),F.pop()}}if(!Ne.isObject(h))throw new TypeError("data must be an object");return T(h),d}function sm(h){const d={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(h).replace(/[!'()~]|%20|%00/g,function(w){return d[w]})}function rd(h,d){this._pairs=[],h&&ch(h,this,d)}const Eg=rd.prototype;Eg.append=function(d,_){this._pairs.push([d,_])};Eg.toString=function(d){const _=d?function(w){return d.call(this,w,sm)}:sm;return this._pairs.map(function(k){return _(k[0])+"="+_(k[1])},"").join("&")};function Jv(h){return encodeURIComponent(h).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pg(h,d,_){if(!d)return h;const w=_&&_.encode||Jv;Ne.isFunction(_)&&(_={serialize:_});const k=_&&_.serialize;let P;if(k?P=k(d,_):P=Ne.isURLSearchParams(d)?d.toString():new rd(d,_).toString(w),P){const x=h.indexOf("#");x!==-1&&(h=h.slice(0,x)),h+=(h.indexOf("?")===-1?"?":"&")+P}return h}class om{constructor(){this.handlers=[]}use(d,_,w){return this.handlers.push({fulfilled:d,rejected:_,synchronous:w?w.synchronous:!1,runWhen:w?w.runWhen:null}),this.handlers.length-1}eject(d){this.handlers[d]&&(this.handlers[d]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(d){Ne.forEach(this.handlers,function(w){w!==null&&d(w)})}}const Ig={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Xv=typeof URLSearchParams<"u"?URLSearchParams:rd,Qv=typeof FormData<"u"?FormData:null,Yv=typeof Blob<"u"?Blob:null,$v={isBrowser:!0,classes:{URLSearchParams:Xv,FormData:Qv,Blob:Yv},protocols:["http","https","file","blob","url","data"]},id=typeof window<"u"&&typeof document<"u",Zp=typeof navigator=="object"&&navigator||void 0,e0=id&&(!Zp||["ReactNative","NativeScript","NS"].indexOf(Zp.product)<0),t0=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",r0=id&&window.location.href||"http://localhost",i0=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:id,hasStandardBrowserEnv:e0,hasStandardBrowserWebWorkerEnv:t0,navigator:Zp,origin:r0},Symbol.toStringTag,{value:"Module"})),xi={...i0,...$v};function n0(h,d){return ch(h,new xi.classes.URLSearchParams,Object.assign({visitor:function(_,w,k,P){return xi.isNode&&Ne.isBuffer(_)?(this.append(w,_.toString("base64")),!1):P.defaultVisitor.apply(this,arguments)}},d))}function s0(h){return Ne.matchAll(/\w+|\[(\w*)]/g,h).map(d=>d[0]==="[]"?"":d[1]||d[0])}function o0(h){const d={},_=Object.keys(h);let w;const k=_.length;let P;for(w=0;w<k;w++)P=_[w],d[P]=h[P];return d}function Mg(h){function d(_,w,k,P){let x=_[P++];if(x==="__proto__")return!0;const s=Number.isFinite(+x),B=P>=_.length;return x=!x&&Ne.isArray(k)?k.length:x,B?(Ne.hasOwnProp(k,x)?k[x]=[k[x],w]:k[x]=w,!s):((!k[x]||!Ne.isObject(k[x]))&&(k[x]=[]),d(_,w,k[x],P)&&Ne.isArray(k[x])&&(k[x]=o0(k[x])),!s)}if(Ne.isFormData(h)&&Ne.isFunction(h.entries)){const _={};return Ne.forEachEntry(h,(w,k)=>{d(s0(w),k,_,0)}),_}return null}function a0(h,d,_){if(Ne.isString(h))try{return(d||JSON.parse)(h),Ne.trim(h)}catch(w){if(w.name!=="SyntaxError")throw w}return(_||JSON.stringify)(h)}const nc={transitional:Ig,adapter:["xhr","http","fetch"],transformRequest:[function(d,_){const w=_.getContentType()||"",k=w.indexOf("application/json")>-1,P=Ne.isObject(d);if(P&&Ne.isHTMLForm(d)&&(d=new FormData(d)),Ne.isFormData(d))return k?JSON.stringify(Mg(d)):d;if(Ne.isArrayBuffer(d)||Ne.isBuffer(d)||Ne.isStream(d)||Ne.isFile(d)||Ne.isBlob(d)||Ne.isReadableStream(d))return d;if(Ne.isArrayBufferView(d))return d.buffer;if(Ne.isURLSearchParams(d))return _.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),d.toString();let s;if(P){if(w.indexOf("application/x-www-form-urlencoded")>-1)return n0(d,this.formSerializer).toString();if((s=Ne.isFileList(d))||w.indexOf("multipart/form-data")>-1){const B=this.env&&this.env.FormData;return ch(s?{"files[]":d}:d,B&&new B,this.formSerializer)}}return P||k?(_.setContentType("application/json",!1),a0(d)):d}],transformResponse:[function(d){const _=this.transitional||nc.transitional,w=_&&_.forcedJSONParsing,k=this.responseType==="json";if(Ne.isResponse(d)||Ne.isReadableStream(d))return d;if(d&&Ne.isString(d)&&(w&&!this.responseType||k)){const x=!(_&&_.silentJSONParsing)&&k;try{return JSON.parse(d)}catch(s){if(x)throw s.name==="SyntaxError"?Dt.from(s,Dt.ERR_BAD_RESPONSE,this,null,this.response):s}}return d}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:xi.classes.FormData,Blob:xi.classes.Blob},validateStatus:function(d){return d>=200&&d<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ne.forEach(["delete","get","head","post","put","patch"],h=>{nc.headers[h]={}});const l0=Ne.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),c0=h=>{const d={};let _,w,k;return h&&h.split(`
2
+ `).forEach(function(x){k=x.indexOf(":"),_=x.substring(0,k).trim().toLowerCase(),w=x.substring(k+1).trim(),!(!_||d[_]&&l0[_])&&(_==="set-cookie"?d[_]?d[_].push(w):d[_]=[w]:d[_]=d[_]?d[_]+", "+w:w)}),d},am=Symbol("internals");function Gl(h){return h&&String(h).trim().toLowerCase()}function Gu(h){return h===!1||h==null?h:Ne.isArray(h)?h.map(Gu):String(h)}function u0(h){const d=Object.create(null),_=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let w;for(;w=_.exec(h);)d[w[1]]=w[2];return d}const h0=h=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(h.trim());function Lp(h,d,_,w,k){if(Ne.isFunction(w))return w.call(this,d,_);if(k&&(d=_),!!Ne.isString(d)){if(Ne.isString(w))return d.indexOf(w)!==-1;if(Ne.isRegExp(w))return w.test(d)}}function p0(h){return h.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(d,_,w)=>_.toUpperCase()+w)}function d0(h,d){const _=Ne.toCamelCase(" "+d);["get","set","has"].forEach(w=>{Object.defineProperty(h,w+_,{value:function(k,P,x){return this[w].call(this,d,k,P,x)},configurable:!0})})}let qi=class{constructor(d){d&&this.set(d)}set(d,_,w){const k=this;function P(s,B,D){const M=Gl(B);if(!M)throw new Error("header name must be a non-empty string");const F=Ne.findKey(k,M);(!F||k[F]===void 0||D===!0||D===void 0&&k[F]!==!1)&&(k[F||B]=Gu(s))}const x=(s,B)=>Ne.forEach(s,(D,M)=>P(D,M,B));if(Ne.isPlainObject(d)||d instanceof this.constructor)x(d,_);else if(Ne.isString(d)&&(d=d.trim())&&!h0(d))x(c0(d),_);else if(Ne.isObject(d)&&Ne.isIterable(d)){let s={},B,D;for(const M of d){if(!Ne.isArray(M))throw TypeError("Object iterator must return a key-value pair");s[D=M[0]]=(B=s[D])?Ne.isArray(B)?[...B,M[1]]:[B,M[1]]:M[1]}x(s,_)}else d!=null&&P(_,d,w);return this}get(d,_){if(d=Gl(d),d){const w=Ne.findKey(this,d);if(w){const k=this[w];if(!_)return k;if(_===!0)return u0(k);if(Ne.isFunction(_))return _.call(this,k,w);if(Ne.isRegExp(_))return _.exec(k);throw new TypeError("parser must be boolean|regexp|function")}}}has(d,_){if(d=Gl(d),d){const w=Ne.findKey(this,d);return!!(w&&this[w]!==void 0&&(!_||Lp(this,this[w],w,_)))}return!1}delete(d,_){const w=this;let k=!1;function P(x){if(x=Gl(x),x){const s=Ne.findKey(w,x);s&&(!_||Lp(w,w[s],s,_))&&(delete w[s],k=!0)}}return Ne.isArray(d)?d.forEach(P):P(d),k}clear(d){const _=Object.keys(this);let w=_.length,k=!1;for(;w--;){const P=_[w];(!d||Lp(this,this[P],P,d,!0))&&(delete this[P],k=!0)}return k}normalize(d){const _=this,w={};return Ne.forEach(this,(k,P)=>{const x=Ne.findKey(w,P);if(x){_[x]=Gu(k),delete _[P];return}const s=d?p0(P):String(P).trim();s!==P&&delete _[P],_[s]=Gu(k),w[s]=!0}),this}concat(...d){return this.constructor.concat(this,...d)}toJSON(d){const _=Object.create(null);return Ne.forEach(this,(w,k)=>{w!=null&&w!==!1&&(_[k]=d&&Ne.isArray(w)?w.join(", "):w)}),_}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([d,_])=>d+": "+_).join(`
3
+ `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(d){return d instanceof this?d:new this(d)}static concat(d,..._){const w=new this(d);return _.forEach(k=>w.set(k)),w}static accessor(d){const w=(this[am]=this[am]={accessors:{}}).accessors,k=this.prototype;function P(x){const s=Gl(x);w[s]||(d0(k,x),w[s]=!0)}return Ne.isArray(d)?d.forEach(P):P(d),this}};qi.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ne.reduceDescriptors(qi.prototype,({value:h},d)=>{let _=d[0].toUpperCase()+d.slice(1);return{get:()=>h,set(w){this[_]=w}}});Ne.freezeMethods(qi);function Rp(h,d){const _=this||nc,w=d||_,k=qi.from(w.headers);let P=w.data;return Ne.forEach(h,function(s){P=s.call(_,P,k.normalize(),d?d.status:void 0)}),k.normalize(),P}function Lg(h){return!!(h&&h.__CANCEL__)}function Va(h,d,_){Dt.call(this,h??"canceled",Dt.ERR_CANCELED,d,_),this.name="CanceledError"}Ne.inherits(Va,Dt,{__CANCEL__:!0});function Rg(h,d,_){const w=_.config.validateStatus;!_.status||!w||w(_.status)?h(_):d(new Dt("Request failed with status code "+_.status,[Dt.ERR_BAD_REQUEST,Dt.ERR_BAD_RESPONSE][Math.floor(_.status/100)-4],_.config,_.request,_))}function f0(h){const d=/^([-+\w]{1,25})(:?\/\/|:)/.exec(h);return d&&d[1]||""}function m0(h,d){h=h||10;const _=new Array(h),w=new Array(h);let k=0,P=0,x;return d=d!==void 0?d:1e3,function(B){const D=Date.now(),M=w[P];x||(x=D),_[k]=B,w[k]=D;let F=P,R=0;for(;F!==k;)R+=_[F++],F=F%h;if(k=(k+1)%h,k===P&&(P=(P+1)%h),D-x<d)return;const T=M&&D-M;return T?Math.round(R*1e3/T):void 0}}function g0(h,d){let _=0,w=1e3/d,k,P;const x=(D,M=Date.now())=>{_=M,k=null,P&&(clearTimeout(P),P=null),h.apply(null,D)};return[(...D)=>{const M=Date.now(),F=M-_;F>=w?x(D,M):(k=D,P||(P=setTimeout(()=>{P=null,x(k)},w-F)))},()=>k&&x(k)]}const Yu=(h,d,_=3)=>{let w=0;const k=m0(50,250);return g0(P=>{const x=P.loaded,s=P.lengthComputable?P.total:void 0,B=x-w,D=k(B),M=x<=s;w=x;const F={loaded:x,total:s,progress:s?x/s:void 0,bytes:B,rate:D||void 0,estimated:D&&s&&M?(s-x)/D:void 0,event:P,lengthComputable:s!=null,[d?"download":"upload"]:!0};h(F)},_)},lm=(h,d)=>{const _=h!=null;return[w=>d[0]({lengthComputable:_,total:h,loaded:w}),d[1]]},cm=h=>(...d)=>Ne.asap(()=>h(...d)),y0=xi.hasStandardBrowserEnv?((h,d)=>_=>(_=new URL(_,xi.origin),h.protocol===_.protocol&&h.host===_.host&&(d||h.port===_.port)))(new URL(xi.origin),xi.navigator&&/(msie|trident)/i.test(xi.navigator.userAgent)):()=>!0,_0=xi.hasStandardBrowserEnv?{write(h,d,_,w,k,P){const x=[h+"="+encodeURIComponent(d)];Ne.isNumber(_)&&x.push("expires="+new Date(_).toGMTString()),Ne.isString(w)&&x.push("path="+w),Ne.isString(k)&&x.push("domain="+k),P===!0&&x.push("secure"),document.cookie=x.join("; ")},read(h){const d=document.cookie.match(new RegExp("(^|;\\s*)("+h+")=([^;]*)"));return d?decodeURIComponent(d[3]):null},remove(h){this.write(h,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function v0(h){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(h)}function x0(h,d){return d?h.replace(/\/?\/$/,"")+"/"+d.replace(/^\/+/,""):h}function Dg(h,d,_){let w=!v0(d);return h&&(w||_==!1)?x0(h,d):d}const um=h=>h instanceof qi?{...h}:h;function Io(h,d){d=d||{};const _={};function w(D,M,F,R){return Ne.isPlainObject(D)&&Ne.isPlainObject(M)?Ne.merge.call({caseless:R},D,M):Ne.isPlainObject(M)?Ne.merge({},M):Ne.isArray(M)?M.slice():M}function k(D,M,F,R){if(Ne.isUndefined(M)){if(!Ne.isUndefined(D))return w(void 0,D,F,R)}else return w(D,M,F,R)}function P(D,M){if(!Ne.isUndefined(M))return w(void 0,M)}function x(D,M){if(Ne.isUndefined(M)){if(!Ne.isUndefined(D))return w(void 0,D)}else return w(void 0,M)}function s(D,M,F){if(F in d)return w(D,M);if(F in h)return w(void 0,D)}const B={url:P,method:P,data:P,baseURL:x,transformRequest:x,transformResponse:x,paramsSerializer:x,timeout:x,timeoutMessage:x,withCredentials:x,withXSRFToken:x,adapter:x,responseType:x,xsrfCookieName:x,xsrfHeaderName:x,onUploadProgress:x,onDownloadProgress:x,decompress:x,maxContentLength:x,maxBodyLength:x,beforeRedirect:x,transport:x,httpAgent:x,httpsAgent:x,cancelToken:x,socketPath:x,responseEncoding:x,validateStatus:s,headers:(D,M,F)=>k(um(D),um(M),F,!0)};return Ne.forEach(Object.keys(Object.assign({},h,d)),function(M){const F=B[M]||k,R=F(h[M],d[M],M);Ne.isUndefined(R)&&F!==s||(_[M]=R)}),_}const zg=h=>{const d=Io({},h);let{data:_,withXSRFToken:w,xsrfHeaderName:k,xsrfCookieName:P,headers:x,auth:s}=d;d.headers=x=qi.from(x),d.url=Pg(Dg(d.baseURL,d.url,d.allowAbsoluteUrls),h.params,h.paramsSerializer),s&&x.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let B;if(Ne.isFormData(_)){if(xi.hasStandardBrowserEnv||xi.hasStandardBrowserWebWorkerEnv)x.setContentType(void 0);else if((B=x.getContentType())!==!1){const[D,...M]=B?B.split(";").map(F=>F.trim()).filter(Boolean):[];x.setContentType([D||"multipart/form-data",...M].join("; "))}}if(xi.hasStandardBrowserEnv&&(w&&Ne.isFunction(w)&&(w=w(d)),w||w!==!1&&y0(d.url))){const D=k&&P&&_0.read(P);D&&x.set(k,D)}return d},b0=typeof XMLHttpRequest<"u",w0=b0&&function(h){return new Promise(function(_,w){const k=zg(h);let P=k.data;const x=qi.from(k.headers).normalize();let{responseType:s,onUploadProgress:B,onDownloadProgress:D}=k,M,F,R,T,C;function U(){T&&T(),C&&C(),k.cancelToken&&k.cancelToken.unsubscribe(M),k.signal&&k.signal.removeEventListener("abort",M)}let K=new XMLHttpRequest;K.open(k.method.toUpperCase(),k.url,!0),K.timeout=k.timeout;function ie(){if(!K)return;const Ae=qi.from("getAllResponseHeaders"in K&&K.getAllResponseHeaders()),de={data:!s||s==="text"||s==="json"?K.responseText:K.response,status:K.status,statusText:K.statusText,headers:Ae,config:h,request:K};Rg(function(Ve){_(Ve),U()},function(Ve){w(Ve),U()},de),K=null}"onloadend"in K?K.onloadend=ie:K.onreadystatechange=function(){!K||K.readyState!==4||K.status===0&&!(K.responseURL&&K.responseURL.indexOf("file:")===0)||setTimeout(ie)},K.onabort=function(){K&&(w(new Dt("Request aborted",Dt.ECONNABORTED,h,K)),K=null)},K.onerror=function(){w(new Dt("Network Error",Dt.ERR_NETWORK,h,K)),K=null},K.ontimeout=function(){let te=k.timeout?"timeout of "+k.timeout+"ms exceeded":"timeout exceeded";const de=k.transitional||Ig;k.timeoutErrorMessage&&(te=k.timeoutErrorMessage),w(new Dt(te,de.clarifyTimeoutError?Dt.ETIMEDOUT:Dt.ECONNABORTED,h,K)),K=null},P===void 0&&x.setContentType(null),"setRequestHeader"in K&&Ne.forEach(x.toJSON(),function(te,de){K.setRequestHeader(de,te)}),Ne.isUndefined(k.withCredentials)||(K.withCredentials=!!k.withCredentials),s&&s!=="json"&&(K.responseType=k.responseType),D&&([R,C]=Yu(D,!0),K.addEventListener("progress",R)),B&&K.upload&&([F,T]=Yu(B),K.upload.addEventListener("progress",F),K.upload.addEventListener("loadend",T)),(k.cancelToken||k.signal)&&(M=Ae=>{K&&(w(!Ae||Ae.type?new Va(null,h,K):Ae),K.abort(),K=null)},k.cancelToken&&k.cancelToken.subscribe(M),k.signal&&(k.signal.aborted?M():k.signal.addEventListener("abort",M)));const le=f0(k.url);if(le&&xi.protocols.indexOf(le)===-1){w(new Dt("Unsupported protocol "+le+":",Dt.ERR_BAD_REQUEST,h));return}K.send(P||null)})},S0=(h,d)=>{const{length:_}=h=h?h.filter(Boolean):[];if(d||_){let w=new AbortController,k;const P=function(D){if(!k){k=!0,s();const M=D instanceof Error?D:this.reason;w.abort(M instanceof Dt?M:new Va(M instanceof Error?M.message:M))}};let x=d&&setTimeout(()=>{x=null,P(new Dt(`timeout ${d} of ms exceeded`,Dt.ETIMEDOUT))},d);const s=()=>{h&&(x&&clearTimeout(x),x=null,h.forEach(D=>{D.unsubscribe?D.unsubscribe(P):D.removeEventListener("abort",P)}),h=null)};h.forEach(D=>D.addEventListener("abort",P));const{signal:B}=w;return B.unsubscribe=()=>Ne.asap(s),B}},A0=function*(h,d){let _=h.byteLength;if(_<d){yield h;return}let w=0,k;for(;w<_;)k=w+d,yield h.slice(w,k),w=k},k0=async function*(h,d){for await(const _ of T0(h))yield*A0(_,d)},T0=async function*(h){if(h[Symbol.asyncIterator]){yield*h;return}const d=h.getReader();try{for(;;){const{done:_,value:w}=await d.read();if(_)break;yield w}}finally{await d.cancel()}},hm=(h,d,_,w)=>{const k=k0(h,d);let P=0,x,s=B=>{x||(x=!0,w&&w(B))};return new ReadableStream({async pull(B){try{const{done:D,value:M}=await k.next();if(D){s(),B.close();return}let F=M.byteLength;if(_){let R=P+=F;_(R)}B.enqueue(new Uint8Array(M))}catch(D){throw s(D),D}},cancel(B){return s(B),k.return()}},{highWaterMark:2})},uh=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Bg=uh&&typeof ReadableStream=="function",C0=uh&&(typeof TextEncoder=="function"?(h=>d=>h.encode(d))(new TextEncoder):async h=>new Uint8Array(await new Response(h).arrayBuffer())),Vg=(h,...d)=>{try{return!!h(...d)}catch{return!1}},E0=Bg&&Vg(()=>{let h=!1;const d=new Request(xi.origin,{body:new ReadableStream,method:"POST",get duplex(){return h=!0,"half"}}).headers.has("Content-Type");return h&&!d}),pm=64*1024,Kp=Bg&&Vg(()=>Ne.isReadableStream(new Response("").body)),$u={stream:Kp&&(h=>h.body)};uh&&(h=>{["text","arrayBuffer","blob","formData","stream"].forEach(d=>{!$u[d]&&($u[d]=Ne.isFunction(h[d])?_=>_[d]():(_,w)=>{throw new Dt(`Response type '${d}' is not supported`,Dt.ERR_NOT_SUPPORT,w)})})})(new Response);const P0=async h=>{if(h==null)return 0;if(Ne.isBlob(h))return h.size;if(Ne.isSpecCompliantForm(h))return(await new Request(xi.origin,{method:"POST",body:h}).arrayBuffer()).byteLength;if(Ne.isArrayBufferView(h)||Ne.isArrayBuffer(h))return h.byteLength;if(Ne.isURLSearchParams(h)&&(h=h+""),Ne.isString(h))return(await C0(h)).byteLength},I0=async(h,d)=>{const _=Ne.toFiniteNumber(h.getContentLength());return _??P0(d)},M0=uh&&(async h=>{let{url:d,method:_,data:w,signal:k,cancelToken:P,timeout:x,onDownloadProgress:s,onUploadProgress:B,responseType:D,headers:M,withCredentials:F="same-origin",fetchOptions:R}=zg(h);D=D?(D+"").toLowerCase():"text";let T=S0([k,P&&P.toAbortSignal()],x),C;const U=T&&T.unsubscribe&&(()=>{T.unsubscribe()});let K;try{if(B&&E0&&_!=="get"&&_!=="head"&&(K=await I0(M,w))!==0){let de=new Request(d,{method:"POST",body:w,duplex:"half"}),Ce;if(Ne.isFormData(w)&&(Ce=de.headers.get("content-type"))&&M.setContentType(Ce),de.body){const[Ve,Ze]=lm(K,Yu(cm(B)));w=hm(de.body,pm,Ve,Ze)}}Ne.isString(F)||(F=F?"include":"omit");const ie="credentials"in Request.prototype;C=new Request(d,{...R,signal:T,method:_.toUpperCase(),headers:M.normalize().toJSON(),body:w,duplex:"half",credentials:ie?F:void 0});let le=await fetch(C);const Ae=Kp&&(D==="stream"||D==="response");if(Kp&&(s||Ae&&U)){const de={};["status","statusText","headers"].forEach(vt=>{de[vt]=le[vt]});const Ce=Ne.toFiniteNumber(le.headers.get("content-length")),[Ve,Ze]=s&&lm(Ce,Yu(cm(s),!0))||[];le=new Response(hm(le.body,pm,Ve,()=>{Ze&&Ze(),U&&U()}),de)}D=D||"text";let te=await $u[Ne.findKey($u,D)||"text"](le,h);return!Ae&&U&&U(),await new Promise((de,Ce)=>{Rg(de,Ce,{data:te,headers:qi.from(le.headers),status:le.status,statusText:le.statusText,config:h,request:C})})}catch(ie){throw U&&U(),ie&&ie.name==="TypeError"&&/Load failed|fetch/i.test(ie.message)?Object.assign(new Dt("Network Error",Dt.ERR_NETWORK,h,C),{cause:ie.cause||ie}):Dt.from(ie,ie&&ie.code,h,C)}}),Gp={http:Zv,xhr:w0,fetch:M0};Ne.forEach(Gp,(h,d)=>{if(h){try{Object.defineProperty(h,"name",{value:d})}catch{}Object.defineProperty(h,"adapterName",{value:d})}});const dm=h=>`- ${h}`,L0=h=>Ne.isFunction(h)||h===null||h===!1,Fg={getAdapter:h=>{h=Ne.isArray(h)?h:[h];const{length:d}=h;let _,w;const k={};for(let P=0;P<d;P++){_=h[P];let x;if(w=_,!L0(_)&&(w=Gp[(x=String(_)).toLowerCase()],w===void 0))throw new Dt(`Unknown adapter '${x}'`);if(w)break;k[x||"#"+P]=w}if(!w){const P=Object.entries(k).map(([s,B])=>`adapter ${s} `+(B===!1?"is not supported by the environment":"is not available in the build"));let x=d?P.length>1?`since :
4
+ `+P.map(dm).join(`
5
+ `):" "+dm(P[0]):"as no adapter specified";throw new Dt("There is no suitable adapter to dispatch the request "+x,"ERR_NOT_SUPPORT")}return w},adapters:Gp};function Dp(h){if(h.cancelToken&&h.cancelToken.throwIfRequested(),h.signal&&h.signal.aborted)throw new Va(null,h)}function fm(h){return Dp(h),h.headers=qi.from(h.headers),h.data=Rp.call(h,h.transformRequest),["post","put","patch"].indexOf(h.method)!==-1&&h.headers.setContentType("application/x-www-form-urlencoded",!1),Fg.getAdapter(h.adapter||nc.adapter)(h).then(function(w){return Dp(h),w.data=Rp.call(h,h.transformResponse,w),w.headers=qi.from(w.headers),w},function(w){return Lg(w)||(Dp(h),w&&w.response&&(w.response.data=Rp.call(h,h.transformResponse,w.response),w.response.headers=qi.from(w.response.headers))),Promise.reject(w)})}const Og="1.9.0",hh={};["object","boolean","number","function","string","symbol"].forEach((h,d)=>{hh[h]=function(w){return typeof w===h||"a"+(d<1?"n ":" ")+h}});const mm={};hh.transitional=function(d,_,w){function k(P,x){return"[Axios v"+Og+"] Transitional option '"+P+"'"+x+(w?". "+w:"")}return(P,x,s)=>{if(d===!1)throw new Dt(k(x," has been removed"+(_?" in "+_:"")),Dt.ERR_DEPRECATED);return _&&!mm[x]&&(mm[x]=!0,console.warn(k(x," has been deprecated since v"+_+" and will be removed in the near future"))),d?d(P,x,s):!0}};hh.spelling=function(d){return(_,w)=>(console.warn(`${w} is likely a misspelling of ${d}`),!0)};function R0(h,d,_){if(typeof h!="object")throw new Dt("options must be an object",Dt.ERR_BAD_OPTION_VALUE);const w=Object.keys(h);let k=w.length;for(;k-- >0;){const P=w[k],x=d[P];if(x){const s=h[P],B=s===void 0||x(s,P,h);if(B!==!0)throw new Dt("option "+P+" must be "+B,Dt.ERR_BAD_OPTION_VALUE);continue}if(_!==!0)throw new Dt("Unknown option "+P,Dt.ERR_BAD_OPTION)}}const Ju={assertOptions:R0,validators:hh},zn=Ju.validators;let Eo=class{constructor(d){this.defaults=d||{},this.interceptors={request:new om,response:new om}}async request(d,_){try{return await this._request(d,_)}catch(w){if(w instanceof Error){let k={};Error.captureStackTrace?Error.captureStackTrace(k):k=new Error;const P=k.stack?k.stack.replace(/^.+\n/,""):"";try{w.stack?P&&!String(w.stack).endsWith(P.replace(/^.+\n.+\n/,""))&&(w.stack+=`
6
+ `+P):w.stack=P}catch{}}throw w}}_request(d,_){typeof d=="string"?(_=_||{},_.url=d):_=d||{},_=Io(this.defaults,_);const{transitional:w,paramsSerializer:k,headers:P}=_;w!==void 0&&Ju.assertOptions(w,{silentJSONParsing:zn.transitional(zn.boolean),forcedJSONParsing:zn.transitional(zn.boolean),clarifyTimeoutError:zn.transitional(zn.boolean)},!1),k!=null&&(Ne.isFunction(k)?_.paramsSerializer={serialize:k}:Ju.assertOptions(k,{encode:zn.function,serialize:zn.function},!0)),_.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?_.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:_.allowAbsoluteUrls=!0),Ju.assertOptions(_,{baseUrl:zn.spelling("baseURL"),withXsrfToken:zn.spelling("withXSRFToken")},!0),_.method=(_.method||this.defaults.method||"get").toLowerCase();let x=P&&Ne.merge(P.common,P[_.method]);P&&Ne.forEach(["delete","get","head","post","put","patch","common"],C=>{delete P[C]}),_.headers=qi.concat(x,P);const s=[];let B=!0;this.interceptors.request.forEach(function(U){typeof U.runWhen=="function"&&U.runWhen(_)===!1||(B=B&&U.synchronous,s.unshift(U.fulfilled,U.rejected))});const D=[];this.interceptors.response.forEach(function(U){D.push(U.fulfilled,U.rejected)});let M,F=0,R;if(!B){const C=[fm.bind(this),void 0];for(C.unshift.apply(C,s),C.push.apply(C,D),R=C.length,M=Promise.resolve(_);F<R;)M=M.then(C[F++],C[F++]);return M}R=s.length;let T=_;for(F=0;F<R;){const C=s[F++],U=s[F++];try{T=C(T)}catch(K){U.call(this,K);break}}try{M=fm.call(this,T)}catch(C){return Promise.reject(C)}for(F=0,R=D.length;F<R;)M=M.then(D[F++],D[F++]);return M}getUri(d){d=Io(this.defaults,d);const _=Dg(d.baseURL,d.url,d.allowAbsoluteUrls);return Pg(_,d.params,d.paramsSerializer)}};Ne.forEach(["delete","get","head","options"],function(d){Eo.prototype[d]=function(_,w){return this.request(Io(w||{},{method:d,url:_,data:(w||{}).data}))}});Ne.forEach(["post","put","patch"],function(d){function _(w){return function(P,x,s){return this.request(Io(s||{},{method:d,headers:w?{"Content-Type":"multipart/form-data"}:{},url:P,data:x}))}}Eo.prototype[d]=_(),Eo.prototype[d+"Form"]=_(!0)});let D0=class Ng{constructor(d){if(typeof d!="function")throw new TypeError("executor must be a function.");let _;this.promise=new Promise(function(P){_=P});const w=this;this.promise.then(k=>{if(!w._listeners)return;let P=w._listeners.length;for(;P-- >0;)w._listeners[P](k);w._listeners=null}),this.promise.then=k=>{let P;const x=new Promise(s=>{w.subscribe(s),P=s}).then(k);return x.cancel=function(){w.unsubscribe(P)},x},d(function(P,x,s){w.reason||(w.reason=new Va(P,x,s),_(w.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(d){if(this.reason){d(this.reason);return}this._listeners?this._listeners.push(d):this._listeners=[d]}unsubscribe(d){if(!this._listeners)return;const _=this._listeners.indexOf(d);_!==-1&&this._listeners.splice(_,1)}toAbortSignal(){const d=new AbortController,_=w=>{d.abort(w)};return this.subscribe(_),d.signal.unsubscribe=()=>this.unsubscribe(_),d.signal}static source(){let d;return{token:new Ng(function(k){d=k}),cancel:d}}};function z0(h){return function(_){return h.apply(null,_)}}function B0(h){return Ne.isObject(h)&&h.isAxiosError===!0}const Jp={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Jp).forEach(([h,d])=>{Jp[d]=h});function qg(h){const d=new Eo(h),_=yg(Eo.prototype.request,d);return Ne.extend(_,Eo.prototype,d,{allOwnKeys:!0}),Ne.extend(_,d,null,{allOwnKeys:!0}),_.create=function(k){return qg(Io(h,k))},_}const gr=qg(nc);gr.Axios=Eo;gr.CanceledError=Va;gr.CancelToken=D0;gr.isCancel=Lg;gr.VERSION=Og;gr.toFormData=ch;gr.AxiosError=Dt;gr.Cancel=gr.CanceledError;gr.all=function(d){return Promise.all(d)};gr.spread=z0;gr.isAxiosError=B0;gr.mergeConfig=Io;gr.AxiosHeaders=qi;gr.formToJSON=h=>Mg(Ne.isHTMLForm(h)?new FormData(h):h);gr.getAdapter=Fg.getAdapter;gr.HttpStatusCode=Jp;gr.default=gr;const{Axios:iT,AxiosError:nT,CanceledError:sT,isCancel:oT,CancelToken:aT,VERSION:lT,all:cT,Cancel:uT,isAxiosError:hT,spread:pT,toFormData:dT,AxiosHeaders:fT,HttpStatusCode:mT,formToJSON:gT,getAdapter:yT,mergeConfig:_T}=gr;function nd(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Lo=nd();function Ug(h){Lo=h}var ec={exec:()=>null};function Yt(h,d=""){let _=typeof h=="string"?h:h.source;const w={replace:(k,P)=>{let x=typeof P=="string"?P:P.source;return x=x.replace(Ii.caret,"$1"),_=_.replace(k,x),w},getRegex:()=>new RegExp(_,d)};return w}var Ii={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:h=>new RegExp(`^( {0,3}${h})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:h=>new RegExp(`^ {0,${Math.min(3,h-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:h=>new RegExp(`^ {0,${Math.min(3,h-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:h=>new RegExp(`^ {0,${Math.min(3,h-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:h=>new RegExp(`^ {0,${Math.min(3,h-1)}}#`),htmlBeginRegex:h=>new RegExp(`^ {0,${Math.min(3,h-1)}}<(?:[a-z].*>|!--)`,"i")},V0=/^(?:[ \t]*(?:\n|$))+/,F0=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,O0=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,sc=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,N0=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,sd=/(?:[*+-]|\d{1,9}[.)])/,jg=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Hg=Yt(jg).replace(/bull/g,sd).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),q0=Yt(jg).replace(/bull/g,sd).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),od=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,U0=/^[^\n]+/,ad=/(?!\s*\])(?:\\.|[^\[\]\\])+/,j0=Yt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ad).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),H0=Yt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,sd).getRegex(),ph="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",ld=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,W0=Yt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ld).replace("tag",ph).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Wg=Yt(od).replace("hr",sc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ph).getRegex(),Z0=Yt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Wg).getRegex(),cd={blockquote:Z0,code:F0,def:j0,fences:O0,heading:N0,hr:sc,html:W0,lheading:Hg,list:H0,newline:V0,paragraph:Wg,table:ec,text:U0},gm=Yt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",sc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ph).getRegex(),K0={...cd,lheading:q0,table:gm,paragraph:Yt(od).replace("hr",sc).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",gm).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ph).getRegex()},G0={...cd,html:Yt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ld).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ec,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Yt(od).replace("hr",sc).replace("heading",` *#{1,6} *[^
7
+ ]`).replace("lheading",Hg).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},J0=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,X0=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zg=/^( {2,}|\\)\n(?!\s*$)/,Q0=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,dh=/[\p{P}\p{S}]/u,ud=/[\s\p{P}\p{S}]/u,Kg=/[^\s\p{P}\p{S}]/u,Y0=Yt(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,ud).getRegex(),Gg=/(?!~)[\p{P}\p{S}]/u,$0=/(?!~)[\s\p{P}\p{S}]/u,ex=/(?:[^\s\p{P}\p{S}]|~)/u,tx=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,Jg=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,rx=Yt(Jg,"u").replace(/punct/g,dh).getRegex(),ix=Yt(Jg,"u").replace(/punct/g,Gg).getRegex(),Xg="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",nx=Yt(Xg,"gu").replace(/notPunctSpace/g,Kg).replace(/punctSpace/g,ud).replace(/punct/g,dh).getRegex(),sx=Yt(Xg,"gu").replace(/notPunctSpace/g,ex).replace(/punctSpace/g,$0).replace(/punct/g,Gg).getRegex(),ox=Yt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Kg).replace(/punctSpace/g,ud).replace(/punct/g,dh).getRegex(),ax=Yt(/\\(punct)/,"gu").replace(/punct/g,dh).getRegex(),lx=Yt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cx=Yt(ld).replace("(?:-->|$)","-->").getRegex(),ux=Yt("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cx).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),eh=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,hx=Yt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",eh).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Qg=Yt(/^!?\[(label)\]\[(ref)\]/).replace("label",eh).replace("ref",ad).getRegex(),Yg=Yt(/^!?\[(ref)\](?:\[\])?/).replace("ref",ad).getRegex(),px=Yt("reflink|nolink(?!\\()","g").replace("reflink",Qg).replace("nolink",Yg).getRegex(),hd={_backpedal:ec,anyPunctuation:ax,autolink:lx,blockSkip:tx,br:Zg,code:X0,del:ec,emStrongLDelim:rx,emStrongRDelimAst:nx,emStrongRDelimUnd:ox,escape:J0,link:hx,nolink:Yg,punctuation:Y0,reflink:Qg,reflinkSearch:px,tag:ux,text:Q0,url:ec},dx={...hd,link:Yt(/^!?\[(label)\]\((.*?)\)/).replace("label",eh).getRegex(),reflink:Yt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",eh).getRegex()},Xp={...hd,emStrongRDelimAst:sx,emStrongLDelim:ix,url:Yt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},fx={...Xp,br:Yt(Zg).replace("{2,}","*").getRegex(),text:Yt(Xp.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},_u={normal:cd,gfm:K0,pedantic:G0},Jl={normal:hd,gfm:Xp,breaks:fx,pedantic:dx},mx={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ym=h=>mx[h];function Bn(h,d){if(d){if(Ii.escapeTest.test(h))return h.replace(Ii.escapeReplace,ym)}else if(Ii.escapeTestNoEncode.test(h))return h.replace(Ii.escapeReplaceNoEncode,ym);return h}function _m(h){try{h=encodeURI(h).replace(Ii.percentDecode,"%")}catch{return null}return h}function vm(h,d){var P;const _=h.replace(Ii.findPipe,(x,s,B)=>{let D=!1,M=s;for(;--M>=0&&B[M]==="\\";)D=!D;return D?"|":" |"}),w=_.split(Ii.splitPipe);let k=0;if(w[0].trim()||w.shift(),w.length>0&&!((P=w.at(-1))!=null&&P.trim())&&w.pop(),d)if(w.length>d)w.splice(d);else for(;w.length<d;)w.push("");for(;k<w.length;k++)w[k]=w[k].trim().replace(Ii.slashPipe,"|");return w}function Xl(h,d,_){const w=h.length;if(w===0)return"";let k=0;for(;k<w&&h.charAt(w-k-1)===d;)k++;return h.slice(0,w-k)}function gx(h,d){if(h.indexOf(d[1])===-1)return-1;let _=0;for(let w=0;w<h.length;w++)if(h[w]==="\\")w++;else if(h[w]===d[0])_++;else if(h[w]===d[1]&&(_--,_<0))return w;return _>0?-2:-1}function xm(h,d,_,w,k){const P=d.href,x=d.title||null,s=h[1].replace(k.other.outputLinkReplace,"$1");w.state.inLink=!0;const B={type:h[0].charAt(0)==="!"?"image":"link",raw:_,href:P,title:x,text:s,tokens:w.inlineTokens(s)};return w.state.inLink=!1,B}function yx(h,d,_){const w=h.match(_.other.indentCodeCompensation);if(w===null)return d;const k=w[1];return d.split(`
8
+ `).map(P=>{const x=P.match(_.other.beginningSpace);if(x===null)return P;const[s]=x;return s.length>=k.length?P.slice(k.length):P}).join(`
9
+ `)}var th=class{constructor(h){lr(this,"options");lr(this,"rules");lr(this,"lexer");this.options=h||Lo}space(h){const d=this.rules.block.newline.exec(h);if(d&&d[0].length>0)return{type:"space",raw:d[0]}}code(h){const d=this.rules.block.code.exec(h);if(d){const _=d[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:d[0],codeBlockStyle:"indented",text:this.options.pedantic?_:Xl(_,`
10
+ `)}}}fences(h){const d=this.rules.block.fences.exec(h);if(d){const _=d[0],w=yx(_,d[3]||"",this.rules);return{type:"code",raw:_,lang:d[2]?d[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):d[2],text:w}}}heading(h){const d=this.rules.block.heading.exec(h);if(d){let _=d[2].trim();if(this.rules.other.endingHash.test(_)){const w=Xl(_,"#");(this.options.pedantic||!w||this.rules.other.endingSpaceChar.test(w))&&(_=w.trim())}return{type:"heading",raw:d[0],depth:d[1].length,text:_,tokens:this.lexer.inline(_)}}}hr(h){const d=this.rules.block.hr.exec(h);if(d)return{type:"hr",raw:Xl(d[0],`
11
+ `)}}blockquote(h){const d=this.rules.block.blockquote.exec(h);if(d){let _=Xl(d[0],`
12
+ `).split(`
13
+ `),w="",k="";const P=[];for(;_.length>0;){let x=!1;const s=[];let B;for(B=0;B<_.length;B++)if(this.rules.other.blockquoteStart.test(_[B]))s.push(_[B]),x=!0;else if(!x)s.push(_[B]);else break;_=_.slice(B);const D=s.join(`
14
+ `),M=D.replace(this.rules.other.blockquoteSetextReplace,`
15
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");w=w?`${w}
16
+ ${D}`:D,k=k?`${k}
17
+ ${M}`:M;const F=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(M,P,!0),this.lexer.state.top=F,_.length===0)break;const R=P.at(-1);if((R==null?void 0:R.type)==="code")break;if((R==null?void 0:R.type)==="blockquote"){const T=R,C=T.raw+`
18
+ `+_.join(`
19
+ `),U=this.blockquote(C);P[P.length-1]=U,w=w.substring(0,w.length-T.raw.length)+U.raw,k=k.substring(0,k.length-T.text.length)+U.text;break}else if((R==null?void 0:R.type)==="list"){const T=R,C=T.raw+`
20
+ `+_.join(`
21
+ `),U=this.list(C);P[P.length-1]=U,w=w.substring(0,w.length-R.raw.length)+U.raw,k=k.substring(0,k.length-T.raw.length)+U.raw,_=C.substring(P.at(-1).raw.length).split(`
22
+ `);continue}}return{type:"blockquote",raw:w,tokens:P,text:k}}}list(h){let d=this.rules.block.list.exec(h);if(d){let _=d[1].trim();const w=_.length>1,k={type:"list",raw:"",ordered:w,start:w?+_.slice(0,-1):"",loose:!1,items:[]};_=w?`\\d{1,9}\\${_.slice(-1)}`:`\\${_}`,this.options.pedantic&&(_=w?_:"[*+-]");const P=this.rules.other.listItemRegex(_);let x=!1;for(;h;){let B=!1,D="",M="";if(!(d=P.exec(h))||this.rules.block.hr.test(h))break;D=d[0],h=h.substring(D.length);let F=d[2].split(`
23
+ `,1)[0].replace(this.rules.other.listReplaceTabs,ie=>" ".repeat(3*ie.length)),R=h.split(`
24
+ `,1)[0],T=!F.trim(),C=0;if(this.options.pedantic?(C=2,M=F.trimStart()):T?C=d[1].length+1:(C=d[2].search(this.rules.other.nonSpaceChar),C=C>4?1:C,M=F.slice(C),C+=d[1].length),T&&this.rules.other.blankLine.test(R)&&(D+=R+`
25
+ `,h=h.substring(R.length+1),B=!0),!B){const ie=this.rules.other.nextBulletRegex(C),le=this.rules.other.hrRegex(C),Ae=this.rules.other.fencesBeginRegex(C),te=this.rules.other.headingBeginRegex(C),de=this.rules.other.htmlBeginRegex(C);for(;h;){const Ce=h.split(`
26
+ `,1)[0];let Ve;if(R=Ce,this.options.pedantic?(R=R.replace(this.rules.other.listReplaceNesting," "),Ve=R):Ve=R.replace(this.rules.other.tabCharGlobal," "),Ae.test(R)||te.test(R)||de.test(R)||ie.test(R)||le.test(R))break;if(Ve.search(this.rules.other.nonSpaceChar)>=C||!R.trim())M+=`
27
+ `+Ve.slice(C);else{if(T||F.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||Ae.test(F)||te.test(F)||le.test(F))break;M+=`
28
+ `+R}!T&&!R.trim()&&(T=!0),D+=Ce+`
29
+ `,h=h.substring(Ce.length+1),F=Ve.slice(C)}}k.loose||(x?k.loose=!0:this.rules.other.doubleBlankLine.test(D)&&(x=!0));let U=null,K;this.options.gfm&&(U=this.rules.other.listIsTask.exec(M),U&&(K=U[0]!=="[ ] ",M=M.replace(this.rules.other.listReplaceTask,""))),k.items.push({type:"list_item",raw:D,task:!!U,checked:K,loose:!1,text:M,tokens:[]}),k.raw+=D}const s=k.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;k.raw=k.raw.trimEnd();for(let B=0;B<k.items.length;B++)if(this.lexer.state.top=!1,k.items[B].tokens=this.lexer.blockTokens(k.items[B].text,[]),!k.loose){const D=k.items[B].tokens.filter(F=>F.type==="space"),M=D.length>0&&D.some(F=>this.rules.other.anyLine.test(F.raw));k.loose=M}if(k.loose)for(let B=0;B<k.items.length;B++)k.items[B].loose=!0;return k}}html(h){const d=this.rules.block.html.exec(h);if(d)return{type:"html",block:!0,raw:d[0],pre:d[1]==="pre"||d[1]==="script"||d[1]==="style",text:d[0]}}def(h){const d=this.rules.block.def.exec(h);if(d){const _=d[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),w=d[2]?d[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",k=d[3]?d[3].substring(1,d[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):d[3];return{type:"def",tag:_,raw:d[0],href:w,title:k}}}table(h){var x;const d=this.rules.block.table.exec(h);if(!d||!this.rules.other.tableDelimiter.test(d[2]))return;const _=vm(d[1]),w=d[2].replace(this.rules.other.tableAlignChars,"").split("|"),k=(x=d[3])!=null&&x.trim()?d[3].replace(this.rules.other.tableRowBlankLine,"").split(`
30
+ `):[],P={type:"table",raw:d[0],header:[],align:[],rows:[]};if(_.length===w.length){for(const s of w)this.rules.other.tableAlignRight.test(s)?P.align.push("right"):this.rules.other.tableAlignCenter.test(s)?P.align.push("center"):this.rules.other.tableAlignLeft.test(s)?P.align.push("left"):P.align.push(null);for(let s=0;s<_.length;s++)P.header.push({text:_[s],tokens:this.lexer.inline(_[s]),header:!0,align:P.align[s]});for(const s of k)P.rows.push(vm(s,P.header.length).map((B,D)=>({text:B,tokens:this.lexer.inline(B),header:!1,align:P.align[D]})));return P}}lheading(h){const d=this.rules.block.lheading.exec(h);if(d)return{type:"heading",raw:d[0],depth:d[2].charAt(0)==="="?1:2,text:d[1],tokens:this.lexer.inline(d[1])}}paragraph(h){const d=this.rules.block.paragraph.exec(h);if(d){const _=d[1].charAt(d[1].length-1)===`
31
+ `?d[1].slice(0,-1):d[1];return{type:"paragraph",raw:d[0],text:_,tokens:this.lexer.inline(_)}}}text(h){const d=this.rules.block.text.exec(h);if(d)return{type:"text",raw:d[0],text:d[0],tokens:this.lexer.inline(d[0])}}escape(h){const d=this.rules.inline.escape.exec(h);if(d)return{type:"escape",raw:d[0],text:d[1]}}tag(h){const d=this.rules.inline.tag.exec(h);if(d)return!this.lexer.state.inLink&&this.rules.other.startATag.test(d[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(d[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(d[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(d[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:d[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:d[0]}}link(h){const d=this.rules.inline.link.exec(h);if(d){const _=d[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(_)){if(!this.rules.other.endAngleBracket.test(_))return;const P=Xl(_.slice(0,-1),"\\");if((_.length-P.length)%2===0)return}else{const P=gx(d[2],"()");if(P===-2)return;if(P>-1){const s=(d[0].indexOf("!")===0?5:4)+d[1].length+P;d[2]=d[2].substring(0,P),d[0]=d[0].substring(0,s).trim(),d[3]=""}}let w=d[2],k="";if(this.options.pedantic){const P=this.rules.other.pedanticHrefTitle.exec(w);P&&(w=P[1],k=P[3])}else k=d[3]?d[3].slice(1,-1):"";return w=w.trim(),this.rules.other.startAngleBracket.test(w)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(_)?w=w.slice(1):w=w.slice(1,-1)),xm(d,{href:w&&w.replace(this.rules.inline.anyPunctuation,"$1"),title:k&&k.replace(this.rules.inline.anyPunctuation,"$1")},d[0],this.lexer,this.rules)}}reflink(h,d){let _;if((_=this.rules.inline.reflink.exec(h))||(_=this.rules.inline.nolink.exec(h))){const w=(_[2]||_[1]).replace(this.rules.other.multipleSpaceGlobal," "),k=d[w.toLowerCase()];if(!k){const P=_[0].charAt(0);return{type:"text",raw:P,text:P}}return xm(_,k,_[0],this.lexer,this.rules)}}emStrong(h,d,_=""){let w=this.rules.inline.emStrongLDelim.exec(h);if(!w||w[3]&&_.match(this.rules.other.unicodeAlphaNumeric))return;if(!(w[1]||w[2]||"")||!_||this.rules.inline.punctuation.exec(_)){const P=[...w[0]].length-1;let x,s,B=P,D=0;const M=w[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(M.lastIndex=0,d=d.slice(-1*h.length+P);(w=M.exec(d))!=null;){if(x=w[1]||w[2]||w[3]||w[4]||w[5]||w[6],!x)continue;if(s=[...x].length,w[3]||w[4]){B+=s;continue}else if((w[5]||w[6])&&P%3&&!((P+s)%3)){D+=s;continue}if(B-=s,B>0)continue;s=Math.min(s,s+B+D);const F=[...w[0]][0].length,R=h.slice(0,P+w.index+F+s);if(Math.min(P,s)%2){const C=R.slice(1,-1);return{type:"em",raw:R,text:C,tokens:this.lexer.inlineTokens(C)}}const T=R.slice(2,-2);return{type:"strong",raw:R,text:T,tokens:this.lexer.inlineTokens(T)}}}}codespan(h){const d=this.rules.inline.code.exec(h);if(d){let _=d[2].replace(this.rules.other.newLineCharGlobal," ");const w=this.rules.other.nonSpaceChar.test(_),k=this.rules.other.startingSpaceChar.test(_)&&this.rules.other.endingSpaceChar.test(_);return w&&k&&(_=_.substring(1,_.length-1)),{type:"codespan",raw:d[0],text:_}}}br(h){const d=this.rules.inline.br.exec(h);if(d)return{type:"br",raw:d[0]}}del(h){const d=this.rules.inline.del.exec(h);if(d)return{type:"del",raw:d[0],text:d[2],tokens:this.lexer.inlineTokens(d[2])}}autolink(h){const d=this.rules.inline.autolink.exec(h);if(d){let _,w;return d[2]==="@"?(_=d[1],w="mailto:"+_):(_=d[1],w=_),{type:"link",raw:d[0],text:_,href:w,tokens:[{type:"text",raw:_,text:_}]}}}url(h){var _;let d;if(d=this.rules.inline.url.exec(h)){let w,k;if(d[2]==="@")w=d[0],k="mailto:"+w;else{let P;do P=d[0],d[0]=((_=this.rules.inline._backpedal.exec(d[0]))==null?void 0:_[0])??"";while(P!==d[0]);w=d[0],d[1]==="www."?k="http://"+d[0]:k=d[0]}return{type:"link",raw:d[0],text:w,href:k,tokens:[{type:"text",raw:w,text:w}]}}}inlineText(h){const d=this.rules.inline.text.exec(h);if(d){const _=this.lexer.state.inRawBlock;return{type:"text",raw:d[0],text:d[0],escaped:_}}}},ns=class Qp{constructor(d){lr(this,"tokens");lr(this,"options");lr(this,"state");lr(this,"tokenizer");lr(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=d||Lo,this.options.tokenizer=this.options.tokenizer||new th,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const _={other:Ii,block:_u.normal,inline:Jl.normal};this.options.pedantic?(_.block=_u.pedantic,_.inline=Jl.pedantic):this.options.gfm&&(_.block=_u.gfm,this.options.breaks?_.inline=Jl.breaks:_.inline=Jl.gfm),this.tokenizer.rules=_}static get rules(){return{block:_u,inline:Jl}}static lex(d,_){return new Qp(_).lex(d)}static lexInline(d,_){return new Qp(_).inlineTokens(d)}lex(d){d=d.replace(Ii.carriageReturn,`
32
+ `),this.blockTokens(d,this.tokens);for(let _=0;_<this.inlineQueue.length;_++){const w=this.inlineQueue[_];this.inlineTokens(w.src,w.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(d,_=[],w=!1){var k,P,x;for(this.options.pedantic&&(d=d.replace(Ii.tabCharGlobal," ").replace(Ii.spaceLine,""));d;){let s;if((P=(k=this.options.extensions)==null?void 0:k.block)!=null&&P.some(D=>(s=D.call({lexer:this},d,_))?(d=d.substring(s.raw.length),_.push(s),!0):!1))continue;if(s=this.tokenizer.space(d)){d=d.substring(s.raw.length);const D=_.at(-1);s.raw.length===1&&D!==void 0?D.raw+=`
33
+ `:_.push(s);continue}if(s=this.tokenizer.code(d)){d=d.substring(s.raw.length);const D=_.at(-1);(D==null?void 0:D.type)==="paragraph"||(D==null?void 0:D.type)==="text"?(D.raw+=`
34
+ `+s.raw,D.text+=`
35
+ `+s.text,this.inlineQueue.at(-1).src=D.text):_.push(s);continue}if(s=this.tokenizer.fences(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.heading(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.hr(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.blockquote(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.list(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.html(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.def(d)){d=d.substring(s.raw.length);const D=_.at(-1);(D==null?void 0:D.type)==="paragraph"||(D==null?void 0:D.type)==="text"?(D.raw+=`
36
+ `+s.raw,D.text+=`
37
+ `+s.raw,this.inlineQueue.at(-1).src=D.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(d)){d=d.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.lheading(d)){d=d.substring(s.raw.length),_.push(s);continue}let B=d;if((x=this.options.extensions)!=null&&x.startBlock){let D=1/0;const M=d.slice(1);let F;this.options.extensions.startBlock.forEach(R=>{F=R.call({lexer:this},M),typeof F=="number"&&F>=0&&(D=Math.min(D,F))}),D<1/0&&D>=0&&(B=d.substring(0,D+1))}if(this.state.top&&(s=this.tokenizer.paragraph(B))){const D=_.at(-1);w&&(D==null?void 0:D.type)==="paragraph"?(D.raw+=`
38
+ `+s.raw,D.text+=`
39
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=D.text):_.push(s),w=B.length!==d.length,d=d.substring(s.raw.length);continue}if(s=this.tokenizer.text(d)){d=d.substring(s.raw.length);const D=_.at(-1);(D==null?void 0:D.type)==="text"?(D.raw+=`
40
+ `+s.raw,D.text+=`
41
+ `+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=D.text):_.push(s);continue}if(d){const D="Infinite loop on byte: "+d.charCodeAt(0);if(this.options.silent){console.error(D);break}else throw new Error(D)}}return this.state.top=!0,_}inline(d,_=[]){return this.inlineQueue.push({src:d,tokens:_}),_}inlineTokens(d,_=[]){var s,B,D;let w=d,k=null;if(this.tokens.links){const M=Object.keys(this.tokens.links);if(M.length>0)for(;(k=this.tokenizer.rules.inline.reflinkSearch.exec(w))!=null;)M.includes(k[0].slice(k[0].lastIndexOf("[")+1,-1))&&(w=w.slice(0,k.index)+"["+"a".repeat(k[0].length-2)+"]"+w.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(k=this.tokenizer.rules.inline.anyPunctuation.exec(w))!=null;)w=w.slice(0,k.index)+"++"+w.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(k=this.tokenizer.rules.inline.blockSkip.exec(w))!=null;)w=w.slice(0,k.index)+"["+"a".repeat(k[0].length-2)+"]"+w.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let P=!1,x="";for(;d;){P||(x=""),P=!1;let M;if((B=(s=this.options.extensions)==null?void 0:s.inline)!=null&&B.some(R=>(M=R.call({lexer:this},d,_))?(d=d.substring(M.raw.length),_.push(M),!0):!1))continue;if(M=this.tokenizer.escape(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.tag(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.link(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.reflink(d,this.tokens.links)){d=d.substring(M.raw.length);const R=_.at(-1);M.type==="text"&&(R==null?void 0:R.type)==="text"?(R.raw+=M.raw,R.text+=M.text):_.push(M);continue}if(M=this.tokenizer.emStrong(d,w,x)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.codespan(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.br(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.del(d)){d=d.substring(M.raw.length),_.push(M);continue}if(M=this.tokenizer.autolink(d)){d=d.substring(M.raw.length),_.push(M);continue}if(!this.state.inLink&&(M=this.tokenizer.url(d))){d=d.substring(M.raw.length),_.push(M);continue}let F=d;if((D=this.options.extensions)!=null&&D.startInline){let R=1/0;const T=d.slice(1);let C;this.options.extensions.startInline.forEach(U=>{C=U.call({lexer:this},T),typeof C=="number"&&C>=0&&(R=Math.min(R,C))}),R<1/0&&R>=0&&(F=d.substring(0,R+1))}if(M=this.tokenizer.inlineText(F)){d=d.substring(M.raw.length),M.raw.slice(-1)!=="_"&&(x=M.raw.slice(-1)),P=!0;const R=_.at(-1);(R==null?void 0:R.type)==="text"?(R.raw+=M.raw,R.text+=M.text):_.push(M);continue}if(d){const R="Infinite loop on byte: "+d.charCodeAt(0);if(this.options.silent){console.error(R);break}else throw new Error(R)}}return _}},rh=class{constructor(h){lr(this,"options");lr(this,"parser");this.options=h||Lo}space(h){return""}code({text:h,lang:d,escaped:_}){var P;const w=(P=(d||"").match(Ii.notSpaceStart))==null?void 0:P[0],k=h.replace(Ii.endingNewline,"")+`
42
+ `;return w?'<pre><code class="language-'+Bn(w)+'">'+(_?k:Bn(k,!0))+`</code></pre>
43
+ `:"<pre><code>"+(_?k:Bn(k,!0))+`</code></pre>
44
+ `}blockquote({tokens:h}){return`<blockquote>
45
+ ${this.parser.parse(h)}</blockquote>
46
+ `}html({text:h}){return h}heading({tokens:h,depth:d}){return`<h${d}>${this.parser.parseInline(h)}</h${d}>
47
+ `}hr(h){return`<hr>
48
+ `}list(h){const d=h.ordered,_=h.start;let w="";for(let x=0;x<h.items.length;x++){const s=h.items[x];w+=this.listitem(s)}const k=d?"ol":"ul",P=d&&_!==1?' start="'+_+'"':"";return"<"+k+P+`>
49
+ `+w+"</"+k+`>
50
+ `}listitem(h){var _;let d="";if(h.task){const w=this.checkbox({checked:!!h.checked});h.loose?((_=h.tokens[0])==null?void 0:_.type)==="paragraph"?(h.tokens[0].text=w+" "+h.tokens[0].text,h.tokens[0].tokens&&h.tokens[0].tokens.length>0&&h.tokens[0].tokens[0].type==="text"&&(h.tokens[0].tokens[0].text=w+" "+Bn(h.tokens[0].tokens[0].text),h.tokens[0].tokens[0].escaped=!0)):h.tokens.unshift({type:"text",raw:w+" ",text:w+" ",escaped:!0}):d+=w+" "}return d+=this.parser.parse(h.tokens,!!h.loose),`<li>${d}</li>
51
+ `}checkbox({checked:h}){return"<input "+(h?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:h}){return`<p>${this.parser.parseInline(h)}</p>
52
+ `}table(h){let d="",_="";for(let k=0;k<h.header.length;k++)_+=this.tablecell(h.header[k]);d+=this.tablerow({text:_});let w="";for(let k=0;k<h.rows.length;k++){const P=h.rows[k];_="";for(let x=0;x<P.length;x++)_+=this.tablecell(P[x]);w+=this.tablerow({text:_})}return w&&(w=`<tbody>${w}</tbody>`),`<table>
53
+ <thead>
54
+ `+d+`</thead>
55
+ `+w+`</table>
56
+ `}tablerow({text:h}){return`<tr>
57
+ ${h}</tr>
58
+ `}tablecell(h){const d=this.parser.parseInline(h.tokens),_=h.header?"th":"td";return(h.align?`<${_} align="${h.align}">`:`<${_}>`)+d+`</${_}>
59
+ `}strong({tokens:h}){return`<strong>${this.parser.parseInline(h)}</strong>`}em({tokens:h}){return`<em>${this.parser.parseInline(h)}</em>`}codespan({text:h}){return`<code>${Bn(h,!0)}</code>`}br(h){return"<br>"}del({tokens:h}){return`<del>${this.parser.parseInline(h)}</del>`}link({href:h,title:d,tokens:_}){const w=this.parser.parseInline(_),k=_m(h);if(k===null)return w;h=k;let P='<a href="'+h+'"';return d&&(P+=' title="'+Bn(d)+'"'),P+=">"+w+"</a>",P}image({href:h,title:d,text:_,tokens:w}){w&&(_=this.parser.parseInline(w,this.parser.textRenderer));const k=_m(h);if(k===null)return Bn(_);h=k;let P=`<img src="${h}" alt="${_}"`;return d&&(P+=` title="${Bn(d)}"`),P+=">",P}text(h){return"tokens"in h&&h.tokens?this.parser.parseInline(h.tokens):"escaped"in h&&h.escaped?h.text:Bn(h.text)}},pd=class{strong({text:h}){return h}em({text:h}){return h}codespan({text:h}){return h}del({text:h}){return h}html({text:h}){return h}text({text:h}){return h}link({text:h}){return""+h}image({text:h}){return""+h}br(){return""}},ss=class Yp{constructor(d){lr(this,"options");lr(this,"renderer");lr(this,"textRenderer");this.options=d||Lo,this.options.renderer=this.options.renderer||new rh,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new pd}static parse(d,_){return new Yp(_).parse(d)}static parseInline(d,_){return new Yp(_).parseInline(d)}parse(d,_=!0){var k,P;let w="";for(let x=0;x<d.length;x++){const s=d[x];if((P=(k=this.options.extensions)==null?void 0:k.renderers)!=null&&P[s.type]){const D=s,M=this.options.extensions.renderers[D.type].call({parser:this},D);if(M!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(D.type)){w+=M||"";continue}}const B=s;switch(B.type){case"space":{w+=this.renderer.space(B);continue}case"hr":{w+=this.renderer.hr(B);continue}case"heading":{w+=this.renderer.heading(B);continue}case"code":{w+=this.renderer.code(B);continue}case"table":{w+=this.renderer.table(B);continue}case"blockquote":{w+=this.renderer.blockquote(B);continue}case"list":{w+=this.renderer.list(B);continue}case"html":{w+=this.renderer.html(B);continue}case"paragraph":{w+=this.renderer.paragraph(B);continue}case"text":{let D=B,M=this.renderer.text(D);for(;x+1<d.length&&d[x+1].type==="text";)D=d[++x],M+=`
60
+ `+this.renderer.text(D);_?w+=this.renderer.paragraph({type:"paragraph",raw:M,text:M,tokens:[{type:"text",raw:M,text:M,escaped:!0}]}):w+=M;continue}default:{const D='Token with "'+B.type+'" type was not found.';if(this.options.silent)return console.error(D),"";throw new Error(D)}}}return w}parseInline(d,_=this.renderer){var k,P;let w="";for(let x=0;x<d.length;x++){const s=d[x];if((P=(k=this.options.extensions)==null?void 0:k.renderers)!=null&&P[s.type]){const D=this.options.extensions.renderers[s.type].call({parser:this},s);if(D!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){w+=D||"";continue}}const B=s;switch(B.type){case"escape":{w+=_.text(B);break}case"html":{w+=_.html(B);break}case"link":{w+=_.link(B);break}case"image":{w+=_.image(B);break}case"strong":{w+=_.strong(B);break}case"em":{w+=_.em(B);break}case"codespan":{w+=_.codespan(B);break}case"br":{w+=_.br(B);break}case"del":{w+=_.del(B);break}case"text":{w+=_.text(B);break}default:{const D='Token with "'+B.type+'" type was not found.';if(this.options.silent)return console.error(D),"";throw new Error(D)}}}return w}},jp,Xu=(jp=class{constructor(h){lr(this,"options");lr(this,"block");this.options=h||Lo}preprocess(h){return h}postprocess(h){return h}processAllTokens(h){return h}provideLexer(){return this.block?ns.lex:ns.lexInline}provideParser(){return this.block?ss.parse:ss.parseInline}},lr(jp,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"])),jp),_x=class{constructor(...h){lr(this,"defaults",nd());lr(this,"options",this.setOptions);lr(this,"parse",this.parseMarkdown(!0));lr(this,"parseInline",this.parseMarkdown(!1));lr(this,"Parser",ss);lr(this,"Renderer",rh);lr(this,"TextRenderer",pd);lr(this,"Lexer",ns);lr(this,"Tokenizer",th);lr(this,"Hooks",Xu);this.use(...h)}walkTokens(h,d){var w,k;let _=[];for(const P of h)switch(_=_.concat(d.call(this,P)),P.type){case"table":{const x=P;for(const s of x.header)_=_.concat(this.walkTokens(s.tokens,d));for(const s of x.rows)for(const B of s)_=_.concat(this.walkTokens(B.tokens,d));break}case"list":{const x=P;_=_.concat(this.walkTokens(x.items,d));break}default:{const x=P;(k=(w=this.defaults.extensions)==null?void 0:w.childTokens)!=null&&k[x.type]?this.defaults.extensions.childTokens[x.type].forEach(s=>{const B=x[s].flat(1/0);_=_.concat(this.walkTokens(B,d))}):x.tokens&&(_=_.concat(this.walkTokens(x.tokens,d)))}}return _}use(...h){const d=this.defaults.extensions||{renderers:{},childTokens:{}};return h.forEach(_=>{const w={..._};if(w.async=this.defaults.async||w.async||!1,_.extensions&&(_.extensions.forEach(k=>{if(!k.name)throw new Error("extension name required");if("renderer"in k){const P=d.renderers[k.name];P?d.renderers[k.name]=function(...x){let s=k.renderer.apply(this,x);return s===!1&&(s=P.apply(this,x)),s}:d.renderers[k.name]=k.renderer}if("tokenizer"in k){if(!k.level||k.level!=="block"&&k.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const P=d[k.level];P?P.unshift(k.tokenizer):d[k.level]=[k.tokenizer],k.start&&(k.level==="block"?d.startBlock?d.startBlock.push(k.start):d.startBlock=[k.start]:k.level==="inline"&&(d.startInline?d.startInline.push(k.start):d.startInline=[k.start]))}"childTokens"in k&&k.childTokens&&(d.childTokens[k.name]=k.childTokens)}),w.extensions=d),_.renderer){const k=this.defaults.renderer||new rh(this.defaults);for(const P in _.renderer){if(!(P in k))throw new Error(`renderer '${P}' does not exist`);if(["options","parser"].includes(P))continue;const x=P,s=_.renderer[x],B=k[x];k[x]=(...D)=>{let M=s.apply(k,D);return M===!1&&(M=B.apply(k,D)),M||""}}w.renderer=k}if(_.tokenizer){const k=this.defaults.tokenizer||new th(this.defaults);for(const P in _.tokenizer){if(!(P in k))throw new Error(`tokenizer '${P}' does not exist`);if(["options","rules","lexer"].includes(P))continue;const x=P,s=_.tokenizer[x],B=k[x];k[x]=(...D)=>{let M=s.apply(k,D);return M===!1&&(M=B.apply(k,D)),M}}w.tokenizer=k}if(_.hooks){const k=this.defaults.hooks||new Xu;for(const P in _.hooks){if(!(P in k))throw new Error(`hook '${P}' does not exist`);if(["options","block"].includes(P))continue;const x=P,s=_.hooks[x],B=k[x];Xu.passThroughHooks.has(P)?k[x]=D=>{if(this.defaults.async)return Promise.resolve(s.call(k,D)).then(F=>B.call(k,F));const M=s.call(k,D);return B.call(k,M)}:k[x]=(...D)=>{let M=s.apply(k,D);return M===!1&&(M=B.apply(k,D)),M}}w.hooks=k}if(_.walkTokens){const k=this.defaults.walkTokens,P=_.walkTokens;w.walkTokens=function(x){let s=[];return s.push(P.call(this,x)),k&&(s=s.concat(k.call(this,x))),s}}this.defaults={...this.defaults,...w}}),this}setOptions(h){return this.defaults={...this.defaults,...h},this}lexer(h,d){return ns.lex(h,d??this.defaults)}parser(h,d){return ss.parse(h,d??this.defaults)}parseMarkdown(h){return(_,w)=>{const k={...w},P={...this.defaults,...k},x=this.onError(!!P.silent,!!P.async);if(this.defaults.async===!0&&k.async===!1)return x(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof _>"u"||_===null)return x(new Error("marked(): input parameter is undefined or null"));if(typeof _!="string")return x(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(_)+", string expected"));P.hooks&&(P.hooks.options=P,P.hooks.block=h);const s=P.hooks?P.hooks.provideLexer():h?ns.lex:ns.lexInline,B=P.hooks?P.hooks.provideParser():h?ss.parse:ss.parseInline;if(P.async)return Promise.resolve(P.hooks?P.hooks.preprocess(_):_).then(D=>s(D,P)).then(D=>P.hooks?P.hooks.processAllTokens(D):D).then(D=>P.walkTokens?Promise.all(this.walkTokens(D,P.walkTokens)).then(()=>D):D).then(D=>B(D,P)).then(D=>P.hooks?P.hooks.postprocess(D):D).catch(x);try{P.hooks&&(_=P.hooks.preprocess(_));let D=s(_,P);P.hooks&&(D=P.hooks.processAllTokens(D)),P.walkTokens&&this.walkTokens(D,P.walkTokens);let M=B(D,P);return P.hooks&&(M=P.hooks.postprocess(M)),M}catch(D){return x(D)}}}onError(h,d){return _=>{if(_.message+=`
61
+ Please report this to https://github.com/markedjs/marked.`,h){const w="<p>An error occurred:</p><pre>"+Bn(_.message+"",!0)+"</pre>";return d?Promise.resolve(w):w}if(d)return Promise.reject(_);throw _}}},Mo=new _x;function rr(h,d){return Mo.parse(h,d)}rr.options=rr.setOptions=function(h){return Mo.setOptions(h),rr.defaults=Mo.defaults,Ug(rr.defaults),rr};rr.getDefaults=nd;rr.defaults=Lo;rr.use=function(...h){return Mo.use(...h),rr.defaults=Mo.defaults,Ug(rr.defaults),rr};rr.walkTokens=function(h,d){return Mo.walkTokens(h,d)};rr.parseInline=Mo.parseInline;rr.Parser=ss;rr.parser=ss.parse;rr.Renderer=rh;rr.TextRenderer=pd;rr.Lexer=ns;rr.lexer=ns.lex;rr.Tokenizer=th;rr.Hooks=Xu;rr.parse=rr;rr.options;rr.setOptions;rr.use;rr.walkTokens;rr.parseInline;ss.parse;ns.lex;function $g(h){return h&&h.__esModule&&Object.prototype.hasOwnProperty.call(h,"default")?h.default:h}var Qu={exports:{}};/**
62
+ * MapLibre GL JS
63
+ * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.5.0/LICENSE.txt
64
+ */var vx=Qu.exports,bm;function xx(){return bm||(bm=1,function(h,d){(function(_,w){h.exports=w()})(vx,function(){var _={},w={};function k(x,s,B){if(w[x]=B,x==="index"){var D="var sharedModule = {}; ("+w.shared+")(sharedModule); ("+w.worker+")(sharedModule);",M={};return w.shared(M),w.index(_,M),typeof window<"u"&&_.setWorkerUrl(window.URL.createObjectURL(new Blob([D],{type:"text/javascript"}))),_}}k("shared",["exports"],function(x){function s(n,t,i,o){return new(i||(i=Promise))(function(c,f){function m(E){try{S(o.next(E))}catch(L){f(L)}}function v(E){try{S(o.throw(E))}catch(L){f(L)}}function S(E){var L;E.done?c(E.value):(L=E.value,L instanceof i?L:new i(function(V){V(L)})).then(m,v)}S((o=o.apply(n,t||[])).next())})}function B(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var D,M;function F(){if(M)return D;function n(t,i){this.x=t,this.y=i}return M=1,D=n,n.prototype={clone:function(){return new n(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,i){return this.clone()._rotateAround(t,i)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var i=t.x-this.x,o=t.y-this.y;return i*i+o*o},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,i){return Math.atan2(this.x*i-this.y*t,this.x*t+this.y*i)},_matMult:function(t){var i=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var i=Math.cos(t),o=Math.sin(t),c=o*this.x+i*this.y;return this.x=i*this.x-o*this.y,this.y=c,this},_rotateAround:function(t,i){var o=Math.cos(t),c=Math.sin(t),f=i.y+c*(this.x-i.x)+o*(this.y-i.y);return this.x=i.x+o*(this.x-i.x)-c*(this.y-i.y),this.y=f,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t},D}typeof SuppressedError=="function"&&SuppressedError;var R,T,C=B(F()),U=function(){if(T)return R;function n(t,i,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(c-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=i,this.p2x=o,this.p2y=c}return T=1,R=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,i){if(i===void 0&&(i=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var f=this.sampleCurveX(o)-t;if(Math.abs(f)<i)return o;var m=this.sampleCurveDerivativeX(o);if(Math.abs(m)<1e-6)break;o-=f/m}var v=0,S=1;for(o=t,c=0;c<20&&(f=this.sampleCurveX(o),!(Math.abs(f-t)<i));c++)t>f?v=o:S=o,o=.5*(S-v)+v;return o},solve:function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}},R}(),K=B(U);let ie,le;function Ae(){return ie==null&&(ie=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),ie}function te(){if(le==null&&(le=!1,Ae())){const t=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(t){for(let o=0;o<5*5;o++){const c=4*o;t.fillStyle=`rgb(${c},${c+1},${c+2})`,t.fillRect(o%5,Math.floor(o/5),1,1)}const i=t.getImageData(0,0,5,5).data;for(let o=0;o<5*5*4;o++)if(o%4!=3&&i[o]!==o){le=!0;break}}}return le||!1}var de=1e-6,Ce=typeof Float32Array<"u"?Float32Array:Array;function Ve(){var n=new Ce(9);return Ce!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function Ze(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function vt(){var n=new Ce(3);return Ce!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function tt(n){return Math.hypot(n[0],n[1],n[2])}function Xe(n,t,i){var o=new Ce(3);return o[0]=n,o[1]=t,o[2]=i,o}Math.hypot||(Math.hypot=function(){for(var n=0,t=arguments.length;t--;)n+=arguments[t]*arguments[t];return Math.sqrt(n)});var rt,bt=tt;function Mt(n,t,i){var o=t[0],c=t[1],f=t[2],m=t[3];return n[0]=i[0]*o+i[4]*c+i[8]*f+i[12]*m,n[1]=i[1]*o+i[5]*c+i[9]*f+i[13]*m,n[2]=i[2]*o+i[6]*c+i[10]*f+i[14]*m,n[3]=i[3]*o+i[7]*c+i[11]*f+i[15]*m,n}function cr(){var n=new Ce(4);return Ce!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function yr(){var n=new Ce(2);return Ce!=Float32Array&&(n[0]=0,n[1]=0),n}function bi(n,t){var i=new Ce(2);return i[0]=n,i[1]=t,i}vt(),rt=new Ce(4),Ce!=Float32Array&&(rt[0]=0,rt[1]=0,rt[2]=0,rt[3]=0),vt(),Xe(1,0,0),Xe(0,1,0),cr(),cr(),Ve(),yr();const Zt=8192;function en(n,t,i){return t*(Zt/(n.tileSize*Math.pow(2,i-n.tileID.overscaledZ)))}function ti(n,t){return(n%t+t)%t}function wn(n,t,i){return n*(1-i)+t*i}function Rr(n){if(n<=0)return 0;if(n>=1)return 1;const t=n*n,i=t*n;return 4*(n<.5?i:3*(n-t)+i-.75)}function as(n,t,i,o){const c=new K(n,t,i,o);return f=>c.solve(f)}const wi=as(.25,.1,.25,1);function Dr(n,t,i){return Math.min(i,Math.max(t,n))}function ji(n,t,i){const o=i-t,c=((n-t)%o+o)%o+t;return c===t?i:c}function ai(n,...t){for(const i of t)for(const o in i)n[o]=i[o];return n}let Sn=1;function tn(n,t,i){const o={};for(const c in n)o[c]=t.call(this,n[c],c,n);return o}function Vn(n,t,i){const o={};for(const c in n)t.call(this,n[c],c,n)&&(o[c]=n[c]);return o}function Kr(n){return Array.isArray(n)?n.map(Kr):typeof n=="object"&&n?tn(n,Kr):n}const li={};function Gr(n){li[n]||(typeof console<"u"&&console.warn(n),li[n]=!0)}function Ke(n,t,i){return(i.y-n.y)*(t.x-n.x)>(t.y-n.y)*(i.x-n.x)}function nt(n){return typeof WorkerGlobalScope<"u"&&n!==void 0&&n instanceof WorkerGlobalScope}let lt=null;function xt(n){return typeof ImageBitmap<"u"&&n instanceof ImageBitmap}const kt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Pt(n,t,i,o,c){return s(this,void 0,void 0,function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const f=new VideoFrame(n,{timestamp:0});try{const m=f==null?void 0:f.format;if(!m||!m.startsWith("BGR")&&!m.startsWith("RGB"))throw new Error(`Unrecognized format ${m}`);const v=m.startsWith("BGR"),S=new Uint8ClampedArray(o*c*4);if(yield f.copyTo(S,function(E,L,V,q,H){const W=4*Math.max(1,0),X=(Math.max(0,V)-V)*q*4+W,ee=4*q,ae=Math.max(0,L),ve=Math.max(0,V);return{rect:{x:ae,y:ve,width:Math.min(E.width,L+q)-ae,height:Math.min(E.height,V+H)-ve},layout:[{offset:X,stride:ee}]}}(n,t,i,o,c)),v)for(let E=0;E<S.length;E+=4){const L=S[E];S[E]=S[E+2],S[E+2]=L}return S}finally{f.close()}})}let mt,Ut;function It(n,t,i,o){return n.addEventListener(t,i,o),{unsubscribe:()=>{n.removeEventListener(t,i,o)}}}function Sr(n){return n*Math.PI/180}function mi(n){return n/Math.PI*180}const Er={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},Hi={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},Mi="AbortError";function Li(){return new Error(Mi)}const Ri={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function $t(n){return Ri.REGISTERED_PROTOCOLS[n.substring(0,n.indexOf("://"))]}const Xt="global-dispatcher";class yt extends Error{constructor(t,i,o,c){super(`AJAXError: ${i} (${t}): ${o}`),this.status=t,this.statusText=i,this.url=o,this.body=c}}const er=()=>nt(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,ur=function(n,t){if(/:\/\//.test(n.url)&&!/^https?:|^file:/.test(n.url)){const o=$t(n.url);if(o)return o(n,t);if(nt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,targetMapId:Xt},t)}if(!(/^file:/.test(i=n.url)||/^file:/.test(er())&&!/^\w+:/.test(i))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(o,c){return s(this,void 0,void 0,function*(){const f=new Request(o.url,{method:o.method||"GET",body:o.body,credentials:o.credentials,headers:o.headers,cache:o.cache,referrer:er(),signal:c.signal});let m,v;o.type!=="json"||f.headers.has("Accept")||f.headers.set("Accept","application/json");try{m=yield fetch(f)}catch(E){throw new yt(0,E.message,o.url,new Blob)}if(!m.ok){const E=yield m.blob();throw new yt(m.status,m.statusText,o.url,E)}v=o.type==="arrayBuffer"||o.type==="image"?m.arrayBuffer():o.type==="json"?m.json():m.text();const S=yield v;if(c.signal.aborted)throw Li();return{data:S,cacheControl:m.headers.get("Cache-Control"),expires:m.headers.get("Expires")}})}(n,t);if(nt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,mustQueue:!0,targetMapId:Xt},t)}var i;return function(o,c){return new Promise((f,m)=>{var v;const S=new XMLHttpRequest;S.open(o.method||"GET",o.url,!0),o.type!=="arrayBuffer"&&o.type!=="image"||(S.responseType="arraybuffer");for(const E in o.headers)S.setRequestHeader(E,o.headers[E]);o.type==="json"&&(S.responseType="text",!((v=o.headers)===null||v===void 0)&&v.Accept||S.setRequestHeader("Accept","application/json")),S.withCredentials=o.credentials==="include",S.onerror=()=>{m(new Error(S.statusText))},S.onload=()=>{if(!c.signal.aborted)if((S.status>=200&&S.status<300||S.status===0)&&S.response!==null){let E=S.response;if(o.type==="json")try{E=JSON.parse(S.response)}catch(L){return void m(L)}f({data:E,cacheControl:S.getResponseHeader("Cache-Control"),expires:S.getResponseHeader("Expires")})}else{const E=new Blob([S.response],{type:S.getResponseHeader("Content-Type")});m(new yt(S.status,S.statusText,o.url,E))}},c.signal.addEventListener("abort",()=>{S.abort(),m(Li())}),S.send(o.body)})}(n,t)};function we(n){if(!n||n.indexOf("://")<=0||n.indexOf("data:image/")===0||n.indexOf("blob:")===0)return!0;const t=new URL(n),i=window.location;return t.protocol===i.protocol&&t.host===i.host}function G(n,t,i){i[n]&&i[n].indexOf(t)!==-1||(i[n]=i[n]||[],i[n].push(t))}function Q(n,t,i){if(i&&i[n]){const o=i[n].indexOf(t);o!==-1&&i[n].splice(o,1)}}class re{constructor(t,i={}){ai(this,i),this.type=t}}class ce extends re{constructor(t,i={}){super("error",ai({error:t},i))}}class ye{on(t,i){return this._listeners=this._listeners||{},G(t,i,this._listeners),{unsubscribe:()=>{this.off(t,i)}}}off(t,i){return Q(t,i,this._listeners),Q(t,i,this._oneTimeListeners),this}once(t,i){return i?(this._oneTimeListeners=this._oneTimeListeners||{},G(t,i,this._oneTimeListeners),this):new Promise(o=>this.once(t,o))}fire(t,i){typeof t=="string"&&(t=new re(t,i||{}));const o=t.type;if(this.listens(o)){t.target=this;const c=this._listeners&&this._listeners[o]?this._listeners[o].slice():[];for(const v of c)v.call(this,t);const f=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const v of f)Q(o,v,this._oneTimeListeners),v.call(this,t);const m=this._eventedParent;m&&(ai(t,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),m.fire(t))}else t instanceof ce&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,i){return this._eventedParent=t,this._eventedParentData=i,this}}var $={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},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:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},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:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,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:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};const ke=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function be(n,t){const i={};for(const o in n)o!=="ref"&&(i[o]=n[o]);return ke.forEach(o=>{o in t&&(i[o]=t[o])}),i}function Se(n,t){if(Array.isArray(n)){if(!Array.isArray(t)||n.length!==t.length)return!1;for(let i=0;i<n.length;i++)if(!Se(n[i],t[i]))return!1;return!0}if(typeof n=="object"&&n!==null&&t!==null){if(typeof t!="object"||Object.keys(n).length!==Object.keys(t).length)return!1;for(const i in n)if(!Se(n[i],t[i]))return!1;return!0}return n===t}function Ie(n,t){n.push(t)}function Te(n,t,i){Ie(i,{command:"addSource",args:[n,t[n]]})}function qe(n,t,i){Ie(t,{command:"removeSource",args:[n]}),i[n]=!0}function $e(n,t,i,o){qe(n,i,o),Te(n,t,i)}function et(n,t,i){let o;for(o in n[i])if(Object.prototype.hasOwnProperty.call(n[i],o)&&o!=="data"&&!Se(n[i][o],t[i][o]))return!1;for(o in t[i])if(Object.prototype.hasOwnProperty.call(t[i],o)&&o!=="data"&&!Se(n[i][o],t[i][o]))return!1;return!0}function ht(n,t,i,o,c,f){n=n||{},t=t||{};for(const m in n)Object.prototype.hasOwnProperty.call(n,m)&&(Se(n[m],t[m])||i.push({command:f,args:[o,m,t[m],c]}));for(const m in t)Object.prototype.hasOwnProperty.call(t,m)&&!Object.prototype.hasOwnProperty.call(n,m)&&(Se(n[m],t[m])||i.push({command:f,args:[o,m,t[m],c]}))}function St(n){return n.id}function _t(n,t){return n[t.id]=t,n}class ze{constructor(t,i,o,c){this.message=(t?`${t}: `:"")+o,c&&(this.identifier=c),i!=null&&i.__line__&&(this.line=i.__line__)}}function Kt(n,...t){for(const i of t)for(const o in i)n[o]=i[o];return n}class Bt extends Error{constructor(t,i){super(i),this.message=i,this.key=t}}class jt{constructor(t,i=[]){this.parent=t,this.bindings={};for(const[o,c]of i)this.bindings[o]=c}concat(t){return new jt(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}const gt={kind:"null"},Ue={kind:"number"},dt={kind:"string"},At={kind:"boolean"},_r={kind:"color"},vr={kind:"projectionDefinition"},gi={kind:"object"},Tt={kind:"value"},ls={kind:"collator"},Vs={kind:"formatted"},Fn={kind:"padding"},Fs={kind:"colorArray"},cn={kind:"numberArray"},On={kind:"resolvedImage"},kr={kind:"variableAnchorOffsetCollection"};function Si(n,t){return{kind:"array",itemType:n,N:t}}function ar(n){if(n.kind==="array"){const t=ar(n.itemType);return typeof n.N=="number"?`array<${t}, ${n.N}>`:n.itemType.kind==="value"?"array":`array<${t}>`}return n.kind}const Os=[gt,Ue,dt,At,_r,vr,Vs,gi,Si(Tt),Fn,cn,Fs,On,kr];function cs(n,t){if(t.kind==="error")return null;if(n.kind==="array"){if(t.kind==="array"&&(t.N===0&&t.itemType.kind==="value"||!cs(n.itemType,t.itemType))&&(typeof n.N!="number"||n.N===t.N))return null}else{if(n.kind===t.kind)return null;if(n.kind==="value"){for(const i of Os)if(!cs(i,t))return null}}return`Expected ${ar(n)} but found ${ar(t)} instead.`}function Fa(n,t){return t.some(i=>i.kind===n.kind)}function Nn(n,t){return t.some(i=>i==="null"?n===null:i==="array"?Array.isArray(n):i==="object"?n&&!Array.isArray(n)&&typeof n=="object":i===typeof n)}function un(n,t){return n.kind==="array"&&t.kind==="array"?n.itemType.kind===t.itemType.kind&&typeof n.N=="number":n.kind===t.kind}const ac=.96422,Oa=.82521,lc=4/29,us=6/29,cc=3*us*us,fh=us*us*us,mh=Math.PI/180,gh=180/Math.PI;function uc(n){return(n%=360)<0&&(n+=360),n}function Na([n,t,i,o]){let c,f;const m=qa((.2225045*(n=qn(n))+.7168786*(t=qn(t))+.0606169*(i=qn(i)))/1);n===t&&t===i?c=f=m:(c=qa((.4360747*n+.3850649*t+.1430804*i)/ac),f=qa((.0139322*n+.0971045*t+.7141733*i)/Oa));const v=116*m-16;return[v<0?0:v,500*(c-m),200*(m-f),o]}function qn(n){return n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function qa(n){return n>fh?Math.pow(n,1/3):n/cc+lc}function hc([n,t,i,o]){let c=(n+16)/116,f=isNaN(t)?c:c+t/500,m=isNaN(i)?c:c-i/200;return c=1*Ua(c),f=ac*Ua(f),m=Oa*Ua(m),[Un(3.1338561*f-1.6168667*c-.4906146*m),Un(-.9787684*f+1.9161415*c+.033454*m),Un(.0719453*f-.2289914*c+1.4052427*m),o]}function Un(n){return(n=n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055)<0?0:n>1?1:n}function Ua(n){return n>us?n*n*n:cc*(n-lc)}const yh=Object.hasOwn||function(n,t){return Object.prototype.hasOwnProperty.call(n,t)};function Ns(n,t){return yh(n,t)?n[t]:void 0}function qs(n){return parseInt(n.padEnd(2,n),16)/255}function ja(n,t){return ci(t?n/100:n,0,1)}function ci(n,t,i){return Math.min(Math.max(t,n),i)}function Nt(n){return!n.some(Number.isNaN)}const hs={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 ui(n,t,i){return n+i*(t-n)}function jn(n,t,i){return n.map((o,c)=>ui(o,t[c],i))}class Vt{constructor(t,i,o,c=1,f=!0){this.r=t,this.g=i,this.b=o,this.a=c,f||(this.r*=c,this.g*=c,this.b*=c,c||this.overwriteGetter("rgb",[t,i,o,c]))}static parse(t){if(t instanceof Vt)return t;if(typeof t!="string")return;const i=function(o){if((o=o.toLowerCase().trim())==="transparent")return[0,0,0,0];const c=Ns(hs,o);if(c){const[m,v,S]=c;return[m/255,v/255,S/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const m=o.length<6?1:2;let v=1;return[qs(o.slice(v,v+=m)),qs(o.slice(v,v+=m)),qs(o.slice(v,v+=m)),qs(o.slice(v,v+m)||"ff")]}if(o.startsWith("rgb")){const m=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(m){const[v,S,E,L,V,q,H,W,X,ee,ae,ve]=m,he=[L||" ",H||" ",ee].join("");if(he===" "||he===" /"||he===",,"||he===",,,"){const j=[E,q,X].join(""),Y=j==="%%%"?100:j===""?255:0;if(Y){const pe=[ci(+S/Y,0,1),ci(+V/Y,0,1),ci(+W/Y,0,1),ae?ja(+ae,ve):1];if(Nt(pe))return pe}}return}}const f=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(f){const[m,v,S,E,L,V,q,H,W]=f,X=[S||" ",L||" ",q].join("");if(X===" "||X===" /"||X===",,"||X===",,,"){const ee=[+v,ci(+E,0,100),ci(+V,0,100),H?ja(+H,W):1];if(Nt(ee))return function([ae,ve,he,j]){function Y(pe){const Pe=(pe+ae/30)%12,je=ve*Math.min(he,1-he);return he-je*Math.max(-1,Math.min(Pe-3,9-Pe,1))}return ae=uc(ae),ve/=100,he/=100,[Y(0),Y(8),Y(4),j]}(ee)}}}(t);return i?new Vt(...i,!1):void 0}get rgb(){const{r:t,g:i,b:o,a:c}=this,f=c||1/0;return this.overwriteGetter("rgb",[t/f,i/f,o/f,c])}get hcl(){return this.overwriteGetter("hcl",function(t){const[i,o,c,f]=Na(t),m=Math.sqrt(o*o+c*c);return[Math.round(1e4*m)?uc(Math.atan2(c,o)*gh):NaN,m,i,f]}(this.rgb))}get lab(){return this.overwriteGetter("lab",Na(this.rgb))}overwriteGetter(t,i){return Object.defineProperty(this,t,{value:i}),i}toString(){const[t,i,o,c]=this.rgb;return`rgba(${[t,i,o].map(f=>Math.round(255*f)).join(",")},${c})`}static interpolate(t,i,o,c="rgb"){switch(c){case"rgb":{const[f,m,v,S]=jn(t.rgb,i.rgb,o);return new Vt(f,m,v,S,!1)}case"hcl":{const[f,m,v,S]=t.hcl,[E,L,V,q]=i.hcl;let H,W;if(isNaN(f)||isNaN(E))isNaN(f)?isNaN(E)?H=NaN:(H=E,v!==1&&v!==0||(W=L)):(H=f,V!==1&&V!==0||(W=m));else{let he=E-f;E>f&&he>180?he-=360:E<f&&f-E>180&&(he+=360),H=f+o*he}const[X,ee,ae,ve]=function([he,j,Y,pe]){return he=isNaN(he)?0:he*mh,hc([Y,Math.cos(he)*j,Math.sin(he)*j,pe])}([H,W??ui(m,L,o),ui(v,V,o),ui(S,q,o)]);return new Vt(X,ee,ae,ve,!1)}case"lab":{const[f,m,v,S]=hc(jn(t.lab,i.lab,o));return new Vt(f,m,v,S,!1)}}}}Vt.black=new Vt(0,0,0,1),Vt.white=new Vt(1,1,1,1),Vt.transparent=new Vt(0,0,0,0),Vt.red=new Vt(1,0,0,1);class Us{constructor(t,i,o){this.sensitivity=t?i?"variant":"case":i?"accent":"base",this.locale=o,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,i){return this.collator.compare(t,i)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const js=["bottom","center","top"];class ps{constructor(t,i,o,c,f,m){this.text=t,this.image=i,this.scale=o,this.fontStack=c,this.textColor=f,this.verticalAlign=m}}class yi{constructor(t){this.sections=t}static fromString(t){return new yi([new ps(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(t=>t.text.length!==0||t.image&&t.image.name.length!==0)}static factory(t){return t instanceof yi?t:yi.fromString(t)}toString(){return this.sections.length===0?"":this.sections.map(t=>t.text).join("")}}class Jr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Jr)return t;if(typeof t=="number")return new Jr([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const i of t)if(typeof i!="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 Jr(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){return new Jr(jn(t.values,i.values,o))}}class Tr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Tr)return t;if(typeof t=="number")return new Tr([t]);if(Array.isArray(t)){for(const i of t)if(typeof i!="number")return;return new Tr(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){return new Tr(jn(t.values,i.values,o))}}class Xr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Xr)return t;if(typeof t=="string"){const o=Vt.parse(t);return o?new Xr([o]):void 0}if(!Array.isArray(t))return;const i=[];for(const o of t){if(typeof o!="string")return;const c=Vt.parse(o);if(!c)return;i.push(c)}return new Xr(i)}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o,c="rgb"){const f=[];if(t.values.length!=i.values.length)throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${i.values.length}), cannot interpolate.`);for(let m=0;m<t.values.length;m++)f.push(Vt.interpolate(t.values[m],i.values[m],o,c));return new Xr(f)}}class ir extends Error{constructor(t){super(t),this.name="RuntimeError"}toJSON(){return this.message}}const ds=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class hi{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof hi)return t;if(Array.isArray(t)&&!(t.length<1)&&t.length%2==0){for(let i=0;i<t.length;i+=2){const o=t[i],c=t[i+1];if(typeof o!="string"||!ds.has(o)||!Array.isArray(c)||c.length!==2||typeof c[0]!="number"||typeof c[1]!="number")return}return new hi(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){const c=t.values,f=i.values;if(c.length!==f.length)throw new ir(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${i.toString()}`);const m=[];for(let v=0;v<c.length;v+=2){if(c[v]!==f[v])throw new ir(`Cannot interpolate values containing mismatched anchors. from[${v}]: ${c[v]}, to[${v}]: ${f[v]}`);m.push(c[v]);const[S,E]=c[v+1],[L,V]=f[v+1];m.push([ui(S,L,o),ui(E,V,o)])}return new hi(m)}}class Ai{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Ai({name:t,available:!1}):null}}class _i{constructor(t,i,o){this.from=t,this.to=i,this.transition=o}static interpolate(t,i,o){return new _i(t,i,o)}static parse(t){return t instanceof _i?t:Array.isArray(t)&&t.length===3&&typeof t[0]=="string"&&typeof t[1]=="string"&&typeof t[2]=="number"?new _i(t[0],t[1],t[2]):typeof t=="object"&&typeof t.from=="string"&&typeof t.to=="string"&&typeof t.transition=="number"?new _i(t.from,t.to,t.transition):typeof t=="string"?new _i(t,t,1):void 0}}function Hs(n,t,i,o){return typeof n=="number"&&n>=0&&n<=255&&typeof t=="number"&&t>=0&&t<=255&&typeof i=="number"&&i>=0&&i<=255?o===void 0||typeof o=="number"&&o>=0&&o<=1?null:`Invalid rgba value [${[n,t,i,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof o=="number"?[n,t,i,o]:[n,t,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Jt(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof _i||n instanceof Vt||n instanceof Us||n instanceof yi||n instanceof Jr||n instanceof Tr||n instanceof Xr||n instanceof hi||n instanceof Ai)return!0;if(Array.isArray(n)){for(const t of n)if(!Jt(t))return!1;return!0}if(typeof n=="object"){for(const t in n)if(!Jt(n[t]))return!1;return!0}return!1}function xr(n){if(n===null)return gt;if(typeof n=="string")return dt;if(typeof n=="boolean")return At;if(typeof n=="number")return Ue;if(n instanceof Vt)return _r;if(n instanceof _i)return vr;if(n instanceof Us)return ls;if(n instanceof yi)return Vs;if(n instanceof Jr)return Fn;if(n instanceof Tr)return cn;if(n instanceof Xr)return Fs;if(n instanceof hi)return kr;if(n instanceof Ai)return On;if(Array.isArray(n)){const t=n.length;let i;for(const o of n){const c=xr(o);if(i){if(i===c)continue;i=Tt;break}i=c}return Si(i||Tt,t)}return gi}function Ft(n){const t=typeof n;return n===null?"":t==="string"||t==="number"||t==="boolean"?String(n):n instanceof Vt||n instanceof _i||n instanceof yi||n instanceof Jr||n instanceof Tr||n instanceof Xr||n instanceof hi||n instanceof Ai?n.toString():JSON.stringify(n)}class wt{constructor(t,i){this.type=t,this.value=i}static parse(t,i){if(t.length!==2)return i.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Jt(t[1]))return i.error("invalid value");const o=t[1];let c=xr(o);const f=i.expectedType;return c.kind!=="array"||c.N!==0||!f||f.kind!=="array"||typeof f.N=="number"&&f.N!==0||(c=f),new wt(c,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const fs={string:dt,number:Ue,boolean:At,object:gi};class Ct{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");let o,c=1;const f=t[0];if(f==="array"){let v,S;if(t.length>2){const E=t[1];if(typeof E!="string"||!(E in fs)||E==="object")return i.error('The item type argument of "array" must be one of string, number, boolean',1);v=fs[E],c++}else v=Tt;if(t.length>3){if(t[2]!==null&&(typeof t[2]!="number"||t[2]<0||t[2]!==Math.floor(t[2])))return i.error('The length argument to "array" must be a positive integer literal',2);S=t[2],c++}o=Si(v,S)}else{if(!fs[f])throw new Error(`Types doesn't contain name = ${f}`);o=fs[f]}const m=[];for(;c<t.length;c++){const v=i.parse(t[c],c,Tt);if(!v)return null;m.push(v)}return new Ct(o,m)}evaluate(t){for(let i=0;i<this.args.length;i++){const o=this.args[i].evaluate(t);if(!cs(this.type,xr(o)))return o;if(i===this.args.length-1)throw new ir(`Expected value to be of type ${ar(this.type)}, but found ${ar(xr(o))} instead.`)}throw new Error}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}const Ro={"to-boolean":At,"to-color":_r,"to-number":Ue,"to-string":dt};class ri{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");const o=t[0];if(!Ro[o])throw new Error(`Can't parse ${o} as it is not part of the known types`);if((o==="to-boolean"||o==="to-string")&&t.length!==2)return i.error("Expected one argument.");const c=Ro[o],f=[];for(let m=1;m<t.length;m++){const v=i.parse(t[m],m,Tt);if(!v)return null;f.push(v)}return new ri(c,f)}evaluate(t){switch(this.type.kind){case"boolean":return!!this.args[0].evaluate(t);case"color":{let i,o;for(const c of this.args){if(i=c.evaluate(t),o=null,i instanceof Vt)return i;if(typeof i=="string"){const f=t.parseColor(i);if(f)return f}else if(Array.isArray(i)&&(o=i.length<3||i.length>4?`Invalid rgba value ${JSON.stringify(i)}: expected an array containing either three or four numeric values.`:Hs(i[0],i[1],i[2],i[3]),!o))return new Vt(i[0]/255,i[1]/255,i[2]/255,i[3])}throw new ir(o||`Could not parse color from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"padding":{let i;for(const o of this.args){i=o.evaluate(t);const c=Jr.parse(i);if(c)return c}throw new ir(`Could not parse padding from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"numberArray":{let i;for(const o of this.args){i=o.evaluate(t);const c=Tr.parse(i);if(c)return c}throw new ir(`Could not parse numberArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"colorArray":{let i;for(const o of this.args){i=o.evaluate(t);const c=Xr.parse(i);if(c)return c}throw new ir(`Could not parse colorArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"variableAnchorOffsetCollection":{let i;for(const o of this.args){i=o.evaluate(t);const c=hi.parse(i);if(c)return c}throw new ir(`Could not parse variableAnchorOffsetCollection from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"number":{let i=null;for(const o of this.args){if(i=o.evaluate(t),i===null)return 0;const c=Number(i);if(!isNaN(c))return c}throw new ir(`Could not convert ${JSON.stringify(i)} to number.`)}case"formatted":return yi.fromString(Ft(this.args[0].evaluate(t)));case"resolvedImage":return Ai.fromString(Ft(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return Ft(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}const Ha=["Unknown","Point","LineString","Polygon"];class Wa{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=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"?Ha[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(t){let i=this._parseColorCache.get(t);return i||(i=Vt.parse(t),this._parseColorCache.set(t,i)),i}}class Ws{constructor(t,i,o=[],c,f=new jt,m=[]){this.registry=t,this.path=o,this.key=o.map(v=>`[${v}]`).join(""),this.scope=f,this.errors=m,this.expectedType=c,this._isConstant=i}parse(t,i,o,c,f={}){return i?this.concat(i,o,c)._parse(t,f):this._parse(t,f)}_parse(t,i){function o(c,f,m){return m==="assert"?new Ct(f,[c]):m==="coerce"?new ri(f,[c]):c}if(t!==null&&typeof t!="string"&&typeof t!="boolean"&&typeof t!="number"||(t=["literal",t]),Array.isArray(t)){if(t.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const c=t[0];if(typeof c!="string")return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const f=this.registry[c];if(f){let m=f.parse(t,this);if(!m)return null;if(this.expectedType){const v=this.expectedType,S=m.type;if(v.kind!=="string"&&v.kind!=="number"&&v.kind!=="boolean"&&v.kind!=="object"&&v.kind!=="array"||S.kind!=="value"){if(v.kind==="projectionDefinition"&&["string","array"].includes(S.kind)||["color","formatted","resolvedImage"].includes(v.kind)&&["value","string"].includes(S.kind)||["padding","numberArray"].includes(v.kind)&&["value","number","array"].includes(S.kind)||v.kind==="colorArray"&&["value","string","array"].includes(S.kind)||v.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(S.kind))m=o(m,v,i.typeAnnotation||"coerce");else if(this.checkSubtype(v,S))return null}else m=o(m,v,i.typeAnnotation||"assert")}if(!(m instanceof wt)&&m.type.kind!=="resolvedImage"&&this._isConstant(m)){const v=new Wa;try{m=new wt(m.type,m.evaluate(v))}catch(S){return this.error(S.message),null}}return m}return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(t===void 0?"'undefined' value invalid. Use null instead.":typeof t=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,i,o){const c=typeof t=="number"?this.path.concat(t):this.path,f=o?this.scope.concat(o):this.scope;return new Ws(this.registry,this._isConstant,c,i||null,f,this.errors)}error(t,...i){const o=`${this.key}${i.map(c=>`[${c}]`).join("")}`;this.errors.push(new Bt(o,t))}checkSubtype(t,i){const o=cs(t,i);return o&&this.error(o),o}}class ms{constructor(t,i){this.type=i.type,this.bindings=[].concat(t),this.result=i}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const i of this.bindings)t(i[1]);t(this.result)}static parse(t,i){if(t.length<4)return i.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const o=[];for(let f=1;f<t.length-1;f+=2){const m=t[f];if(typeof m!="string")return i.error(`Expected string, but found ${typeof m} instead.`,f);if(/[^a-zA-Z0-9_]/.test(m))return i.error("Variable names must contain only alphanumeric characters or '_'.",f);const v=i.parse(t[f+1],f+1);if(!v)return null;o.push([m,v])}const c=i.parse(t[t.length-1],t.length-1,i.expectedType,o);return c?new ms(o,c):null}outputDefined(){return this.result.outputDefined()}}class Zs{constructor(t,i){this.type=i.type,this.name=t,this.boundExpression=i}static parse(t,i){if(t.length!==2||typeof t[1]!="string")return i.error("'var' expression requires exactly one string literal argument.");const o=t[1];return i.scope.has(o)?new Zs(o,i.scope.get(o)):i.error(`Unknown variable "${o}". Make sure "${o}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}}class Za{constructor(t,i,o){this.type=t,this.index=i,this.input=o}static parse(t,i){if(t.length!==3)return i.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Ue),c=i.parse(t[2],2,Si(i.expectedType||Tt));return o&&c?new Za(c.type.itemType,o,c):null}evaluate(t){const i=this.index.evaluate(t),o=this.input.evaluate(t);if(i<0)throw new ir(`Array index out of bounds: ${i} < 0.`);if(i>=o.length)throw new ir(`Array index out of bounds: ${i} > ${o.length-1}.`);if(i!==Math.floor(i))throw new ir(`Array index must be an integer, but found ${i} instead.`);return o[i]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}}class Do{constructor(t,i){this.type=At,this.needle=t,this.haystack=i}static parse(t,i){if(t.length!==3)return i.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,Tt);return o&&c?Fa(o.type,[At,dt,Ue,gt,Tt])?new Do(o,c):i.error(`Expected first argument to be of type boolean, string, number or null, but found ${ar(o.type)} instead`):null}evaluate(t){const i=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!o)return!1;if(!Nn(i,["boolean","string","number","null"]))throw new ir(`Expected first argument to be of type boolean, string, number or null, but found ${ar(xr(i))} instead.`);if(!Nn(o,["string","array"]))throw new ir(`Expected second argument to be of type array or string, but found ${ar(xr(o))} instead.`);return o.indexOf(i)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}}class Ks{constructor(t,i,o){this.type=Ue,this.needle=t,this.haystack=i,this.fromIndex=o}static parse(t,i){if(t.length<=2||t.length>=5)return i.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,Tt);if(!o||!c)return null;if(!Fa(o.type,[At,dt,Ue,gt,Tt]))return i.error(`Expected first argument to be of type boolean, string, number or null, but found ${ar(o.type)} instead`);if(t.length===4){const f=i.parse(t[3],3,Ue);return f?new Ks(o,c,f):null}return new Ks(o,c)}evaluate(t){const i=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!Nn(i,["boolean","string","number","null"]))throw new ir(`Expected first argument to be of type boolean, string, number or null, but found ${ar(xr(i))} instead.`);let c;if(this.fromIndex&&(c=this.fromIndex.evaluate(t)),Nn(o,["string"])){const f=o.indexOf(i,c);return f===-1?-1:[...o.slice(0,f)].length}if(Nn(o,["array"]))return o.indexOf(i,c);throw new ir(`Expected second argument to be of type array or string, but found ${ar(xr(o))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}}class Hn{constructor(t,i,o,c,f,m){this.inputType=t,this.type=i,this.input=o,this.cases=c,this.outputs=f,this.otherwise=m}static parse(t,i){if(t.length<5)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return i.error("Expected an even number of arguments.");let o,c;i.expectedType&&i.expectedType.kind!=="value"&&(c=i.expectedType);const f={},m=[];for(let E=2;E<t.length-1;E+=2){let L=t[E];const V=t[E+1];Array.isArray(L)||(L=[L]);const q=i.concat(E);if(L.length===0)return q.error("Expected at least one branch label.");for(const W of L){if(typeof W!="number"&&typeof W!="string")return q.error("Branch labels must be numbers or strings.");if(typeof W=="number"&&Math.abs(W)>Number.MAX_SAFE_INTEGER)return q.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof W=="number"&&Math.floor(W)!==W)return q.error("Numeric branch labels must be integer values.");if(o){if(q.checkSubtype(o,xr(W)))return null}else o=xr(W);if(f[String(W)]!==void 0)return q.error("Branch labels must be unique.");f[String(W)]=m.length}const H=i.parse(V,E,c);if(!H)return null;c=c||H.type,m.push(H)}const v=i.parse(t[1],1,Tt);if(!v)return null;const S=i.parse(t[t.length-1],t.length-1,c);return S?v.type.kind!=="value"&&i.concat(1).checkSubtype(o,v.type)?null:new Hn(o,c,v,f,m,S):null}evaluate(t){const i=this.input.evaluate(t);return(xr(i)===this.inputType&&this.outputs[this.cases[i]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}}class Nr{constructor(t,i,o){this.type=t,this.branches=i,this.otherwise=o}static parse(t,i){if(t.length<4)return i.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return i.error("Expected an odd number of arguments.");let o;i.expectedType&&i.expectedType.kind!=="value"&&(o=i.expectedType);const c=[];for(let m=1;m<t.length-1;m+=2){const v=i.parse(t[m],m,At);if(!v)return null;const S=i.parse(t[m+1],m+1,o);if(!S)return null;c.push([v,S]),o=o||S.type}const f=i.parse(t[t.length-1],t.length-1,o);if(!f)return null;if(!o)throw new Error("Can't infer output type");return new Nr(o,c,f)}evaluate(t){for(const[i,o]of this.branches)if(i.evaluate(t))return o.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[i,o]of this.branches)t(i),t(o);t(this.otherwise)}outputDefined(){return this.branches.every(([t,i])=>i.outputDefined())&&this.otherwise.outputDefined()}}class Wn{constructor(t,i,o,c){this.type=t,this.input=i,this.beginIndex=o,this.endIndex=c}static parse(t,i){if(t.length<=2||t.length>=5)return i.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,Ue);if(!o||!c)return null;if(!Fa(o.type,[Si(Tt),dt,Tt]))return i.error(`Expected first argument to be of type array or string, but found ${ar(o.type)} instead`);if(t.length===4){const f=i.parse(t[3],3,Ue);return f?new Wn(o.type,o,c,f):null}return new Wn(o.type,o,c)}evaluate(t){const i=this.input.evaluate(t),o=this.beginIndex.evaluate(t);let c;if(this.endIndex&&(c=this.endIndex.evaluate(t)),Nn(i,["string"]))return[...i].slice(o,c).join("");if(Nn(i,["array"]))return i.slice(o,c);throw new ir(`Expected first argument to be of type array or string, but found ${ar(xr(i))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}}function Gs(n,t){const i=n.length-1;let o,c,f=0,m=i,v=0;for(;f<=m;)if(v=Math.floor((f+m)/2),o=n[v],c=n[v+1],o<=t){if(v===i||t<c)return v;f=v+1}else{if(!(o>t))throw new ir("Input is not a number.");m=v-1}return 0}class An{constructor(t,i,o){this.type=t,this.input=i,this.labels=[],this.outputs=[];for(const[c,f]of o)this.labels.push(c),this.outputs.push(f)}static parse(t,i){if(t.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return i.error("Expected an even number of arguments.");const o=i.parse(t[1],1,Ue);if(!o)return null;const c=[];let f=null;i.expectedType&&i.expectedType.kind!=="value"&&(f=i.expectedType);for(let m=1;m<t.length;m+=2){const v=m===1?-1/0:t[m],S=t[m+1],E=m,L=m+1;if(typeof v!="number")return i.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',E);if(c.length&&c[c.length-1][0]>=v)return i.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',E);const V=i.parse(S,L,f);if(!V)return null;f=f||V.type,c.push([v,V])}return new An(f,o,c)}evaluate(t){const i=this.labels,o=this.outputs;if(i.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=i[0])return o[0].evaluate(t);const f=i.length;return c>=i[f-1]?o[f-1].evaluate(t):o[Gs(i,c)].evaluate(t)}eachChild(t){t(this.input);for(const i of this.outputs)t(i)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}}function qr(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var zo,Bo,pc=function(){if(Bo)return zo;function n(t,i,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(c-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=i,this.p2x=o,this.p2y=c}return Bo=1,zo=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,i){if(i===void 0&&(i=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var f=this.sampleCurveX(o)-t;if(Math.abs(f)<i)return o;var m=this.sampleCurveDerivativeX(o);if(Math.abs(m)<1e-6)break;o-=f/m}var v=0,S=1;for(o=t,c=0;c<20&&(f=this.sampleCurveX(o),!(Math.abs(f-t)<i));c++)t>f?v=o:S=o,o=.5*(S-v)+v;return o},solve:function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}},zo}(),_h=qr(pc);class ii{constructor(t,i,o,c,f){this.type=t,this.operator=i,this.interpolation=o,this.input=c,this.labels=[],this.outputs=[];for(const[m,v]of f)this.labels.push(m),this.outputs.push(v)}static interpolationFactor(t,i,o,c){let f=0;if(t.name==="exponential")f=Js(i,t.base,o,c);else if(t.name==="linear")f=Js(i,1,o,c);else if(t.name==="cubic-bezier"){const m=t.controlPoints;f=new _h(m[0],m[1],m[2],m[3]).solve(Js(i,1,o,c))}return f}static parse(t,i){let[o,c,f,...m]=t;if(!Array.isArray(c)||c.length===0)return i.error("Expected an interpolation type expression.",1);if(c[0]==="linear")c={name:"linear"};else if(c[0]==="exponential"){const E=c[1];if(typeof E!="number")return i.error("Exponential interpolation requires a numeric base.",1,1);c={name:"exponential",base:E}}else{if(c[0]!=="cubic-bezier")return i.error(`Unknown interpolation type ${String(c[0])}`,1,0);{const E=c.slice(1);if(E.length!==4||E.some(L=>typeof L!="number"||L<0||L>1))return i.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);c={name:"cubic-bezier",controlPoints:E}}}if(t.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return i.error("Expected an even number of arguments.");if(f=i.parse(f,2,Ue),!f)return null;const v=[];let S=null;o!=="interpolate-hcl"&&o!=="interpolate-lab"||i.expectedType==Fs?i.expectedType&&i.expectedType.kind!=="value"&&(S=i.expectedType):S=_r;for(let E=0;E<m.length;E+=2){const L=m[E],V=m[E+1],q=E+3,H=E+4;if(typeof L!="number")return i.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',q);if(v.length&&v[v.length-1][0]>=L)return i.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',q);const W=i.parse(V,H,S);if(!W)return null;S=S||W.type,v.push([L,W])}return un(S,Ue)||un(S,vr)||un(S,_r)||un(S,Fn)||un(S,cn)||un(S,Fs)||un(S,kr)||un(S,Si(Ue))?new ii(S,o,c,f,v):i.error(`Type ${ar(S)} is not interpolatable.`)}evaluate(t){const i=this.labels,o=this.outputs;if(i.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=i[0])return o[0].evaluate(t);const f=i.length;if(c>=i[f-1])return o[f-1].evaluate(t);const m=Gs(i,c),v=ii.interpolationFactor(this.interpolation,c,i[m],i[m+1]),S=o[m].evaluate(t),E=o[m+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return ui(S,E,v);case"color":return Vt.interpolate(S,E,v);case"padding":return Jr.interpolate(S,E,v);case"colorArray":return Xr.interpolate(S,E,v);case"numberArray":return Tr.interpolate(S,E,v);case"variableAnchorOffsetCollection":return hi.interpolate(S,E,v);case"array":return jn(S,E,v);case"projectionDefinition":return _i.interpolate(S,E,v)}case"interpolate-hcl":switch(this.type.kind){case"color":return Vt.interpolate(S,E,v,"hcl");case"colorArray":return Xr.interpolate(S,E,v,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return Vt.interpolate(S,E,v,"lab");case"colorArray":return Xr.interpolate(S,E,v,"lab")}}}eachChild(t){t(this.input);for(const i of this.outputs)t(i)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}}function Js(n,t,i,o){const c=o-i,f=n-i;return c===0?0:t===1?f/c:(Math.pow(t,f)-1)/(Math.pow(t,c)-1)}const rn={color:Vt.interpolate,number:ui,padding:Jr.interpolate,numberArray:Tr.interpolate,colorArray:Xr.interpolate,variableAnchorOffsetCollection:hi.interpolate,array:jn};class Zn{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");let o=null;const c=i.expectedType;c&&c.kind!=="value"&&(o=c);const f=[];for(const v of t.slice(1)){const S=i.parse(v,1+f.length,o,void 0,{typeAnnotation:"omit"});if(!S)return null;o=o||S.type,f.push(S)}if(!o)throw new Error("No output type");const m=c&&f.some(v=>cs(c,v.type));return new Zn(m?Tt:o,f)}evaluate(t){let i,o=null,c=0;for(const f of this.args)if(c++,o=f.evaluate(t),o&&o instanceof Ai&&!o.available&&(i||(i=o.name),o=null,c===this.args.length&&(o=i)),o!==null)break;return o}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}function Xs(n,t){return n==="=="||n==="!="?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 Di(n,t,i,o){return o.compare(t,i)===0}function Kn(n,t,i){const o=n!=="=="&&n!=="!=";return class ey{constructor(f,m,v){this.type=At,this.lhs=f,this.rhs=m,this.collator=v,this.hasUntypedArgument=f.type.kind==="value"||m.type.kind==="value"}static parse(f,m){if(f.length!==3&&f.length!==4)return m.error("Expected two or three arguments.");const v=f[0];let S=m.parse(f[1],1,Tt);if(!S)return null;if(!Xs(v,S.type))return m.concat(1).error(`"${v}" comparisons are not supported for type '${ar(S.type)}'.`);let E=m.parse(f[2],2,Tt);if(!E)return null;if(!Xs(v,E.type))return m.concat(2).error(`"${v}" comparisons are not supported for type '${ar(E.type)}'.`);if(S.type.kind!==E.type.kind&&S.type.kind!=="value"&&E.type.kind!=="value")return m.error(`Cannot compare types '${ar(S.type)}' and '${ar(E.type)}'.`);o&&(S.type.kind==="value"&&E.type.kind!=="value"?S=new Ct(E.type,[S]):S.type.kind!=="value"&&E.type.kind==="value"&&(E=new Ct(S.type,[E])));let L=null;if(f.length===4){if(S.type.kind!=="string"&&E.type.kind!=="string"&&S.type.kind!=="value"&&E.type.kind!=="value")return m.error("Cannot use collator to compare non-string types.");if(L=m.parse(f[3],3,ls),!L)return null}return new ey(S,E,L)}evaluate(f){const m=this.lhs.evaluate(f),v=this.rhs.evaluate(f);if(o&&this.hasUntypedArgument){const S=xr(m),E=xr(v);if(S.kind!==E.kind||S.kind!=="string"&&S.kind!=="number")throw new ir(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${S.kind}, ${E.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const S=xr(m),E=xr(v);if(S.kind!=="string"||E.kind!=="string")return t(f,m,v)}return this.collator?i(f,m,v,this.collator.evaluate(f)):t(f,m,v)}eachChild(f){f(this.lhs),f(this.rhs),this.collator&&f(this.collator)}outputDefined(){return!0}}}const Vo=Kn("==",function(n,t,i){return t===i},Di),vh=Kn("!=",function(n,t,i){return t!==i},function(n,t,i,o){return!Di(0,t,i,o)}),Ka=Kn("<",function(n,t,i){return t<i},function(n,t,i,o){return o.compare(t,i)<0}),xh=Kn(">",function(n,t,i){return t>i},function(n,t,i,o){return o.compare(t,i)>0}),bh=Kn("<=",function(n,t,i){return t<=i},function(n,t,i,o){return o.compare(t,i)<=0}),wh=Kn(">=",function(n,t,i){return t>=i},function(n,t,i,o){return o.compare(t,i)>=0});class Fo{constructor(t,i,o){this.type=ls,this.locale=o,this.caseSensitive=t,this.diacriticSensitive=i}static parse(t,i){if(t.length!==2)return i.error("Expected one argument.");const o=t[1];if(typeof o!="object"||Array.isArray(o))return i.error("Collator options argument must be an object.");const c=i.parse(o["case-sensitive"]!==void 0&&o["case-sensitive"],1,At);if(!c)return null;const f=i.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,At);if(!f)return null;let m=null;return o.locale&&(m=i.parse(o.locale,1,dt),!m)?null:new Fo(c,f,m)}evaluate(t){return new Us(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}}class gs{constructor(t,i,o,c,f){this.type=dt,this.number=t,this.locale=i,this.currency=o,this.minFractionDigits=c,this.maxFractionDigits=f}static parse(t,i){if(t.length!==3)return i.error("Expected two arguments.");const o=i.parse(t[1],1,Ue);if(!o)return null;const c=t[2];if(typeof c!="object"||Array.isArray(c))return i.error("NumberFormat options argument must be an object.");let f=null;if(c.locale&&(f=i.parse(c.locale,1,dt),!f))return null;let m=null;if(c.currency&&(m=i.parse(c.currency,1,dt),!m))return null;let v=null;if(c["min-fraction-digits"]&&(v=i.parse(c["min-fraction-digits"],1,Ue),!v))return null;let S=null;return c["max-fraction-digits"]&&(S=i.parse(c["max-fraction-digits"],1,Ue),!S)?null:new gs(o,f,m,v,S)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}}class Oo{constructor(t){this.type=Vs,this.sections=t}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");const o=t[1];if(!Array.isArray(o)&&typeof o=="object")return i.error("First argument must be an image or text section.");const c=[];let f=!1;for(let m=1;m<=t.length-1;++m){const v=t[m];if(f&&typeof v=="object"&&!Array.isArray(v)){f=!1;let S=null;if(v["font-scale"]&&(S=i.parse(v["font-scale"],1,Ue),!S))return null;let E=null;if(v["text-font"]&&(E=i.parse(v["text-font"],1,Si(dt)),!E))return null;let L=null;if(v["text-color"]&&(L=i.parse(v["text-color"],1,_r),!L))return null;let V=null;if(v["vertical-align"]){if(typeof v["vertical-align"]=="string"&&!js.includes(v["vertical-align"]))return i.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${v["vertical-align"]}' instead.`);if(V=i.parse(v["vertical-align"],1,dt),!V)return null}const q=c[c.length-1];q.scale=S,q.font=E,q.textColor=L,q.verticalAlign=V}else{const S=i.parse(t[m],1,Tt);if(!S)return null;const E=S.type.kind;if(E!=="string"&&E!=="value"&&E!=="null"&&E!=="resolvedImage")return i.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");f=!0,c.push({content:S,scale:null,font:null,textColor:null,verticalAlign:null})}}return new Oo(c)}evaluate(t){return new yi(this.sections.map(i=>{const o=i.content.evaluate(t);return xr(o)===On?new ps("",o,null,null,null,i.verticalAlign?i.verticalAlign.evaluate(t):null):new ps(Ft(o),null,i.scale?i.scale.evaluate(t):null,i.font?i.font.evaluate(t).join(","):null,i.textColor?i.textColor.evaluate(t):null,i.verticalAlign?i.verticalAlign.evaluate(t):null)}))}eachChild(t){for(const i of this.sections)t(i.content),i.scale&&t(i.scale),i.font&&t(i.font),i.textColor&&t(i.textColor),i.verticalAlign&&t(i.verticalAlign)}outputDefined(){return!1}}class No{constructor(t){this.type=On,this.input=t}static parse(t,i){if(t.length!==2)return i.error("Expected two arguments.");const o=i.parse(t[1],1,dt);return o?new No(o):i.error("No image name provided.")}evaluate(t){const i=this.input.evaluate(t),o=Ai.fromString(i);return o&&t.availableImages&&(o.available=t.availableImages.indexOf(i)>-1),o}eachChild(t){t(this.input)}outputDefined(){return!1}}class qo{constructor(t){this.type=Ue,this.input=t}static parse(t,i){if(t.length!==2)return i.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=i.parse(t[1],1);return o?o.type.kind!=="array"&&o.type.kind!=="string"&&o.type.kind!=="value"?i.error(`Expected argument of type string or array, but found ${ar(o.type)} instead.`):new qo(o):null}evaluate(t){const i=this.input.evaluate(t);if(typeof i=="string")return[...i].length;if(Array.isArray(i))return i.length;throw new ir(`Expected value to be of type string or array, but found ${ar(xr(i))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}}const nn=8192;function dc(n,t){const i=(180+n[0])/360,o=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,c=Math.pow(2,t.z);return[Math.round(i*c*nn),Math.round(o*c*nn)]}function Ga(n,t){const i=Math.pow(2,t.z);return[(c=(n[0]/nn+t.x)/i,360*c-180),(o=(n[1]/nn+t.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*o)*Math.PI/180))-90)];var o,c}function Qs(n,t){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Ys(n,t){return!(n[0]<=t[0]||n[2]>=t[2]||n[1]<=t[1]||n[3]>=t[3])}function Sh(n,t,i){const o=n[0]-t[0],c=n[1]-t[1],f=n[0]-i[0],m=n[1]-i[1];return o*m-f*c==0&&o*f<=0&&c*m<=0}function Uo(n,t,i,o){return(c=[o[0]-i[0],o[1]-i[1]])[0]*(f=[t[0]-n[0],t[1]-n[1]])[1]-c[1]*f[0]!=0&&!(!yc(n,t,i,o)||!yc(i,o,n,t));var c,f}function fc(n,t,i){for(const o of i)for(let c=0;c<o.length-1;++c)if(Uo(n,t,o[c],o[c+1]))return!0;return!1}function Gn(n,t,i=!1){let o=!1;for(const v of t)for(let S=0;S<v.length-1;S++){if(Sh(n,v[S],v[S+1]))return i;(f=v[S])[1]>(c=n)[1]!=(m=v[S+1])[1]>c[1]&&c[0]<(m[0]-f[0])*(c[1]-f[1])/(m[1]-f[1])+f[0]&&(o=!o)}var c,f,m;return o}function mc(n,t){for(const i of t)if(Gn(n,i))return!0;return!1}function gc(n,t){for(const i of n)if(!Gn(i,t))return!1;for(let i=0;i<n.length-1;++i)if(fc(n[i],n[i+1],t))return!1;return!0}function Ah(n,t){for(const i of t)if(gc(n,i))return!0;return!1}function yc(n,t,i,o){const c=o[0]-i[0],f=o[1]-i[1],m=(n[0]-i[0])*f-c*(n[1]-i[1]),v=(t[0]-i[0])*f-c*(t[1]-i[1]);return m>0&&v<0||m<0&&v>0}function $s(n,t,i){const o=[];for(let c=0;c<n.length;c++){const f=[];for(let m=0;m<n[c].length;m++){const v=dc(n[c][m],i);Qs(t,v),f.push(v)}o.push(f)}return o}function _c(n,t,i){const o=[];for(let c=0;c<n.length;c++){const f=$s(n[c],t,i);o.push(f)}return o}function vc(n,t,i,o){if(n[0]<i[0]||n[0]>i[2]){const c=.5*o;let f=n[0]-i[0]>c?-o:i[0]-n[0]>c?o:0;f===0&&(f=n[0]-i[2]>c?-o:i[2]-n[0]>c?o:0),n[0]+=f}Qs(t,n)}function xc(n,t,i,o){const c=Math.pow(2,o.z)*nn,f=[o.x*nn,o.y*nn],m=[];for(const v of n)for(const S of v){const E=[S.x+f[0],S.y+f[1]];vc(E,t,i,c),m.push(E)}return m}function Ja(n,t,i,o){const c=Math.pow(2,o.z)*nn,f=[o.x*nn,o.y*nn],m=[];for(const S of n){const E=[];for(const L of S){const V=[L.x+f[0],L.y+f[1]];Qs(t,V),E.push(V)}m.push(E)}if(t[2]-t[0]<=c/2){(v=t)[0]=v[1]=1/0,v[2]=v[3]=-1/0;for(const S of m)for(const E of S)vc(E,t,i,c)}var v;return m}class kn{constructor(t,i){this.type=At,this.geojson=t,this.geometries=i}static parse(t,i){if(t.length!==2)return i.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Jt(t[1])){const o=t[1];if(o.type==="FeatureCollection"){const c=[];for(const f of o.features){const{type:m,coordinates:v}=f.geometry;m==="Polygon"&&c.push(v),m==="MultiPolygon"&&c.push(...v)}if(c.length)return new kn(o,{type:"MultiPolygon",coordinates:c})}else if(o.type==="Feature"){const c=o.geometry.type;if(c==="Polygon"||c==="MultiPolygon")return new kn(o,o.geometry)}else if(o.type==="Polygon"||o.type==="MultiPolygon")return new kn(o,o)}return i.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return function(i,o){const c=[1/0,1/0,-1/0,-1/0],f=[1/0,1/0,-1/0,-1/0],m=i.canonicalID();if(o.type==="Polygon"){const v=$s(o.coordinates,f,m),S=xc(i.geometry(),c,f,m);if(!Ys(c,f))return!1;for(const E of S)if(!Gn(E,v))return!1}if(o.type==="MultiPolygon"){const v=_c(o.coordinates,f,m),S=xc(i.geometry(),c,f,m);if(!Ys(c,f))return!1;for(const E of S)if(!mc(E,v))return!1}return!0}(t,this.geometries);if(t.geometryType()==="LineString")return function(i,o){const c=[1/0,1/0,-1/0,-1/0],f=[1/0,1/0,-1/0,-1/0],m=i.canonicalID();if(o.type==="Polygon"){const v=$s(o.coordinates,f,m),S=Ja(i.geometry(),c,f,m);if(!Ys(c,f))return!1;for(const E of S)if(!gc(E,v))return!1}if(o.type==="MultiPolygon"){const v=_c(o.coordinates,f,m),S=Ja(i.geometry(),c,f,m);if(!Ys(c,f))return!1;for(const E of S)if(!Ah(E,v))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let bc=class{constructor(n=[],t=(i,o)=>i<o?-1:i>o?1:0){if(this.data=n,this.length=this.data.length,this.compare=t,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(n){this.data.push(n),this._up(this.length++)}pop(){if(this.length===0)return;const n=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),n}peek(){return this.data[0]}_up(n){const{data:t,compare:i}=this,o=t[n];for(;n>0;){const c=n-1>>1,f=t[c];if(i(o,f)>=0)break;t[n]=f,n=c}t[n]=o}_down(n){const{data:t,compare:i}=this,o=this.length>>1,c=t[n];for(;n<o;){let f=1+(n<<1);const m=f+1;if(m<this.length&&i(t[m],t[f])<0&&(f=m),i(t[f],c)>=0)break;t[n]=t[f],n=f}t[n]=c}};function wc(n,t,i=0,o=n.length-1,c=Sc){for(;o>i;){if(o-i>600){const S=o-i+1,E=t-i+1,L=Math.log(S),V=.5*Math.exp(2*L/3),q=.5*Math.sqrt(L*V*(S-V)/S)*(E-S/2<0?-1:1);wc(n,t,Math.max(i,Math.floor(t-E*V/S+q)),Math.min(o,Math.floor(t+(S-E)*V/S+q)),c)}const f=n[t];let m=i,v=o;for(ys(n,i,t),c(n[o],f)>0&&ys(n,i,o);m<v;){for(ys(n,m,v),m++,v--;c(n[m],f)<0;)m++;for(;c(n[v],f)>0;)v--}c(n[i],f)===0?ys(n,i,v):(v++,ys(n,v,o)),v<=t&&(i=v+1),t<=v&&(o=v-1)}}function ys(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}function Sc(n,t){return n<t?-1:n>t?1:0}function jo(n,t){if(n.length<=1)return[n];const i=[];let o,c;for(const f of n){const m=Th(f);m!==0&&(f.area=Math.abs(m),c===void 0&&(c=m<0),c===m<0?(o&&i.push(o),o=[f]):o.push(f))}if(o&&i.push(o),t>1)for(let f=0;f<i.length;f++)i[f].length<=t||(wc(i[f],t,1,i[f].length-1,kh),i[f]=i[f].slice(0,t));return i}function kh(n,t){return t.area-n.area}function Th(n){let t=0;for(let i,o,c=0,f=n.length,m=f-1;c<f;m=c++)i=n[c],o=n[m],t+=(o.x-i.x)*(i.y+o.y);return t}const Xa=1/298.257223563,Ac=Xa*(2-Xa),kc=Math.PI/180;class Qa{constructor(t){const i=6378.137*kc*1e3,o=Math.cos(t*kc),c=1/(1-Ac*(1-o*o)),f=Math.sqrt(c);this.kx=i*f*o,this.ky=i*f*c*(1-Ac)}distance(t,i){const o=this.wrap(t[0]-i[0])*this.kx,c=(t[1]-i[1])*this.ky;return Math.sqrt(o*o+c*c)}pointOnLine(t,i){let o,c,f,m,v=1/0;for(let S=0;S<t.length-1;S++){let E=t[S][0],L=t[S][1],V=this.wrap(t[S+1][0]-E)*this.kx,q=(t[S+1][1]-L)*this.ky,H=0;V===0&&q===0||(H=(this.wrap(i[0]-E)*this.kx*V+(i[1]-L)*this.ky*q)/(V*V+q*q),H>1?(E=t[S+1][0],L=t[S+1][1]):H>0&&(E+=V/this.kx*H,L+=q/this.ky*H)),V=this.wrap(i[0]-E)*this.kx,q=(i[1]-L)*this.ky;const W=V*V+q*q;W<v&&(v=W,o=E,c=L,f=S,m=H)}return{point:[o,c],index:f,t:Math.max(0,Math.min(1,m))}}wrap(t){for(;t<-180;)t+=360;for(;t>180;)t-=360;return t}}function Tc(n,t){return t[0]-n[0]}function qt(n){return n[1]-n[0]+1}function hn(n,t){return n[1]>=n[0]&&n[1]<t}function Ya(n,t){if(n[0]>n[1])return[null,null];const i=qt(n);if(t){if(i===2)return[n,null];const c=Math.floor(i/2);return[[n[0],n[0]+c],[n[0]+c,n[1]]]}if(i===1)return[n,null];const o=Math.floor(i/2)-1;return[[n[0],n[0]+o],[n[0]+o+1,n[1]]]}function $a(n,t){if(!hn(t,n.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let o=t[0];o<=t[1];++o)Qs(i,n[o]);return i}function el(n){const t=[1/0,1/0,-1/0,-1/0];for(const i of n)for(const o of i)Qs(t,o);return t}function Cc(n){return n[0]!==-1/0&&n[1]!==-1/0&&n[2]!==1/0&&n[3]!==1/0}function tl(n,t,i){if(!Cc(n)||!Cc(t))return NaN;let o=0,c=0;return n[2]<t[0]&&(o=t[0]-n[2]),n[0]>t[2]&&(o=n[0]-t[2]),n[1]>t[3]&&(c=n[1]-t[3]),n[3]<t[1]&&(c=t[1]-n[3]),i.distance([0,0],[o,c])}function Jn(n,t,i){const o=i.pointOnLine(t,n);return i.distance(n,o.point)}function rl(n,t,i,o,c){const f=Math.min(Jn(n,[i,o],c),Jn(t,[i,o],c)),m=Math.min(Jn(i,[n,t],c),Jn(o,[n,t],c));return Math.min(f,m)}function Ch(n,t,i,o,c){if(!hn(t,n.length)||!hn(o,i.length))return 1/0;let f=1/0;for(let m=t[0];m<t[1];++m){const v=n[m],S=n[m+1];for(let E=o[0];E<o[1];++E){const L=i[E],V=i[E+1];if(Uo(v,S,L,V))return 0;f=Math.min(f,rl(v,S,L,V,c))}}return f}function Eh(n,t,i,o,c){if(!hn(t,n.length)||!hn(o,i.length))return NaN;let f=1/0;for(let m=t[0];m<=t[1];++m)for(let v=o[0];v<=o[1];++v)if(f=Math.min(f,c.distance(n[m],i[v])),f===0)return f;return f}function Ph(n,t,i){if(Gn(n,t,!0))return 0;let o=1/0;for(const c of t){const f=c[0],m=c[c.length-1];if(f!==m&&(o=Math.min(o,Jn(n,[m,f],i)),o===0))return o;const v=i.pointOnLine(c,n);if(o=Math.min(o,i.distance(n,v.point)),o===0)return o}return o}function Ih(n,t,i,o){if(!hn(t,n.length))return NaN;for(let f=t[0];f<=t[1];++f)if(Gn(n[f],i,!0))return 0;let c=1/0;for(let f=t[0];f<t[1];++f){const m=n[f],v=n[f+1];for(const S of i)for(let E=0,L=S.length,V=L-1;E<L;V=E++){const q=S[V],H=S[E];if(Uo(m,v,q,H))return 0;c=Math.min(c,rl(m,v,q,H,o))}}return c}function Ec(n,t){for(const i of n)for(const o of i)if(Gn(o,t,!0))return!0;return!1}function Mh(n,t,i,o=1/0){const c=el(n),f=el(t);if(o!==1/0&&tl(c,f,i)>=o)return o;if(Ys(c,f)){if(Ec(n,t))return 0}else if(Ec(t,n))return 0;let m=1/0;for(const v of n)for(let S=0,E=v.length,L=E-1;S<E;L=S++){const V=v[L],q=v[S];for(const H of t)for(let W=0,X=H.length,ee=X-1;W<X;ee=W++){const ae=H[ee],ve=H[W];if(Uo(V,q,ae,ve))return 0;m=Math.min(m,rl(V,q,ae,ve,i))}}return m}function Pc(n,t,i,o,c,f){if(!f)return;const m=tl($a(o,f),c,i);m<t&&n.push([m,f,[0,0]])}function Ho(n,t,i,o,c,f,m){if(!f||!m)return;const v=tl($a(o,f),$a(c,m),i);v<t&&n.push([v,f,m])}function Wo(n,t,i,o,c=1/0){let f=Math.min(o.distance(n[0],i[0][0]),c);if(f===0)return f;const m=new bc([[0,[0,n.length-1],[0,0]]],Tc),v=el(i);for(;m.length>0;){const S=m.pop();if(S[0]>=f)continue;const E=S[1],L=t?50:100;if(qt(E)<=L){if(!hn(E,n.length))return NaN;if(t){const V=Ih(n,E,i,o);if(isNaN(V)||V===0)return V;f=Math.min(f,V)}else for(let V=E[0];V<=E[1];++V){const q=Ph(n[V],i,o);if(f=Math.min(f,q),f===0)return 0}}else{const V=Ya(E,t);Pc(m,f,o,n,v,V[0]),Pc(m,f,o,n,v,V[1])}}return f}function Zo(n,t,i,o,c,f=1/0){let m=Math.min(f,c.distance(n[0],i[0]));if(m===0)return m;const v=new bc([[0,[0,n.length-1],[0,i.length-1]]],Tc);for(;v.length>0;){const S=v.pop();if(S[0]>=m)continue;const E=S[1],L=S[2],V=t?50:100,q=o?50:100;if(qt(E)<=V&&qt(L)<=q){if(!hn(E,n.length)&&hn(L,i.length))return NaN;let H;if(t&&o)H=Ch(n,E,i,L,c),m=Math.min(m,H);else if(t&&!o){const W=n.slice(E[0],E[1]+1);for(let X=L[0];X<=L[1];++X)if(H=Jn(i[X],W,c),m=Math.min(m,H),m===0)return m}else if(!t&&o){const W=i.slice(L[0],L[1]+1);for(let X=E[0];X<=E[1];++X)if(H=Jn(n[X],W,c),m=Math.min(m,H),m===0)return m}else H=Eh(n,E,i,L,c),m=Math.min(m,H)}else{const H=Ya(E,t),W=Ya(L,o);Ho(v,m,c,n,i,H[0],W[0]),Ho(v,m,c,n,i,H[0],W[1]),Ho(v,m,c,n,i,H[1],W[0]),Ho(v,m,c,n,i,H[1],W[1])}}return m}function il(n){return n.type==="MultiPolygon"?n.coordinates.map(t=>({type:"Polygon",coordinates:t})):n.type==="MultiLineString"?n.coordinates.map(t=>({type:"LineString",coordinates:t})):n.type==="MultiPoint"?n.coordinates.map(t=>({type:"Point",coordinates:t})):[n]}class Xn{constructor(t,i){this.type=Ue,this.geojson=t,this.geometries=i}static parse(t,i){if(t.length!==2)return i.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Jt(t[1])){const o=t[1];if(o.type==="FeatureCollection")return new Xn(o,o.features.map(c=>il(c.geometry)).flat());if(o.type==="Feature")return new Xn(o,il(o.geometry));if("type"in o&&"coordinates"in o)return new Xn(o,il(o))}return i.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return function(i,o){const c=i.geometry(),f=c.flat().map(S=>Ga([S.x,S.y],i.canonical));if(c.length===0)return NaN;const m=new Qa(f[0][1]);let v=1/0;for(const S of o){switch(S.type){case"Point":v=Math.min(v,Zo(f,!1,[S.coordinates],!1,m,v));break;case"LineString":v=Math.min(v,Zo(f,!1,S.coordinates,!0,m,v));break;case"Polygon":v=Math.min(v,Wo(f,!1,S.coordinates,m,v))}if(v===0)return v}return v}(t,this.geometries);if(t.geometryType()==="LineString")return function(i,o){const c=i.geometry(),f=c.flat().map(S=>Ga([S.x,S.y],i.canonical));if(c.length===0)return NaN;const m=new Qa(f[0][1]);let v=1/0;for(const S of o){switch(S.type){case"Point":v=Math.min(v,Zo(f,!0,[S.coordinates],!1,m,v));break;case"LineString":v=Math.min(v,Zo(f,!0,S.coordinates,!0,m,v));break;case"Polygon":v=Math.min(v,Wo(f,!0,S.coordinates,m,v))}if(v===0)return v}return v}(t,this.geometries);if(t.geometryType()==="Polygon")return function(i,o){const c=i.geometry();if(c.length===0||c[0].length===0)return NaN;const f=jo(c,0).map(S=>S.map(E=>E.map(L=>Ga([L.x,L.y],i.canonical)))),m=new Qa(f[0][0][0][1]);let v=1/0;for(const S of o)for(const E of f){switch(S.type){case"Point":v=Math.min(v,Wo([S.coordinates],!1,E,m,v));break;case"LineString":v=Math.min(v,Wo(S.coordinates,!0,E,m,v));break;case"Polygon":v=Math.min(v,Mh(E,S.coordinates,m,v))}if(v===0)return v}return v}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class Ko{constructor(t){this.type=Tt,this.key=t}static parse(t,i){if(t.length!==2)return i.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=t[1];return o==null?i.error("Global state property must be defined."):typeof o!="string"?i.error(`Global state property must be string, but found ${typeof t[1]} instead.`):new Ko(o)}evaluate(t){var i;const o=(i=t.globals)===null||i===void 0?void 0:i.globalState;return o&&Object.keys(o).length!==0?Ns(o,this.key):null}eachChild(){}outputDefined(){return!1}}const _s={"==":Vo,"!=":vh,">":xh,"<":Ka,">=":wh,"<=":bh,array:Ct,at:Za,boolean:Ct,case:Nr,coalesce:Zn,collator:Fo,format:Oo,image:No,in:Do,"index-of":Ks,interpolate:ii,"interpolate-hcl":ii,"interpolate-lab":ii,length:qo,let:ms,literal:wt,match:Hn,number:Ct,"number-format":gs,object:Ct,slice:Wn,step:An,string:Ct,"to-boolean":ri,"to-color":ri,"to-number":ri,"to-string":ri,var:Zs,within:kn,distance:Xn,"global-state":Ko};class zi{constructor(t,i,o,c){this.name=t,this.type=i,this._evaluate=o,this.args=c}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(t,i){const o=t[0],c=zi.definitions[o];if(!c)return i.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0);const f=Array.isArray(c)?c[0]:c.type,m=Array.isArray(c)?[[c[1],c[2]]]:c.overloads,v=m.filter(([E])=>!Array.isArray(E)||E.length===t.length-1);let S=null;for(const[E,L]of v){S=new Ws(i.registry,Go,i.path,null,i.scope);const V=[];let q=!1;for(let H=1;H<t.length;H++){const W=t[H],X=Array.isArray(E)?E[H-1]:E.type,ee=S.parse(W,1+V.length,X);if(!ee){q=!0;break}V.push(ee)}if(!q)if(Array.isArray(E)&&E.length!==V.length)S.error(`Expected ${E.length} arguments, but found ${V.length} instead.`);else{for(let H=0;H<V.length;H++){const W=Array.isArray(E)?E[H]:E.type,X=V[H];S.concat(H+1).checkSubtype(W,X.type)}if(S.errors.length===0)return new zi(o,f,L,V)}}if(v.length===1)i.errors.push(...S.errors);else{const E=(v.length?v:m).map(([V])=>{return q=V,Array.isArray(q)?`(${q.map(ar).join(", ")})`:`(${ar(q.type)}...)`;var q}).join(" | "),L=[];for(let V=1;V<t.length;V++){const q=i.parse(t[V],1+L.length);if(!q)return null;L.push(ar(q.type))}i.error(`Expected arguments of type ${E}, but found (${L.join(", ")}) instead.`)}return null}static register(t,i){zi.definitions=i;for(const o in i)t[o]=zi}}function Ic(n,[t,i,o,c]){t=t.evaluate(n),i=i.evaluate(n),o=o.evaluate(n);const f=c?c.evaluate(n):1,m=Hs(t,i,o,f);if(m)throw new ir(m);return new Vt(t/255,i/255,o/255,f,!1)}function Mc(n,t){return n in t}function nl(n,t){const i=t[n];return i===void 0?null:i}function Qn(n){return{type:n}}function Go(n){if(n instanceof Zs)return Go(n.boundExpression);if(n instanceof zi&&n.name==="error"||n instanceof Fo||n instanceof kn||n instanceof Xn||n instanceof Ko)return!1;const t=n instanceof ri||n instanceof Ct;let i=!0;return n.eachChild(o=>{i=t?i&&Go(o):i&&o instanceof wt}),!!i&&Jo(n)&&Xo(n,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Jo(n){if(n instanceof zi&&(n.name==="get"&&n.args.length===1||n.name==="feature-state"||n.name==="has"&&n.args.length===1||n.name==="properties"||n.name==="geometry-type"||n.name==="id"||/^filter-/.test(n.name))||n instanceof kn||n instanceof Xn)return!1;let t=!0;return n.eachChild(i=>{t&&!Jo(i)&&(t=!1)}),t}function eo(n){if(n instanceof zi&&n.name==="feature-state")return!1;let t=!0;return n.eachChild(i=>{t&&!eo(i)&&(t=!1)}),t}function Xo(n,t){if(n instanceof zi&&t.indexOf(n.name)>=0)return!1;let i=!0;return n.eachChild(o=>{i&&!Xo(o,t)&&(i=!1)}),i}function Qo(n){return{result:"success",value:n}}function vs(n){return{result:"error",value:n}}function xs(n){return n["property-type"]==="data-driven"||n["property-type"]==="cross-faded-data-driven"}function Lc(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function Yo(n){return!!n.expression&&n.expression.interpolated}function Lt(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function $o(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&xr(n)===gi}function ea(n){return n}function sl(n,t){const i=n.stops&&typeof n.stops[0][0]=="object",o=i||!(i||n.property!==void 0),c=n.type||(Yo(t)?"exponential":"interval"),f=function(L){switch(L.type){case"color":return Vt.parse;case"padding":return Jr.parse;case"numberArray":return Tr.parse;case"colorArray":return Xr.parse;default:return null}}(t);if(f&&((n=Kt({},n)).stops&&(n.stops=n.stops.map(L=>[L[0],f(L[1])])),n.default=f(n.default?n.default:t.default)),n.colorSpace&&(m=n.colorSpace)!=="rgb"&&m!=="hcl"&&m!=="lab")throw new Error(`Unknown color space: "${n.colorSpace}"`);var m;const v=function(L){switch(L){case"exponential":return Rc;case"interval":return Rh;case"categorical":return Lh;case"identity":return Dh;default:throw new Error(`Unknown function type "${L}"`)}}(c);let S,E;if(c==="categorical"){S=Object.create(null);for(const L of n.stops)S[L[0]]=L[1];E=typeof n.stops[0][0]}if(i){const L={},V=[];for(let W=0;W<n.stops.length;W++){const X=n.stops[W],ee=X[0].zoom;L[ee]===void 0&&(L[ee]={zoom:ee,type:n.type,property:n.property,default:n.default,stops:[]},V.push(ee)),L[ee].stops.push([X[0].value,X[1]])}const q=[];for(const W of V)q.push([L[W].zoom,sl(L[W],t)]);const H={name:"linear"};return{kind:"composite",interpolationType:H,interpolationFactor:ii.interpolationFactor.bind(void 0,H),zoomStops:q.map(W=>W[0]),evaluate:({zoom:W},X)=>Rc({stops:q,base:n.base},t,W).evaluate(W,X)}}if(o){const L=c==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:L,interpolationFactor:ii.interpolationFactor.bind(void 0,L),zoomStops:n.stops.map(V=>V[0]),evaluate:({zoom:V})=>v(n,t,V,S,E)}}return{kind:"source",evaluate(L,V){const q=V&&V.properties?V.properties[n.property]:void 0;return q===void 0?to(n.default,t.default):v(n,t,q,S,E)}}}function to(n,t,i){return n!==void 0?n:t!==void 0?t:i!==void 0?i:void 0}function Lh(n,t,i,o,c){return to(typeof i===c?o[i]:void 0,n.default,t.default)}function Rh(n,t,i){if(Lt(i)!=="number")return to(n.default,t.default);const o=n.stops.length;if(o===1||i<=n.stops[0][0])return n.stops[0][1];if(i>=n.stops[o-1][0])return n.stops[o-1][1];const c=Gs(n.stops.map(f=>f[0]),i);return n.stops[c][1]}function Rc(n,t,i){const o=n.base!==void 0?n.base:1;if(Lt(i)!=="number")return to(n.default,t.default);const c=n.stops.length;if(c===1||i<=n.stops[0][0])return n.stops[0][1];if(i>=n.stops[c-1][0])return n.stops[c-1][1];const f=Gs(n.stops.map(L=>L[0]),i),m=function(L,V,q,H){const W=H-q,X=L-q;return W===0?0:V===1?X/W:(Math.pow(V,X)-1)/(Math.pow(V,W)-1)}(i,o,n.stops[f][0],n.stops[f+1][0]),v=n.stops[f][1],S=n.stops[f+1][1],E=rn[t.type]||ea;return typeof v.evaluate=="function"?{evaluate(...L){const V=v.evaluate.apply(void 0,L),q=S.evaluate.apply(void 0,L);if(V!==void 0&&q!==void 0)return E(V,q,m,n.colorSpace)}}:E(v,S,m,n.colorSpace)}function Dh(n,t,i){switch(t.type){case"color":i=Vt.parse(i);break;case"formatted":i=yi.fromString(i.toString());break;case"resolvedImage":i=Ai.fromString(i.toString());break;case"padding":i=Jr.parse(i);break;case"colorArray":i=Xr.parse(i);break;case"numberArray":i=Tr.parse(i);break;default:Lt(i)===t.type||t.type==="enum"&&t.values[i]||(i=void 0)}return to(i,n.default,t.default)}zi.register(_s,{error:[{kind:"error"},[dt],(n,[t])=>{throw new ir(t.evaluate(n))}],typeof:[dt,[Tt],(n,[t])=>ar(xr(t.evaluate(n)))],"to-rgba":[Si(Ue,4),[_r],(n,[t])=>{const[i,o,c,f]=t.evaluate(n).rgb;return[255*i,255*o,255*c,f]}],rgb:[_r,[Ue,Ue,Ue],Ic],rgba:[_r,[Ue,Ue,Ue,Ue],Ic],has:{type:At,overloads:[[[dt],(n,[t])=>Mc(t.evaluate(n),n.properties())],[[dt,gi],(n,[t,i])=>Mc(t.evaluate(n),i.evaluate(n))]]},get:{type:Tt,overloads:[[[dt],(n,[t])=>nl(t.evaluate(n),n.properties())],[[dt,gi],(n,[t,i])=>nl(t.evaluate(n),i.evaluate(n))]]},"feature-state":[Tt,[dt],(n,[t])=>nl(t.evaluate(n),n.featureState||{})],properties:[gi,[],n=>n.properties()],"geometry-type":[dt,[],n=>n.geometryType()],id:[Tt,[],n=>n.id()],zoom:[Ue,[],n=>n.globals.zoom],"heatmap-density":[Ue,[],n=>n.globals.heatmapDensity||0],"line-progress":[Ue,[],n=>n.globals.lineProgress||0],accumulated:[Tt,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[Ue,Qn(Ue),(n,t)=>{let i=0;for(const o of t)i+=o.evaluate(n);return i}],"*":[Ue,Qn(Ue),(n,t)=>{let i=1;for(const o of t)i*=o.evaluate(n);return i}],"-":{type:Ue,overloads:[[[Ue,Ue],(n,[t,i])=>t.evaluate(n)-i.evaluate(n)],[[Ue],(n,[t])=>-t.evaluate(n)]]},"/":[Ue,[Ue,Ue],(n,[t,i])=>t.evaluate(n)/i.evaluate(n)],"%":[Ue,[Ue,Ue],(n,[t,i])=>t.evaluate(n)%i.evaluate(n)],ln2:[Ue,[],()=>Math.LN2],pi:[Ue,[],()=>Math.PI],e:[Ue,[],()=>Math.E],"^":[Ue,[Ue,Ue],(n,[t,i])=>Math.pow(t.evaluate(n),i.evaluate(n))],sqrt:[Ue,[Ue],(n,[t])=>Math.sqrt(t.evaluate(n))],log10:[Ue,[Ue],(n,[t])=>Math.log(t.evaluate(n))/Math.LN10],ln:[Ue,[Ue],(n,[t])=>Math.log(t.evaluate(n))],log2:[Ue,[Ue],(n,[t])=>Math.log(t.evaluate(n))/Math.LN2],sin:[Ue,[Ue],(n,[t])=>Math.sin(t.evaluate(n))],cos:[Ue,[Ue],(n,[t])=>Math.cos(t.evaluate(n))],tan:[Ue,[Ue],(n,[t])=>Math.tan(t.evaluate(n))],asin:[Ue,[Ue],(n,[t])=>Math.asin(t.evaluate(n))],acos:[Ue,[Ue],(n,[t])=>Math.acos(t.evaluate(n))],atan:[Ue,[Ue],(n,[t])=>Math.atan(t.evaluate(n))],min:[Ue,Qn(Ue),(n,t)=>Math.min(...t.map(i=>i.evaluate(n)))],max:[Ue,Qn(Ue),(n,t)=>Math.max(...t.map(i=>i.evaluate(n)))],abs:[Ue,[Ue],(n,[t])=>Math.abs(t.evaluate(n))],round:[Ue,[Ue],(n,[t])=>{const i=t.evaluate(n);return i<0?-Math.round(-i):Math.round(i)}],floor:[Ue,[Ue],(n,[t])=>Math.floor(t.evaluate(n))],ceil:[Ue,[Ue],(n,[t])=>Math.ceil(t.evaluate(n))],"filter-==":[At,[dt,Tt],(n,[t,i])=>n.properties()[t.value]===i.value],"filter-id-==":[At,[Tt],(n,[t])=>n.id()===t.value],"filter-type-==":[At,[dt],(n,[t])=>n.geometryType()===t.value],"filter-<":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o<c}],"filter-id-<":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i<o}],"filter->":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o>c}],"filter-id->":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i>o}],"filter-<=":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o<=c}],"filter-id-<=":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i<=o}],"filter->=":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o>=c}],"filter-id->=":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i>=o}],"filter-has":[At,[Tt],(n,[t])=>t.value in n.properties()],"filter-has-id":[At,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[At,[Si(dt)],(n,[t])=>t.value.indexOf(n.geometryType())>=0],"filter-id-in":[At,[Si(Tt)],(n,[t])=>t.value.indexOf(n.id())>=0],"filter-in-small":[At,[dt,Si(Tt)],(n,[t,i])=>i.value.indexOf(n.properties()[t.value])>=0],"filter-in-large":[At,[dt,Si(Tt)],(n,[t,i])=>function(o,c,f,m){for(;f<=m;){const v=f+m>>1;if(c[v]===o)return!0;c[v]>o?m=v-1:f=v+1}return!1}(n.properties()[t.value],i.value,0,i.value.length-1)],all:{type:At,overloads:[[[At,At],(n,[t,i])=>t.evaluate(n)&&i.evaluate(n)],[Qn(At),(n,t)=>{for(const i of t)if(!i.evaluate(n))return!1;return!0}]]},any:{type:At,overloads:[[[At,At],(n,[t,i])=>t.evaluate(n)||i.evaluate(n)],[Qn(At),(n,t)=>{for(const i of t)if(i.evaluate(n))return!0;return!1}]]},"!":[At,[At],(n,[t])=>!t.evaluate(n)],"is-supported-script":[At,[dt],(n,[t])=>{const i=n.globals&&n.globals.isSupportedScript;return!i||i(t.evaluate(n))}],upcase:[dt,[dt],(n,[t])=>t.evaluate(n).toUpperCase()],downcase:[dt,[dt],(n,[t])=>t.evaluate(n).toLowerCase()],concat:[dt,Qn(Tt),(n,t)=>t.map(i=>Ft(i.evaluate(n))).join("")],"resolved-locale":[dt,[ls],(n,[t])=>t.evaluate(n).resolvedLocale()]});class ta{constructor(t,i){this.expression=t,this._warningHistory={},this._evaluator=new Wa,this._defaultValue=i?function(o){if(o.type==="color"&&$o(o.default))return new Vt(0,0,0,0);switch(o.type){case"color":return Vt.parse(o.default)||null;case"padding":return Jr.parse(o.default)||null;case"numberArray":return Tr.parse(o.default)||null;case"colorArray":return Xr.parse(o.default)||null;case"variableAnchorOffsetCollection":return hi.parse(o.default)||null;case"projectionDefinition":return _i.parse(o.default)||null;default:return o.default===void 0?null:o.default}}(i):null,this._enumValues=i&&i.type==="enum"?i.values:null}evaluateWithoutErrorHandling(t,i,o,c,f,m){return this._evaluator.globals=t,this._evaluator.feature=i,this._evaluator.featureState=o,this._evaluator.canonical=c,this._evaluator.availableImages=f||null,this._evaluator.formattedSection=m,this.expression.evaluate(this._evaluator)}evaluate(t,i,o,c,f,m){this._evaluator.globals=t,this._evaluator.feature=i||null,this._evaluator.featureState=o||null,this._evaluator.canonical=c,this._evaluator.availableImages=f||null,this._evaluator.formattedSection=m||null;try{const v=this.expression.evaluate(this._evaluator);if(v==null||typeof v=="number"&&v!=v)return this._defaultValue;if(this._enumValues&&!(v in this._enumValues))throw new ir(`Expected value to be one of ${Object.keys(this._enumValues).map(S=>JSON.stringify(S)).join(", ")}, but found ${JSON.stringify(v)} instead.`);return v}catch(v){return this._warningHistory[v.message]||(this._warningHistory[v.message]=!0,typeof console<"u"&&console.warn(v.message)),this._defaultValue}}}function ro(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in _s}function ra(n,t){const i=new Ws(_s,Go,[],t?function(c){const f={color:_r,string:dt,number:Ue,enum:dt,boolean:At,formatted:Vs,padding:Fn,numberArray:cn,colorArray:Fs,projectionDefinition:vr,resolvedImage:On,variableAnchorOffsetCollection:kr};return c.type==="array"?Si(f[c.value]||Tt,c.length):f[c.type]}(t):void 0),o=i.parse(n,void 0,void 0,void 0,t&&t.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?Qo(new ta(o,t)):vs(i.errors)}class ol{constructor(t,i){this.kind=t,this._styleExpression=i,this.isStateDependent=t!=="constant"&&!eo(i.expression)}evaluateWithoutErrorHandling(t,i,o,c,f,m){return this._styleExpression.evaluateWithoutErrorHandling(t,i,o,c,f,m)}evaluate(t,i,o,c,f,m){return this._styleExpression.evaluate(t,i,o,c,f,m)}}class ia{constructor(t,i,o,c){this.kind=t,this.zoomStops=o,this._styleExpression=i,this.isStateDependent=t!=="camera"&&!eo(i.expression),this.interpolationType=c}evaluateWithoutErrorHandling(t,i,o,c,f,m){return this._styleExpression.evaluateWithoutErrorHandling(t,i,o,c,f,m)}evaluate(t,i,o,c,f,m){return this._styleExpression.evaluate(t,i,o,c,f,m)}interpolationFactor(t,i,o){return this.interpolationType?ii.interpolationFactor(this.interpolationType,t,i,o):0}}function al(n,t){const i=ra(n,t);if(i.result==="error")return i;const o=i.value.expression,c=Jo(o);if(!c&&!xs(t))return vs([new Bt("","data expressions not supported")]);const f=Xo(o,["zoom"]);if(!f&&!Lc(t))return vs([new Bt("","zoom expressions not supported")]);const m=no(o);return m||f?m instanceof Bt?vs([m]):m instanceof ii&&!Yo(t)?vs([new Bt("",'"interpolate" expressions cannot be used with this property')]):Qo(m?new ia(c?"camera":"composite",i.value,m.labels,m instanceof ii?m.interpolation:void 0):new ol(c?"constant":"source",i.value)):vs([new Bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class io{constructor(t,i){this._parameters=t,this._specification=i,Kt(this,sl(this._parameters,this._specification))}static deserialize(t){return new io(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function no(n){let t=null;if(n instanceof ms)t=no(n.result);else if(n instanceof Zn){for(const i of n.args)if(t=no(i),t)break}else(n instanceof An||n instanceof ii)&&n.input instanceof zi&&n.input.name==="zoom"&&(t=n);return t instanceof Bt||n.eachChild(i=>{const o=no(i);o instanceof Bt?t=o:!t&&o?t=new Bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&o&&t!==o&&(t=new Bt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),t}function so(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const t of n.slice(1))if(!so(t)&&typeof t!="boolean")return!1;return!0;default:return!0}}const ll={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function oo(n){if(n==null)return{filter:()=>!0,needGeometry:!1};so(n)||(n=sa(n));const t=ra(n,ll);if(t.result==="error")throw new Error(t.value.map(i=>`${i.key}: ${i.message}`).join(", "));return{filter:(i,o,c)=>t.value.evaluate(i,o,{},c),needGeometry:Dc(n)}}function na(n,t){return n<t?-1:n>t?1:0}function Dc(n){if(!Array.isArray(n))return!1;if(n[0]==="within"||n[0]==="distance")return!0;for(let t=1;t<n.length;t++)if(Dc(n[t]))return!0;return!1}function sa(n){if(!n)return!0;const t=n[0];return n.length<=1?t!=="any":t==="=="?cl(n[1],n[2],"=="):t==="!="?oa(cl(n[1],n[2],"==")):t==="<"||t===">"||t==="<="||t===">="?cl(n[1],n[2],t):t==="any"?(i=n.slice(1),["any"].concat(i.map(sa))):t==="all"?["all"].concat(n.slice(1).map(sa)):t==="none"?["all"].concat(n.slice(1).map(sa).map(oa)):t==="in"?zc(n[1],n.slice(2)):t==="!in"?oa(zc(n[1],n.slice(2))):t==="has"?Bc(n[1]):t!=="!has"||oa(Bc(n[1]));var i}function cl(n,t,i){switch(n){case"$type":return[`filter-type-${i}`,t];case"$id":return[`filter-id-${i}`,t];default:return[`filter-${i}`,n,t]}}function zc(n,t){if(t.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(i=>typeof i!=typeof t[0])?["filter-in-large",n,["literal",t.sort(na)]]:["filter-in-small",n,["literal",t]]}}function Bc(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function oa(n){return["!",n]}function aa(n){const t=typeof n;if(t==="number"||t==="boolean"||t==="string"||n==null)return JSON.stringify(n);if(Array.isArray(n)){let c="[";for(const f of n)c+=`${aa(f)},`;return`${c}]`}const i=Object.keys(n).sort();let o="{";for(let c=0;c<i.length;c++)o+=`${JSON.stringify(i[c])}:${aa(n[i[c]])},`;return`${o}}`}function Vc(n){let t="";for(const i of ke)t+=`/${aa(n[i])}`;return t}function ao(n){const t=n.value;return t?[new ze(n.key,t,"constants have been deprecated as of v8")]:[]}function Ar(n){return n instanceof Number||n instanceof String||n instanceof Boolean?n.valueOf():n}function Tn(n){if(Array.isArray(n))return n.map(Tn);if(n instanceof Object&&!(n instanceof Number||n instanceof String||n instanceof Boolean)){const t={};for(const i in n)t[i]=Tn(n[i]);return t}return Ar(n)}function ki(n){const t=n.key,i=n.value,o=n.valueSpec||{},c=n.objectElementValidators||{},f=n.style,m=n.styleSpec,v=n.validateSpec;let S=[];const E=Lt(i);if(E!=="object")return[new ze(t,i,`object expected, ${E} found`)];for(const L in i){const V=L.split(".")[0],q=Ns(o,V)||o["*"];let H;if(Ns(c,V))H=c[V];else if(Ns(o,V))H=v;else if(c["*"])H=c["*"];else{if(!o["*"]){S.push(new ze(t,i[L],`unknown property "${L}"`));continue}H=v}S=S.concat(H({key:(t&&`${t}.`)+L,value:i[L],valueSpec:q,style:f,styleSpec:m,object:i,objectKey:L,validateSpec:v},i))}for(const L in o)c[L]||o[L].required&&o[L].default===void 0&&i[L]===void 0&&S.push(new ze(t,i,`missing required property "${L}"`));return S}function ul(n){const t=n.value,i=n.valueSpec,o=n.style,c=n.styleSpec,f=n.key,m=n.arrayElementValidator||n.validateSpec;if(Lt(t)!=="array")return[new ze(f,t,`array expected, ${Lt(t)} found`)];if(i.length&&t.length!==i.length)return[new ze(f,t,`array length ${i.length} expected, length ${t.length} found`)];if(i["min-length"]&&t.length<i["min-length"])return[new ze(f,t,`array length at least ${i["min-length"]} expected, length ${t.length} found`)];let v={type:i.value,values:i.values};c.$version<7&&(v.function=i.function),Lt(i.value)==="object"&&(v=i.value);let S=[];for(let E=0;E<t.length;E++)S=S.concat(m({array:t,arrayIndex:E,value:t[E],valueSpec:v,validateSpec:n.validateSpec,style:o,styleSpec:c,key:`${f}[${E}]`}));return S}function lo(n){const t=n.key,i=n.value,o=n.valueSpec;let c=Lt(i);return c==="number"&&i!=i&&(c="NaN"),c!=="number"?[new ze(t,i,`number expected, ${c} found`)]:"minimum"in o&&i<o.minimum?[new ze(t,i,`${i} is less than the minimum value ${o.minimum}`)]:"maximum"in o&&i>o.maximum?[new ze(t,i,`${i} is greater than the maximum value ${o.maximum}`)]:[]}function hl(n){const t=n.valueSpec,i=Ar(n.value.type);let o,c,f,m={};const v=i!=="categorical"&&n.value.property===void 0,S=!v,E=Lt(n.value.stops)==="array"&&Lt(n.value.stops[0])==="array"&&Lt(n.value.stops[0][0])==="object",L=ki({key:n.key,value:n.value,valueSpec:n.styleSpec.function,validateSpec:n.validateSpec,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(H){if(i==="identity")return[new ze(H.key,H.value,'identity function may not have a "stops" property')];let W=[];const X=H.value;return W=W.concat(ul({key:H.key,value:X,valueSpec:H.valueSpec,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,arrayElementValidator:V})),Lt(X)==="array"&&X.length===0&&W.push(new ze(H.key,X,"array must have at least one stop")),W},default:function(H){return H.validateSpec({key:H.key,value:H.value,valueSpec:t,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec})}}});return i==="identity"&&v&&L.push(new ze(n.key,n.value,'missing required property "property"')),i==="identity"||n.value.stops||L.push(new ze(n.key,n.value,'missing required property "stops"')),i==="exponential"&&n.valueSpec.expression&&!Yo(n.valueSpec)&&L.push(new ze(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(S&&!xs(n.valueSpec)?L.push(new ze(n.key,n.value,"property functions not supported")):v&&!Lc(n.valueSpec)&&L.push(new ze(n.key,n.value,"zoom functions not supported"))),i!=="categorical"&&!E||n.value.property!==void 0||L.push(new ze(n.key,n.value,'"property" property is required')),L;function V(H){let W=[];const X=H.value,ee=H.key;if(Lt(X)!=="array")return[new ze(ee,X,`array expected, ${Lt(X)} found`)];if(X.length!==2)return[new ze(ee,X,`array length 2 expected, length ${X.length} found`)];if(E){if(Lt(X[0])!=="object")return[new ze(ee,X,`object expected, ${Lt(X[0])} found`)];if(X[0].zoom===void 0)return[new ze(ee,X,"object stop key must have zoom")];if(X[0].value===void 0)return[new ze(ee,X,"object stop key must have value")];if(f&&f>Ar(X[0].zoom))return[new ze(ee,X[0].zoom,"stop zoom values must appear in ascending order")];Ar(X[0].zoom)!==f&&(f=Ar(X[0].zoom),c=void 0,m={}),W=W.concat(ki({key:`${ee}[0]`,value:X[0],valueSpec:{zoom:{}},validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,objectElementValidators:{zoom:lo,value:q}}))}else W=W.concat(q({key:`${ee}[0]`,value:X[0],validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec},X));return ro(Tn(X[1]))?W.concat([new ze(`${ee}[1]`,X[1],"expressions are not allowed in function stops.")]):W.concat(H.validateSpec({key:`${ee}[1]`,value:X[1],valueSpec:t,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec}))}function q(H,W){const X=Lt(H.value),ee=Ar(H.value),ae=H.value!==null?H.value:W;if(o){if(X!==o)return[new ze(H.key,ae,`${X} stop domain type must match previous stop domain type ${o}`)]}else o=X;if(X!=="number"&&X!=="string"&&X!=="boolean")return[new ze(H.key,ae,"stop domain value must be a number, string, or boolean")];if(X!=="number"&&i!=="categorical"){let ve=`number expected, ${X} found`;return xs(t)&&i===void 0&&(ve+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ze(H.key,ae,ve)]}return i!=="categorical"||X!=="number"||isFinite(ee)&&Math.floor(ee)===ee?i!=="categorical"&&X==="number"&&c!==void 0&&ee<c?[new ze(H.key,ae,"stop domain values must appear in ascending order")]:(c=ee,i==="categorical"&&ee in m?[new ze(H.key,ae,"stop domain values must be unique")]:(m[ee]=!0,[])):[new ze(H.key,ae,`integer expected, found ${ee}`)]}}function sn(n){const t=(n.expressionContext==="property"?al:ra)(Tn(n.value),n.valueSpec);if(t.result==="error")return t.value.map(o=>new ze(`${n.key}${o.key}`,n.value,o.message));const i=t.value.expression||t.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!i.outputDefined())return[new ze(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!eo(i))return[new ze(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter"&&!eo(i))return[new ze(n.key,n.value,'"feature-state" data expressions are not supported with filters.')];if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!Xo(i,["zoom","feature-state"]))return[new ze(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!Jo(i))return[new ze(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function pl(n){const t=n.key,i=n.value,o=Lt(i);return o!=="string"?[new ze(t,i,`color expected, ${o} found`)]:Vt.parse(String(i))?[]:[new ze(t,i,`color expected, "${i}" found`)]}function co(n){const t=n.key,i=n.value,o=n.valueSpec,c=[];return Array.isArray(o.values)?o.values.indexOf(Ar(i))===-1&&c.push(new ze(t,i,`expected one of [${o.values.join(", ")}], ${JSON.stringify(i)} found`)):Object.keys(o.values).indexOf(Ar(i))===-1&&c.push(new ze(t,i,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(i)} found`)),c}function dl(n){return so(Tn(n.value))?sn(Kt({},n,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Fc(n)}function Fc(n){const t=n.value,i=n.key;if(Lt(t)!=="array")return[new ze(i,t,`array expected, ${Lt(t)} found`)];const o=n.styleSpec;let c,f=[];if(t.length<1)return[new ze(i,t,"filter array must have at least 1 element")];switch(f=f.concat(co({key:`${i}[0]`,value:t[0],valueSpec:o.filter_operator,style:n.style,styleSpec:n.styleSpec})),Ar(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&Ar(t[1])==="$type"&&f.push(new ze(i,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":t.length!==3&&f.push(new ze(i,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(c=Lt(t[1]),c!=="string"&&f.push(new ze(`${i}[1]`,t[1],`string expected, ${c} found`)));for(let m=2;m<t.length;m++)c=Lt(t[m]),Ar(t[1])==="$type"?f=f.concat(co({key:`${i}[${m}]`,value:t[m],valueSpec:o.geometry_type,style:n.style,styleSpec:n.styleSpec})):c!=="string"&&c!=="number"&&c!=="boolean"&&f.push(new ze(`${i}[${m}]`,t[m],`string, number, or boolean expected, ${c} found`));break;case"any":case"all":case"none":for(let m=1;m<t.length;m++)f=f.concat(Fc({key:`${i}[${m}]`,value:t[m],style:n.style,styleSpec:n.styleSpec}));break;case"has":case"!has":c=Lt(t[1]),t.length!==2?f.push(new ze(i,t,`filter array for "${t[0]}" operator must have 2 elements`)):c!=="string"&&f.push(new ze(`${i}[1]`,t[1],`string expected, ${c} found`))}return f}function Oc(n,t){const i=n.key,o=n.validateSpec,c=n.style,f=n.styleSpec,m=n.value,v=n.objectKey,S=f[`${t}_${n.layerType}`];if(!S)return[];const E=v.match(/^(.*)-transition$/);if(t==="paint"&&E&&S[E[1]]&&S[E[1]].transition)return o({key:i,value:m,valueSpec:f.transition,style:c,styleSpec:f});const L=n.valueSpec||S[v];if(!L)return[new ze(i,m,`unknown property "${v}"`)];let V;if(Lt(m)==="string"&&xs(L)&&!L.tokens&&(V=/^{([^}]+)}$/.exec(m)))return[new ze(i,m,`"${v}" does not support interpolation syntax
65
+ Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(V[1])} }\`.`)];const q=[];return n.layerType==="symbol"&&(v==="text-field"&&c&&!c.glyphs&&q.push(new ze(i,m,'use of "text-field" requires a style "glyphs" property')),v==="text-font"&&$o(Tn(m))&&Ar(m.type)==="identity"&&q.push(new ze(i,m,'"text-font" does not support identity functions'))),q.concat(o({key:n.key,value:m,valueSpec:L,style:c,styleSpec:f,expressionContext:"property",propertyType:t,propertyKey:v}))}function Nc(n){return Oc(n,"paint")}function bs(n){return Oc(n,"layout")}function ws(n){let t=[];const i=n.value,o=n.key,c=n.style,f=n.styleSpec;if(Lt(i)!=="object")return[new ze(o,i,`object expected, ${Lt(i)} found`)];i.type||i.ref||t.push(new ze(o,i,'either "type" or "ref" is required'));let m=Ar(i.type);const v=Ar(i.ref);if(i.id){const S=Ar(i.id);for(let E=0;E<n.arrayIndex;E++){const L=c.layers[E];Ar(L.id)===S&&t.push(new ze(o,i.id,`duplicate layer id "${i.id}", previously used at line ${L.id.__line__}`))}}if("ref"in i){let S;["type","source","source-layer","filter","layout"].forEach(E=>{E in i&&t.push(new ze(o,i[E],`"${E}" is prohibited for ref layers`))}),c.layers.forEach(E=>{Ar(E.id)===v&&(S=E)}),S?S.ref?t.push(new ze(o,i.ref,"ref cannot reference another ref layer")):m=Ar(S.type):t.push(new ze(o,i.ref,`ref layer "${v}" not found`))}else if(m!=="background")if(i.source){const S=c.sources&&c.sources[i.source],E=S&&Ar(S.type);S?E==="vector"&&m==="raster"?t.push(new ze(o,i.source,`layer "${i.id}" requires a raster source`)):E!=="raster-dem"&&m==="hillshade"?t.push(new ze(o,i.source,`layer "${i.id}" requires a raster-dem source`)):E==="raster"&&m!=="raster"?t.push(new ze(o,i.source,`layer "${i.id}" requires a vector source`)):E!=="vector"||i["source-layer"]?E==="raster-dem"&&m!=="hillshade"?t.push(new ze(o,i.source,"raster-dem source can only be used with layer type 'hillshade'.")):m!=="line"||!i.paint||!i.paint["line-gradient"]||E==="geojson"&&S.lineMetrics||t.push(new ze(o,i,`layer "${i.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new ze(o,i,`layer "${i.id}" must specify a "source-layer"`)):t.push(new ze(o,i.source,`source "${i.source}" not found`))}else t.push(new ze(o,i,'missing required property "source"'));return t=t.concat(ki({key:o,value:i,valueSpec:f.layer,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,objectElementValidators:{"*":()=>[],type:()=>n.validateSpec({key:`${o}.type`,value:i.type,valueSpec:f.layer.type,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,object:i,objectKey:"type"}),filter:dl,layout:S=>ki({layer:i,key:S.key,value:S.value,style:S.style,styleSpec:S.styleSpec,validateSpec:S.validateSpec,objectElementValidators:{"*":E=>bs(Kt({layerType:m},E))}}),paint:S=>ki({layer:i,key:S.key,value:S.value,style:S.style,styleSpec:S.styleSpec,validateSpec:S.validateSpec,objectElementValidators:{"*":E=>Nc(Kt({layerType:m},E))}})}})),t}function zr(n){const t=n.value,i=n.key,o=Lt(t);return o!=="string"?[new ze(i,t,`string expected, ${o} found`)]:[]}const Ss={promoteId:function({key:n,value:t}){if(Lt(t)==="string")return zr({key:n,value:t});{const i=[];for(const o in t)i.push(...zr({key:`${n}.${o}`,value:t[o]}));return i}}};function fl(n){const t=n.value,i=n.key,o=n.styleSpec,c=n.style,f=n.validateSpec;if(!t.type)return[new ze(i,t,'"type" is required')];const m=Ar(t.type);let v;switch(m){case"vector":case"raster":return v=ki({key:i,value:t,valueSpec:o[`source_${m.replace("-","_")}`],style:n.style,styleSpec:o,objectElementValidators:Ss,validateSpec:f}),v;case"raster-dem":return v=function(S){var E;const L=(E=S.sourceName)!==null&&E!==void 0?E:"",V=S.value,q=S.styleSpec,H=q.source_raster_dem,W=S.style;let X=[];const ee=Lt(V);if(V===void 0)return X;if(ee!=="object")return X.push(new ze("source_raster_dem",V,`object expected, ${ee} found`)),X;const ae=Ar(V.encoding)==="custom",ve=["redFactor","greenFactor","blueFactor","baseShift"],he=S.value.encoding?`"${S.value.encoding}"`:"Default";for(const j in V)!ae&&ve.includes(j)?X.push(new ze(j,V[j],`In "${L}": "${j}" is only valid when "encoding" is set to "custom". ${he} encoding found`)):H[j]?X=X.concat(S.validateSpec({key:j,value:V[j],valueSpec:H[j],validateSpec:S.validateSpec,style:W,styleSpec:q})):X.push(new ze(j,V[j],`unknown property "${j}"`));return X}({sourceName:i,value:t,style:n.style,styleSpec:o,validateSpec:f}),v;case"geojson":if(v=ki({key:i,value:t,valueSpec:o.source_geojson,style:c,styleSpec:o,validateSpec:f,objectElementValidators:Ss}),t.cluster)for(const S in t.clusterProperties){const[E,L]=t.clusterProperties[S],V=typeof E=="string"?[E,["accumulated"],["get",S]]:E;v.push(...sn({key:`${i}.${S}.map`,value:L,expressionContext:"cluster-map"})),v.push(...sn({key:`${i}.${S}.reduce`,value:V,expressionContext:"cluster-reduce"}))}return v;case"video":return ki({key:i,value:t,valueSpec:o.source_video,style:c,validateSpec:f,styleSpec:o});case"image":return ki({key:i,value:t,valueSpec:o.source_image,style:c,validateSpec:f,styleSpec:o});case"canvas":return[new ze(i,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return co({key:`${i}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function qc(n){const t=n.value,i=n.styleSpec,o=i.light,c=n.style;let f=[];const m=Lt(t);if(t===void 0)return f;if(m!=="object")return f=f.concat([new ze("light",t,`object expected, ${m} found`)]),f;for(const v in t){const S=v.match(/^(.*)-transition$/);f=f.concat(S&&o[S[1]]&&o[S[1]].transition?n.validateSpec({key:v,value:t[v],valueSpec:i.transition,validateSpec:n.validateSpec,style:c,styleSpec:i}):o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],validateSpec:n.validateSpec,style:c,styleSpec:i}):[new ze(v,t[v],`unknown property "${v}"`)])}return f}function Uc(n){const t=n.value,i=n.styleSpec,o=i.sky,c=n.style,f=Lt(t);if(t===void 0)return[];if(f!=="object")return[new ze("sky",t,`object expected, ${f} found`)];let m=[];for(const v in t)m=m.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],style:c,styleSpec:i}):[new ze(v,t[v],`unknown property "${v}"`)]);return m}function As(n){const t=n.value,i=n.styleSpec,o=i.terrain,c=n.style;let f=[];const m=Lt(t);if(t===void 0)return f;if(m!=="object")return f=f.concat([new ze("terrain",t,`object expected, ${m} found`)]),f;for(const v in t)f=f.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],validateSpec:n.validateSpec,style:c,styleSpec:i}):[new ze(v,t[v],`unknown property "${v}"`)]);return f}function ml(n){let t=[];const i=n.value,o=n.key;if(Array.isArray(i)){const c=[],f=[];for(const m in i)i[m].id&&c.includes(i[m].id)&&t.push(new ze(o,i,`all the sprites' ids must be unique, but ${i[m].id} is duplicated`)),c.push(i[m].id),i[m].url&&f.includes(i[m].url)&&t.push(new ze(o,i,`all the sprites' URLs must be unique, but ${i[m].url} is duplicated`)),f.push(i[m].url),t=t.concat(ki({key:`${o}[${m}]`,value:i[m],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:n.validateSpec}));return t}return zr({key:o,value:i})}function la(n){return t=n.value,t&&t.constructor===Object?[]:[new ze(n.key,n.value,`object expected, ${Lt(n.value)} found`)];var t}const jc={"*":()=>[],array:ul,boolean:function(n){const t=n.value,i=n.key,o=Lt(t);return o!=="boolean"?[new ze(i,t,`boolean expected, ${o} found`)]:[]},number:lo,color:pl,constants:ao,enum:co,filter:dl,function:hl,layer:ws,object:ki,source:fl,light:qc,sky:Uc,terrain:As,projection:function(n){const t=n.value,i=n.styleSpec,o=i.projection,c=n.style,f=Lt(t);if(t===void 0)return[];if(f!=="object")return[new ze("projection",t,`object expected, ${f} found`)];let m=[];for(const v in t)m=m.concat(o[v]?n.validateSpec({key:v,value:t[v],valueSpec:o[v],style:c,styleSpec:i}):[new ze(v,t[v],`unknown property "${v}"`)]);return m},projectionDefinition:function(n){const t=n.key;let i=n.value;i=i instanceof String?i.valueOf():i;const o=Lt(i);return o!=="array"||function(c){return Array.isArray(c)&&c.length===3&&typeof c[0]=="string"&&typeof c[1]=="string"&&typeof c[2]=="number"}(i)||function(c){return!!["interpolate","step","literal"].includes(c[0])}(i)?["array","string"].includes(o)?[]:[new ze(t,i,`projection expected, invalid type "${o}" found`)]:[new ze(t,i,`projection expected, invalid array ${JSON.stringify(i)} found`)]},string:zr,formatted:function(n){return zr(n).length===0?[]:sn(n)},resolvedImage:function(n){return zr(n).length===0?[]:sn(n)},padding:function(n){const t=n.key,i=n.value;if(Lt(i)==="array"){if(i.length<1||i.length>4)return[new ze(t,i,`padding requires 1 to 4 values; ${i.length} values found`)];const o={type:"number"};let c=[];for(let f=0;f<i.length;f++)c=c.concat(n.validateSpec({key:`${t}[${f}]`,value:i[f],validateSpec:n.validateSpec,valueSpec:o}));return c}return lo({key:t,value:i,valueSpec:{}})},numberArray:function(n){const t=n.key,i=n.value;if(Lt(i)==="array"){const o={type:"number"};if(i.length<1)return[new ze(t,i,"array length at least 1 expected, length 0 found")];let c=[];for(let f=0;f<i.length;f++)c=c.concat(n.validateSpec({key:`${t}[${f}]`,value:i[f],validateSpec:n.validateSpec,valueSpec:o}));return c}return lo({key:t,value:i,valueSpec:{}})},colorArray:function(n){const t=n.key,i=n.value;if(Lt(i)==="array"){if(i.length<1)return[new ze(t,i,"array length at least 1 expected, length 0 found")];let o=[];for(let c=0;c<i.length;c++)o=o.concat(pl({key:`${t}[${c}]`,value:i[c]}));return o}return pl({key:t,value:i})},variableAnchorOffsetCollection:function(n){const t=n.key,i=n.value,o=Lt(i),c=n.styleSpec;if(o!=="array"||i.length<1||i.length%2!=0)return[new ze(t,i,"variableAnchorOffsetCollection requires a non-empty array of even length")];let f=[];for(let m=0;m<i.length;m+=2)f=f.concat(co({key:`${t}[${m}]`,value:i[m],valueSpec:c.layout_symbol["text-anchor"]})),f=f.concat(ul({key:`${t}[${m+1}]`,value:i[m+1],valueSpec:{length:2,value:"number"},validateSpec:n.validateSpec,style:n.style,styleSpec:c}));return f},sprite:ml,state:la};function ks(n){const t=n.value,i=n.valueSpec,o=n.styleSpec;return n.validateSpec=ks,i.expression&&$o(Ar(t))?hl(n):i.expression&&ro(Tn(t))?sn(n):i.type&&jc[i.type]?jc[i.type](n):ki(Kt({},n,{valueSpec:i.type?o[i.type]:i}))}function Hc(n){const t=n.value,i=n.key,o=zr(n);return o.length||(t.indexOf("{fontstack}")===-1&&o.push(new ze(i,t,'"glyphs" url must include a "{fontstack}" token')),t.indexOf("{range}")===-1&&o.push(new ze(i,t,'"glyphs" url must include a "{range}" token'))),o}function ni(n,t=$){let i=[];return i=i.concat(ks({key:"",value:n,valueSpec:t.$root,styleSpec:t,style:n,validateSpec:ks,objectElementValidators:{glyphs:Hc,"*":()=>[]}})),n.constants&&(i=i.concat(ao({key:"constants",value:n.constants}))),Ts(i)}function Wi(n){return function(t){return n({...t,validateSpec:ks})}}function Ts(n){return[].concat(n).sort((t,i)=>t.line-i.line)}function Zi(n){return function(...t){return Ts(n.apply(this,t))}}ni.source=Zi(Wi(fl)),ni.sprite=Zi(Wi(ml)),ni.glyphs=Zi(Wi(Hc)),ni.light=Zi(Wi(qc)),ni.sky=Zi(Wi(Uc)),ni.terrain=Zi(Wi(As)),ni.state=Zi(Wi(la)),ni.layer=Zi(Wi(ws)),ni.filter=Zi(Wi(dl)),ni.paintProperty=Zi(Wi(Nc)),ni.layoutProperty=Zi(Wi(bs));const Cs=ni,ca=Cs.light,zh=Cs.sky,gl=Cs.paintProperty,ua=Cs.layoutProperty;function yl(n,t){let i=!1;if(t&&t.length)for(const o of t)n.fire(new ce(new Error(o.message))),i=!0;return i}class Es{constructor(t,i,o){const c=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const m=new Int32Array(this.arrayBuffer);t=m[0],this.d=(i=m[1])+2*(o=m[2]);for(let S=0;S<this.d*this.d;S++){const E=m[3+S],L=m[3+S+1];c.push(E===L?null:m.subarray(E,L))}const v=m[3+c.length+1];this.keys=m.subarray(m[3+c.length],v),this.bboxes=m.subarray(v),this.insert=this._insertReadonly}else{this.d=i+2*o;for(let m=0;m<this.d*this.d;m++)c.push([]);this.keys=[],this.bboxes=[]}this.n=i,this.extent=t,this.padding=o,this.scale=i/t,this.uid=0;const f=o/i*t;this.min=-f,this.max=t+f}insert(t,i,o,c,f){this._forEachCell(i,o,c,f,this._insertCell,this.uid++,void 0,void 0),this.keys.push(t),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(c),this.bboxes.push(f)}_insertReadonly(){throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.")}_insertCell(t,i,o,c,f,m){this.cells[f].push(m)}query(t,i,o,c,f){const m=this.min,v=this.max;if(t<=m&&i<=m&&v<=o&&v<=c&&!f)return Array.prototype.slice.call(this.keys);{const S=[];return this._forEachCell(t,i,o,c,this._queryCell,S,{},f),S}}_queryCell(t,i,o,c,f,m,v,S){const E=this.cells[f];if(E!==null){const L=this.keys,V=this.bboxes;for(let q=0;q<E.length;q++){const H=E[q];if(v[H]===void 0){const W=4*H;(S?S(V[W+0],V[W+1],V[W+2],V[W+3]):t<=V[W+2]&&i<=V[W+3]&&o>=V[W+0]&&c>=V[W+1])?(v[H]=!0,m.push(L[H])):v[H]=!1}}}}_forEachCell(t,i,o,c,f,m,v,S){const E=this._convertToCellCoord(t),L=this._convertToCellCoord(i),V=this._convertToCellCoord(o),q=this._convertToCellCoord(c);for(let H=E;H<=V;H++)for(let W=L;W<=q;W++){const X=this.d*W+H;if((!S||S(this._convertFromCellCoord(H),this._convertFromCellCoord(W),this._convertFromCellCoord(H+1),this._convertFromCellCoord(W+1)))&&f.call(this,t,i,o,c,X,m,v,S))return}}_convertFromCellCoord(t){return(t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,i=3+this.cells.length+1+1;let o=0;for(let m=0;m<this.cells.length;m++)o+=this.cells[m].length;const c=new Int32Array(i+o+this.keys.length+this.bboxes.length);c[0]=this.extent,c[1]=this.n,c[2]=this.padding;let f=i;for(let m=0;m<t.length;m++){const v=t[m];c[3+m]=f,c.set(v,f),f+=v.length}return c[3+t.length]=f,c.set(this.keys,f),f+=this.keys.length,c[3+t.length+1]=f,c.set(this.bboxes,f),f+=this.bboxes.length,c.buffer}static serialize(t,i){const o=t.toArrayBuffer();return i&&i.push(o),{buffer:o}}static deserialize(t){return new Es(t.buffer)}}const on={};function it(n,t,i={}){if(on[n])throw new Error(`${n} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:n,writeable:!1}),on[n]={klass:t,omit:i.omit||[],shallow:i.shallow||[]}}it("Object",Object),it("TransferableGridIndex",Es),it("Color",Vt),it("Error",Error),it("AJAXError",yt),it("ResolvedImage",Ai),it("StylePropertyFunction",io),it("StyleExpression",ta,{omit:["_evaluator"]}),it("ZoomDependentExpression",ia),it("ZoomConstantExpression",ol),it("CompoundExpression",zi,{omit:["_evaluate"]});for(const n in _s)_s[n]._classRegistryKey||it(`Expression_${n}`,_s[n]);function ha(n){return n&&typeof ArrayBuffer<"u"&&(n instanceof ArrayBuffer||n.constructor&&n.constructor.name==="ArrayBuffer")}function pa(n){return n.$name||n.constructor._classRegistryKey}function Wc(n){return!function(t){if(t===null||typeof t!="object")return!1;const i=pa(t);return!(!i||i==="Object")}(n)&&(n==null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||n instanceof Boolean||n instanceof Number||n instanceof String||n instanceof Date||n instanceof RegExp||n instanceof Blob||n instanceof Error||ha(n)||xt(n)||ArrayBuffer.isView(n)||n instanceof ImageData)}function Ps(n,t){if(Wc(n))return(ha(n)||xt(n))&&t&&t.push(n),ArrayBuffer.isView(n)&&t&&t.push(n.buffer),n instanceof ImageData&&t&&t.push(n.data.buffer),n;if(Array.isArray(n)){const f=[];for(const m of n)f.push(Ps(m,t));return f}if(typeof n!="object")throw new Error("can't serialize object of type "+typeof n);const i=pa(n);if(!i)throw new Error(`can't serialize object of unregistered class ${n.constructor.name}`);if(!on[i])throw new Error(`${i} is not registered.`);const{klass:o}=on[i],c=o.serialize?o.serialize(n,t):{};if(o.serialize){if(t&&c===t[t.length-1])throw new Error("statically serialized object won't survive transfer of $name property")}else{for(const f in n){if(!n.hasOwnProperty(f)||on[i].omit.indexOf(f)>=0)continue;const m=n[f];c[f]=on[i].shallow.indexOf(f)>=0?m:Ps(m,t)}n instanceof Error&&(c.message=n.message)}if(c.$name)throw new Error("$name property is reserved for worker serialization logic.");return i!=="Object"&&(c.$name=i),c}function uo(n){if(Wc(n))return n;if(Array.isArray(n))return n.map(uo);if(typeof n!="object")throw new Error("can't deserialize object of type "+typeof n);const t=pa(n)||"Object";if(!on[t])throw new Error(`can't deserialize unregistered class ${t}`);const{klass:i}=on[t];if(!i)throw new Error(`can't deserialize unregistered class ${t}`);if(i.deserialize)return i.deserialize(n);const o=Object.create(i.prototype);for(const c of Object.keys(n)){if(c==="$name")continue;const f=n[c];o[c]=on[t].shallow.indexOf(c)>=0?f:uo(f)}return o}class _l{constructor(){this.first=!0}update(t,i){const o=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=o,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=o,!0):(this.lastFloorZoom>o?(this.lastIntegerZoom=o+1,this.lastIntegerZoomTime=i):this.lastFloorZoom<o&&(this.lastIntegerZoom=o,this.lastIntegerZoomTime=i),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=o,!0))}}const Rt={"Latin-1 Supplement":n=>n>=128&&n<=255,"Hangul Jamo":n=>n>=4352&&n<=4607,Khmer:n=>n>=6016&&n<=6143,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Kanbun:n=>n>=12688&&n<=12703,"CJK Strokes":n=>n>=12736&&n<=12783,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Hangul Syllables":n=>n>=44032&&n<=55215,"Private Use Area":n=>n>=57344&&n<=63743,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function da(n){for(const t of n)if(fa(t.charCodeAt(0)))return!0;return!1}function Bh(n){for(const t of n)if(!Kc(t.charCodeAt(0)))return!1;return!0}function vl(n){const t=n.map(i=>{try{return new RegExp(`\\p{sc=${i}}`,"u").source}catch{return null}}).filter(i=>i);return new RegExp(t.join("|"),"u")}const Zc=vl(["Arab","Dupl","Mong","Ougr","Syrc"]);function Kc(n){return!Zc.test(String.fromCodePoint(n))}const xl=vl(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function fa(n){return!(n!==746&&n!==747&&(n<4352||!(Rt["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||Rt["CJK Compatibility"](n)||Rt["CJK Strokes"](n)||!(!Rt["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||Rt["Enclosed CJK Letters and Months"](n)||Rt["Ideographic Description Characters"](n)||Rt.Kanbun(n)||Rt.Katakana(n)&&n!==12540||!(!Rt["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!Rt["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||Rt["Vertical Forms"](n)||Rt["Yijing Hexagram Symbols"](n)||new RegExp("\\p{sc=Cans}","u").test(String.fromCodePoint(n))||new RegExp("\\p{sc=Hang}","u").test(String.fromCodePoint(n))||xl.test(String.fromCodePoint(n)))))}function ho(n){return!(fa(n)||function(t){return!!(Rt["Latin-1 Supplement"](t)&&(t===167||t===169||t===174||t===177||t===188||t===189||t===190||t===215||t===247)||Rt["General Punctuation"](t)&&(t===8214||t===8224||t===8225||t===8240||t===8241||t===8251||t===8252||t===8258||t===8263||t===8264||t===8265||t===8273)||Rt["Letterlike Symbols"](t)||Rt["Number Forms"](t)||Rt["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||t===9003||t>=9085&&t<=9114||t>=9150&&t<=9165||t===9167||t>=9169&&t<=9179||t>=9186&&t<=9215)||Rt["Control Pictures"](t)&&t!==9251||Rt["Optical Character Recognition"](t)||Rt["Enclosed Alphanumerics"](t)||Rt["Geometric Shapes"](t)||Rt["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Rt["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Rt["CJK Symbols and Punctuation"](t)||Rt.Katakana(t)||Rt["Private Use Area"](t)||Rt["CJK Compatibility Forms"](t)||Rt["Small Form Variants"](t)||Rt["Halfwidth and Fullwidth Forms"](t)||t===8734||t===8756||t===8757||t>=9984&&t<=10087||t>=10102&&t<=10131||t===65532||t===65533)}(n))}const Vh=vl(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function ma(n){return Vh.test(String.fromCodePoint(n))}function Fh(n,t){return!(!t&&ma(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||Rt.Khmer(n))}function Oh(n){for(const t of n)if(ma(t.charCodeAt(0)))return!0;return!1}const pn=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(n){this.pluginStatus=n.pluginStatus,this.pluginURL=n.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(n){if(pn.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=n.applyArabicShaping,this.processBidirectionalText=n.processBidirectionalText,this.processStyledBidirectionalText=n.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(n,t){return s(this,void 0,void 0,function*(){if(this.isParsed())return this.getState();if(n.pluginStatus!=="loading")return this.setState(n),n;const i=n.pluginURL,o=new Promise(f=>{this.loadScriptResolve=f});t(i);const c=new Promise(f=>setTimeout(()=>f(),this.TIMEOUT));if(yield Promise.race([o,c]),this.isParsed()){const f={pluginStatus:"loaded",pluginURL:i};return this.setState(f),f}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${i}`)})}};class nr{constructor(t,i){this.zoom=t,i?(this.now=i.now,this.fadeDuration=i.fadeDuration,this.zoomHistory=i.zoomHistory,this.transition=i.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new _l,this.transition={})}isSupportedScript(t){return function(i,o){for(const c of i)if(!Fh(c.charCodeAt(0),o))return!1;return!0}(t,pn.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,i=t-Math.floor(t),o=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:i+(1-i)*o}:{fromScale:.5,toScale:1,t:1-(1-o)*i}}}class po{constructor(t,i){this.property=t,this.value=i,this.expression=function(o,c){if($o(o))return new io(o,c);if(ro(o)){const f=al(o,c);if(f.result==="error")throw new Error(f.value.map(m=>`${m.key}: ${m.message}`).join(", "));return f.value}{let f=o;return c.type==="color"&&typeof o=="string"?f=Vt.parse(o):c.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?c.type!=="numberArray"||typeof o!="number"&&!Array.isArray(o)?c.type!=="colorArray"||typeof o!="string"&&!Array.isArray(o)?c.type==="variableAnchorOffsetCollection"&&Array.isArray(o)?f=hi.parse(o):c.type==="projectionDefinition"&&typeof o=="string"&&(f=_i.parse(o)):f=Xr.parse(o):f=Tr.parse(o):f=Jr.parse(o),{kind:"constant",evaluate:()=>f}}}(i===void 0?t.specification.default:i,t.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(t,i,o){return this.property.possiblyEvaluate(this,t,i,o)}}class bl{constructor(t){this.property=t,this.value=new po(t,void 0)}transitioned(t,i){return new Jc(this.property,this.value,i,ai({},t.transition,this.transition),t.now)}untransitioned(){return new Jc(this.property,this.value,null,{},0)}}class Gc{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return Kr(this._values[t].value.value)}setValue(t,i){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new bl(this._values[t].property)),this._values[t].value=new po(this._values[t].property,i===null?void 0:Kr(i))}getTransition(t){return Kr(this._values[t].transition)}setTransition(t,i){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new bl(this._values[t].property)),this._values[t].transition=Kr(i)||void 0}serialize(){const t={};for(const i of Object.keys(this._values)){const o=this.getValue(i);o!==void 0&&(t[i]=o);const c=this.getTransition(i);c!==void 0&&(t[`${i}-transition`]=c)}return t}transitioned(t,i){const o=new Xc(this._properties);for(const c of Object.keys(this._values))o._values[c]=this._values[c].transitioned(t,i._values[c]);return o}untransitioned(){const t=new Xc(this._properties);for(const i of Object.keys(this._values))t._values[i]=this._values[i].untransitioned();return t}}class Jc{constructor(t,i,o,c,f){this.property=t,this.value=i,this.begin=f+c.delay||0,this.end=this.begin+c.duration||0,t.specification.transition&&(c.delay||c.duration)&&(this.prior=o)}possiblyEvaluate(t,i,o){const c=t.now||0,f=this.value.possiblyEvaluate(t,i,o),m=this.prior;if(m){if(c>this.end)return this.prior=null,f;if(this.value.isDataDriven())return this.prior=null,f;if(c<this.begin)return m.possiblyEvaluate(t,i,o);{const v=(c-this.begin)/(this.end-this.begin);return this.property.interpolate(m.possiblyEvaluate(t,i,o),f,Rr(v))}}return f}}class Xc{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)}possiblyEvaluate(t,i,o){const c=new ga(this._properties);for(const f of Object.keys(this._values))c._values[f]=this._values[f].possiblyEvaluate(t,i,o);return c}hasTransition(){for(const t of Object.keys(this._values))if(this._values[t].prior)return!0;return!1}}class Nh{constructor(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)}hasValue(t){return this._values[t].value!==void 0}getValue(t){return Kr(this._values[t].value)}setValue(t,i){this._values[t]=new po(this._values[t].property,i===null?void 0:Kr(i))}serialize(){const t={};for(const i of Object.keys(this._values)){const o=this.getValue(i);o!==void 0&&(t[i]=o)}return t}possiblyEvaluate(t,i,o){const c=new ga(this._properties);for(const f of Object.keys(this._values))c._values[f]=this._values[f].possiblyEvaluate(t,i,o);return c}}class pi{constructor(t,i,o){this.property=t,this.value=i,this.parameters=o}isConstant(){return this.value.kind==="constant"}constantOr(t){return this.value.kind==="constant"?this.value.value:t}evaluate(t,i,o,c){return this.property.evaluate(this.value,this.parameters,t,i,o,c)}}class ga{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)}get(t){return this._values[t]}}class ct{constructor(t){this.specification=t}possiblyEvaluate(t,i){if(t.isDataDriven())throw new Error("Value should not be data driven");return t.expression.evaluate(i)}interpolate(t,i,o){const c=rn[this.specification.type];return c?c(t,i,o):t}}class ft{constructor(t,i){this.specification=t,this.overrides=i}possiblyEvaluate(t,i,o,c){return new pi(this,t.expression.kind==="constant"||t.expression.kind==="camera"?{kind:"constant",value:t.expression.evaluate(i,null,{},o,c)}:t.expression,i)}interpolate(t,i,o){if(t.value.kind!=="constant"||i.value.kind!=="constant")return t;if(t.value.value===void 0||i.value.value===void 0)return new pi(this,{kind:"constant",value:void 0},t.parameters);const c=rn[this.specification.type];if(c){const f=c(t.value.value,i.value.value,o);return new pi(this,{kind:"constant",value:f},t.parameters)}return t}evaluate(t,i,o,c,f,m){return t.kind==="constant"?t.value:t.evaluate(i,o,c,f,m)}}class fo extends ft{possiblyEvaluate(t,i,o,c){if(t.value===void 0)return new pi(this,{kind:"constant",value:void 0},i);if(t.expression.kind==="constant"){const f=t.expression.evaluate(i,null,{},o,c),m=t.property.specification.type==="resolvedImage"&&typeof f!="string"?f.name:f,v=this._calculate(m,m,m,i);return new pi(this,{kind:"constant",value:v},i)}if(t.expression.kind==="camera"){const f=this._calculate(t.expression.evaluate({zoom:i.zoom-1}),t.expression.evaluate({zoom:i.zoom}),t.expression.evaluate({zoom:i.zoom+1}),i);return new pi(this,{kind:"constant",value:f},i)}return new pi(this,t.expression,i)}evaluate(t,i,o,c,f,m){if(t.kind==="source"){const v=t.evaluate(i,o,c,f,m);return this._calculate(v,v,v,i)}return t.kind==="composite"?this._calculate(t.evaluate({zoom:Math.floor(i.zoom)-1},o,c),t.evaluate({zoom:Math.floor(i.zoom)},o,c),t.evaluate({zoom:Math.floor(i.zoom)+1},o,c),i):t.value}_calculate(t,i,o,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:i}:{from:o,to:i}}interpolate(t){return t}}class wl{constructor(t){this.specification=t}possiblyEvaluate(t,i,o,c){if(t.value!==void 0){if(t.expression.kind==="constant"){const f=t.expression.evaluate(i,null,{},o,c);return this._calculate(f,f,f,i)}return this._calculate(t.expression.evaluate(new nr(Math.floor(i.zoom-1),i)),t.expression.evaluate(new nr(Math.floor(i.zoom),i)),t.expression.evaluate(new nr(Math.floor(i.zoom+1),i)),i)}}_calculate(t,i,o,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:i}:{from:o,to:i}}interpolate(t){return t}}class Sl{constructor(t){this.specification=t}possiblyEvaluate(t,i,o,c){return!!t.expression.evaluate(i,null,{},o,c)}interpolate(){return!1}}class Pr{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const i in t){const o=t[i];o.specification.overridable&&this.overridableProperties.push(i);const c=this.defaultPropertyValues[i]=new po(o,void 0),f=this.defaultTransitionablePropertyValues[i]=new bl(o);this.defaultTransitioningPropertyValues[i]=f.untransitioned(),this.defaultPossiblyEvaluatedValues[i]=c.possiblyEvaluate({})}}}it("DataDrivenProperty",ft),it("DataConstantProperty",ct),it("CrossFadedDataDrivenProperty",fo),it("CrossFadedProperty",wl),it("ColorRampProperty",Sl);const Al="-transition";class Bi extends ye{constructor(t,i){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1},t.type!=="custom"&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type!=="background"&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),i.layout&&(this._unevaluatedLayout=new Nh(i.layout)),i.paint)){this._transitionablePaint=new Gc(i.paint);for(const o in t.paint)this.setPaintProperty(o,t.paint[o],{validate:!1});for(const o in t.layout)this.setLayoutProperty(o,t.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new ga(i.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return t==="visibility"?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,i,o={}){i!=null&&this._validate(ua,`layers.${this.id}.layout.${t}`,t,i,o)||(t!=="visibility"?this._unevaluatedLayout.setValue(t,i):this.visibility=i)}getPaintProperty(t){return t.endsWith(Al)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,i,o={}){if(i!=null&&this._validate(gl,`layers.${this.id}.paint.${t}`,t,i,o))return!1;if(t.endsWith(Al))return this._transitionablePaint.setTransition(t.slice(0,-11),i||void 0),!1;{const c=this._transitionablePaint._values[t],f=c.property.specification["property-type"]==="cross-faded-data-driven",m=c.value.isDataDriven(),v=c.value;this._transitionablePaint.setValue(t,i),this._handleSpecialPaintPropertyUpdate(t);const S=this._transitionablePaint._values[t].value;return S.isDataDriven()||m||f||this._handleOverridablePaintPropertyUpdate(t,v,S)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,i,o){return!1}isHidden(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||this.visibility==="none"}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,i){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,i)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,i)}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),Vn(t,(i,o)=>!(i===void 0||o==="layout"&&!Object.keys(i).length||o==="paint"&&!Object.keys(i).length))}_validate(t,i,o,c,f={}){return(!f||f.validate!==!1)&&yl(this,t.call(Cs,{key:i,layerType:this.type,objectKey:o,value:c,styleSpec:$,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const i=this.paint.get(t);if(i instanceof pi&&xs(i.property.specification)&&(i.value.kind==="source"||i.value.kind==="composite")&&i.value.isStateDependent)return!0}return!1}}const Qc={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Yn{constructor(t,i){this._structArray=t,this._pos1=i*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class br{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,i){return t._trim(),i&&(t.isTransferred=!0,i.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const i=Object.create(this.prototype);return i.arrayBuffer=t.arrayBuffer,i.length=t.length,i.capacity=t.arrayBuffer.byteLength/i.bytesPerElement,i._refreshViews(),i}_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(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const i=this.uint8;this._refreshViews(),i&&this.uint8.set(i)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function hr(n,t=1){let i=0,o=0;return{members:n.map(c=>{const f=Qc[c.type].BYTES_PER_ELEMENT,m=i=Is(i,Math.max(t,f)),v=c.components||1;return o=Math.max(o,f),i+=f*v,{name:c.name,type:c.type,components:v,offset:m}}),size:Is(i,Math.max(o,t)),alignment:t}}function Is(n,t){return Math.ceil(n/t)*t}class mo extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.int16[c+0]=i,this.int16[c+1]=o,t}}mo.prototype.bytesPerElement=4,it("StructArrayLayout2i4",mo);class go extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const f=3*t;return this.int16[f+0]=i,this.int16[f+1]=o,this.int16[f+2]=c,t}}go.prototype.bytesPerElement=6,it("StructArrayLayout3i6",go);class $n extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c){const f=this.length;return this.resize(f+1),this.emplace(f,t,i,o,c)}emplace(t,i,o,c,f){const m=4*t;return this.int16[m+0]=i,this.int16[m+1]=o,this.int16[m+2]=c,this.int16[m+3]=f,t}}$n.prototype.bytesPerElement=8,it("StructArrayLayout4i8",$n);class kl extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m){const v=this.length;return this.resize(v+1),this.emplace(v,t,i,o,c,f,m)}emplace(t,i,o,c,f,m,v){const S=6*t;return this.int16[S+0]=i,this.int16[S+1]=o,this.int16[S+2]=c,this.int16[S+3]=f,this.int16[S+4]=m,this.int16[S+5]=v,t}}kl.prototype.bytesPerElement=12,it("StructArrayLayout2i4i12",kl);class Tl extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m){const v=this.length;return this.resize(v+1),this.emplace(v,t,i,o,c,f,m)}emplace(t,i,o,c,f,m,v){const S=4*t,E=8*t;return this.int16[S+0]=i,this.int16[S+1]=o,this.uint8[E+4]=c,this.uint8[E+5]=f,this.uint8[E+6]=m,this.uint8[E+7]=v,t}}Tl.prototype.bytesPerElement=8,it("StructArrayLayout2i4ub8",Tl);class Ms extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.float32[c+0]=i,this.float32[c+1]=o,t}}Ms.prototype.bytesPerElement=8,it("StructArrayLayout2f8",Ms);class Cl extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m,v,S,E,L){const V=this.length;return this.resize(V+1),this.emplace(V,t,i,o,c,f,m,v,S,E,L)}emplace(t,i,o,c,f,m,v,S,E,L,V){const q=10*t;return this.uint16[q+0]=i,this.uint16[q+1]=o,this.uint16[q+2]=c,this.uint16[q+3]=f,this.uint16[q+4]=m,this.uint16[q+5]=v,this.uint16[q+6]=S,this.uint16[q+7]=E,this.uint16[q+8]=L,this.uint16[q+9]=V,t}}Cl.prototype.bytesPerElement=20,it("StructArrayLayout10ui20",Cl);class u extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m,v,S,E,L,V,q){const H=this.length;return this.resize(H+1),this.emplace(H,t,i,o,c,f,m,v,S,E,L,V,q)}emplace(t,i,o,c,f,m,v,S,E,L,V,q,H){const W=12*t;return this.int16[W+0]=i,this.int16[W+1]=o,this.int16[W+2]=c,this.int16[W+3]=f,this.uint16[W+4]=m,this.uint16[W+5]=v,this.uint16[W+6]=S,this.uint16[W+7]=E,this.int16[W+8]=L,this.int16[W+9]=V,this.int16[W+10]=q,this.int16[W+11]=H,t}}u.prototype.bytesPerElement=24,it("StructArrayLayout4i4ui4i24",u);class e extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const f=3*t;return this.float32[f+0]=i,this.float32[f+1]=o,this.float32[f+2]=c,t}}e.prototype.bytesPerElement=12,it("StructArrayLayout3f12",e);class r extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.uint32[1*t+0]=i,t}}r.prototype.bytesPerElement=4,it("StructArrayLayout1ul4",r);class a extends br{_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(t,i,o,c,f,m,v,S,E){const L=this.length;return this.resize(L+1),this.emplace(L,t,i,o,c,f,m,v,S,E)}emplace(t,i,o,c,f,m,v,S,E,L){const V=10*t,q=5*t;return this.int16[V+0]=i,this.int16[V+1]=o,this.int16[V+2]=c,this.int16[V+3]=f,this.int16[V+4]=m,this.int16[V+5]=v,this.uint32[q+3]=S,this.uint16[V+8]=E,this.uint16[V+9]=L,t}}a.prototype.bytesPerElement=20,it("StructArrayLayout6i1ul2ui20",a);class l extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m){const v=this.length;return this.resize(v+1),this.emplace(v,t,i,o,c,f,m)}emplace(t,i,o,c,f,m,v){const S=6*t;return this.int16[S+0]=i,this.int16[S+1]=o,this.int16[S+2]=c,this.int16[S+3]=f,this.int16[S+4]=m,this.int16[S+5]=v,t}}l.prototype.bytesPerElement=12,it("StructArrayLayout2i2i2i12",l);class p extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f){const m=this.length;return this.resize(m+1),this.emplace(m,t,i,o,c,f)}emplace(t,i,o,c,f,m){const v=4*t,S=8*t;return this.float32[v+0]=i,this.float32[v+1]=o,this.float32[v+2]=c,this.int16[S+6]=f,this.int16[S+7]=m,t}}p.prototype.bytesPerElement=16,it("StructArrayLayout2f1f2i16",p);class g extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,f,m){const v=this.length;return this.resize(v+1),this.emplace(v,t,i,o,c,f,m)}emplace(t,i,o,c,f,m,v){const S=16*t,E=4*t,L=8*t;return this.uint8[S+0]=i,this.uint8[S+1]=o,this.float32[E+1]=c,this.float32[E+2]=f,this.int16[L+6]=m,this.int16[L+7]=v,t}}g.prototype.bytesPerElement=16,it("StructArrayLayout2ub2f2i16",g);class b extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const f=3*t;return this.uint16[f+0]=i,this.uint16[f+1]=o,this.uint16[f+2]=c,t}}b.prototype.bytesPerElement=6,it("StructArrayLayout3ui6",b);class A extends br{_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(t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae){const ve=this.length;return this.resize(ve+1),this.emplace(ve,t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae)}emplace(t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae,ve){const he=24*t,j=12*t,Y=48*t;return this.int16[he+0]=i,this.int16[he+1]=o,this.uint16[he+2]=c,this.uint16[he+3]=f,this.uint32[j+2]=m,this.uint32[j+3]=v,this.uint32[j+4]=S,this.uint16[he+10]=E,this.uint16[he+11]=L,this.uint16[he+12]=V,this.float32[j+7]=q,this.float32[j+8]=H,this.uint8[Y+36]=W,this.uint8[Y+37]=X,this.uint8[Y+38]=ee,this.uint32[j+10]=ae,this.int16[he+22]=ve,t}}A.prototype.bytesPerElement=48,it("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",A);class I extends br{_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(t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae,ve,he,j,Y,pe,Pe,je,Me,Be,Ge,He){const Je=this.length;return this.resize(Je+1),this.emplace(Je,t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae,ve,he,j,Y,pe,Pe,je,Me,Be,Ge,He)}emplace(t,i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae,ve,he,j,Y,pe,Pe,je,Me,Be,Ge,He,Je){const Oe=32*t,st=16*t;return this.int16[Oe+0]=i,this.int16[Oe+1]=o,this.int16[Oe+2]=c,this.int16[Oe+3]=f,this.int16[Oe+4]=m,this.int16[Oe+5]=v,this.int16[Oe+6]=S,this.int16[Oe+7]=E,this.uint16[Oe+8]=L,this.uint16[Oe+9]=V,this.uint16[Oe+10]=q,this.uint16[Oe+11]=H,this.uint16[Oe+12]=W,this.uint16[Oe+13]=X,this.uint16[Oe+14]=ee,this.uint16[Oe+15]=ae,this.uint16[Oe+16]=ve,this.uint16[Oe+17]=he,this.uint16[Oe+18]=j,this.uint16[Oe+19]=Y,this.uint16[Oe+20]=pe,this.uint16[Oe+21]=Pe,this.uint16[Oe+22]=je,this.uint32[st+12]=Me,this.float32[st+13]=Be,this.float32[st+14]=Ge,this.uint16[Oe+30]=He,this.uint16[Oe+31]=Je,t}}I.prototype.bytesPerElement=64,it("StructArrayLayout8i15ui1ul2f2ui64",I);class z extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.float32[1*t+0]=i,t}}z.prototype.bytesPerElement=4,it("StructArrayLayout1f4",z);class N extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const f=3*t;return this.uint16[6*t+0]=i,this.float32[f+1]=o,this.float32[f+2]=c,t}}N.prototype.bytesPerElement=12,it("StructArrayLayout1ui2f12",N);class O extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const f=4*t;return this.uint32[2*t+0]=i,this.uint16[f+2]=o,this.uint16[f+3]=c,t}}O.prototype.bytesPerElement=8,it("StructArrayLayout1ul2ui8",O);class Z extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.uint16[c+0]=i,this.uint16[c+1]=o,t}}Z.prototype.bytesPerElement=4,it("StructArrayLayout2ui4",Z);class J extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.uint16[1*t+0]=i,t}}J.prototype.bytesPerElement=2,it("StructArrayLayout1ui2",J);class se extends br{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o,c){const f=this.length;return this.resize(f+1),this.emplace(f,t,i,o,c)}emplace(t,i,o,c,f){const m=4*t;return this.float32[m+0]=i,this.float32[m+1]=o,this.float32[m+2]=c,this.float32[m+3]=f,t}}se.prototype.bytesPerElement=16,it("StructArrayLayout4f16",se);class ne extends Yn{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 C(this.anchorPointX,this.anchorPointY)}}ne.prototype.size=20;class oe extends a{get(t){return new ne(this,t)}}it("CollisionBoxArray",oe);class ue extends Yn{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(t){this._structArray.uint8[this._pos1+37]=t}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}ue.prototype.size=48;class me extends A{get(t){return new ue(this,t)}}it("PlacedSymbolArray",me);class fe extends Yn{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(t){this._structArray.uint32[this._pos4+12]=t}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]}}fe.prototype.size=64;class ge extends I{get(t){return new fe(this,t)}}it("SymbolInstanceArray",ge);class xe extends z{getoffsetX(t){return this.float32[1*t+0]}}it("GlyphOffsetArray",xe);class _e extends go{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}it("SymbolLineVertexArray",_e);class Ee extends Yn{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]}}Ee.prototype.size=12;class Fe extends N{get(t){return new Ee(this,t)}}it("TextAnchorOffsetArray",Fe);class Le extends Yn{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]}}Le.prototype.size=8;class Re extends O{get(t){return new Le(this,t)}}it("FeatureIndexArray",Re);class De extends mo{}class Ye extends mo{}class Qe extends mo{}class We extends kl{}class ot extends Tl{}class Et extends Ms{}class Ot extends Cl{}class pr extends u{}class Qt extends e{}class dr extends r{}class fr extends l{}class tr extends g{}class Ht extends b{}class Br extends Z{}const Ur=hr([{name:"a_pos",components:2,type:"Int16"}],4),{members:Qr}=Ur;class Wt{constructor(t=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=t}prepareSegment(t,i,o,c){const f=this.segments[this.segments.length-1];return t>Wt.MAX_VERTEX_ARRAY_LENGTH&&Gr(`Max vertices per segment is ${Wt.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${Wt.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!f||f.vertexLength+t>Wt.MAX_VERTEX_ARRAY_LENGTH||f.sortKey!==c?this.createNewSegment(i,o,c):f}createNewSegment(t,i,o){const c={vertexOffset:t.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0,vaos:{}};return o!==void 0&&(c.sortKey=o),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(c),c}getOrCreateLatestSegment(t,i,o){return this.prepareSegment(0,t,i,o)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const t of this.segments)for(const i in t.vaos)t.vaos[i].destroy()}static simpleSegment(t,i,o,c){return new Wt([{vertexOffset:t,primitiveOffset:i,vertexLength:o,primitiveLength:c,vaos:{},sortKey:0}])}}function Cn(n,t){return 256*(n=Dr(Math.floor(n),0,255))+Dr(Math.floor(t),0,255)}Wt.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,it("SegmentVector",Wt);const an=hr([{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"}]);var En,es,yo,Pn={exports:{}},ts={exports:{}},Ti={exports:{}},In=function(){if(yo)return Pn.exports;yo=1;var n=(En||(En=1,ts.exports=function(i,o){var c,f,m,v,S,E,L,V;for(f=i.length-(c=3&i.length),m=o,S=3432918353,E=461845907,V=0;V<f;)L=255&i.charCodeAt(V)|(255&i.charCodeAt(++V))<<8|(255&i.charCodeAt(++V))<<16|(255&i.charCodeAt(++V))<<24,++V,m=27492+(65535&(v=5*(65535&(m=(m^=L=(65535&(L=(L=(65535&L)*S+(((L>>>16)*S&65535)<<16)&4294967295)<<15|L>>>17))*E+(((L>>>16)*E&65535)<<16)&4294967295)<<13|m>>>19))+((5*(m>>>16)&65535)<<16)&4294967295))+((58964+(v>>>16)&65535)<<16);switch(L=0,c){case 3:L^=(255&i.charCodeAt(V+2))<<16;case 2:L^=(255&i.charCodeAt(V+1))<<8;case 1:m^=L=(65535&(L=(L=(65535&(L^=255&i.charCodeAt(V)))*S+(((L>>>16)*S&65535)<<16)&4294967295)<<15|L>>>17))*E+(((L>>>16)*E&65535)<<16)&4294967295}return m^=i.length,m=2246822507*(65535&(m^=m>>>16))+((2246822507*(m>>>16)&65535)<<16)&4294967295,m=3266489909*(65535&(m^=m>>>13))+((3266489909*(m>>>16)&65535)<<16)&4294967295,(m^=m>>>16)>>>0}),ts.exports),t=(es||(es=1,Ti.exports=function(i,o){for(var c,f=i.length,m=o^f,v=0;f>=4;)c=1540483477*(65535&(c=255&i.charCodeAt(v)|(255&i.charCodeAt(++v))<<8|(255&i.charCodeAt(++v))<<16|(255&i.charCodeAt(++v))<<24))+((1540483477*(c>>>16)&65535)<<16),m=1540483477*(65535&m)+((1540483477*(m>>>16)&65535)<<16)^(c=1540483477*(65535&(c^=c>>>24))+((1540483477*(c>>>16)&65535)<<16)),f-=4,++v;switch(f){case 3:m^=(255&i.charCodeAt(v+2))<<16;case 2:m^=(255&i.charCodeAt(v+1))<<8;case 1:m=1540483477*(65535&(m^=255&i.charCodeAt(v)))+((1540483477*(m>>>16)&65535)<<16)}return m=1540483477*(65535&(m^=m>>>13))+((1540483477*(m>>>16)&65535)<<16),(m^=m>>>15)>>>0}),Ti.exports);return Pn.exports=n,Pn.exports.murmur3=n,Pn.exports.murmur2=t,Pn.exports}(),dn=B(In);class Mn{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,i,o,c){this.ids.push(Ir(t)),this.positions.push(i,o,c)}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const i=Ir(t);let o=0,c=this.ids.length-1;for(;o<c;){const m=o+c>>1;this.ids[m]>=i?c=m:o=m+1}const f=[];for(;this.ids[o]===i;)f.push({index:this.positions[3*o],start:this.positions[3*o+1],end:this.positions[3*o+2]}),o++;return f}static serialize(t,i){const o=new Float64Array(t.ids),c=new Uint32Array(t.positions);return Mr(o,c,0,o.length-1),i&&i.push(o.buffer,c.buffer),{ids:o,positions:c}}static deserialize(t){const i=new Mn;return i.ids=t.ids,i.positions=t.positions,i.indexed=!0,i}}function Ir(n){const t=+n;return!isNaN(t)&&t<=Number.MAX_SAFE_INTEGER?t:dn(String(n))}function Mr(n,t,i,o){for(;i<o;){const c=n[i+o>>1];let f=i-1,m=o+1;for(;;){do f++;while(n[f]<c);do m--;while(n[m]>c);if(f>=m)break;di(n,f,m),di(t,3*f,3*m),di(t,3*f+1,3*m+1),di(t,3*f+2,3*m+2)}m-i<o-m?(Mr(n,t,i,m),i=m+1):(Mr(n,t,m+1,o),o=m)}}function di(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}it("FeaturePositionMap",Mn);class sr{constructor(t,i){this.gl=t.gl,this.location=i}}class ya extends sr{constructor(t,i){super(t,i),this.current=0}set(t){this.current!==t&&(this.current=t,this.gl.uniform1f(this.location,t))}}class Yc extends sr{constructor(t,i){super(t,i),this.current=[0,0,0,0]}set(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]&&t[3]===this.current[3]||(this.current=t,this.gl.uniform4f(this.location,t[0],t[1],t[2],t[3]))}}class $c extends sr{constructor(t,i){super(t,i),this.current=Vt.transparent}set(t){t.r===this.current.r&&t.g===this.current.g&&t.b===this.current.b&&t.a===this.current.a||(this.current=t,this.gl.uniform4f(this.location,t.r,t.g,t.b,t.a))}}const qh=new Float32Array(16);function El(n){return[Cn(255*n.r,255*n.g),Cn(255*n.b,255*n.a)]}class _o{constructor(t,i,o){this.value=t,this.uniformNames=i.map(c=>`u_${c}`),this.type=o}setUniform(t,i,o){t.set(o.constantOr(this.value))}getBinding(t,i,o){return this.type==="color"?new $c(t,i):new ya(t,i)}}class Vi{constructor(t,i){this.uniformNames=i.map(o=>`u_${o}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,i){this.pixelRatioFrom=i.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=i.tlbr,this.patternTo=t.tlbr}setUniform(t,i,o,c){const f=c==="u_pattern_to"?this.patternTo:c==="u_pattern_from"?this.patternFrom:c==="u_pixel_ratio_to"?this.pixelRatioTo:c==="u_pixel_ratio_from"?this.pixelRatioFrom:null;f&&t.set(f)}getBinding(t,i,o){return o.substr(0,9)==="u_pattern"?new Yc(t,i):new ya(t,i)}}class ln{constructor(t,i,o,c){this.expression=t,this.type=o,this.maxValue=0,this.paintVertexAttributes=i.map(f=>({name:`a_${f}`,type:"Float32",components:o==="color"?2:1,offset:0})),this.paintVertexArray=new c}populatePaintArray(t,i,o,c,f){const m=this.paintVertexArray.length,v=this.expression.evaluate(new nr(0),i,{},c,[],f);this.paintVertexArray.resize(t),this._setPaintValue(m,t,v)}updatePaintArray(t,i,o,c){const f=this.expression.evaluate({zoom:0},o,c);this._setPaintValue(t,i,f)}_setPaintValue(t,i,o){if(this.type==="color"){const c=El(o);for(let f=t;f<i;f++)this.paintVertexArray.emplace(f,c[0],c[1])}else{for(let c=t;c<i;c++)this.paintVertexArray.emplace(c,o);this.maxValue=Math.max(this.maxValue,Math.abs(o))}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class Fi{constructor(t,i,o,c,f,m){this.expression=t,this.uniformNames=i.map(v=>`u_${v}_t`),this.type=o,this.useIntegerZoom=c,this.zoom=f,this.maxValue=0,this.paintVertexAttributes=i.map(v=>({name:`a_${v}`,type:"Float32",components:o==="color"?4:2,offset:0})),this.paintVertexArray=new m}populatePaintArray(t,i,o,c,f){const m=this.expression.evaluate(new nr(this.zoom),i,{},c,[],f),v=this.expression.evaluate(new nr(this.zoom+1),i,{},c,[],f),S=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(S,t,m,v)}updatePaintArray(t,i,o,c){const f=this.expression.evaluate({zoom:this.zoom},o,c),m=this.expression.evaluate({zoom:this.zoom+1},o,c);this._setPaintValue(t,i,f,m)}_setPaintValue(t,i,o,c){if(this.type==="color"){const f=El(o),m=El(c);for(let v=t;v<i;v++)this.paintVertexArray.emplace(v,f[0],f[1],m[0],m[1])}else{for(let f=t;f<i;f++)this.paintVertexArray.emplace(f,o,c);this.maxValue=Math.max(this.maxValue,Math.abs(o),Math.abs(c))}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(t,i){const o=this.useIntegerZoom?Math.floor(i.zoom):i.zoom,c=Dr(this.expression.interpolationFactor(o,this.zoom,this.zoom+1),0,1);t.set(c)}getBinding(t,i,o){return new ya(t,i)}}class fn{constructor(t,i,o,c,f,m){this.expression=t,this.type=i,this.useIntegerZoom=o,this.zoom=c,this.layerId=m,this.zoomInPaintVertexArray=new f,this.zoomOutPaintVertexArray=new f}populatePaintArray(t,i,o){const c=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(t),this.zoomOutPaintVertexArray.resize(t),this._setPaintValues(c,t,i.patterns&&i.patterns[this.layerId],o)}updatePaintArray(t,i,o,c,f){this._setPaintValues(t,i,o.patterns&&o.patterns[this.layerId],f)}_setPaintValues(t,i,o,c){if(!c||!o)return;const{min:f,mid:m,max:v}=o,S=c[f],E=c[m],L=c[v];if(S&&E&&L)for(let V=t;V<i;V++)this.zoomInPaintVertexArray.emplace(V,E.tl[0],E.tl[1],E.br[0],E.br[1],S.tl[0],S.tl[1],S.br[0],S.br[1],E.pixelRatio,S.pixelRatio),this.zoomOutPaintVertexArray.emplace(V,E.tl[0],E.tl[1],E.br[0],E.br[1],L.tl[0],L.tl[1],L.br[0],L.br[1],E.pixelRatio,L.pixelRatio)}upload(t){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=t.createVertexBuffer(this.zoomInPaintVertexArray,an.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=t.createVertexBuffer(this.zoomOutPaintVertexArray,an.members,this.expression.isStateDependent))}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()}}class _a{constructor(t,i,o){this.binders={},this._buffers=[];const c=[];for(const f in t.paint._values){if(!o(f))continue;const m=t.paint.get(f);if(!(m instanceof pi&&xs(m.property.specification)))continue;const v=Pl(f,t.type),S=m.value,E=m.property.specification.type,L=m.property.useIntegerZoom,V=m.property.specification["property-type"],q=V==="cross-faded"||V==="cross-faded-data-driven";if(S.kind==="constant")this.binders[f]=q?new Vi(S.value,v):new _o(S.value,v,E),c.push(`/u_${f}`);else if(S.kind==="source"||q){const H=md(f,E,"source");this.binders[f]=q?new fn(S,E,L,i,H,t.id):new ln(S,v,E,H),c.push(`/a_${f}`)}else{const H=md(f,E,"composite");this.binders[f]=new Fi(S,v,E,L,i,H),c.push(`/z_${f}`)}}this.cacheKey=c.sort().join("")}getMaxValue(t){const i=this.binders[t];return i instanceof ln||i instanceof Fi?i.maxValue:0}populatePaintArrays(t,i,o,c,f){for(const m in this.binders){const v=this.binders[m];(v instanceof ln||v instanceof Fi||v instanceof fn)&&v.populatePaintArray(t,i,o,c,f)}}setConstantPatternPositions(t,i){for(const o in this.binders){const c=this.binders[o];c instanceof Vi&&c.setConstantPatternPositions(t,i)}}updatePaintArrays(t,i,o,c,f){let m=!1;for(const v in t){const S=i.getPositions(v);for(const E of S){const L=o.feature(E.index);for(const V in this.binders){const q=this.binders[V];if((q instanceof ln||q instanceof Fi||q instanceof fn)&&q.expression.isStateDependent===!0){const H=c.paint.get(V);q.expression=H.value,q.updatePaintArray(E.start,E.end,L,t[v],f),m=!0}}}}return m}defines(){const t=[];for(const i in this.binders){const o=this.binders[i];(o instanceof _o||o instanceof Vi)&&t.push(...o.uniformNames.map(c=>`#define HAS_UNIFORM_${c}`))}return t}getBinderAttributes(){const t=[];for(const i in this.binders){const o=this.binders[i];if(o instanceof ln||o instanceof Fi)for(let c=0;c<o.paintVertexAttributes.length;c++)t.push(o.paintVertexAttributes[c].name);else if(o instanceof fn)for(let c=0;c<an.members.length;c++)t.push(an.members[c].name)}return t}getBinderUniforms(){const t=[];for(const i in this.binders){const o=this.binders[i];if(o instanceof _o||o instanceof Vi||o instanceof Fi)for(const c of o.uniformNames)t.push(c)}return t}getPaintVertexBuffers(){return this._buffers}getUniforms(t,i){const o=[];for(const c in this.binders){const f=this.binders[c];if(f instanceof _o||f instanceof Vi||f instanceof Fi){for(const m of f.uniformNames)if(i[m]){const v=f.getBinding(t,i[m],m);o.push({name:m,property:c,binding:v})}}}return o}setUniforms(t,i,o,c){for(const{name:f,property:m,binding:v}of i)this.binders[m].setUniform(v,c,o.get(m),f)}updatePaintBuffers(t){this._buffers=[];for(const i in this.binders){const o=this.binders[i];if(t&&o instanceof fn){const c=t.fromScale===2?o.zoomInPaintVertexBuffer:o.zoomOutPaintVertexBuffer;c&&this._buffers.push(c)}else(o instanceof ln||o instanceof Fi)&&o.paintVertexBuffer&&this._buffers.push(o.paintVertexBuffer)}}upload(t){for(const i in this.binders){const o=this.binders[i];(o instanceof ln||o instanceof Fi||o instanceof fn)&&o.upload(t)}this.updatePaintBuffers()}destroy(){for(const t in this.binders){const i=this.binders[t];(i instanceof ln||i instanceof Fi||i instanceof fn)&&i.destroy()}}}class Ln{constructor(t,i,o=()=>!0){this.programConfigurations={};for(const c of t)this.programConfigurations[c.id]=new _a(c,i,o);this.needsUpload=!1,this._featureMap=new Mn,this._bufferOffset=0}populatePaintArrays(t,i,o,c,f,m){for(const v in this.programConfigurations)this.programConfigurations[v].populatePaintArrays(t,i,c,f,m);i.id!==void 0&&this._featureMap.add(i.id,o,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,i,o,c){for(const f of o)this.needsUpload=this.programConfigurations[f.id].updatePaintArrays(t,this._featureMap,i,f,c)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const i in this.programConfigurations)this.programConfigurations[i].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}function Pl(n,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-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"]}[n]||[n.replace(`${t}-`,"").replace(/-/g,"_")]}function md(n,t,i){const o={color:{source:Ms,composite:se},number:{source:z,composite:Ms}},c=function(f){return{"line-pattern":{source:Ot,composite:Ot},"fill-pattern":{source:Ot,composite:Ot},"fill-extrusion-pattern":{source:Ot,composite:Ot}}[f]}(n);return c&&c[i]||o[t][i]}it("ConstantBinder",_o),it("CrossFadedConstantBinder",Vi),it("SourceExpressionBinder",ln),it("CrossFadedCompositeBinder",fn),it("CompositeExpressionBinder",Fi),it("ProgramConfiguration",_a,{omit:["_buffers"]}),it("ProgramConfigurationSet",Ln);const Uh=Math.pow(2,14)-1,gd=-Uh-1;function vo(n){const t=Zt/n.extent,i=n.loadGeometry();for(let o=0;o<i.length;o++){const c=i[o];for(let f=0;f<c.length;f++){const m=c[f],v=Math.round(m.x*t),S=Math.round(m.y*t);m.x=Dr(v,gd,Uh),m.y=Dr(S,gd,Uh),(v<m.x||v>m.x+1||S<m.y||S>m.y+1)&&Gr("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return i}function xo(n,t){return{type:n.type,id:n.id,properties:n.properties,geometry:t?vo(n):[]}}const yd=-32768;function by(n,t,i,o,c){n.emplaceBack(yd+8*t+o,yd+8*i+c)}class jh{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ye,this.indexArray=new Ht,this.segments=new Wt,this.programConfigurations=new Ln(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){const c=this.layers[0],f=[];let m=null,v=!1,S=c.type==="heatmap";if(c.type==="circle"){const L=c;m=L.layout.get("circle-sort-key"),v=!m.isConstant(),S=S||L.paint.get("circle-pitch-alignment")==="map"}const E=S?i.subdivisionGranularity.circle:1;for(const{feature:L,id:V,index:q,sourceLayerIndex:H}of t){const W=this.layers[0]._featureFilter.needGeometry,X=xo(L,W);if(!this.layers[0]._featureFilter.filter(new nr(this.zoom),X,o))continue;const ee=v?m.evaluate(X,{},o):void 0,ae={id:V,properties:L.properties,type:L.type,sourceLayerIndex:H,index:q,geometry:W?X.geometry:vo(L),patterns:{},sortKey:ee};f.push(ae)}v&&f.sort((L,V)=>L.sortKey-V.sortKey);for(const L of f){const{geometry:V,index:q,sourceLayerIndex:H}=L,W=t[q].feature;this.addFeature(L,V,q,o,E),i.featureIndex.insert(W,V,q,H,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Qr),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(t,i,o,c,f=1){let m;switch(f){case 1:m=[0,7];break;case 3:m=[0,2,5,7];break;case 5:m=[0,1,3,4,6,7];break;case 7:m=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${f}; valid values are 1, 3, 5, 7.`)}const v=m.length;for(const S of i)for(const E of S){const L=E.x,V=E.y;if(L<0||L>=Zt||V<0||V>=Zt)continue;const q=this.segments.prepareSegment(v*v,this.layoutVertexArray,this.indexArray,t.sortKey),H=q.vertexLength;for(let W=0;W<v;W++)for(let X=0;X<v;X++)by(this.layoutVertexArray,L,V,m[X],m[W]);for(let W=0;W<v-1;W++)for(let X=0;X<v-1;X++){const ee=H+W*v+X,ae=H+(W+1)*v+X;this.indexArray.emplaceBack(ee,ae+1,ee+1),this.indexArray.emplaceBack(ee,ae,ae+1)}q.vertexLength+=v*v,q.primitiveLength+=(v-1)*(v-1)*2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,{},c)}}function _d(n,t){for(let i=0;i<n.length;i++)if(bo(t,n[i]))return!0;for(let i=0;i<t.length;i++)if(bo(n,t[i]))return!0;return!!Hh(n,t)}function wy(n,t,i){return!!bo(n,t)||!!Wh(t,n,i)}function vd(n,t){if(n.length===1)return bd(t,n[0]);for(let i=0;i<t.length;i++){const o=t[i];for(let c=0;c<o.length;c++)if(bo(n,o[c]))return!0}for(let i=0;i<n.length;i++)if(bd(t,n[i]))return!0;for(let i=0;i<t.length;i++)if(Hh(n,t[i]))return!0;return!1}function Sy(n,t,i){if(n.length>1){if(Hh(n,t))return!0;for(let o=0;o<t.length;o++)if(Wh(t[o],n,i))return!0}for(let o=0;o<n.length;o++)if(Wh(n[o],t,i))return!0;return!1}function Hh(n,t){if(n.length===0||t.length===0)return!1;for(let i=0;i<n.length-1;i++){const o=n[i],c=n[i+1];for(let f=0;f<t.length-1;f++)if(Ay(o,c,t[f],t[f+1]))return!0}return!1}function Ay(n,t,i,o){return Ke(n,i,o)!==Ke(t,i,o)&&Ke(n,t,i)!==Ke(n,t,o)}function Wh(n,t,i){const o=i*i;if(t.length===1)return n.distSqr(t[0])<o;for(let c=1;c<t.length;c++)if(xd(n,t[c-1],t[c])<o)return!0;return!1}function xd(n,t,i){const o=t.distSqr(i);if(o===0)return n.distSqr(t);const c=((n.x-t.x)*(i.x-t.x)+(n.y-t.y)*(i.y-t.y))/o;return n.distSqr(c<0?t:c>1?i:i.sub(t)._mult(c)._add(t))}function bd(n,t){for(let i=0;i<n.length;i++)if(bo(n[i],t))return!0;return!1}function bo(n,t){let i=!1;for(let o=0,c=n.length-1;o<n.length;c=o++){const f=n[o],m=n[c];f.y>t.y!=m.y>t.y&&t.x<(m.x-f.x)*(t.y-f.y)/(m.y-f.y)+f.x&&(i=!i)}return i}function ky(n,t,i){const o=i[0],c=i[2];if(n.x<o.x&&t.x<o.x||n.x>c.x&&t.x>c.x||n.y<o.y&&t.y<o.y||n.y>c.y&&t.y>c.y)return!1;const f=Ke(n,t,i[0]);return f!==Ke(n,t,i[1])||f!==Ke(n,t,i[2])||f!==Ke(n,t,i[3])}function Il(n,t,i){const o=t.paint.get(n).value;return o.kind==="constant"?o.value:i.programConfigurations.get(t.id).getMaxValue(n)}function eu(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function tu(n,t,i,o,c){if(!t[0]&&!t[1])return n;const f=C.convert(t)._mult(c);i==="viewport"&&f._rotate(-o);const m=[];for(let v=0;v<n.length;v++)m.push(n[v].sub(f));return m}let wd,Sd;it("CircleBucket",jh,{omit:["layers"]});var Ty={get paint(){return Sd=Sd||new Pr({"circle-radius":new ft($.paint_circle["circle-radius"]),"circle-color":new ft($.paint_circle["circle-color"]),"circle-blur":new ft($.paint_circle["circle-blur"]),"circle-opacity":new ft($.paint_circle["circle-opacity"]),"circle-translate":new ct($.paint_circle["circle-translate"]),"circle-translate-anchor":new ct($.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new ct($.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new ct($.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new ft($.paint_circle["circle-stroke-width"]),"circle-stroke-color":new ft($.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new ft($.paint_circle["circle-stroke-opacity"])})},get layout(){return wd=wd||new Pr({"circle-sort-key":new ft($.layout_circle["circle-sort-key"])})}};class Cy extends Bi{constructor(t){super(t,Ty)}createBucket(t){return new jh(t)}queryRadius(t){const i=t;return Il("circle-radius",this,i)+Il("circle-stroke-width",this,i)+eu(this.paint.get("circle-translate"))}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:f,pixelsToTileUnits:m,unwrappedTileID:v,getElevation:S}){const E=tu(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),-f.bearingInRadians,m),L=this.paint.get("circle-radius").evaluate(i,o)+this.paint.get("circle-stroke-width").evaluate(i,o),V=this.paint.get("circle-pitch-alignment")==="map",q=V?E:function(W,X,ee,ae){return W.map(ve=>Ad(ve,X,ee,ae))}(E,f,v,S),H=V?L*m:L;for(const W of c)for(const X of W){const ee=V?X:Ad(X,f,v,S);let ae=H;const ve=f.projectTileCoordinates(X.x,X.y,v,S).signedDistanceFromCamera;if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ae*=ve/f.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ae*=f.cameraToCenterDistance/ve),wy(q,ee,ae))return!0}return!1}}function Ad(n,t,i,o){const c=t.projectTileCoordinates(n.x,n.y,i,o).point;return new C((.5*c.x+.5)*t.width,(.5*-c.y+.5)*t.height)}class kd extends jh{}let Td;it("HeatmapBucket",kd,{omit:["layers"]});var Ey={get paint(){return Td=Td||new Pr({"heatmap-radius":new ft($.paint_heatmap["heatmap-radius"]),"heatmap-weight":new ft($.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new ct($.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Sl($.paint_heatmap["heatmap-color"]),"heatmap-opacity":new ct($.paint_heatmap["heatmap-opacity"])})}};function Zh(n,{width:t,height:i},o,c){if(c){if(c instanceof Uint8ClampedArray)c=new Uint8Array(c.buffer);else if(c.length!==t*i*o)throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*i*o}`)}else c=new Uint8Array(t*i*o);return n.width=t,n.height=i,n.data=c,n}function Cd(n,{width:t,height:i},o){if(t===n.width&&i===n.height)return;const c=Zh({},{width:t,height:i},o);Kh(n,c,{x:0,y:0},{x:0,y:0},{width:Math.min(n.width,t),height:Math.min(n.height,i)},o),n.width=t,n.height=i,n.data=c.data}function Kh(n,t,i,o,c,f){if(c.width===0||c.height===0)return t;if(c.width>n.width||c.height>n.height||i.x>n.width-c.width||i.y>n.height-c.height)throw new RangeError("out of range source coordinates for image copy");if(c.width>t.width||c.height>t.height||o.x>t.width-c.width||o.y>t.height-c.height)throw new RangeError("out of range destination coordinates for image copy");const m=n.data,v=t.data;if(m===v)throw new Error("srcData equals dstData, so image is already copied");for(let S=0;S<c.height;S++){const E=((i.y+S)*n.width+i.x)*f,L=((o.y+S)*t.width+o.x)*f;for(let V=0;V<c.width*f;V++)v[L+V]=m[E+V]}return t}class Ml{constructor(t,i){Zh(this,t,1,i)}resize(t){Cd(this,t,1)}clone(){return new Ml({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,i,o,c,f){Kh(t,i,o,c,f,1)}}class Ki{constructor(t,i){Zh(this,t,4,i)}resize(t){Cd(this,t,4)}replace(t,i){i?this.data.set(t):this.data=t instanceof Uint8ClampedArray?new Uint8Array(t.buffer):t}clone(){return new Ki({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,i,o,c,f){Kh(t,i,o,c,f,4)}}function Ed(n){const t={},i=n.resolution||256,o=n.clips?n.clips.length:1,c=n.image||new Ki({width:i,height:o});if(Math.log(i)/Math.LN2%1!=0)throw new Error(`width is not a power of 2 - ${i}`);const f=(m,v,S)=>{t[n.evaluationKey]=S;const E=n.expression.evaluate(t);c.data[m+v+0]=Math.floor(255*E.r/E.a),c.data[m+v+1]=Math.floor(255*E.g/E.a),c.data[m+v+2]=Math.floor(255*E.b/E.a),c.data[m+v+3]=Math.floor(255*E.a)};if(n.clips)for(let m=0,v=0;m<o;++m,v+=4*i)for(let S=0,E=0;S<i;S++,E+=4){const L=S/(i-1),{start:V,end:q}=n.clips[m];f(v,E,V*(1-L)+q*L)}else for(let m=0,v=0;m<i;m++,v+=4)f(0,v,m/(i-1));return c}it("AlphaImage",Ml),it("RGBAImage",Ki);const Gh="big-fb";class Py extends Bi{createBucket(t){return new kd(t)}constructor(t){super(t,Ey),this.heatmapFbos=new Map,this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(t){t==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=Ed({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbos.has(Gh)&&this.heatmapFbos.delete(Gh)}queryRadius(){return 0}queryIntersectsFeature(){return!1}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}}let Pd;var Iy={get paint(){return Pd=Pd||new Pr({"hillshade-illumination-direction":new ct($.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-altitude":new ct($.paint_hillshade["hillshade-illumination-altitude"]),"hillshade-illumination-anchor":new ct($.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new ct($.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new ct($.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new ct($.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new ct($.paint_hillshade["hillshade-accent-color"]),"hillshade-method":new ct($.paint_hillshade["hillshade-method"])})}};class My extends Bi{constructor(t){super(t,Iy),this.recalculate({zoom:0,zoomHistory:{}},void 0)}getIlluminationProperties(){let t=this.paint.get("hillshade-illumination-direction").values,i=this.paint.get("hillshade-illumination-altitude").values,o=this.paint.get("hillshade-highlight-color").values,c=this.paint.get("hillshade-shadow-color").values;const f=Math.max(t.length,i.length,o.length,c.length);t=t.concat(Array(f-t.length).fill(t.at(-1))),i=i.concat(Array(f-i.length).fill(i.at(-1))),o=o.concat(Array(f-o.length).fill(o.at(-1))),c=c.concat(Array(f-c.length).fill(c.at(-1)));const m=i.map(Sr);return{directionRadians:t.map(Sr),altitudeRadians:m,shadowColor:c,highlightColor:o}}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}}const Ly=hr([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ry}=Ly;function Jh(n,t,i){const o=i.patternDependencies;let c=!1;for(const f of t){const m=f.paint.get(`${n}-pattern`);m.isConstant()||(c=!0);const v=m.constantOr(null);v&&(c=!0,o[v.to]=!0,o[v.from]=!0)}return c}function Xh(n,t,i,o,c){const f=c.patternDependencies;for(const m of t){const v=m.paint.get(`${n}-pattern`).value;if(v.kind!=="constant"){let S=v.evaluate({zoom:o-1},i,{},c.availableImages),E=v.evaluate({zoom:o},i,{},c.availableImages),L=v.evaluate({zoom:o+1},i,{},c.availableImages);S=S&&S.name?S.name:S,E=E&&E.name?E.name:E,L=L&&L.name?L.name:L,f[S]=!0,f[E]=!0,f[L]=!0,i.patterns[m.id]={min:S,mid:E,max:L}}}return i}function Id(n,t,i,o,c){let f;if(c===function(m,v,S,E){let L=0;for(let V=v,q=S-E;V<S;V+=E)L+=(m[q]-m[V])*(m[V+1]+m[q+1]),q=V;return L}(n,t,i,o)>0)for(let m=t;m<i;m+=o)f=Dd(m/o|0,n[m],n[m+1],f);else for(let m=i-o;m>=t;m-=o)f=Dd(m/o|0,n[m],n[m+1],f);return f&&va(f,f.next)&&(zl(f),f=f.next),f}function wo(n,t){if(!n)return n;t||(t=n);let i,o=n;do if(i=!1,o.steiner||!va(o,o.next)&&Cr(o.prev,o,o.next)!==0)o=o.next;else{if(zl(o),o=t=o.prev,o===o.next)break;i=!0}while(i||o!==t);return t}function Ll(n,t,i,o,c,f,m){if(!n)return;!m&&f&&function(S,E,L,V){let q=S;do q.z===0&&(q.z=Qh(q.x,q.y,E,L,V)),q.prevZ=q.prev,q.nextZ=q.next,q=q.next;while(q!==S);q.prevZ.nextZ=null,q.prevZ=null,function(H){let W,X=1;do{let ee,ae=H;H=null;let ve=null;for(W=0;ae;){W++;let he=ae,j=0;for(let pe=0;pe<X&&(j++,he=he.nextZ,he);pe++);let Y=X;for(;j>0||Y>0&&he;)j!==0&&(Y===0||!he||ae.z<=he.z)?(ee=ae,ae=ae.nextZ,j--):(ee=he,he=he.nextZ,Y--),ve?ve.nextZ=ee:H=ee,ee.prevZ=ve,ve=ee;ae=he}ve.nextZ=null,X*=2}while(W>1)}(q)}(n,o,c,f);let v=n;for(;n.prev!==n.next;){const S=n.prev,E=n.next;if(f?zy(n,o,c,f):Dy(n))t.push(S.i,n.i,E.i),zl(n),n=E.next,v=E.next;else if((n=E)===v){m?m===1?Ll(n=By(wo(n),t),t,i,o,c,f,2):m===2&&Vy(n,t,i,o,c,f):Ll(wo(n),t,i,o,c,f,1);break}}}function Dy(n){const t=n.prev,i=n,o=n.next;if(Cr(t,i,o)>=0)return!1;const c=t.x,f=i.x,m=o.x,v=t.y,S=i.y,E=o.y,L=Math.min(c,f,m),V=Math.min(v,S,E),q=Math.max(c,f,m),H=Math.max(v,S,E);let W=o.next;for(;W!==t;){if(W.x>=L&&W.x<=q&&W.y>=V&&W.y<=H&&Rl(c,v,f,S,m,E,W.x,W.y)&&Cr(W.prev,W,W.next)>=0)return!1;W=W.next}return!0}function zy(n,t,i,o){const c=n.prev,f=n,m=n.next;if(Cr(c,f,m)>=0)return!1;const v=c.x,S=f.x,E=m.x,L=c.y,V=f.y,q=m.y,H=Math.min(v,S,E),W=Math.min(L,V,q),X=Math.max(v,S,E),ee=Math.max(L,V,q),ae=Qh(H,W,t,i,o),ve=Qh(X,ee,t,i,o);let he=n.prevZ,j=n.nextZ;for(;he&&he.z>=ae&&j&&j.z<=ve;){if(he.x>=H&&he.x<=X&&he.y>=W&&he.y<=ee&&he!==c&&he!==m&&Rl(v,L,S,V,E,q,he.x,he.y)&&Cr(he.prev,he,he.next)>=0||(he=he.prevZ,j.x>=H&&j.x<=X&&j.y>=W&&j.y<=ee&&j!==c&&j!==m&&Rl(v,L,S,V,E,q,j.x,j.y)&&Cr(j.prev,j,j.next)>=0))return!1;j=j.nextZ}for(;he&&he.z>=ae;){if(he.x>=H&&he.x<=X&&he.y>=W&&he.y<=ee&&he!==c&&he!==m&&Rl(v,L,S,V,E,q,he.x,he.y)&&Cr(he.prev,he,he.next)>=0)return!1;he=he.prevZ}for(;j&&j.z<=ve;){if(j.x>=H&&j.x<=X&&j.y>=W&&j.y<=ee&&j!==c&&j!==m&&Rl(v,L,S,V,E,q,j.x,j.y)&&Cr(j.prev,j,j.next)>=0)return!1;j=j.nextZ}return!0}function By(n,t){let i=n;do{const o=i.prev,c=i.next.next;!va(o,c)&&Ld(o,i,i.next,c)&&Dl(o,c)&&Dl(c,o)&&(t.push(o.i,i.i,c.i),zl(i),zl(i.next),i=n=c),i=i.next}while(i!==n);return wo(i)}function Vy(n,t,i,o,c,f){let m=n;do{let v=m.next.next;for(;v!==m.prev;){if(m.i!==v.i&&Uy(m,v)){let S=Rd(m,v);return m=wo(m,m.next),S=wo(S,S.next),Ll(m,t,i,o,c,f,0),void Ll(S,t,i,o,c,f,0)}v=v.next}m=m.next}while(m!==n)}function Fy(n,t){let i=n.x-t.x;return i===0&&(i=n.y-t.y,i===0)&&(i=(n.next.y-n.y)/(n.next.x-n.x)-(t.next.y-t.y)/(t.next.x-t.x)),i}function Oy(n,t){const i=function(c,f){let m=f;const v=c.x,S=c.y;let E,L=-1/0;if(va(c,m))return m;do{if(va(c,m.next))return m.next;if(S<=m.y&&S>=m.next.y&&m.next.y!==m.y){const X=m.x+(S-m.y)*(m.next.x-m.x)/(m.next.y-m.y);if(X<=v&&X>L&&(L=X,E=m.x<m.next.x?m:m.next,X===v))return E}m=m.next}while(m!==f);if(!E)return null;const V=E,q=E.x,H=E.y;let W=1/0;m=E;do{if(v>=m.x&&m.x>=q&&v!==m.x&&Md(S<H?v:L,S,q,H,S<H?L:v,S,m.x,m.y)){const X=Math.abs(S-m.y)/(v-m.x);Dl(m,c)&&(X<W||X===W&&(m.x>E.x||m.x===E.x&&Ny(E,m)))&&(E=m,W=X)}m=m.next}while(m!==V);return E}(n,t);if(!i)return t;const o=Rd(i,n);return wo(o,o.next),wo(i,i.next)}function Ny(n,t){return Cr(n.prev,n,t.prev)<0&&Cr(t.next,n,n.next)<0}function Qh(n,t,i,o,c){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-i)*c|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-o)*c|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function qy(n){let t=n,i=n;do(t.x<i.x||t.x===i.x&&t.y<i.y)&&(i=t),t=t.next;while(t!==n);return i}function Md(n,t,i,o,c,f,m,v){return(c-m)*(t-v)>=(n-m)*(f-v)&&(n-m)*(o-v)>=(i-m)*(t-v)&&(i-m)*(f-v)>=(c-m)*(o-v)}function Rl(n,t,i,o,c,f,m,v){return!(n===m&&t===v)&&Md(n,t,i,o,c,f,m,v)}function Uy(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function(i,o){let c=i;do{if(c.i!==i.i&&c.next.i!==i.i&&c.i!==o.i&&c.next.i!==o.i&&Ld(c,c.next,i,o))return!0;c=c.next}while(c!==i);return!1}(n,t)&&(Dl(n,t)&&Dl(t,n)&&function(i,o){let c=i,f=!1;const m=(i.x+o.x)/2,v=(i.y+o.y)/2;do c.y>v!=c.next.y>v&&c.next.y!==c.y&&m<(c.next.x-c.x)*(v-c.y)/(c.next.y-c.y)+c.x&&(f=!f),c=c.next;while(c!==i);return f}(n,t)&&(Cr(n.prev,n,t.prev)||Cr(n,t.prev,t))||va(n,t)&&Cr(n.prev,n,n.next)>0&&Cr(t.prev,t,t.next)>0)}function Cr(n,t,i){return(t.y-n.y)*(i.x-t.x)-(t.x-n.x)*(i.y-t.y)}function va(n,t){return n.x===t.x&&n.y===t.y}function Ld(n,t,i,o){const c=iu(Cr(n,t,i)),f=iu(Cr(n,t,o)),m=iu(Cr(i,o,n)),v=iu(Cr(i,o,t));return c!==f&&m!==v||!(c!==0||!ru(n,i,t))||!(f!==0||!ru(n,o,t))||!(m!==0||!ru(i,n,o))||!(v!==0||!ru(i,t,o))}function ru(n,t,i){return t.x<=Math.max(n.x,i.x)&&t.x>=Math.min(n.x,i.x)&&t.y<=Math.max(n.y,i.y)&&t.y>=Math.min(n.y,i.y)}function iu(n){return n>0?1:n<0?-1:0}function Dl(n,t){return Cr(n.prev,n,n.next)<0?Cr(n,t,n.next)>=0&&Cr(n,n.prev,t)>=0:Cr(n,t,n.prev)<0||Cr(n,n.next,t)<0}function Rd(n,t){const i=Yh(n.i,n.x,n.y),o=Yh(t.i,t.x,t.y),c=n.next,f=t.prev;return n.next=t,t.prev=n,i.next=c,c.prev=i,o.next=i,i.prev=o,f.next=o,o.prev=f,o}function Dd(n,t,i,o){const c=Yh(n,t,i);return o?(c.next=o.next,c.prev=o,o.next.prev=c,o.next=c):(c.prev=c,c.next=c),c}function zl(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function Yh(n,t,i){return{i:n,x:t,y:i,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class xa{constructor(t,i){if(i>t)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=t,this._minGranularity=i}getGranularityForZoomLevel(t){return Math.max(Math.floor(this._baseZoomGranularity/(1<<t)),this._minGranularity,1)}}class nu{constructor(t){this.fill=t.fill,this.line=t.line,this.tile=t.tile,this.stencil=t.stencil,this.circle=t.circle}}nu.noSubdivision=new nu({fill:new xa(0,0),line:new xa(0,0),tile:new xa(0,0),stencil:new xa(0,0),circle:1}),it("SubdivisionGranularityExpression",xa),it("SubdivisionGranularitySetting",nu);const ba=-32768,Bl=32767;class jy{constructor(t,i){this._vertexBuffer=[],this._vertexDictionary=new Map,this._used=!1,this._granularity=t,this._granularityCellSize=Zt/t,this._canonical=i}_getKey(t,i){return(t+=32768)<<16|(i+=32768)<<0}_vertexToIndex(t,i){if(t<-32768||i<-32768||t>32767||i>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const o=0|Math.round(t),c=0|Math.round(i),f=this._getKey(o,c);if(this._vertexDictionary.has(f))return this._vertexDictionary.get(f);const m=this._vertexBuffer.length/2;return this._vertexDictionary.set(f,m),this._vertexBuffer.push(o,c),m}_subdivideTrianglesScanline(t){if(this._granularity<2)return function(c,f){const m=[];for(let v=0;v<f.length;v+=3){const S=f[v],E=f[v+1],L=f[v+2],V=c[2*S],q=c[2*S+1];(c[2*E]-V)*(c[2*L+1]-q)-(c[2*E+1]-q)*(c[2*L]-V)>0?(m.push(S),m.push(L),m.push(E)):(m.push(S),m.push(E),m.push(L))}return m}(this._vertexBuffer,t);const i=[],o=t.length;for(let c=0;c<o;c+=3){const f=[t[c+0],t[c+1],t[c+2]],m=[this._vertexBuffer[2*t[c+0]+0],this._vertexBuffer[2*t[c+0]+1],this._vertexBuffer[2*t[c+1]+0],this._vertexBuffer[2*t[c+1]+1],this._vertexBuffer[2*t[c+2]+0],this._vertexBuffer[2*t[c+2]+1]];let v=1/0,S=1/0,E=-1/0,L=-1/0;for(let X=0;X<3;X++){const ee=m[2*X],ae=m[2*X+1];v=Math.min(v,ee),E=Math.max(E,ee),S=Math.min(S,ae),L=Math.max(L,ae)}if(v===E||S===L)continue;const V=Math.floor(v/this._granularityCellSize),q=Math.ceil(E/this._granularityCellSize),H=Math.floor(S/this._granularityCellSize),W=Math.ceil(L/this._granularityCellSize);if(V!==q||H!==W)for(let X=H;X<W;X++){const ee=this._scanlineGenerateVertexRingForCellRow(X,m,f);Hy(this._vertexBuffer,ee,i)}else i.push(...f)}return i}_scanlineGenerateVertexRingForCellRow(t,i,o){const c=t*this._granularityCellSize,f=c+this._granularityCellSize,m=[];for(let v=0;v<3;v++){const S=i[2*v],E=i[2*v+1],L=i[2*(v+1)%6],V=i[(2*(v+1)+1)%6],q=i[2*(v+2)%6],H=i[(2*(v+2)+1)%6],W=L-S,X=V-E,ee=W===0,ae=X===0,ve=(c-E)/X,he=(f-E)/X,j=Math.min(ve,he),Y=Math.max(ve,he);if(!ae&&(j>=1||Y<=0)||ae&&(E<c||E>f)){V>=c&&V<=f&&m.push(o[(v+1)%3]);continue}!ae&&j>0&&m.push(this._vertexToIndex(S+W*j,E+X*j));const pe=S+W*Math.max(j,0),Pe=S+W*Math.min(Y,1);ee||this._generateIntraEdgeVertices(m,S,E,L,V,pe,Pe),!ae&&Y<1&&m.push(this._vertexToIndex(S+W*Y,E+X*Y)),(ae||V>=c&&V<=f)&&m.push(o[(v+1)%3]),!ae&&(V<=c||V>=f)&&this._generateInterEdgeVertices(m,S,E,L,V,q,H,Pe,c,f)}return m}_generateIntraEdgeVertices(t,i,o,c,f,m,v){const S=c-i,E=f-o,L=E===0,V=L?Math.min(i,c):Math.min(m,v),q=L?Math.max(i,c):Math.max(m,v),H=Math.floor(V/this._granularityCellSize)+1,W=Math.ceil(q/this._granularityCellSize)-1;if(L?i<c:m<v)for(let X=H;X<=W;X++){const ee=X*this._granularityCellSize;t.push(this._vertexToIndex(ee,o+E*(ee-i)/S))}else for(let X=W;X>=H;X--){const ee=X*this._granularityCellSize;t.push(this._vertexToIndex(ee,o+E*(ee-i)/S))}}_generateInterEdgeVertices(t,i,o,c,f,m,v,S,E,L){const V=f-o,q=m-c,H=v-f,W=(E-f)/H,X=(L-f)/H,ee=Math.min(W,X),ae=Math.max(W,X),ve=c+q*ee;let he=Math.floor(Math.min(ve,S)/this._granularityCellSize)+1,j=Math.ceil(Math.max(ve,S)/this._granularityCellSize)-1,Y=S<ve;const pe=H===0;if(pe&&(v===E||v===L))return;if(pe||ee>=1||ae<=0){const je=o-v,Me=m+(i-m)*Math.min((E-v)/je,(L-v)/je);he=Math.floor(Math.min(Me,S)/this._granularityCellSize)+1,j=Math.ceil(Math.max(Me,S)/this._granularityCellSize)-1,Y=S<Me}const Pe=V>0?L:E;if(Y)for(let je=he;je<=j;je++)t.push(this._vertexToIndex(je*this._granularityCellSize,Pe));else for(let je=j;je>=he;je--)t.push(this._vertexToIndex(je*this._granularityCellSize,Pe))}_generateOutline(t){const i=[];for(const o of t){const c=So(o,this._granularity,!0),f=this._pointArrayToIndices(c),m=[];for(let v=1;v<f.length;v++)m.push(f[v-1]),m.push(f[v]);i.push(m)}return i}_handlePoles(t){let i=!1,o=!1;this._canonical&&(this._canonical.y===0&&(i=!0),this._canonical.y===(1<<this._canonical.z)-1&&(o=!0)),(i||o)&&this._fillPoles(t,i,o)}_ensureNoPoleVertices(){const t=this._vertexBuffer;for(let i=0;i<t.length;i+=2){const o=t[i+1];o===ba&&(t[i+1]=-32767),o===Bl&&(t[i+1]=32766)}}_generatePoleQuad(t,i,o,c,f,m){c>f!=(m===ba)?(t.push(i),t.push(o),t.push(this._vertexToIndex(c,m)),t.push(o),t.push(this._vertexToIndex(f,m)),t.push(this._vertexToIndex(c,m))):(t.push(o),t.push(i),t.push(this._vertexToIndex(c,m)),t.push(this._vertexToIndex(f,m)),t.push(o),t.push(this._vertexToIndex(c,m)))}_fillPoles(t,i,o){const c=this._vertexBuffer,f=Zt,m=t.length;for(let v=2;v<m;v+=3){const S=t[v-2],E=t[v-1],L=t[v],V=c[2*S],q=c[2*S+1],H=c[2*E],W=c[2*E+1],X=c[2*L],ee=c[2*L+1];i&&(q===0&&W===0&&this._generatePoleQuad(t,S,E,V,H,ba),W===0&&ee===0&&this._generatePoleQuad(t,E,L,H,X,ba),ee===0&&q===0&&this._generatePoleQuad(t,L,S,X,V,ba)),o&&(q===f&&W===f&&this._generatePoleQuad(t,S,E,V,H,Bl),W===f&&ee===f&&this._generatePoleQuad(t,E,L,H,X,Bl),ee===f&&q===f&&this._generatePoleQuad(t,L,S,X,V,Bl))}}_initializeVertices(t){for(let i=0;i<t.length;i+=2)this._vertexToIndex(t[i],t[i+1])}subdividePolygonInternal(t,i){if(this._used)throw new Error("Subdivision: multiple use not allowed.");this._used=!0;const{flattened:o,holeIndices:c}=function(v){const S=[],E=[];for(const L of v)if(L.length!==0){L!==v[0]&&S.push(E.length/2);for(let V=0;V<L.length;V++)E.push(L[V].x),E.push(L[V].y)}return{flattened:E,holeIndices:S}}(t);let f;this._initializeVertices(o);try{const v=function(E,L,V=2){const q=L&&L.length,H=q?L[0]*V:E.length;let W=Id(E,0,H,V,!0);const X=[];if(!W||W.next===W.prev)return X;let ee,ae,ve;if(q&&(W=function(he,j,Y,pe){const Pe=[];for(let je=0,Me=j.length;je<Me;je++){const Be=Id(he,j[je]*pe,je<Me-1?j[je+1]*pe:he.length,pe,!1);Be===Be.next&&(Be.steiner=!0),Pe.push(qy(Be))}Pe.sort(Fy);for(let je=0;je<Pe.length;je++)Y=Oy(Pe[je],Y);return Y}(E,L,W,V)),E.length>80*V){ee=1/0,ae=1/0;let he=-1/0,j=-1/0;for(let Y=V;Y<H;Y+=V){const pe=E[Y],Pe=E[Y+1];pe<ee&&(ee=pe),Pe<ae&&(ae=Pe),pe>he&&(he=pe),Pe>j&&(j=Pe)}ve=Math.max(he-ee,j-ae),ve=ve!==0?32767/ve:0}return Ll(W,X,V,ee,ae,ve,0),X}(o,c),S=this._convertIndices(o,v);f=this._subdivideTrianglesScanline(S)}catch(v){console.error(v)}let m=[];return i&&(m=this._generateOutline(t)),this._ensureNoPoleVertices(),this._handlePoles(f),{verticesFlattened:this._vertexBuffer,indicesTriangles:f,indicesLineList:m}}_convertIndices(t,i){const o=[];for(let c=0;c<i.length;c++)o.push(this._vertexToIndex(t[2*i[c]],t[2*i[c]+1]));return o}_pointArrayToIndices(t){const i=[];for(let o=0;o<t.length;o++){const c=t[o];i.push(this._vertexToIndex(c.x,c.y))}return i}}function zd(n,t,i,o=!0){return new jy(i,t).subdividePolygonInternal(n,o)}function So(n,t,i=!1){if(!n||n.length<1)return[];if(n.length<2)return[];const o=n[0],c=n[n.length-1],f=i&&(o.x!==c.x||o.y!==c.y);if(t<2)return f?[...n,n[0]]:[...n];const m=Math.floor(Zt/t),v=[];v.push(new C(n[0].x,n[0].y));const S=n.length,E=f?S:S-1;for(let L=0;L<E;L++){const V=n[L],q=L<S-1?n[L+1]:n[0],H=V.x,W=V.y,X=q.x,ee=q.y,ae=H!==X,ve=W!==ee;if(!ae&&!ve)continue;const he=X-H,j=ee-W,Y=Math.abs(he),pe=Math.abs(j);let Pe=H,je=W;for(;;){const Be=he>0?(Math.floor(Pe/m)+1)*m:(Math.ceil(Pe/m)-1)*m,Ge=j>0?(Math.floor(je/m)+1)*m:(Math.ceil(je/m)-1)*m,He=Math.abs(Pe-Be),Je=Math.abs(je-Ge),Oe=Math.abs(Pe-X),st=Math.abs(je-ee),pt=ae?He/Y:Number.POSITIVE_INFINITY,ut=ve?Je/pe:Number.POSITIVE_INFINITY;if((Oe<=He||!ae)&&(st<=Je||!ve))break;if(pt<ut&&ae||!ve){Pe=Be,je+=j*pt;const at=new C(Pe,Math.round(je));v[v.length-1].x===at.x&&v[v.length-1].y===at.y||v.push(at)}else{Pe+=he*ut,je=Ge;const at=new C(Math.round(Pe),je);v[v.length-1].x===at.x&&v[v.length-1].y===at.y||v.push(at)}}const Me=new C(X,ee);v[v.length-1].x===Me.x&&v[v.length-1].y===Me.y||v.push(Me)}return v}function Hy(n,t,i){if(t.length===0)throw new Error("Subdivision vertex ring is empty.");let o=0,c=n[2*t[0]];for(let S=1;S<t.length;S++){const E=n[2*t[S]];E<c&&(c=E,o=S)}const f=t.length;let m=o,v=(m+1)%f;for(;;){const S=m-1>=0?m-1:f-1,E=(v+1)%f,L=n[2*t[S]],V=n[2*t[E]],q=n[2*t[m]],H=n[2*t[m]+1],W=n[2*t[v]+1];let X=!1;if(L<V)X=!0;else if(L>V)X=!1;else{const ee=W-H,ae=-(n[2*t[v]]-q),ve=H<W?1:-1;((L-q)*ee+(n[2*t[S]+1]-H)*ae)*ve>((V-q)*ee+(n[2*t[E]+1]-H)*ae)*ve&&(X=!0)}if(X){const ee=t[S],ae=t[m],ve=t[v];ee!==ae&&ee!==ve&&ae!==ve&&i.push(ve,ae,ee),m--,m<0&&(m=f-1)}else{const ee=t[E],ae=t[m],ve=t[v];ee!==ae&&ee!==ve&&ae!==ve&&i.push(ve,ae,ee),v++,v>=f&&(v=0)}if(S===E)break}}function Bd(n,t,i,o,c,f,m,v,S){const E=c.length/2,L=m&&v&&S;if(E<Wt.MAX_VERTEX_ARRAY_LENGTH){const V=t.prepareSegment(E,i,o),q=V.vertexLength;for(let X=0;X<f.length;X+=3)o.emplaceBack(q+f[X],q+f[X+1],q+f[X+2]);let H,W;V.vertexLength+=E,V.primitiveLength+=f.length/3,L&&(W=m.prepareSegment(E,i,v),H=W.vertexLength,W.vertexLength+=E);for(let X=0;X<c.length;X+=2)n(c[X],c[X+1]);if(L)for(let X=0;X<S.length;X++){const ee=S[X];for(let ae=1;ae<ee.length;ae+=2)v.emplaceBack(H+ee[ae-1],H+ee[ae]);W.primitiveLength+=ee.length/2}}else(function(V,q,H,W,X,ee){const ae=[];for(let pe=0;pe<W.length/2;pe++)ae.push(-1);const ve={count:0};let he=0,j=V.getOrCreateLatestSegment(q,H),Y=j.vertexLength;for(let pe=2;pe<X.length;pe+=3){const Pe=X[pe-2],je=X[pe-1],Me=X[pe];let Be=ae[Pe]<he,Ge=ae[je]<he,He=ae[Me]<he;j.vertexLength+((Be?1:0)+(Ge?1:0)+(He?1:0))>Wt.MAX_VERTEX_ARRAY_LENGTH&&(j=V.createNewSegment(q,H),he=ve.count,Be=!0,Ge=!0,He=!0,Y=0);const Je=Vl(ae,W,ee,ve,Pe,Be,j),Oe=Vl(ae,W,ee,ve,je,Ge,j),st=Vl(ae,W,ee,ve,Me,He,j);H.emplaceBack(Y+Je-he,Y+Oe-he,Y+st-he),j.primitiveLength++}})(t,i,o,c,f,n),L&&function(V,q,H,W,X,ee){const ae=[];for(let pe=0;pe<W.length/2;pe++)ae.push(-1);const ve={count:0};let he=0,j=V.getOrCreateLatestSegment(q,H),Y=j.vertexLength;for(let pe=0;pe<X.length;pe++){const Pe=X[pe];for(let je=1;je<X[pe].length;je+=2){const Me=Pe[je-1],Be=Pe[je];let Ge=ae[Me]<he,He=ae[Be]<he;j.vertexLength+((Ge?1:0)+(He?1:0))>Wt.MAX_VERTEX_ARRAY_LENGTH&&(j=V.createNewSegment(q,H),he=ve.count,Ge=!0,He=!0,Y=0);const Je=Vl(ae,W,ee,ve,Me,Ge,j),Oe=Vl(ae,W,ee,ve,Be,He,j);H.emplaceBack(Y+Je-he,Y+Oe-he),j.primitiveLength++}}}(m,i,v,c,S,n),t.forceNewSegmentOnNextPrepare(),m==null||m.forceNewSegmentOnNextPrepare()}function Vl(n,t,i,o,c,f,m){if(f){const v=o.count;return i(t[2*c],t[2*c+1]),n[c]=o.count,o.count++,m.vertexLength++,v}return n[c]}class $h{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qe,this.indexArray=new Ht,this.indexArray2=new Br,this.programConfigurations=new Ln(t.layers,t.zoom),this.segments=new Wt,this.segments2=new Wt,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.hasPattern=Jh("fill",this.layers,i);const c=this.layers[0].layout.get("fill-sort-key"),f=!c.isConstant(),m=[];for(const{feature:v,id:S,index:E,sourceLayerIndex:L}of t){const V=this.layers[0]._featureFilter.needGeometry,q=xo(v,V);if(!this.layers[0]._featureFilter.filter(new nr(this.zoom),q,o))continue;const H=f?c.evaluate(q,{},o,i.availableImages):void 0,W={id:S,properties:v.properties,type:v.type,sourceLayerIndex:L,index:E,geometry:V?q.geometry:vo(v),patterns:{},sortKey:H};m.push(W)}f&&m.sort((v,S)=>v.sortKey-S.sortKey);for(const v of m){const{geometry:S,index:E,sourceLayerIndex:L}=v;if(this.hasPattern){const V=Xh("fill",this.layers,v,this.zoom,i);this.patternFeatures.push(V)}else this.addFeature(v,S,E,o,{},i.subdivisionGranularity);i.featureIndex.insert(t[E].feature,S,E,L,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}addFeatures(t,i,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,i,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ry),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(t,i,o,c,f,m){for(const v of jo(i,500)){const S=zd(v,c,m.fill.getGranularityForZoomLevel(c.z)),E=this.layoutVertexArray;Bd((L,V)=>{E.emplaceBack(L,V)},this.segments,this.layoutVertexArray,this.indexArray,S.verticesFlattened,S.indicesTriangles,this.segments2,this.indexArray2,S.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,f,c)}}let Vd,Fd;it("FillBucket",$h,{omit:["layers","patternFeatures"]});var Wy={get paint(){return Fd=Fd||new Pr({"fill-antialias":new ct($.paint_fill["fill-antialias"]),"fill-opacity":new ft($.paint_fill["fill-opacity"]),"fill-color":new ft($.paint_fill["fill-color"]),"fill-outline-color":new ft($.paint_fill["fill-outline-color"]),"fill-translate":new ct($.paint_fill["fill-translate"]),"fill-translate-anchor":new ct($.paint_fill["fill-translate-anchor"]),"fill-pattern":new fo($.paint_fill["fill-pattern"])})},get layout(){return Vd=Vd||new Pr({"fill-sort-key":new ft($.layout_fill["fill-sort-key"])})}};class Zy extends Bi{constructor(t){super(t,Wy)}recalculate(t,i){super.recalculate(t,i);const o=this.paint._values["fill-outline-color"];o.value.kind==="constant"&&o.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(t){return new $h(t)}queryRadius(){return eu(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:t,geometry:i,transform:o,pixelsToTileUnits:c}){return vd(tu(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-o.bearingInRadians,c),i)}isTileClipped(){return!0}}const Ky=hr([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),Gy=hr([{name:"a_centroid",components:2,type:"Int16"}],4),{members:Jy}=Ky;var ep,Od,tp,Nd,rp,qd,Ud,su={};function jd(){if(Od)return ep;Od=1;var n=F();function t(c,f,m,v,S){this.properties={},this.extent=m,this.type=0,this._pbf=c,this._geometry=-1,this._keys=v,this._values=S,c.readFields(i,this,f)}function i(c,f,m){c==1?f.id=m.readVarint():c==2?function(v,S){for(var E=v.readVarint()+v.pos;v.pos<E;){var L=S._keys[v.readVarint()],V=S._values[v.readVarint()];S.properties[L]=V}}(m,f):c==3?f.type=m.readVarint():c==4&&(f._geometry=m.pos)}function o(c){for(var f,m,v=0,S=0,E=c.length,L=E-1;S<E;L=S++)v+=((m=c[L]).x-(f=c[S]).x)*(f.y+m.y);return v}return ep=t,t.types=["Unknown","Point","LineString","Polygon"],t.prototype.loadGeometry=function(){var c=this._pbf;c.pos=this._geometry;for(var f,m=c.readVarint()+c.pos,v=1,S=0,E=0,L=0,V=[];c.pos<m;){if(S<=0){var q=c.readVarint();v=7&q,S=q>>3}if(S--,v===1||v===2)E+=c.readSVarint(),L+=c.readSVarint(),v===1&&(f&&V.push(f),f=[]),f.push(new n(E,L));else{if(v!==7)throw new Error("unknown command "+v);f&&f.push(f[0].clone())}}return f&&V.push(f),V},t.prototype.bbox=function(){var c=this._pbf;c.pos=this._geometry;for(var f=c.readVarint()+c.pos,m=1,v=0,S=0,E=0,L=1/0,V=-1/0,q=1/0,H=-1/0;c.pos<f;){if(v<=0){var W=c.readVarint();m=7&W,v=W>>3}if(v--,m===1||m===2)(S+=c.readSVarint())<L&&(L=S),S>V&&(V=S),(E+=c.readSVarint())<q&&(q=E),E>H&&(H=E);else if(m!==7)throw new Error("unknown command "+m)}return[L,q,V,H]},t.prototype.toGeoJSON=function(c,f,m){var v,S,E=this.extent*Math.pow(2,m),L=this.extent*c,V=this.extent*f,q=this.loadGeometry(),H=t.types[this.type];function W(ae){for(var ve=0;ve<ae.length;ve++){var he=ae[ve];ae[ve]=[360*(he.x+L)/E-180,360/Math.PI*Math.atan(Math.exp((180-360*(he.y+V)/E)*Math.PI/180))-90]}}switch(this.type){case 1:var X=[];for(v=0;v<q.length;v++)X[v]=q[v][0];W(q=X);break;case 2:for(v=0;v<q.length;v++)W(q[v]);break;case 3:for(q=function(ae){var ve=ae.length;if(ve<=1)return[ae];for(var he,j,Y=[],pe=0;pe<ve;pe++){var Pe=o(ae[pe]);Pe!==0&&(j===void 0&&(j=Pe<0),j===Pe<0?(he&&Y.push(he),he=[ae[pe]]):he.push(ae[pe]))}return he&&Y.push(he),Y}(q),v=0;v<q.length;v++)for(S=0;S<q[v].length;S++)W(q[v][S])}q.length===1?q=q[0]:H="Multi"+H;var ee={type:"Feature",geometry:{type:H,coordinates:q},properties:this.properties};return"id"in this&&(ee.id=this.id),ee},ep}function Hd(){if(Nd)return tp;Nd=1;var n=jd();function t(o,c){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=o,this._keys=[],this._values=[],this._features=[],o.readFields(i,this,c),this.length=this._features.length}function i(o,c,f){o===15?c.version=f.readVarint():o===1?c.name=f.readString():o===5?c.extent=f.readVarint():o===2?c._features.push(f.pos):o===3?c._keys.push(f.readString()):o===4&&c._values.push(function(m){for(var v=null,S=m.readVarint()+m.pos;m.pos<S;){var E=m.readVarint()>>3;v=E===1?m.readString():E===2?m.readFloat():E===3?m.readDouble():E===4?m.readVarint64():E===5?m.readVarint():E===6?m.readSVarint():E===7?m.readBoolean():null}return v}(f))}return tp=t,t.prototype.feature=function(o){if(o<0||o>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[o];var c=this._pbf.readVarint()+this._pbf.pos;return new n(this._pbf,c,this.extent,this._keys,this._values)},tp}function Wd(){return Ud||(Ud=1,su.VectorTile=function(){if(qd)return rp;qd=1;var n=Hd();function t(i,o,c){if(i===3){var f=new n(c,c.readVarint()+c.pos);f.length&&(o[f.name]=f)}}return rp=function(i,o){this.layers=i.readFields(t,{},o)},rp}(),su.VectorTileFeature=jd(),su.VectorTileLayer=Hd()),su}var Fl=B(Wd());const Xy=Fl.VectorTileFeature.types,ip=Math.pow(2,13);function Ol(n,t,i,o,c,f,m,v){n.emplaceBack(t,i,2*Math.floor(o*ip)+m,c*ip*2,f*ip*2,Math.round(v))}class np{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new We,this.centroidVertexArray=new De,this.indexArray=new Ht,this.programConfigurations=new Ln(t.layers,t.zoom),this.segments=new Wt,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.features=[],this.hasPattern=Jh("fill-extrusion",this.layers,i);for(const{feature:c,id:f,index:m,sourceLayerIndex:v}of t){const S=this.layers[0]._featureFilter.needGeometry,E=xo(c,S);if(!this.layers[0]._featureFilter.filter(new nr(this.zoom),E,o))continue;const L={id:f,sourceLayerIndex:v,index:m,geometry:S?E.geometry:vo(c),properties:c.properties,type:c.type,patterns:{}};this.hasPattern?this.features.push(Xh("fill-extrusion",this.layers,L,this.zoom,i)):this.addFeature(L,L.geometry,m,o,{},i.subdivisionGranularity),i.featureIndex.insert(c,L.geometry,m,v,this.index,!0)}}addFeatures(t,i,o){for(const c of this.features){const{geometry:f}=c;this.addFeature(c,f,c.index,i,o,t.subdivisionGranularity)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Jy),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Gy.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(t,i,o,c,f,m){for(const v of jo(i,500)){const S={x:0,y:0,sampleCount:0},E=this.layoutVertexArray.length;this.processPolygon(S,c,t,v,m);const L=this.layoutVertexArray.length-E,V=Math.floor(S.x/S.sampleCount),q=Math.floor(S.y/S.sampleCount);for(let H=0;H<L;H++)this.centroidVertexArray.emplaceBack(V,q)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,f,c)}processPolygon(t,i,o,c,f){if(c.length<1||Zd(c[0]))return;for(const V of c)V.length!==0&&Qy(t,V);const m={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},v=f.fill.getGranularityForZoomLevel(i.z),S=Xy[o.type]==="Polygon";for(const V of c){if(V.length===0||Zd(V))continue;const q=So(V,v,S);this._generateSideFaces(q,m)}if(!S)return;const E=zd(c,i,v,!1),L=this.layoutVertexArray;Bd((V,q)=>{Ol(L,V,q,0,0,1,1,0)},this.segments,this.layoutVertexArray,this.indexArray,E.verticesFlattened,E.indicesTriangles)}_generateSideFaces(t,i){let o=0;for(let c=1;c<t.length;c++){const f=t[c],m=t[c-1];if(Yy(f,m))continue;i.segment.vertexLength+4>Wt.MAX_VERTEX_ARRAY_LENGTH&&(i.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const v=f.sub(m)._perp()._unit(),S=m.dist(f);o+S>32768&&(o=0),Ol(this.layoutVertexArray,f.x,f.y,v.x,v.y,0,0,o),Ol(this.layoutVertexArray,f.x,f.y,v.x,v.y,0,1,o),o+=S,Ol(this.layoutVertexArray,m.x,m.y,v.x,v.y,0,0,o),Ol(this.layoutVertexArray,m.x,m.y,v.x,v.y,0,1,o);const E=i.segment.vertexLength;this.indexArray.emplaceBack(E,E+2,E+1),this.indexArray.emplaceBack(E+1,E+2,E+3),i.segment.vertexLength+=4,i.segment.primitiveLength+=2}}}function Qy(n,t){for(let i=0;i<t.length;i++){const o=t[i];i===t.length-1&&t[0].x===o.x&&t[0].y===o.y||(n.x+=o.x,n.y+=o.y,n.sampleCount++)}}function Yy(n,t){return n.x===t.x&&(n.x<0||n.x>Zt)||n.y===t.y&&(n.y<0||n.y>Zt)}function Zd(n){return n.every(t=>t.x<0)||n.every(t=>t.x>Zt)||n.every(t=>t.y<0)||n.every(t=>t.y>Zt)}let Kd;it("FillExtrusionBucket",np,{omit:["layers","features"]});var $y={get paint(){return Kd=Kd||new Pr({"fill-extrusion-opacity":new ct($["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new ft($["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new ct($["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new ct($["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new fo($["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new ft($["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new ft($["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new ct($["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class e_ extends Bi{constructor(t){super(t,$y)}createBucket(t){return new np(t)}queryRadius(){return eu(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:f,pixelsToTileUnits:m,pixelPosMatrix:v}){const S=tu(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-f.bearingInRadians,m),E=this.paint.get("fill-extrusion-height").evaluate(i,o),L=this.paint.get("fill-extrusion-base").evaluate(i,o),V=function(H,W,X){const ee=[];for(const ae of H){const ve=[ae.x,ae.y,0,1];Mt(ve,ve,W),ee.push(new C(ve[0]/ve[3],ve[1]/ve[3]))}return ee}(S,v),q=function(H,W,X,ee){const ae=[],ve=[],he=ee[8]*W,j=ee[9]*W,Y=ee[10]*W,pe=ee[11]*W,Pe=ee[8]*X,je=ee[9]*X,Me=ee[10]*X,Be=ee[11]*X;for(const Ge of H){const He=[],Je=[];for(const Oe of Ge){const st=Oe.x,pt=Oe.y,ut=ee[0]*st+ee[4]*pt+ee[12],at=ee[1]*st+ee[5]*pt+ee[13],zt=ee[2]*st+ee[6]*pt+ee[14],wr=ee[3]*st+ee[7]*pt+ee[15],Fr=zt+Y,oi=wr+pe,Ji=ut+Pe,Ei=at+je,Yr=zt+Me,mr=wr+Be,jr=new C((ut+he)/oi,(at+j)/oi);jr.z=Fr/oi,He.push(jr);const $r=new C(Ji/mr,Ei/mr);$r.z=Yr/mr,Je.push($r)}ae.push(He),ve.push(Je)}return[ae,ve]}(c,L,E,v);return function(H,W,X){let ee=1/0;vd(X,W)&&(ee=Gd(X,W[0]));for(let ae=0;ae<W.length;ae++){const ve=W[ae],he=H[ae];for(let j=0;j<ve.length-1;j++){const Y=ve[j],pe=[Y,ve[j+1],he[j+1],he[j],Y];_d(X,pe)&&(ee=Math.min(ee,Gd(X,pe)))}}return ee!==1/0&&ee}(q[0],q[1],V)}}function Nl(n,t){return n.x*t.x+n.y*t.y}function Gd(n,t){if(n.length===1){let i=0;const o=t[i++];let c;for(;!c||o.equals(c);)if(c=t[i++],!c)return 1/0;for(;i<t.length;i++){const f=t[i],m=n[0],v=c.sub(o),S=f.sub(o),E=m.sub(o),L=Nl(v,v),V=Nl(v,S),q=Nl(S,S),H=Nl(E,v),W=Nl(E,S),X=L*q-V*V,ee=(q*H-V*W)/X,ae=(L*W-V*H)/X,ve=o.z*(1-ee-ae)+c.z*ee+f.z*ae;if(isFinite(ve))return ve}return 1/0}{let i=1/0;for(const o of t)i=Math.min(i,o.z);return i}}const t_=hr([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4),{members:r_}=t_,i_=hr([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]),{members:n_}=i_,s_=Fl.VectorTileFeature.types,o_=Math.cos(Math.PI/180*37.5),Jd=Math.pow(2,14)/.5;class sp{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new ot,this.layoutVertexArray2=new Et,this.indexArray=new Ht,this.programConfigurations=new Ln(t.layers,t.zoom),this.segments=new Wt,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.hasPattern=Jh("line",this.layers,i);const c=this.layers[0].layout.get("line-sort-key"),f=!c.isConstant(),m=[];for(const{feature:v,id:S,index:E,sourceLayerIndex:L}of t){const V=this.layers[0]._featureFilter.needGeometry,q=xo(v,V);if(!this.layers[0]._featureFilter.filter(new nr(this.zoom),q,o))continue;const H=f?c.evaluate(q,{},o):void 0,W={id:S,properties:v.properties,type:v.type,sourceLayerIndex:L,index:E,geometry:V?q.geometry:vo(v),patterns:{},sortKey:H};m.push(W)}f&&m.sort((v,S)=>v.sortKey-S.sortKey);for(const v of m){const{geometry:S,index:E,sourceLayerIndex:L}=v;if(this.hasPattern){const V=Xh("line",this.layers,v,this.zoom,i);this.patternFeatures.push(V)}else this.addFeature(v,S,E,o,{},i.subdivisionGranularity);i.featureIndex.insert(t[E].feature,S,E,L,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}addFeatures(t,i,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,i,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,n_)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,r_),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,i,o,c,f,m){const v=this.layers[0].layout,S=v.get("line-join").evaluate(t,{}),E=v.get("line-cap"),L=v.get("line-miter-limit"),V=v.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const q of i)this.addLine(q,t,S,E,L,V,c,m);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,f,c)}addLine(t,i,o,c,f,m,v,S){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,t=So(t,v?S.line.getGranularityForZoomLevel(v.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let he=0;he<t.length-1;he++)this.totalDistance+=t[he].dist(t[he+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}const E=s_[i.type]==="Polygon";let L=t.length;for(;L>=2&&t[L-1].equals(t[L-2]);)L--;let V=0;for(;V<L-1&&t[V].equals(t[V+1]);)V++;if(L<(E?3:2))return;o==="bevel"&&(f=1.05);const q=this.overscaling<=16?15*Zt/(512*this.overscaling):0,H=this.segments.prepareSegment(10*L,this.layoutVertexArray,this.indexArray);let W,X,ee,ae,ve;this.e1=this.e2=-1,E&&(W=t[L-2],ve=t[V].sub(W)._unit()._perp());for(let he=V;he<L;he++){if(ee=he===L-1?E?t[V+1]:void 0:t[he+1],ee&&t[he].equals(ee))continue;ve&&(ae=ve),W&&(X=W),W=t[he],ve=ee?ee.sub(W)._unit()._perp():ae,ae=ae||ve;let j=ae.add(ve);j.x===0&&j.y===0||j._unit();const Y=ae.x*ve.x+ae.y*ve.y,pe=j.x*ve.x+j.y*ve.y,Pe=pe!==0?1/pe:1/0,je=2*Math.sqrt(2-2*pe),Me=pe<o_&&X&&ee,Be=ae.x*ve.y-ae.y*ve.x>0;if(Me&&he>V){const Je=W.dist(X);if(Je>2*q){const Oe=W.sub(W.sub(X)._mult(q/Je)._round());this.updateDistance(X,Oe),this.addCurrentVertex(Oe,ae,0,0,H),X=Oe}}const Ge=X&&ee;let He=Ge?o:E?"butt":c;if(Ge&&He==="round"&&(Pe<m?He="miter":Pe<=2&&(He="fakeround")),He==="miter"&&Pe>f&&(He="bevel"),He==="bevel"&&(Pe>2&&(He="flipbevel"),Pe<f&&(He="miter")),X&&this.updateDistance(X,W),He==="miter")j._mult(Pe),this.addCurrentVertex(W,j,0,0,H);else if(He==="flipbevel"){if(Pe>100)j=ve.mult(-1);else{const Je=Pe*ae.add(ve).mag()/ae.sub(ve).mag();j._perp()._mult(Je*(Be?-1:1))}this.addCurrentVertex(W,j,0,0,H),this.addCurrentVertex(W,j.mult(-1),0,0,H)}else if(He==="bevel"||He==="fakeround"){const Je=-Math.sqrt(Pe*Pe-1),Oe=Be?Je:0,st=Be?0:Je;if(X&&this.addCurrentVertex(W,ae,Oe,st,H),He==="fakeround"){const pt=Math.round(180*je/Math.PI/20);for(let ut=1;ut<pt;ut++){let at=ut/pt;if(at!==.5){const wr=at-.5;at+=at*wr*(at-1)*((1.0904+Y*(Y*(3.55645-1.43519*Y)-3.2452))*wr*wr+(.848013+Y*(.215638*Y-1.06021)))}const zt=ve.sub(ae)._mult(at)._add(ae)._unit()._mult(Be?-1:1);this.addHalfVertex(W,zt.x,zt.y,!1,Be,0,H)}}ee&&this.addCurrentVertex(W,ve,-Oe,-st,H)}else if(He==="butt")this.addCurrentVertex(W,j,0,0,H);else if(He==="square"){const Je=X?1:-1;this.addCurrentVertex(W,j,Je,Je,H)}else He==="round"&&(X&&(this.addCurrentVertex(W,ae,0,0,H),this.addCurrentVertex(W,ae,1,1,H,!0)),ee&&(this.addCurrentVertex(W,ve,-1,-1,H,!0),this.addCurrentVertex(W,ve,0,0,H)));if(Me&&he<L-1){const Je=W.dist(ee);if(Je>2*q){const Oe=W.add(ee.sub(W)._mult(q/Je)._round());this.updateDistance(W,Oe),this.addCurrentVertex(Oe,ve,0,0,H),W=Oe}}}}addCurrentVertex(t,i,o,c,f,m=!1){const v=i.y*c-i.x,S=-i.y-i.x*c;this.addHalfVertex(t,i.x+i.y*o,i.y-i.x*o,m,!1,o,f),this.addHalfVertex(t,v,S,m,!0,-c,f),this.distance>Jd/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,i,o,c,f,m))}addHalfVertex({x:t,y:i},o,c,f,m,v,S){const E=.5*(this.lineClips?this.scaledDistance*(Jd-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(f?1:0),(i<<1)+(m?1:0),Math.round(63*o)+128,Math.round(63*c)+128,1+(v===0?0:v<0?-1:1)|(63&E)<<2,E>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const L=S.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,L,this.e2),S.primitiveLength++),m?this.e2=L:this.e1=L}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(t,i){this.distance+=t.dist(i),this.updateScaledDistance()}}let Xd,Qd;it("LineBucket",sp,{omit:["layers","patternFeatures"]});var Yd={get paint(){return Qd=Qd||new Pr({"line-opacity":new ft($.paint_line["line-opacity"]),"line-color":new ft($.paint_line["line-color"]),"line-translate":new ct($.paint_line["line-translate"]),"line-translate-anchor":new ct($.paint_line["line-translate-anchor"]),"line-width":new ft($.paint_line["line-width"]),"line-gap-width":new ft($.paint_line["line-gap-width"]),"line-offset":new ft($.paint_line["line-offset"]),"line-blur":new ft($.paint_line["line-blur"]),"line-dasharray":new wl($.paint_line["line-dasharray"]),"line-pattern":new fo($.paint_line["line-pattern"]),"line-gradient":new Sl($.paint_line["line-gradient"])})},get layout(){return Xd=Xd||new Pr({"line-cap":new ct($.layout_line["line-cap"]),"line-join":new ft($.layout_line["line-join"]),"line-miter-limit":new ct($.layout_line["line-miter-limit"]),"line-round-limit":new ct($.layout_line["line-round-limit"]),"line-sort-key":new ft($.layout_line["line-sort-key"])})}};class a_ extends ft{possiblyEvaluate(t,i){return i=new nr(Math.floor(i.zoom),{now:i.now,fadeDuration:i.fadeDuration,zoomHistory:i.zoomHistory,transition:i.transition}),super.possiblyEvaluate(t,i)}evaluate(t,i,o,c){return i=ai({},i,{zoom:Math.floor(i.zoom)}),super.evaluate(t,i,o,c)}}let ou;class l_ extends Bi{constructor(t){super(t,Yd),this.gradientVersion=0,ou||(ou=new a_(Yd.paint.properties["line-width"].specification),ou.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(t){if(t==="line-gradient"){const i=this.gradientExpression();this.stepInterpolant=!!function(o){return o._styleExpression!==void 0}(i)&&i._styleExpression.expression instanceof An,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,i){super.recalculate(t,i),this.paint._values["line-floorwidth"]=ou.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t)}createBucket(t){return new sp(t)}queryRadius(t){const i=t,o=$d(Il("line-width",this,i),Il("line-gap-width",this,i)),c=Il("line-offset",this,i);return o/2+Math.abs(c)+eu(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:f,pixelsToTileUnits:m}){const v=tu(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-f.bearingInRadians,m),S=m/2*$d(this.paint.get("line-width").evaluate(i,o),this.paint.get("line-gap-width").evaluate(i,o)),E=this.paint.get("line-offset").evaluate(i,o);return E&&(c=function(L,V){const q=[];for(let H=0;H<L.length;H++){const W=L[H],X=[];for(let ee=0;ee<W.length;ee++){const ae=W[ee-1],ve=W[ee],he=W[ee+1],j=ee===0?new C(0,0):ve.sub(ae)._unit()._perp(),Y=ee===W.length-1?new C(0,0):he.sub(ve)._unit()._perp(),pe=j._add(Y)._unit(),Pe=pe.x*Y.x+pe.y*Y.y;Pe!==0&&pe._mult(1/Pe),X.push(pe._mult(V)._add(ve))}q.push(X)}return q}(c,E*m)),function(L,V,q){for(let H=0;H<V.length;H++){const W=V[H];if(L.length>=3){for(let X=0;X<W.length;X++)if(bo(L,W[X]))return!0}if(Sy(L,W,q))return!0}return!1}(v,c,S)}isTileClipped(){return!0}}function $d(n,t){return t>0?t+2*n:n}const c_=hr([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),u_=hr([{name:"a_projected_pos",components:3,type:"Float32"}],4);hr([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const h_=hr([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);hr([{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 ef=hr([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),p_=hr([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function d_(n,t,i){return n.sections.forEach(o=>{o.text=function(c,f,m){const v=f.layout.get("text-transform").evaluate(m,{});return v==="uppercase"?c=c.toLocaleUpperCase():v==="lowercase"&&(c=c.toLocaleLowerCase()),pn.applyArabicShaping&&(c=pn.applyArabicShaping(c)),c}(o.text,t,i)}),n}hr([{name:"triangle",components:3,type:"Uint16"}]),hr([{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"}]),hr([{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"}]),hr([{type:"Float32",name:"offsetX"}]),hr([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),hr([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const ql={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var tf,op,rf,Vr=24,ap={};function f_(){return tf||(tf=1,ap.read=function(n,t,i,o,c){var f,m,v=8*c-o-1,S=(1<<v)-1,E=S>>1,L=-7,V=i?c-1:0,q=i?-1:1,H=n[t+V];for(V+=q,f=H&(1<<-L)-1,H>>=-L,L+=v;L>0;f=256*f+n[t+V],V+=q,L-=8);for(m=f&(1<<-L)-1,f>>=-L,L+=o;L>0;m=256*m+n[t+V],V+=q,L-=8);if(f===0)f=1-E;else{if(f===S)return m?NaN:1/0*(H?-1:1);m+=Math.pow(2,o),f-=E}return(H?-1:1)*m*Math.pow(2,f-o)},ap.write=function(n,t,i,o,c,f){var m,v,S,E=8*f-c-1,L=(1<<E)-1,V=L>>1,q=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,H=o?0:f-1,W=o?1:-1,X=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(v=isNaN(t)?1:0,m=L):(m=Math.floor(Math.log(t)/Math.LN2),t*(S=Math.pow(2,-m))<1&&(m--,S*=2),(t+=m+V>=1?q/S:q*Math.pow(2,1-V))*S>=2&&(m++,S/=2),m+V>=L?(v=0,m=L):m+V>=1?(v=(t*S-1)*Math.pow(2,c),m+=V):(v=t*Math.pow(2,V-1)*Math.pow(2,c),m=0));c>=8;n[i+H]=255&v,H+=W,v/=256,c-=8);for(m=m<<c|v,E+=c;E>0;n[i+H]=255&m,H+=W,m/=256,E-=8);n[i+H-W]|=128*X}),ap}function nf(){if(rf)return op;rf=1,op=t;var n=f_();function t(j){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(j)?j:new Uint8Array(j||0),this.pos=0,this.type=0,this.length=this.buf.length}t.Varint=0,t.Fixed64=1,t.Bytes=2,t.Fixed32=5;var i=4294967296,o=1/i,c=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");function f(j){return j.type===t.Bytes?j.readVarint()+j.pos:j.pos+1}function m(j,Y,pe){return pe?4294967296*Y+(j>>>0):4294967296*(Y>>>0)+(j>>>0)}function v(j,Y,pe){var Pe=Y<=16383?1:Y<=2097151?2:Y<=268435455?3:Math.floor(Math.log(Y)/(7*Math.LN2));pe.realloc(Pe);for(var je=pe.pos-1;je>=j;je--)pe.buf[je+Pe]=pe.buf[je]}function S(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeVarint(j[pe])}function E(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeSVarint(j[pe])}function L(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeFloat(j[pe])}function V(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeDouble(j[pe])}function q(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeBoolean(j[pe])}function H(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeFixed32(j[pe])}function W(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeSFixed32(j[pe])}function X(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeFixed64(j[pe])}function ee(j,Y){for(var pe=0;pe<j.length;pe++)Y.writeSFixed64(j[pe])}function ae(j,Y){return(j[Y]|j[Y+1]<<8|j[Y+2]<<16)+16777216*j[Y+3]}function ve(j,Y,pe){j[pe]=Y,j[pe+1]=Y>>>8,j[pe+2]=Y>>>16,j[pe+3]=Y>>>24}function he(j,Y){return(j[Y]|j[Y+1]<<8|j[Y+2]<<16)+(j[Y+3]<<24)}return t.prototype={destroy:function(){this.buf=null},readFields:function(j,Y,pe){for(pe=pe||this.length;this.pos<pe;){var Pe=this.readVarint(),je=Pe>>3,Me=this.pos;this.type=7&Pe,j(je,Y,this),this.pos===Me&&this.skip(Pe)}return Y},readMessage:function(j,Y){return this.readFields(j,Y,this.readVarint()+this.pos)},readFixed32:function(){var j=ae(this.buf,this.pos);return this.pos+=4,j},readSFixed32:function(){var j=he(this.buf,this.pos);return this.pos+=4,j},readFixed64:function(){var j=ae(this.buf,this.pos)+ae(this.buf,this.pos+4)*i;return this.pos+=8,j},readSFixed64:function(){var j=ae(this.buf,this.pos)+he(this.buf,this.pos+4)*i;return this.pos+=8,j},readFloat:function(){var j=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,j},readDouble:function(){var j=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,j},readVarint:function(j){var Y,pe,Pe=this.buf;return Y=127&(pe=Pe[this.pos++]),pe<128?Y:(Y|=(127&(pe=Pe[this.pos++]))<<7,pe<128?Y:(Y|=(127&(pe=Pe[this.pos++]))<<14,pe<128?Y:(Y|=(127&(pe=Pe[this.pos++]))<<21,pe<128?Y:function(je,Me,Be){var Ge,He,Je=Be.buf;if(Ge=(112&(He=Je[Be.pos++]))>>4,He<128||(Ge|=(127&(He=Je[Be.pos++]))<<3,He<128)||(Ge|=(127&(He=Je[Be.pos++]))<<10,He<128)||(Ge|=(127&(He=Je[Be.pos++]))<<17,He<128)||(Ge|=(127&(He=Je[Be.pos++]))<<24,He<128)||(Ge|=(1&(He=Je[Be.pos++]))<<31,He<128))return m(je,Ge,Me);throw new Error("Expected varint not more than 10 bytes")}(Y|=(15&(pe=Pe[this.pos]))<<28,j,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var j=this.readVarint();return j%2==1?(j+1)/-2:j/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var j=this.readVarint()+this.pos,Y=this.pos;return this.pos=j,j-Y>=12&&c?function(pe,Pe,je){return c.decode(pe.subarray(Pe,je))}(this.buf,Y,j):function(pe,Pe,je){for(var Me="",Be=Pe;Be<je;){var Ge,He,Je,Oe=pe[Be],st=null,pt=Oe>239?4:Oe>223?3:Oe>191?2:1;if(Be+pt>je)break;pt===1?Oe<128&&(st=Oe):pt===2?(192&(Ge=pe[Be+1]))==128&&(st=(31&Oe)<<6|63&Ge)<=127&&(st=null):pt===3?(He=pe[Be+2],(192&(Ge=pe[Be+1]))==128&&(192&He)==128&&((st=(15&Oe)<<12|(63&Ge)<<6|63&He)<=2047||st>=55296&&st<=57343)&&(st=null)):pt===4&&(He=pe[Be+2],Je=pe[Be+3],(192&(Ge=pe[Be+1]))==128&&(192&He)==128&&(192&Je)==128&&((st=(15&Oe)<<18|(63&Ge)<<12|(63&He)<<6|63&Je)<=65535||st>=1114112)&&(st=null)),st===null?(st=65533,pt=1):st>65535&&(st-=65536,Me+=String.fromCharCode(st>>>10&1023|55296),st=56320|1023&st),Me+=String.fromCharCode(st),Be+=pt}return Me}(this.buf,Y,j)},readBytes:function(){var j=this.readVarint()+this.pos,Y=this.buf.subarray(this.pos,j);return this.pos=j,Y},readPackedVarint:function(j,Y){if(this.type!==t.Bytes)return j.push(this.readVarint(Y));var pe=f(this);for(j=j||[];this.pos<pe;)j.push(this.readVarint(Y));return j},readPackedSVarint:function(j){if(this.type!==t.Bytes)return j.push(this.readSVarint());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readSVarint());return j},readPackedBoolean:function(j){if(this.type!==t.Bytes)return j.push(this.readBoolean());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readBoolean());return j},readPackedFloat:function(j){if(this.type!==t.Bytes)return j.push(this.readFloat());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readFloat());return j},readPackedDouble:function(j){if(this.type!==t.Bytes)return j.push(this.readDouble());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readDouble());return j},readPackedFixed32:function(j){if(this.type!==t.Bytes)return j.push(this.readFixed32());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readFixed32());return j},readPackedSFixed32:function(j){if(this.type!==t.Bytes)return j.push(this.readSFixed32());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readSFixed32());return j},readPackedFixed64:function(j){if(this.type!==t.Bytes)return j.push(this.readFixed64());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readFixed64());return j},readPackedSFixed64:function(j){if(this.type!==t.Bytes)return j.push(this.readSFixed64());var Y=f(this);for(j=j||[];this.pos<Y;)j.push(this.readSFixed64());return j},skip:function(j){var Y=7&j;if(Y===t.Varint)for(;this.buf[this.pos++]>127;);else if(Y===t.Bytes)this.pos=this.readVarint()+this.pos;else if(Y===t.Fixed32)this.pos+=4;else{if(Y!==t.Fixed64)throw new Error("Unimplemented type: "+Y);this.pos+=8}},writeTag:function(j,Y){this.writeVarint(j<<3|Y)},realloc:function(j){for(var Y=this.length||16;Y<this.pos+j;)Y*=2;if(Y!==this.length){var pe=new Uint8Array(Y);pe.set(this.buf),this.buf=pe,this.length=Y}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(j){this.realloc(4),ve(this.buf,j,this.pos),this.pos+=4},writeSFixed32:function(j){this.realloc(4),ve(this.buf,j,this.pos),this.pos+=4},writeFixed64:function(j){this.realloc(8),ve(this.buf,-1&j,this.pos),ve(this.buf,Math.floor(j*o),this.pos+4),this.pos+=8},writeSFixed64:function(j){this.realloc(8),ve(this.buf,-1&j,this.pos),ve(this.buf,Math.floor(j*o),this.pos+4),this.pos+=8},writeVarint:function(j){(j=+j||0)>268435455||j<0?function(Y,pe){var Pe,je;if(Y>=0?(Pe=Y%4294967296|0,je=Y/4294967296|0):(je=~(-Y/4294967296),4294967295^(Pe=~(-Y%4294967296))?Pe=Pe+1|0:(Pe=0,je=je+1|0)),Y>=18446744073709552e3||Y<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");pe.realloc(10),function(Me,Be,Ge){Ge.buf[Ge.pos++]=127&Me|128,Me>>>=7,Ge.buf[Ge.pos++]=127&Me|128,Me>>>=7,Ge.buf[Ge.pos++]=127&Me|128,Me>>>=7,Ge.buf[Ge.pos++]=127&Me|128,Ge.buf[Ge.pos]=127&(Me>>>=7)}(Pe,0,pe),function(Me,Be){var Ge=(7&Me)<<4;Be.buf[Be.pos++]|=Ge|((Me>>>=3)?128:0),Me&&(Be.buf[Be.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Be.buf[Be.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Be.buf[Be.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Be.buf[Be.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Be.buf[Be.pos++]=127&Me)))))}(je,pe)}(j,this):(this.realloc(4),this.buf[this.pos++]=127&j|(j>127?128:0),j<=127||(this.buf[this.pos++]=127&(j>>>=7)|(j>127?128:0),j<=127||(this.buf[this.pos++]=127&(j>>>=7)|(j>127?128:0),j<=127||(this.buf[this.pos++]=j>>>7&127))))},writeSVarint:function(j){this.writeVarint(j<0?2*-j-1:2*j)},writeBoolean:function(j){this.writeVarint(!!j)},writeString:function(j){j=String(j),this.realloc(4*j.length),this.pos++;var Y=this.pos;this.pos=function(Pe,je,Me){for(var Be,Ge,He=0;He<je.length;He++){if((Be=je.charCodeAt(He))>55295&&Be<57344){if(!Ge){Be>56319||He+1===je.length?(Pe[Me++]=239,Pe[Me++]=191,Pe[Me++]=189):Ge=Be;continue}if(Be<56320){Pe[Me++]=239,Pe[Me++]=191,Pe[Me++]=189,Ge=Be;continue}Be=Ge-55296<<10|Be-56320|65536,Ge=null}else Ge&&(Pe[Me++]=239,Pe[Me++]=191,Pe[Me++]=189,Ge=null);Be<128?Pe[Me++]=Be:(Be<2048?Pe[Me++]=Be>>6|192:(Be<65536?Pe[Me++]=Be>>12|224:(Pe[Me++]=Be>>18|240,Pe[Me++]=Be>>12&63|128),Pe[Me++]=Be>>6&63|128),Pe[Me++]=63&Be|128)}return Me}(this.buf,j,this.pos);var pe=this.pos-Y;pe>=128&&v(Y,pe,this),this.pos=Y-1,this.writeVarint(pe),this.pos+=pe},writeFloat:function(j){this.realloc(4),n.write(this.buf,j,this.pos,!0,23,4),this.pos+=4},writeDouble:function(j){this.realloc(8),n.write(this.buf,j,this.pos,!0,52,8),this.pos+=8},writeBytes:function(j){var Y=j.length;this.writeVarint(Y),this.realloc(Y);for(var pe=0;pe<Y;pe++)this.buf[this.pos++]=j[pe]},writeRawMessage:function(j,Y){this.pos++;var pe=this.pos;j(Y,this);var Pe=this.pos-pe;Pe>=128&&v(pe,Pe,this),this.pos=pe-1,this.writeVarint(Pe),this.pos+=Pe},writeMessage:function(j,Y,pe){this.writeTag(j,t.Bytes),this.writeRawMessage(Y,pe)},writePackedVarint:function(j,Y){Y.length&&this.writeMessage(j,S,Y)},writePackedSVarint:function(j,Y){Y.length&&this.writeMessage(j,E,Y)},writePackedBoolean:function(j,Y){Y.length&&this.writeMessage(j,q,Y)},writePackedFloat:function(j,Y){Y.length&&this.writeMessage(j,L,Y)},writePackedDouble:function(j,Y){Y.length&&this.writeMessage(j,V,Y)},writePackedFixed32:function(j,Y){Y.length&&this.writeMessage(j,H,Y)},writePackedSFixed32:function(j,Y){Y.length&&this.writeMessage(j,W,Y)},writePackedFixed64:function(j,Y){Y.length&&this.writeMessage(j,X,Y)},writePackedSFixed64:function(j,Y){Y.length&&this.writeMessage(j,ee,Y)},writeBytesField:function(j,Y){this.writeTag(j,t.Bytes),this.writeBytes(Y)},writeFixed32Field:function(j,Y){this.writeTag(j,t.Fixed32),this.writeFixed32(Y)},writeSFixed32Field:function(j,Y){this.writeTag(j,t.Fixed32),this.writeSFixed32(Y)},writeFixed64Field:function(j,Y){this.writeTag(j,t.Fixed64),this.writeFixed64(Y)},writeSFixed64Field:function(j,Y){this.writeTag(j,t.Fixed64),this.writeSFixed64(Y)},writeVarintField:function(j,Y){this.writeTag(j,t.Varint),this.writeVarint(Y)},writeSVarintField:function(j,Y){this.writeTag(j,t.Varint),this.writeSVarint(Y)},writeStringField:function(j,Y){this.writeTag(j,t.Bytes),this.writeString(Y)},writeFloatField:function(j,Y){this.writeTag(j,t.Fixed32),this.writeFloat(Y)},writeDoubleField:function(j,Y){this.writeTag(j,t.Fixed64),this.writeDouble(Y)},writeBooleanField:function(j,Y){this.writeVarintField(j,!!Y)}},op}var lp=B(nf());const cp=3;function m_(n,t,i){n===1&&i.readMessage(g_,t)}function g_(n,t,i){if(n===3){const{id:o,bitmap:c,width:f,height:m,left:v,top:S,advance:E}=i.readMessage(y_,{});t.push({id:o,bitmap:new Ml({width:f+2*cp,height:m+2*cp},c),metrics:{width:f,height:m,left:v,top:S,advance:E}})}}function y_(n,t,i){n===1?t.id=i.readVarint():n===2?t.bitmap=i.readBytes():n===3?t.width=i.readVarint():n===4?t.height=i.readVarint():n===5?t.left=i.readSVarint():n===6?t.top=i.readSVarint():n===7&&(t.advance=i.readVarint())}const __=cp;function sf(n){let t=0,i=0;for(const m of n)t+=m.w*m.h,i=Math.max(i,m.w);n.sort((m,v)=>v.h-m.h);const o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),i),h:1/0}];let c=0,f=0;for(const m of n)for(let v=o.length-1;v>=0;v--){const S=o[v];if(!(m.w>S.w||m.h>S.h)){if(m.x=S.x,m.y=S.y,f=Math.max(f,m.y+m.h),c=Math.max(c,m.x+m.w),m.w===S.w&&m.h===S.h){const E=o.pop();v<o.length&&(o[v]=E)}else m.h===S.h?(S.x+=m.w,S.w-=m.w):m.w===S.w?(S.y+=m.h,S.h-=m.h):(o.push({x:S.x+m.w,y:S.y,w:S.w-m.w,h:m.h}),S.y+=m.h,S.h-=m.h);break}}return{w:c,h:f,fill:t/(c*f)||0}}const Ci=1;class up{constructor(t,{pixelRatio:i,version:o,stretchX:c,stretchY:f,content:m,textFitWidth:v,textFitHeight:S}){this.paddedRect=t,this.pixelRatio=i,this.stretchX=c,this.stretchY=f,this.content=m,this.version=o,this.textFitWidth=v,this.textFitHeight=S}get tl(){return[this.paddedRect.x+Ci,this.paddedRect.y+Ci]}get br(){return[this.paddedRect.x+this.paddedRect.w-Ci,this.paddedRect.y+this.paddedRect.h-Ci]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return[(this.paddedRect.w-2*Ci)/this.pixelRatio,(this.paddedRect.h-2*Ci)/this.pixelRatio]}}class of{constructor(t,i){const o={},c={};this.haveRenderCallbacks=[];const f=[];this.addImages(t,o,f),this.addImages(i,c,f);const{w:m,h:v}=sf(f),S=new Ki({width:m||1,height:v||1});for(const E in t){const L=t[E],V=o[E].paddedRect;Ki.copy(L.data,S,{x:0,y:0},{x:V.x+Ci,y:V.y+Ci},L.data)}for(const E in i){const L=i[E],V=c[E].paddedRect,q=V.x+Ci,H=V.y+Ci,W=L.data.width,X=L.data.height;Ki.copy(L.data,S,{x:0,y:0},{x:q,y:H},L.data),Ki.copy(L.data,S,{x:0,y:X-1},{x:q,y:H-1},{width:W,height:1}),Ki.copy(L.data,S,{x:0,y:0},{x:q,y:H+X},{width:W,height:1}),Ki.copy(L.data,S,{x:W-1,y:0},{x:q-1,y:H},{width:1,height:X}),Ki.copy(L.data,S,{x:0,y:0},{x:q+W,y:H},{width:1,height:X})}this.image=S,this.iconPositions=o,this.patternPositions=c}addImages(t,i,o){for(const c in t){const f=t[c],m={x:0,y:0,w:f.data.width+2*Ci,h:f.data.height+2*Ci};o.push(m),i[c]=new up(m,f),f.hasRenderCallback&&this.haveRenderCallbacks.push(c)}}patchUpdatedImages(t,i){t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const o in t.updatedImages)this.patchUpdatedImage(this.iconPositions[o],t.getImage(o),i),this.patchUpdatedImage(this.patternPositions[o],t.getImage(o),i)}patchUpdatedImage(t,i,o){if(!t||!i||t.version===i.version)return;t.version=i.version;const[c,f]=t.tl;o.update(i.data,void 0,{x:c,y:f})}}var Ls;it("ImagePosition",up),it("ImageAtlas",of),x.al=void 0,(Ls=x.al||(x.al={}))[Ls.none=0]="none",Ls[Ls.horizontal=1]="horizontal",Ls[Ls.vertical=2]="vertical",Ls[Ls.horizontalOnly=3]="horizontalOnly";const au=-17;class Ul{constructor(){this.scale=1,this.fontStack="",this.imageName=null,this.verticalAlign="bottom"}static forText(t,i,o){const c=new Ul;return c.scale=t||1,c.fontStack=i,c.verticalAlign=o||"bottom",c}static forImage(t,i){const o=new Ul;return o.imageName=t,o.verticalAlign=i||"bottom",o}}class wa{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(t,i){const o=new wa;for(let c=0;c<t.sections.length;c++){const f=t.sections[c];f.image?o.addImageSection(f):o.addTextSection(f,i)}return o}length(){return this.text.length}getSection(t){return this.sections[this.sectionIndex[t]]}getSectionIndex(t){return this.sectionIndex[t]}getCharCode(t){return this.text.charCodeAt(t)}verticalizePunctuation(){this.text=function(t){let i="";for(let o=0;o<t.length;o++){const c=t.charCodeAt(o+1)||null,f=t.charCodeAt(o-1)||null;i+=c&&ho(c)&&!ql[t[o+1]]||f&&ho(f)&&!ql[t[o-1]]||!ql[t[o]]?t[o]:ql[t[o]]}return i}(this.text)}trim(){let t=0;for(let o=0;o<this.text.length&&cu[this.text.charCodeAt(o)];o++)t++;let i=this.text.length;for(let o=this.text.length-1;o>=0&&o>=t&&cu[this.text.charCodeAt(o)];o--)i--;this.text=this.text.substring(t,i),this.sectionIndex=this.sectionIndex.slice(t,i)}substring(t,i){const o=new wa;return o.text=this.text.substring(t,i),o.sectionIndex=this.sectionIndex.slice(t,i),o.sections=this.sections,o}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((t,i)=>Math.max(t,this.sections[i].scale),0)}getMaxImageSize(t){let i=0,o=0;for(let c=0;c<this.length();c++){const f=this.getSection(c);if(f.imageName){const m=t[f.imageName];if(!m)continue;const v=m.displaySize;i=Math.max(i,v[0]),o=Math.max(o,v[1])}}return{maxImageWidth:i,maxImageHeight:o}}addTextSection(t,i){this.text+=t.text,this.sections.push(Ul.forText(t.scale,t.fontStack||i,t.verticalAlign));const o=this.sections.length-1;for(let c=0;c<t.text.length;++c)this.sectionIndex.push(o)}addImageSection(t){const i=t.image?t.image.name:"";if(i.length===0)return void Gr("Can't add FormattedSection with an empty image.");const o=this.getNextImageSectionCharCode();o?(this.text+=String.fromCharCode(o),this.sections.push(Ul.forImage(i,t.verticalAlign)),this.sectionIndex.push(this.sections.length-1)):Gr("Reached maximum number of images 6401")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function lu(n,t,i,o,c,f,m,v,S,E,L,V,q,H,W){const X=wa.fromFeature(n,c);let ee;V===x.al.vertical&&X.verticalizePunctuation();const{processBidirectionalText:ae,processStyledBidirectionalText:ve}=pn;if(ae&&X.sections.length===1){ee=[];const Y=ae(X.toString(),hp(X,E,f,t,o,H));for(const pe of Y){const Pe=new wa;Pe.text=pe,Pe.sections=X.sections;for(let je=0;je<pe.length;je++)Pe.sectionIndex.push(0);ee.push(Pe)}}else if(ve){ee=[];const Y=ve(X.text,X.sectionIndex,hp(X,E,f,t,o,H));for(const pe of Y){const Pe=new wa;Pe.text=pe[0],Pe.sectionIndex=pe[1],Pe.sections=X.sections,ee.push(Pe)}}else ee=function(Y,pe){const Pe=[],je=Y.text;let Me=0;for(const Be of pe)Pe.push(Y.substring(Me,Be)),Me=Be;return Me<je.length&&Pe.push(Y.substring(Me,je.length)),Pe}(X,hp(X,E,f,t,o,H));const he=[],j={positionedLines:he,text:X.toString(),top:L[1],bottom:L[1],left:L[0],right:L[0],writingMode:V,iconsInText:!1,verticalizable:!1};return function(Y,pe,Pe,je,Me,Be,Ge,He,Je,Oe,st,pt){let ut=0,at=0,zt=0,wr=0;const Fr=He==="right"?1:He==="left"?0:.5,oi=Vr/pt;let Ji=0;for(const mr of Me){mr.trim();const jr=mr.getMaxScale(),$r={positionedGlyphs:[],lineOffset:0};Y.positionedLines[Ji]=$r;const ei=$r.positionedGlyphs;let vi=0;if(!mr.length()){at+=Be,++Ji;continue}const Xi=w_(je,mr,oi);for(let Pi=0;Pi<mr.length();Pi++){const Or=mr.getSection(Pi),Wr=mr.getSectionIndex(Pi),Zr=mr.getCharCode(Pi),Lr=S_(Je,st,Zr);let or;if(Or.imageName){if(Y.iconsInText=!0,Or.scale=Or.scale*oi,or=k_(Or,Lr,jr,Xi,je),!or)continue;vi=Math.max(vi,or.imageOffset)}else if(or=A_(Or,Zr,Lr,Xi,pe,Pe),!or)continue;const{rect:mn,metrics:Ta,baselineOffset:gn}=or;ei.push({glyph:Zr,imageName:Or.imageName,x:ut,y:at+gn+au,vertical:Lr,scale:Or.scale,fontStack:Or.fontStack,sectionIndex:Wr,metrics:Ta,rect:mn}),Lr?(Y.verticalizable=!0,ut+=(Or.imageName?Ta.advance:Vr)*Or.scale+Oe):ut+=Ta.advance*Or.scale+Oe}ei.length!==0&&(zt=Math.max(ut-Oe,zt),T_(ei,0,ei.length-1,Fr)),ut=0,$r.lineOffset=Math.max(vi,(jr-1)*Vr);const Hr=Be*jr+vi;at+=Hr,wr=Math.max(Hr,wr),++Ji}const{horizontalAlign:Ei,verticalAlign:Yr}=pp(Ge);(function(mr,jr,$r,ei,vi,Xi,Hr,Pi,Or){const Wr=(jr-$r)*vi;let Zr=0;Zr=Xi!==Hr?-Pi*ei-au:-ei*Or*Hr+.5*Hr;for(const Lr of mr)for(const or of Lr.positionedGlyphs)or.x+=Wr,or.y+=Zr})(Y.positionedLines,Fr,Ei,Yr,zt,wr,Be,at,Me.length),Y.top+=-Yr*at,Y.bottom=Y.top+at,Y.left+=-Ei*zt,Y.right=Y.left+zt}(j,t,i,o,ee,m,v,S,V,E,q,W),!function(Y){for(const pe of Y)if(pe.positionedGlyphs.length!==0)return!1;return!0}(he)&&j}const cu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},v_={10:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},x_={40:!0};function af(n,t,i,o,c,f){if(t.imageName){const m=o[t.imageName];return m?m.displaySize[0]*t.scale*Vr/f+c:0}{const m=i[t.fontStack],v=m&&m[n];return v?v.metrics.advance*t.scale+c:0}}function lf(n,t,i,o){const c=Math.pow(n-t,2);return o?n<t?c/2:2*c:c+Math.abs(i)*i}function b_(n,t,i){let o=0;return n===10&&(o-=1e4),i&&(o+=150),n!==40&&n!==65288||(o+=50),t!==41&&t!==65289||(o+=50),o}function cf(n,t,i,o,c,f){let m=null,v=lf(t,i,c,f);for(const S of o){const E=lf(t-S.x,i,c,f)+S.badness;E<=v&&(m=S,v=E)}return{index:n,x:t,priorBreak:m,badness:v}}function uf(n){return n?uf(n.priorBreak).concat(n.index):[]}function hp(n,t,i,o,c,f){if(!n)return[];const m=[],v=function(V,q,H,W,X,ee){let ae=0;for(let ve=0;ve<V.length();ve++){const he=V.getSection(ve);ae+=af(V.getCharCode(ve),he,W,X,q,ee)}return ae/Math.max(1,Math.ceil(ae/H))}(n,t,i,o,c,f),S=n.text.indexOf("​")>=0;let E=0;for(let V=0;V<n.length();V++){const q=n.getSection(V),H=n.getCharCode(V);if(cu[H]||(E+=af(H,q,o,c,t,f)),V<n.length()-1){const W=!((L=H)<11904)&&(!!Rt["CJK Compatibility Forms"](L)||!!Rt["CJK Compatibility"](L)||!!Rt["CJK Strokes"](L)||!!Rt["CJK Symbols and Punctuation"](L)||!!Rt["Enclosed CJK Letters and Months"](L)||!!Rt["Halfwidth and Fullwidth Forms"](L)||!!Rt["Ideographic Description Characters"](L)||!!Rt["Vertical Forms"](L)||xl.test(String.fromCodePoint(L)));(v_[H]||W||q.imageName||V!==n.length()-2&&x_[n.getCharCode(V+1)])&&m.push(cf(V+1,E,v,m,b_(H,n.getCharCode(V+1),W&&S),!1))}}var L;return uf(cf(n.length(),E,v,m,0,!0))}function pp(n){let t=.5,i=.5;switch(n){case"right":case"top-right":case"bottom-right":t=1;break;case"left":case"top-left":case"bottom-left":t=0}switch(n){case"bottom":case"bottom-right":case"bottom-left":i=1;break;case"top":case"top-right":case"top-left":i=0}return{horizontalAlign:t,verticalAlign:i}}function w_(n,t,i){const o=t.getMaxScale()*Vr,{maxImageWidth:c,maxImageHeight:f}=t.getMaxImageSize(n),m=Math.max(o,f*i);return{verticalLineContentWidth:Math.max(o,c*i),horizontalLineContentHeight:m}}function hf(n){switch(n){case"top":return 0;case"center":return .5;default:return 1}}function S_(n,t,i){return!(n===x.al.horizontal||!t&&!fa(i)||t&&(cu[i]||(o=i,new RegExp("\\p{sc=Arab}","u").test(String.fromCodePoint(o)))));var o}function A_(n,t,i,o,c,f){const m=f[n.fontStack],v=function(E,L,V,q){if(E&&E.rect)return E;const H=L[V.fontStack],W=H&&H[q];return W?{rect:null,metrics:W.metrics}:null}(m&&m[t],c,n,t);if(v===null)return null;let S;if(i)S=o.verticalLineContentWidth-n.scale*Vr;else{const E=hf(n.verticalAlign);S=(o.horizontalLineContentHeight-n.scale*Vr)*E}return{rect:v.rect,metrics:v.metrics,baselineOffset:S}}function k_(n,t,i,o,c){const f=c[n.imageName];if(!f)return null;const m=f.paddedRect,v=f.displaySize,S={width:v[0],height:v[1],left:Ci,top:-3,advance:t?v[1]:v[0]};let E;if(t)E=o.verticalLineContentWidth-v[1]*n.scale;else{const L=hf(n.verticalAlign);E=(o.horizontalLineContentHeight-v[1]*n.scale)*L}return{rect:m,metrics:S,baselineOffset:E,imageOffset:(t?v[0]:v[1])*n.scale-Vr*i}}function T_(n,t,i,o){if(o===0)return;const c=n[i],f=(n[i].x+c.metrics.advance*c.scale)*o;for(let m=t;m<=i;m++)n[m].x-=f}function C_(n,t,i){const{horizontalAlign:o,verticalAlign:c}=pp(i),f=t[0]-n.displaySize[0]*o,m=t[1]-n.displaySize[1]*c;return{image:n,top:m,bottom:m+n.displaySize[1],left:f,right:f+n.displaySize[0]}}function pf(n){var t,i;let o=n.left,c=n.top,f=n.right-o,m=n.bottom-c;const v=(t=n.image.textFitWidth)!==null&&t!==void 0?t:"stretchOrShrink",S=(i=n.image.textFitHeight)!==null&&i!==void 0?i:"stretchOrShrink",E=(n.image.content[2]-n.image.content[0])/(n.image.content[3]-n.image.content[1]);if(S==="proportional"){if(v==="stretchOnly"&&f/m<E||v==="proportional"){const L=Math.ceil(m*E);o*=L/f,f=L}}else if(v==="proportional"&&S==="stretchOnly"&&E!==0&&f/m>E){const L=Math.ceil(f/E);c*=L/m,m=L}return{x1:o,y1:c,x2:o+f,y2:c+m}}function df(n,t,i,o,c,f){const m=n.image;let v;if(m.content){const ee=m.content,ae=m.pixelRatio||1;v=[ee[0]/ae,ee[1]/ae,m.displaySize[0]-ee[2]/ae,m.displaySize[1]-ee[3]/ae]}const S=t.left*f,E=t.right*f;let L,V,q,H;i==="width"||i==="both"?(H=c[0]+S-o[3],V=c[0]+E+o[1]):(H=c[0]+(S+E-m.displaySize[0])/2,V=H+m.displaySize[0]);const W=t.top*f,X=t.bottom*f;return i==="height"||i==="both"?(L=c[1]+W-o[0],q=c[1]+X+o[2]):(L=c[1]+(W+X-m.displaySize[1])/2,q=L+m.displaySize[1]),{image:m,top:L,right:V,bottom:q,left:H,collisionPadding:v}}const jl=255,Rn=128,Rs=jl*Rn;function ff(n,t){const{expression:i}=t;if(i.kind==="constant")return{kind:"constant",layoutSize:i.evaluate(new nr(n+1))};if(i.kind==="source")return{kind:"source"};{const{zoomStops:o,interpolationType:c}=i;let f=0;for(;f<o.length&&o[f]<=n;)f++;f=Math.max(0,f-1);let m=f;for(;m<o.length&&o[m]<n+1;)m++;m=Math.min(o.length-1,m);const v=o[f],S=o[m];return i.kind==="composite"?{kind:"composite",minZoom:v,maxZoom:S,interpolationType:c}:{kind:"camera",minZoom:v,maxZoom:S,minSize:i.evaluate(new nr(v)),maxSize:i.evaluate(new nr(S)),interpolationType:c}}}function dp(n,t,i){let o="never";const c=n.get(t);return c?o=c:n.get(i)&&(o="always"),o}const E_=Fl.VectorTileFeature.types,P_=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function uu(n,t,i,o,c,f,m,v,S,E,L,V,q){const H=v?Math.min(Rs,Math.round(v[0])):0,W=v?Math.min(Rs,Math.round(v[1])):0;n.emplaceBack(t,i,Math.round(32*o),Math.round(32*c),f,m,(H<<1)+(S?1:0),W,16*E,16*L,256*V,256*q)}function fp(n,t,i){n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i)}function I_(n){for(const t of n.sections)if(Oh(t.text))return!0;return!1}class mp{constructor(t){this.layoutVertexArray=new pr,this.indexArray=new Ht,this.programConfigurations=t,this.segments=new Wt,this.dynamicLayoutVertexArray=new Qt,this.opacityVertexArray=new dr,this.hasVisibleVertices=!1,this.placedSymbolArray=new me}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(t,i,o,c){this.isEmpty()||(o&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,c_.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,i),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,u_.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,P_,!0),this.opacityVertexBuffer.itemSize=1),(o||c)&&this.programConfigurations.upload(t))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}it("SymbolBuffers",mp);class gp{constructor(t,i,o){this.layoutVertexArray=new t,this.layoutAttributes=i,this.indexArray=new o,this.segments=new Wt,this.collisionVertexArray=new tr}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,h_.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())}}it("CollisionBuffers",gp);class Sa{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(m=>m.id),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const i=this.layers[0]._unevaluatedLayout._values;this.textSizeData=ff(this.zoom,i["text-size"]),this.iconSizeData=ff(this.zoom,i["icon-size"]);const o=this.layers[0].layout,c=o.get("symbol-sort-key"),f=o.get("symbol-z-order");this.canOverlap=dp(o,"text-overlap","text-allow-overlap")!=="never"||dp(o,"icon-overlap","icon-allow-overlap")!=="never"||o.get("text-ignore-placement")||o.get("icon-ignore-placement"),this.sortFeaturesByKey=f!=="viewport-y"&&!c.isConstant(),this.sortFeaturesByY=(f==="viewport-y"||f==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,o.get("symbol-placement")==="point"&&(this.writingModes=o.get("text-writing-mode").map(m=>x.al[m])),this.stateDependentLayerIds=this.layers.filter(m=>m.isStateDependent()).map(m=>m.id),this.sourceID=t.sourceID}createArrays(){this.text=new mp(new Ln(this.layers,this.zoom,t=>/^text/.test(t))),this.icon=new mp(new Ln(this.layers,this.zoom,t=>/^icon/.test(t))),this.glyphOffsetArray=new xe,this.lineVertexArray=new _e,this.symbolInstances=new ge,this.textAnchorOffsets=new Fe}calculateGlyphDependencies(t,i,o,c,f){for(let m=0;m<t.length;m++)if(i[t.charCodeAt(m)]=!0,(o||c)&&f){const v=ql[t.charAt(m)];v&&(i[v.charCodeAt(0)]=!0)}}populate(t,i,o){const c=this.layers[0],f=c.layout,m=f.get("text-font"),v=f.get("text-field"),S=f.get("icon-image"),E=(v.value.kind!=="constant"||v.value.value instanceof yi&&!v.value.value.isEmpty()||v.value.value.toString().length>0)&&(m.value.kind!=="constant"||m.value.value.length>0),L=S.value.kind!=="constant"||!!S.value.value||Object.keys(S.parameters).length>0,V=f.get("symbol-sort-key");if(this.features=[],!E&&!L)return;const q=i.iconDependencies,H=i.glyphDependencies,W=i.availableImages,X=new nr(this.zoom);for(const{feature:ee,id:ae,index:ve,sourceLayerIndex:he}of t){const j=c._featureFilter.needGeometry,Y=xo(ee,j);if(!c._featureFilter.filter(X,Y,o))continue;let pe,Pe;if(j||(Y.geometry=vo(ee)),E){const Me=c.getValueAndResolveTokens("text-field",Y,o,W),Be=yi.factory(Me),Ge=this.hasRTLText=this.hasRTLText||I_(Be);(!Ge||pn.getRTLTextPluginStatus()==="unavailable"||Ge&&pn.isParsed())&&(pe=d_(Be,c,Y))}if(L){const Me=c.getValueAndResolveTokens("icon-image",Y,o,W);Pe=Me instanceof Ai?Me:Ai.fromString(Me)}if(!pe&&!Pe)continue;const je=this.sortFeaturesByKey?V.evaluate(Y,{},o):void 0;if(this.features.push({id:ae,text:pe,icon:Pe,index:ve,sourceLayerIndex:he,geometry:Y.geometry,properties:ee.properties,type:E_[ee.type],sortKey:je}),Pe&&(q[Pe.name]=!0),pe){const Me=m.evaluate(Y,{},o).join(","),Be=f.get("text-rotation-alignment")!=="viewport"&&f.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(x.al.vertical)>=0;for(const Ge of pe.sections)if(Ge.image)q[Ge.image.name]=!0;else{const He=da(pe.toString()),Je=Ge.fontStack||Me,Oe=H[Je]=H[Je]||{};this.calculateGlyphDependencies(Ge.text,Oe,Be,this.allowVerticalPlacement,He)}}}f.get("symbol-placement")==="line"&&(this.features=function(ee){const ae={},ve={},he=[];let j=0;function Y(Me){he.push(ee[Me]),j++}function pe(Me,Be,Ge){const He=ve[Me];return delete ve[Me],ve[Be]=He,he[He].geometry[0].pop(),he[He].geometry[0]=he[He].geometry[0].concat(Ge[0]),He}function Pe(Me,Be,Ge){const He=ae[Be];return delete ae[Be],ae[Me]=He,he[He].geometry[0].shift(),he[He].geometry[0]=Ge[0].concat(he[He].geometry[0]),He}function je(Me,Be,Ge){const He=Ge?Be[0][Be[0].length-1]:Be[0][0];return`${Me}:${He.x}:${He.y}`}for(let Me=0;Me<ee.length;Me++){const Be=ee[Me],Ge=Be.geometry,He=Be.text?Be.text.toString():null;if(!He){Y(Me);continue}const Je=je(He,Ge),Oe=je(He,Ge,!0);if(Je in ve&&Oe in ae&&ve[Je]!==ae[Oe]){const st=Pe(Je,Oe,Ge),pt=pe(Je,Oe,he[st].geometry);delete ae[Je],delete ve[Oe],ve[je(He,he[pt].geometry,!0)]=pt,he[st].geometry=null}else Je in ve?pe(Je,Oe,Ge):Oe in ae?Pe(Je,Oe,Ge):(Y(Me),ae[Je]=j-1,ve[Oe]=j-1)}return he.filter(Me=>Me.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((ee,ae)=>ee.sortKey-ae.sortKey)}update(t,i,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,i,this.layers,o),this.icon.programConfigurations.updatePaintArrays(t,i,this.layers,o))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(t,i){const o=this.lineVertexArray.length;if(t.segment!==void 0){let c=t.dist(i[t.segment+1]),f=t.dist(i[t.segment]);const m={};for(let v=t.segment+1;v<i.length;v++)m[v]={x:i[v].x,y:i[v].y,tileUnitDistanceFromAnchor:c},v<i.length-1&&(c+=i[v+1].dist(i[v]));for(let v=t.segment||0;v>=0;v--)m[v]={x:i[v].x,y:i[v].y,tileUnitDistanceFromAnchor:f},v>0&&(f+=i[v-1].dist(i[v]));for(let v=0;v<i.length;v++){const S=m[v];this.lineVertexArray.emplaceBack(S.x,S.y,S.tileUnitDistanceFromAnchor)}}return{lineStartIndex:o,lineLength:this.lineVertexArray.length-o}}addSymbols(t,i,o,c,f,m,v,S,E,L,V,q){const H=t.indexArray,W=t.layoutVertexArray,X=t.segments.prepareSegment(4*i.length,W,H,this.canOverlap?m.sortKey:void 0),ee=this.glyphOffsetArray.length,ae=X.vertexLength,ve=this.allowVerticalPlacement&&v===x.al.vertical?Math.PI/2:0,he=m.text&&m.text.sections;for(let j=0;j<i.length;j++){const{tl:Y,tr:pe,bl:Pe,br:je,tex:Me,pixelOffsetTL:Be,pixelOffsetBR:Ge,minFontScaleX:He,minFontScaleY:Je,glyphOffset:Oe,isSDF:st,sectionIndex:pt}=i[j],ut=X.vertexLength,at=Oe[1];uu(W,S.x,S.y,Y.x,at+Y.y,Me.x,Me.y,o,st,Be.x,Be.y,He,Je),uu(W,S.x,S.y,pe.x,at+pe.y,Me.x+Me.w,Me.y,o,st,Ge.x,Be.y,He,Je),uu(W,S.x,S.y,Pe.x,at+Pe.y,Me.x,Me.y+Me.h,o,st,Be.x,Ge.y,He,Je),uu(W,S.x,S.y,je.x,at+je.y,Me.x+Me.w,Me.y+Me.h,o,st,Ge.x,Ge.y,He,Je),fp(t.dynamicLayoutVertexArray,S,ve),H.emplaceBack(ut,ut+2,ut+1),H.emplaceBack(ut+1,ut+2,ut+3),X.vertexLength+=4,X.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(Oe[0]),j!==i.length-1&&pt===i[j+1].sectionIndex||t.programConfigurations.populatePaintArrays(W.length,m,m.index,{},q,he&&he[pt])}t.placedSymbolArray.emplaceBack(S.x,S.y,ee,this.glyphOffsetArray.length-ee,ae,E,L,S.segment,o?o[0]:0,o?o[1]:0,c[0],c[1],v,0,!1,0,V)}_addCollisionDebugVertex(t,i,o,c,f,m){return i.emplaceBack(0,0),t.emplaceBack(o.x,o.y,c,f,Math.round(m.x),Math.round(m.y))}addCollisionDebugVertices(t,i,o,c,f,m,v){const S=f.segments.prepareSegment(4,f.layoutVertexArray,f.indexArray),E=S.vertexLength,L=f.layoutVertexArray,V=f.collisionVertexArray,q=v.anchorX,H=v.anchorY;this._addCollisionDebugVertex(L,V,m,q,H,new C(t,i)),this._addCollisionDebugVertex(L,V,m,q,H,new C(o,i)),this._addCollisionDebugVertex(L,V,m,q,H,new C(o,c)),this._addCollisionDebugVertex(L,V,m,q,H,new C(t,c)),S.vertexLength+=4;const W=f.indexArray;W.emplaceBack(E,E+1),W.emplaceBack(E+1,E+2),W.emplaceBack(E+2,E+3),W.emplaceBack(E+3,E),S.primitiveLength+=4}addDebugCollisionBoxes(t,i,o,c){for(let f=t;f<i;f++){const m=this.collisionBoxArray.get(f);this.addCollisionDebugVertices(m.x1,m.y1,m.x2,m.y2,c?this.textCollisionBox:this.iconCollisionBox,m.anchorPoint,o)}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new gp(fr,ef.members,Br),this.iconCollisionBox=new gp(fr,ef.members,Br);for(let t=0;t<this.symbolInstances.length;t++){const i=this.symbolInstances.get(t);this.addDebugCollisionBoxes(i.textBoxStartIndex,i.textBoxEndIndex,i,!0),this.addDebugCollisionBoxes(i.verticalTextBoxStartIndex,i.verticalTextBoxEndIndex,i,!0),this.addDebugCollisionBoxes(i.iconBoxStartIndex,i.iconBoxEndIndex,i,!1),this.addDebugCollisionBoxes(i.verticalIconBoxStartIndex,i.verticalIconBoxEndIndex,i,!1)}}_deserializeCollisionBoxesForSymbol(t,i,o,c,f,m,v,S,E){const L={};for(let V=i;V<o;V++){const q=t.get(V);L.textBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.textFeatureIndex=q.featureIndex;break}for(let V=c;V<f;V++){const q=t.get(V);L.verticalTextBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.verticalTextFeatureIndex=q.featureIndex;break}for(let V=m;V<v;V++){const q=t.get(V);L.iconBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.iconFeatureIndex=q.featureIndex;break}for(let V=S;V<E;V++){const q=t.get(V);L.verticalIconBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.verticalIconFeatureIndex=q.featureIndex;break}return L}deserializeCollisionBoxes(t){this.collisionArrays=[];for(let i=0;i<this.symbolInstances.length;i++){const o=this.symbolInstances.get(i);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,o.textBoxStartIndex,o.textBoxEndIndex,o.verticalTextBoxStartIndex,o.verticalTextBoxEndIndex,o.iconBoxStartIndex,o.iconBoxEndIndex,o.verticalIconBoxStartIndex,o.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(t,i){const o=t.placedSymbolArray.get(i),c=o.vertexStartIndex+4*o.numGlyphs;for(let f=o.vertexStartIndex;f<c;f+=4)t.indexArray.emplaceBack(f,f+2,f+1),t.indexArray.emplaceBack(f+1,f+2,f+3)}getSortedSymbolIndexes(t){if(this.sortedAngle===t&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;const i=Math.sin(t),o=Math.cos(t),c=[],f=[],m=[];for(let v=0;v<this.symbolInstances.length;++v){m.push(v);const S=this.symbolInstances.get(v);c.push(0|Math.round(i*S.anchorX+o*S.anchorY)),f.push(S.featureIndex)}return m.sort((v,S)=>c[v]-c[S]||f[S]-f[v]),m}addToSortKeyRanges(t,i){const o=this.sortKeyRanges[this.sortKeyRanges.length-1];o&&o.sortKey===i?o.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:i,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const i of this.symbolInstanceIndexes){const o=this.symbolInstances.get(i);this.featureSortOrder.push(o.featureIndex),[o.rightJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.leftJustifiedTextSymbolIndex].forEach((c,f,m)=>{c>=0&&m.indexOf(c)===f&&this.addIndicesForPlacedSymbol(this.text,c)}),o.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,o.verticalPlacedTextSymbolIndex),o.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.placedIconSymbolIndex),o.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let mf,gf;it("SymbolBucket",Sa,{omit:["layers","collisionBoxArray","features","compareText"]}),Sa.MAX_GLYPHS=65535,Sa.addDynamicAttributes=fp;var yp={get paint(){return gf=gf||new Pr({"icon-opacity":new ft($.paint_symbol["icon-opacity"]),"icon-color":new ft($.paint_symbol["icon-color"]),"icon-halo-color":new ft($.paint_symbol["icon-halo-color"]),"icon-halo-width":new ft($.paint_symbol["icon-halo-width"]),"icon-halo-blur":new ft($.paint_symbol["icon-halo-blur"]),"icon-translate":new ct($.paint_symbol["icon-translate"]),"icon-translate-anchor":new ct($.paint_symbol["icon-translate-anchor"]),"text-opacity":new ft($.paint_symbol["text-opacity"]),"text-color":new ft($.paint_symbol["text-color"],{runtimeType:_r,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new ft($.paint_symbol["text-halo-color"]),"text-halo-width":new ft($.paint_symbol["text-halo-width"]),"text-halo-blur":new ft($.paint_symbol["text-halo-blur"]),"text-translate":new ct($.paint_symbol["text-translate"]),"text-translate-anchor":new ct($.paint_symbol["text-translate-anchor"])})},get layout(){return mf=mf||new Pr({"symbol-placement":new ct($.layout_symbol["symbol-placement"]),"symbol-spacing":new ct($.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ct($.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new ft($.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ct($.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ct($.layout_symbol["icon-allow-overlap"]),"icon-overlap":new ct($.layout_symbol["icon-overlap"]),"icon-ignore-placement":new ct($.layout_symbol["icon-ignore-placement"]),"icon-optional":new ct($.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ct($.layout_symbol["icon-rotation-alignment"]),"icon-size":new ft($.layout_symbol["icon-size"]),"icon-text-fit":new ct($.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ct($.layout_symbol["icon-text-fit-padding"]),"icon-image":new ft($.layout_symbol["icon-image"]),"icon-rotate":new ft($.layout_symbol["icon-rotate"]),"icon-padding":new ft($.layout_symbol["icon-padding"]),"icon-keep-upright":new ct($.layout_symbol["icon-keep-upright"]),"icon-offset":new ft($.layout_symbol["icon-offset"]),"icon-anchor":new ft($.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ct($.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ct($.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ct($.layout_symbol["text-rotation-alignment"]),"text-field":new ft($.layout_symbol["text-field"]),"text-font":new ft($.layout_symbol["text-font"]),"text-size":new ft($.layout_symbol["text-size"]),"text-max-width":new ft($.layout_symbol["text-max-width"]),"text-line-height":new ct($.layout_symbol["text-line-height"]),"text-letter-spacing":new ft($.layout_symbol["text-letter-spacing"]),"text-justify":new ft($.layout_symbol["text-justify"]),"text-radial-offset":new ft($.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ct($.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new ft($.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new ft($.layout_symbol["text-anchor"]),"text-max-angle":new ct($.layout_symbol["text-max-angle"]),"text-writing-mode":new ct($.layout_symbol["text-writing-mode"]),"text-rotate":new ft($.layout_symbol["text-rotate"]),"text-padding":new ct($.layout_symbol["text-padding"]),"text-keep-upright":new ct($.layout_symbol["text-keep-upright"]),"text-transform":new ft($.layout_symbol["text-transform"]),"text-offset":new ft($.layout_symbol["text-offset"]),"text-allow-overlap":new ct($.layout_symbol["text-allow-overlap"]),"text-overlap":new ct($.layout_symbol["text-overlap"]),"text-ignore-placement":new ct($.layout_symbol["text-ignore-placement"]),"text-optional":new ct($.layout_symbol["text-optional"])})}};class yf{constructor(t){if(t.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:gt,this.defaultValue=t}evaluate(t){if(t.formattedSection){const i=this.defaultValue.property.overrides;if(i&&i.hasOverride(t.formattedSection))return i.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}it("FormatSectionOverride",yf,{omit:["defaultValue"]});class hu extends Bi{constructor(t){super(t,yp)}recalculate(t,i){if(super.recalculate(t,i),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const o=this.layout.get("text-writing-mode");if(o){const c=[];for(const f of o)c.indexOf(f)<0&&c.push(f);this.layout._values["text-writing-mode"]=c}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(t,i,o,c){const f=this.layout.get(t).evaluate(i,{},o,c),m=this._unevaluatedLayout._values[t];return m.isDataDriven()||ro(m.value)||!f?f:function(v,S){return S.replace(/{([^{}]+)}/g,(E,L)=>v&&L in v?String(v[L]):"")}(i.properties,f)}createBucket(t){return new Sa(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of yp.paint.overridableProperties){if(!hu.hasPaintOverride(this.layout,t))continue;const i=this.paint.get(t),o=new yf(i),c=new ta(o,i.property.specification);let f=null;f=i.value.kind==="constant"||i.value.kind==="source"?new ol("source",c):new ia("composite",c,i.value.zoomStops),this.paint._values[t]=new pi(i.property,f,i.parameters)}}_handleOverridablePaintPropertyUpdate(t,i,o){return!(!this.layout||i.isDataDriven()||o.isDataDriven())&&hu.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,i){const o=t.get("text-field"),c=yp.paint.properties[i];let f=!1;const m=v=>{for(const S of v)if(c.overrides&&c.overrides.hasOverride(S))return void(f=!0)};if(o.value.kind==="constant"&&o.value.value instanceof yi)m(o.value.value.sections);else if(o.value.kind==="source"){const v=E=>{f||(E instanceof wt&&xr(E.value)===Vs?m(E.value.sections):E instanceof Oo?m(E.sections):E.eachChild(v))},S=o.value;S._styleExpression&&v(S._styleExpression.expression)}return f}}let _f;var M_={get paint(){return _f=_f||new Pr({"background-color":new ct($.paint_background["background-color"]),"background-pattern":new wl($.paint_background["background-pattern"]),"background-opacity":new ct($.paint_background["background-opacity"])})}};class L_ extends Bi{constructor(t){super(t,M_)}}let vf;var R_={get paint(){return vf=vf||new Pr({"raster-opacity":new ct($.paint_raster["raster-opacity"]),"raster-hue-rotate":new ct($.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new ct($.paint_raster["raster-brightness-min"]),"raster-brightness-max":new ct($.paint_raster["raster-brightness-max"]),"raster-saturation":new ct($.paint_raster["raster-saturation"]),"raster-contrast":new ct($.paint_raster["raster-contrast"]),"raster-resampling":new ct($.paint_raster["raster-resampling"]),"raster-fade-duration":new ct($.paint_raster["raster-fade-duration"])})}};class D_ extends Bi{constructor(t){super(t,R_)}}class z_ extends Bi{constructor(t){super(t,{}),this.onAdd=i=>{this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)},this.onRemove=i=>{this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)},this.implementation=t}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class B_{constructor(t){this._methodToThrottle=t,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._methodToThrottle()},0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const V_={once:!0},_p=63710088e-1;class Ds{constructor(t,i){if(isNaN(t)||isNaN(i))throw new Error(`Invalid LngLat object: (${t}, ${i})`);if(this.lng=+t,this.lat=+i,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new Ds(ji(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const i=Math.PI/180,o=this.lat*i,c=t.lat*i,f=Math.sin(o)*Math.sin(c)+Math.cos(o)*Math.cos(c)*Math.cos((t.lng-this.lng)*i);return _p*Math.acos(Math.min(f,1))}static convert(t){if(t instanceof Ds)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new Ds(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t=="object"&&t!==null)return new Ds(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new 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 xf=2*Math.PI*_p;function bf(n){return xf*Math.cos(n*Math.PI/180)}function wf(n){return(180+n)/360}function Sf(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function Af(n,t){return n/bf(t)}function vp(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function kf(n,t){return n*bf(vp(t))}class Hl{constructor(t,i,o=0){this.x=+t,this.y=+i,this.z=+o}static fromLngLat(t,i=0){const o=Ds.convert(t);return new Hl(wf(o.lng),Sf(o.lat),Af(i,o.lat))}toLngLat(){return new Ds(360*this.x-180,vp(this.y))}toAltitude(){return kf(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/xf*(t=vp(this.y),1/Math.cos(t*Math.PI/180));var t}}function Tf(n,t,i){var o=2*Math.PI*6378137/256/Math.pow(2,i);return[n*o-2*Math.PI*6378137/2,t*o-2*Math.PI*6378137/2]}class xp{constructor(t,i,o){if(!function(c,f,m){return!(c<0||c>25||m<0||m>=Math.pow(2,c)||f<0||f>=Math.pow(2,c))}(t,i,o))throw new Error(`x=${i}, y=${o}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=i,this.y=o,this.key=Aa(0,t,t,i,o)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,i,o){const c=(m=this.y,v=this.z,S=Tf(256*(f=this.x),256*(m=Math.pow(2,v)-m-1),v),E=Tf(256*(f+1),256*(m+1),v),S[0]+","+S[1]+","+E[0]+","+E[1]);var f,m,v,S,E;const L=function(V,q,H){let W,X="";for(let ee=V;ee>0;ee--)W=1<<ee-1,X+=(q&W?1:0)+(H&W?2:0);return X}(this.z,this.x,this.y);return t[(this.x+this.y)%t.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(o==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace(/{ratio}/g,i>1?"@2x":"").replace(/{quadkey}/g,L).replace(/{bbox-epsg-3857}/g,c)}isChildOf(t){const i=this.z-t.z;return i>0&&t.x===this.x>>i&&t.y===this.y>>i}getTilePoint(t){const i=Math.pow(2,this.z);return new C((t.x*i-this.x)*Zt,(t.y*i-this.y)*Zt)}toString(){return`${this.z}/${this.x}/${this.y}`}}class Cf{constructor(t,i){this.wrap=t,this.canonical=i,this.key=Aa(t,i.z,i.z,i.x,i.y)}}class Gi{constructor(t,i,o,c,f){if(this.terrainRttPosMatrix32f=null,t<o)throw new Error(`overscaledZ should be >= z; overscaledZ = ${t}; z = ${o}`);this.overscaledZ=t,this.wrap=i,this.canonical=new xp(o,+c,+f),this.key=Aa(i,t,o,c,f)}clone(){return new Gi(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const i=this.canonical.z-t;return t>this.canonical.z?new Gi(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Gi(t,this.wrap,t,this.canonical.x>>i,this.canonical.y>>i)}calculateScaledKey(t,i){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const o=this.canonical.z-t;return t>this.canonical.z?Aa(this.wrap*+i,t,this.canonical.z,this.canonical.x,this.canonical.y):Aa(this.wrap*+i,t,t,this.canonical.x>>o,this.canonical.y>>o)}isChildOf(t){if(t.wrap!==this.wrap)return!1;const i=this.canonical.z-t.canonical.z;return t.overscaledZ===0||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>i&&t.canonical.y===this.canonical.y>>i}children(t){if(this.overscaledZ>=t)return[new Gi(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const i=this.canonical.z+1,o=2*this.canonical.x,c=2*this.canonical.y;return[new Gi(i,this.wrap,i,o,c),new Gi(i,this.wrap,i,o+1,c),new Gi(i,this.wrap,i,o,c+1),new Gi(i,this.wrap,i,o+1,c+1)]}isLessThan(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))}wrapped(){return new Gi(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new Gi(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Cf(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(t){return this.canonical.getTilePoint(new Hl(t.x-this.wrap,t.y))}}function Aa(n,t,i,o,c){(n*=2)<0&&(n=-1*n-1);const f=1<<i;return(f*f*n+f*c+o).toString(36)+i.toString(36)+t.toString(36)}it("CanonicalTileID",xp),it("OverscaledTileID",Gi,{omit:["terrainRttPosMatrix32f"]});class Ef{constructor(t,i,o,c=1,f=1,m=1,v=0){if(this.uid=t,i.height!==i.width)throw new RangeError("DEM tiles must be square");if(o&&!["mapbox","terrarium","custom"].includes(o))return void Gr(`"${o}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);this.stride=i.height;const S=this.dim=i.height-2;switch(this.data=new Uint32Array(i.data.buffer),o){case"terrarium":this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case"custom":this.redFactor=c,this.greenFactor=f,this.blueFactor=m,this.baseShift=v;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4}for(let E=0;E<S;E++)this.data[this._idx(-1,E)]=this.data[this._idx(0,E)],this.data[this._idx(S,E)]=this.data[this._idx(S-1,E)],this.data[this._idx(E,-1)]=this.data[this._idx(E,0)],this.data[this._idx(E,S)]=this.data[this._idx(E,S-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(S,-1)]=this.data[this._idx(S-1,0)],this.data[this._idx(-1,S)]=this.data[this._idx(0,S-1)],this.data[this._idx(S,S)]=this.data[this._idx(S-1,S-1)],this.min=Number.MAX_SAFE_INTEGER,this.max=Number.MIN_SAFE_INTEGER;for(let E=0;E<S;E++)for(let L=0;L<S;L++){const V=this.get(E,L);V>this.max&&(this.max=V),V<this.min&&(this.min=V)}}get(t,i){const o=new Uint8Array(this.data.buffer),c=4*this._idx(t,i);return this.unpack(o[c],o[c+1],o[c+2])}getUnpackVector(){return[this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(t,i){if(t<-1||t>=this.dim+1||i<-1||i>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(i+1)*this.stride+(t+1)}unpack(t,i,o){return t*this.redFactor+i*this.greenFactor+o*this.blueFactor-this.baseShift}getPixels(){return new Ki({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,i,o){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let c=i*this.dim,f=i*this.dim+this.dim,m=o*this.dim,v=o*this.dim+this.dim;switch(i){case-1:c=f-1;break;case 1:f=c+1}switch(o){case-1:m=v-1;break;case 1:v=m+1}const S=-i*this.dim,E=-o*this.dim;for(let L=m;L<v;L++)for(let V=c;V<f;V++)this.data[this._idx(V,L)]=t.data[this._idx(V+S,L+E)]}}it("DEMData",Ef);class Pf{constructor(t){this._stringToNumber={},this._numberToString=[];for(let i=0;i<t.length;i++){const o=t[i];this._stringToNumber[o]=i,this._numberToString[i]=o}}encode(t){return this._stringToNumber[t]}decode(t){if(t>=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class If{constructor(t,i,o,c,f){this.type="Feature",this._vectorTileFeature=t,t._z=i,t._x=o,t._y=c,this.properties=t.properties,this.id=f}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(t){this._geometry=t}toJSON(){const t={geometry:this.geometry};for(const i in this)i!=="_geometry"&&i!=="_vectorTileFeature"&&(t[i]=this[i]);return t}}class Mf{constructor(t,i){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Es(Zt,16,0),this.grid3D=new Es(Zt,16,0),this.featureIndexArray=new Re,this.promoteId=i}insert(t,i,o,c,f,m){const v=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(o,c,f);const S=m?this.grid3D:this.grid;for(let E=0;E<i.length;E++){const L=i[E],V=[1/0,1/0,-1/0,-1/0];for(let q=0;q<L.length;q++){const H=L[q];V[0]=Math.min(V[0],H.x),V[1]=Math.min(V[1],H.y),V[2]=Math.max(V[2],H.x),V[3]=Math.max(V[3],H.y)}V[0]<Zt&&V[1]<Zt&&V[2]>=0&&V[3]>=0&&S.insert(v,V[0],V[1],V[2],V[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new Fl.VectorTile(new lp(this.rawTileData)).layers,this.sourceLayerCoder=new Pf(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,i,o,c){this.loadVTLayers();const f=t.params,m=Zt/t.tileSize/t.scale,v=oo(f.filter),S=t.queryGeometry,E=t.queryPadding*m,L=Rf(S),V=this.grid.query(L.minX-E,L.minY-E,L.maxX+E,L.maxY+E),q=Rf(t.cameraQueryGeometry),H=this.grid3D.query(q.minX-E,q.minY-E,q.maxX+E,q.maxY+E,(ee,ae,ve,he)=>function(j,Y,pe,Pe,je){for(const Be of j)if(Y<=Be.x&&pe<=Be.y&&Pe>=Be.x&&je>=Be.y)return!0;const Me=[new C(Y,pe),new C(Y,je),new C(Pe,je),new C(Pe,pe)];if(j.length>2){for(const Be of Me)if(bo(j,Be))return!0}for(let Be=0;Be<j.length-1;Be++)if(ky(j[Be],j[Be+1],Me))return!0;return!1}(t.cameraQueryGeometry,ee-E,ae-E,ve+E,he+E));for(const ee of H)V.push(ee);V.sort(F_);const W={};let X;for(let ee=0;ee<V.length;ee++){const ae=V[ee];if(ae===X)continue;X=ae;const ve=this.featureIndexArray.get(ae);let he=null;this.loadMatchingFeature(W,ve.bucketIndex,ve.sourceLayerIndex,ve.featureIndex,v,f.layers,f.availableImages,i,o,c,(j,Y,pe)=>(he||(he=vo(j)),Y.queryIntersectsFeature({queryGeometry:S,feature:j,featureState:pe,geometry:he,zoom:this.z,transform:t.transform,pixelsToTileUnits:m,pixelPosMatrix:t.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:t.getElevation})))}return W}loadMatchingFeature(t,i,o,c,f,m,v,S,E,L,V){const q=this.bucketLayerIDs[i];if(m&&!q.some(ee=>m.has(ee)))return;const H=this.sourceLayerCoder.decode(o),W=this.vtLayers[H].feature(c);if(f.needGeometry){const ee=xo(W,!0);if(!f.filter(new nr(this.tileID.overscaledZ),ee,this.tileID.canonical))return}else if(!f.filter(new nr(this.tileID.overscaledZ),W))return;const X=this.getId(W,H);for(let ee=0;ee<q.length;ee++){const ae=q[ee];if(m&&!m.has(ae))continue;const ve=S[ae];if(!ve)continue;let he={};X&&L&&(he=L.getState(ve.sourceLayer||"_geojsonTileLayer",X));const j=ai({},E[ae]);j.paint=Lf(j.paint,ve.paint,W,he,v),j.layout=Lf(j.layout,ve.layout,W,he,v);const Y=!V||V(W,ve,he);if(!Y)continue;const pe=new If(W,this.z,this.x,this.y,X);pe.layer=j;let Pe=t[ae];Pe===void 0&&(Pe=t[ae]=[]),Pe.push({featureIndex:c,feature:pe,intersectionZ:Y})}}lookupSymbolFeatures(t,i,o,c,f,m,v,S){const E={};this.loadVTLayers();const L=oo(f);for(const V of t)this.loadMatchingFeature(E,o,c,V,L,m,v,S,i);return E}hasLayer(t){for(const i of this.bucketLayerIDs)for(const o of i)if(t===o)return!0;return!1}getId(t,i){var o;let c=t.id;return this.promoteId&&(c=t.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[i]],typeof c=="boolean"&&(c=Number(c)),c===void 0&&(!((o=t.properties)===null||o===void 0)&&o.cluster)&&this.promoteId&&(c=Number(t.properties.cluster_id))),c}}function Lf(n,t,i,o,c){return tn(n,(f,m)=>{const v=t instanceof ga?t.get(m):null;return v&&v.evaluate?v.evaluate(i,o,c):v})}function Rf(n){let t=1/0,i=1/0,o=-1/0,c=-1/0;for(const f of n)t=Math.min(t,f.x),i=Math.min(i,f.y),o=Math.max(o,f.x),c=Math.max(c,f.y);return{minX:t,minY:i,maxX:o,maxY:c}}function F_(n,t){return t-n}function Df(n,t,i,o,c){const f=[];for(let m=0;m<n.length;m++){const v=n[m];let S;for(let E=0;E<v.length-1;E++){let L=v[E],V=v[E+1];L.x<t&&V.x<t||(L.x<t?L=new C(t,L.y+(t-L.x)/(V.x-L.x)*(V.y-L.y))._round():V.x<t&&(V=new C(t,L.y+(t-L.x)/(V.x-L.x)*(V.y-L.y))._round()),L.y<i&&V.y<i||(L.y<i?L=new C(L.x+(i-L.y)/(V.y-L.y)*(V.x-L.x),i)._round():V.y<i&&(V=new C(L.x+(i-L.y)/(V.y-L.y)*(V.x-L.x),i)._round()),L.x>=o&&V.x>=o||(L.x>=o?L=new C(o,L.y+(o-L.x)/(V.x-L.x)*(V.y-L.y))._round():V.x>=o&&(V=new C(o,L.y+(o-L.x)/(V.x-L.x)*(V.y-L.y))._round()),L.y>=c&&V.y>=c||(L.y>=c?L=new C(L.x+(c-L.y)/(V.y-L.y)*(V.x-L.x),c)._round():V.y>=c&&(V=new C(L.x+(c-L.y)/(V.y-L.y)*(V.x-L.x),c)._round()),S&&L.equals(S[S.length-1])||(S=[L],f.push(S)),S.push(V)))))}}return f}it("FeatureIndex",Mf,{omit:["rawTileData","sourceLayerCoder"]});class zs extends C{constructor(t,i,o,c){super(t,i),this.angle=o,c!==void 0&&(this.segment=c)}clone(){return new zs(this.x,this.y,this.angle,this.segment)}}function zf(n,t,i,o,c){if(t.segment===void 0||i===0)return!0;let f=t,m=t.segment+1,v=0;for(;v>-i/2;){if(m--,m<0)return!1;v-=n[m].dist(f),f=n[m]}v+=n[m].dist(n[m+1]),m++;const S=[];let E=0;for(;v<i/2;){const L=n[m],V=n[m+1];if(!V)return!1;let q=n[m-1].angleTo(L)-L.angleTo(V);for(q=Math.abs((q+3*Math.PI)%(2*Math.PI)-Math.PI),S.push({distance:v,angleDelta:q}),E+=q;v-S[0].distance>o;)E-=S.shift().angleDelta;if(E>c)return!1;m++,v+=L.dist(V)}return!0}function Bf(n){let t=0;for(let i=0;i<n.length-1;i++)t+=n[i].dist(n[i+1]);return t}function Vf(n,t,i){return n?.6*t*i:0}function Ff(n,t){return Math.max(n?n.right-n.left:0,t?t.right-t.left:0)}function O_(n,t,i,o,c,f){const m=Vf(i,c,f),v=Ff(i,o)*f;let S=0;const E=Bf(n)/2;for(let L=0;L<n.length-1;L++){const V=n[L],q=n[L+1],H=V.dist(q);if(S+H>E){const W=(E-S)/H,X=rn.number(V.x,q.x,W),ee=rn.number(V.y,q.y,W),ae=new zs(X,ee,q.angleTo(V),L);return ae._round(),!m||zf(n,ae,v,m,t)?ae:void 0}S+=H}}function N_(n,t,i,o,c,f,m,v,S){const E=Vf(o,f,m),L=Ff(o,c),V=L*m,q=n[0].x===0||n[0].x===S||n[0].y===0||n[0].y===S;return t-V<t/4&&(t=V+t/4),Of(n,q?t/2*v%t:(L/2+2*f)*m*v%t,t,E,i,V,q,!1,S)}function Of(n,t,i,o,c,f,m,v,S){const E=f/2,L=Bf(n);let V=0,q=t-i,H=[];for(let W=0;W<n.length-1;W++){const X=n[W],ee=n[W+1],ae=X.dist(ee),ve=ee.angleTo(X);for(;q+i<V+ae;){q+=i;const he=(q-V)/ae,j=rn.number(X.x,ee.x,he),Y=rn.number(X.y,ee.y,he);if(j>=0&&j<S&&Y>=0&&Y<S&&q-E>=0&&q+E<=L){const pe=new zs(j,Y,ve,W);pe._round(),o&&!zf(n,pe,f,o,c)||H.push(pe)}}V+=ae}return v||H.length||m||(H=Of(n,V/2,i,o,c,f,m,!0,S)),H}it("Anchor",zs);const Wl=Ci;function Nf(n,t,i,o){const c=[],f=n.image,m=f.pixelRatio,v=f.paddedRect.w-2*Wl,S=f.paddedRect.h-2*Wl;let E={x1:n.left,y1:n.top,x2:n.right,y2:n.bottom};const L=f.stretchX||[[0,v]],V=f.stretchY||[[0,S]],q=(Oe,st)=>Oe+st[1]-st[0],H=L.reduce(q,0),W=V.reduce(q,0),X=v-H,ee=S-W;let ae=0,ve=H,he=0,j=W,Y=0,pe=X,Pe=0,je=ee;if(f.content&&o){const Oe=f.content,st=Oe[2]-Oe[0],pt=Oe[3]-Oe[1];(f.textFitWidth||f.textFitHeight)&&(E=pf(n)),ae=pu(L,0,Oe[0]),he=pu(V,0,Oe[1]),ve=pu(L,Oe[0],Oe[2]),j=pu(V,Oe[1],Oe[3]),Y=Oe[0]-ae,Pe=Oe[1]-he,pe=st-ve,je=pt-j}const Me=E.x1,Be=E.y1,Ge=E.x2-Me,He=E.y2-Be,Je=(Oe,st,pt,ut)=>{const at=du(Oe.stretch-ae,ve,Ge,Me),zt=fu(Oe.fixed-Y,pe,Oe.stretch,H),wr=du(st.stretch-he,j,He,Be),Fr=fu(st.fixed-Pe,je,st.stretch,W),oi=du(pt.stretch-ae,ve,Ge,Me),Ji=fu(pt.fixed-Y,pe,pt.stretch,H),Ei=du(ut.stretch-he,j,He,Be),Yr=fu(ut.fixed-Pe,je,ut.stretch,W),mr=new C(at,wr),jr=new C(oi,wr),$r=new C(oi,Ei),ei=new C(at,Ei),vi=new C(zt/m,Fr/m),Xi=new C(Ji/m,Yr/m),Hr=t*Math.PI/180;if(Hr){const Wr=Math.sin(Hr),Zr=Math.cos(Hr),Lr=[Zr,-Wr,Wr,Zr];mr._matMult(Lr),jr._matMult(Lr),ei._matMult(Lr),$r._matMult(Lr)}const Pi=Oe.stretch+Oe.fixed,Or=st.stretch+st.fixed;return{tl:mr,tr:jr,bl:ei,br:$r,tex:{x:f.paddedRect.x+Wl+Pi,y:f.paddedRect.y+Wl+Or,w:pt.stretch+pt.fixed-Pi,h:ut.stretch+ut.fixed-Or},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:vi,pixelOffsetBR:Xi,minFontScaleX:pe/m/Ge,minFontScaleY:je/m/He,isSDF:i}};if(o&&(f.stretchX||f.stretchY)){const Oe=qf(L,X,H),st=qf(V,ee,W);for(let pt=0;pt<Oe.length-1;pt++){const ut=Oe[pt],at=Oe[pt+1];for(let zt=0;zt<st.length-1;zt++)c.push(Je(ut,st[zt],at,st[zt+1]))}}else c.push(Je({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:v+1},{fixed:0,stretch:S+1}));return c}function pu(n,t,i){let o=0;for(const c of n)o+=Math.max(t,Math.min(i,c[1]))-Math.max(t,Math.min(i,c[0]));return o}function qf(n,t,i){const o=[{fixed:-1,stretch:0}];for(const[c,f]of n){const m=o[o.length-1];o.push({fixed:c-m.stretch,stretch:m.stretch}),o.push({fixed:c-m.stretch,stretch:m.stretch+(f-c)})}return o.push({fixed:t+Wl,stretch:i}),o}function du(n,t,i,o){return n/t*i+o}function fu(n,t,i,o){return n-t*i/o}class mu{constructor(t,i,o,c,f,m,v,S,E,L){var V;if(this.boxStartIndex=t.length,E){let q=m.top,H=m.bottom;const W=m.collisionPadding;W&&(q-=W[1],H+=W[3]);let X=H-q;X>0&&(X=Math.max(10,X),this.circleDiameter=X)}else{const q=!((V=m.image)===null||V===void 0)&&V.content&&(m.image.textFitWidth||m.image.textFitHeight)?pf(m):{x1:m.left,y1:m.top,x2:m.right,y2:m.bottom};q.y1=q.y1*v-S[0],q.y2=q.y2*v+S[2],q.x1=q.x1*v-S[3],q.x2=q.x2*v+S[1];const H=m.collisionPadding;if(H&&(q.x1-=H[0]*v,q.y1-=H[1]*v,q.x2+=H[2]*v,q.y2+=H[3]*v),L){const W=new C(q.x1,q.y1),X=new C(q.x2,q.y1),ee=new C(q.x1,q.y2),ae=new C(q.x2,q.y2),ve=L*Math.PI/180;W._rotate(ve),X._rotate(ve),ee._rotate(ve),ae._rotate(ve),q.x1=Math.min(W.x,X.x,ee.x,ae.x),q.x2=Math.max(W.x,X.x,ee.x,ae.x),q.y1=Math.min(W.y,X.y,ee.y,ae.y),q.y2=Math.max(W.y,X.y,ee.y,ae.y)}t.emplaceBack(i.x,i.y,q.x1,q.y1,q.x2,q.y2,o,c,f)}this.boxEndIndex=t.length}}class q_{constructor(t=[],i=(o,c)=>o<c?-1:o>c?1:0){if(this.data=t,this.length=this.data.length,this.compare=i,this.length>0)for(let o=(this.length>>1)-1;o>=0;o--)this._down(o)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;const t=this.data[0],i=this.data.pop();return--this.length>0&&(this.data[0]=i,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:i,compare:o}=this,c=i[t];for(;t>0;){const f=t-1>>1,m=i[f];if(o(c,m)>=0)break;i[t]=m,t=f}i[t]=c}_down(t){const{data:i,compare:o}=this,c=this.length>>1,f=i[t];for(;t<c;){let m=1+(t<<1);const v=m+1;if(v<this.length&&o(i[v],i[m])<0&&(m=v),o(i[m],f)>=0)break;i[t]=i[m],t=m}i[t]=f}}function U_(n,t=1,i=!1){let o=1/0,c=1/0,f=-1/0,m=-1/0;const v=n[0];for(let H=0;H<v.length;H++){const W=v[H];(!H||W.x<o)&&(o=W.x),(!H||W.y<c)&&(c=W.y),(!H||W.x>f)&&(f=W.x),(!H||W.y>m)&&(m=W.y)}const S=Math.min(f-o,m-c);let E=S/2;const L=new q_([],j_);if(S===0)return new C(o,c);for(let H=o;H<f;H+=S)for(let W=c;W<m;W+=S)L.push(new ka(H+E,W+E,E,n));let V=function(H){let W=0,X=0,ee=0;const ae=H[0];for(let ve=0,he=ae.length,j=he-1;ve<he;j=ve++){const Y=ae[ve],pe=ae[j],Pe=Y.x*pe.y-pe.x*Y.y;X+=(Y.x+pe.x)*Pe,ee+=(Y.y+pe.y)*Pe,W+=3*Pe}return new ka(X/W,ee/W,0,H)}(n),q=L.length;for(;L.length;){const H=L.pop();(H.d>V.d||!V.d)&&(V=H,i&&console.log("found best %d after %d probes",Math.round(1e4*H.d)/1e4,q)),H.max-V.d<=t||(E=H.h/2,L.push(new ka(H.p.x-E,H.p.y-E,E,n)),L.push(new ka(H.p.x+E,H.p.y-E,E,n)),L.push(new ka(H.p.x-E,H.p.y+E,E,n)),L.push(new ka(H.p.x+E,H.p.y+E,E,n)),q+=4)}return i&&(console.log(`num probes: ${q}`),console.log(`best distance: ${V.d}`)),V.p}function j_(n,t){return t.max-n.max}function ka(n,t,i,o){this.p=new C(n,t),this.h=i,this.d=function(c,f){let m=!1,v=1/0;for(let S=0;S<f.length;S++){const E=f[S];for(let L=0,V=E.length,q=V-1;L<V;q=L++){const H=E[L],W=E[q];H.y>c.y!=W.y>c.y&&c.x<(W.x-H.x)*(c.y-H.y)/(W.y-H.y)+H.x&&(m=!m),v=Math.min(v,xd(c,H,W))}}return(m?1:-1)*Math.sqrt(v)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}var si;x.aB=void 0,(si=x.aB||(x.aB={}))[si.center=1]="center",si[si.left=2]="left",si[si.right=3]="right",si[si.top=4]="top",si[si.bottom=5]="bottom",si[si["top-left"]=6]="top-left",si[si["top-right"]=7]="top-right",si[si["bottom-left"]=8]="bottom-left",si[si["bottom-right"]=9]="bottom-right";const Bs=7,bp=Number.POSITIVE_INFINITY;function Uf(n,t){return t[1]!==bp?function(i,o,c){let f=0,m=0;switch(o=Math.abs(o),c=Math.abs(c),i){case"top-right":case"top-left":case"top":m=c-Bs;break;case"bottom-right":case"bottom-left":case"bottom":m=-c+Bs}switch(i){case"top-right":case"bottom-right":case"right":f=-o;break;case"top-left":case"bottom-left":case"left":f=o}return[f,m]}(n,t[0],t[1]):function(i,o){let c=0,f=0;o<0&&(o=0);const m=o/Math.SQRT2;switch(i){case"top-right":case"top-left":f=m-Bs;break;case"bottom-right":case"bottom-left":f=-m+Bs;break;case"bottom":f=-o+Bs;break;case"top":f=o-Bs}switch(i){case"top-right":case"bottom-right":c=-m;break;case"top-left":case"bottom-left":c=m;break;case"left":c=o;break;case"right":c=-o}return[c,f]}(n,t[0])}function jf(n,t,i){var o;const c=n.layout,f=(o=c.get("text-variable-anchor-offset"))===null||o===void 0?void 0:o.evaluate(t,{},i);if(f){const v=f.values,S=[];for(let E=0;E<v.length;E+=2){const L=S[E]=v[E],V=v[E+1].map(q=>q*Vr);L.startsWith("top")?V[1]-=Bs:L.startsWith("bottom")&&(V[1]+=Bs),S[E+1]=V}return new hi(S)}const m=c.get("text-variable-anchor");if(m){let v;v=n._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[c.get("text-radial-offset").evaluate(t,{},i)*Vr,bp]:c.get("text-offset").evaluate(t,{},i).map(E=>E*Vr);const S=[];for(const E of m)S.push(E,Uf(E,v));return new hi(S)}return null}function wp(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function H_(n,t,i,o,c,f,m,v,S,E,L,V){let q=f.textMaxSize.evaluate(t,{});q===void 0&&(q=m);const H=n.layers[0].layout,W=H.get("icon-offset").evaluate(t,{},L),X=Wf(i.horizontal),ee=m/24,ae=n.tilePixelRatio*ee,ve=n.tilePixelRatio*q/24,he=n.tilePixelRatio*v,j=n.tilePixelRatio*H.get("symbol-spacing"),Y=H.get("text-padding")*n.tilePixelRatio,pe=function(pt,ut,at,zt=1){const wr=pt.get("icon-padding").evaluate(ut,{},at),Fr=wr&&wr.values;return[Fr[0]*zt,Fr[1]*zt,Fr[2]*zt,Fr[3]*zt]}(H,t,L,n.tilePixelRatio),Pe=H.get("text-max-angle")/180*Math.PI,je=H.get("text-rotation-alignment")!=="viewport"&&H.get("symbol-placement")!=="point",Me=H.get("icon-rotation-alignment")==="map"&&H.get("symbol-placement")!=="point",Be=H.get("symbol-placement"),Ge=j/2,He=H.get("icon-text-fit");let Je;o&&He!=="none"&&(n.allowVerticalPlacement&&i.vertical&&(Je=df(o,i.vertical,He,H.get("icon-text-fit-padding"),W,ee)),X&&(o=df(o,X,He,H.get("icon-text-fit-padding"),W,ee)));const Oe=L?V.line.getGranularityForZoomLevel(L.z):1,st=(pt,ut)=>{ut.x<0||ut.x>=Zt||ut.y<0||ut.y>=Zt||function(at,zt,wr,Fr,oi,Ji,Ei,Yr,mr,jr,$r,ei,vi,Xi,Hr,Pi,Or,Wr,Zr,Lr,or,mn,Ta,gn,K_){const Ca=at.addToLineVertexArray(zt,wr);let Ao,Ea,Pa,Ia,Jf=0,Xf=0,Qf=0,Yf=0,Ip=-1,Mp=-1;const rs={};let $f=dn("");if(at.allowVerticalPlacement&&Fr.vertical){const fi=Yr.layout.get("text-rotate").evaluate(or,{},gn)+90;Pa=new mu(mr,zt,jr,$r,ei,Fr.vertical,vi,Xi,Hr,fi),Ei&&(Ia=new mu(mr,zt,jr,$r,ei,Ei,Or,Wr,Hr,fi))}if(oi){const fi=Yr.layout.get("icon-rotate").evaluate(or,{}),Qi=Yr.layout.get("icon-text-fit")!=="none",ko=Nf(oi,fi,Ta,Qi),_n=Ei?Nf(Ei,fi,Ta,Qi):void 0;Ea=new mu(mr,zt,jr,$r,ei,oi,Or,Wr,!1,fi),Jf=4*ko.length;const To=at.iconSizeData;let Dn=null;To.kind==="source"?(Dn=[Rn*Yr.layout.get("icon-size").evaluate(or,{})],Dn[0]>Rs&&Gr(`${at.layerIds[0]}: Value for "icon-size" is >= ${jl}. Reduce your "icon-size".`)):To.kind==="composite"&&(Dn=[Rn*mn.compositeIconSizes[0].evaluate(or,{},gn),Rn*mn.compositeIconSizes[1].evaluate(or,{},gn)],(Dn[0]>Rs||Dn[1]>Rs)&&Gr(`${at.layerIds[0]}: Value for "icon-size" is >= ${jl}. Reduce your "icon-size".`)),at.addSymbols(at.icon,ko,Dn,Lr,Zr,or,x.al.none,zt,Ca.lineStartIndex,Ca.lineLength,-1,gn),Ip=at.icon.placedSymbolArray.length-1,_n&&(Xf=4*_n.length,at.addSymbols(at.icon,_n,Dn,Lr,Zr,or,x.al.vertical,zt,Ca.lineStartIndex,Ca.lineLength,-1,gn),Mp=at.icon.placedSymbolArray.length-1)}const em=Object.keys(Fr.horizontal);for(const fi of em){const Qi=Fr.horizontal[fi];if(!Ao){$f=dn(Qi.text);const _n=Yr.layout.get("text-rotate").evaluate(or,{},gn);Ao=new mu(mr,zt,jr,$r,ei,Qi,vi,Xi,Hr,_n)}const ko=Qi.positionedLines.length===1;if(Qf+=Hf(at,zt,Qi,Ji,Yr,Hr,or,Pi,Ca,Fr.vertical?x.al.horizontal:x.al.horizontalOnly,ko?em:[fi],rs,Ip,mn,gn),ko)break}Fr.vertical&&(Yf+=Hf(at,zt,Fr.vertical,Ji,Yr,Hr,or,Pi,Ca,x.al.vertical,["vertical"],rs,Mp,mn,gn));const G_=Ao?Ao.boxStartIndex:at.collisionBoxArray.length,J_=Ao?Ao.boxEndIndex:at.collisionBoxArray.length,X_=Pa?Pa.boxStartIndex:at.collisionBoxArray.length,Q_=Pa?Pa.boxEndIndex:at.collisionBoxArray.length,Y_=Ea?Ea.boxStartIndex:at.collisionBoxArray.length,$_=Ea?Ea.boxEndIndex:at.collisionBoxArray.length,ev=Ia?Ia.boxStartIndex:at.collisionBoxArray.length,tv=Ia?Ia.boxEndIndex:at.collisionBoxArray.length;let yn=-1;const yu=(fi,Qi)=>fi&&fi.circleDiameter?Math.max(fi.circleDiameter,Qi):Qi;yn=yu(Ao,yn),yn=yu(Pa,yn),yn=yu(Ea,yn),yn=yu(Ia,yn);const tm=yn>-1?1:0;tm&&(yn*=K_/Vr),at.glyphOffsetArray.length>=Sa.MAX_GLYPHS&&Gr("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),or.sortKey!==void 0&&at.addToSortKeyRanges(at.symbolInstances.length,or.sortKey);const rv=jf(Yr,or,gn),[iv,nv]=function(fi,Qi){const ko=fi.length,_n=Qi==null?void 0:Qi.values;if((_n==null?void 0:_n.length)>0)for(let To=0;To<_n.length;To+=2){const Dn=_n[To+1];fi.emplaceBack(x.aB[_n[To]],Dn[0],Dn[1])}return[ko,fi.length]}(at.textAnchorOffsets,rv);at.symbolInstances.emplaceBack(zt.x,zt.y,rs.right>=0?rs.right:-1,rs.center>=0?rs.center:-1,rs.left>=0?rs.left:-1,rs.vertical||-1,Ip,Mp,$f,G_,J_,X_,Q_,Y_,$_,ev,tv,jr,Qf,Yf,Jf,Xf,tm,0,vi,yn,iv,nv)}(n,ut,pt,i,o,c,Je,n.layers[0],n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,ae,[Y,Y,Y,Y],je,S,he,pe,Me,W,t,f,E,L,m)};if(Be==="line")for(const pt of Df(t.geometry,0,0,Zt,Zt)){const ut=So(pt,Oe),at=N_(ut,j,Pe,i.vertical||X,o,24,ve,n.overscaling,Zt);for(const zt of at)X&&W_(n,X.text,Ge,zt)||st(ut,zt)}else if(Be==="line-center"){for(const pt of t.geometry)if(pt.length>1){const ut=So(pt,Oe),at=O_(ut,Pe,i.vertical||X,o,24,ve);at&&st(ut,at)}}else if(t.type==="Polygon")for(const pt of jo(t.geometry,0)){const ut=U_(pt,16);st(So(pt[0],Oe,!0),new zs(ut.x,ut.y,0))}else if(t.type==="LineString")for(const pt of t.geometry){const ut=So(pt,Oe);st(ut,new zs(ut[0].x,ut[0].y,0))}else if(t.type==="Point")for(const pt of t.geometry)for(const ut of pt)st([ut],new zs(ut.x,ut.y,0))}function Hf(n,t,i,o,c,f,m,v,S,E,L,V,q,H,W){const X=function(ve,he,j,Y,pe,Pe,je,Me){const Be=Y.layout.get("text-rotate").evaluate(Pe,{})*Math.PI/180,Ge=[];for(const He of he.positionedLines)for(const Je of He.positionedGlyphs){if(!Je.rect)continue;const Oe=Je.rect||{};let st=__+1,pt=!0,ut=1,at=0;const zt=(pe||Me)&&Je.vertical,wr=Je.metrics.advance*Je.scale/2;if(Me&&he.verticalizable&&(at=He.lineOffset/2-(Je.imageName?-(Vr-Je.metrics.width*Je.scale)/2:(Je.scale-1)*Vr)),Je.imageName){const Wr=je[Je.imageName];pt=Wr.sdf,ut=Wr.pixelRatio,st=Ci/ut}const Fr=pe?[Je.x+wr,Je.y]:[0,0];let oi=pe?[0,0]:[Je.x+wr+j[0],Je.y+j[1]-at],Ji=[0,0];zt&&(Ji=oi,oi=[0,0]);const Ei=Je.metrics.isDoubleResolution?2:1,Yr=(Je.metrics.left-st)*Je.scale-wr+oi[0],mr=(-Je.metrics.top-st)*Je.scale+oi[1],jr=Yr+Oe.w/Ei*Je.scale/ut,$r=mr+Oe.h/Ei*Je.scale/ut,ei=new C(Yr,mr),vi=new C(jr,mr),Xi=new C(Yr,$r),Hr=new C(jr,$r);if(zt){const Wr=new C(-wr,wr-au),Zr=-Math.PI/2,Lr=Vr/2-wr,or=new C(5-au-Lr,-(Je.imageName?Lr:0)),mn=new C(...Ji);ei._rotateAround(Zr,Wr)._add(or)._add(mn),vi._rotateAround(Zr,Wr)._add(or)._add(mn),Xi._rotateAround(Zr,Wr)._add(or)._add(mn),Hr._rotateAround(Zr,Wr)._add(or)._add(mn)}if(Be){const Wr=Math.sin(Be),Zr=Math.cos(Be),Lr=[Zr,-Wr,Wr,Zr];ei._matMult(Lr),vi._matMult(Lr),Xi._matMult(Lr),Hr._matMult(Lr)}const Pi=new C(0,0),Or=new C(0,0);Ge.push({tl:ei,tr:vi,bl:Xi,br:Hr,tex:Oe,writingMode:he.writingMode,glyphOffset:Fr,sectionIndex:Je.sectionIndex,isSDF:pt,pixelOffsetTL:Pi,pixelOffsetBR:Or,minFontScaleX:0,minFontScaleY:0})}return Ge}(0,i,v,c,f,m,o,n.allowVerticalPlacement),ee=n.textSizeData;let ae=null;ee.kind==="source"?(ae=[Rn*c.layout.get("text-size").evaluate(m,{})],ae[0]>Rs&&Gr(`${n.layerIds[0]}: Value for "text-size" is >= ${jl}. Reduce your "text-size".`)):ee.kind==="composite"&&(ae=[Rn*H.compositeTextSizes[0].evaluate(m,{},W),Rn*H.compositeTextSizes[1].evaluate(m,{},W)],(ae[0]>Rs||ae[1]>Rs)&&Gr(`${n.layerIds[0]}: Value for "text-size" is >= ${jl}. Reduce your "text-size".`)),n.addSymbols(n.text,X,ae,v,f,m,E,t,S.lineStartIndex,S.lineLength,q,W);for(const ve of L)V[ve]=n.text.placedSymbolArray.length-1;return 4*X.length}function Wf(n){for(const t in n)return n[t];return null}function W_(n,t,i,o){const c=n.compareText;if(t in c){const f=c[t];for(let m=f.length-1;m>=0;m--)if(o.dist(f[m])<i)return!0}else c[t]=[];return c[t].push(o),!1}const Zf=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class Sp{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[i,o]=new Uint8Array(t,0,2);if(i!==219)throw new Error("Data does not appear to be in a KDBush format.");const c=o>>4;if(c!==1)throw new Error(`Got v${c} data when expected v1.`);const f=Zf[15&o];if(!f)throw new Error("Unrecognized array type.");const[m]=new Uint16Array(t,2,1),[v]=new Uint32Array(t,4,1);return new Sp(v,m,f,t)}constructor(t,i=64,o=Float64Array,c){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+i,2),65535),this.ArrayType=o,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const f=Zf.indexOf(this.ArrayType),m=2*t*this.ArrayType.BYTES_PER_ELEMENT,v=t*this.IndexArrayType.BYTES_PER_ELEMENT,S=(8-v%8)%8;if(f<0)throw new Error(`Unexpected typed array class: ${o}.`);c&&c instanceof ArrayBuffer?(this.data=c,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+S,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+m+v+S),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+v+S,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+f]),new Uint16Array(this.data,2,1)[0]=i,new Uint32Array(this.data,4,1)[0]=t)}add(t,i){const o=this._pos>>1;return this.ids[o]=o,this.coords[this._pos++]=t,this.coords[this._pos++]=i,o}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Ap(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,i,o,c){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:f,coords:m,nodeSize:v}=this,S=[0,f.length-1,0],E=[];for(;S.length;){const L=S.pop()||0,V=S.pop()||0,q=S.pop()||0;if(V-q<=v){for(let ee=q;ee<=V;ee++){const ae=m[2*ee],ve=m[2*ee+1];ae>=t&&ae<=o&&ve>=i&&ve<=c&&E.push(f[ee])}continue}const H=q+V>>1,W=m[2*H],X=m[2*H+1];W>=t&&W<=o&&X>=i&&X<=c&&E.push(f[H]),(L===0?t<=W:i<=X)&&(S.push(q),S.push(H-1),S.push(1-L)),(L===0?o>=W:c>=X)&&(S.push(H+1),S.push(V),S.push(1-L))}return E}within(t,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:c,coords:f,nodeSize:m}=this,v=[0,c.length-1,0],S=[],E=o*o;for(;v.length;){const L=v.pop()||0,V=v.pop()||0,q=v.pop()||0;if(V-q<=m){for(let ee=q;ee<=V;ee++)Gf(f[2*ee],f[2*ee+1],t,i)<=E&&S.push(c[ee]);continue}const H=q+V>>1,W=f[2*H],X=f[2*H+1];Gf(W,X,t,i)<=E&&S.push(c[H]),(L===0?t-o<=W:i-o<=X)&&(v.push(q),v.push(H-1),v.push(1-L)),(L===0?t+o>=W:i+o>=X)&&(v.push(H+1),v.push(V),v.push(1-L))}return S}}function Ap(n,t,i,o,c,f){if(c-o<=i)return;const m=o+c>>1;Kf(n,t,m,o,c,f),Ap(n,t,i,o,m-1,1-f),Ap(n,t,i,m+1,c,1-f)}function Kf(n,t,i,o,c,f){for(;c>o;){if(c-o>600){const E=c-o+1,L=i-o+1,V=Math.log(E),q=.5*Math.exp(2*V/3),H=.5*Math.sqrt(V*q*(E-q)/E)*(L-E/2<0?-1:1);Kf(n,t,i,Math.max(o,Math.floor(i-L*q/E+H)),Math.min(c,Math.floor(i+(E-L)*q/E+H)),f)}const m=t[2*i+f];let v=o,S=c;for(Zl(n,t,o,i),t[2*c+f]>m&&Zl(n,t,o,c);v<S;){for(Zl(n,t,v,S),v++,S--;t[2*v+f]<m;)v++;for(;t[2*S+f]>m;)S--}t[2*o+f]===m?Zl(n,t,o,S):(S++,Zl(n,t,S,c)),S<=i&&(o=S+1),i<=S&&(c=S-1)}}function Zl(n,t,i,o){kp(n,i,o),kp(t,2*i,2*o),kp(t,2*i+1,2*o+1)}function kp(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}function Gf(n,t,i,o){const c=n-i,f=t-o;return c*c+f*f}var Tp;x.co=void 0,(Tp=x.co||(x.co={})).create="create",Tp.load="load",Tp.fullLoad="fullLoad";let gu=null,Kl=[];const Cp=1e3/60,Ep="loadTime",Pp="fullLoadTime",Z_={mark(n){performance.mark(n)},frame(n){const t=n;gu!=null&&Kl.push(t-gu),gu=t},clearMetrics(){gu=null,Kl=[],performance.clearMeasures(Ep),performance.clearMeasures(Pp);for(const n in x.co)performance.clearMarks(x.co[n])},getPerformanceMetrics(){performance.measure(Ep,x.co.create,x.co.load),performance.measure(Pp,x.co.create,x.co.fullLoad);const n=performance.getEntriesByName(Ep)[0].duration,t=performance.getEntriesByName(Pp)[0].duration,i=Kl.length,o=1/(Kl.reduce((f,m)=>f+m,0)/i/1e3),c=Kl.filter(f=>f>Cp).reduce((f,m)=>f+(m-Cp)/Cp,0);return{loadTime:n,fullLoadTime:t,fps:o,percentDroppedFrames:c/(i+c)*100,totalFrames:i}}};x.$=Hl,x.A=Ce,x.B=rn,x.C=nr,x.D=ct,x.E=ye,x.F=zh,x.G=function(n){if(lt==null){const t=n.navigator?n.navigator.userAgent:null;lt=!!n.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome")))}return lt},x.H=class{constructor(n,t){this.target=n,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new B_(()=>this.process()),this.subscription=It(this.target,"message",i=>this.receive(i),!1),this.globalScope=nt(self)?n:window}registerMessageHandler(n,t){this.messageHandlers[n]=t}sendAsync(n,t){return new Promise((i,o)=>{const c=Math.round(1e18*Math.random()).toString(36).substring(0,10),f=t?It(t.signal,"abort",()=>{f==null||f.unsubscribe(),delete this.resolveRejects[c];const S={id:c,type:"<cancel>",origin:location.origin,targetMapId:n.targetMapId,sourceMapId:this.mapId};this.target.postMessage(S)},V_):null;this.resolveRejects[c]={resolve:S=>{f==null||f.unsubscribe(),i(S)},reject:S=>{f==null||f.unsubscribe(),o(S)}};const m=[],v=Object.assign(Object.assign({},n),{id:c,sourceMapId:this.mapId,origin:location.origin,data:Ps(n.data,m)});this.target.postMessage(v,{transfer:m})})}receive(n){const t=n.data,i=t.id;if(!(t.origin!=="file://"&&location.origin!=="file://"&&t.origin!=="resource://android"&&location.origin!=="resource://android"&&t.origin!==location.origin||t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type==="<cancel>"){delete this.tasks[i];const o=this.abortControllers[i];return delete this.abortControllers[i],void(o&&o.abort())}if(nt(self)||t.mustQueue)return this.tasks[i]=t,this.taskQueue.push(i),void this.invoker.trigger();this.processTask(i,t)}}process(){if(this.taskQueue.length===0)return;const n=this.taskQueue.shift(),t=this.tasks[n];delete this.tasks[n],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(n,t)}processTask(n,t){return s(this,void 0,void 0,function*(){if(t.type==="<response>"){const c=this.resolveRejects[n];return delete this.resolveRejects[n],c?void(t.error?c.reject(uo(t.error)):c.resolve(uo(t.data))):void 0}if(!this.messageHandlers[t.type])return void this.completeTask(n,new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const i=uo(t.data),o=new AbortController;this.abortControllers[n]=o;try{const c=yield this.messageHandlers[t.type](t.sourceMapId,i,o);this.completeTask(n,null,c)}catch(c){this.completeTask(n,c)}})}completeTask(n,t,i){const o=[];delete this.abortControllers[n];const c={id:n,type:"<response>",sourceMapId:this.mapId,origin:location.origin,error:t?Ps(t):null,data:Ps(i,o)};this.target.postMessage(c,{transfer:o})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},x.I=up,x.J=Xt,x.K=function(){var n=new Ce(16);return Ce!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},x.L=function(n,t,i){var o,c,f,m,v,S,E,L,V,q,H,W,X=i[0],ee=i[1],ae=i[2];return t===n?(n[12]=t[0]*X+t[4]*ee+t[8]*ae+t[12],n[13]=t[1]*X+t[5]*ee+t[9]*ae+t[13],n[14]=t[2]*X+t[6]*ee+t[10]*ae+t[14],n[15]=t[3]*X+t[7]*ee+t[11]*ae+t[15]):(c=t[1],f=t[2],m=t[3],v=t[4],S=t[5],E=t[6],L=t[7],V=t[8],q=t[9],H=t[10],W=t[11],n[0]=o=t[0],n[1]=c,n[2]=f,n[3]=m,n[4]=v,n[5]=S,n[6]=E,n[7]=L,n[8]=V,n[9]=q,n[10]=H,n[11]=W,n[12]=o*X+v*ee+V*ae+t[12],n[13]=c*X+S*ee+q*ae+t[13],n[14]=f*X+E*ee+H*ae+t[14],n[15]=m*X+L*ee+W*ae+t[15]),n},x.M=function(n,t,i){var o=i[0],c=i[1],f=i[2];return n[0]=t[0]*o,n[1]=t[1]*o,n[2]=t[2]*o,n[3]=t[3]*o,n[4]=t[4]*c,n[5]=t[5]*c,n[6]=t[6]*c,n[7]=t[7]*c,n[8]=t[8]*f,n[9]=t[9]*f,n[10]=t[10]*f,n[11]=t[11]*f,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},x.N=function(n,t,i){var o=t[0],c=t[1],f=t[2],m=t[3],v=t[4],S=t[5],E=t[6],L=t[7],V=t[8],q=t[9],H=t[10],W=t[11],X=t[12],ee=t[13],ae=t[14],ve=t[15],he=i[0],j=i[1],Y=i[2],pe=i[3];return n[0]=he*o+j*v+Y*V+pe*X,n[1]=he*c+j*S+Y*q+pe*ee,n[2]=he*f+j*E+Y*H+pe*ae,n[3]=he*m+j*L+Y*W+pe*ve,n[4]=(he=i[4])*o+(j=i[5])*v+(Y=i[6])*V+(pe=i[7])*X,n[5]=he*c+j*S+Y*q+pe*ee,n[6]=he*f+j*E+Y*H+pe*ae,n[7]=he*m+j*L+Y*W+pe*ve,n[8]=(he=i[8])*o+(j=i[9])*v+(Y=i[10])*V+(pe=i[11])*X,n[9]=he*c+j*S+Y*q+pe*ee,n[10]=he*f+j*E+Y*H+pe*ae,n[11]=he*m+j*L+Y*W+pe*ve,n[12]=(he=i[12])*o+(j=i[13])*v+(Y=i[14])*V+(pe=i[15])*X,n[13]=he*c+j*S+Y*q+pe*ee,n[14]=he*f+j*E+Y*H+pe*ae,n[15]=he*m+j*L+Y*W+pe*ve,n},x.O=function(n,t){const i={};for(let o=0;o<t.length;o++){const c=t[o];c in n&&(i[c]=n[c])}return i},x.P=C,x.Q=Ds,x.R=Ki,x.S=Sf,x.T=Gc,x.U=wf,x.V=Ae,x.W=te,x.X=Pt,x.Y=Gi,x.Z=Zt,x._=s,x.a=Ri,x.a$=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),f=t[4],m=t[5],v=t[6],S=t[7],E=t[8],L=t[9],V=t[10],q=t[11];return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[4]=f*c+E*o,n[5]=m*c+L*o,n[6]=v*c+V*o,n[7]=S*c+q*o,n[8]=E*c-f*o,n[9]=L*c-m*o,n[10]=V*c-v*o,n[11]=q*c-S*o,n},x.a0=25,x.a1=xp,x.a2=n=>{const t=window.document.createElement("video");return t.muted=!0,new Promise(i=>{t.onloadstart=()=>{i(t)};for(const o of n){const c=window.document.createElement("source");we(o)||(t.crossOrigin="Anonymous"),c.src=o,t.appendChild(c)}})},x.a3=ze,x.a4=function(){return Sn++},x.a5=oe,x.a6=Sa,x.a7=oo,x.a8=xo,x.a9=If,x.aA=function(n,t,i,o,c=!1){if(!i[0]&&!i[1])return[0,0];const f=c?o==="map"?-n.bearingInRadians:0:o==="viewport"?n.bearingInRadians:0;if(f){const m=Math.sin(f),v=Math.cos(f);i=[i[0]*v-i[1]*m,i[0]*m+i[1]*v]}return[c?i[0]:en(t,i[0],n.zoom),c?i[1]:en(t,i[1],n.zoom)]},x.aC=dp,x.aD=wp,x.aE=pp,x.aF=Sp,x.aG=hr,x.aH=nu,x.aI=De,x.aJ=Wt,x.aK=Ht,x.aL=ji,x.aM=mi,x.aN=kf,x.aO=function(n,t,i){return n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n},x.aP=function(n,t,i){return n[0]=t[0]+i[0],n[1]=t[1]+i[1],n[2]=t[2]+i[2],n},x.aQ=function(n){var t=new Ce(3);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t},x.aR=function(n,t,i){return n[0]=t[0]*i[0],n[1]=t[1]*i[1],n[2]=t[2]*i[2],n[3]=t[3]*i[3],n},x.aS=function(n,t,i){return n[0]=t[0]-i[0],n[1]=t[1]-i[1],n[2]=t[2]-i[2],n},x.aT=function(n,t){var i=t[0],o=t[1],c=t[2],f=i*i+o*o+c*c;return f>0&&(f=1/Math.sqrt(f)),n[0]=t[0]*f,n[1]=t[1]*f,n[2]=t[2]*f,n},x.aU=function(n,t,i){var o=t[0],c=t[1],f=t[2],m=i[0],v=i[1],S=i[2];return n[0]=c*S-f*v,n[1]=f*m-o*S,n[2]=o*v-c*m,n},x.aV=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]},x.aW=Cf,x.aX=Aa,x.aY=function(n,t,i,o,c){var f,m=1/Math.tan(t/2);return n[0]=m/i,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=m,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,c!=null&&c!==1/0?(n[10]=(c+o)*(f=1/(o-c)),n[14]=2*c*o*f):(n[10]=-1,n[14]=-2*o),n},x.aZ=function(n){var t=new Ce(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},x.a_=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),f=t[0],m=t[1],v=t[2],S=t[3],E=t[4],L=t[5],V=t[6],q=t[7];return t!==n&&(n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=f*c+E*o,n[1]=m*c+L*o,n[2]=v*c+V*o,n[3]=S*c+q*o,n[4]=E*c-f*o,n[5]=L*c-m*o,n[6]=V*c-v*o,n[7]=q*c-S*o,n},x.aa=function(n){const t={};if(n.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(i,o,c,f)=>{const m=c||f;return t[o]=!m||m.toLowerCase(),""}),t["max-age"]){const i=parseInt(t["max-age"],10);isNaN(i)?delete t["max-age"]:t["max-age"]=i}return t},x.ab=Sr,x.ac=function(n){return Math.pow(2,n)},x.ad=Ze,x.ae=Dr,x.af=85.051129,x.ag=Af,x.ah=function(n){return Math.log(n)/Math.LN2},x.ai=function(n){var t=n[0],i=n[1];return t*t+i*i},x.aj=function(n,t){const i=[];for(const o in n)o in t||i.push(o);return i},x.ak=function(n,t){let i=0,o=0;if(n.kind==="constant")o=n.layoutSize;else if(n.kind!=="source"){const{interpolationType:c,minZoom:f,maxZoom:m}=n,v=c?Dr(ii.interpolationFactor(c,t,f,m),0,1):0;n.kind==="camera"?o=rn.number(n.minSize,n.maxSize,v):i=v}return{uSizeT:i,uSize:o}},x.am=function(n,{uSize:t,uSizeT:i},{lowerSize:o,upperSize:c}){return n.kind==="source"?o/Rn:n.kind==="composite"?rn.number(o/Rn,c/Rn,i):t},x.an=function(n,t){var i=t[0],o=t[1],c=t[2],f=t[3],m=t[4],v=t[5],S=t[6],E=t[7],L=t[8],V=t[9],q=t[10],H=t[11],W=t[12],X=t[13],ee=t[14],ae=t[15],ve=i*v-o*m,he=i*S-c*m,j=i*E-f*m,Y=o*S-c*v,pe=o*E-f*v,Pe=c*E-f*S,je=L*X-V*W,Me=L*ee-q*W,Be=L*ae-H*W,Ge=V*ee-q*X,He=V*ae-H*X,Je=q*ae-H*ee,Oe=ve*Je-he*He+j*Ge+Y*Be-pe*Me+Pe*je;return Oe?(n[0]=(v*Je-S*He+E*Ge)*(Oe=1/Oe),n[1]=(c*He-o*Je-f*Ge)*Oe,n[2]=(X*Pe-ee*pe+ae*Y)*Oe,n[3]=(q*pe-V*Pe-H*Y)*Oe,n[4]=(S*Be-m*Je-E*Me)*Oe,n[5]=(i*Je-c*Be+f*Me)*Oe,n[6]=(ee*j-W*Pe-ae*he)*Oe,n[7]=(L*Pe-q*j+H*he)*Oe,n[8]=(m*He-v*Be+E*je)*Oe,n[9]=(o*Be-i*He-f*je)*Oe,n[10]=(W*pe-X*j+ae*ve)*Oe,n[11]=(V*j-L*pe-H*ve)*Oe,n[12]=(v*Me-m*Ge-S*je)*Oe,n[13]=(i*Ge-o*Me+c*je)*Oe,n[14]=(X*he-W*Y-ee*ve)*Oe,n[15]=(L*Y-V*he+q*ve)*Oe,n):null},x.ao=yr,x.ap=function(n){return Math.hypot(n[0],n[1])},x.aq=function(n){return n[0]=0,n[1]=0,n},x.ar=function(n,t,i){return n[0]=t[0]*i,n[1]=t[1]*i,n},x.as=fp,x.at=Mt,x.au=function(n,t,i,o){const c=t.y-n.y,f=t.x-n.x,m=o.y-i.y,v=o.x-i.x,S=m*f-v*c;if(S===0)return null;const E=(v*(n.y-i.y)-m*(n.x-i.x))/S;return new C(n.x+E*f,n.y+E*c)},x.av=Df,x.aw=_d,x.ax=function(n){let t=1/0,i=1/0,o=-1/0,c=-1/0;for(const f of n)t=Math.min(t,f.x),i=Math.min(i,f.y),o=Math.max(o,f.x),c=Math.max(c,f.y);return[t,i,o,c]},x.ay=Vr,x.az=en,x.b=xt,x.b$=class extends J{},x.b0=function(){const n=new Float32Array(16);return Ze(n),n},x.b1=function(){const n=new Float64Array(16);return Ze(n),n},x.b2=function(){return new Float64Array(16)},x.b3=function(n,t,i){const o=new Float64Array(4);return function(c,f,m,v){var S=.5*Math.PI/180;f*=S,m*=S,v*=S;var E=Math.sin(f),L=Math.cos(f),V=Math.sin(m),q=Math.cos(m),H=Math.sin(v),W=Math.cos(v);c[0]=E*q*W-L*V*H,c[1]=L*V*W+E*q*H,c[2]=L*q*H-E*V*W,c[3]=L*q*W+E*V*H}(o,n,t-90,i),o},x.b4=function(n,t,i,o){var c,f,m,v,S,E=t[0],L=t[1],V=t[2],q=t[3],H=i[0],W=i[1],X=i[2],ee=i[3];return(f=E*H+L*W+V*X+q*ee)<0&&(f=-f,H=-H,W=-W,X=-X,ee=-ee),1-f>de?(c=Math.acos(f),m=Math.sin(c),v=Math.sin((1-o)*c)/m,S=Math.sin(o*c)/m):(v=1-o,S=o),n[0]=v*E+S*H,n[1]=v*L+S*W,n[2]=v*V+S*X,n[3]=v*q+S*ee,n},x.b5=function(n){const t=new Float64Array(9);var i,o,c,f,m,v,S,E,L,V,q,H,W,X,ee,ae,ve,he;V=(c=(o=n)[0])*(S=c+c),q=(f=o[1])*S,W=(m=o[2])*S,X=m*(E=f+f),ae=(v=o[3])*S,ve=v*E,he=v*(L=m+m),(i=t)[0]=1-(H=f*E)-(ee=m*L),i[3]=q-he,i[6]=W+ve,i[1]=q+he,i[4]=1-V-ee,i[7]=X-ae,i[2]=W-ve,i[5]=X+ae,i[8]=1-V-H;const j=mi(-Math.asin(Dr(t[2],-1,1)));let Y,pe;return Math.hypot(t[5],t[8])<.001?(Y=0,pe=-mi(Math.atan2(t[3],t[4]))):(Y=mi(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),pe=mi(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:Y,pitch:j+90,bearing:pe}},x.b6=function(n,t){return n.roll==t.roll&&n.pitch==t.pitch&&n.bearing==t.bearing},x.b7=Vt,x.b8=ya,x.b9=ba,x.bA=function(n){if(n.type==="custom")return new z_(n);switch(n.type){case"background":return new L_(n);case"circle":return new Cy(n);case"fill":return new Zy(n);case"fill-extrusion":return new e_(n);case"heatmap":return new Py(n);case"hillshade":return new My(n);case"line":return new l_(n);case"raster":return new D_(n);case"symbol":return new hu(n)}},x.bB=Kr,x.bC=function(n,t){if(!n)return[{command:"setStyle",args:[t]}];let i=[];try{if(!Se(n.version,t.version))return[{command:"setStyle",args:[t]}];Se(n.center,t.center)||i.push({command:"setCenter",args:[t.center]}),Se(n.state,t.state)||i.push({command:"setGlobalState",args:[t.state]}),Se(n.centerAltitude,t.centerAltitude)||i.push({command:"setCenterAltitude",args:[t.centerAltitude]}),Se(n.zoom,t.zoom)||i.push({command:"setZoom",args:[t.zoom]}),Se(n.bearing,t.bearing)||i.push({command:"setBearing",args:[t.bearing]}),Se(n.pitch,t.pitch)||i.push({command:"setPitch",args:[t.pitch]}),Se(n.roll,t.roll)||i.push({command:"setRoll",args:[t.roll]}),Se(n.sprite,t.sprite)||i.push({command:"setSprite",args:[t.sprite]}),Se(n.glyphs,t.glyphs)||i.push({command:"setGlyphs",args:[t.glyphs]}),Se(n.transition,t.transition)||i.push({command:"setTransition",args:[t.transition]}),Se(n.light,t.light)||i.push({command:"setLight",args:[t.light]}),Se(n.terrain,t.terrain)||i.push({command:"setTerrain",args:[t.terrain]}),Se(n.sky,t.sky)||i.push({command:"setSky",args:[t.sky]}),Se(n.projection,t.projection)||i.push({command:"setProjection",args:[t.projection]});const o={},c=[];(function(m,v,S,E){let L;for(L in v=v||{},m=m||{})Object.prototype.hasOwnProperty.call(m,L)&&(Object.prototype.hasOwnProperty.call(v,L)||qe(L,S,E));for(L in v)Object.prototype.hasOwnProperty.call(v,L)&&(Object.prototype.hasOwnProperty.call(m,L)?Se(m[L],v[L])||(m[L].type==="geojson"&&v[L].type==="geojson"&&et(m,v,L)?Ie(S,{command:"setGeoJSONSourceData",args:[L,v[L].data]}):$e(L,v,S,E)):Te(L,v,S))})(n.sources,t.sources,c,o);const f=[];n.layers&&n.layers.forEach(m=>{"source"in m&&o[m.source]?i.push({command:"removeLayer",args:[m.id]}):f.push(m)}),i=i.concat(c),function(m,v,S){v=v||[];const E=(m=m||[]).map(St),L=v.map(St),V=m.reduce(_t,{}),q=v.reduce(_t,{}),H=E.slice(),W=Object.create(null);let X,ee,ae,ve,he;for(let j=0,Y=0;j<E.length;j++)X=E[j],Object.prototype.hasOwnProperty.call(q,X)?Y++:(Ie(S,{command:"removeLayer",args:[X]}),H.splice(H.indexOf(X,Y),1));for(let j=0,Y=0;j<L.length;j++)X=L[L.length-1-j],H[H.length-1-j]!==X&&(Object.prototype.hasOwnProperty.call(V,X)?(Ie(S,{command:"removeLayer",args:[X]}),H.splice(H.lastIndexOf(X,H.length-Y),1)):Y++,ve=H[H.length-j],Ie(S,{command:"addLayer",args:[q[X],ve]}),H.splice(H.length-j,0,X),W[X]=!0);for(let j=0;j<L.length;j++)if(X=L[j],ee=V[X],ae=q[X],!W[X]&&!Se(ee,ae))if(Se(ee.source,ae.source)&&Se(ee["source-layer"],ae["source-layer"])&&Se(ee.type,ae.type)){for(he in ht(ee.layout,ae.layout,S,X,null,"setLayoutProperty"),ht(ee.paint,ae.paint,S,X,null,"setPaintProperty"),Se(ee.filter,ae.filter)||Ie(S,{command:"setFilter",args:[X,ae.filter]}),Se(ee.minzoom,ae.minzoom)&&Se(ee.maxzoom,ae.maxzoom)||Ie(S,{command:"setLayerZoomRange",args:[X,ae.minzoom,ae.maxzoom]}),ee)Object.prototype.hasOwnProperty.call(ee,he)&&he!=="layout"&&he!=="paint"&&he!=="filter"&&he!=="metadata"&&he!=="minzoom"&&he!=="maxzoom"&&(he.indexOf("paint.")===0?ht(ee[he],ae[he],S,X,he.slice(6),"setPaintProperty"):Se(ee[he],ae[he])||Ie(S,{command:"setLayerProperty",args:[X,he,ae[he]]}));for(he in ae)Object.prototype.hasOwnProperty.call(ae,he)&&!Object.prototype.hasOwnProperty.call(ee,he)&&he!=="layout"&&he!=="paint"&&he!=="filter"&&he!=="metadata"&&he!=="minzoom"&&he!=="maxzoom"&&(he.indexOf("paint.")===0?ht(ee[he],ae[he],S,X,he.slice(6),"setPaintProperty"):Se(ee[he],ae[he])||Ie(S,{command:"setLayerProperty",args:[X,he,ae[he]]}))}else Ie(S,{command:"removeLayer",args:[X]}),ve=H[H.lastIndexOf(X)+1],Ie(S,{command:"addLayer",args:[ae,ve]})}(f,t.layers,i)}catch(o){console.warn("Unable to compute style diff:",o),i=[{command:"setStyle",args:[t]}]}return i},x.bD=function(n){const t=[],i=n.id;return i===void 0&&t.push({message:`layers.${i}: missing required property "id"`}),n.render===void 0&&t.push({message:`layers.${i}: missing required method "render"`}),n.renderingMode&&n.renderingMode!=="2d"&&n.renderingMode!=="3d"&&t.push({message:`layers.${i}: property "renderingMode" must be either "2d" or "3d"`}),t},x.bE=function n(t,i){if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let o=0;o<t.length;o++)if(!n(t[o],i[o]))return!1;return!0}if(typeof t=="object"&&t!==null&&i!==null){if(typeof i!="object"||Object.keys(t).length!==Object.keys(i).length)return!1;for(const o in t)if(!n(t[o],i[o]))return!1;return!0}return t===i},x.bF=tn,x.bG=Vn,x.bH=class extends sr{constructor(n,t){super(n,t),this.current=0}set(n){this.current!==n&&(this.current=n,this.gl.uniform1i(this.location,n))}},x.bI=$c,x.bJ=class extends sr{constructor(n,t){super(n,t),this.current=qh}set(n){if(n[12]!==this.current[12]||n[0]!==this.current[0])return this.current=n,void this.gl.uniformMatrix4fv(this.location,!1,n);for(let t=1;t<16;t++)if(n[t]!==this.current[t]){this.current=n,this.gl.uniformMatrix4fv(this.location,!1,n);break}}},x.bK=Yc,x.bL=class extends sr{constructor(n,t){super(n,t),this.current=[0,0,0]}set(n){n[0]===this.current[0]&&n[1]===this.current[1]&&n[2]===this.current[2]||(this.current=n,this.gl.uniform3f(this.location,n[0],n[1],n[2]))}},x.bM=class extends sr{constructor(n,t){super(n,t),this.current=[0,0]}set(n){n[0]===this.current[0]&&n[1]===this.current[1]||(this.current=n,this.gl.uniform2f(this.location,n[0],n[1]))}},x.bN=Ve,x.bO=function(n,t){var i=Math.sin(t),o=Math.cos(t);return n[0]=o,n[1]=i,n[2]=0,n[3]=-i,n[4]=o,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n},x.bP=function(n,t,i){var o=t[0],c=t[1],f=t[2];return n[0]=o*i[0]+c*i[3]+f*i[6],n[1]=o*i[1]+c*i[4]+f*i[7],n[2]=o*i[2]+c*i[5]+f*i[8],n},x.bQ=function(n,t,i,o,c,f,m){var v=1/(t-i),S=1/(o-c),E=1/(f-m);return n[0]=-2*v,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*S,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*E,n[11]=0,n[12]=(t+i)*v,n[13]=(c+o)*S,n[14]=(m+f)*E,n[15]=1,n},x.bR=class extends sr{constructor(n,t){super(n,t),this.current=new Array}set(n){if(n!=this.current){this.current=n;const t=new Float32Array(4*n.length);for(let i=0;i<n.length;i++)t[4*i]=n[i].r,t[4*i+1]=n[i].g,t[4*i+2]=n[i].b,t[4*i+3]=n[i].a;this.gl.uniform4fv(this.location,t)}}},x.bS=class extends sr{constructor(n,t){super(n,t),this.current=new Array}set(n){if(n!=this.current){this.current=n;const t=new Float32Array(n);this.gl.uniform1fv(this.location,t)}}},x.bT=class extends p{},x.bU=p_,x.bV=class extends b{},x.bW=Gh,x.bX=function(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},x.bY=Ed,x.bZ=function(n,t,i){var o=t[0],c=t[1],f=t[2],m=i[3]*o+i[7]*c+i[11]*f+i[15];return n[0]=(i[0]*o+i[4]*c+i[8]*f+i[12])/(m=m||1),n[1]=(i[1]*o+i[5]*c+i[9]*f+i[13])/m,n[2]=(i[2]*o+i[6]*c+i[10]*f+i[14])/m,n},x.b_=class extends $n{},x.ba=Bl,x.bb=xa,x.bc=wn,x.bd=Rr,x.be=_i,x.bf=function(n,t,i,o,c){return wn(o,c,Dr((n-t)/(i-t),0,1))},x.bg=ti,x.bh=function(){return new Float64Array(3)},x.bi=function(n,t,i,o){return n[0]=t[0]+i[0]*o,n[1]=t[1]+i[1]*o,n[2]=t[2]+i[2]*o,n},x.bj=bt,x.bk=function(){return new Float64Array(4)},x.bl=function(n,t,i,o){var c=[],f=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],f[0]=c[0]*Math.cos(o)-c[1]*Math.sin(o),f[1]=c[0]*Math.sin(o)+c[1]*Math.cos(o),f[2]=c[2],n[0]=f[0]+i[0],n[1]=f[1]+i[1],n[2]=f[2]+i[2],n},x.bm=function(n,t,i,o){var c=[],f=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],f[0]=c[0],f[1]=c[1]*Math.cos(o)-c[2]*Math.sin(o),f[2]=c[1]*Math.sin(o)+c[2]*Math.cos(o),n[0]=f[0]+i[0],n[1]=f[1]+i[1],n[2]=f[2]+i[2],n},x.bn=function(n,t,i,o){var c=[],f=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],f[0]=c[2]*Math.sin(o)+c[0]*Math.cos(o),f[1]=c[1],f[2]=c[2]*Math.cos(o)-c[0]*Math.sin(o),n[0]=f[0]+i[0],n[1]=f[1]+i[1],n[2]=f[2]+i[2],n},x.bo=tt,x.bp=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),f=t[0],m=t[1],v=t[2],S=t[3],E=t[8],L=t[9],V=t[10],q=t[11];return t!==n&&(n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=f*c-E*o,n[1]=m*c-L*o,n[2]=v*c-V*o,n[3]=S*c-q*o,n[8]=f*o+E*c,n[9]=m*o+L*c,n[10]=v*o+V*c,n[11]=S*o+q*c,n},x.bq=function(n,t){const i=ti(n,360),o=ti(t,360),c=o-i,f=o>i?c-360:c+360;return Math.abs(c)<Math.abs(f)?c:f},x.br=function(n){return n[0]=0,n[1]=0,n[2]=0,n},x.bs=function(n,t,i,o){const c=Math.sqrt(n*n+t*t),f=Math.sqrt(i*i+o*o);n/=c,t/=c,i/=f,o/=f;const m=Math.acos(n*i+t*o);return-t*i+n*o>0?m:-m},x.bt=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]},x.bu=_p,x.bv=function(n,t){const i=ti(n,2*Math.PI),o=ti(t,2*Math.PI);return Math.min(Math.abs(i-o),Math.abs(i-o+2*Math.PI),Math.abs(i-o-2*Math.PI))},x.bw=function(){const n={},t=$.$version;for(const i in $.$root){const o=$.$root[i];if(o.required){let c=null;c=i==="version"?t:o.type==="array"?[]:{},c!=null&&(n[i]=c)}}return n},x.bx=_l,x.by=er,x.bz=function(n){n=n.slice();const t=Object.create(null);for(let i=0;i<n.length;i++)t[n[i].id]=n[i];for(let i=0;i<n.length;i++)"ref"in n[i]&&(n[i]=be(n[i],t[n[i].ref]));return n},x.c=Li,x.c0=function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},x.c1=function(n,t){var i=n[0],o=n[1],c=n[2],f=n[3],m=n[4],v=n[5],S=n[6],E=n[7],L=n[8],V=n[9],q=n[10],H=n[11],W=n[12],X=n[13],ee=n[14],ae=n[15],ve=t[0],he=t[1],j=t[2],Y=t[3],pe=t[4],Pe=t[5],je=t[6],Me=t[7],Be=t[8],Ge=t[9],He=t[10],Je=t[11],Oe=t[12],st=t[13],pt=t[14],ut=t[15];return Math.abs(i-ve)<=de*Math.max(1,Math.abs(i),Math.abs(ve))&&Math.abs(o-he)<=de*Math.max(1,Math.abs(o),Math.abs(he))&&Math.abs(c-j)<=de*Math.max(1,Math.abs(c),Math.abs(j))&&Math.abs(f-Y)<=de*Math.max(1,Math.abs(f),Math.abs(Y))&&Math.abs(m-pe)<=de*Math.max(1,Math.abs(m),Math.abs(pe))&&Math.abs(v-Pe)<=de*Math.max(1,Math.abs(v),Math.abs(Pe))&&Math.abs(S-je)<=de*Math.max(1,Math.abs(S),Math.abs(je))&&Math.abs(E-Me)<=de*Math.max(1,Math.abs(E),Math.abs(Me))&&Math.abs(L-Be)<=de*Math.max(1,Math.abs(L),Math.abs(Be))&&Math.abs(V-Ge)<=de*Math.max(1,Math.abs(V),Math.abs(Ge))&&Math.abs(q-He)<=de*Math.max(1,Math.abs(q),Math.abs(He))&&Math.abs(H-Je)<=de*Math.max(1,Math.abs(H),Math.abs(Je))&&Math.abs(W-Oe)<=de*Math.max(1,Math.abs(W),Math.abs(Oe))&&Math.abs(X-st)<=de*Math.max(1,Math.abs(X),Math.abs(st))&&Math.abs(ee-pt)<=de*Math.max(1,Math.abs(ee),Math.abs(pt))&&Math.abs(ae-ut)<=de*Math.max(1,Math.abs(ae),Math.abs(ut))},x.c2=function(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},x.c3=n=>n.type==="symbol",x.c4=n=>n.type==="circle",x.c5=n=>n.type==="heatmap",x.c6=n=>n.type==="line",x.c7=n=>n.type==="fill",x.c8=n=>n.type==="fill-extrusion",x.c9=n=>n.type==="hillshade",x.cA=$h,x.cB=np,x.cC=Fl,x.cD=lp,x.cE=class{constructor(n){this._marks={start:[n.url,"start"].join("#"),end:[n.url,"end"].join("#"),measure:n.url.toString()},performance.mark(this._marks.start)}finish(){performance.mark(this._marks.end);let n=performance.getEntriesByName(this._marks.measure);return n.length===0&&(performance.measure(this._marks.measure,this._marks.start,this._marks.end),n=performance.getEntriesByName(this._marks.measure),performance.clearMarks(this._marks.start),performance.clearMarks(this._marks.end),performance.clearMeasures(this._marks.measure)),n}},x.cF=function(n,t,i,o,c){return s(this,void 0,void 0,function*(){if(te())try{return yield Pt(n,t,i,o,c)}catch{}return function(f,m,v,S,E){const L=f.width,V=f.height;mt&&Ut||(mt=new OffscreenCanvas(L,V),Ut=mt.getContext("2d",{willReadFrequently:!0})),mt.width=L,mt.height=V,Ut.drawImage(f,0,0,L,V);const q=Ut.getImageData(m,v,S,E);return Ut.clearRect(0,0,L,V),q.data}(n,t,i,o,c)})},x.cG=Ef,x.cH=B,x.cI=F,x.cJ=Wd,x.cK=nf,x.cL=ra,x.cM=pn,x.ca=n=>n.type==="raster",x.cb=n=>n.type==="background",x.cc=n=>n.type==="custom",x.cd=as,x.ce=function(n,t,i){const o=bi(t.x-i.x,t.y-i.y),c=bi(n.x-i.x,n.y-i.y);var f,m;return mi(Math.atan2(o[0]*c[1]-o[1]*c[0],(f=o)[0]*(m=c)[0]+f[1]*m[1]))},x.cf=wi,x.cg=function(n,t){return Hi[t]&&(n instanceof MouseEvent||n instanceof WheelEvent)},x.ch=function(n,t){return Er[t]&&"touches"in n},x.ci=function(n){return Er[n]||Hi[n]},x.cj=function(n,t,i){var o=t[0],c=t[1];return n[0]=i[0]*o+i[4]*c+i[12],n[1]=i[1]*o+i[5]*c+i[13],n},x.ck=function(n,t){const{x:i,y:o}=Hl.fromLngLat(t);return!(n<0||n>25||o<0||o>=1||i<0||i>=1)},x.cl=function(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},x.cm=class extends go{},x.cn=Z_,x.cp=function(n){return n.message===Mi},x.cq=yt,x.cr=function(n,t){Ri.REGISTERED_PROTOCOLS[n]=t},x.cs=function(n){delete Ri.REGISTERED_PROTOCOLS[n]},x.ct=function(n,t){const i={};for(let c=0;c<n.length;c++){const f=t&&t[n[c].id]||Vc(n[c]);t&&(t[n[c].id]=f);let m=i[f];m||(m=i[f]=[]),m.push(n[c])}const o=[];for(const c in i)o.push(i[c]);return o},x.cu=it,x.cv=Pf,x.cw=Mf,x.cx=of,x.cy=function(n){n.bucket.createArrays(),n.bucket.tilePixelRatio=Zt/(512*n.bucket.overscaling),n.bucket.compareText={},n.bucket.iconsNeedLinear=!1;const t=n.bucket.layers[0],i=t.layout,o=t._unevaluatedLayout._values,c={layoutIconSize:o["icon-size"].possiblyEvaluate(new nr(n.bucket.zoom+1),n.canonical),layoutTextSize:o["text-size"].possiblyEvaluate(new nr(n.bucket.zoom+1),n.canonical),textMaxSize:o["text-size"].possiblyEvaluate(new nr(18))};if(n.bucket.textSizeData.kind==="composite"){const{minZoom:E,maxZoom:L}=n.bucket.textSizeData;c.compositeTextSizes=[o["text-size"].possiblyEvaluate(new nr(E),n.canonical),o["text-size"].possiblyEvaluate(new nr(L),n.canonical)]}if(n.bucket.iconSizeData.kind==="composite"){const{minZoom:E,maxZoom:L}=n.bucket.iconSizeData;c.compositeIconSizes=[o["icon-size"].possiblyEvaluate(new nr(E),n.canonical),o["icon-size"].possiblyEvaluate(new nr(L),n.canonical)]}const f=i.get("text-line-height")*Vr,m=i.get("text-rotation-alignment")!=="viewport"&&i.get("symbol-placement")!=="point",v=i.get("text-keep-upright"),S=i.get("text-size");for(const E of n.bucket.features){const L=i.get("text-font").evaluate(E,{},n.canonical).join(","),V=S.evaluate(E,{},n.canonical),q=c.layoutTextSize.evaluate(E,{},n.canonical),H=c.layoutIconSize.evaluate(E,{},n.canonical),W={horizontal:{},vertical:void 0},X=E.text;let ee,ae=[0,0];if(X){const j=X.toString(),Y=i.get("text-letter-spacing").evaluate(E,{},n.canonical)*Vr,pe=Bh(j)?Y:0,Pe=i.get("text-anchor").evaluate(E,{},n.canonical),je=jf(t,E,n.canonical);if(!je){const He=i.get("text-radial-offset").evaluate(E,{},n.canonical);ae=He?Uf(Pe,[He*Vr,bp]):i.get("text-offset").evaluate(E,{},n.canonical).map(Je=>Je*Vr)}let Me=m?"center":i.get("text-justify").evaluate(E,{},n.canonical);const Be=i.get("symbol-placement")==="point"?i.get("text-max-width").evaluate(E,{},n.canonical)*Vr:1/0,Ge=()=>{n.bucket.allowVerticalPlacement&&da(j)&&(W.vertical=lu(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Be,f,Pe,"left",pe,ae,x.al.vertical,!0,q,V))};if(!m&&je){const He=new Set;if(Me==="auto")for(let Oe=0;Oe<je.values.length;Oe+=2)He.add(wp(je.values[Oe]));else He.add(Me);let Je=!1;for(const Oe of He)if(!W.horizontal[Oe])if(Je)W.horizontal[Oe]=W.horizontal[0];else{const st=lu(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Be,f,"center",Oe,pe,ae,x.al.horizontal,!1,q,V);st&&(W.horizontal[Oe]=st,Je=st.positionedLines.length===1)}Ge()}else{Me==="auto"&&(Me=wp(Pe));const He=lu(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Be,f,Pe,Me,pe,ae,x.al.horizontal,!1,q,V);He&&(W.horizontal[Me]=He),Ge(),da(j)&&m&&v&&(W.vertical=lu(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Be,f,Pe,Me,pe,ae,x.al.vertical,!1,q,V))}}let ve=!1;if(E.icon&&E.icon.name){const j=n.imageMap[E.icon.name];j&&(ee=C_(n.imagePositions[E.icon.name],i.get("icon-offset").evaluate(E,{},n.canonical),i.get("icon-anchor").evaluate(E,{},n.canonical)),ve=!!j.sdf,n.bucket.sdfIcons===void 0?n.bucket.sdfIcons=ve:n.bucket.sdfIcons!==ve&&Gr("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(j.pixelRatio!==n.bucket.pixelRatio||i.get("icon-rotate").constantOr(1)!==0)&&(n.bucket.iconsNeedLinear=!0))}const he=Wf(W.horizontal)||W.vertical;n.bucket.iconsInText=!!he&&he.iconsInText,(he||ee)&&H_(n.bucket,E,W,ee,n.imageMap,c,q,H,ae,ve,n.canonical,n.subdivisionGranularity)}n.showCollisionBoxes&&n.bucket.generateCollisionDebugBuffers()},x.cz=sp,x.d=we,x.e=ai,x.f=n=>s(void 0,void 0,void 0,function*(){if(n.byteLength===0)return createImageBitmap(new ImageData(1,1));const t=new Blob([new Uint8Array(n)],{type:"image/png"});try{return createImageBitmap(t)}catch(i){throw new Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}}),x.g=$t,x.h=n=>new Promise((t,i)=>{const o=new Image;o.onload=()=>{t(o),URL.revokeObjectURL(o.src),o.onload=null,window.requestAnimationFrame(()=>{o.src=kt})},o.onerror=()=>i(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const c=new Blob([new Uint8Array(n)],{type:"image/png"});o.src=n.byteLength?URL.createObjectURL(c):kt}),x.i=nt,x.j=(n,t)=>ur(ai(n,{type:"json"}),t),x.k=ce,x.l=re,x.m=ur,x.n=(n,t)=>ur(ai(n,{type:"arrayBuffer"}),t),x.o=function(n){return new lp(n).readFields(m_,[])},x.p=sf,x.q=Ml,x.r=Pr,x.s=It,x.t=ca,x.u=Rt,x.v=$,x.w=Gr,x.x=yl,x.y=Cs,x.z=function([n,t,i]){return t+=90,t*=Math.PI/180,i*=Math.PI/180,{x:n*Math.cos(t)*Math.sin(i),y:n*Math.sin(t)*Math.sin(i),z:n*Math.cos(i)}}}),k("worker",["./shared"],function(x){class s{constructor(G){this.keyCache={},G&&this.replace(G)}replace(G){this._layerConfigs={},this._layers={},this.update(G,[])}update(G,Q){for(const ce of G){this._layerConfigs[ce.id]=ce;const ye=this._layers[ce.id]=x.bA(ce);ye._featureFilter=x.a7(ye.filter),this.keyCache[ce.id]&&delete this.keyCache[ce.id]}for(const ce of Q)delete this.keyCache[ce],delete this._layerConfigs[ce],delete this._layers[ce];this.familiesBySource={};const re=x.ct(Object.values(this._layerConfigs),this.keyCache);for(const ce of re){const ye=ce.map(Te=>this._layers[Te.id]),$=ye[0];if($.visibility==="none")continue;const ke=$.source||"";let be=this.familiesBySource[ke];be||(be=this.familiesBySource[ke]={});const Se=$.sourceLayer||"_geojsonTileLayer";let Ie=be[Se];Ie||(Ie=be[Se]=[]),Ie.push(ye)}}}class B{constructor(G){const Q={},re=[];for(const ke in G){const be=G[ke],Se=Q[ke]={};for(const Ie in be){const Te=be[+Ie];if(!Te||Te.bitmap.width===0||Te.bitmap.height===0)continue;const qe={x:0,y:0,w:Te.bitmap.width+2,h:Te.bitmap.height+2};re.push(qe),Se[Ie]={rect:qe,metrics:Te.metrics}}}const{w:ce,h:ye}=x.p(re),$=new x.q({width:ce||1,height:ye||1});for(const ke in G){const be=G[ke];for(const Se in be){const Ie=be[+Se];if(!Ie||Ie.bitmap.width===0||Ie.bitmap.height===0)continue;const Te=Q[ke][Se].rect;x.q.copy(Ie.bitmap,$,{x:0,y:0},{x:Te.x+1,y:Te.y+1},Ie.bitmap)}}this.image=$,this.positions=Q}}x.cu("GlyphAtlas",B);class D{constructor(G){this.tileID=new x.Y(G.tileID.overscaledZ,G.tileID.wrap,G.tileID.canonical.z,G.tileID.canonical.x,G.tileID.canonical.y),this.uid=G.uid,this.zoom=G.zoom,this.pixelRatio=G.pixelRatio,this.tileSize=G.tileSize,this.source=G.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=G.showCollisionBoxes,this.collectResourceTiming=!!G.collectResourceTiming,this.returnDependencies=!!G.returnDependencies,this.promoteId=G.promoteId,this.inFlightDependencies=[]}parse(G,Q,re,ce,ye){return x._(this,void 0,void 0,function*(){this.status="parsing",this.data=G,this.collisionBoxArray=new x.a5;const $=new x.cv(Object.keys(G.layers).sort()),ke=new x.cw(this.tileID,this.promoteId);ke.bucketLayerIDs=[];const be={},Se={featureIndex:ke,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:re,subdivisionGranularity:ye},Ie=Q.familiesBySource[this.source];for(const gt in Ie){const Ue=G.layers[gt];if(!Ue)continue;Ue.version===1&&x.w(`Vector tile source "${this.source}" layer "${gt}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const dt=$.encode(gt),At=[];for(let _r=0;_r<Ue.length;_r++){const vr=Ue.feature(_r),gi=ke.getId(vr,gt);At.push({feature:vr,id:gi,index:_r,sourceLayerIndex:dt})}for(const _r of Ie[gt]){const vr=_r[0];vr.source!==this.source&&x.w(`layer.source = ${vr.source} does not equal this.source = ${this.source}`),vr.minzoom&&this.zoom<Math.floor(vr.minzoom)||vr.maxzoom&&this.zoom>=vr.maxzoom||vr.visibility!=="none"&&(M(_r,this.zoom,re),(be[vr.id]=vr.createBucket({index:ke.bucketLayerIDs.length,layers:_r,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:dt,sourceID:this.source})).populate(At,Se,this.tileID.canonical),ke.bucketLayerIDs.push(_r.map(gi=>gi.id)))}}const Te=x.bF(Se.glyphDependencies,gt=>Object.keys(gt).map(Number));this.inFlightDependencies.forEach(gt=>gt==null?void 0:gt.abort()),this.inFlightDependencies=[];let qe=Promise.resolve({});if(Object.keys(Te).length){const gt=new AbortController;this.inFlightDependencies.push(gt),qe=ce.sendAsync({type:"GG",data:{stacks:Te,source:this.source,tileID:this.tileID,type:"glyphs"}},gt)}const $e=Object.keys(Se.iconDependencies);let et=Promise.resolve({});if($e.length){const gt=new AbortController;this.inFlightDependencies.push(gt),et=ce.sendAsync({type:"GI",data:{icons:$e,source:this.source,tileID:this.tileID,type:"icons"}},gt)}const ht=Object.keys(Se.patternDependencies);let St=Promise.resolve({});if(ht.length){const gt=new AbortController;this.inFlightDependencies.push(gt),St=ce.sendAsync({type:"GI",data:{icons:ht,source:this.source,tileID:this.tileID,type:"patterns"}},gt)}const[_t,ze,Kt]=yield Promise.all([qe,et,St]),Bt=new B(_t),jt=new x.cx(ze,Kt);for(const gt in be){const Ue=be[gt];Ue instanceof x.a6?(M(Ue.layers,this.zoom,re),x.cy({bucket:Ue,glyphMap:_t,glyphPositions:Bt.positions,imageMap:ze,imagePositions:jt.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:Se.subdivisionGranularity})):Ue.hasPattern&&(Ue instanceof x.cz||Ue instanceof x.cA||Ue instanceof x.cB)&&(M(Ue.layers,this.zoom,re),Ue.addFeatures(Se,this.tileID.canonical,jt.patternPositions))}return this.status="done",{buckets:Object.values(be).filter(gt=>!gt.isEmpty()),featureIndex:ke,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Bt.image,imageAtlas:jt,glyphMap:this.returnDependencies?_t:null,iconMap:this.returnDependencies?ze:null,glyphPositions:this.returnDependencies?Bt.positions:null}})}}function M(we,G,Q){const re=new x.C(G);for(const ce of we)ce.recalculate(re,Q)}class F{constructor(G,Q,re){this.actor=G,this.layerIndex=Q,this.availableImages=re,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(G,Q){return x._(this,void 0,void 0,function*(){const re=yield x.n(G.request,Q);try{return{vectorTile:new x.cC.VectorTile(new x.cD(re.data)),rawData:re.data,cacheControl:re.cacheControl,expires:re.expires}}catch(ce){const ye=new Uint8Array(re.data);let $=`Unable to parse the tile at ${G.request.url}, `;throw $+=ye[0]===31&&ye[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${ce.message}`,new Error($)}})}loadTile(G){return x._(this,void 0,void 0,function*(){const Q=G.uid,re=!!(G&&G.request&&G.request.collectResourceTiming)&&new x.cE(G.request),ce=new D(G);this.loading[Q]=ce;const ye=new AbortController;ce.abort=ye;try{const $=yield this.loadVectorTile(G,ye);if(delete this.loading[Q],!$)return null;const ke=$.rawData,be={};$.expires&&(be.expires=$.expires),$.cacheControl&&(be.cacheControl=$.cacheControl);const Se={};if(re){const Te=re.finish();Te&&(Se.resourceTiming=JSON.parse(JSON.stringify(Te)))}ce.vectorTile=$.vectorTile;const Ie=ce.parse($.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity);this.loaded[Q]=ce,this.fetching[Q]={rawTileData:ke,cacheControl:be,resourceTiming:Se};try{const Te=yield Ie;return x.e({rawTileData:ke.slice(0)},Te,be,Se)}finally{delete this.fetching[Q]}}catch($){throw delete this.loading[Q],ce.status="done",this.loaded[Q]=ce,$}})}reloadTile(G){return x._(this,void 0,void 0,function*(){const Q=G.uid;if(!this.loaded||!this.loaded[Q])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const re=this.loaded[Q];if(re.showCollisionBoxes=G.showCollisionBoxes,re.status==="parsing"){const ce=yield re.parse(re.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity);let ye;if(this.fetching[Q]){const{rawTileData:$,cacheControl:ke,resourceTiming:be}=this.fetching[Q];delete this.fetching[Q],ye=x.e({rawTileData:$.slice(0)},ce,ke,be)}else ye=ce;return ye}if(re.status==="done"&&re.vectorTile)return re.parse(re.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity)})}abortTile(G){return x._(this,void 0,void 0,function*(){const Q=this.loading,re=G.uid;Q&&Q[re]&&Q[re].abort&&(Q[re].abort.abort(),delete Q[re])})}removeTile(G){return x._(this,void 0,void 0,function*(){this.loaded&&this.loaded[G.uid]&&delete this.loaded[G.uid]})}}class R{constructor(){this.loaded={}}loadTile(G){return x._(this,void 0,void 0,function*(){const{uid:Q,encoding:re,rawImageData:ce,redFactor:ye,greenFactor:$,blueFactor:ke,baseShift:be}=G,Se=ce.width+2,Ie=ce.height+2,Te=x.b(ce)?new x.R({width:Se,height:Ie},yield x.cF(ce,-1,-1,Se,Ie)):ce,qe=new x.cG(Q,Te,re,ye,$,ke,be);return this.loaded=this.loaded||{},this.loaded[Q]=qe,qe})}removeTile(G){const Q=this.loaded,re=G.uid;Q&&Q[re]&&delete Q[re]}}var T,C,U=function(){if(C)return T;function we(Q,re){if(Q.length!==0){G(Q[0],re);for(var ce=1;ce<Q.length;ce++)G(Q[ce],!re)}}function G(Q,re){for(var ce=0,ye=0,$=0,ke=Q.length,be=ke-1;$<ke;be=$++){var Se=(Q[$][0]-Q[be][0])*(Q[be][1]+Q[$][1]),Ie=ce+Se;ye+=Math.abs(ce)>=Math.abs(Se)?ce-Ie+Se:Se-Ie+ce,ce=Ie}ce+ye>=0!=!!re&&Q.reverse()}return C=1,T=function Q(re,ce){var ye,$=re&&re.type;if($==="FeatureCollection")for(ye=0;ye<re.features.length;ye++)Q(re.features[ye],ce);else if($==="GeometryCollection")for(ye=0;ye<re.geometries.length;ye++)Q(re.geometries[ye],ce);else if($==="Feature")Q(re.geometry,ce);else if($==="Polygon")we(re.coordinates,ce);else if($==="MultiPolygon")for(ye=0;ye<re.coordinates.length;ye++)we(re.coordinates[ye],ce);return re}}(),K=x.cH(U);const ie=x.cC.VectorTileFeature.prototype.toGeoJSON;class le{constructor(G){this._feature=G,this.extent=x.Z,this.type=G.type,this.properties=G.tags,"id"in G&&!isNaN(G.id)&&(this.id=parseInt(G.id,10))}loadGeometry(){if(this._feature.type===1){const G=[];for(const Q of this._feature.geometry)G.push([new x.P(Q[0],Q[1])]);return G}{const G=[];for(const Q of this._feature.geometry){const re=[];for(const ce of Q)re.push(new x.P(ce[0],ce[1]));G.push(re)}return G}}toGeoJSON(G,Q,re){return ie.call(this,G,Q,re)}}class Ae{constructor(G){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=x.Z,this.length=G.length,this._features=G}feature(G){return new le(this._features[G])}}var te,de,Ce,Ve={exports:{}},Ze=function(){if(Ce)return Ve.exports;Ce=1;var we=x.cK(),G=function(){if(de)return te;de=1;var Ie=x.cI(),Te=x.cJ().VectorTileFeature;function qe(et,ht){this.options=ht||{},this.features=et,this.length=et.length}function $e(et,ht){this.id=typeof et.id=="number"?et.id:void 0,this.type=et.type,this.rawGeometry=et.type===1?[et.geometry]:et.geometry,this.properties=et.tags,this.extent=ht||4096}return te=qe,qe.prototype.feature=function(et){return new $e(this.features[et],this.options.extent)},$e.prototype.loadGeometry=function(){var et=this.rawGeometry;this.geometry=[];for(var ht=0;ht<et.length;ht++){for(var St=et[ht],_t=[],ze=0;ze<St.length;ze++)_t.push(new Ie(St[ze][0],St[ze][1]));this.geometry.push(_t)}return this.geometry},$e.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var et=this.geometry,ht=1/0,St=-1/0,_t=1/0,ze=-1/0,Kt=0;Kt<et.length;Kt++)for(var Bt=et[Kt],jt=0;jt<Bt.length;jt++){var gt=Bt[jt];ht=Math.min(ht,gt.x),St=Math.max(St,gt.x),_t=Math.min(_t,gt.y),ze=Math.max(ze,gt.y)}return[ht,_t,St,ze]},$e.prototype.toGeoJSON=Te.prototype.toGeoJSON,te}();function Q(Ie){var Te=new we;return function(qe,$e){for(var et in qe.layers)$e.writeMessage(3,re,qe.layers[et])}(Ie,Te),Te.finish()}function re(Ie,Te){var qe;Te.writeVarintField(15,Ie.version||1),Te.writeStringField(1,Ie.name||""),Te.writeVarintField(5,Ie.extent||4096);var $e={keys:[],values:[],keycache:{},valuecache:{}};for(qe=0;qe<Ie.length;qe++)$e.feature=Ie.feature(qe),Te.writeMessage(2,ce,$e);var et=$e.keys;for(qe=0;qe<et.length;qe++)Te.writeStringField(3,et[qe]);var ht=$e.values;for(qe=0;qe<ht.length;qe++)Te.writeMessage(4,Se,ht[qe])}function ce(Ie,Te){var qe=Ie.feature;qe.id!==void 0&&Te.writeVarintField(1,qe.id),Te.writeMessage(2,ye,Ie),Te.writeVarintField(3,qe.type),Te.writeMessage(4,be,qe)}function ye(Ie,Te){var qe=Ie.feature,$e=Ie.keys,et=Ie.values,ht=Ie.keycache,St=Ie.valuecache;for(var _t in qe.properties){var ze=qe.properties[_t],Kt=ht[_t];if(ze!==null){Kt===void 0&&($e.push(_t),ht[_t]=Kt=$e.length-1),Te.writeVarint(Kt);var Bt=typeof ze;Bt!=="string"&&Bt!=="boolean"&&Bt!=="number"&&(ze=JSON.stringify(ze));var jt=Bt+":"+ze,gt=St[jt];gt===void 0&&(et.push(ze),St[jt]=gt=et.length-1),Te.writeVarint(gt)}}}function $(Ie,Te){return(Te<<3)+(7&Ie)}function ke(Ie){return Ie<<1^Ie>>31}function be(Ie,Te){for(var qe=Ie.loadGeometry(),$e=Ie.type,et=0,ht=0,St=qe.length,_t=0;_t<St;_t++){var ze=qe[_t],Kt=1;$e===1&&(Kt=ze.length),Te.writeVarint($(1,Kt));for(var Bt=$e===3?ze.length-1:ze.length,jt=0;jt<Bt;jt++){jt===1&&$e!==1&&Te.writeVarint($(2,Bt-1));var gt=ze[jt].x-et,Ue=ze[jt].y-ht;Te.writeVarint(ke(gt)),Te.writeVarint(ke(Ue)),et+=gt,ht+=Ue}$e===3&&Te.writeVarint($(7,1))}}function Se(Ie,Te){var qe=typeof Ie;qe==="string"?Te.writeStringField(1,Ie):qe==="boolean"?Te.writeBooleanField(7,Ie):qe==="number"&&(Ie%1!=0?Te.writeDoubleField(3,Ie):Ie<0?Te.writeSVarintField(6,Ie):Te.writeVarintField(5,Ie))}return Ve.exports=Q,Ve.exports.fromVectorTileJs=Q,Ve.exports.fromGeojsonVt=function(Ie,Te){Te=Te||{};var qe={};for(var $e in Ie)qe[$e]=new G(Ie[$e].features,Te),qe[$e].name=$e,qe[$e].version=Te.version,qe[$e].extent=Te.extent;return Q({layers:qe})},Ve.exports.GeoJSONWrapper=G,Ve.exports}(),vt=x.cH(Ze);const tt={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:we=>we},Xe=Math.fround||(rt=new Float32Array(1),we=>(rt[0]=+we,rt[0]));var rt;const bt=3,Mt=5,cr=6;class yr{constructor(G){this.options=Object.assign(Object.create(tt),G),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(G){const{log:Q,minZoom:re,maxZoom:ce}=this.options;Q&&console.time("total time");const ye=`prepare ${G.length} points`;Q&&console.time(ye),this.points=G;const $=[];for(let be=0;be<G.length;be++){const Se=G[be];if(!Se.geometry)continue;const[Ie,Te]=Se.geometry.coordinates,qe=Xe(en(Ie)),$e=Xe(ti(Te));$.push(qe,$e,1/0,be,-1,1),this.options.reduce&&$.push(0)}let ke=this.trees[ce+1]=this._createTree($);Q&&console.timeEnd(ye);for(let be=ce;be>=re;be--){const Se=+Date.now();ke=this.trees[be]=this._createTree(this._cluster(ke,be)),Q&&console.log("z%d: %d clusters in %dms",be,ke.numItems,+Date.now()-Se)}return Q&&console.timeEnd("total time"),this}getClusters(G,Q){let re=((G[0]+180)%360+360)%360-180;const ce=Math.max(-90,Math.min(90,G[1]));let ye=G[2]===180?180:((G[2]+180)%360+360)%360-180;const $=Math.max(-90,Math.min(90,G[3]));if(G[2]-G[0]>=360)re=-180,ye=180;else if(re>ye){const Te=this.getClusters([re,ce,180,$],Q),qe=this.getClusters([-180,ce,ye,$],Q);return Te.concat(qe)}const ke=this.trees[this._limitZoom(Q)],be=ke.range(en(re),ti($),en(ye),ti(ce)),Se=ke.data,Ie=[];for(const Te of be){const qe=this.stride*Te;Ie.push(Se[qe+Mt]>1?bi(Se,qe,this.clusterProps):this.points[Se[qe+bt]])}return Ie}getChildren(G){const Q=this._getOriginId(G),re=this._getOriginZoom(G),ce="No cluster with the specified id.",ye=this.trees[re];if(!ye)throw new Error(ce);const $=ye.data;if(Q*this.stride>=$.length)throw new Error(ce);const ke=this.options.radius/(this.options.extent*Math.pow(2,re-1)),be=ye.within($[Q*this.stride],$[Q*this.stride+1],ke),Se=[];for(const Ie of be){const Te=Ie*this.stride;$[Te+4]===G&&Se.push($[Te+Mt]>1?bi($,Te,this.clusterProps):this.points[$[Te+bt]])}if(Se.length===0)throw new Error(ce);return Se}getLeaves(G,Q,re){const ce=[];return this._appendLeaves(ce,G,Q=Q||10,re=re||0,0),ce}getTile(G,Q,re){const ce=this.trees[this._limitZoom(G)],ye=Math.pow(2,G),{extent:$,radius:ke}=this.options,be=ke/$,Se=(re-be)/ye,Ie=(re+1+be)/ye,Te={features:[]};return this._addTileFeatures(ce.range((Q-be)/ye,Se,(Q+1+be)/ye,Ie),ce.data,Q,re,ye,Te),Q===0&&this._addTileFeatures(ce.range(1-be/ye,Se,1,Ie),ce.data,ye,re,ye,Te),Q===ye-1&&this._addTileFeatures(ce.range(0,Se,be/ye,Ie),ce.data,-1,re,ye,Te),Te.features.length?Te:null}getClusterExpansionZoom(G){let Q=this._getOriginZoom(G)-1;for(;Q<=this.options.maxZoom;){const re=this.getChildren(G);if(Q++,re.length!==1)break;G=re[0].properties.cluster_id}return Q}_appendLeaves(G,Q,re,ce,ye){const $=this.getChildren(Q);for(const ke of $){const be=ke.properties;if(be&&be.cluster?ye+be.point_count<=ce?ye+=be.point_count:ye=this._appendLeaves(G,be.cluster_id,re,ce,ye):ye<ce?ye++:G.push(ke),G.length===re)break}return ye}_createTree(G){const Q=new x.aF(G.length/this.stride|0,this.options.nodeSize,Float32Array);for(let re=0;re<G.length;re+=this.stride)Q.add(G[re],G[re+1]);return Q.finish(),Q.data=G,Q}_addTileFeatures(G,Q,re,ce,ye,$){for(const ke of G){const be=ke*this.stride,Se=Q[be+Mt]>1;let Ie,Te,qe;if(Se)Ie=Zt(Q,be,this.clusterProps),Te=Q[be],qe=Q[be+1];else{const ht=this.points[Q[be+bt]];Ie=ht.properties;const[St,_t]=ht.geometry.coordinates;Te=en(St),qe=ti(_t)}const $e={type:1,geometry:[[Math.round(this.options.extent*(Te*ye-re)),Math.round(this.options.extent*(qe*ye-ce))]],tags:Ie};let et;et=Se||this.options.generateId?Q[be+bt]:this.points[Q[be+bt]].id,et!==void 0&&($e.id=et),$.features.push($e)}}_limitZoom(G){return Math.max(this.options.minZoom,Math.min(Math.floor(+G),this.options.maxZoom+1))}_cluster(G,Q){const{radius:re,extent:ce,reduce:ye,minPoints:$}=this.options,ke=re/(ce*Math.pow(2,Q)),be=G.data,Se=[],Ie=this.stride;for(let Te=0;Te<be.length;Te+=Ie){if(be[Te+2]<=Q)continue;be[Te+2]=Q;const qe=be[Te],$e=be[Te+1],et=G.within(be[Te],be[Te+1],ke),ht=be[Te+Mt];let St=ht;for(const _t of et){const ze=_t*Ie;be[ze+2]>Q&&(St+=be[ze+Mt])}if(St>ht&&St>=$){let _t,ze=qe*ht,Kt=$e*ht,Bt=-1;const jt=((Te/Ie|0)<<5)+(Q+1)+this.points.length;for(const gt of et){const Ue=gt*Ie;if(be[Ue+2]<=Q)continue;be[Ue+2]=Q;const dt=be[Ue+Mt];ze+=be[Ue]*dt,Kt+=be[Ue+1]*dt,be[Ue+4]=jt,ye&&(_t||(_t=this._map(be,Te,!0),Bt=this.clusterProps.length,this.clusterProps.push(_t)),ye(_t,this._map(be,Ue)))}be[Te+4]=jt,Se.push(ze/St,Kt/St,1/0,jt,-1,St),ye&&Se.push(Bt)}else{for(let _t=0;_t<Ie;_t++)Se.push(be[Te+_t]);if(St>1)for(const _t of et){const ze=_t*Ie;if(!(be[ze+2]<=Q)){be[ze+2]=Q;for(let Kt=0;Kt<Ie;Kt++)Se.push(be[ze+Kt])}}}}return Se}_getOriginId(G){return G-this.points.length>>5}_getOriginZoom(G){return(G-this.points.length)%32}_map(G,Q,re){if(G[Q+Mt]>1){const $=this.clusterProps[G[Q+cr]];return re?Object.assign({},$):$}const ce=this.points[G[Q+bt]].properties,ye=this.options.map(ce);return re&&ye===ce?Object.assign({},ye):ye}}function bi(we,G,Q){return{type:"Feature",id:we[G+bt],properties:Zt(we,G,Q),geometry:{type:"Point",coordinates:[(re=we[G],360*(re-.5)),wn(we[G+1])]}};var re}function Zt(we,G,Q){const re=we[G+Mt],ce=re>=1e4?`${Math.round(re/1e3)}k`:re>=1e3?Math.round(re/100)/10+"k":re,ye=we[G+cr],$=ye===-1?{}:Object.assign({},Q[ye]);return Object.assign($,{cluster:!0,cluster_id:we[G+bt],point_count:re,point_count_abbreviated:ce})}function en(we){return we/360+.5}function ti(we){const G=Math.sin(we*Math.PI/180),Q=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return Q<0?0:Q>1?1:Q}function wn(we){const G=(180-360*we)*Math.PI/180;return 360*Math.atan(Math.exp(G))/Math.PI-90}function Rr(we,G,Q,re){let ce=re;const ye=G+(Q-G>>1);let $,ke=Q-G;const be=we[G],Se=we[G+1],Ie=we[Q],Te=we[Q+1];for(let qe=G+3;qe<Q;qe+=3){const $e=as(we[qe],we[qe+1],be,Se,Ie,Te);if($e>ce)$=qe,ce=$e;else if($e===ce){const et=Math.abs(qe-ye);et<ke&&($=qe,ke=et)}}ce>re&&($-G>3&&Rr(we,G,$,re),we[$+2]=ce,Q-$>3&&Rr(we,$,Q,re))}function as(we,G,Q,re,ce,ye){let $=ce-Q,ke=ye-re;if($!==0||ke!==0){const be=((we-Q)*$+(G-re)*ke)/($*$+ke*ke);be>1?(Q=ce,re=ye):be>0&&(Q+=$*be,re+=ke*be)}return $=we-Q,ke=G-re,$*$+ke*ke}function wi(we,G,Q,re){const ce={id:we??null,type:G,geometry:Q,tags:re,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(G==="Point"||G==="MultiPoint"||G==="LineString")Dr(ce,Q);else if(G==="Polygon")Dr(ce,Q[0]);else if(G==="MultiLineString")for(const ye of Q)Dr(ce,ye);else if(G==="MultiPolygon")for(const ye of Q)Dr(ce,ye[0]);return ce}function Dr(we,G){for(let Q=0;Q<G.length;Q+=3)we.minX=Math.min(we.minX,G[Q]),we.minY=Math.min(we.minY,G[Q+1]),we.maxX=Math.max(we.maxX,G[Q]),we.maxY=Math.max(we.maxY,G[Q+1])}function ji(we,G,Q,re){if(!G.geometry)return;const ce=G.geometry.coordinates;if(ce&&ce.length===0)return;const ye=G.geometry.type,$=Math.pow(Q.tolerance/((1<<Q.maxZoom)*Q.extent),2);let ke=[],be=G.id;if(Q.promoteId?be=G.properties[Q.promoteId]:Q.generateId&&(be=re||0),ye==="Point")ai(ce,ke);else if(ye==="MultiPoint")for(const Se of ce)ai(Se,ke);else if(ye==="LineString")Sn(ce,ke,$,!1);else if(ye==="MultiLineString"){if(Q.lineMetrics){for(const Se of ce)ke=[],Sn(Se,ke,$,!1),we.push(wi(be,"LineString",ke,G.properties));return}tn(ce,ke,$,!1)}else if(ye==="Polygon")tn(ce,ke,$,!0);else{if(ye!=="MultiPolygon"){if(ye==="GeometryCollection"){for(const Se of G.geometry.geometries)ji(we,{id:be,geometry:Se,properties:G.properties},Q,re);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const Se of ce){const Ie=[];tn(Se,Ie,$,!0),ke.push(Ie)}}we.push(wi(be,ye,ke,G.properties))}function ai(we,G){G.push(Vn(we[0]),Kr(we[1]),0)}function Sn(we,G,Q,re){let ce,ye,$=0;for(let be=0;be<we.length;be++){const Se=Vn(we[be][0]),Ie=Kr(we[be][1]);G.push(Se,Ie,0),be>0&&($+=re?(ce*Ie-Se*ye)/2:Math.sqrt(Math.pow(Se-ce,2)+Math.pow(Ie-ye,2))),ce=Se,ye=Ie}const ke=G.length-3;G[2]=1,Rr(G,0,ke,Q),G[ke+2]=1,G.size=Math.abs($),G.start=0,G.end=G.size}function tn(we,G,Q,re){for(let ce=0;ce<we.length;ce++){const ye=[];Sn(we[ce],ye,Q,re),G.push(ye)}}function Vn(we){return we/360+.5}function Kr(we){const G=Math.sin(we*Math.PI/180),Q=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return Q<0?0:Q>1?1:Q}function li(we,G,Q,re,ce,ye,$,ke){if(re/=G,ye>=(Q/=G)&&$<re)return we;if($<Q||ye>=re)return null;const be=[];for(const Se of we){const Ie=Se.geometry;let Te=Se.type;const qe=ce===0?Se.minX:Se.minY,$e=ce===0?Se.maxX:Se.maxY;if(qe>=Q&&$e<re){be.push(Se);continue}if($e<Q||qe>=re)continue;let et=[];if(Te==="Point"||Te==="MultiPoint")Gr(Ie,et,Q,re,ce);else if(Te==="LineString")Ke(Ie,et,Q,re,ce,!1,ke.lineMetrics);else if(Te==="MultiLineString")lt(Ie,et,Q,re,ce,!1);else if(Te==="Polygon")lt(Ie,et,Q,re,ce,!0);else if(Te==="MultiPolygon")for(const ht of Ie){const St=[];lt(ht,St,Q,re,ce,!0),St.length&&et.push(St)}if(et.length){if(ke.lineMetrics&&Te==="LineString"){for(const ht of et)be.push(wi(Se.id,Te,ht,Se.tags));continue}Te!=="LineString"&&Te!=="MultiLineString"||(et.length===1?(Te="LineString",et=et[0]):Te="MultiLineString"),Te!=="Point"&&Te!=="MultiPoint"||(Te=et.length===3?"Point":"MultiPoint"),be.push(wi(Se.id,Te,et,Se.tags))}}return be.length?be:null}function Gr(we,G,Q,re,ce){for(let ye=0;ye<we.length;ye+=3){const $=we[ye+ce];$>=Q&&$<=re&&xt(G,we[ye],we[ye+1],we[ye+2])}}function Ke(we,G,Q,re,ce,ye,$){let ke=nt(we);const be=ce===0?kt:Pt;let Se,Ie,Te=we.start;for(let St=0;St<we.length-3;St+=3){const _t=we[St],ze=we[St+1],Kt=we[St+2],Bt=we[St+3],jt=we[St+4],gt=ce===0?_t:ze,Ue=ce===0?Bt:jt;let dt=!1;$&&(Se=Math.sqrt(Math.pow(_t-Bt,2)+Math.pow(ze-jt,2))),gt<Q?Ue>Q&&(Ie=be(ke,_t,ze,Bt,jt,Q),$&&(ke.start=Te+Se*Ie)):gt>re?Ue<re&&(Ie=be(ke,_t,ze,Bt,jt,re),$&&(ke.start=Te+Se*Ie)):xt(ke,_t,ze,Kt),Ue<Q&&gt>=Q&&(Ie=be(ke,_t,ze,Bt,jt,Q),dt=!0),Ue>re&&gt<=re&&(Ie=be(ke,_t,ze,Bt,jt,re),dt=!0),!ye&&dt&&($&&(ke.end=Te+Se*Ie),G.push(ke),ke=nt(we)),$&&(Te+=Se)}let qe=we.length-3;const $e=we[qe],et=we[qe+1],ht=ce===0?$e:et;ht>=Q&&ht<=re&&xt(ke,$e,et,we[qe+2]),qe=ke.length-3,ye&&qe>=3&&(ke[qe]!==ke[0]||ke[qe+1]!==ke[1])&&xt(ke,ke[0],ke[1],ke[2]),ke.length&&G.push(ke)}function nt(we){const G=[];return G.size=we.size,G.start=we.start,G.end=we.end,G}function lt(we,G,Q,re,ce,ye){for(const $ of we)Ke($,G,Q,re,ce,ye,!1)}function xt(we,G,Q,re){we.push(G,Q,re)}function kt(we,G,Q,re,ce,ye){const $=(ye-G)/(re-G);return xt(we,ye,Q+(ce-Q)*$,1),$}function Pt(we,G,Q,re,ce,ye){const $=(ye-Q)/(ce-Q);return xt(we,G+(re-G)*$,ye,1),$}function mt(we,G){const Q=[];for(let re=0;re<we.length;re++){const ce=we[re],ye=ce.type;let $;if(ye==="Point"||ye==="MultiPoint"||ye==="LineString")$=Ut(ce.geometry,G);else if(ye==="MultiLineString"||ye==="Polygon"){$=[];for(const ke of ce.geometry)$.push(Ut(ke,G))}else if(ye==="MultiPolygon"){$=[];for(const ke of ce.geometry){const be=[];for(const Se of ke)be.push(Ut(Se,G));$.push(be)}}Q.push(wi(ce.id,ye,$,ce.tags))}return Q}function Ut(we,G){const Q=[];Q.size=we.size,we.start!==void 0&&(Q.start=we.start,Q.end=we.end);for(let re=0;re<we.length;re+=3)Q.push(we[re]+G,we[re+1],we[re+2]);return Q}function It(we,G){if(we.transformed)return we;const Q=1<<we.z,re=we.x,ce=we.y;for(const ye of we.features){const $=ye.geometry,ke=ye.type;if(ye.geometry=[],ke===1)for(let be=0;be<$.length;be+=2)ye.geometry.push(Sr($[be],$[be+1],G,Q,re,ce));else for(let be=0;be<$.length;be++){const Se=[];for(let Ie=0;Ie<$[be].length;Ie+=2)Se.push(Sr($[be][Ie],$[be][Ie+1],G,Q,re,ce));ye.geometry.push(Se)}}return we.transformed=!0,we}function Sr(we,G,Q,re,ce,ye){return[Math.round(Q*(we*re-ce)),Math.round(Q*(G*re-ye))]}function mi(we,G,Q,re,ce){const ye=G===ce.maxZoom?0:ce.tolerance/((1<<G)*ce.extent),$={features:[],numPoints:0,numSimplified:0,numFeatures:we.length,source:null,x:Q,y:re,z:G,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const ke of we)Er($,ke,ye,ce);return $}function Er(we,G,Q,re){const ce=G.geometry,ye=G.type,$=[];if(we.minX=Math.min(we.minX,G.minX),we.minY=Math.min(we.minY,G.minY),we.maxX=Math.max(we.maxX,G.maxX),we.maxY=Math.max(we.maxY,G.maxY),ye==="Point"||ye==="MultiPoint")for(let ke=0;ke<ce.length;ke+=3)$.push(ce[ke],ce[ke+1]),we.numPoints++,we.numSimplified++;else if(ye==="LineString")Hi($,ce,we,Q,!1,!1);else if(ye==="MultiLineString"||ye==="Polygon")for(let ke=0;ke<ce.length;ke++)Hi($,ce[ke],we,Q,ye==="Polygon",ke===0);else if(ye==="MultiPolygon")for(let ke=0;ke<ce.length;ke++){const be=ce[ke];for(let Se=0;Se<be.length;Se++)Hi($,be[Se],we,Q,!0,Se===0)}if($.length){let ke=G.tags||null;if(ye==="LineString"&&re.lineMetrics){ke={};for(const Se in G.tags)ke[Se]=G.tags[Se];ke.mapbox_clip_start=ce.start/ce.size,ke.mapbox_clip_end=ce.end/ce.size}const be={geometry:$,type:ye==="Polygon"||ye==="MultiPolygon"?3:ye==="LineString"||ye==="MultiLineString"?2:1,tags:ke};G.id!==null&&(be.id=G.id),we.features.push(be)}}function Hi(we,G,Q,re,ce,ye){const $=re*re;if(re>0&&G.size<(ce?$:re))return void(Q.numPoints+=G.length/3);const ke=[];for(let be=0;be<G.length;be+=3)(re===0||G[be+2]>$)&&(Q.numSimplified++,ke.push(G[be],G[be+1])),Q.numPoints++;ce&&function(be,Se){let Ie=0;for(let Te=0,qe=be.length,$e=qe-2;Te<qe;$e=Te,Te+=2)Ie+=(be[Te]-be[$e])*(be[Te+1]+be[$e+1]);if(Ie>0===Se)for(let Te=0,qe=be.length;Te<qe/2;Te+=2){const $e=be[Te],et=be[Te+1];be[Te]=be[qe-2-Te],be[Te+1]=be[qe-1-Te],be[qe-2-Te]=$e,be[qe-1-Te]=et}}(ke,ye),we.push(ke)}const Mi={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0};class Li{constructor(G,Q){const re=(Q=this.options=function(ye,$){for(const ke in $)ye[ke]=$[ke];return ye}(Object.create(Mi),Q)).debug;if(re&&console.time("preprocess data"),Q.maxZoom<0||Q.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(Q.promoteId&&Q.generateId)throw new Error("promoteId and generateId cannot be used together.");let ce=function(ye,$){const ke=[];if(ye.type==="FeatureCollection")for(let be=0;be<ye.features.length;be++)ji(ke,ye.features[be],$,be);else ji(ke,ye.type==="Feature"?ye:{geometry:ye},$);return ke}(G,Q);this.tiles={},this.tileCoords=[],re&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",Q.indexMaxZoom,Q.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),ce=function(ye,$){const ke=$.buffer/$.extent;let be=ye;const Se=li(ye,1,-1-ke,ke,0,-1,2,$),Ie=li(ye,1,1-ke,2+ke,0,-1,2,$);return(Se||Ie)&&(be=li(ye,1,-ke,1+ke,0,-1,2,$)||[],Se&&(be=mt(Se,1).concat(be)),Ie&&(be=be.concat(mt(Ie,-1)))),be}(ce,Q),ce.length&&this.splitTile(ce,0,0,0),re&&(ce.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}splitTile(G,Q,re,ce,ye,$,ke){const be=[G,Q,re,ce],Se=this.options,Ie=Se.debug;for(;be.length;){ce=be.pop(),re=be.pop(),Q=be.pop(),G=be.pop();const Te=1<<Q,qe=Ri(Q,re,ce);let $e=this.tiles[qe];if(!$e&&(Ie>1&&console.time("creation"),$e=this.tiles[qe]=mi(G,Q,re,ce,Se),this.tileCoords.push({z:Q,x:re,y:ce}),Ie)){Ie>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Q,re,ce,$e.numFeatures,$e.numPoints,$e.numSimplified),console.timeEnd("creation"));const dt=`z${Q}`;this.stats[dt]=(this.stats[dt]||0)+1,this.total++}if($e.source=G,ye==null){if(Q===Se.indexMaxZoom||$e.numPoints<=Se.indexMaxPoints)continue}else{if(Q===Se.maxZoom||Q===ye)continue;if(ye!=null){const dt=ye-Q;if(re!==$>>dt||ce!==ke>>dt)continue}}if($e.source=null,G.length===0)continue;Ie>1&&console.time("clipping");const et=.5*Se.buffer/Se.extent,ht=.5-et,St=.5+et,_t=1+et;let ze=null,Kt=null,Bt=null,jt=null,gt=li(G,Te,re-et,re+St,0,$e.minX,$e.maxX,Se),Ue=li(G,Te,re+ht,re+_t,0,$e.minX,$e.maxX,Se);G=null,gt&&(ze=li(gt,Te,ce-et,ce+St,1,$e.minY,$e.maxY,Se),Kt=li(gt,Te,ce+ht,ce+_t,1,$e.minY,$e.maxY,Se),gt=null),Ue&&(Bt=li(Ue,Te,ce-et,ce+St,1,$e.minY,$e.maxY,Se),jt=li(Ue,Te,ce+ht,ce+_t,1,$e.minY,$e.maxY,Se),Ue=null),Ie>1&&console.timeEnd("clipping"),be.push(ze||[],Q+1,2*re,2*ce),be.push(Kt||[],Q+1,2*re,2*ce+1),be.push(Bt||[],Q+1,2*re+1,2*ce),be.push(jt||[],Q+1,2*re+1,2*ce+1)}}getTile(G,Q,re){G=+G,Q=+Q,re=+re;const ce=this.options,{extent:ye,debug:$}=ce;if(G<0||G>24)return null;const ke=1<<G,be=Ri(G,Q=Q+ke&ke-1,re);if(this.tiles[be])return It(this.tiles[be],ye);$>1&&console.log("drilling down to z%d-%d-%d",G,Q,re);let Se,Ie=G,Te=Q,qe=re;for(;!Se&&Ie>0;)Ie--,Te>>=1,qe>>=1,Se=this.tiles[Ri(Ie,Te,qe)];return Se&&Se.source?($>1&&(console.log("found parent tile z%d-%d-%d",Ie,Te,qe),console.time("drilling down")),this.splitTile(Se.source,Ie,Te,qe,G,Q,re),$>1&&console.timeEnd("drilling down"),this.tiles[be]?It(this.tiles[be],ye):null):null}}function Ri(we,G,Q){return 32*((1<<we)*Q+G)+we}function $t(we,G){return G?we.properties[G]:we.id}function Xt(we,G){if(we==null)return!0;if(we.type==="Feature")return $t(we,G)!=null;if(we.type==="FeatureCollection"){const Q=new Set;for(const re of we.features){const ce=$t(re,G);if(ce==null||Q.has(ce))return!1;Q.add(ce)}return!0}return!1}function yt(we,G){const Q=new Map;if(we!=null)if(we.type==="Feature")Q.set($t(we,G),we);else for(const re of we.features)Q.set($t(re,G),re);return Q}class er extends F{constructor(){super(...arguments),this._dataUpdateable=new Map}loadVectorTile(G,Q){return x._(this,void 0,void 0,function*(){const re=G.tileID.canonical;if(!this._geoJSONIndex)throw new Error("Unable to parse the data into a cluster or geojson");const ce=this._geoJSONIndex.getTile(re.z,re.x,re.y);if(!ce)return null;const ye=new Ae(ce.features);let $=vt(ye);return $.byteOffset===0&&$.byteLength===$.buffer.byteLength||($=new Uint8Array($)),{vectorTile:ye,rawData:$.buffer}})}loadData(G){return x._(this,void 0,void 0,function*(){var Q;(Q=this._pendingRequest)===null||Q===void 0||Q.abort();const re=!!(G&&G.request&&G.request.collectResourceTiming)&&new x.cE(G.request);this._pendingRequest=new AbortController;try{this._pendingData=this.loadAndProcessGeoJSON(G,this._pendingRequest),this._geoJSONIndex=G.cluster?new yr(function({superclusterOptions:$,clusterProperties:ke}){if(!ke||!$)return $;const be={},Se={},Ie={accumulated:null,zoom:0},Te={properties:null},qe=Object.keys(ke);for(const $e of qe){const[et,ht]=ke[$e],St=x.cL(ht),_t=x.cL(typeof et=="string"?[et,["accumulated"],["get",$e]]:et);be[$e]=St.value,Se[$e]=_t.value}return $.map=$e=>{Te.properties=$e;const et={};for(const ht of qe)et[ht]=be[ht].evaluate(Ie,Te);return et},$.reduce=($e,et)=>{Te.properties=et;for(const ht of qe)Ie.accumulated=$e[ht],$e[ht]=Se[ht].evaluate(Ie,Te)},$}(G)).load((yield this._pendingData).features):(ce=yield this._pendingData,new Li(ce,G.geojsonVtOptions)),this.loaded={};const ye={};if(re){const $=re.finish();$&&(ye.resourceTiming={},ye.resourceTiming[G.source]=JSON.parse(JSON.stringify($)))}return ye}catch(ye){if(delete this._pendingRequest,x.cp(ye))return{abandoned:!0};throw ye}var ce})}getData(){return x._(this,void 0,void 0,function*(){return this._pendingData})}reloadTile(G){const Q=this.loaded;return Q&&Q[G.uid]?super.reloadTile(G):this.loadTile(G)}loadAndProcessGeoJSON(G,Q){return x._(this,void 0,void 0,function*(){let re=yield this.loadGeoJSON(G,Q);if(delete this._pendingRequest,typeof re!="object")throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`);if(K(re,!0),G.filter){const ce=x.cL(G.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(ce.result==="error")throw new Error(ce.value.map($=>`${$.key}: ${$.message}`).join(", "));re={type:"FeatureCollection",features:re.features.filter($=>ce.value.evaluate({zoom:0},$))}}return re})}loadGeoJSON(G,Q){return x._(this,void 0,void 0,function*(){const{promoteId:re}=G;if(G.request){const ce=yield x.j(G.request,Q);return this._dataUpdateable=Xt(ce.data,re)?yt(ce.data,re):void 0,ce.data}if(typeof G.data=="string")try{const ce=JSON.parse(G.data);return this._dataUpdateable=Xt(ce,re)?yt(ce,re):void 0,ce}catch{throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`)}if(!G.dataDiff)throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${G.source}`);return function(ce,ye,$){var ke,be,Se,Ie;if(ye.removeAll&&ce.clear(),ye.remove)for(const Te of ye.remove)ce.delete(Te);if(ye.add)for(const Te of ye.add){const qe=$t(Te,$);qe!=null&&ce.set(qe,Te)}if(ye.update)for(const Te of ye.update){let qe=ce.get(Te.id);if(qe==null)continue;const $e=!Te.removeAllProperties&&(((ke=Te.removeProperties)===null||ke===void 0?void 0:ke.length)>0||((be=Te.addOrUpdateProperties)===null||be===void 0?void 0:be.length)>0);if((Te.newGeometry||Te.removeAllProperties||$e)&&(qe=Object.assign({},qe),ce.set(Te.id,qe),$e&&(qe.properties=Object.assign({},qe.properties))),Te.newGeometry&&(qe.geometry=Te.newGeometry),Te.removeAllProperties)qe.properties={};else if(((Se=Te.removeProperties)===null||Se===void 0?void 0:Se.length)>0)for(const et of Te.removeProperties)Object.prototype.hasOwnProperty.call(qe.properties,et)&&delete qe.properties[et];if(((Ie=Te.addOrUpdateProperties)===null||Ie===void 0?void 0:Ie.length)>0)for(const{key:et,value:ht}of Te.addOrUpdateProperties)qe.properties[et]=ht}}(this._dataUpdateable,G.dataDiff,re),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}})}removeSource(G){return x._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(G){return this._geoJSONIndex.getClusterExpansionZoom(G.clusterId)}getClusterChildren(G){return this._geoJSONIndex.getChildren(G.clusterId)}getClusterLeaves(G){return this._geoJSONIndex.getLeaves(G.clusterId,G.limit,G.offset)}}class ur{constructor(G){this.self=G,this.actor=new x.H(G),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(Q,re)=>{if(this.externalWorkerSourceTypes[Q])throw new Error(`Worker source with name "${Q}" already registered.`);this.externalWorkerSourceTypes[Q]=re},this.self.addProtocol=x.cr,this.self.removeProtocol=x.cs,this.self.registerRTLTextPlugin=Q=>{x.cM.setMethods(Q)},this.actor.registerMessageHandler("LDT",(Q,re)=>this._getDEMWorkerSource(Q,re.source).loadTile(re)),this.actor.registerMessageHandler("RDT",(Q,re)=>x._(this,void 0,void 0,function*(){this._getDEMWorkerSource(Q,re.source).removeTile(re)})),this.actor.registerMessageHandler("GCEZ",(Q,re)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,re.type,re.source).getClusterExpansionZoom(re)})),this.actor.registerMessageHandler("GCC",(Q,re)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,re.type,re.source).getClusterChildren(re)})),this.actor.registerMessageHandler("GCL",(Q,re)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,re.type,re.source).getClusterLeaves(re)})),this.actor.registerMessageHandler("LD",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).loadData(re)),this.actor.registerMessageHandler("GD",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).getData()),this.actor.registerMessageHandler("LT",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).loadTile(re)),this.actor.registerMessageHandler("RT",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).reloadTile(re)),this.actor.registerMessageHandler("AT",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).abortTile(re)),this.actor.registerMessageHandler("RMT",(Q,re)=>this._getWorkerSource(Q,re.type,re.source).removeTile(re)),this.actor.registerMessageHandler("RS",(Q,re)=>x._(this,void 0,void 0,function*(){if(!this.workerSources[Q]||!this.workerSources[Q][re.type]||!this.workerSources[Q][re.type][re.source])return;const ce=this.workerSources[Q][re.type][re.source];delete this.workerSources[Q][re.type][re.source],ce.removeSource!==void 0&&ce.removeSource(re)})),this.actor.registerMessageHandler("RM",Q=>x._(this,void 0,void 0,function*(){delete this.layerIndexes[Q],delete this.availableImages[Q],delete this.workerSources[Q],delete this.demWorkerSources[Q]})),this.actor.registerMessageHandler("SR",(Q,re)=>x._(this,void 0,void 0,function*(){this.referrer=re})),this.actor.registerMessageHandler("SRPS",(Q,re)=>this._syncRTLPluginState(Q,re)),this.actor.registerMessageHandler("IS",(Q,re)=>x._(this,void 0,void 0,function*(){this.self.importScripts(re)})),this.actor.registerMessageHandler("SI",(Q,re)=>this._setImages(Q,re)),this.actor.registerMessageHandler("UL",(Q,re)=>x._(this,void 0,void 0,function*(){this._getLayerIndex(Q).update(re.layers,re.removedIds)})),this.actor.registerMessageHandler("SL",(Q,re)=>x._(this,void 0,void 0,function*(){this._getLayerIndex(Q).replace(re)}))}_setImages(G,Q){return x._(this,void 0,void 0,function*(){this.availableImages[G]=Q;for(const re in this.workerSources[G]){const ce=this.workerSources[G][re];for(const ye in ce)ce[ye].availableImages=Q}})}_syncRTLPluginState(G,Q){return x._(this,void 0,void 0,function*(){return yield x.cM.syncState(Q,this.self.importScripts)})}_getAvailableImages(G){let Q=this.availableImages[G];return Q||(Q=[]),Q}_getLayerIndex(G){let Q=this.layerIndexes[G];return Q||(Q=this.layerIndexes[G]=new s),Q}_getWorkerSource(G,Q,re){if(this.workerSources[G]||(this.workerSources[G]={}),this.workerSources[G][Q]||(this.workerSources[G][Q]={}),!this.workerSources[G][Q][re]){const ce={sendAsync:(ye,$)=>(ye.targetMapId=G,this.actor.sendAsync(ye,$))};switch(Q){case"vector":this.workerSources[G][Q][re]=new F(ce,this._getLayerIndex(G),this._getAvailableImages(G));break;case"geojson":this.workerSources[G][Q][re]=new er(ce,this._getLayerIndex(G),this._getAvailableImages(G));break;default:this.workerSources[G][Q][re]=new this.externalWorkerSourceTypes[Q](ce,this._getLayerIndex(G),this._getAvailableImages(G))}}return this.workerSources[G][Q][re]}_getDEMWorkerSource(G,Q){return this.demWorkerSources[G]||(this.demWorkerSources[G]={}),this.demWorkerSources[G][Q]||(this.demWorkerSources[G][Q]=new R),this.demWorkerSources[G][Q]}}return x.i(self)&&(self.worker=new ur(self)),ur}),k("index",["exports","./shared"],function(x,s){var B="5.5.0";function D(){var u=new s.A(4);return s.A!=Float32Array&&(u[1]=0,u[2]=0),u[0]=1,u[3]=1,u}let M,F;const R={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(u,e,r){const a=requestAnimationFrame(p=>{l(),e(p)}),{unsubscribe:l}=s.s(u.signal,"abort",()=>{l(),cancelAnimationFrame(a),r(s.c())},!1)},frameAsync(u){return new Promise((e,r)=>{this.frame(u,e,r)})},getImageData(u,e=0){return this.getImageCanvasContext(u).getImageData(-e,-e,u.width+2*e,u.height+2*e)},getImageCanvasContext(u){const e=window.document.createElement("canvas"),r=e.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("failed to create canvas 2d context");return e.width=u.width,e.height=u.height,r.drawImage(u,0,0,u.width,u.height),r},resolveURL:u=>(M||(M=document.createElement("a")),M.href=u,M.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(F==null&&(F=matchMedia("(prefers-reduced-motion: reduce)")),F.matches)}};class T{static testProp(e){if(!T.docStyle)return e[0];for(let r=0;r<e.length;r++)if(e[r]in T.docStyle)return e[r];return e[0]}static create(e,r,a){const l=window.document.createElement(e);return r!==void 0&&(l.className=r),a&&a.appendChild(l),l}static createNS(e,r){return window.document.createElementNS(e,r)}static disableDrag(){T.docStyle&&T.selectProp&&(T.userSelect=T.docStyle[T.selectProp],T.docStyle[T.selectProp]="none")}static enableDrag(){T.docStyle&&T.selectProp&&(T.docStyle[T.selectProp]=T.userSelect)}static setTransform(e,r){e.style[T.transformProp]=r}static addEventListener(e,r,a,l={}){e.addEventListener(r,a,"passive"in l?l:l.capture)}static removeEventListener(e,r,a,l={}){e.removeEventListener(r,a,"passive"in l?l:l.capture)}static suppressClickInternal(e){e.preventDefault(),e.stopPropagation(),window.removeEventListener("click",T.suppressClickInternal,!0)}static suppressClick(){window.addEventListener("click",T.suppressClickInternal,!0),window.setTimeout(()=>{window.removeEventListener("click",T.suppressClickInternal,!0)},0)}static getScale(e){const r=e.getBoundingClientRect();return{x:r.width/e.offsetWidth||1,y:r.height/e.offsetHeight||1,boundingClientRect:r}}static getPoint(e,r,a){const l=r.boundingClientRect;return new s.P((a.clientX-l.left)/r.x-e.clientLeft,(a.clientY-l.top)/r.y-e.clientTop)}static mousePos(e,r){const a=T.getScale(e);return T.getPoint(e,a,r)}static touchPos(e,r){const a=[],l=T.getScale(e);for(let p=0;p<r.length;p++)a.push(T.getPoint(e,l,r[p]));return a}static mouseButton(e){return e.button}static remove(e){e.parentNode&&e.parentNode.removeChild(e)}static sanitize(e){const r=new DOMParser().parseFromString(e,"text/html").body||document.createElement("body"),a=r.querySelectorAll("script");for(const l of a)l.remove();return T.clean(r),r.innerHTML}static isPossiblyDangerous(e,r){const a=r.replace(/\s+/g,"").toLowerCase();return!(!["src","href","xlink:href"].includes(e)||!a.includes("javascript:")&&!a.includes("data:"))||!!e.startsWith("on")||void 0}static clean(e){const r=e.children;for(const a of r)T.removeAttributes(a),T.clean(a)}static removeAttributes(e){for(const{name:r,value:a}of e.attributes)T.isPossiblyDangerous(r,a)&&e.removeAttribute(r)}}T.docStyle=typeof window<"u"&&window.document&&window.document.documentElement.style,T.selectProp=T.testProp(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]),T.transformProp=T.testProp(["transform","WebkitTransform"]);const C={supported:!1,testSupport:function(u){!ie&&K&&(le?Ae(u):U=u)}};let U,K,ie=!1,le=!1;function Ae(u){const e=u.createTexture();u.bindTexture(u.TEXTURE_2D,e);try{if(u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,K),u.isContextLost())return;C.supported=!0}catch{}u.deleteTexture(e),ie=!0}var te;typeof document<"u"&&(K=document.createElement("img"),K.onload=()=>{U&&Ae(U),U=null,le=!0},K.onerror=()=>{ie=!0,U=null},K.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),function(u){let e,r,a,l;u.resetRequestQueue=()=>{e=[],r=0,a=0,l={}},u.addThrottleControl=A=>{const I=a++;return l[I]=A,I},u.removeThrottleControl=A=>{delete l[A],g()},u.getImage=(A,I,z=!0)=>new Promise((N,O)=>{C.supported&&(A.headers||(A.headers={}),A.headers.accept="image/webp,*/*"),s.e(A,{type:"image"}),e.push({abortController:I,requestParameters:A,supportImageRefresh:z,state:"queued",onError:Z=>{O(Z)},onSuccess:Z=>{N(Z)}}),g()});const p=A=>s._(this,void 0,void 0,function*(){A.state="running";const{requestParameters:I,supportImageRefresh:z,onError:N,onSuccess:O,abortController:Z}=A,J=z===!1&&!s.i(self)&&!s.g(I.url)&&(!I.headers||Object.keys(I.headers).reduce((oe,ue)=>oe&&ue==="accept",!0));r++;const se=J?b(I,Z):s.m(I,Z);try{const oe=yield se;delete A.abortController,A.state="completed",oe.data instanceof HTMLImageElement||s.b(oe.data)?O(oe):oe.data&&O({data:yield(ne=oe.data,typeof createImageBitmap=="function"?s.f(ne):s.h(ne)),cacheControl:oe.cacheControl,expires:oe.expires})}catch(oe){delete A.abortController,N(oe)}finally{r--,g()}var ne}),g=()=>{const A=(()=>{for(const I of Object.keys(l))if(l[I]())return!0;return!1})()?s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let I=r;I<A&&e.length>0;I++){const z=e.shift();z.abortController.signal.aborted?I--:p(z)}},b=(A,I)=>new Promise((z,N)=>{const O=new Image,Z=A.url,J=A.credentials;J&&J==="include"?O.crossOrigin="use-credentials":(J&&J==="same-origin"||!s.d(Z))&&(O.crossOrigin="anonymous"),I.signal.addEventListener("abort",()=>{O.src="",N(s.c())}),O.fetchPriority="high",O.onload=()=>{O.onerror=O.onload=null,z({data:O})},O.onerror=()=>{O.onerror=O.onload=null,I.signal.aborted||N(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},O.src=Z})}(te||(te={})),te.resetRequestQueue();class de{constructor(e){this._transformRequestFn=e}transformRequest(e,r){return this._transformRequestFn&&this._transformRequestFn(e,r)||{url:e}}setTransformRequest(e){this._transformRequestFn=e}}function Ce(u){const e=[];if(typeof u=="string")e.push({id:"default",url:u});else if(u&&u.length>0){const r=[];for(const{id:a,url:l}of u){const p=`${a}${l}`;r.indexOf(p)===-1&&(r.push(p),e.push({id:a,url:l}))}}return e}function Ve(u,e,r){try{const a=new URL(u);return a.pathname+=`${e}${r}`,a.toString()}catch{throw new Error(`Invalid sprite URL "${u}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}class Ze{constructor(e,r,a,l){this.context=e,this.format=a,this.texture=e.gl.createTexture(),this.update(r,l)}update(e,r,a){const{width:l,height:p}=e,g=!(this.size&&this.size[0]===l&&this.size[1]===p||a),{context:b}=this,{gl:A}=b;if(this.useMipmap=!!(r&&r.useMipmap),A.bindTexture(A.TEXTURE_2D,this.texture),b.pixelStoreUnpackFlipY.set(!1),b.pixelStoreUnpack.set(1),b.pixelStoreUnpackPremultiplyAlpha.set(this.format===A.RGBA&&(!r||r.premultiply!==!1)),g)this.size=[l,p],e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||s.b(e)?A.texImage2D(A.TEXTURE_2D,0,this.format,this.format,A.UNSIGNED_BYTE,e):A.texImage2D(A.TEXTURE_2D,0,this.format,l,p,0,this.format,A.UNSIGNED_BYTE,e.data);else{const{x:I,y:z}=a||{x:0,y:0};e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||s.b(e)?A.texSubImage2D(A.TEXTURE_2D,0,I,z,A.RGBA,A.UNSIGNED_BYTE,e):A.texSubImage2D(A.TEXTURE_2D,0,I,z,l,p,A.RGBA,A.UNSIGNED_BYTE,e.data)}this.useMipmap&&this.isSizePowerOfTwo()&&A.generateMipmap(A.TEXTURE_2D),b.pixelStoreUnpackFlipY.setDefault(),b.pixelStoreUnpack.setDefault(),b.pixelStoreUnpackPremultiplyAlpha.setDefault()}bind(e,r,a){const{context:l}=this,{gl:p}=l;p.bindTexture(p.TEXTURE_2D,this.texture),a!==p.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(a=p.LINEAR),e!==this.filter&&(p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,e),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,a||e),this.filter=e),r!==this.wrap&&(p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,r),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_T,r),this.wrap=r)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:e}=this.context;e.deleteTexture(this.texture),this.texture=null}}function vt(u){const{userImage:e}=u;return!!(e&&e.render&&e.render())&&(u.data.replace(new Uint8Array(e.data.buffer)),!0)}class tt extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:r,promiseResolve:a}of this.requestors)a(this._getImagesForIds(r));this.requestors=[]}}getImage(e){const r=this.images[e];if(r&&!r.data&&r.spriteData){const a=r.spriteData;r.data=new s.R({width:a.width,height:a.height},a.context.getImageData(a.x,a.y,a.width,a.height).data),r.spriteData=null}return r}addImage(e,r){if(this.images[e])throw new Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,r)&&(this.images[e]=r)}_validate(e,r){let a=!0;const l=r.data||r.spriteData;return this._validateStretch(r.stretchX,l&&l.width)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchX" value`))),a=!1),this._validateStretch(r.stretchY,l&&l.height)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchY" value`))),a=!1),this._validateContent(r.content,r)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "content" value`))),a=!1),a}_validateStretch(e,r){if(!e)return!0;let a=0;for(const l of e){if(l[0]<a||l[1]<l[0]||r<l[1])return!1;a=l[1]}return!0}_validateContent(e,r){if(!e)return!0;if(e.length!==4)return!1;const a=r.spriteData,l=a&&a.width||r.data.width,p=a&&a.height||r.data.height;return!(e[0]<0||l<e[0]||e[1]<0||p<e[1]||e[2]<0||l<e[2]||e[3]<0||p<e[3]||e[2]<e[0]||e[3]<e[1])}updateImage(e,r,a=!0){const l=this.getImage(e);if(a&&(l.data.width!==r.data.width||l.data.height!==r.data.height))throw new Error(`size mismatch between old image (${l.data.width}x${l.data.height}) and new image (${r.data.width}x${r.data.height}).`);r.version=l.version+1,this.images[e]=r,this.updatedImages[e]=!0}removeImage(e){const r=this.images[e];delete this.images[e],delete this.patterns[e],r.userImage&&r.userImage.onRemove&&r.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(e){return new Promise((r,a)=>{let l=!0;if(!this.isLoaded())for(const p of e)this.images[p]||(l=!1);this.isLoaded()||l?r(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:r})})}_getImagesForIds(e){const r={};for(const a of e){let l=this.getImage(a);l||(this.fire(new s.l("styleimagemissing",{id:a})),l=this.getImage(a)),l?r[a]={data:l.data.clone(),pixelRatio:l.pixelRatio,sdf:l.sdf,version:l.version,stretchX:l.stretchX,stretchY:l.stretchY,content:l.content,textFitWidth:l.textFitWidth,textFitHeight:l.textFitHeight,hasRenderCallback:!!(l.userImage&&l.userImage.render)}:s.w(`Image "${a}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return r}getPixelSize(){const{width:e,height:r}=this.atlasImage;return{width:e,height:r}}getPattern(e){const r=this.patterns[e],a=this.getImage(e);if(!a)return null;if(r&&r.position.version===a.version)return r.position;if(r)r.position.version=a.version;else{const l={w:a.data.width+2,h:a.data.height+2,x:0,y:0},p=new s.I(l,a);this.patterns[e]={bin:l,position:p}}return this._updatePatternAtlas(),this.patterns[e].position}bind(e){const r=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new Ze(e,this.atlasImage,r.RGBA),this.atlasTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)}_updatePatternAtlas(){const e=[];for(const p in this.patterns)e.push(this.patterns[p].bin);const{w:r,h:a}=s.p(e),l=this.atlasImage;l.resize({width:r||1,height:a||1});for(const p in this.patterns){const{bin:g}=this.patterns[p],b=g.x+1,A=g.y+1,I=this.getImage(p).data,z=I.width,N=I.height;s.R.copy(I,l,{x:0,y:0},{x:b,y:A},{width:z,height:N}),s.R.copy(I,l,{x:0,y:N-1},{x:b,y:A-1},{width:z,height:1}),s.R.copy(I,l,{x:0,y:0},{x:b,y:A+N},{width:z,height:1}),s.R.copy(I,l,{x:z-1,y:0},{x:b-1,y:A},{width:1,height:N}),s.R.copy(I,l,{x:0,y:0},{x:b+z,y:A},{width:1,height:N})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(const r of e){if(this.callbackDispatchedThisFrame[r])continue;this.callbackDispatchedThisFrame[r]=!0;const a=this.getImage(r);a||s.w(`Image with ID: "${r}" was not found`),vt(a)&&this.updateImage(r,a)}}}const Xe=1e20;function rt(u,e,r,a,l,p,g,b,A){for(let I=e;I<e+a;I++)bt(u,r*p+I,p,l,g,b,A);for(let I=r;I<r+l;I++)bt(u,I*p+e,1,a,g,b,A)}function bt(u,e,r,a,l,p,g){p[0]=0,g[0]=-1e20,g[1]=Xe,l[0]=u[e];for(let b=1,A=0,I=0;b<a;b++){l[b]=u[e+b*r];const z=b*b;do{const N=p[A];I=(l[b]-l[N]+z-N*N)/(b-N)/2}while(I<=g[A]&&--A>-1);A++,p[A]=b,g[A]=I,g[A+1]=Xe}for(let b=0,A=0;b<a;b++){for(;g[A+1]<b;)A++;const I=p[A],z=b-I;u[e+b*r]=l[I]+z*z}}class Mt{constructor(e,r){this.requestManager=e,this.localIdeographFontFamily=r,this.entries={}}setURL(e){this.url=e}getGlyphs(e){return s._(this,void 0,void 0,function*(){const r=[];for(const p in e)for(const g of e[p])r.push(this._getAndCacheGlyphsPromise(p,g));const a=yield Promise.all(r),l={};for(const{stack:p,id:g,glyph:b}of a)l[p]||(l[p]={}),l[p][g]=b&&{id:b.id,bitmap:b.bitmap.clone(),metrics:b.metrics};return l})}_getAndCacheGlyphsPromise(e,r){return s._(this,void 0,void 0,function*(){let a=this.entries[e];a||(a=this.entries[e]={glyphs:{},requests:{},ranges:{}});let l=a.glyphs[r];if(l!==void 0)return{stack:e,id:r,glyph:l};if(l=this._tinySDF(a,e,r),l)return a.glyphs[r]=l,{stack:e,id:r,glyph:l};const p=Math.floor(r/256);if(256*p>65535)throw new Error("glyphs > 65535 not supported");if(a.ranges[p])return{stack:e,id:r,glyph:l};if(!this.url)throw new Error("glyphsUrl is not set");if(!a.requests[p]){const b=Mt.loadGlyphRange(e,p,this.url,this.requestManager);a.requests[p]=b}const g=yield a.requests[p];for(const b in g)this._doesCharSupportLocalGlyph(+b)||(a.glyphs[+b]=g[+b]);return a.ranges[p]=!0,{stack:e,id:r,glyph:g[r]||null}})}_doesCharSupportLocalGlyph(e){return!!this.localIdeographFontFamily&&(new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}","u").test(String.fromCodePoint(e))||s.u["CJK Unified Ideographs"](e)||s.u["Hangul Syllables"](e)||s.u.Hiragana(e)||s.u.Katakana(e)||s.u["CJK Symbols and Punctuation"](e)||s.u["Halfwidth and Fullwidth Forms"](e))}_tinySDF(e,r,a){const l=this.localIdeographFontFamily;if(!l||!this._doesCharSupportLocalGlyph(a))return;let p=e.tinySDF;if(!p){let b="400";/bold/i.test(r)?b="900":/medium/i.test(r)?b="500":/light/i.test(r)&&(b="200"),p=e.tinySDF=new Mt.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:l,fontWeight:b})}const g=p.draw(String.fromCharCode(a));return{id:a,bitmap:new s.q({width:g.width||60,height:g.height||60},g.data),metrics:{width:g.glyphWidth/2||24,height:g.glyphHeight/2||24,left:g.glyphLeft/2+.5||0,top:g.glyphTop/2-27.5||-8,advance:g.glyphAdvance/2||24,isDoubleResolution:!0}}}}Mt.loadGlyphRange=function(u,e,r,a){return s._(this,void 0,void 0,function*(){const l=256*e,p=l+255,g=a.transformRequest(r.replace("{fontstack}",u).replace("{range}",`${l}-${p}`),"Glyphs"),b=yield s.n(g,new AbortController);if(!b||!b.data)throw new Error(`Could not load glyph range. range: ${e}, ${l}-${p}`);const A={};for(const I of s.o(b.data))A[I.id]=I;return A})},Mt.TinySDF=class{constructor({fontSize:u=24,buffer:e=3,radius:r=8,cutoff:a=.25,fontFamily:l="sans-serif",fontWeight:p="normal",fontStyle:g="normal"}={}){this.buffer=e,this.cutoff=a,this.radius=r;const b=this.size=u+4*e,A=this._createCanvas(b),I=this.ctx=A.getContext("2d",{willReadFrequently:!0});I.font=`${g} ${p} ${u}px ${l}`,I.textBaseline="alphabetic",I.textAlign="left",I.fillStyle="black",this.gridOuter=new Float64Array(b*b),this.gridInner=new Float64Array(b*b),this.f=new Float64Array(b),this.z=new Float64Array(b+1),this.v=new Uint16Array(b)}_createCanvas(u){const e=document.createElement("canvas");return e.width=e.height=u,e}draw(u){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:a,actualBoundingBoxLeft:l,actualBoundingBoxRight:p}=this.ctx.measureText(u),g=Math.ceil(r),b=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-l))),A=Math.min(this.size-this.buffer,g+Math.ceil(a)),I=b+2*this.buffer,z=A+2*this.buffer,N=Math.max(I*z,0),O=new Uint8ClampedArray(N),Z={data:O,width:I,height:z,glyphWidth:b,glyphHeight:A,glyphTop:g,glyphLeft:0,glyphAdvance:e};if(b===0||A===0)return Z;const{ctx:J,buffer:se,gridInner:ne,gridOuter:oe}=this;J.clearRect(se,se,b,A),J.fillText(u,se,se+g);const ue=J.getImageData(se,se,b,A);oe.fill(Xe,0,N),ne.fill(0,0,N);for(let me=0;me<A;me++)for(let fe=0;fe<b;fe++){const ge=ue.data[4*(me*b+fe)+3]/255;if(ge===0)continue;const xe=(me+se)*I+fe+se;if(ge===1)oe[xe]=0,ne[xe]=Xe;else{const _e=.5-ge;oe[xe]=_e>0?_e*_e:0,ne[xe]=_e<0?_e*_e:0}}rt(oe,0,0,I,z,I,this.f,this.v,this.z),rt(ne,se,se,b,A,I,this.f,this.v,this.z);for(let me=0;me<N;me++){const fe=Math.sqrt(oe[me])-Math.sqrt(ne[me]);O[me]=Math.round(255-255*(fe/this.radius+this.cutoff))}return Z}};class cr{constructor(){this.specification=s.v.light.position}possiblyEvaluate(e,r){return s.z(e.expression.evaluate(r))}interpolate(e,r,a){return{x:s.B.number(e.x,r.x,a),y:s.B.number(e.y,r.y,a),z:s.B.number(e.z,r.z,a)}}}let yr;class bi extends s.E{constructor(e){super(),yr=yr||new s.r({anchor:new s.D(s.v.light.anchor),position:new cr,color:new s.D(s.v.light.color),intensity:new s.D(s.v.light.intensity)}),this._transitionable=new s.T(yr),this.setLight(e),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(e,r={}){if(!this._validate(s.t,e,r))for(const a in e){const l=e[a];a.endsWith("-transition")?this._transitionable.setTransition(a.slice(0,-11),l):this._transitionable.setValue(a,l)}}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,r,a){return(!a||a.validate!==!1)&&s.x(this,e.call(s.y,{value:r,style:{glyphs:!0,sprite:!0},styleSpec:s.v}))}}const Zt=new s.r({"sky-color":new s.D(s.v.sky["sky-color"]),"horizon-color":new s.D(s.v.sky["horizon-color"]),"fog-color":new s.D(s.v.sky["fog-color"]),"fog-ground-blend":new s.D(s.v.sky["fog-ground-blend"]),"horizon-fog-blend":new s.D(s.v.sky["horizon-fog-blend"]),"sky-horizon-blend":new s.D(s.v.sky["sky-horizon-blend"]),"atmosphere-blend":new s.D(s.v.sky["atmosphere-blend"])});class en extends s.E{constructor(e){super(),this._transitionable=new s.T(Zt),this.setSky(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new s.C(0))}setSky(e,r={}){if(!this._validate(s.F,e,r)){e||(e={"sky-color":"transparent","horizon-color":"transparent","fog-color":"transparent","fog-ground-blend":1,"atmosphere-blend":0});for(const a in e){const l=e[a];a.endsWith("-transition")?this._transitionable.setTransition(a.slice(0,-11),l):this._transitionable.setValue(a,l)}}}getSky(){return this._transitionable.serialize()}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,r,a={}){return(a==null?void 0:a.validate)!==!1&&s.x(this,e.call(s.y,s.e({value:r,style:{glyphs:!0,sprite:!0},styleSpec:s.v})))}calculateFogBlendOpacity(e){return e<60?0:e<70?(e-60)/10:1}}class ti{constructor(e,r){this.width=e,this.height=r,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}getDash(e,r){const a=e.join(",")+String(r);return this.dashEntry[a]||(this.dashEntry[a]=this.addDash(e,r)),this.dashEntry[a]}getDashRanges(e,r,a){const l=[];let p=e.length%2==1?-e[e.length-1]*a:0,g=e[0]*a,b=!0;l.push({left:p,right:g,isDash:b,zeroLength:e[0]===0});let A=e[0];for(let I=1;I<e.length;I++){b=!b;const z=e[I];p=A*a,A+=z,g=A*a,l.push({left:p,right:g,isDash:b,zeroLength:z===0})}return l}addRoundDash(e,r,a){const l=r/2;for(let p=-a;p<=a;p++){const g=this.width*(this.nextRow+a+p);let b=0,A=e[b];for(let I=0;I<this.width;I++){I/A.right>1&&(A=e[++b]);const z=Math.abs(I-A.left),N=Math.abs(I-A.right),O=Math.min(z,N);let Z;const J=p/a*(l+1);if(A.isDash){const se=l-Math.abs(J);Z=Math.sqrt(O*O+se*se)}else Z=l-Math.sqrt(O*O+J*J);this.data[g+I]=Math.max(0,Math.min(255,Z+128))}}}addRegularDash(e){for(let b=e.length-1;b>=0;--b){const A=e[b],I=e[b+1];A.zeroLength?e.splice(b,1):I&&I.isDash===A.isDash&&(I.left=A.left,e.splice(b,1))}const r=e[0],a=e[e.length-1];r.isDash===a.isDash&&(r.left=a.left-this.width,a.right=r.right+this.width);const l=this.width*this.nextRow;let p=0,g=e[p];for(let b=0;b<this.width;b++){b/g.right>1&&(g=e[++p]);const A=Math.abs(b-g.left),I=Math.abs(b-g.right),z=Math.min(A,I);this.data[l+b]=Math.max(0,Math.min(255,(g.isDash?z:-z)+128))}}addDash(e,r){const a=r?7:0,l=2*a+1;if(this.nextRow+l>this.height)return s.w("LineAtlas out of space"),null;let p=0;for(let b=0;b<e.length;b++)p+=e[b];if(p!==0){const b=this.width/p,A=this.getDashRanges(e,this.width,b);r?this.addRoundDash(A,b,a):this.addRegularDash(A)}const g={y:(this.nextRow+a+.5)/this.height,height:2*a/this.height,width:p};return this.nextRow+=l,this.dirty=!0,g}bind(e){const r=e.gl;this.texture?(r.bindTexture(r.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,r.texSubImage2D(r.TEXTURE_2D,0,0,0,this.width,this.height,r.ALPHA,r.UNSIGNED_BYTE,this.data))):(this.texture=r.createTexture(),r.bindTexture(r.TEXTURE_2D,this.texture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.REPEAT),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.REPEAT),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texImage2D(r.TEXTURE_2D,0,r.ALPHA,this.width,this.height,0,r.ALPHA,r.UNSIGNED_BYTE,this.data))}}const wn="maplibre_preloaded_worker_pool";class Rr{constructor(){this.active={}}acquire(e){if(!this.workers)for(this.workers=[];this.workers.length<Rr.workerCount;)this.workers.push(new Worker(s.a.WORKER_URL));return this.active[e]=!0,this.workers.slice()}release(e){delete this.active[e],this.numActive()===0&&(this.workers.forEach(r=>{r.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[wn]}numActive(){return Object.keys(this.active).length}}const as=Math.floor(R.hardwareConcurrency/2);let wi,Dr;function ji(){return wi||(wi=new Rr),wi}Rr.workerCount=s.G(globalThis)?Math.max(Math.min(as,3),1):1;class ai{constructor(e,r){this.workerPool=e,this.actors=[],this.currentActor=0,this.id=r;const a=this.workerPool.acquire(r);for(let l=0;l<a.length;l++){const p=new s.H(a[l],r);p.name=`Worker ${l}`,this.actors.push(p)}if(!this.actors.length)throw new Error("No actors found")}broadcast(e,r){const a=[];for(const l of this.actors)a.push(l.sendAsync({type:e,data:r}));return Promise.all(a)}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(e=!0){this.actors.forEach(r=>{r.remove()}),this.actors=[],e&&this.workerPool.release(this.id)}registerMessageHandler(e,r){for(const a of this.actors)a.registerMessageHandler(e,r)}}function Sn(){return Dr||(Dr=new ai(ji(),s.J),Dr.registerMessageHandler("GR",(u,e,r)=>s.m(e,r))),Dr}function tn(u,e){const r=s.K();return s.L(r,r,[1,1,0]),s.M(r,r,[.5*u.width,.5*u.height,1]),u.calculatePosMatrix?s.N(r,r,u.calculatePosMatrix(e.toUnwrapped())):r}function Vn(u,e,r,a,l,p,g){var b;const A=function(O,Z,J){if(O)for(const se of O){const ne=Z[se];if(ne&&ne.source===J&&ne.type==="fill-extrusion")return!0}else for(const se in Z){const ne=Z[se];if(ne.source===J&&ne.type==="fill-extrusion")return!0}return!1}((b=l==null?void 0:l.layers)!==null&&b!==void 0?b:null,e,u.id),I=p.maxPitchScaleFactor(),z=u.tilesIn(a,I,A);z.sort(Kr);const N=[];for(const O of z)N.push({wrappedTileID:O.tileID.wrapped().key,queryResults:O.tile.queryRenderedFeatures(e,r,u._state,O.queryGeometry,O.cameraQueryGeometry,O.scale,l,p,I,tn(u.transform,O.tileID),g?(Z,J)=>g(O.tileID,Z,J):void 0)});return function(O,Z){for(const J in O)for(const se of O[J])li(se,Z);return O}(function(O){const Z={},J={};for(const se of O){const ne=se.queryResults,oe=se.wrappedTileID,ue=J[oe]=J[oe]||{};for(const me in ne){const fe=ne[me],ge=ue[me]=ue[me]||{},xe=Z[me]=Z[me]||[];for(const _e of fe)ge[_e.featureIndex]||(ge[_e.featureIndex]=!0,xe.push(_e))}}return Z}(N),u)}function Kr(u,e){const r=u.tileID,a=e.tileID;return r.overscaledZ-a.overscaledZ||r.canonical.y-a.canonical.y||r.wrap-a.wrap||r.canonical.x-a.canonical.x}function li(u,e){const r=u.feature,a=e.getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=a}function Gr(u,e,r){return s._(this,void 0,void 0,function*(){let a=u;if(u.url?a=(yield s.j(e.transformRequest(u.url,"Source"),r)).data:yield R.frameAsync(r),!a)return null;const l=s.O(s.e(a,u),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in a&&a.vector_layers&&(l.vectorLayerIds=a.vector_layers.map(p=>p.id)),l})}class Ke{constructor(e,r){e&&(r?this.setSouthWest(e).setNorthEast(r):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])))}setNorthEast(e){return this._ne=e instanceof s.Q?new s.Q(e.lng,e.lat):s.Q.convert(e),this}setSouthWest(e){return this._sw=e instanceof s.Q?new s.Q(e.lng,e.lat):s.Q.convert(e),this}extend(e){const r=this._sw,a=this._ne;let l,p;if(e instanceof s.Q)l=e,p=e;else{if(!(e instanceof Ke))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(Ke.convert(e)):this.extend(s.Q.convert(e)):e&&("lng"in e||"lon"in e)&&"lat"in e?this.extend(s.Q.convert(e)):this;if(l=e._sw,p=e._ne,!l||!p)return this}return r||a?(r.lng=Math.min(l.lng,r.lng),r.lat=Math.min(l.lat,r.lat),a.lng=Math.max(p.lng,a.lng),a.lat=Math.max(p.lat,a.lat)):(this._sw=new s.Q(l.lng,l.lat),this._ne=new s.Q(p.lng,p.lat)),this}getCenter(){return new s.Q((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new s.Q(this.getWest(),this.getNorth())}getSouthEast(){return new s.Q(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(e){const{lng:r,lat:a}=s.Q.convert(e);let l=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(l=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&l}static convert(e){return e instanceof Ke?e:e&&new Ke(e)}static fromLngLat(e,r=0){const a=360*r/40075017,l=a/Math.cos(Math.PI/180*e.lat);return new Ke(new s.Q(e.lng-l,e.lat-a),new s.Q(e.lng+l,e.lat+a))}adjustAntiMeridian(){const e=new s.Q(this._sw.lng,this._sw.lat),r=new s.Q(this._ne.lng,this._ne.lat);return new Ke(e,e.lng>r.lng?new s.Q(r.lng+360,r.lat):r)}}class nt{constructor(e,r,a){this.bounds=Ke.convert(this.validateBounds(e)),this.minzoom=r||0,this.maxzoom=a||24}validateBounds(e){return Array.isArray(e)&&e.length===4?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(e){const r=Math.pow(2,e.z),a=Math.floor(s.U(this.bounds.getWest())*r),l=Math.floor(s.S(this.bounds.getNorth())*r),p=Math.ceil(s.U(this.bounds.getEast())*r),g=Math.ceil(s.S(this.bounds.getSouth())*r);return e.x>=a&&e.x<p&&e.y>=l&&e.y<g}}class lt extends s.E{constructor(e,r,a,l){if(super(),this.id=e,this.dispatcher=a,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,s.e(this,s.O(r,["url","scheme","tileSize","promoteId"])),this._options=s.e({type:"vector"},r),this._collectResourceTiming=r.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(l)}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const e=yield Gr(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),e&&(s.e(this,e),e.bounds&&(this.tileBounds=new nt(e.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})))}catch(e){this._tileJSONRequest=null,this.fire(new s.k(e))}})}loaded(){return this._loaded}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load()}setSourceProperty(e){this._tileJSONRequest&&this._tileJSONRequest.abort(),e(),this.load()}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return s.e({},this._options)}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a={request:this.map._requestManager.transformRequest(r,"Tile"),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};a.request.collectResourceTiming=this._collectResourceTiming;let l="RT";if(e.actor&&e.state!=="expired"){if(e.state==="loading")return new Promise((p,g)=>{e.reloadPromise={resolve:p,reject:g}})}else e.actor=this.dispatcher.getActor(),l="LT";e.abortController=new AbortController;try{const p=yield e.actor.sendAsync({type:l,data:a},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,p)}catch(p){if(delete e.abortController,e.aborted)return;if(p&&p.status!==404)throw p;this._afterTileLoadWorkerResponse(e,null)}})}_afterTileLoadWorkerResponse(e,r){if(r&&r.resourceTiming&&(e.resourceTiming=r.resourceTiming),r&&this.map._refreshExpiredTiles&&e.setExpiryData(r),e.loadVectorData(r,this.map.painter),e.reloadPromise){const a=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(a.resolve).catch(a.reject)}}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&(yield e.actor.sendAsync({type:"AT",data:{uid:e.uid,type:this.type,source:this.id}}))})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.unloadVectorData(),e.actor&&(yield e.actor.sendAsync({type:"RMT",data:{uid:e.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class xt extends s.E{constructor(e,r,a,l){super(),this.id=e,this.dispatcher=a,this.setEventedParent(l),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=s.e({type:"raster"},r),s.e(this,s.O(r,["url","scheme","tileSize"]))}load(){return s._(this,arguments,void 0,function*(e=!1){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const r=yield Gr(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,r&&(s.e(this,r),r.bounds&&(this.tileBounds=new nt(r.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:e})))}catch(r){this._tileJSONRequest=null,this.fire(new s.k(r))}})}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(e){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),e(),this.load(!0)}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}serialize(){return s.e({},this._options)}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.abortController=new AbortController;try{const a=yield te.getImage(this.map._requestManager.transformRequest(r,"Tile"),e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(a&&a.data){this.map._refreshExpiredTiles&&(a.cacheControl||a.expires)&&e.setExpiryData({cacheControl:a.cacheControl,expires:a.expires});const l=this.map.painter.context,p=l.gl,g=a.data;e.texture=this.map.painter.getTileTexture(g.width),e.texture?e.texture.update(g,{useMipmap:!0}):(e.texture=new Ze(l,g,p.RGBA,{useMipmap:!0}),e.texture.bind(p.LINEAR,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST)),e.state="loaded"}}catch(a){if(delete e.abortController,e.aborted)e.state="unloaded";else if(a)throw e.state="errored",a}})}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController)})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.texture&&this.map.painter.saveTileTexture(e.texture)})}hasTransition(){return!1}}class kt extends xt{constructor(e,r,a,l){super(e,r,a,l),this.type="raster-dem",this.maxzoom=22,this._options=s.e({type:"raster-dem"},r),this.encoding=r.encoding||"mapbox",this.redFactor=r.redFactor,this.greenFactor=r.greenFactor,this.blueFactor=r.blueFactor,this.baseShift=r.baseShift}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a=this.map._requestManager.transformRequest(r,"Tile");e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{const l=yield te.getImage(a,e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(l&&l.data){const p=l.data;this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&e.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const g=s.b(p)&&s.V()?p:yield this.readImageNow(p),b={type:this.type,uid:e.uid,source:this.id,rawImageData:g,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!e.actor||e.state==="expired"){e.actor=this.dispatcher.getActor();const A=yield e.actor.sendAsync({type:"LDT",data:b});e.dem=A,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state="loaded"}}}catch(l){if(delete e.abortController,e.aborted)e.state="unloaded";else if(l)throw e.state="errored",l}})}readImageNow(e){return s._(this,void 0,void 0,function*(){if(typeof VideoFrame<"u"&&s.W()){const r=e.width+2,a=e.height+2;try{return new s.R({width:r,height:a},yield s.X(e,-1,-1,r,a))}catch{}}return R.getImageData(e,1)})}_getNeighboringTiles(e){const r=e.canonical,a=Math.pow(2,r.z),l=(r.x-1+a)%a,p=r.x===0?e.wrap-1:e.wrap,g=(r.x+1+a)%a,b=r.x+1===a?e.wrap+1:e.wrap,A={};return A[new s.Y(e.overscaledZ,p,r.z,l,r.y).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y).key]={backfilled:!1},r.y>0&&(A[new s.Y(e.overscaledZ,p,r.z,l,r.y-1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y-1).key]={backfilled:!1}),r.y+1<a&&(A[new s.Y(e.overscaledZ,p,r.z,l,r.y+1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,e.wrap,r.z,r.x,r.y+1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y+1).key]={backfilled:!1}),A}unloadTile(e){return s._(this,void 0,void 0,function*(){e.demTexture&&this.map.painter.saveTileTexture(e.demTexture),e.fbo&&(e.fbo.destroy(),delete e.fbo),e.dem&&delete e.dem,delete e.neighboringTiles,e.state="unloaded",e.actor&&(yield e.actor.sendAsync({type:"RDT",data:{type:this.type,uid:e.uid,source:this.id}}))})}}class Pt extends s.E{constructor(e,r,a,l){super(),this.id=e,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=a.getActor(),this.setEventedParent(l),this._data=r.data,this._options=s.e({},r),this._collectResourceTiming=r.collectResourceTiming,r.maxzoom!==void 0&&(this.maxzoom=r.maxzoom),r.type&&(this.type=r.type),r.attribution&&(this.attribution=r.attribution),this.promoteId=r.promoteId,r.clusterMaxZoom!==void 0&&this.maxzoom<=r.clusterMaxZoom&&s.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${r.clusterMaxZoom}".`),this.workerOptions=s.e({source:this.id,cluster:r.cluster||!1,geojsonVtOptions:{buffer:this._pixelsToTileUnits(r.buffer!==void 0?r.buffer:128),tolerance:this._pixelsToTileUnits(r.tolerance!==void 0?r.tolerance:.375),extent:s.Z,maxZoom:this.maxzoom,lineMetrics:r.lineMetrics||!1,generateId:r.generateId||!1},superclusterOptions:{maxZoom:r.clusterMaxZoom!==void 0?r.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,r.clusterMinPoints||2),extent:s.Z,radius:this._pixelsToTileUnits(r.clusterRadius||50),log:!1,generateId:r.generateId||!1},clusterProperties:r.clusterProperties,filter:r.filter},r.workerOptions),typeof this.promoteId=="string"&&(this.workerOptions.promoteId=this.promoteId)}_pixelsToTileUnits(e){return e*(s.Z/this.tileSize)}load(){return s._(this,void 0,void 0,function*(){yield this._updateWorkerData()})}onAdd(e){this.map=e,this.load()}setData(e){return this._data=e,this._updateWorkerData(),this}updateData(e){return this._updateWorkerData(e),this}getData(){return s._(this,void 0,void 0,function*(){const e=s.e({type:this.type},this.workerOptions);return this.actor.sendAsync({type:"GD",data:e})})}getCoordinatesFromGeometry(e){return e.type==="GeometryCollection"?e.geometries.map(r=>r.coordinates).flat(1/0):e.coordinates.flat(1/0)}getBounds(){return s._(this,void 0,void 0,function*(){const e=new Ke,r=yield this.getData();let a;switch(r.type){case"FeatureCollection":a=r.features.map(l=>this.getCoordinatesFromGeometry(l.geometry)).flat(1/0);break;case"Feature":a=this.getCoordinatesFromGeometry(r.geometry);break;default:a=this.getCoordinatesFromGeometry(r)}if(a.length==0)return e;for(let l=0;l<a.length-1;l+=2)e.extend([a[l],a[l+1]]);return e})}setClusterOptions(e){return this.workerOptions.cluster=e.cluster,e&&(e.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=this._pixelsToTileUnits(e.clusterRadius)),e.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=e.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(e){return this.actor.sendAsync({type:"GCEZ",data:{type:this.type,clusterId:e,source:this.id}})}getClusterChildren(e){return this.actor.sendAsync({type:"GCC",data:{type:this.type,clusterId:e,source:this.id}})}getClusterLeaves(e,r,a){return this.actor.sendAsync({type:"GCL",data:{type:this.type,source:this.id,clusterId:e,limit:r,offset:a}})}_updateWorkerData(e){return s._(this,void 0,void 0,function*(){const r=s.e({type:this.type},this.workerOptions);e?r.dataDiff=e:typeof this._data=="string"?(r.request=this.map._requestManager.transformRequest(R.resolveURL(this._data),"Source"),r.request.collectResourceTiming=this._collectResourceTiming):r.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new s.l("dataloading",{dataType:"source"}));try{const a=yield this.actor.sendAsync({type:"LD",data:r});if(this._pendingLoads--,this._removed||a.abandoned)return void this.fire(new s.l("dataabort",{dataType:"source"}));let l=null;a.resourceTiming&&a.resourceTiming[this.id]&&(l=a.resourceTiming[this.id].slice(0));const p={dataType:"source"};this._collectResourceTiming&&l&&l.length>0&&s.e(p,{resourceTiming:l}),this.fire(new s.l("data",Object.assign(Object.assign({},p),{sourceDataType:"metadata"}))),this.fire(new s.l("data",Object.assign(Object.assign({},p),{sourceDataType:"content"})))}catch(a){if(this._pendingLoads--,this._removed)return void this.fire(new s.l("dataabort",{dataType:"source"}));this.fire(new s.k(a))}})}loaded(){return this._pendingLoads===0}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.actor?"RT":"LT";e.actor=this.actor;const a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};e.abortController=new AbortController;const l=yield this.actor.sendAsync({type:r,data:a},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(l,this.map.painter,r==="RT")})}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=!0})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:e.uid,type:this.type,source:this.id}})})}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return s.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}class mt extends s.E{constructor(e,r,a,l){super(),this.flippedWindingOrder=!1,this.id=e,this.dispatcher=a,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(l),this.options=r}load(e){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const r=yield te.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,r&&r.data&&(this.image=r.data,e&&(this.coordinates=e),this._finishLoading())}catch(r){this._request=null,this._loaded=!0,this.fire(new s.k(r))}})}loaded(){return this._loaded}updateImage(e){return e.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=e.url,this.load(e.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(e){this.map=e,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(e){this.coordinates=e;const r=e.map(s.$.fromLngLat);var a;return this.tileID=function(l){let p=1/0,g=1/0,b=-1/0,A=-1/0;for(const O of l)p=Math.min(p,O.x),g=Math.min(g,O.y),b=Math.max(b,O.x),A=Math.max(A,O.y);const I=Math.max(b-p,A-g),z=Math.max(0,Math.floor(-Math.log(I)/Math.LN2)),N=Math.pow(2,z);return new s.a1(z,Math.floor((p+b)/2*N),Math.floor((g+A)/2*N))}(r),this.terrainTileRanges=this._getOverlappingTileRanges(r),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=r.map(l=>this.tileID.getTilePoint(l)._round()),this.flippedWindingOrder=((a=this.tileCoords)[1].x-a[0].x)*(a[2].y-a[0].y)-(a[1].y-a[0].y)*(a[2].x-a[0].x)<0,this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const e=this.map.painter.context,r=e.gl;this.texture||(this.texture=new Ze(e,this.image,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE));let a=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,a=!0)}a&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(e){return s._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state="errored"})}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(e){let r=1/0,a=1/0,l=-1/0,p=-1/0;for(const b of e)r=Math.min(r,b.x),a=Math.min(a,b.y),l=Math.max(l,b.x),p=Math.max(p,b.y);const g={};for(let b=0;b<=s.a0;b++){const A=Math.pow(2,b),I=Math.floor(r*A),z=Math.floor(a*A),N=Math.floor(l*A),O=Math.floor(p*A);g[b]={minTileX:I,minTileY:z,maxTileX:N,maxTileY:O}}return g}}class Ut extends mt{constructor(e,r,a,l){super(e,r,a,l),this.roundZoom=!0,this.type="video",this.options=r}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1;const e=this.options;this.urls=[];for(const r of e.urls)this.urls.push(this.map._requestManager.transformRequest(r,"Source").url);try{const r=yield s.a2(this.urls);if(this._loaded=!0,!r)return;this.video=r,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(r){this.fire(new s.k(r))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(e){if(this.video){const r=this.video.seekable;e<r.start(0)||e>r.end(0)?this.fire(new s.k(new s.a3(`sources.${this.id}`,null,`Playback for this video can be set only between the ${r.start(0)} and ${r.end(0)}-second mark.`))):this.video.currentTime=e}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const e=this.map.painter.context,r=e.gl;this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new Ze(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE));let a=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,a=!0)}a&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class It extends mt{constructor(e,r,a,l){super(e,r,a,l),r.coordinates?Array.isArray(r.coordinates)&&r.coordinates.length===4&&!r.coordinates.some(p=>!Array.isArray(p)||p.length!==2||p.some(g=>typeof g!="number"))||this.fire(new s.k(new s.a3(`sources.${e}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.k(new s.a3(`sources.${e}`,null,'missing required property "coordinates"'))),r.animate&&typeof r.animate!="boolean"&&this.fire(new s.k(new s.a3(`sources.${e}`,null,'optional "animate" property must be a boolean value'))),r.canvas?typeof r.canvas=="string"||r.canvas instanceof HTMLCanvasElement||this.fire(new s.k(new s.a3(`sources.${e}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new s.k(new s.a3(`sources.${e}`,null,'missing required property "canvas"'))),this.options=r,this.animate=r.animate===void 0||r.animate}load(){return s._(this,void 0,void 0,function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new s.k(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())})}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const r=this.map.painter.context,a=r.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new Ze(r,this.canvas,a.RGBA,{premultiply:!0});let l=!1;for(const p in this.tiles){const g=this.tiles[p];g.state!=="loaded"&&(g.state="loaded",g.texture=this.texture,l=!0)}l&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}}const Sr={},mi=u=>{switch(u){case"geojson":return Pt;case"image":return mt;case"raster":return xt;case"raster-dem":return kt;case"vector":return lt;case"video":return Ut;case"canvas":return It}return Sr[u]},Er="RTLPluginLoaded";class Hi extends s.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Sn()}_syncState(e){return this.status=e,this.dispatcher.broadcast("SRPS",{pluginStatus:e,pluginURL:this.url}).catch(r=>{throw this.status="error",r})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(e){return s._(this,arguments,void 0,function*(r,a=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=R.resolveURL(r),!this.url)throw new Error(`requested url ${r} is invalid`);if(this.status==="unavailable"){if(!a)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()})}_requestImport(){return s._(this,void 0,void 0,function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new s.l(Er))})}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let Mi=null;function Li(){return Mi||(Mi=new Hi),Mi}class Ri{constructor(e,r){this.timeAdded=0,this.fadeEndTime=0,this.tileID=e,this.uid=s.a4(),this.uses=0,this.tileSize=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(e){const r=e+this.timeAdded;r<this.fadeEndTime||(this.fadeEndTime=r)}wasRequested(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"}clearTextures(e){this.demTexture&&e.saveTileTexture(this.demTexture),this.demTexture=null}loadVectorData(e,r,a){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",e){e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestFeatureIndex.rawTileData=e.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=function(l,p){const g={};if(!p)return g;for(const b of l){const A=b.layerIds.map(I=>p.getLayer(I)).filter(Boolean);if(A.length!==0){b.layers=A,b.stateDependentLayerIds&&(b.stateDependentLayers=b.stateDependentLayerIds.map(I=>A.filter(z=>z.id===I)[0]));for(const I of A)g[I.id]=b}}return g}(e.buckets,r==null?void 0:r.style),this.hasSymbolBuckets=!1;for(const l in this.buckets){const p=this.buckets[l];if(p instanceof s.a6){if(this.hasSymbolBuckets=!0,!a)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const l in this.buckets){const p=this.buckets[l];if(p instanceof s.a6&&p.hasRTLText){this.hasRTLText=!0,Li().lazyLoad();break}}this.queryPadding=0;for(const l in this.buckets){const p=this.buckets[l];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(l).queryRadius(p))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new s.a5}unloadVectorData(){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(e){return this.buckets[e.id]}upload(e){for(const a in this.buckets){const l=this.buckets[a];l.uploadPending()&&l.upload(e)}const r=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Ze(e,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Ze(e,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,r,a,l,p,g,b,A,I,z,N){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:l,cameraQueryGeometry:p,scale:g,tileSize:this.tileSize,pixelPosMatrix:z,transform:A,params:b,queryPadding:this.queryPadding*I,getElevation:N},e,r,a):{}}querySourceFeatures(e,r){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const l=a.loadVTLayers(),p=r&&r.sourceLayer?r.sourceLayer:"",g=l._geojsonTileLayer||l[p];if(!g)return;const b=s.a7(r&&r.filter),{z:A,x:I,y:z}=this.tileID.canonical,N={z:A,x:I,y:z};for(let O=0;O<g.length;O++){const Z=g.feature(O);if(b.needGeometry){const ne=s.a8(Z,!0);if(!b.filter(new s.C(this.tileID.overscaledZ),ne,this.tileID.canonical))continue}else if(!b.filter(new s.C(this.tileID.overscaledZ),Z))continue;const J=a.getId(Z,p),se=new s.a9(Z,A,I,z,J);se.tile=N,e.push(se)}}hasData(){return this.state==="loaded"||this.state==="reloading"||this.state==="expired"}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(e){const r=this.expirationTime;if(e.cacheControl){const a=s.aa(e.cacheControl);a["max-age"]&&(this.expirationTime=Date.now()+1e3*a["max-age"])}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){const a=Date.now();let l=!1;if(this.expirationTime>a)l=!1;else if(r)if(this.expirationTime<r)l=!0;else{const p=this.expirationTime-r;p?this.expirationTime=a+Math.max(p,3e4):l=!0}else l=!0;l?(this.expiredRequestCount++,this.state="expired"):this.expiredRequestCount=0}}getExpiryTimeout(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),Math.pow(2,31)-1)}setFeatureState(e,r){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||Object.keys(e).length===0)return;const a=this.latestFeatureIndex.loadVTLayers();for(const l in this.buckets){if(!r.style.hasLayer(l))continue;const p=this.buckets[l],g=p.layers[0].sourceLayer||"_geojsonTileLayer",b=a[g],A=e[g];if(!b||!A||Object.keys(A).length===0)continue;p.update(A,b,this.imageAtlas&&this.imageAtlas.patternPositions||{});const I=r&&r.style&&r.style.getLayer(l);I&&(this.queryPadding=Math.max(this.queryPadding,I.queryRadius(p)))}}holdingForFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<R.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0}setHoldDuration(e){this.symbolFadeHoldUntil=R.now()+e}setDependencies(e,r){const a={};for(const l of r)a[l]=!0;this.dependencies[e]=a}hasDependency(e,r){for(const a of e){const l=this.dependencies[a];if(l){for(const p of r)if(l[p])return!0}}return!1}}class $t{constructor(e,r){this.max=e,this.onRemove=r,this.reset()}reset(){for(const e in this.data)for(const r of this.data[e])r.timeout&&clearTimeout(r.timeout),this.onRemove(r.value);return this.data={},this.order=[],this}add(e,r,a){const l=e.wrapped().key;this.data[l]===void 0&&(this.data[l]=[]);const p={value:r,timeout:void 0};if(a!==void 0&&(p.timeout=setTimeout(()=>{this.remove(e,p)},a)),this.data[l].push(p),this.order.push(l),this.order.length>this.max){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){const r=this.data[e].shift();return r.timeout&&clearTimeout(r.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),r.value}getByKey(e){const r=this.data[e];return r?r[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,r){if(!this.has(e))return this;const a=e.wrapped().key,l=r===void 0?0:this.data[a].indexOf(r),p=this.data[a][l];return this.data[a].splice(l,1),p.timeout&&clearTimeout(p.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(p.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(e){const r=[];for(const a in this.data)for(const l of this.data[a])e(l.value)||r.push(l);for(const a of r)this.remove(a.value.tileID,a)}}class Xt{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(e,r,a){const l=String(r);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][l]=this.stateChanges[e][l]||{},s.e(this.stateChanges[e][l],a),this.deletedStates[e]===null){this.deletedStates[e]={};for(const p in this.state[e])p!==l&&(this.deletedStates[e][p]=null)}else if(this.deletedStates[e]&&this.deletedStates[e][l]===null){this.deletedStates[e][l]={};for(const p in this.state[e][l])a[p]||(this.deletedStates[e][l][p]=null)}else for(const p in a)this.deletedStates[e]&&this.deletedStates[e][l]&&this.deletedStates[e][l][p]===null&&delete this.deletedStates[e][l][p]}removeFeatureState(e,r,a){if(this.deletedStates[e]===null)return;const l=String(r);if(this.deletedStates[e]=this.deletedStates[e]||{},a&&r!==void 0)this.deletedStates[e][l]!==null&&(this.deletedStates[e][l]=this.deletedStates[e][l]||{},this.deletedStates[e][l][a]=null);else if(r!==void 0)if(this.stateChanges[e]&&this.stateChanges[e][l])for(a in this.deletedStates[e][l]={},this.stateChanges[e][l])this.deletedStates[e][l][a]=null;else this.deletedStates[e][l]=null;else this.deletedStates[e]=null}getState(e,r){const a=String(r),l=s.e({},(this.state[e]||{})[a],(this.stateChanges[e]||{})[a]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){const p=this.deletedStates[e][r];if(p===null)return{};for(const g in p)delete l[g]}return l}initializeTileState(e,r){e.setFeatureState(this.state,r)}coalesceChanges(e,r){const a={};for(const l in this.stateChanges){this.state[l]=this.state[l]||{};const p={};for(const g in this.stateChanges[l])this.state[l][g]||(this.state[l][g]={}),s.e(this.state[l][g],this.stateChanges[l][g]),p[g]=this.state[l][g];a[l]=p}for(const l in this.deletedStates){this.state[l]=this.state[l]||{};const p={};if(this.deletedStates[l]===null)for(const g in this.state[l])p[g]={},this.state[l][g]={};else for(const g in this.deletedStates[l]){if(this.deletedStates[l][g]===null)this.state[l][g]={};else for(const b of Object.keys(this.deletedStates[l][g]))delete this.state[l][g][b];p[g]=this.state[l][g]}a[l]=a[l]||{},s.e(a[l],p)}if(this.stateChanges={},this.deletedStates={},Object.keys(a).length!==0)for(const l in e)e[l].setFeatureState(a,r)}}const yt=89.25;function er(u,e){const r=s.ae(e.lat,-85.051129,s.af);return new s.P(s.U(e.lng)*u,s.S(r)*u)}function ur(u,e){return new s.$(e.x/u,e.y/u).toLngLat()}function we(u){return u.cameraToCenterDistance*Math.min(.85*Math.tan(s.ab(90-u.pitch)),Math.tan(s.ab(yt-u.pitch)))}function G(u,e){const r=u.canonical,a=e/s.ac(r.z),l=r.x+Math.pow(2,r.z)*u.wrap,p=s.ad(new Float64Array(16));return s.L(p,p,[l*a,r.y*a,0]),s.M(p,p,[a/s.Z,a/s.Z,1]),p}function Q(u,e,r,a,l){const p=s.$.fromLngLat(u,e),g=l*s.ag(1,u.lat),b=g*Math.cos(s.ab(r)),A=Math.sqrt(g*g-b*b),I=A*Math.sin(s.ab(-a)),z=A*Math.cos(s.ab(-a));return new s.$(p.x+I,p.y+z,p.z+b)}function re(u,e,r){const a=e.intersectsFrustum(u);if(!r)return a;const l=e.intersectsPlane(r);return a===0||l===0?0:a===2&&l===2?2:1}function ce(u,e,r){let a=0;const l=(r-e)/10;for(let p=0;p<10;p++)a+=l*Math.pow(Math.cos(e+(p+.5)/10*(r-e)),u);return a}function ye(u,e){return function(r,a,l,p,g){const b=2*((u-1)/s.ah(Math.cos(s.ab(yt-g))/Math.cos(s.ab(yt)))-1),A=Math.acos(l/p),I=2*ce(b-1,0,s.ab(g/2)),z=Math.min(s.ab(yt),A+s.ab(g/2)),N=ce(b-1,Math.min(z,A-s.ab(g/2)),z),O=Math.atan(a/l),Z=Math.hypot(a,l);let J=r;return J+=s.ah(p/Z/Math.max(.5,Math.cos(s.ab(g/2)))),J+=b*s.ah(Math.cos(O))/2,J-=s.ah(Math.max(1,N/I/e))/2,J}}const $=ye(9.314,3);function ke(u,e){const r=(e.roundZoom?Math.round:Math.floor)(u.zoom+s.ah(u.tileSize/e.tileSize));return Math.max(0,r)}function be(u,e){const r=u.getCameraFrustum(),a=u.getClippingPlane(),l=u.screenPointToMercatorCoordinate(u.getCameraPoint()),p=s.$.fromLngLat(u.center,u.elevation);l.z=p.z+Math.cos(u.pitchInRadians)*u.cameraToCenterDistance/u.worldSize;const g=u.getCoveringTilesDetailsProvider(),b=g.allowVariableZoom(u,e),A=ke(u,e),I=e.minzoom||0,z=e.maxzoom!==void 0?e.maxzoom:u.maxZoom,N=Math.min(Math.max(0,A),z),O=Math.pow(2,N),Z=[O*l.x,O*l.y,0],J=[O*p.x,O*p.y,0],se=Math.hypot(p.x-l.x,p.y-l.y),ne=Math.abs(p.z-l.z),oe=Math.hypot(se,ne),ue=ge=>({zoom:0,x:0,y:0,wrap:ge,fullyVisible:!1}),me=[],fe=[];if(u.renderWorldCopies&&g.allowWorldCopies())for(let ge=1;ge<=3;ge++)me.push(ue(-ge)),me.push(ue(ge));for(me.push(ue(0));me.length>0;){const ge=me.pop(),xe=ge.x,_e=ge.y;let Ee=ge.fullyVisible;const Fe={x:xe,y:_e,z:ge.zoom},Le=g.getTileAABB(Fe,ge.wrap,u.elevation,e);if(!Ee){const Qe=re(r,Le,a);if(Qe===0)continue;Ee=Qe===2}const Re=g.distanceToTile2d(l.x,l.y,Fe,Le);let De=A;b&&(De=(e.calculateTileZoom||$)(u.zoom+s.ah(u.tileSize/e.tileSize),Re,ne,oe,u.fov)),De=(e.roundZoom?Math.round:Math.floor)(De),De=Math.max(0,De);const Ye=Math.min(De,z);if(ge.wrap=g.getWrap(p,Fe,ge.wrap),ge.zoom>=Ye){if(ge.zoom<I)continue;const Qe=N-ge.zoom,We=Z[0]-.5-(xe<<Qe),ot=Z[1]-.5-(_e<<Qe),Et=e.reparseOverscaled?Math.max(ge.zoom,De):ge.zoom;fe.push({tileID:new s.Y(ge.zoom===z?Et:ge.zoom,ge.wrap,ge.zoom,xe,_e),distanceSq:s.ai([J[0]-.5-xe,J[1]-.5-_e]),tileDistanceToCamera:Math.sqrt(We*We+ot*ot)})}else for(let Qe=0;Qe<4;Qe++)me.push({zoom:ge.zoom+1,x:(xe<<1)+Qe%2,y:(_e<<1)+(Qe>>1),wrap:ge.wrap,fullyVisible:Ee})}return fe.sort((ge,xe)=>ge.distanceSq-xe.distanceSq).map(ge=>ge.tileID)}class Se extends s.E{constructor(e,r,a){super(),this.id=e,this.dispatcher=a,this.on("data",l=>this._dataHandler(l)),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((l,p,g,b)=>{const A=new(mi(p.type))(l,p,g,b);if(A.id!==l)throw new Error(`Expected Source id to be ${l} instead of ${A.id}`);return A})(e,r,a,this),this._tiles={},this._cache=new $t(0,l=>this._unloadTile(l)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new Xt,this._didEmitContent=!1,this._updated=!1}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(e)}onRemove(e){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(e)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const e in this._tiles){const r=this._tiles[e];if(r.state!=="loaded"&&r.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(e,r,a){return s._(this,void 0,void 0,function*(){try{yield this._source.loadTile(e),this._tileLoaded(e,r,a)}catch(l){e.state="errored",l.status!==404?this._source.fire(new s.k(l,{tile:e})):this.update(this.transform,this.terrain)}})}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e)}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new s.l("dataabort",{tile:e,coord:e.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const r in this._tiles){const a=this._tiles[r];a.upload(e),a.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(e=>e.tileID).sort(Ie).map(e=>e.key)}getRenderableIds(e){const r=[];for(const a in this._tiles)this._isIdRenderable(a,e)&&r.push(this._tiles[a]);return e?r.sort((a,l)=>{const p=a.tileID,g=l.tileID,b=new s.P(p.canonical.x,p.canonical.y)._rotate(-this.transform.bearingInRadians),A=new s.P(g.canonical.x,g.canonical.y)._rotate(-this.transform.bearingInRadians);return p.overscaledZ-g.overscaledZ||A.y-b.y||A.x-b.x}).map(a=>a.tileID.key):r.map(a=>a.tileID).sort(Ie).map(a=>a.key)}hasRenderableParent(e){const r=this.findLoadedParent(e,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(e,r){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(r||!this._tiles[e].holdingForFade())}reload(e){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const r in this._tiles)(e||this._tiles[r].state!=="errored")&&this._reloadTile(r,"reloading")}}_reloadTile(e,r){return s._(this,void 0,void 0,function*(){const a=this._tiles[e];a&&(a.state!=="loading"&&(a.state=r),yield this._loadTile(a,e,r))})}_tileLoaded(e,r,a){e.timeAdded=R.now(),a==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),this.getSource().type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new s.l("data",{dataType:"source",tile:e,coord:e.tileID}))}_backfillDEM(e){const r=this.getRenderableIds();for(let l=0;l<r.length;l++){const p=r[l];if(e.neighboringTiles&&e.neighboringTiles[p]){const g=this.getTileByID(p);a(e,g),a(g,e)}}function a(l,p){l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0;let g=p.tileID.canonical.x-l.tileID.canonical.x;const b=p.tileID.canonical.y-l.tileID.canonical.y,A=Math.pow(2,l.tileID.canonical.z),I=p.tileID.key;g===0&&b===0||Math.abs(b)>1||(Math.abs(g)>1&&(Math.abs(g+A)===1?g+=A:Math.abs(g-A)===1&&(g-=A)),p.dem&&l.dem&&(l.dem.backfillBorder(p.dem,g,b),l.neighboringTiles&&l.neighboringTiles[I]&&(l.neighboringTiles[I].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,r,a,l){for(const p in this._tiles){let g=this._tiles[p];if(l[p]||!g.hasData()||g.tileID.overscaledZ<=r||g.tileID.overscaledZ>a)continue;let b=g.tileID;for(;g&&g.tileID.overscaledZ>r+1;){const I=g.tileID.scaledTo(g.tileID.overscaledZ-1);g=this._tiles[I.key],g&&g.hasData()&&(b=I)}let A=b;for(;A.overscaledZ>r;)if(A=A.scaledTo(A.overscaledZ-1),e[A.key]||e[A.canonical.key]){l[b.key]=b;break}}}findLoadedParent(e,r){if(e.key in this._loadedParentTiles){const a=this._loadedParentTiles[e.key];return a&&a.tileID.overscaledZ>=r?a:null}for(let a=e.overscaledZ-1;a>=r;a--){const l=e.scaledTo(a),p=this._getLoadedTile(l);if(p)return p}}findLoadedSibling(e){return this._getLoadedTile(e)}_getLoadedTile(e){const r=this._tiles[e.key];return r&&r.hasData()?r:this._cache.getByKey(e.wrapped().key)}updateCacheSize(e){const r=Math.ceil(e.width/this._source.tileSize)+1,a=Math.ceil(e.height/this._source.tileSize)+1,l=Math.floor(r*a*(this._maxTileCacheZoomLevels===null?s.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),p=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,l):l;this._cache.setMaxSize(p)}handleWrapJump(e){const r=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,r){const a={};for(const l in this._tiles){const p=this._tiles[l];p.tileID=p.tileID.unwrapTo(p.tileID.wrap+r),a[p.tileID.key]=p}this._tiles=a;for(const l in this._timers)clearTimeout(this._timers[l]),delete this._timers[l];for(const l in this._tiles)this._setTileReloadTimer(l,this._tiles[l])}}_updateCoveredAndRetainedTiles(e,r,a,l,p,g){const b={},A={},I=Object.keys(e),z=R.now();for(const N of I){const O=e[N],Z=this._tiles[N];if(!Z||Z.fadeEndTime!==0&&Z.fadeEndTime<=z)continue;const J=this.findLoadedParent(O,r),se=this.findLoadedSibling(O),ne=J||se||null;ne&&(this._addTile(ne.tileID),b[ne.tileID.key]=ne.tileID),A[N]=O}this._retainLoadedChildren(A,l,a,e);for(const N in b)e[N]||(this._coveredTiles[N]=!0,e[N]=b[N]);if(g){const N={},O={};for(const Z of p)this._tiles[Z.key].hasData()?N[Z.key]=Z:O[Z.key]=Z;for(const Z in O){const J=O[Z].children(this._source.maxzoom);this._tiles[J[0].key]&&this._tiles[J[1].key]&&this._tiles[J[2].key]&&this._tiles[J[3].key]&&(N[J[0].key]=e[J[0].key]=J[0],N[J[1].key]=e[J[1].key]=J[1],N[J[2].key]=e[J[2].key]=J[2],N[J[3].key]=e[J[3].key]=J[3],delete O[Z])}for(const Z in O){const J=O[Z],se=this.findLoadedParent(J,this._source.minzoom),ne=this.findLoadedSibling(J),oe=se||ne||null;if(oe){N[oe.tileID.key]=e[oe.tileID.key]=oe.tileID;for(const ue in N)N[ue].isChildOf(oe.tileID)&&delete N[ue]}}for(const Z in this._tiles)N[Z]||(this._coveredTiles[Z]=!0)}}update(e,r){if(!this._sourceLoaded||this._paused)return;let a;this.transform=e,this.terrain=r,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?a=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(z=>new s.Y(z.canonical.z,z.wrap,z.canonical.z,z.canonical.x,z.canonical.y)):(a=be(e,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:r,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(a=a.filter(z=>this._source.hasTile(z)))):a=[];const l=ke(e,this._source),p=Math.max(l-Se.maxOverzooming,this._source.minzoom),g=Math.max(l+Se.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const z={};for(const N of a)if(N.canonical.z>this._source.minzoom){const O=N.scaledTo(N.canonical.z-1);z[O.key]=O;const Z=N.scaledTo(Math.max(this._source.minzoom,Math.min(N.canonical.z,5)));z[Z.key]=Z}a=a.concat(Object.values(z))}const b=a.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,b&&this.fire(new s.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const A=this._updateRetainedTiles(a,l);Te(this._source.type)&&this._updateCoveredAndRetainedTiles(A,p,g,l,a,r);for(const z in A)this._tiles[z].clearFadeHold();const I=s.aj(this._tiles,A);for(const z of I){const N=this._tiles[z];N.hasSymbolBuckets&&!N.holdingForFade()?N.setHoldDuration(this.map._fadeDuration):N.hasSymbolBuckets&&!N.symbolFadeFinished()||this._removeTile(z)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(e)}_updateRetainedTiles(e,r){var a;const l={},p={},g=Math.max(r-Se.maxOverzooming,this._source.minzoom),b=Math.max(r+Se.maxUnderzooming,this._source.minzoom),A={};for(const I of e){const z=this._addTile(I);l[I.key]=I,z.hasData()||r<this._source.maxzoom&&(A[I.key]=I)}this._retainLoadedChildren(A,r,b,l);for(const I of e){let z=this._tiles[I.key];if(z.hasData())continue;if(r+1>this._source.maxzoom){const O=I.children(this._source.maxzoom)[0],Z=this.getTile(O);if(Z&&Z.hasData()){l[O.key]=O;continue}}else{const O=I.children(this._source.maxzoom);if(l[O[0].key]&&l[O[1].key]&&l[O[2].key]&&l[O[3].key])continue}let N=z.wasRequested();for(let O=I.overscaledZ-1;O>=g;--O){const Z=I.scaledTo(O);if(p[Z.key])break;if(p[Z.key]=!0,z=this.getTile(Z),!z&&N&&(z=this._addTile(Z)),z){const J=z.hasData();if((J||!(!((a=this.map)===null||a===void 0)&&a.cancelPendingTileRequestsWhileZooming)||N)&&(l[Z.key]=Z),N=z.wasRequested(),J)break}}}return l}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const r=[];let a,l=this._tiles[e].tileID;for(;l.overscaledZ>0;){if(l.key in this._loadedParentTiles){a=this._loadedParentTiles[l.key];break}r.push(l.key);const p=l.scaledTo(l.overscaledZ-1);if(a=this._getLoadedTile(p),a)break;l=p}for(const p of r)this._loadedParentTiles[p]=a}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(const e in this._tiles){const r=this._tiles[e].tileID,a=this._getLoadedTile(r);this._loadedSiblingTiles[r.key]=a}}_addTile(e){let r=this._tiles[e.key];if(r)return r;r=this._cache.getAndRemove(e),r&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));const a=r;return r||(r=new Ri(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(r,e.key,r.state)),r.uses++,this._tiles[e.key]=r,a||this._source.fire(new s.l("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r}_setTileReloadTimer(e,r){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const a=r.getExpiryTimeout();a&&(this._timers[e]=setTimeout(()=>{this._reloadTile(e,"expired"),delete this._timers[e]},a))}refreshTiles(e){for(const r in this._tiles)this._isIdRenderable(r)&&e.some(a=>a.equals(this._tiles[r].tileID.canonical))&&this._reloadTile(r,"expired")}_removeTile(e){const r=this._tiles[e];r&&(r.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),r.uses>0||(r.hasData()&&r.state!=="reloading"?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}_dataHandler(e){const r=e.sourceDataType;e.dataType==="source"&&r==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&e.dataType==="source"&&r==="content"&&(this.reload(e.sourceDataChanged),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(e);this._cache.reset()}tilesIn(e,r,a){const l=[],p=this.transform;if(!p)return l;const g=a?p.getCameraQueryGeometry(e):e,b=e.map(J=>p.screenPointToMercatorCoordinate(J,this.terrain)),A=g.map(J=>p.screenPointToMercatorCoordinate(J,this.terrain)),I=this.getIds();let z=1/0,N=1/0,O=-1/0,Z=-1/0;for(const J of A)z=Math.min(z,J.x),N=Math.min(N,J.y),O=Math.max(O,J.x),Z=Math.max(Z,J.y);for(let J=0;J<I.length;J++){const se=this._tiles[I[J]];if(se.holdingForFade())continue;const ne=p.getCoveringTilesDetailsProvider().allowWorldCopies()?se.tileID:se.tileID.unwrapTo(0),oe=Math.pow(2,p.zoom-se.tileID.overscaledZ),ue=r*se.queryPadding*s.Z/se.tileSize/oe,me=[ne.getTilePoint(new s.$(z,N)),ne.getTilePoint(new s.$(O,Z))];if(me[0].x-ue<s.Z&&me[0].y-ue<s.Z&&me[1].x+ue>=0&&me[1].y+ue>=0){const fe=b.map(xe=>ne.getTilePoint(xe)),ge=A.map(xe=>ne.getTilePoint(xe));l.push({tile:se,tileID:ne,queryGeometry:fe,cameraQueryGeometry:ge,scale:oe})}}return l}getVisibleCoordinates(e){const r=this.getRenderableIds(e).map(a=>this._tiles[a].tileID);return this.transform&&this.transform.populateCache(r),r}hasTransition(){if(this._source.hasTransition())return!0;if(Te(this._source.type)){const e=R.now();for(const r in this._tiles)if(this._tiles[r].fadeEndTime>=e)return!0}return!1}setFeatureState(e,r,a){this._state.updateState(e=e||"_geojsonTileLayer",r,a)}removeFeatureState(e,r,a){this._state.removeFeatureState(e=e||"_geojsonTileLayer",r,a)}getFeatureState(e,r){return this._state.getState(e=e||"_geojsonTileLayer",r)}setDependencies(e,r,a){const l=this._tiles[e];l&&l.setDependencies(r,a)}reloadTilesForDependencies(e,r){for(const a in this._tiles)this._tiles[a].hasDependency(e,r)&&this._reloadTile(a,"reloading");this._cache.filter(a=>!a.hasDependency(e,r))}}function Ie(u,e){const r=Math.abs(2*u.wrap)-+(u.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return u.overscaledZ-e.overscaledZ||a-r||e.canonical.y-u.canonical.y||e.canonical.x-u.canonical.x}function Te(u){return u==="raster"||u==="image"||u==="video"}Se.maxOverzooming=10,Se.maxUnderzooming=3;class qe{constructor(e,r){this.reset(e,r)}reset(e,r){this.points=e||[],this._distances=[0];for(let a=1;a<this.points.length;a++)this._distances[a]=this._distances[a-1]+this.points[a].dist(this.points[a-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(r||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(e){if(this.points.length===1)return this.points[0];e=s.ae(e,0,1);let r=1,a=this._distances[r];const l=e*this.paddedLength+this.padding;for(;a<l&&r<this._distances.length;)a=this._distances[++r];const p=r-1,g=this._distances[p],b=a-g,A=b>0?(l-g)/b:0;return this.points[p].mult(1-A).add(this.points[r].mult(A))}}function $e(u,e){let r=!0;return u==="always"||u!=="never"&&e!=="never"||(r=!1),r}class et{constructor(e,r,a){const l=this.boxCells=[],p=this.circleCells=[];this.xCellCount=Math.ceil(e/a),this.yCellCount=Math.ceil(r/a);for(let g=0;g<this.xCellCount*this.yCellCount;g++)l.push([]),p.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=r,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/r,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,r,a,l,p){this._forEachCell(r,a,l,p,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(r),this.bboxes.push(a),this.bboxes.push(l),this.bboxes.push(p)}insertCircle(e,r,a,l){this._forEachCell(r-l,a-l,r+l,a+l,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(r),this.circles.push(a),this.circles.push(l)}_insertBoxCell(e,r,a,l,p,g){this.boxCells[p].push(g)}_insertCircleCell(e,r,a,l,p,g){this.circleCells[p].push(g)}_query(e,r,a,l,p,g,b){if(a<0||e>this.width||l<0||r>this.height)return[];const A=[];if(e<=0&&r<=0&&this.width<=a&&this.height<=l){if(p)return[{key:null,x1:e,y1:r,x2:a,y2:l}];for(let I=0;I<this.boxKeys.length;I++)A.push({key:this.boxKeys[I],x1:this.bboxes[4*I],y1:this.bboxes[4*I+1],x2:this.bboxes[4*I+2],y2:this.bboxes[4*I+3]});for(let I=0;I<this.circleKeys.length;I++){const z=this.circles[3*I],N=this.circles[3*I+1],O=this.circles[3*I+2];A.push({key:this.circleKeys[I],x1:z-O,y1:N-O,x2:z+O,y2:N+O})}}else this._forEachCell(e,r,a,l,this._queryCell,A,{hitTest:p,overlapMode:g,seenUids:{box:{},circle:{}}},b);return A}query(e,r,a,l){return this._query(e,r,a,l,!1,null)}hitTest(e,r,a,l,p,g){return this._query(e,r,a,l,!0,p,g).length>0}hitTestCircle(e,r,a,l,p){const g=e-a,b=e+a,A=r-a,I=r+a;if(b<0||g>this.width||I<0||A>this.height)return!1;const z=[];return this._forEachCell(g,A,b,I,this._queryCellCircle,z,{hitTest:!0,overlapMode:l,circle:{x:e,y:r,radius:a},seenUids:{box:{},circle:{}}},p),z.length>0}_queryCell(e,r,a,l,p,g,b,A){const{seenUids:I,hitTest:z,overlapMode:N}=b,O=this.boxCells[p];if(O!==null){const J=this.bboxes;for(const se of O)if(!I.box[se]){I.box[se]=!0;const ne=4*se,oe=this.boxKeys[se];if(e<=J[ne+2]&&r<=J[ne+3]&&a>=J[ne+0]&&l>=J[ne+1]&&(!A||A(oe))&&(!z||!$e(N,oe.overlapMode))&&(g.push({key:oe,x1:J[ne],y1:J[ne+1],x2:J[ne+2],y2:J[ne+3]}),z))return!0}}const Z=this.circleCells[p];if(Z!==null){const J=this.circles;for(const se of Z)if(!I.circle[se]){I.circle[se]=!0;const ne=3*se,oe=this.circleKeys[se];if(this._circleAndRectCollide(J[ne],J[ne+1],J[ne+2],e,r,a,l)&&(!A||A(oe))&&(!z||!$e(N,oe.overlapMode))){const ue=J[ne],me=J[ne+1],fe=J[ne+2];if(g.push({key:oe,x1:ue-fe,y1:me-fe,x2:ue+fe,y2:me+fe}),z)return!0}}}return!1}_queryCellCircle(e,r,a,l,p,g,b,A){const{circle:I,seenUids:z,overlapMode:N}=b,O=this.boxCells[p];if(O!==null){const J=this.bboxes;for(const se of O)if(!z.box[se]){z.box[se]=!0;const ne=4*se,oe=this.boxKeys[se];if(this._circleAndRectCollide(I.x,I.y,I.radius,J[ne+0],J[ne+1],J[ne+2],J[ne+3])&&(!A||A(oe))&&!$e(N,oe.overlapMode))return g.push(!0),!0}}const Z=this.circleCells[p];if(Z!==null){const J=this.circles;for(const se of Z)if(!z.circle[se]){z.circle[se]=!0;const ne=3*se,oe=this.circleKeys[se];if(this._circlesCollide(J[ne],J[ne+1],J[ne+2],I.x,I.y,I.radius)&&(!A||A(oe))&&!$e(N,oe.overlapMode))return g.push(!0),!0}}}_forEachCell(e,r,a,l,p,g,b,A){const I=this._convertToXCellCoord(e),z=this._convertToYCellCoord(r),N=this._convertToXCellCoord(a),O=this._convertToYCellCoord(l);for(let Z=I;Z<=N;Z++)for(let J=z;J<=O;J++)if(p.call(this,e,r,a,l,this.xCellCount*J+Z,g,b,A))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,r,a,l,p,g){const b=l-e,A=p-r,I=a+g;return I*I>b*b+A*A}_circleAndRectCollide(e,r,a,l,p,g,b){const A=(g-l)/2,I=Math.abs(e-(l+A));if(I>A+a)return!1;const z=(b-p)/2,N=Math.abs(r-(p+z));if(N>z+a)return!1;if(I<=A||N<=z)return!0;const O=I-A,Z=N-z;return O*O+Z*Z<=a*a}}function ht(u,e,r){const a=s.K();if(!u){const{vecSouth:N,vecEast:O}=_t(e),Z=D();Z[0]=O[0],Z[1]=O[1],Z[2]=N[0],Z[3]=N[1],l=Z,(z=(g=(p=Z)[0])*(I=p[3])-(A=p[2])*(b=p[1]))&&(l[0]=I*(z=1/z),l[1]=-b*z,l[2]=-A*z,l[3]=g*z),a[0]=Z[0],a[1]=Z[1],a[4]=Z[2],a[5]=Z[3]}var l,p,g,b,A,I,z;return s.M(a,a,[1/r,1/r,1]),a}function St(u,e,r,a){if(u){const l=s.K();if(!e){const{vecSouth:p,vecEast:g}=_t(r);l[0]=g[0],l[1]=g[1],l[4]=p[0],l[5]=p[1]}return s.M(l,l,[a,a,1]),l}return r.pixelsToClipSpaceMatrix}function _t(u){const e=Math.cos(u.rollInRadians),r=Math.sin(u.rollInRadians),a=Math.cos(u.pitchInRadians),l=Math.cos(u.bearingInRadians),p=Math.sin(u.bearingInRadians),g=s.ao();g[0]=-l*a*r-p*e,g[1]=-p*a*r+l*e;const b=s.ap(g);b<1e-9?s.aq(g):s.ar(g,g,1/b);const A=s.ao();A[0]=l*a*e-p*r,A[1]=p*a*e+l*r;const I=s.ap(A);return I<1e-9?s.aq(A):s.ar(A,A,1/I),{vecEast:A,vecSouth:g}}function ze(u,e,r,a){let l;a?(l=[u,e,a(u,e),1],s.at(l,l,r)):(l=[u,e,0,1],On(l,l,r));const p=l[3];return{point:new s.P(l[0]/p,l[1]/p),signedDistanceFromCamera:p,isOccluded:!1}}function Kt(u,e){return .5+u/e*.5}function Bt(u,e){return u.x>=-e[0]&&u.x<=e[0]&&u.y>=-e[1]&&u.y<=e[1]}function jt(u,e,r,a,l,p,g,b,A,I,z,N,O){const Z=r?u.textSizeData:u.iconSizeData,J=s.ak(Z,e.transform.zoom),se=[256/e.width*2+1,256/e.height*2+1],ne=r?u.text.dynamicLayoutVertexArray:u.icon.dynamicLayoutVertexArray;ne.clear();const oe=u.lineVertexArray,ue=r?u.text.placedSymbolArray:u.icon.placedSymbolArray,me=e.transform.width/e.transform.height;let fe=!1;for(let ge=0;ge<ue.length;ge++){const xe=ue.get(ge);if(xe.hidden||xe.writingMode===s.al.vertical&&!fe){cn(xe.numGlyphs,ne);continue}fe=!1;const _e=new s.P(xe.anchorX,xe.anchorY),Ee={getElevation:O,pitchedLabelPlaneMatrix:a,lineVertexArray:oe,pitchWithMap:p,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:e.transform,tileAnchorPoint:_e,unwrappedTileID:A,width:I,height:z,translation:N},Fe=Tt(xe.anchorX,xe.anchorY,Ee);if(!Bt(Fe.point,se)){cn(xe.numGlyphs,ne);continue}const Le=Kt(e.transform.cameraToCenterDistance,Fe.signedDistanceFromCamera),Re=s.am(Z,J,xe),De=p?Re*e.transform.getPitchedTextCorrection(xe.anchorX,xe.anchorY,A)/Le:Re*Le,Ye=dt({projectionContext:Ee,pitchedLabelPlaneMatrixInverse:l,symbol:xe,fontSize:De,flip:!1,keepUpright:g,glyphOffsetArray:u.glyphOffsetArray,dynamicLayoutVertexArray:ne,aspectRatio:me,rotateToLine:b});fe=Ye.useVertical,(Ye.notEnoughRoom||fe||Ye.needsFlipping&&dt({projectionContext:Ee,pitchedLabelPlaneMatrixInverse:l,symbol:xe,fontSize:De,flip:!0,keepUpright:g,glyphOffsetArray:u.glyphOffsetArray,dynamicLayoutVertexArray:ne,aspectRatio:me,rotateToLine:b}).notEnoughRoom)&&cn(xe.numGlyphs,ne)}r?u.text.dynamicLayoutVertexBuffer.updateData(ne):u.icon.dynamicLayoutVertexBuffer.updateData(ne)}function gt(u,e,r,a,l,p,g,b){const A=p.glyphStartIndex+p.numGlyphs,I=p.lineStartIndex,z=p.lineStartIndex+p.lineLength,N=e.getoffsetX(p.glyphStartIndex),O=e.getoffsetX(A-1),Z=Fn(u*N,r,a,l,p.segment,I,z,b,g);if(!Z)return null;const J=Fn(u*O,r,a,l,p.segment,I,z,b,g);return J?b.projectionCache.anyProjectionOccluded?null:{first:Z,last:J}:null}function Ue(u,e,r,a){return u===s.al.horizontal&&Math.abs(r.y-e.y)>Math.abs(r.x-e.x)*a?{useVertical:!0}:(u===s.al.vertical?e.y<r.y:e.x>r.x)?{needsFlipping:!0}:null}function dt(u){const{projectionContext:e,pitchedLabelPlaneMatrixInverse:r,symbol:a,fontSize:l,flip:p,keepUpright:g,glyphOffsetArray:b,dynamicLayoutVertexArray:A,aspectRatio:I,rotateToLine:z}=u,N=l/24,O=a.lineOffsetX*N,Z=a.lineOffsetY*N;let J;if(a.numGlyphs>1){const se=a.glyphStartIndex+a.numGlyphs,ne=a.lineStartIndex,oe=a.lineStartIndex+a.lineLength,ue=gt(N,b,O,Z,p,a,z,e);if(!ue)return{notEnoughRoom:!0};const me=gi(ue.first.point.x,ue.first.point.y,e,r),fe=gi(ue.last.point.x,ue.last.point.y,e,r);if(g&&!p){const ge=Ue(a.writingMode,me,fe,I);if(ge)return ge}J=[ue.first];for(let ge=a.glyphStartIndex+1;ge<se-1;ge++)J.push(Fn(N*b.getoffsetX(ge),O,Z,p,a.segment,ne,oe,e,z));J.push(ue.last)}else{if(g&&!p){const ne=vr(e.tileAnchorPoint.x,e.tileAnchorPoint.y,e).point,oe=a.lineStartIndex+a.segment+1,ue=new s.P(e.lineVertexArray.getx(oe),e.lineVertexArray.gety(oe)),me=vr(ue.x,ue.y,e),fe=me.signedDistanceFromCamera>0?me.point:At(e.tileAnchorPoint,ue,ne,1,e),ge=gi(ne.x,ne.y,e,r),xe=gi(fe.x,fe.y,e,r),_e=Ue(a.writingMode,ge,xe,I);if(_e)return _e}const se=Fn(N*b.getoffsetX(a.glyphStartIndex),O,Z,p,a.segment,a.lineStartIndex,a.lineStartIndex+a.lineLength,e,z);if(!se||e.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};J=[se]}for(const se of J)s.as(A,se.point,se.angle);return{}}function At(u,e,r,a,l){const p=u.add(u.sub(e)._unit()),g=vr(p.x,p.y,l).point,b=r.sub(g);return r.add(b._mult(a/b.mag()))}function _r(u,e,r){const a=e.projectionCache;if(a.projections[u])return a.projections[u];const l=new s.P(e.lineVertexArray.getx(u),e.lineVertexArray.gety(u)),p=vr(l.x,l.y,e);if(p.signedDistanceFromCamera>0)return a.projections[u]=p.point,a.anyProjectionOccluded=a.anyProjectionOccluded||p.isOccluded,p.point;const g=u-r.direction;return At(r.distanceFromAnchor===0?e.tileAnchorPoint:new s.P(e.lineVertexArray.getx(g),e.lineVertexArray.gety(g)),l,r.previousVertex,r.absOffsetX-r.distanceFromAnchor+1,e)}function vr(u,e,r){const a=u+r.translation[0],l=e+r.translation[1];let p;return r.pitchWithMap?(p=ze(a,l,r.pitchedLabelPlaneMatrix,r.getElevation),p.isOccluded=!1):(p=r.transform.projectTileCoordinates(a,l,r.unwrappedTileID,r.getElevation),p.point.x=(.5*p.point.x+.5)*r.width,p.point.y=(.5*-p.point.y+.5)*r.height),p}function gi(u,e,r,a){if(r.pitchWithMap){const l=[u,e,0,1];return s.at(l,l,a),r.transform.projectTileCoordinates(l[0]/l[3],l[1]/l[3],r.unwrappedTileID,r.getElevation).point}return{x:u/r.width*2-1,y:e/r.height*2-1}}function Tt(u,e,r){return r.transform.projectTileCoordinates(u,e,r.unwrappedTileID,r.getElevation)}function ls(u,e,r){return u._unit()._perp()._mult(e*r)}function Vs(u,e,r,a,l,p,g,b,A){if(b.projectionCache.offsets[u])return b.projectionCache.offsets[u];const I=r.add(e);if(u+A.direction<a||u+A.direction>=l)return b.projectionCache.offsets[u]=I,I;const z=_r(u+A.direction,b,A),N=ls(z.sub(r),g,A.direction),O=r.add(N),Z=z.add(N);return b.projectionCache.offsets[u]=s.au(p,I,O,Z)||I,b.projectionCache.offsets[u]}function Fn(u,e,r,a,l,p,g,b,A){const I=a?u-e:u+e;let z=I>0?1:-1,N=0;a&&(z*=-1,N=Math.PI),z<0&&(N+=Math.PI);let O,Z=z>0?p+l:p+l+1;b.projectionCache.cachedAnchorPoint?O=b.projectionCache.cachedAnchorPoint:(O=vr(b.tileAnchorPoint.x,b.tileAnchorPoint.y,b).point,b.projectionCache.cachedAnchorPoint=O);let J,se,ne=O,oe=O,ue=0,me=0;const fe=Math.abs(I),ge=[];let xe;for(;ue+me<=fe;){if(Z+=z,Z<p||Z>=g)return null;ue+=me,oe=ne,se=J;const Fe={absOffsetX:fe,direction:z,distanceFromAnchor:ue,previousVertex:oe};if(ne=_r(Z,b,Fe),r===0)ge.push(oe),xe=ne.sub(oe);else{let Le;const Re=ne.sub(oe);Le=Re.mag()===0?ls(_r(Z+z,b,Fe).sub(ne),r,z):ls(Re,r,z),se||(se=oe.add(Le)),J=Vs(Z,Le,ne,p,g,se,r,b,Fe),ge.push(se),xe=J.sub(se)}me=xe.mag()}const _e=xe._mult((fe-ue)/me)._add(se||oe),Ee=N+Math.atan2(ne.y-oe.y,ne.x-oe.x);return ge.push(_e),{point:_e,angle:A?Ee:0,path:ge}}const Fs=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function cn(u,e){for(let r=0;r<u;r++){const a=e.length;e.resize(a+4),e.float32.set(Fs,3*a)}}function On(u,e,r){const a=e[0],l=e[1];return u[0]=r[0]*a+r[4]*l+r[12],u[1]=r[1]*a+r[5]*l+r[13],u[3]=r[3]*a+r[7]*l+r[15],u}const kr=100;class Si{constructor(e,r=new et(e.width+200,e.height+200,25),a=new et(e.width+200,e.height+200,25)){this.transform=e,this.grid=r,this.ignoredGrid=a,this.pitchFactor=Math.cos(e.pitch*Math.PI/180)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+kr,this.screenBottomBoundary=e.height+kr,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.perspectiveRatioCutoff=.6}placeCollisionBox(e,r,a,l,p,g,b,A,I,z,N,O){const Z=this.projectAndGetPerspectiveRatio(e.anchorPointX+A[0],e.anchorPointY+A[1],p,z,O),J=a*Z.perspectiveRatio;let se;if(g||b)se=this._projectCollisionBox(e,J,l,p,g,b,A,Z,z,N,O);else{const xe=Z.x+(N?N.x*J:0),_e=Z.y+(N?N.y*J:0);se={allPointsOccluded:!1,box:[xe+e.x1*J,_e+e.y1*J,xe+e.x2*J,_e+e.y2*J]}}const[ne,oe,ue,me]=se.box,fe=g?se.allPointsOccluded:Z.isOccluded;let ge=fe;return ge||(ge=Z.perspectiveRatio<this.perspectiveRatioCutoff),ge||(ge=!this.isInsideGrid(ne,oe,ue,me)),ge||r!=="always"&&this.grid.hitTest(ne,oe,ue,me,r,I)?{box:[ne,oe,ue,me],placeable:!1,offscreen:!1,occluded:fe}:{box:[ne,oe,ue,me],placeable:!0,offscreen:this.isOffscreen(ne,oe,ue,me),occluded:fe}}placeCollisionCircles(e,r,a,l,p,g,b,A,I,z,N,O,Z,J){const se=[],ne=new s.P(r.anchorX,r.anchorY),oe=this.getPerspectiveRatio(ne.x,ne.y,g,J),ue=(I?p*this.transform.getPitchedTextCorrection(r.anchorX,r.anchorY,g)/oe:p*oe)/s.ay,me={getElevation:J,pitchedLabelPlaneMatrix:b,lineVertexArray:a,pitchWithMap:I,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:this.transform,tileAnchorPoint:ne,unwrappedTileID:g,width:this.transform.width,height:this.transform.height,translation:Z},fe=gt(ue,l,r.lineOffsetX*ue,r.lineOffsetY*ue,!1,r,!1,me);let ge=!1,xe=!1,_e=!0;if(fe){const Ee=.5*N*oe+O,Fe=new s.P(-100,-100),Le=new s.P(this.screenRightBoundary,this.screenBottomBoundary),Re=new qe,De=fe.first,Ye=fe.last;let Qe=[];for(let Et=De.path.length-1;Et>=1;Et--)Qe.push(De.path[Et]);for(let Et=1;Et<Ye.path.length;Et++)Qe.push(Ye.path[Et]);const We=2.5*Ee;if(I){const Et=this.projectPathToScreenSpace(Qe,me);Qe=Et.some(Ot=>Ot.signedDistanceFromCamera<=0)?[]:Et.map(Ot=>Ot.point)}let ot=[];if(Qe.length>0){const Et=Qe[0].clone(),Ot=Qe[0].clone();for(let pr=1;pr<Qe.length;pr++)Et.x=Math.min(Et.x,Qe[pr].x),Et.y=Math.min(Et.y,Qe[pr].y),Ot.x=Math.max(Ot.x,Qe[pr].x),Ot.y=Math.max(Ot.y,Qe[pr].y);ot=Et.x>=Fe.x&&Ot.x<=Le.x&&Et.y>=Fe.y&&Ot.y<=Le.y?[Qe]:Ot.x<Fe.x||Et.x>Le.x||Ot.y<Fe.y||Et.y>Le.y?[]:s.av([Qe],Fe.x,Fe.y,Le.x,Le.y)}for(const Et of ot){Re.reset(Et,.25*Ee);let Ot=0;Ot=Re.length<=.5*Ee?1:Math.ceil(Re.paddedLength/We)+1;for(let pr=0;pr<Ot;pr++){const Qt=pr/Math.max(Ot-1,1),dr=Re.lerp(Qt),fr=dr.x+kr,tr=dr.y+kr;se.push(fr,tr,Ee,0);const Ht=fr-Ee,Br=tr-Ee,Ur=fr+Ee,Qr=tr+Ee;if(_e=_e&&this.isOffscreen(Ht,Br,Ur,Qr),xe=xe||this.isInsideGrid(Ht,Br,Ur,Qr),e!=="always"&&this.grid.hitTestCircle(fr,tr,Ee,e,z)&&(ge=!0,!A))return{circles:[],offscreen:!1,collisionDetected:ge}}}}return{circles:!A&&ge||!xe||oe<this.perspectiveRatioCutoff?[]:se,offscreen:_e,collisionDetected:ge}}projectPathToScreenSpace(e,r){const a=function(l,p){const g=s.K();return s.an(g,p.pitchedLabelPlaneMatrix),l.map(b=>{const A=ze(b.x,b.y,g,p.getElevation),I=p.transform.projectTileCoordinates(A.point.x,A.point.y,p.unwrappedTileID,p.getElevation);return I.point.x=(.5*I.point.x+.5)*p.width,I.point.y=(.5*-I.point.y+.5)*p.height,I})}(e,r);return function(l){let p=0,g=0,b=0,A=0;for(let I=0;I<l.length;I++)l[I].isOccluded?(b=I+1,A=0):(A++,A>g&&(g=A,p=b));return l.slice(p,p+g)}(a)}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const r=[];let a=1/0,l=1/0,p=-1/0,g=-1/0;for(const z of e){const N=new s.P(z.x+kr,z.y+kr);a=Math.min(a,N.x),l=Math.min(l,N.y),p=Math.max(p,N.x),g=Math.max(g,N.y),r.push(N)}const b=this.grid.query(a,l,p,g).concat(this.ignoredGrid.query(a,l,p,g)),A={},I={};for(const z of b){const N=z.key;if(A[N.bucketInstanceId]===void 0&&(A[N.bucketInstanceId]={}),A[N.bucketInstanceId][N.featureIndex])continue;const O=[new s.P(z.x1,z.y1),new s.P(z.x2,z.y1),new s.P(z.x2,z.y2),new s.P(z.x1,z.y2)];s.aw(r,O)&&(A[N.bucketInstanceId][N.featureIndex]=!0,I[N.bucketInstanceId]===void 0&&(I[N.bucketInstanceId]=[]),I[N.bucketInstanceId].push(N.featureIndex))}return I}insertCollisionBox(e,r,a,l,p,g){(a?this.ignoredGrid:this.grid).insert({bucketInstanceId:l,featureIndex:p,collisionGroupID:g,overlapMode:r},e[0],e[1],e[2],e[3])}insertCollisionCircles(e,r,a,l,p,g){const b=a?this.ignoredGrid:this.grid,A={bucketInstanceId:l,featureIndex:p,collisionGroupID:g,overlapMode:r};for(let I=0;I<e.length;I+=4)b.insertCircle(A,e[I],e[I+1],e[I+2])}projectAndGetPerspectiveRatio(e,r,a,l,p){if(p){let g;l?(g=[e,r,l(e,r),1],s.at(g,g,p)):(g=[e,r,0,1],On(g,g,p));const b=g[3];return{x:(g[0]/b+1)/2*this.transform.width+kr,y:(-g[1]/b+1)/2*this.transform.height+kr,perspectiveRatio:.5+this.transform.cameraToCenterDistance/b*.5,isOccluded:!1,signedDistanceFromCamera:b}}{const g=this.transform.projectTileCoordinates(e,r,a,l);return{x:(g.point.x+1)/2*this.transform.width+kr,y:(1-g.point.y)/2*this.transform.height+kr,perspectiveRatio:.5+this.transform.cameraToCenterDistance/g.signedDistanceFromCamera*.5,isOccluded:g.isOccluded,signedDistanceFromCamera:g.signedDistanceFromCamera}}}getPerspectiveRatio(e,r,a,l){const p=this.transform.projectTileCoordinates(e,r,a,l);return .5+this.transform.cameraToCenterDistance/p.signedDistanceFromCamera*.5}isOffscreen(e,r,a,l){return a<kr||e>=this.screenRightBoundary||l<kr||r>this.screenBottomBoundary}isInsideGrid(e,r,a,l){return a>=0&&e<this.gridRightBoundary&&l>=0&&r<this.gridBottomBoundary}getViewportMatrix(){const e=s.ad([]);return s.L(e,e,[-100,-100,0]),e}_projectCollisionBox(e,r,a,l,p,g,b,A,I,z,N){let O=1,Z=0,J=0,se=1;const ne=e.anchorPointX+b[0],oe=e.anchorPointY+b[1];if(g&&!p){const Qe=this.projectAndGetPerspectiveRatio(ne+1,oe,l,I,N),We=Qe.x-A.x,ot=Math.atan((Qe.y-A.y)/We)+(We<0?Math.PI:0),Et=Math.sin(ot),Ot=Math.cos(ot);O=Ot,Z=Et,J=-Et,se=Ot}else if(!g&&p){const Qe=_t(this.transform);O=Qe.vecEast[0],Z=Qe.vecEast[1],J=Qe.vecSouth[0],se=Qe.vecSouth[1]}let ue=A.x,me=A.y,fe=r;p&&(ue=ne,me=oe,fe=Math.pow(2,-(this.transform.zoom-a.overscaledZ)),fe*=this.transform.getPitchedTextCorrection(ne,oe,l),z||(fe*=s.ae(.5+A.signedDistanceFromCamera/this.transform.cameraToCenterDistance*.5,0,4))),z&&(ue+=O*z.x*fe+J*z.y*fe,me+=Z*z.x*fe+se*z.y*fe);const ge=e.x1*fe,xe=e.x2*fe,_e=(ge+xe)/2,Ee=e.y1*fe,Fe=e.y2*fe,Le=(Ee+Fe)/2,Re=[{offsetX:ge,offsetY:Ee},{offsetX:_e,offsetY:Ee},{offsetX:xe,offsetY:Ee},{offsetX:xe,offsetY:Le},{offsetX:xe,offsetY:Fe},{offsetX:_e,offsetY:Fe},{offsetX:ge,offsetY:Fe},{offsetX:ge,offsetY:Le}];let De=[];for(const{offsetX:Qe,offsetY:We}of Re)De.push(new s.P(ue+O*Qe+J*We,me+Z*Qe+se*We));let Ye=!1;if(p){const Qe=De.map(We=>this.projectAndGetPerspectiveRatio(We.x,We.y,l,I,N));Ye=Qe.some(We=>!We.isOccluded),De=Qe.map(We=>new s.P(We.x,We.y))}else Ye=!0;return{box:s.ax(De),allPointsOccluded:!Ye}}}class ar{constructor(e,r,a,l){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?r:-r))):l&&a?1:0,this.placed=a}isHidden(){return this.opacity===0&&!this.placed}}class Os{constructor(e,r,a,l,p){this.text=new ar(e?e.text:null,r,a,p),this.icon=new ar(e?e.icon:null,r,l,p)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class cs{constructor(e,r,a){this.text=e,this.icon=r,this.skipFade=a}}class Fa{constructor(e,r,a,l,p){this.bucketInstanceId=e,this.featureIndex=r,this.sourceLayerIndex=a,this.bucketIndex=l,this.tileID=p}}class Nn{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){const r=++this.maxGroupID;this.collisionGroups[e]={ID:r,predicate:a=>a.collisionGroupID===r}}return this.collisionGroups[e]}}function un(u,e,r,a,l){const{horizontalAlign:p,verticalAlign:g}=s.aE(u);return new s.P(-(p-.5)*e+a[0]*l,-(g-.5)*r+a[1]*l)}class ac{constructor(e,r,a,l,p){this.transform=e.clone(),this.terrain=r,this.collisionIndex=new Si(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=a,this.retainedQueryData={},this.collisionGroups=new Nn(l),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=p,p&&(p.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(e){const r=this.terrain;return r?(a,l)=>r.getElevation(e,a,l):null}getBucketParts(e,r,a,l){const p=a.getBucket(r),g=a.latestFeatureIndex;if(!p||!g||r.id!==p.layerIds[0])return;const b=a.collisionBoxArray,A=p.layers[0].layout,I=p.layers[0].paint,z=Math.pow(2,this.transform.zoom-a.tileID.overscaledZ),N=a.tileSize/s.Z,O=a.tileID.toUnwrapped(),Z=A.get("text-rotation-alignment")==="map",J=s.az(a,1,this.transform.zoom),se=s.aA(this.collisionIndex.transform,a,I.get("text-translate"),I.get("text-translate-anchor")),ne=s.aA(this.collisionIndex.transform,a,I.get("icon-translate"),I.get("icon-translate-anchor")),oe=ht(Z,this.transform,J);this.retainedQueryData[p.bucketInstanceId]=new Fa(p.bucketInstanceId,g,p.sourceLayerIndex,p.index,a.tileID);const ue={bucket:p,layout:A,translationText:se,translationIcon:ne,unwrappedTileID:O,pitchedLabelPlaneMatrix:oe,scale:z,textPixelRatio:N,holdingForFade:a.holdingForFade(),collisionBoxArray:b,partiallyEvaluatedTextSize:s.ak(p.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(p.sourceID)};if(l)for(const me of p.sortKeyRanges){const{sortKey:fe,symbolInstanceStart:ge,symbolInstanceEnd:xe}=me;e.push({sortKey:fe,symbolInstanceStart:ge,symbolInstanceEnd:xe,parameters:ue})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:p.symbolInstances.length,parameters:ue})}attemptAnchorPlacement(e,r,a,l,p,g,b,A,I,z,N,O,Z,J,se,ne,oe,ue,me,fe){const ge=s.aB[e.textAnchor],xe=[e.textOffset0,e.textOffset1],_e=un(ge,a,l,xe,p),Ee=this.collisionIndex.placeCollisionBox(r,O,A,I,z,b,g,ne,N.predicate,me,_e,fe);if((!ue||this.collisionIndex.placeCollisionBox(ue,O,A,I,z,b,g,oe,N.predicate,me,_e,fe).placeable)&&Ee.placeable){let Fe;if(this.prevPlacement&&this.prevPlacement.variableOffsets[Z.crossTileID]&&this.prevPlacement.placements[Z.crossTileID]&&this.prevPlacement.placements[Z.crossTileID].text&&(Fe=this.prevPlacement.variableOffsets[Z.crossTileID].anchor),Z.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[Z.crossTileID]={textOffset:xe,width:a,height:l,anchor:ge,textBoxScale:p,prevAnchor:Fe},this.markUsedJustification(J,ge,Z,se),J.allowVerticalPlacement&&(this.markUsedOrientation(J,se,Z),this.placedOrientations[Z.crossTileID]=se),{shift:_e,placedGlyphBoxes:Ee}}}placeLayerBucketPart(e,r,a){const{bucket:l,layout:p,translationText:g,translationIcon:b,unwrappedTileID:A,pitchedLabelPlaneMatrix:I,textPixelRatio:z,holdingForFade:N,collisionBoxArray:O,partiallyEvaluatedTextSize:Z,collisionGroup:J}=e.parameters,se=p.get("text-optional"),ne=p.get("icon-optional"),oe=s.aC(p,"text-overlap","text-allow-overlap"),ue=oe==="always",me=s.aC(p,"icon-overlap","icon-allow-overlap"),fe=me==="always",ge=p.get("text-rotation-alignment")==="map",xe=p.get("text-pitch-alignment")==="map",_e=p.get("icon-text-fit")!=="none",Ee=p.get("symbol-z-order")==="viewport-y",Fe=ue&&(fe||!l.hasIconData()||ne),Le=fe&&(ue||!l.hasTextData()||se);!l.collisionArrays&&O&&l.deserializeCollisionBoxes(O);const Re=this.retainedQueryData[l.bucketInstanceId].tileID,De=this._getTerrainElevationFunc(Re),Ye=this.transform.getFastPathSimpleProjectionMatrix(Re),Qe=(We,ot,Et)=>{var Ot,pr;if(r[We.crossTileID])return;if(N)return void(this.placements[We.crossTileID]=new cs(!1,!1,!1));let Qt=!1,dr=!1,fr=!0,tr=null,Ht={box:null,placeable:!1,offscreen:null,occluded:!1},Br={placeable:!1},Ur=null,Qr=null,Wt=null,Cn=0,an=0,En=0;ot.textFeatureIndex?Cn=ot.textFeatureIndex:We.useRuntimeCollisionCircles&&(Cn=We.featureIndex),ot.verticalTextFeatureIndex&&(an=ot.verticalTextFeatureIndex);const es=ot.textBox;if(es){const Ti=Ir=>{let Mr=s.al.horizontal;if(l.allowVerticalPlacement&&!Ir&&this.prevPlacement){const di=this.prevPlacement.placedOrientations[We.crossTileID];di&&(this.placedOrientations[We.crossTileID]=di,Mr=di,this.markUsedOrientation(l,Mr,We))}return Mr},In=(Ir,Mr)=>{if(l.allowVerticalPlacement&&We.numVerticalGlyphVertices>0&&ot.verticalTextBox){for(const di of l.writingModes)if(di===s.al.vertical?(Ht=Mr(),Br=Ht):Ht=Ir(),Ht&&Ht.placeable)break}else Ht=Ir()},dn=We.textAnchorOffsetStartIndex,Mn=We.textAnchorOffsetEndIndex;if(Mn===dn){const Ir=(Mr,di)=>{const sr=this.collisionIndex.placeCollisionBox(Mr,oe,z,Re,A,xe,ge,g,J.predicate,De,void 0,Ye);return sr&&sr.placeable&&(this.markUsedOrientation(l,di,We),this.placedOrientations[We.crossTileID]=di),sr};In(()=>Ir(es,s.al.horizontal),()=>{const Mr=ot.verticalTextBox;return l.allowVerticalPlacement&&We.numVerticalGlyphVertices>0&&Mr?Ir(Mr,s.al.vertical):{box:null,offscreen:null}}),Ti(Ht&&Ht.placeable)}else{let Ir=s.aB[(pr=(Ot=this.prevPlacement)===null||Ot===void 0?void 0:Ot.variableOffsets[We.crossTileID])===null||pr===void 0?void 0:pr.anchor];const Mr=(sr,ya,Yc)=>{const $c=sr.x2-sr.x1,qh=sr.y2-sr.y1,El=We.textBoxScale,_o=_e&&me==="never"?ya:null;let Vi=null,ln=oe==="never"?1:2,Fi="never";Ir&&ln++;for(let fn=0;fn<ln;fn++){for(let _a=dn;_a<Mn;_a++){const Ln=l.textAnchorOffsets.get(_a);if(Ir&&Ln.textAnchor!==Ir)continue;const Pl=this.attemptAnchorPlacement(Ln,sr,$c,qh,El,ge,xe,z,Re,A,J,Fi,We,l,Yc,g,b,_o,De);if(Pl&&(Vi=Pl.placedGlyphBoxes,Vi&&Vi.placeable))return Qt=!0,tr=Pl.shift,Vi}Ir?Ir=null:Fi=oe}return a&&!Vi&&(Vi={box:this.collisionIndex.placeCollisionBox(es,"always",z,Re,A,xe,ge,g,J.predicate,De,void 0,Ye).box,offscreen:!1,placeable:!1,occluded:!1}),Vi};In(()=>Mr(es,ot.iconBox,s.al.horizontal),()=>{const sr=ot.verticalTextBox;return l.allowVerticalPlacement&&(!Ht||!Ht.placeable)&&We.numVerticalGlyphVertices>0&&sr?Mr(sr,ot.verticalIconBox,s.al.vertical):{box:null,occluded:!0,offscreen:null}}),Ht&&(Qt=Ht.placeable,fr=Ht.offscreen);const di=Ti(Ht&&Ht.placeable);if(!Qt&&this.prevPlacement){const sr=this.prevPlacement.variableOffsets[We.crossTileID];sr&&(this.variableOffsets[We.crossTileID]=sr,this.markUsedJustification(l,sr.anchor,We,di))}}}if(Ur=Ht,Qt=Ur&&Ur.placeable,fr=Ur&&Ur.offscreen,We.useRuntimeCollisionCircles){const Ti=l.text.placedSymbolArray.get(We.centerJustifiedTextSymbolIndex),In=s.am(l.textSizeData,Z,Ti),dn=p.get("text-padding");Qr=this.collisionIndex.placeCollisionCircles(oe,Ti,l.lineVertexArray,l.glyphOffsetArray,In,A,I,a,xe,J.predicate,We.collisionCircleDiameter,dn,g,De),Qr.circles.length&&Qr.collisionDetected&&!a&&s.w("Collisions detected, but collision boxes are not shown"),Qt=ue||Qr.circles.length>0&&!Qr.collisionDetected,fr=fr&&Qr.offscreen}if(ot.iconFeatureIndex&&(En=ot.iconFeatureIndex),ot.iconBox){const Ti=In=>this.collisionIndex.placeCollisionBox(In,me,z,Re,A,xe,ge,b,J.predicate,De,_e&&tr?tr:void 0,Ye);Br&&Br.placeable&&ot.verticalIconBox?(Wt=Ti(ot.verticalIconBox),dr=Wt.placeable):(Wt=Ti(ot.iconBox),dr=Wt.placeable),fr=fr&&Wt.offscreen}const yo=se||We.numHorizontalGlyphVertices===0&&We.numVerticalGlyphVertices===0,Pn=ne||We.numIconVertices===0;yo||Pn?Pn?yo||(dr=dr&&Qt):Qt=dr&&Qt:dr=Qt=dr&&Qt;const ts=dr&&Wt.placeable;if(Qt&&Ur.placeable&&this.collisionIndex.insertCollisionBox(Ur.box,oe,p.get("text-ignore-placement"),l.bucketInstanceId,Br&&Br.placeable&&an?an:Cn,J.ID),ts&&this.collisionIndex.insertCollisionBox(Wt.box,me,p.get("icon-ignore-placement"),l.bucketInstanceId,En,J.ID),Qr&&Qt&&this.collisionIndex.insertCollisionCircles(Qr.circles,oe,p.get("text-ignore-placement"),l.bucketInstanceId,Cn,J.ID),a&&this.storeCollisionData(l.bucketInstanceId,Et,ot,Ur,Wt,Qr),We.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(l.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[We.crossTileID]=new cs((Qt||Fe)&&!(Ur!=null&&Ur.occluded),(dr||Le)&&!(Wt!=null&&Wt.occluded),fr||l.justReloaded),r[We.crossTileID]=!0};if(Ee){if(e.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const We=l.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let ot=We.length-1;ot>=0;--ot){const Et=We[ot];Qe(l.symbolInstances.get(Et),l.collisionArrays[Et],Et)}}else for(let We=e.symbolInstanceStart;We<e.symbolInstanceEnd;We++)Qe(l.symbolInstances.get(We),l.collisionArrays[We],We);l.justReloaded=!1}storeCollisionData(e,r,a,l,p,g){if(a.textBox||a.iconBox){let b,A;this.collisionBoxArrays.has(e)?b=this.collisionBoxArrays.get(e):(b=new Map,this.collisionBoxArrays.set(e,b)),b.has(r)?A=b.get(r):(A={text:null,icon:null},b.set(r,A)),a.textBox&&(A.text=l.box),a.iconBox&&(A.icon=p.box)}if(g){let b=this.collisionCircleArrays[e];b===void 0&&(b=this.collisionCircleArrays[e]=[]);for(let A=0;A<g.circles.length;A+=4)b.push(g.circles[A+0]-kr),b.push(g.circles[A+1]-kr),b.push(g.circles[A+2]),b.push(g.collisionDetected?1:0)}}markUsedJustification(e,r,a,l){let p;p=l===s.al.vertical?a.verticalPlacedTextSymbolIndex:{left:a.leftJustifiedTextSymbolIndex,center:a.centerJustifiedTextSymbolIndex,right:a.rightJustifiedTextSymbolIndex}[s.aD(r)];const g=[a.leftJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.rightJustifiedTextSymbolIndex,a.verticalPlacedTextSymbolIndex];for(const b of g)b>=0&&(e.text.placedSymbolArray.get(b).crossTileID=p>=0&&b!==p?0:a.crossTileID)}markUsedOrientation(e,r,a){const l=r===s.al.horizontal||r===s.al.horizontalOnly?r:0,p=r===s.al.vertical?r:0,g=[a.leftJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.rightJustifiedTextSymbolIndex];for(const b of g)e.text.placedSymbolArray.get(b).placedOrientation=l;a.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).placedOrientation=p)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let a=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const l=r?r.symbolFadeChange(e):1,p=r?r.opacities:{},g=r?r.variableOffsets:{},b=r?r.placedOrientations:{};for(const A in this.placements){const I=this.placements[A],z=p[A];z?(this.opacities[A]=new Os(z,l,I.text,I.icon),a=a||I.text!==z.text.placed||I.icon!==z.icon.placed):(this.opacities[A]=new Os(null,l,I.text,I.icon,I.skipFade),a=a||I.text||I.icon)}for(const A in p){const I=p[A];if(!this.opacities[A]){const z=new Os(I,l,!1,!1);z.isHidden()||(this.opacities[A]=z,a=a||I.text.placed||I.icon.placed)}}for(const A in g)this.variableOffsets[A]||!this.opacities[A]||this.opacities[A].isHidden()||(this.variableOffsets[A]=g[A]);for(const A in b)this.placedOrientations[A]||!this.opacities[A]||this.opacities[A].isHidden()||(this.placedOrientations[A]=b[A]);if(r&&r.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");a?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:e)}updateLayerOpacities(e,r){const a={};for(const l of r){const p=l.getBucket(e);p&&l.latestFeatureIndex&&e.id===p.layerIds[0]&&this.updateBucketOpacities(p,l.tileID,a,l.collisionBoxArray)}}updateBucketOpacities(e,r,a,l){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const p=e.layers[0],g=p.layout,b=new Os(null,0,!1,!1,!0),A=g.get("text-allow-overlap"),I=g.get("icon-allow-overlap"),z=p._unevaluatedLayout.hasValue("text-variable-anchor")||p._unevaluatedLayout.hasValue("text-variable-anchor-offset"),N=g.get("text-rotation-alignment")==="map",O=g.get("text-pitch-alignment")==="map",Z=g.get("icon-text-fit")!=="none",J=new Os(null,0,A&&(I||!e.hasIconData()||g.get("icon-optional")),I&&(A||!e.hasTextData()||g.get("text-optional")),!0);!e.collisionArrays&&l&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(l);const se=(oe,ue,me)=>{for(let fe=0;fe<ue/4;fe++)oe.opacityVertexArray.emplaceBack(me);oe.hasVisibleVertices=oe.hasVisibleVertices||me!==qn},ne=this.collisionBoxArrays.get(e.bucketInstanceId);for(let oe=0;oe<e.symbolInstances.length;oe++){const ue=e.symbolInstances.get(oe),{numHorizontalGlyphVertices:me,numVerticalGlyphVertices:fe,crossTileID:ge}=ue;let xe=this.opacities[ge];a[ge]?xe=b:xe||(xe=J,this.opacities[ge]=xe),a[ge]=!0;const _e=ue.numIconVertices>0,Ee=this.placedOrientations[ue.crossTileID],Fe=Ee===s.al.vertical,Le=Ee===s.al.horizontal||Ee===s.al.horizontalOnly;if(me>0||fe>0){const De=Na(xe.text);se(e.text,me,Fe?qn:De),se(e.text,fe,Le?qn:De);const Ye=xe.text.isHidden();[ue.rightJustifiedTextSymbolIndex,ue.centerJustifiedTextSymbolIndex,ue.leftJustifiedTextSymbolIndex].forEach(ot=>{ot>=0&&(e.text.placedSymbolArray.get(ot).hidden=Ye||Fe?1:0)}),ue.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(ue.verticalPlacedTextSymbolIndex).hidden=Ye||Le?1:0);const Qe=this.variableOffsets[ue.crossTileID];Qe&&this.markUsedJustification(e,Qe.anchor,ue,Ee);const We=this.placedOrientations[ue.crossTileID];We&&(this.markUsedJustification(e,"left",ue,We),this.markUsedOrientation(e,We,ue))}if(_e){const De=Na(xe.icon),Ye=!(Z&&ue.verticalPlacedIconSymbolIndex&&Fe);ue.placedIconSymbolIndex>=0&&(se(e.icon,ue.numIconVertices,Ye?De:qn),e.icon.placedSymbolArray.get(ue.placedIconSymbolIndex).hidden=xe.icon.isHidden()),ue.verticalPlacedIconSymbolIndex>=0&&(se(e.icon,ue.numVerticalIconVertices,Ye?qn:De),e.icon.placedSymbolArray.get(ue.verticalPlacedIconSymbolIndex).hidden=xe.icon.isHidden())}const Re=ne&&ne.has(oe)?ne.get(oe):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const De=e.collisionArrays[oe];if(De){let Ye=new s.P(0,0);if(De.textBox||De.verticalTextBox){let Qe=!0;if(z){const We=this.variableOffsets[ge];We?(Ye=un(We.anchor,We.width,We.height,We.textOffset,We.textBoxScale),N&&Ye._rotate(O?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Qe=!1}if(De.textBox||De.verticalTextBox){let We;De.textBox&&(We=Fe),De.verticalTextBox&&(We=Le),Oa(e.textCollisionBox.collisionVertexArray,xe.text.placed,!Qe||We,Re.text,Ye.x,Ye.y)}}if(De.iconBox||De.verticalIconBox){const Qe=!!(!Le&&De.verticalIconBox);let We;De.iconBox&&(We=Qe),De.verticalIconBox&&(We=!Qe),Oa(e.iconCollisionBox.collisionVertexArray,xe.icon.placed,We,Re.icon,Z?Ye.x:0,Z?Ye.y:0)}}}}if(e.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId])}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(e,r){const a=this.zoomAtLastRecencyCheck===r?1-this.zoomAdjustment(r):1;return this.zoomAtLastRecencyCheck=r,this.commitTime+this.fadeDuration*a>e}setStale(){this.stale=!0}}function Oa(u,e,r,a,l,p){a&&a.length!==0||(a=[0,0,0,0]);const g=a[0]-kr,b=a[1]-kr,A=a[2]-kr,I=a[3]-kr;u.emplaceBack(e?1:0,r?1:0,l||0,p||0,g,b),u.emplaceBack(e?1:0,r?1:0,l||0,p||0,A,b),u.emplaceBack(e?1:0,r?1:0,l||0,p||0,A,I),u.emplaceBack(e?1:0,r?1:0,l||0,p||0,g,I)}const lc=Math.pow(2,25),us=Math.pow(2,24),cc=Math.pow(2,17),fh=Math.pow(2,16),mh=Math.pow(2,9),gh=Math.pow(2,8),uc=Math.pow(2,1);function Na(u){if(u.opacity===0&&!u.placed)return 0;if(u.opacity===1&&u.placed)return 4294967295;const e=u.placed?1:0,r=Math.floor(127*u.opacity);return r*lc+e*us+r*cc+e*fh+r*mh+e*gh+r*uc+e}const qn=0;class qa{constructor(e){this._sortAcrossTiles=e.layout.get("symbol-z-order")!=="viewport-y"&&!e.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,r,a,l,p){const g=this._bucketParts;for(;this._currentTileIndex<e.length;)if(r.getBucketParts(g,l,e[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,p())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,g.sort((b,A)=>b.sortKey-A.sortKey));this._currentPartIndex<g.length;)if(r.placeLayerBucketPart(g[this._currentPartIndex],this._seenCrossTileIDs,a),this._currentPartIndex++,p())return!0;return!1}}class hc{constructor(e,r,a,l,p,g,b,A){this.placement=new ac(e,r,g,b,A),this._currentPlacementIndex=a.length-1,this._forceFullPlacement=l,this._showCollisionBoxes=p,this._done=!1}isDone(){return this._done}continuePlacement(e,r,a){const l=R.now(),p=()=>!this._forceFullPlacement&&R.now()-l>2;for(;this._currentPlacementIndex>=0;){const g=r[e[this._currentPlacementIndex]],b=this.placement.collisionIndex.transform.zoom;if(g.type==="symbol"&&(!g.minzoom||g.minzoom<=b)&&(!g.maxzoom||g.maxzoom>b)){if(this._inProgressLayer||(this._inProgressLayer=new qa(g)),this._inProgressLayer.continuePlacement(a[g.source],this.placement,this._showCollisionBoxes,g,p))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}}const Un=512/s.Z/2;class Ua{constructor(e,r,a){this.tileID=e,this.bucketInstanceId=a,this._symbolsByKey={};const l=new Map;for(let p=0;p<r.length;p++){const g=r.get(p),b=g.key,A=l.get(b);A?A.push(g):l.set(b,[g])}for(const[p,g]of l){const b={positions:g.map(A=>({x:Math.floor(A.anchorX*Un),y:Math.floor(A.anchorY*Un)})),crossTileIDs:g.map(A=>A.crossTileID)};if(b.positions.length>128){const A=new s.aF(b.positions.length,16,Uint16Array);for(const{x:I,y:z}of b.positions)A.add(I,z);A.finish(),delete b.positions,b.index=A}this._symbolsByKey[p]=b}}getScaledCoordinates(e,r){const{x:a,y:l,z:p}=this.tileID.canonical,{x:g,y:b,z:A}=r.canonical,I=Un/Math.pow(2,A-p),z=(b*s.Z+e.anchorY)*I,N=l*s.Z*Un;return{x:Math.floor((g*s.Z+e.anchorX)*I-a*s.Z*Un),y:Math.floor(z-N)}}findMatches(e,r,a){const l=this.tileID.canonical.z<r.canonical.z?1:Math.pow(2,this.tileID.canonical.z-r.canonical.z);for(let p=0;p<e.length;p++){const g=e.get(p);if(g.crossTileID)continue;const b=this._symbolsByKey[g.key];if(!b)continue;const A=this.getScaledCoordinates(g,r);if(b.index){const I=b.index.range(A.x-l,A.y-l,A.x+l,A.y+l).sort();for(const z of I){const N=b.crossTileIDs[z];if(!a[N]){a[N]=!0,g.crossTileID=N;break}}}else if(b.positions)for(let I=0;I<b.positions.length;I++){const z=b.positions[I],N=b.crossTileIDs[I];if(Math.abs(z.x-A.x)<=l&&Math.abs(z.y-A.y)<=l&&!a[N]){a[N]=!0,g.crossTileID=N;break}}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map(({crossTileIDs:e})=>e)}}class yh{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Ns{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){const r=Math.round((e-this.lng)/360);if(r!==0)for(const a in this.indexes){const l=this.indexes[a],p={};for(const g in l){const b=l[g];b.tileID=b.tileID.unwrapTo(b.tileID.wrap+r),p[b.tileID.key]=b}this.indexes[a]=p}this.lng=e}addBucket(e,r,a){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===r.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let p=0;p<r.symbolInstances.length;p++)r.symbolInstances.get(p).crossTileID=0;this.usedCrossTileIDs[e.overscaledZ]||(this.usedCrossTileIDs[e.overscaledZ]={});const l=this.usedCrossTileIDs[e.overscaledZ];for(const p in this.indexes){const g=this.indexes[p];if(Number(p)>e.overscaledZ)for(const b in g){const A=g[b];A.tileID.isChildOf(e)&&A.findMatches(r.symbolInstances,e,l)}else{const b=g[e.scaledTo(Number(p)).key];b&&b.findMatches(r.symbolInstances,e,l)}}for(let p=0;p<r.symbolInstances.length;p++){const g=r.symbolInstances.get(p);g.crossTileID||(g.crossTileID=a.generate(),l[g.crossTileID]=!0)}return this.indexes[e.overscaledZ]===void 0&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new Ua(e,r.symbolInstances,r.bucketInstanceId),!0}removeBucketCrossTileIDs(e,r){for(const a of r.getCrossTileIDsLists())for(const l of a)delete this.usedCrossTileIDs[e][l]}removeStaleBuckets(e){let r=!1;for(const a in this.indexes){const l=this.indexes[a];for(const p in l)e[l[p].bucketInstanceId]||(this.removeBucketCrossTileIDs(a,l[p]),delete l[p],r=!0)}return r}}class qs{constructor(){this.layerIndexes={},this.crossTileIDs=new yh,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(e,r,a){let l=this.layerIndexes[e.id];l===void 0&&(l=this.layerIndexes[e.id]=new Ns);let p=!1;const g={};l.handleWrapJump(a);for(const b of r){const A=b.getBucket(e);A&&e.id===A.layerIds[0]&&(A.bucketInstanceId||(A.bucketInstanceId=++this.maxBucketInstanceId),l.addBucket(b.tileID,A,this.crossTileIDs)&&(p=!0),g[A.bucketInstanceId]=!0)}return l.removeStaleBuckets(g)&&(p=!0),p}pruneUnusedLayers(e){const r={};e.forEach(a=>{r[a]=!0});for(const a in this.layerIndexes)r[a]||delete this.layerIndexes[a]}}var ja="void main() {fragColor=vec4(1.0);}";const ci={prelude:Nt(`#ifdef GL_ES
66
+ precision mediump float;
67
+ #else
68
+ #if !defined(lowp)
69
+ #define lowp
70
+ #endif
71
+ #if !defined(mediump)
72
+ #define mediump
73
+ #endif
74
+ #if !defined(highp)
75
+ #define highp
76
+ #endif
77
+ #endif
78
+ out highp vec4 fragColor;`,`#ifdef GL_ES
79
+ precision highp float;
80
+ #else
81
+ #if !defined(lowp)
82
+ #define lowp
83
+ #endif
84
+ #if !defined(mediump)
85
+ #define mediump
86
+ #endif
87
+ #if !defined(highp)
88
+ #define highp
89
+ #endif
90
+ #endif
91
+ vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
92
+ );}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
93
+ );}
94
+ #ifdef TERRAIN3D
95
+ uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;
96
+ #endif
97
+ 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) {
98
+ #ifdef TERRAIN3D
99
+ 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));
100
+ #else
101
+ return 1.0;
102
+ #endif
103
+ }float calculate_visibility(vec4 pos) {
104
+ #ifdef TERRAIN3D
105
+ 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;
106
+ #else
107
+ return 1.0;
108
+ #endif
109
+ }float ele(vec2 pos) {
110
+ #ifdef TERRAIN3D
111
+ vec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
112
+ #else
113
+ return 0.0;
114
+ #endif
115
+ }float get_elevation(vec2 pos) {
116
+ #ifdef TERRAIN3D
117
+ #ifdef GLOBE
118
+ if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
119
+ #endif
120
+ vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
121
+ #else
122
+ return 0.0;
123
+ #endif
124
+ }const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:Nt("","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:Nt("",`#define GLOBE_RADIUS 6371008.8
125
+ 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;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
126
+ );}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);
127
+ 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;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len
128
+ );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) {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) {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:Nt(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
129
+ #ifdef OVERDRAW_INSPECTOR
130
+ fragColor=vec4(1.0);
131
+ #endif
132
+ }`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:Nt(`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;
133
+ #ifdef OVERDRAW_INSPECTOR
134
+ fragColor=vec4(1.0);
135
+ #endif
136
+ }`,"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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(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);}"),circle:Nt(`in vec3 v_data;in float v_visibility;
137
+ #pragma mapbox: define highp vec4 color
138
+ #pragma mapbox: define mediump float radius
139
+ #pragma mapbox: define lowp float blur
140
+ #pragma mapbox: define lowp float opacity
141
+ #pragma mapbox: define highp vec4 stroke_color
142
+ #pragma mapbox: define mediump float stroke_width
143
+ #pragma mapbox: define lowp float stroke_opacity
144
+ void main() {
145
+ #pragma mapbox: initialize highp vec4 color
146
+ #pragma mapbox: initialize mediump float radius
147
+ #pragma mapbox: initialize lowp float blur
148
+ #pragma mapbox: initialize lowp float opacity
149
+ #pragma mapbox: initialize highp vec4 stroke_color
150
+ #pragma mapbox: initialize mediump float stroke_width
151
+ #pragma mapbox: initialize lowp float stroke_opacity
152
+ 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;}
153
+ #ifdef OVERDRAW_INSPECTOR
154
+ fragColor=vec4(1.0);
155
+ #endif
156
+ }`,`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 lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out float v_visibility;
157
+ #pragma mapbox: define highp vec4 color
158
+ #pragma mapbox: define mediump float radius
159
+ #pragma mapbox: define lowp float blur
160
+ #pragma mapbox: define lowp float opacity
161
+ #pragma mapbox: define highp vec4 stroke_color
162
+ #pragma mapbox: define mediump float stroke_width
163
+ #pragma mapbox: define lowp float stroke_opacity
164
+ void main(void) {
165
+ #pragma mapbox: initialize highp vec4 color
166
+ #pragma mapbox: initialize mediump float radius
167
+ #pragma mapbox: initialize lowp float blur
168
+ #pragma mapbox: initialize lowp float opacity
169
+ #pragma mapbox: initialize highp vec4 stroke_color
170
+ #pragma mapbox: initialize mediump float stroke_width
171
+ #pragma mapbox: initialize lowp float stroke_opacity
172
+ vec2 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
173
+ #ifdef GLOBE
174
+ vec3 center_vector=projectToSphere(circle_center);
175
+ #endif
176
+ 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 {
177
+ #ifdef GLOBE
178
+ vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
179
+ #else
180
+ vec4 projected_center=projectTileWithElevation(circle_center,ele);
181
+ #endif
182
+ 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);}
183
+ #ifdef GLOBE
184
+ vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
185
+ #else
186
+ gl_Position=projectTileWithElevation(corner_position,ele);
187
+ #endif
188
+ } 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);}`),clippingMask:Nt(ja,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:Nt(`uniform highp float u_intensity;in vec2 v_extrude;
189
+ #pragma mapbox: define highp float weight
190
+ #define GAUSS_COEF 0.3989422804014327
191
+ void main() {
192
+ #pragma mapbox: initialize highp float weight
193
+ 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);
194
+ #ifdef OVERDRAW_INSPECTOR
195
+ fragColor=vec4(1.0);
196
+ #endif
197
+ }`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out vec2 v_extrude;
198
+ #pragma mapbox: define highp float weight
199
+ #pragma mapbox: define mediump float radius
200
+ const highp float ZERO=1.0/255.0/16.0;
201
+ #define GAUSS_COEF 0.3989422804014327
202
+ void main(void) {
203
+ #pragma mapbox: initialize highp float weight
204
+ #pragma mapbox: initialize mediump float radius
205
+ vec2 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/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=floor(pos_raw/8.0);
206
+ #ifdef GLOBE
207
+ 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);
208
+ #else
209
+ gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
210
+ #endif
211
+ }`),heatmapTexture:Nt(`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;
212
+ #ifdef OVERDRAW_INSPECTOR
213
+ fragColor=vec4(0.0);
214
+ #endif
215
+ }`,"uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:Nt("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;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;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:Nt("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;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;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);}"),debug:Nt("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);}","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:Nt(ja,`in vec2 a_pos;void main() {
216
+ #ifdef GLOBE
217
+ gl_Position=projectTileFor3D(a_pos,0.0);
218
+ #else
219
+ gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
220
+ #endif
221
+ }`),fill:Nt(`#pragma mapbox: define highp vec4 color
222
+ #pragma mapbox: define lowp float opacity
223
+ void main() {
224
+ #pragma mapbox: initialize highp vec4 color
225
+ #pragma mapbox: initialize lowp float opacity
226
+ fragColor=color*opacity;
227
+ #ifdef OVERDRAW_INSPECTOR
228
+ fragColor=vec4(1.0);
229
+ #endif
230
+ }`,`uniform vec2 u_fill_translate;in vec2 a_pos;
231
+ #pragma mapbox: define highp vec4 color
232
+ #pragma mapbox: define lowp float opacity
233
+ void main() {
234
+ #pragma mapbox: initialize highp vec4 color
235
+ #pragma mapbox: initialize lowp float opacity
236
+ gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:Nt(`in vec2 v_pos;
237
+ #ifdef GLOBE
238
+ in float v_depth;
239
+ #endif
240
+ #pragma mapbox: define highp vec4 outline_color
241
+ #pragma mapbox: define lowp float opacity
242
+ void main() {
243
+ #pragma mapbox: initialize highp vec4 outline_color
244
+ #pragma mapbox: initialize lowp float opacity
245
+ float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
246
+ #ifdef GLOBE
247
+ if (v_depth > 1.0) {discard;}
248
+ #endif
249
+ #ifdef OVERDRAW_INSPECTOR
250
+ fragColor=vec4(1.0);
251
+ #endif
252
+ }`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos;
253
+ #ifdef GLOBE
254
+ out float v_depth;
255
+ #endif
256
+ #pragma mapbox: define highp vec4 outline_color
257
+ #pragma mapbox: define lowp float opacity
258
+ void main() {
259
+ #pragma mapbox: initialize highp vec4 outline_color
260
+ #pragma mapbox: initialize lowp float opacity
261
+ gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;
262
+ #ifdef GLOBE
263
+ v_depth=gl_Position.z/gl_Position.w;
264
+ #endif
265
+ }`),fillOutlinePattern:Nt(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
266
+ #ifdef GLOBE
267
+ in float v_depth;
268
+ #endif
269
+ #pragma mapbox: define lowp float opacity
270
+ #pragma mapbox: define lowp vec4 pattern_from
271
+ #pragma mapbox: define lowp vec4 pattern_to
272
+ void main() {
273
+ #pragma mapbox: initialize lowp float opacity
274
+ #pragma mapbox: initialize mediump vec4 pattern_from
275
+ #pragma mapbox: initialize mediump vec4 pattern_to
276
+ 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);fragColor=mix(color1,color2,u_fade)*alpha*opacity;
277
+ #ifdef GLOBE
278
+ if (v_depth > 1.0) {discard;}
279
+ #endif
280
+ #ifdef OVERDRAW_INSPECTOR
281
+ fragColor=vec4(1.0);
282
+ #endif
283
+ }`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
284
+ #ifdef GLOBE
285
+ out float v_depth;
286
+ #endif
287
+ #pragma mapbox: define lowp float opacity
288
+ #pragma mapbox: define lowp vec4 pattern_from
289
+ #pragma mapbox: define lowp vec4 pattern_to
290
+ #pragma mapbox: define lowp float pixel_ratio_from
291
+ #pragma mapbox: define lowp float pixel_ratio_to
292
+ void main() {
293
+ #pragma mapbox: initialize lowp float opacity
294
+ #pragma mapbox: initialize mediump vec4 pattern_from
295
+ #pragma mapbox: initialize mediump vec4 pattern_to
296
+ #pragma mapbox: initialize lowp float pixel_ratio_from
297
+ #pragma mapbox: initialize lowp float pixel_ratio_to
298
+ 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;
299
+ #ifdef GLOBE
300
+ v_depth=gl_Position.z/gl_Position.w;
301
+ #endif
302
+ }`),fillPattern:Nt(`#ifdef GL_ES
303
+ precision highp float;
304
+ #endif
305
+ uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
306
+ #pragma mapbox: define lowp float opacity
307
+ #pragma mapbox: define lowp vec4 pattern_from
308
+ #pragma mapbox: define lowp vec4 pattern_to
309
+ void main() {
310
+ #pragma mapbox: initialize lowp float opacity
311
+ #pragma mapbox: initialize mediump vec4 pattern_from
312
+ #pragma mapbox: initialize mediump vec4 pattern_to
313
+ 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);fragColor=mix(color1,color2,u_fade)*opacity;
314
+ #ifdef OVERDRAW_INSPECTOR
315
+ fragColor=vec4(1.0);
316
+ #endif
317
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
318
+ #pragma mapbox: define lowp float opacity
319
+ #pragma mapbox: define lowp vec4 pattern_from
320
+ #pragma mapbox: define lowp vec4 pattern_to
321
+ #pragma mapbox: define lowp float pixel_ratio_from
322
+ #pragma mapbox: define lowp float pixel_ratio_to
323
+ void main() {
324
+ #pragma mapbox: initialize lowp float opacity
325
+ #pragma mapbox: initialize mediump vec4 pattern_from
326
+ #pragma mapbox: initialize mediump vec4 pattern_to
327
+ #pragma mapbox: initialize lowp float pixel_ratio_from
328
+ #pragma mapbox: initialize lowp float pixel_ratio_to
329
+ 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:Nt(`in vec4 v_color;void main() {fragColor=v_color;
330
+ #ifdef OVERDRAW_INSPECTOR
331
+ fragColor=vec4(1.0);
332
+ #endif
333
+ }`,`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;in vec2 a_pos;in vec4 a_normal_ed;
334
+ #ifdef TERRAIN3D
335
+ in vec2 a_centroid;
336
+ #endif
337
+ out vec4 v_color;
338
+ #pragma mapbox: define highp float base
339
+ #pragma mapbox: define highp float height
340
+ #pragma mapbox: define highp vec4 color
341
+ void main() {
342
+ #pragma mapbox: initialize highp float base
343
+ #pragma mapbox: initialize highp float height
344
+ #pragma mapbox: initialize highp vec4 color
345
+ vec3 normal=a_normal_ed.xyz;
346
+ #ifdef TERRAIN3D
347
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
348
+ #else
349
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
350
+ #endif
351
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
352
+ #ifdef GLOBE
353
+ vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
354
+ #else
355
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
356
+ #endif
357
+ 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);
358
+ #ifdef GLOBE
359
+ mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
360
+ #endif
361
+ directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:Nt(`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;
362
+ #pragma mapbox: define lowp float base
363
+ #pragma mapbox: define lowp float height
364
+ #pragma mapbox: define lowp vec4 pattern_from
365
+ #pragma mapbox: define lowp vec4 pattern_to
366
+ #pragma mapbox: define lowp float pixel_ratio_from
367
+ #pragma mapbox: define lowp float pixel_ratio_to
368
+ void main() {
369
+ #pragma mapbox: initialize lowp float base
370
+ #pragma mapbox: initialize lowp float height
371
+ #pragma mapbox: initialize mediump vec4 pattern_from
372
+ #pragma mapbox: initialize mediump vec4 pattern_to
373
+ #pragma mapbox: initialize lowp float pixel_ratio_from
374
+ #pragma mapbox: initialize lowp float pixel_ratio_to
375
+ 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;
376
+ #ifdef OVERDRAW_INSPECTOR
377
+ fragColor=vec4(1.0);
378
+ #endif
379
+ }`,`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;in vec2 a_pos;in vec4 a_normal_ed;
380
+ #ifdef TERRAIN3D
381
+ in vec2 a_centroid;
382
+ #endif
383
+ #ifdef GLOBE
384
+ out vec3 v_sphere_pos;
385
+ #endif
386
+ out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
387
+ #pragma mapbox: define lowp float base
388
+ #pragma mapbox: define lowp float height
389
+ #pragma mapbox: define lowp vec4 pattern_from
390
+ #pragma mapbox: define lowp vec4 pattern_to
391
+ #pragma mapbox: define lowp float pixel_ratio_from
392
+ #pragma mapbox: define lowp float pixel_ratio_to
393
+ void main() {
394
+ #pragma mapbox: initialize lowp float base
395
+ #pragma mapbox: initialize lowp float height
396
+ #pragma mapbox: initialize mediump vec4 pattern_from
397
+ #pragma mapbox: initialize mediump vec4 pattern_to
398
+ #pragma mapbox: initialize lowp float pixel_ratio_from
399
+ #pragma mapbox: initialize lowp float pixel_ratio_to
400
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;
401
+ #ifdef TERRAIN3D
402
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
403
+ #else
404
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
405
+ #endif
406
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
407
+ #ifdef GLOBE
408
+ vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
409
+ #else
410
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
411
+ #endif
412
+ vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
413
+ ? a_pos
414
+ : 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.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:Nt(`#ifdef GL_ES
415
+ precision highp float;
416
+ #endif
417
+ uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0);
418
+ #ifdef OVERDRAW_INSPECTOR
419
+ fragColor=vec4(1.0);
420
+ #endif
421
+ }`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;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:Nt(`uniform sampler2D u_image;in 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];
422
+ #define PI 3.141592653589793
423
+ #define STANDARD 0
424
+ #define COMBINED 1
425
+ #define IGOR 2
426
+ #define MULTIDIRECTIONAL 3
427
+ #define BASIC 4
428
+ 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
429
+ {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
430
+ {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() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;switch(u_method){case BASIC:
431
+ basic_hillshade(deriv);break;case COMBINED:
432
+ combined_hillshade(deriv);break;case IGOR:
433
+ igor_hillshade(deriv);break;case MULTIDIRECTIONAL:
434
+ multidirectional_hillshade(deriv);break;case STANDARD:
435
+ default:
436
+ standard_hillshade(deriv);break;}
437
+ #ifdef OVERDRAW_INSPECTOR
438
+ fragColor=vec4(1.0);
439
+ #endif
440
+ }`,"uniform mat4 u_matrix;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:Nt(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
441
+ #ifdef GLOBE
442
+ in float v_depth;
443
+ #endif
444
+ #pragma mapbox: define highp vec4 color
445
+ #pragma mapbox: define lowp float blur
446
+ #pragma mapbox: define lowp float opacity
447
+ void main() {
448
+ #pragma mapbox: initialize highp vec4 color
449
+ #pragma mapbox: initialize lowp float blur
450
+ #pragma mapbox: initialize lowp float opacity
451
+ 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);
452
+ #ifdef GLOBE
453
+ if (v_depth > 1.0) {discard;}
454
+ #endif
455
+ #ifdef OVERDRAW_INSPECTOR
456
+ fragColor=vec4(1.0);
457
+ #endif
458
+ }`,`
459
+ #define scale 0.015873016
460
+ in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
461
+ #ifdef GLOBE
462
+ out float v_depth;
463
+ #endif
464
+ #pragma mapbox: define highp vec4 color
465
+ #pragma mapbox: define lowp float blur
466
+ #pragma mapbox: define lowp float opacity
467
+ #pragma mapbox: define mediump float gapwidth
468
+ #pragma mapbox: define lowp float offset
469
+ #pragma mapbox: define mediump float width
470
+ void main() {
471
+ #pragma mapbox: initialize highp vec4 color
472
+ #pragma mapbox: initialize lowp float blur
473
+ #pragma mapbox: initialize lowp float opacity
474
+ #pragma mapbox: initialize mediump float gapwidth
475
+ #pragma mapbox: initialize lowp float offset
476
+ #pragma mapbox: initialize mediump float width
477
+ float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);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;
478
+ #ifdef GLOBE
479
+ v_depth=gl_Position.z/gl_Position.w;
480
+ #endif
481
+ #ifdef TERRAIN3D
482
+ v_gamma_scale=1.0;
483
+ #else
484
+ 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;
485
+ #endif
486
+ v_width2=vec2(outset,inset);}`),lineGradient:Nt(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
487
+ #ifdef GLOBE
488
+ in float v_depth;
489
+ #endif
490
+ #pragma mapbox: define lowp float blur
491
+ #pragma mapbox: define lowp float opacity
492
+ void main() {
493
+ #pragma mapbox: initialize lowp float blur
494
+ #pragma mapbox: initialize lowp float opacity
495
+ 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);
496
+ #ifdef GLOBE
497
+ if (v_depth > 1.0) {discard;}
498
+ #endif
499
+ #ifdef OVERDRAW_INSPECTOR
500
+ fragColor=vec4(1.0);
501
+ #endif
502
+ }`,`
503
+ #define scale 0.015873016
504
+ in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
505
+ #ifdef GLOBE
506
+ out float v_depth;
507
+ #endif
508
+ #pragma mapbox: define lowp float blur
509
+ #pragma mapbox: define lowp float opacity
510
+ #pragma mapbox: define mediump float gapwidth
511
+ #pragma mapbox: define lowp float offset
512
+ #pragma mapbox: define mediump float width
513
+ void main() {
514
+ #pragma mapbox: initialize lowp float blur
515
+ #pragma mapbox: initialize lowp float opacity
516
+ #pragma mapbox: initialize mediump float gapwidth
517
+ #pragma mapbox: initialize lowp float offset
518
+ #pragma mapbox: initialize mediump float width
519
+ float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);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;
520
+ #ifdef GLOBE
521
+ v_depth=gl_Position.z/gl_Position.w;
522
+ #endif
523
+ #ifdef TERRAIN3D
524
+ v_gamma_scale=1.0;
525
+ #else
526
+ 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;
527
+ #endif
528
+ v_width2=vec2(outset,inset);}`),linePattern:Nt(`#ifdef GL_ES
529
+ precision highp float;
530
+ #endif
531
+ uniform lowp float u_device_pixel_ratio;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;
532
+ #ifdef GLOBE
533
+ in float v_depth;
534
+ #endif
535
+ #pragma mapbox: define lowp vec4 pattern_from
536
+ #pragma mapbox: define lowp vec4 pattern_to
537
+ #pragma mapbox: define lowp float pixel_ratio_from
538
+ #pragma mapbox: define lowp float pixel_ratio_to
539
+ #pragma mapbox: define lowp float blur
540
+ #pragma mapbox: define lowp float opacity
541
+ void main() {
542
+ #pragma mapbox: initialize mediump vec4 pattern_from
543
+ #pragma mapbox: initialize mediump vec4 pattern_to
544
+ #pragma mapbox: initialize lowp float pixel_ratio_from
545
+ #pragma mapbox: initialize lowp float pixel_ratio_to
546
+ #pragma mapbox: initialize lowp float blur
547
+ #pragma mapbox: initialize lowp float opacity
548
+ 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;
549
+ #ifdef GLOBE
550
+ if (v_depth > 1.0) {discard;}
551
+ #endif
552
+ #ifdef OVERDRAW_INSPECTOR
553
+ fragColor=vec4(1.0);
554
+ #endif
555
+ }`,`
556
+ #define scale 0.015873016
557
+ #define LINE_DISTANCE_SCALE 2.0
558
+ in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
559
+ #ifdef GLOBE
560
+ out float v_depth;
561
+ #endif
562
+ #pragma mapbox: define lowp float blur
563
+ #pragma mapbox: define lowp float opacity
564
+ #pragma mapbox: define lowp float offset
565
+ #pragma mapbox: define mediump float gapwidth
566
+ #pragma mapbox: define mediump float width
567
+ #pragma mapbox: define lowp float floorwidth
568
+ #pragma mapbox: define lowp vec4 pattern_from
569
+ #pragma mapbox: define lowp vec4 pattern_to
570
+ #pragma mapbox: define lowp float pixel_ratio_from
571
+ #pragma mapbox: define lowp float pixel_ratio_to
572
+ void main() {
573
+ #pragma mapbox: initialize lowp float blur
574
+ #pragma mapbox: initialize lowp float opacity
575
+ #pragma mapbox: initialize lowp float offset
576
+ #pragma mapbox: initialize mediump float gapwidth
577
+ #pragma mapbox: initialize mediump float width
578
+ #pragma mapbox: initialize lowp float floorwidth
579
+ #pragma mapbox: initialize mediump vec4 pattern_from
580
+ #pragma mapbox: initialize mediump vec4 pattern_to
581
+ #pragma mapbox: initialize lowp float pixel_ratio_from
582
+ #pragma mapbox: initialize lowp float pixel_ratio_to
583
+ float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);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;
584
+ #ifdef GLOBE
585
+ v_depth=gl_Position.z/gl_Position.w;
586
+ #endif
587
+ #ifdef TERRAIN3D
588
+ v_gamma_scale=1.0;
589
+ #else
590
+ 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;
591
+ #endif
592
+ v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:Nt(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;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;
593
+ #ifdef GLOBE
594
+ in float v_depth;
595
+ #endif
596
+ #pragma mapbox: define highp vec4 color
597
+ #pragma mapbox: define lowp float blur
598
+ #pragma mapbox: define lowp float opacity
599
+ #pragma mapbox: define mediump float width
600
+ #pragma mapbox: define lowp float floorwidth
601
+ void main() {
602
+ #pragma mapbox: initialize highp vec4 color
603
+ #pragma mapbox: initialize lowp float blur
604
+ #pragma mapbox: initialize lowp float opacity
605
+ #pragma mapbox: initialize mediump float width
606
+ #pragma mapbox: initialize lowp float floorwidth
607
+ 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);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
608
+ #ifdef GLOBE
609
+ if (v_depth > 1.0) {discard;}
610
+ #endif
611
+ #ifdef OVERDRAW_INSPECTOR
612
+ fragColor=vec4(1.0);
613
+ #endif
614
+ }`,`
615
+ #define scale 0.015873016
616
+ #define LINE_DISTANCE_SCALE 2.0
617
+ in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
618
+ #ifdef GLOBE
619
+ out float v_depth;
620
+ #endif
621
+ #pragma mapbox: define highp vec4 color
622
+ #pragma mapbox: define lowp float blur
623
+ #pragma mapbox: define lowp float opacity
624
+ #pragma mapbox: define mediump float gapwidth
625
+ #pragma mapbox: define lowp float offset
626
+ #pragma mapbox: define mediump float width
627
+ #pragma mapbox: define lowp float floorwidth
628
+ void main() {
629
+ #pragma mapbox: initialize highp vec4 color
630
+ #pragma mapbox: initialize lowp float blur
631
+ #pragma mapbox: initialize lowp float opacity
632
+ #pragma mapbox: initialize mediump float gapwidth
633
+ #pragma mapbox: initialize lowp float offset
634
+ #pragma mapbox: initialize mediump float width
635
+ #pragma mapbox: initialize lowp float floorwidth
636
+ float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);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;
637
+ #ifdef GLOBE
638
+ v_depth=gl_Position.z/gl_Position.w;
639
+ #endif
640
+ #ifdef TERRAIN3D
641
+ v_gamma_scale=1.0;
642
+ #else
643
+ 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;
644
+ #endif
645
+ v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:Nt(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0);vec4 color1=texture(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
646
+ #ifdef OVERDRAW_INSPECTOR
647
+ fragColor=vec4(1.0);
648
+ #endif
649
+ }`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5;
650
+ #ifdef GLOBE
651
+ if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;}
652
+ #endif
653
+ v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:Nt(`uniform sampler2D u_texture;in vec2 v_tex;in float v_fade_opacity;
654
+ #pragma mapbox: define lowp float opacity
655
+ void main() {
656
+ #pragma mapbox: initialize lowp float opacity
657
+ lowp float alpha=opacity*v_fade_opacity;fragColor=texture(u_texture,v_tex)*alpha;
658
+ #ifdef OVERDRAW_INSPECTOR
659
+ fragColor=vec4(1.0);
660
+ #endif
661
+ }`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_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;out vec2 v_tex;out float v_fade_opacity;
662
+ #pragma mapbox: define lowp float opacity
663
+ void main() {
664
+ #pragma mapbox: initialize lowp float opacity
665
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);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);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
666
+ camera_to_anchor_distance/u_camera_to_center_distance :
667
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=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;
668
+ #ifdef GLOBE
669
+ 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);}
670
+ #endif
671
+ 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;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:Nt(`#define SDF_PX 8.0
672
+ uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
673
+ #pragma mapbox: define highp vec4 fill_color
674
+ #pragma mapbox: define highp vec4 halo_color
675
+ #pragma mapbox: define lowp float opacity
676
+ #pragma mapbox: define lowp float halo_width
677
+ #pragma mapbox: define lowp float halo_blur
678
+ void main() {
679
+ #pragma mapbox: initialize highp vec4 fill_color
680
+ #pragma mapbox: initialize highp vec4 halo_color
681
+ #pragma mapbox: initialize lowp float opacity
682
+ #pragma mapbox: initialize lowp float halo_width
683
+ #pragma mapbox: initialize lowp float halo_blur
684
+ float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}fragColor=color*(alpha*opacity*fade_opacity);
685
+ #ifdef OVERDRAW_INSPECTOR
686
+ fragColor=vec4(1.0);
687
+ #endif
688
+ }`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_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 highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_data0;out vec3 v_data1;
689
+ #pragma mapbox: define highp vec4 fill_color
690
+ #pragma mapbox: define highp vec4 halo_color
691
+ #pragma mapbox: define lowp float opacity
692
+ #pragma mapbox: define lowp float halo_width
693
+ #pragma mapbox: define lowp float halo_blur
694
+ void main() {
695
+ #pragma mapbox: initialize highp vec4 fill_color
696
+ #pragma mapbox: initialize highp vec4 halo_color
697
+ #pragma mapbox: initialize lowp float opacity
698
+ #pragma mapbox: initialize lowp float halo_width
699
+ #pragma mapbox: initialize lowp float halo_blur
700
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);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);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
701
+ camera_to_anchor_distance/u_camera_to_center_distance :
702
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=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;
703
+ #ifdef GLOBE
704
+ 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);}
705
+ #endif
706
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*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;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:Nt(`#define SDF_PX 8.0
707
+ #define SDF 1.0
708
+ #define ICON 0.0
709
+ uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;in vec4 v_data0;in vec4 v_data1;
710
+ #pragma mapbox: define highp vec4 fill_color
711
+ #pragma mapbox: define highp vec4 halo_color
712
+ #pragma mapbox: define lowp float opacity
713
+ #pragma mapbox: define lowp float halo_width
714
+ #pragma mapbox: define lowp float halo_blur
715
+ void main() {
716
+ #pragma mapbox: initialize highp vec4 fill_color
717
+ #pragma mapbox: initialize highp vec4 halo_color
718
+ #pragma mapbox: initialize lowp float opacity
719
+ #pragma mapbox: initialize lowp float halo_width
720
+ #pragma mapbox: initialize lowp float halo_blur
721
+ float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;fragColor=texture(u_texture_icon,tex_icon)*alpha;
722
+ #ifdef OVERDRAW_INSPECTOR
723
+ fragColor=vec4(1.0);
724
+ #endif
725
+ return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity);
726
+ #ifdef OVERDRAW_INSPECTOR
727
+ fragColor=vec4(1.0);
728
+ #endif
729
+ }`,`in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out vec4 v_data1;
730
+ #pragma mapbox: define highp vec4 fill_color
731
+ #pragma mapbox: define highp vec4 halo_color
732
+ #pragma mapbox: define lowp float opacity
733
+ #pragma mapbox: define lowp float halo_width
734
+ #pragma mapbox: define lowp float halo_blur
735
+ void main() {
736
+ #pragma mapbox: initialize highp vec4 fill_color
737
+ #pragma mapbox: initialize highp vec4 halo_color
738
+ #pragma mapbox: initialize lowp float opacity
739
+ #pragma mapbox: initialize lowp float halo_width
740
+ #pragma mapbox: initialize lowp float halo_blur
741
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);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);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
742
+ camera_to_anchor_distance/u_camera_to_center_distance :
743
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=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;
744
+ #ifdef GLOBE
745
+ 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);}
746
+ #endif
747
+ 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;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:Nt("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 && 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;}}","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,get_elevation(a_pos3d.xy)-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:Nt("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);}","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;}"),terrainCoords:Nt("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;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);}"),projectionErrorMeasurement:Nt("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:Nt(`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
748
+ );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;}`,"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:Nt("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;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;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(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function Nt(u,e){const r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,a=e.match(/in ([\w]+) ([\w]+)/g),l=u.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),p=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),g=p?p.concat(l):l,b={};return{fragmentSource:u=u.replace(r,(A,I,z,N,O)=>(b[O]=!0,I==="define"?`
749
+ #ifndef HAS_UNIFORM_u_${O}
750
+ in ${z} ${N} ${O};
751
+ #else
752
+ uniform ${z} ${N} u_${O};
753
+ #endif
754
+ `:`
755
+ #ifdef HAS_UNIFORM_u_${O}
756
+ ${z} ${N} ${O} = u_${O};
757
+ #endif
758
+ `)),vertexSource:e=e.replace(r,(A,I,z,N,O)=>{const Z=N==="float"?"vec2":"vec4",J=O.match(/color/)?"color":Z;return b[O]?I==="define"?`
759
+ #ifndef HAS_UNIFORM_u_${O}
760
+ uniform lowp float u_${O}_t;
761
+ in ${z} ${Z} a_${O};
762
+ out ${z} ${N} ${O};
763
+ #else
764
+ uniform ${z} ${N} u_${O};
765
+ #endif
766
+ `:J==="vec4"?`
767
+ #ifndef HAS_UNIFORM_u_${O}
768
+ ${O} = a_${O};
769
+ #else
770
+ ${z} ${N} ${O} = u_${O};
771
+ #endif
772
+ `:`
773
+ #ifndef HAS_UNIFORM_u_${O}
774
+ ${O} = unpack_mix_${J}(a_${O}, u_${O}_t);
775
+ #else
776
+ ${z} ${N} ${O} = u_${O};
777
+ #endif
778
+ `:I==="define"?`
779
+ #ifndef HAS_UNIFORM_u_${O}
780
+ uniform lowp float u_${O}_t;
781
+ in ${z} ${Z} a_${O};
782
+ #else
783
+ uniform ${z} ${N} u_${O};
784
+ #endif
785
+ `:J==="vec4"?`
786
+ #ifndef HAS_UNIFORM_u_${O}
787
+ ${z} ${N} ${O} = a_${O};
788
+ #else
789
+ ${z} ${N} ${O} = u_${O};
790
+ #endif
791
+ `:`
792
+ #ifndef HAS_UNIFORM_u_${O}
793
+ ${z} ${N} ${O} = unpack_mix_${J}(a_${O}, u_${O}_t);
794
+ #else
795
+ ${z} ${N} ${O} = u_${O};
796
+ #endif
797
+ `}),staticAttributes:a,staticUniforms:g}}class hs{constructor(e,r,a){this.vertexBuffer=e,this.indexBuffer=r,this.segments=a}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var ui=s.aG([{name:"a_pos",type:"Int16",components:2}]);const jn="#define PROJECTION_MERCATOR",Vt="mercator";class Us{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return Vt}get shaderDefine(){return jn}get shaderPreludeCode(){return ci.projectionMercator}get vertexShaderPreludeCode(){return ci.projectionMercator.vertexSource}get subdivisionGranularity(){return s.aH.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(e){}getMeshFromTileID(e,r,a,l,p){if(this._cachedMesh)return this._cachedMesh;const g=new s.aI;g.emplaceBack(0,0),g.emplaceBack(s.Z,0),g.emplaceBack(0,s.Z),g.emplaceBack(s.Z,s.Z);const b=e.createVertexBuffer(g,ui.members),A=s.aJ.simpleSegment(0,0,4,2),I=new s.aK;I.emplaceBack(1,0,2),I.emplaceBack(1,2,3);const z=e.createIndexBuffer(I);return this._cachedMesh=new hs(b,z,A),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(e){}}class js{constructor(e=0,r=0,a=0,l=0){if(isNaN(e)||e<0||isNaN(r)||r<0||isNaN(a)||a<0||isNaN(l)||l<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=r,this.left=a,this.right=l}interpolate(e,r,a){return r.top!=null&&e.top!=null&&(this.top=s.B.number(e.top,r.top,a)),r.bottom!=null&&e.bottom!=null&&(this.bottom=s.B.number(e.bottom,r.bottom,a)),r.left!=null&&e.left!=null&&(this.left=s.B.number(e.left,r.left,a)),r.right!=null&&e.right!=null&&(this.right=s.B.number(e.right,r.right,a)),this}getCenter(e,r){const a=s.ae((this.left+e-this.right)/2,0,e),l=s.ae((this.top+r-this.bottom)/2,0,r);return new s.P(a,l)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new js(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function ps(u,e){if(!u.renderWorldCopies||u.lngRange)return;const r=e.lng-u.center.lng;e.lng+=r>180?-360:r<-180?360:0}function yi(u){return Math.max(0,Math.floor(u))}class Jr{constructor(e,r,a,l,p,g){this._callbacks=e,this._tileSize=512,this._renderWorldCopies=g===void 0||!!g,this._minZoom=r||0,this._maxZoom=a||22,this._minPitch=l??0,this._maxPitch=p??60,this.setMaxBounds(),this._width=0,this._height=0,this._center=new s.Q(0,0),this._elevation=0,this._zoom=0,this._tileZoom=yi(this._zoom),this._scale=s.ac(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new js,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(e,r,a){this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=yi(this._zoom),this._scale=s.ac(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new js(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=!a&&e.autoCalculateNearFarZ,r&&this._constrain(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){this._minElevationForCurrentTile=e}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(e){this._minZoom!==e&&(this._minZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(e){this._minPitch!==e&&(this._minPitch=e,this.setPitch(Math.max(this.pitch,e)))}get maxPitch(){return this._maxPitch}setMaxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.setPitch(Math.min(this.pitch,e)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){const r=s.aL(e,-180,180)*Math.PI/180;var a,l,p,g,b,A,I,z,N;this._bearingInRadians!==r&&(this._unmodified=!1,this._bearingInRadians=r,this._calcMatrices(),this._rotationMatrix=D(),a=this._rotationMatrix,p=-this._bearingInRadians,g=(l=this._rotationMatrix)[0],b=l[1],A=l[2],I=l[3],z=Math.sin(p),N=Math.cos(p),a[0]=g*N+A*z,a[1]=b*N+I*z,a[2]=g*-z+A*N,a[3]=b*-z+I*N)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){const r=s.ae(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==r&&(this._unmodified=!1,this._pitchInRadians=r,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){const r=e/180*Math.PI;this._rollInRadians!==r&&(this._unmodified=!1,this._rollInRadians=r,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return s.aM(this._fovInRadians)}setFov(e){e=s.ae(e,.1,150),this.fov!==e&&(this._unmodified=!1,this._fovInRadians=s.ab(e),this._calcMatrices())}get zoom(){return this._zoom}setZoom(e){const r=this.getConstrained(this._center,e).zoom;this._zoom!==r&&(this._unmodified=!1,this._zoom=r,this._tileZoom=Math.max(0,Math.floor(r)),this._scale=s.ac(r),this._constrain(),this._calcMatrices())}get center(){return this._center}setCenter(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(e,r){this._autoCalculateNearFarZ=!1,this._nearZ=e,this._farZ=r,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,r,a){this._unmodified=!1,this._edgeInsets.interpolate(e,r,a),this._constrain(),this._calcMatrices()}resize(e,r,a=!0){this._width=e,this._height=r,a&&this._constrain(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new Ke([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this._constrain()):(this._lngRange=null,this._latRange=[-85.051129,s.af])}getConstrained(e,r){return this._callbacks.getConstrained(e,r)}getCameraQueryGeometry(e,r){if(r.length===1)return[r[0],e];{let a=e.x,l=e.y,p=e.x,g=e.y;for(const b of r)a=Math.min(a,b.x),l=Math.min(l,b.y),p=Math.max(p,b.x),g=Math.max(g,b.y);return[new s.P(a,l),new s.P(p,l),new s.P(p,g),new s.P(a,g),new s.P(a,l)]}}_constrain(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const e=this._unmodified,{center:r,zoom:a}=this.getConstrained(this.center,this.zoom);this.setCenter(r),this.setZoom(a),this._unmodified=e,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=s.ad(new Float64Array(16));s.M(e,e,[this._width/2,-this._height/2,1]),s.L(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=s.ad(new Float64Array(16)),s.M(e,e,[1,-1,1]),s.L(e,e,[-1,-1,0]),s.M(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(e,r,a,l){const p=a!==void 0?a:this.bearing,g=l=l!==void 0?l:this.pitch,b=s.$.fromLngLat(e,r),A=-Math.cos(s.ab(g)),I=Math.sin(s.ab(g)),z=I*Math.sin(s.ab(p)),N=-I*Math.cos(s.ab(p));let O=this.elevation;const Z=r-O;let J;A*Z>=0||Math.abs(A)<.1?(J=1e4,O=r+J*A):J=-Z/A;let se,ne,oe=s.aN(1,b.y),ue=0;do{if(ue+=1,ue>10)break;ne=J/oe,se=new s.$(b.x+z*ne,b.y+N*ne),oe=1/se.meterInMercatorCoordinateUnits()}while(Math.abs(J-ne*oe)>1e-12);return{center:se.toLngLat(),elevation:O,zoom:s.ah(this.height/2/Math.tan(this.fovInRadians/2)/ne/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e==0)return;const r=s.ag(1,this.center.lat)*this.worldSize,a=this.cameraToCenterDistance/r,l=s.$.fromLngLat(this.center,this.elevation),p=Q(this.center,this.elevation,this.pitch,this.bearing,a);this._elevation=e;const g=this.calculateCenterFromCameraLngLatAlt(p.toLngLat(),s.aN(p.z,l.y),this.bearing,this.pitch);this._elevation=g.elevation,this._center=g.center,this.setZoom(g.zoom)}getCameraPoint(){const e=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(e*Math.sin(this.rollInRadians),e*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const e=s.ag(1,this.center.lat)*this.worldSize;return Q(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/e).toLngLat()}getMercatorTileCoordinates(e){if(!e)return[0,0,1,1];const r=e.canonical.z>=0?1<<e.canonical.z:Math.pow(2,e.canonical.z);return[e.canonical.x/r,e.canonical.y/r,1/r/s.Z,1/r/s.Z]}}class Tr{constructor(e,r){this.min=e,this.max=r,this.center=s.aO([],s.aP([],this.min,this.max),.5)}quadrant(e){const r=[e%2==0,e<2],a=s.aQ(this.min),l=s.aQ(this.max);for(let p=0;p<r.length;p++)a[p]=r[p]?this.min[p]:this.center[p],l[p]=r[p]?this.center[p]:this.max[p];return l[2]=this.max[2],new Tr(a,l)}distanceX(e){return Math.max(Math.min(this.max[0],e[0]),this.min[0])-e[0]}distanceY(e){return Math.max(Math.min(this.max[1],e[1]),this.min[1])-e[1]}intersectsFrustum(e){let r=!0;for(let a=0;a<e.planes.length;a++){const l=this.intersectsPlane(e.planes[a]);if(l===0)return 0;l===1&&(r=!1)}return r?2:e.aabb.min[0]>this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]<this.min[0]||e.aabb.max[1]<this.min[1]||e.aabb.max[2]<this.min[2]?0:1}intersectsPlane(e){let r=e[3],a=e[3];for(let l=0;l<3;l++)e[l]>0?(r+=e[l]*this.min[l],a+=e[l]*this.max[l]):(a+=e[l]*this.min[l],r+=e[l]*this.max[l]);return r>=0?2:a<0?0:1}}class Xr{distanceToTile2d(e,r,a,l){const p=l.distanceX([e,r]),g=l.distanceY([e,r]);return Math.hypot(p,g)}getWrap(e,r,a){return a}getTileAABB(e,r,a,l){var p,g;let b=a,A=a;if(l.terrain){const z=new s.Y(e.z,r,e.z,e.x,e.y),N=l.terrain.getMinMaxElevation(z);b=(p=N.minElevation)!==null&&p!==void 0?p:a,A=(g=N.maxElevation)!==null&&g!==void 0?g:a}const I=1<<e.z;return new Tr([r+e.x/I,e.y/I,b],[r+(e.x+1)/I,(e.y+1)/I,A])}allowVariableZoom(e,r){const a=e.fov*(Math.abs(Math.cos(e.rollInRadians))*e.height+Math.abs(Math.sin(e.rollInRadians))*e.width)/e.height,l=s.ae(78.5-a/2,0,60);return!!r.terrain||e.pitch>l}allowWorldCopies(){return!0}recalculateCache(){}}class ir{constructor(e,r,a){this.points=e,this.planes=r,this.aabb=a}static fromInvProjectionMatrix(e,r=1,a=0){const l=Math.pow(2,a),p=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(I=>{const z=1/(I=s.at([],I,e))[3]/r*l;return s.aR(I,I,[z,z,1/I[3],z])}),g=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(I=>{const z=s.aS([],p[I[0]],p[I[1]]),N=s.aS([],p[I[2]],p[I[1]]),O=s.aT([],s.aU([],z,N)),Z=-s.aV(O,p[I[1]]);return O.concat(Z)}),b=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],A=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const I of p)for(let z=0;z<3;z++)b[z]=Math.min(b[z],I[z]),A[z]=Math.max(A[z],I[z]);return new ir(p,g,new Tr(b,A))}}class ds{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r,a=!0){this._helper.resize(e,r,a)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e,r){}constructor(e,r,a,l,p){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this._helper=new Jr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(g,b)=>this.getConstrained(g,b)},e,r,a,l,p),this._coveringTilesDetailsProvider=new Xr}clone(){const e=new ds;return e.apply(this),e}apply(e,r,a){this._helper.apply(e,r,a)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(e){const r=[new s.aW(0,e)];if(this._helper._renderWorldCopies){const a=this.screenPointToMercatorCoordinate(new s.P(0,0)),l=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,0)),p=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,this._helper._height)),g=this.screenPointToMercatorCoordinate(new s.P(0,this._helper._height)),b=Math.floor(Math.min(a.x,l.x,p.x,g.x)),A=Math.floor(Math.max(a.x,l.x,p.x,g.x)),I=1;for(let z=b-I;z<=A+I;z++)z!==0&&r.push(new s.aW(z,e))}return r}getCameraFrustum(){return ir.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){const r=this.screenPointToLocation(this.centerPoint,e),a=e?e.getElevationForLngLatZoom(r,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(a)}setLocationAtPoint(e,r){const a=s.ag(this.elevation,this.center.lat),l=this.screenPointToMercatorCoordinateAtZ(r,a),p=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,a),g=s.$.fromLngLat(e),b=new s.$(g.x-(l.x-p.x),g.y-(l.y-p.y));this.setCenter(b==null?void 0:b.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(e,r){return r?this.coordinatePoint(s.$.fromLngLat(e),r.getElevationForLngLatZoom(e,this._helper._tileZoom),this._pixelMatrix3D):this.coordinatePoint(s.$.fromLngLat(e))}screenPointToLocation(e,r){var a;return(a=this.screenPointToMercatorCoordinate(e,r))===null||a===void 0?void 0:a.toLngLat()}screenPointToMercatorCoordinate(e,r){if(r){const a=r.pointCoordinate(e);if(a!=null)return a}return this.screenPointToMercatorCoordinateAtZ(e)}screenPointToMercatorCoordinateAtZ(e,r){const a=r||0,l=[e.x,e.y,0,1],p=[e.x,e.y,1,1];s.at(l,l,this._pixelMatrixInverse),s.at(p,p,this._pixelMatrixInverse);const g=l[3],b=p[3],A=l[1]/g,I=p[1]/b,z=l[2]/g,N=p[2]/b,O=z===N?0:(a-z)/(N-z);return new s.$(s.B.number(l[0]/g,p[0]/b,O)/this.worldSize,s.B.number(A,I,O)/this.worldSize,a)}coordinatePoint(e,r=0,a=this._pixelMatrix){const l=[e.x*this.worldSize,e.y*this.worldSize,r,1];return s.at(l,l,a),new s.P(l[0]/l[3],l[1]/l[3])}getBounds(){const e=Math.max(0,this._helper._height/2-we(this));return new Ke().extend(this.screenPointToLocation(new s.P(0,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new s.P(0,this._helper._height)))}isPointOnMapSurface(e,r){return r?r.pointCoordinate(e)!=null:e.y>this.height/2-we(this)}calculatePosMatrix(e,r=!1,a){var l;const p=(l=e.key)!==null&&l!==void 0?l:s.aX(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),g=r?this._alignedPosMatrixCache:this._posMatrixCache;if(g.has(p)){const I=g.get(p);return a?I.f32:I.f64}const b=G(e,this.worldSize);s.N(b,r?this._alignedProjMatrix:this._viewProjMatrix,b);const A={f64:b,f32:new Float32Array(b)};return g.set(p,A),a?A.f32:A.f64}calculateFogMatrix(e){const r=e.key,a=this._fogMatrixCacheF32;if(a.has(r))return a.get(r);const l=G(e,this.worldSize);return s.N(l,this._fogMatrix,l),a.set(r,new Float32Array(l)),a.get(r)}getConstrained(e,r){r=s.ae(+r,this.minZoom,this.maxZoom);const a={center:new s.Q(e.lng,e.lat),zoom:r};let l=this._helper._lngRange;this._helper._renderWorldCopies||l!==null||(l=[-179.9999999999,180-1e-10]);const p=this.tileSize*s.ac(a.zoom);let g=0,b=p,A=0,I=p,z=0,N=0;const{x:O,y:Z}=this.size;if(this._helper._latRange){const me=this._helper._latRange;g=s.S(me[1])*p,b=s.S(me[0])*p,b-g<Z&&(z=Z/(b-g))}l&&(A=s.aL(s.U(l[0])*p,0,p),I=s.aL(s.U(l[1])*p,0,p),I<A&&(I+=p),I-A<O&&(N=O/(I-A)));const{x:J,y:se}=er(p,e);let ne,oe;const ue=Math.max(N||0,z||0);if(ue){const me=new s.P(N?(I+A)/2:J,z?(b+g)/2:se);return a.center=ur(p,me).wrap(),a.zoom+=s.ah(ue),a}if(this._helper._latRange){const me=Z/2;se-me<g&&(oe=g+me),se+me>b&&(oe=b-me)}if(l){const me=(A+I)/2;let fe=J;this._helper._renderWorldCopies&&(fe=s.aL(J,me-p/2,me+p/2));const ge=O/2;fe-ge<A&&(ne=A+ge),fe+ge>I&&(ne=I-ge)}if(ne!==void 0||oe!==void 0){const me=new s.P(ne??J,oe??se);a.center=ur(p,me).wrap()}return a}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}_calculateNearFarZIfNeeded(e,r,a){if(!this._helper.autoCalculateNearFarZ)return;const l=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),p=e-l*this._helper._pixelPerMeter/Math.cos(r),g=l<0?p:e,b=Math.PI/2+this.pitchInRadians,A=s.ab(this.fov)*(Math.abs(Math.cos(s.ab(this.roll)))*this.height+Math.abs(Math.sin(s.ab(this.roll)))*this.width)/this.height*(.5+a.y/this.height),I=Math.sin(A)*g/Math.sin(s.ae(Math.PI-b-A,.01,Math.PI-.01)),z=we(this),N=Math.atan(z/this._helper.cameraToCenterDistance),O=s.ab(.75),Z=N>O?2*N*(.5+a.y/(2*z)):O,J=Math.sin(Z)*g/Math.sin(s.ae(Math.PI-b-Z,.01,Math.PI-.01)),se=Math.min(I,J);this._helper._farZ=1.01*(Math.cos(Math.PI/2-r)*se+g),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const e=this.centerOffset,r=er(this.worldSize,this.center),a=r.x,l=r.y;this._helper._pixelPerMeter=s.ag(1,this.center.lat)*this.worldSize;const p=s.ab(Math.min(this.pitch,yt)),g=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(p));let b;this._calculateNearFarZIfNeeded(g,p,e),b=new Float64Array(16),s.aY(b,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),s.an(this._invProjMatrix,b),b[8]=2*-e.x/this._helper._width,b[9]=2*e.y/this._helper._height,this._projectionMatrix=s.aZ(b),s.M(b,b,[1,-1,1]),s.L(b,b,[0,0,-this._helper.cameraToCenterDistance]),s.a_(b,b,-this.rollInRadians),s.a$(b,b,this.pitchInRadians),s.a_(b,b,-this.bearingInRadians),s.L(b,b,[-a,-l,0]),this._mercatorMatrix=s.M([],b,[this.worldSize,this.worldSize,this.worldSize]),s.M(b,b,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=s.N(new Float64Array(16),this.clipSpaceToPixelsMatrix,b),s.L(b,b,[0,0,-this.elevation]),this._viewProjMatrix=b,this._invViewProjMatrix=s.an([],b);const A=[0,0,-1,1];s.at(A,A,this._invViewProjMatrix),this._cameraPosition=[A[0]/A[3],A[1]/A[3],A[2]/A[3]],this._fogMatrix=new Float64Array(16),s.aY(this._fogMatrix,this.fovInRadians,this.width/this.height,g,this._helper._farZ),this._fogMatrix[8]=2*-e.x/this.width,this._fogMatrix[9]=2*e.y/this.height,s.M(this._fogMatrix,this._fogMatrix,[1,-1,1]),s.L(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),s.a_(this._fogMatrix,this._fogMatrix,-this.rollInRadians),s.a$(this._fogMatrix,this._fogMatrix,this.pitchInRadians),s.a_(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),s.L(this._fogMatrix,this._fogMatrix,[-a,-l,0]),s.M(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),s.L(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=s.N(new Float64Array(16),this.clipSpaceToPixelsMatrix,b);const I=this._helper._width%2/2,z=this._helper._height%2/2,N=Math.cos(this.bearingInRadians),O=Math.sin(-this.bearingInRadians),Z=a-Math.round(a)+N*I+O*z,J=l-Math.round(l)+N*z+O*I,se=new Float64Array(b);if(s.L(se,se,[Z>.5?Z-1:Z,J>.5?J-1:J,0]),this._alignedProjMatrix=se,b=s.an(new Float64Array(16),this._pixelMatrix),!b)throw new Error("failed to invert matrix");this._pixelMatrixInverse=b,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const e=this.screenPointToMercatorCoordinate(new s.P(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return s.at(r,r,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const e=s.ag(1,this.center.lat)*this.worldSize;return Q(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/e).toLngLat()}lngLatToCameraDepth(e,r){const a=s.$.fromLngLat(e),l=[a.x*this.worldSize,a.y*this.worldSize,r,1];return s.at(l,l,this._viewProjMatrix),l[2]/l[3]}getProjectionData(e){const{overscaledTileID:r,aligned:a,applyTerrainMatrix:l}=e,p=this._helper.getMercatorTileCoordinates(r),g=r?this.calculatePosMatrix(r,a,!0):null;let b;return b=r&&r.terrainRttPosMatrix32f&&l?r.terrainRttPosMatrix32f:g||s.b0(),{mainMatrix:b,tileMercatorCoords:p,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:b}}isLocationOccluded(e){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,r,a){return 1}transformLightDirection(e){return s.aQ(e)}getRayDirectionFromPixel(e){throw new Error("Not implemented.")}projectTileCoordinates(e,r,a,l){const p=this.calculatePosMatrix(a);let g;l?(g=[e,r,l(e,r),1],s.at(g,g,p)):(g=[e,r,0,1],On(g,g,p));const b=g[3];return{point:new s.P(g[0]/b,g[1]/b),signedDistanceFromCamera:b,isOccluded:!1}}populateCache(e){for(const r of e)this.calculatePosMatrix(r)}getMatrixForModel(e,r){const a=s.$.fromLngLat(e,r),l=a.meterInMercatorCoordinateUnits(),p=s.b1();return s.L(p,p,[a.x,a.y,a.z]),s.a_(p,p,Math.PI),s.a$(p,p,Math.PI/2),s.M(p,p,[-l,l,l]),p}getProjectionDataForCustomLayer(e=!0){const r=new s.Y(0,0,0,0,0),a=this.getProjectionData({overscaledTileID:r,applyGlobeMatrix:e}),l=G(r,this.worldSize);s.N(l,this._viewProjMatrix,l),a.tileMercatorCoords=[0,0,1,1];const p=[s.Z,s.Z,this.worldSize/this._helper.pixelsPerMeter],g=s.b2();return s.M(g,l,p),a.fallbackMatrix=g,a.mainMatrix=g,a}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}}function hi(){s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function Ai(u){if(u.useSlerp)if(u.k<1){const e=s.b3(u.startEulerAngles.roll,u.startEulerAngles.pitch,u.startEulerAngles.bearing),r=s.b3(u.endEulerAngles.roll,u.endEulerAngles.pitch,u.endEulerAngles.bearing),a=new Float64Array(4);s.b4(a,e,r,u.k);const l=s.b5(a);u.tr.setRoll(l.roll),u.tr.setPitch(l.pitch),u.tr.setBearing(l.bearing)}else u.tr.setRoll(u.endEulerAngles.roll),u.tr.setPitch(u.endEulerAngles.pitch),u.tr.setBearing(u.endEulerAngles.bearing);else u.tr.setRoll(s.B.number(u.startEulerAngles.roll,u.endEulerAngles.roll,u.k)),u.tr.setPitch(s.B.number(u.startEulerAngles.pitch,u.endEulerAngles.pitch,u.k)),u.tr.setBearing(s.B.number(u.startEulerAngles.bearing,u.endEulerAngles.bearing,u.k))}function _i(u,e,r,a,l){const p=l.padding,g=er(l.worldSize,r.getNorthWest()),b=er(l.worldSize,r.getNorthEast()),A=er(l.worldSize,r.getSouthEast()),I=er(l.worldSize,r.getSouthWest()),z=s.ab(-a),N=g.rotate(z),O=b.rotate(z),Z=A.rotate(z),J=I.rotate(z),se=new s.P(Math.max(N.x,O.x,J.x,Z.x),Math.max(N.y,O.y,J.y,Z.y)),ne=new s.P(Math.min(N.x,O.x,J.x,Z.x),Math.min(N.y,O.y,J.y,Z.y)),oe=se.sub(ne),ue=(l.width-(p.left+p.right+e.left+e.right))/oe.x,me=(l.height-(p.top+p.bottom+e.top+e.bottom))/oe.y;if(me<0||ue<0)return void hi();const fe=Math.min(s.ah(l.scale*Math.min(ue,me)),u.maxZoom),ge=s.P.convert(u.offset),xe=new s.P((e.left-e.right)/2,(e.top-e.bottom)/2).rotate(s.ab(a)),_e=ge.add(xe).mult(l.scale/s.ac(fe));return{center:ur(l.worldSize,g.add(A).div(2).sub(_e)),zoom:fe,bearing:a}}class Hs{get useGlobeControls(){return!1}handlePanInertia(e,r){return{easingOffset:e,easingCenter:r.center}}handleMapControlsRollPitchBearingZoom(e,r){e.bearingDelta&&r.setBearing(r.bearing+e.bearingDelta),e.pitchDelta&&r.setPitch(r.pitch+e.pitchDelta),e.rollDelta&&r.setRoll(r.roll+e.rollDelta),e.zoomDelta&&r.setZoom(r.zoom+e.zoomDelta)}handleMapControlsPan(e,r,a){e.around.distSqr(r.centerPoint)<.01||r.setLocationAtPoint(a,e.around)}cameraForBoxAndBearing(e,r,a,l,p){return _i(e,r,a,l,p)}handleJumpToCenterZoom(e,r){e.zoom!==(r.zoom!==void 0?+r.zoom:e.zoom)&&e.setZoom(+r.zoom),r.center!==void 0&&e.setCenter(s.Q.convert(r.center))}handleEaseTo(e,r){const a=e.zoom,l=e.padding,p={roll:e.roll,pitch:e.pitch,bearing:e.bearing},g={roll:r.roll===void 0?e.roll:r.roll,pitch:r.pitch===void 0?e.pitch:r.pitch,bearing:r.bearing===void 0?e.bearing:r.bearing},b=r.zoom!==void 0,A=!e.isPaddingEqual(r.padding);let I=!1;const z=b?+r.zoom:e.zoom;let N=e.centerPoint.add(r.offsetAsPoint);const O=e.screenPointToLocation(N),{center:Z,zoom:J}=e.getConstrained(s.Q.convert(r.center||O),z??a);ps(e,Z);const se=er(e.worldSize,O),ne=er(e.worldSize,Z).sub(se),oe=s.ac(J-a);return I=J!==a,{easeFunc:ue=>{if(I&&e.setZoom(s.B.number(a,J,ue)),s.b6(p,g)||Ai({startEulerAngles:p,endEulerAngles:g,tr:e,k:ue,useSlerp:p.roll!=g.roll}),A&&(e.interpolatePadding(l,r.padding,ue),N=e.centerPoint.add(r.offsetAsPoint)),r.around)e.setLocationAtPoint(r.around,r.aroundPoint);else{const me=s.ac(e.zoom-a),fe=J>a?Math.min(2,oe):Math.max(.5,oe),ge=Math.pow(fe,1-ue),xe=ur(e.worldSize,se.add(ne.mult(ue*ge)).mult(me));e.setLocationAtPoint(e.renderWorldCopies?xe.wrap():xe,N)}},isZooming:I,elevationCenter:Z}}handleFlyTo(e,r){const a=r.zoom!==void 0,l=e.zoom,p=e.getConstrained(s.Q.convert(r.center||r.locationAtOffset),a?+r.zoom:l),g=p.center,b=p.zoom;ps(e,g);const A=er(e.worldSize,r.locationAtOffset),I=er(e.worldSize,g).sub(A),z=I.mag(),N=s.ac(b-l);let O;if(r.minZoom!==void 0){const Z=Math.min(+r.minZoom,l,b),J=e.getConstrained(g,Z).zoom;O=s.ac(J-l)}return{easeFunc:(Z,J,se,ne)=>{e.setZoom(Z===1?b:l+s.ah(J));const oe=Z===1?g:ur(e.worldSize,A.add(I.mult(se)).mult(J));e.setLocationAtPoint(e.renderWorldCopies?oe.wrap():oe,ne)},scaleOfZoom:N,targetCenter:g,scaleOfMinZoom:O,pixelPathLength:z}}}class Jt{constructor(e,r,a){this.blendFunction=e,this.blendColor=r,this.mask=a}}Jt.Replace=[1,0],Jt.disabled=new Jt(Jt.Replace,s.b7.transparent,[!1,!1,!1,!1]),Jt.unblended=new Jt(Jt.Replace,s.b7.transparent,[!0,!0,!0,!0]),Jt.alphaBlended=new Jt([1,771],s.b7.transparent,[!0,!0,!0,!0]);const xr=2305;class Ft{constructor(e,r,a){this.enable=e,this.mode=r,this.frontFace=a}}Ft.disabled=new Ft(!1,1029,xr),Ft.backCCW=new Ft(!0,1029,xr),Ft.frontCCW=new Ft(!0,1028,xr);class wt{constructor(e,r,a){this.func=e,this.mask=r,this.range=a}}wt.ReadOnly=!1,wt.ReadWrite=!0,wt.disabled=new wt(519,wt.ReadOnly,[0,1]);const fs=7680;class Ct{constructor(e,r,a,l,p,g){this.test=e,this.ref=r,this.mask=a,this.fail=l,this.depthFail=p,this.pass=g}}Ct.disabled=new Ct({func:519,mask:0},0,0,fs,fs,fs);const Ro=new WeakMap;function ri(u){var e;if(Ro.has(u))return Ro.get(u);{const r=(e=u.getParameter(u.VERSION))===null||e===void 0?void 0:e.startsWith("WebGL 2.0");return Ro.set(u,r),r}}class Ha{get awaitingQuery(){return!!this._readbackQueue}constructor(e){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=e;const r=e.context,a=r.gl;this._texFormat=a.RGBA,this._texType=a.UNSIGNED_BYTE;const l=new s.aI;l.emplaceBack(-1,-1),l.emplaceBack(2,-1),l.emplaceBack(-1,2);const p=new s.aK;p.emplaceBack(0,1,2),this._fullscreenTriangle=new hs(r.createVertexBuffer(l,ui.members),r.createIndexBuffer(p),s.aJ.simpleSegment(0,0,l.length,p.length)),this._resultBuffer=new Uint8Array(4),r.activeTexture.set(a.TEXTURE1);const g=a.createTexture();a.bindTexture(a.TEXTURE_2D,g),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=r.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(g),ri(a)&&(this._pbo=a.createBuffer(),a.bindBuffer(a.PIXEL_PACK_BUFFER,this._pbo),a.bufferData(a.PIXEL_PACK_BUFFER,4,a.STREAM_READ),a.bindBuffer(a.PIXEL_PACK_BUFFER,null))}destroy(){const e=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),e.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(e,r){const a=this._updateCount;return this._readbackQueue?a>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():a>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(e,r),this._updateCount++,this._measuredError}_bindFramebuffer(){const e=this._cachedRenderContext.context,r=e.gl;e.activeTexture.set(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this._fbo.colorAttachment.get()),e.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(e,r){const a=this._cachedRenderContext.context,l=a.gl;if(this._bindFramebuffer(),a.viewport.set([0,0,this._texWidth,this._texHeight]),a.clear({color:s.b7.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(a,l.TRIANGLES,wt.disabled,Ct.disabled,Jt.unblended,Ft.disabled,((p,g)=>({u_input:p,u_output_expected:g}))(e,r),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&ri(l)){l.bindBuffer(l.PIXEL_PACK_BUFFER,this._pbo),l.readBuffer(l.COLOR_ATTACHMENT0),l.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),l.bindBuffer(l.PIXEL_PACK_BUFFER,null);const p=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);l.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:p}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const e=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&ri(e)){const r=e.clientWaitSync(this._readbackQueue.sync,0,0);if(r===e.WAIT_FAILED)return s.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(r===e.TIMEOUT_EXPIRED)return;e.bindBuffer(e.PIXEL_PACK_BUFFER,this._pbo),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),e.bindBuffer(e.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),e.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=Ha._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(e){let r=0;return r+=e[0]/256,r+=e[1]/65536,r+=e[2]/16777216,e[3]<127&&(r=-r),r/128}}const Wa=s.Z/128;function Ws(u,e){const r=u.granularity!==void 0?Math.max(u.granularity,1):1,a=r+(u.generateBorders?2:0),l=r+(u.extendToNorthPole||u.generateBorders?1:0)+(u.extendToSouthPole||u.generateBorders?1:0),p=a+1,g=l+1,b=u.generateBorders?-1:0,A=u.generateBorders||u.extendToNorthPole?-1:0,I=r+(u.generateBorders?1:0),z=r+(u.generateBorders||u.extendToSouthPole?1:0),N=p*g,O=a*l*6,Z=p*g>65536;if(Z&&e==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const J=Z||e==="32bit",se=new Int16Array(2*N);let ne=0;for(let me=A;me<=z;me++)for(let fe=b;fe<=I;fe++){let ge=fe/r*s.Z;fe===-1&&(ge=-64),fe===r+1&&(ge=s.Z+Wa);let xe=me/r*s.Z;me===-1&&(xe=u.extendToNorthPole?s.b9:-64),me===r+1&&(xe=u.extendToSouthPole?s.ba:s.Z+Wa),se[ne++]=ge,se[ne++]=xe}const oe=J?new Uint32Array(O):new Uint16Array(O);let ue=0;for(let me=0;me<l;me++)for(let fe=0;fe<a;fe++){const ge=fe+1+me*p,xe=fe+(me+1)*p,_e=fe+1+(me+1)*p;oe[ue++]=fe+me*p,oe[ue++]=xe,oe[ue++]=ge,oe[ue++]=ge,oe[ue++]=xe,oe[ue++]=_e}return{vertices:se.buffer.slice(0),indices:oe.buffer.slice(0),uses32bitIndices:J}}const ms=new s.aH({fill:new s.bb(128,2),line:new s.bb(512,0),tile:new s.bb(128,32),stencil:new s.bb(128,1),circle:3});class Zs{constructor(){this._tileMeshCache={},this._errorCorrectionUsable=0,this._errorMeasurementLastValue=0,this._errorCorrectionPreviousValue=0,this._errorMeasurementLastChangeTime=-1e3}get name(){return"vertical-perspective"}get transitionState(){return 1}get useSubdivision(){return!0}get shaderVariantName(){return"globe"}get shaderDefine(){return"#define GLOBE"}get shaderPreludeCode(){return ci.projectionGlobe}get vertexShaderPreludeCode(){return ci.projectionMercator.vertexSource}get subdivisionGranularity(){return ms}get useGlobeControls(){return!0}get latitudeErrorCorrectionRadians(){return this._errorCorrectionUsable}destroy(){this._errorMeasurement&&this._errorMeasurement.destroy()}updateGPUdependent(e){this._errorMeasurement||(this._errorMeasurement=new Ha(e));const r=s.S(this._errorQueryLatitudeDegrees),a=2*Math.atan(Math.exp(Math.PI-r*Math.PI*2))-.5*Math.PI,l=this._errorMeasurement.updateErrorLoop(r,a),p=R.now();l!==this._errorMeasurementLastValue&&(this._errorCorrectionPreviousValue=this._errorCorrectionUsable,this._errorMeasurementLastValue=l,this._errorMeasurementLastChangeTime=p);const g=Math.min(Math.max((p-this._errorMeasurementLastChangeTime)/1e3/.5,0),1);this._errorCorrectionUsable=s.bc(this._errorCorrectionPreviousValue,-this._errorMeasurementLastValue,s.bd(g))}_getMeshKey(e){return`${e.granularity.toString(36)}_${e.generateBorders?"b":""}${e.extendToNorthPole?"n":""}${e.extendToSouthPole?"s":""}`}getMeshFromTileID(e,r,a,l,p){const g=(p==="stencil"?ms.stencil:ms.tile).getGranularityForZoomLevel(r.z);return this._getMesh(e,{granularity:g,generateBorders:a,extendToNorthPole:r.y===0&&l,extendToSouthPole:r.y===(1<<r.z)-1&&l})}_getMesh(e,r){const a=this._getMeshKey(r);if(a in this._tileMeshCache)return this._tileMeshCache[a];const l=function(p,g){const b=Ws(g,"16bit"),A=s.aI.deserialize({arrayBuffer:b.vertices,length:b.vertices.byteLength/2/2}),I=s.aK.deserialize({arrayBuffer:b.indices,length:b.indices.byteLength/2/3});return new hs(p.createVertexBuffer(A,ui.members),p.createIndexBuffer(I),s.aJ.simpleSegment(0,0,A.length,I.length))}(e,r);return this._tileMeshCache[a]=l,l}recalculate(e){}hasTransition(){const e=R.now();let r=!1;return r=r||(e-this._errorMeasurementLastChangeTime)/1e3<.7,r=r||this._errorMeasurement&&this._errorMeasurement.awaitingQuery,r}setErrorQueryLatitudeDegrees(e){this._errorQueryLatitudeDegrees=e}}const Za=new s.r({type:new s.D(s.v.projection.type)});class Do extends s.E{constructor(e){super(),this._transitionable=new s.T(Za),this.setProjection(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new s.C(0)),this._mercatorProjection=new Us,this._verticalPerspectiveProjection=new Zs}get transitionState(){const e=this.properties.get("type");if(typeof e=="string"&&e==="mercator")return 0;if(typeof e=="string"&&e==="vertical-perspective")return 1;if(e instanceof s.be){if(e.from==="vertical-perspective"&&e.to==="mercator")return 1-e.transition;if(e.from==="mercator"&&e.to==="vertical-perspective")return e.transition}return 1}get useGlobeRendering(){return this.transitionState>0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(e){this._mercatorProjection.updateGPUdependent(e),this._verticalPerspectiveProjection.updateGPUdependent(e)}getMeshFromTileID(e,r,a,l,p){return this.currentProjection.getMeshFromTileID(e,r,a,l,p)}setProjection(e){this._transitionable.setValue("type",(e==null?void 0:e.type)||"mercator")}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}setErrorQueryLatitudeDegrees(e){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e),this._mercatorProjection.setErrorQueryLatitudeDegrees(e)}}function Ks(u){const e=Wn(u.worldSize,u.center.lat);return 2*Math.PI*e}function Hn(u,e,r,a,l){const p=1/(1<<l),g=e/s.Z*p+a*p,b=s.bg((u/s.Z*p+r*p)*Math.PI*2+Math.PI,2*Math.PI),A=2*Math.atan(Math.exp(Math.PI-g*Math.PI*2))-.5*Math.PI,I=Math.cos(A),z=new Float64Array(3);return z[0]=Math.sin(b)*I,z[1]=Math.sin(A),z[2]=Math.cos(b)*I,z}function Nr(u){return function(e,r){const a=Math.cos(r),l=new Float64Array(3);return l[0]=Math.sin(e)*a,l[1]=Math.sin(r),l[2]=Math.cos(e)*a,l}(u.lng*Math.PI/180,u.lat*Math.PI/180)}function Wn(u,e){return u/(2*Math.PI)/Math.cos(e*Math.PI/180)}function Gs(u){const e=Math.asin(u[1])/Math.PI*180,r=Math.sqrt(u[0]*u[0]+u[2]*u[2]);if(r>1e-6){const a=u[0]/r,l=Math.acos(u[2]/r),p=(a>0?l:-l)/Math.PI*180;return new s.Q(s.aL(p,-180,180),e)}return new s.Q(0,e)}function An(u){return Math.cos(u*Math.PI/180)}function qr(u,e){const r=An(u),a=An(e);return s.ah(a/r)}function zo(u,e){const r=u.rotate(e.bearingInRadians),a=e.zoom+qr(e.center.lat,0),l=s.bc(1/An(e.center.lat),1/An(Math.min(Math.abs(e.center.lat),60)),s.bf(a,7,3,0,1)),p=360/Ks({worldSize:e.worldSize,center:{lat:e.center.lat}});return new s.Q(e.center.lng-r.x*p*l,s.ae(e.center.lat+r.y*p,-85.051129,s.af))}function Bo(u){const e=.5*u,r=Math.sin(e),a=Math.cos(e);return Math.log(r+a)-Math.log(a-r)}function pc(u,e,r,a){const l=u.lat+r*a;if(Math.abs(r)>1){const p=(Math.sign(u.lat+r)!==Math.sign(u.lat)?-Math.abs(u.lat):Math.abs(u.lat))*Math.PI/180,g=Math.abs(u.lat+r)*Math.PI/180,b=Bo(p+a*(g-p)),A=Bo(p),I=Bo(g);return new s.Q(u.lng+e*((b-A)/(I-A)),l)}return new s.Q(u.lng+e*a,l)}class _h{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._aabbFactory=e}recalculateCache(){if(!this._hadAnyChanges)return;const e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=!1}getTileAABB(e,r,a,l){const p=`${e.z}_${e.x}_${e.y}`,g=this._cache.get(p);if(g)return g;const b=this._cachePrevious.get(p);if(b)return this._cache.set(p,b),b;const A=this._aabbFactory(e,r,a,l);return this._cache.set(p,A),this._hadAnyChanges=!0,A}}function ii(u,e,r){const a=u-e;return a<0?-a:Math.max(0,a-r)}function Js(u,e,r,a,l){const p=u-r;let g;return g=p<0?Math.min(-p,1+p-l):p>1?Math.min(Math.max(p-l,0),1-p):0,Math.max(g,ii(e,a,l))}class rn{constructor(){this._aabbCache=new _h(this._computeTileAABB)}recalculateCache(){this._aabbCache.recalculateCache()}distanceToTile2d(e,r,a,l){const p=1<<a.z,g=1/p,b=a.x/p,A=a.y/p;let I=2;return I=Math.min(I,Js(e,r,b,A,g)),I=Math.min(I,Js(e,r,b+.5,-A-g,g)),I=Math.min(I,Js(e,r,b+.5,2-A-g,g)),I}getWrap(e,r,a){const l=1<<r.z,p=1/l,g=r.x/l,b=ii(e.x,g,p),A=ii(e.x,g-1,p),I=ii(e.x,g+1,p),z=Math.min(b,A,I);return z===I?1:z===A?-1:0}allowVariableZoom(e,r){return ke(e,r)>4}allowWorldCopies(){return!1}getTileAABB(e,r,a,l){return this._aabbCache.getTileAABB(e,r,a,l)}_computeTileAABB(e,r,a,l){if(e.z<=0)return new Tr([-1,-1,-1],[1,1,1]);if(e.z===1)return new Tr([e.x===0?-1:0,e.y===0?0:-1,-1],[e.x===0?0:1,e.y===0?1:0,1]);{const p=[Hn(0,0,e.x,e.y,e.z),Hn(s.Z,0,e.x,e.y,e.z),Hn(s.Z,s.Z,e.x,e.y,e.z),Hn(0,s.Z,e.x,e.y,e.z)],g=[1,1,1],b=[-1,-1,-1];for(const A of p)for(let I=0;I<3;I++)g[I]=Math.min(g[I],A[I]),b[I]=Math.max(b[I],A[I]);if(e.y===0||e.y===(1<<e.z)-1){const A=[0,e.y===0?1:-1,0];for(let I=0;I<3;I++)g[I]=Math.min(g[I],A[I]),b[I]=Math.max(b[I],A[I])}return new Tr(g,b)}}}class Zn{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r){this._helper.resize(e,r)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(){this._cachedClippingPlane=s.bk(),this._projectionMatrix=s.b1(),this._globeViewProjMatrix32f=s.b0(),this._globeViewProjMatrixNoCorrection=s.b1(),this._globeViewProjMatrixNoCorrectionInverted=s.b1(),this._globeProjMatrixInverted=s.b1(),this._cameraPosition=s.bh(),this._globeLatitudeErrorCorrectionRadians=0,this._helper=new Jr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,r)=>this.getConstrained(e,r)}),this._coveringTilesDetailsProvider=new rn}clone(){const e=new Zn;return e.apply(this),e}apply(e,r){this._globeLatitudeErrorCorrectionRadians=r||0,this._helper.apply(e)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const e=s.bh();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){const{overscaledTileID:r,applyGlobeMatrix:a}=e,l=this._helper.getMercatorTileCoordinates(r);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:l,clippingPlane:this._cachedClippingPlane,projectionTransition:a?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(e){const r=this.pitchInRadians,a=this.cameraToCenterDistance/e,l=Math.sin(r)*a,p=Math.cos(r)*a+1,g=1/Math.sqrt(l*l+p*p)*1;let b=-l,A=p;const I=Math.sqrt(b*b+A*A);b/=I,A/=I;const z=[0,b,A];s.bl(z,z,[0,0,0],-this.bearingInRadians),s.bm(z,z,[0,0,0],-1*this.center.lat*Math.PI/180),s.bn(z,z,[0,0,0],this.center.lng*Math.PI/180);const N=1/s.bo(z);return s.aO(z,z,N),[...z,-g*N]}isLocationOccluded(e){return!this.isSurfacePointVisible(Nr(e))}transformLightDirection(e){const r=this._helper._center.lng*Math.PI/180,a=this._helper._center.lat*Math.PI/180,l=Math.cos(a),p=[Math.sin(r)*l,Math.sin(a),Math.cos(r)*l],g=[p[2],0,-p[0]],b=[0,0,0];s.aU(b,g,p),s.aT(g,g),s.aT(b,b);const A=[0,0,0];return s.aT(A,[g[0]*e[0]+b[0]*e[1]+p[0]*e[2],g[1]*e[0]+b[1]*e[1]+p[1]*e[2],g[2]*e[0]+b[2]*e[1]+p[2]*e[2]]),A}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(e,r,a){const l=function(b,A,I){const z=1/(1<<I.z);return new s.$(b/s.Z*z+I.x*z,A/s.Z*z+I.y*z)}(e,r,a.canonical),p=(g=l.y,[s.bg(l.x*Math.PI*2+Math.PI,2*Math.PI),2*Math.atan(Math.exp(Math.PI-g*Math.PI*2))-.5*Math.PI]);var g;return this.getCircleRadiusCorrection()/Math.cos(p[1])}projectTileCoordinates(e,r,a,l){const p=a.canonical,g=Hn(e,r,p.x,p.y,p.z),b=1+(l?l(e,r):0)/s.bu,A=[g[0]*b,g[1]*b,g[2]*b,1];s.at(A,A,this._globeViewProjMatrixNoCorrection);const I=this._cachedClippingPlane,z=I[0]*g[0]+I[1]*g[1]+I[2]*g[2]+I[3]<0;return{point:new s.P(A[0]/A[3],A[1]/A[3]),signedDistanceFromCamera:A[3],isOccluded:z}}_calcMatrices(){if(!this._helper._width||!this._helper._height)return;const e=Wn(this.worldSize,this.center.lat),r=s.b2(),a=s.b2();this._helper.autoCalculateNearFarZ&&(this._helper._nearZ=.5,this._helper._farZ=this.cameraToCenterDistance+2*e),s.aY(r,this.fovInRadians,this.width/this.height,this._helper._nearZ,this._helper._farZ);const l=this.centerOffset;r[8]=2*-l.x/this._helper._width,r[9]=2*l.y/this._helper._height,this._projectionMatrix=s.aZ(r),this._globeProjMatrixInverted=s.b2(),s.an(this._globeProjMatrixInverted,r),s.L(r,r,[0,0,-this.cameraToCenterDistance]),s.a_(r,r,this.rollInRadians),s.a$(r,r,-this.pitchInRadians),s.a_(r,r,this.bearingInRadians),s.L(r,r,[0,0,-e]);const p=s.bh();p[0]=e,p[1]=e,p[2]=e,s.a$(a,r,this.center.lat*Math.PI/180),s.bp(a,a,-this.center.lng*Math.PI/180),s.M(a,a,p),this._globeViewProjMatrixNoCorrection=a,s.a$(r,r,this.center.lat*Math.PI/180-this._globeLatitudeErrorCorrectionRadians),s.bp(r,r,-this.center.lng*Math.PI/180),s.M(r,r,p),this._globeViewProjMatrix32f=new Float32Array(r),this._globeViewProjMatrixNoCorrectionInverted=s.b2(),s.an(this._globeViewProjMatrixNoCorrectionInverted,a);const g=s.bh();this._cameraPosition=s.bh(),this._cameraPosition[2]=this.cameraToCenterDistance/e,s.bl(this._cameraPosition,this._cameraPosition,g,-this.rollInRadians),s.bm(this._cameraPosition,this._cameraPosition,g,this.pitchInRadians),s.bl(this._cameraPosition,this._cameraPosition,g,-this.bearingInRadians),s.aP(this._cameraPosition,this._cameraPosition,[0,0,1]),s.bm(this._cameraPosition,this._cameraPosition,g,-this.center.lat*Math.PI/180),s.bn(this._cameraPosition,this._cameraPosition,g,this.center.lng*Math.PI/180),this._cachedClippingPlane=this._computeClippingPlane(e);const b=s.aZ(this._globeViewProjMatrixNoCorrectionInverted);s.M(b,b,[1,1,-1]),this._cachedFrustum=ir.fromInvProjectionMatrix(b)}calculateFogMatrix(e){s.w("calculateFogMatrix is not supported on globe projection.");const r=s.b2();return s.ad(r),r}getVisibleUnwrappedCoordinates(e){return[new s.aW(0,e)]}getCameraFrustum(){return this._cachedFrustum}getClippingPlane(){return this._cachedClippingPlane}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){e&&s.w("terrain is not fully supported on vertical perspective projection."),this._helper.recalculateZoomAndCenter(0)}maxPitchScaleFactor(){return 1}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,r){if(!this._globeViewProjMatrixNoCorrection)return 1;const a=Nr(e);s.aO(a,a,1+r/s.bu);const l=s.bk();return s.at(l,[a[0],a[1],a[2],1],this._globeViewProjMatrixNoCorrection),l[2]/l[3]}populateCache(e){}getBounds(){const e=.5*this.width,r=.5*this.height,a=[new s.P(0,0),new s.P(e,0),new s.P(this.width,0),new s.P(this.width,r),new s.P(this.width,this.height),new s.P(e,this.height),new s.P(0,this.height),new s.P(0,r)],l=[];for(const N of a)l.push(this.unprojectScreenPoint(N));let p=0,g=0,b=0,A=0;const I=this.center;for(const N of l){const O=s.bq(I.lng,N.lng),Z=s.bq(I.lat,N.lat);O<g&&(g=O),O>p&&(p=O),Z<A&&(A=Z),Z>b&&(b=Z)}const z=[I.lng+g,I.lat+A,I.lng+p,I.lat+b];return this.isSurfacePointOnScreen([0,1,0])&&(z[3]=90,z[0]=-180,z[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(z[1]=-90,z[0]=-180,z[2]=180),new Ke(z)}getConstrained(e,r){const a=s.ae(e.lat,-85.051129,s.af),l=s.ae(+r,this.minZoom+qr(0,a),this.maxZoom);return{center:new s.Q(e.lng,a),zoom:l}}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}setLocationAtPoint(e,r){const a=Nr(this.unprojectScreenPoint(r)),l=Nr(e),p=s.bh();s.br(p);const g=s.bh();s.bn(g,a,p,-this.center.lng*Math.PI/180),s.bm(g,g,p,this.center.lat*Math.PI/180);const b=l[0]*l[0]+l[2]*l[2],A=g[0]*g[0];if(b<A)return;const I=Math.sqrt(b-A),z=-I,N=s.bs(l[0],l[2],g[0],I),O=s.bs(l[0],l[2],g[0],z),Z=s.bh();s.bn(Z,l,p,-N);const J=s.bs(Z[1],Z[2],g[1],g[2]),se=s.bh();s.bn(se,l,p,-O);const ne=s.bs(se[1],se[2],g[1],g[2]),oe=.5*Math.PI,ue=J>=-oe&&J<=oe,me=ne>=-oe&&ne<=oe;let fe,ge;if(ue&&me){const Fe=this.center.lng*Math.PI/180,Le=this.center.lat*Math.PI/180;s.bv(N,Fe)+s.bv(J,Le)<s.bv(O,Fe)+s.bv(ne,Le)?(fe=N,ge=J):(fe=O,ge=ne)}else if(ue)fe=N,ge=J;else{if(!me)return;fe=O,ge=ne}const xe=fe/Math.PI*180,_e=ge/Math.PI*180,Ee=this.center.lat;this.setCenter(new s.Q(xe,s.ae(_e,-90,90))),this.setZoom(this.zoom+qr(Ee,this.center.lat))}locationToScreenPoint(e,r){const a=Nr(e);if(r){const l=r.getElevationForLngLatZoom(e,this._helper._tileZoom);s.aO(a,a,1+l/s.bu)}return this._projectSurfacePointToScreen(a)}_projectSurfacePointToScreen(e){const r=s.bk();return s.at(r,[...e,1],this._globeViewProjMatrixNoCorrection),r[0]/=r[3],r[1]/=r[3],new s.P((.5*r[0]+.5)*this.width,(.5*-r[1]+.5)*this.height)}screenPointToMercatorCoordinate(e,r){if(r){const a=r.pointCoordinate(e);if(a)return a}return s.$.fromLngLat(this.unprojectScreenPoint(e))}screenPointToLocation(e,r){var a;return(a=this.screenPointToMercatorCoordinate(e,r))===null||a===void 0?void 0:a.toLngLat()}isPointOnMapSurface(e,r){const a=this._cameraPosition,l=this.getRayDirectionFromPixel(e);return!!this.rayPlanetIntersection(a,l)}getRayDirectionFromPixel(e){const r=s.bk();r[0]=e.x/this.width*2-1,r[1]=-1*(e.y/this.height*2-1),r[2]=1,r[3]=1,s.at(r,r,this._globeViewProjMatrixNoCorrectionInverted),r[0]/=r[3],r[1]/=r[3],r[2]/=r[3];const a=s.bh();a[0]=r[0]-this._cameraPosition[0],a[1]=r[1]-this._cameraPosition[1],a[2]=r[2]-this._cameraPosition[2];const l=s.bh();return s.aT(l,a),l}isSurfacePointVisible(e){const r=this._cachedClippingPlane;return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]>=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return!1;const r=s.bk();return s.at(r,[...e,1],this._globeViewProjMatrixNoCorrection),r[0]/=r[3],r[1]/=r[3],r[2]/=r[3],r[0]>-1&&r[0]<1&&r[1]>-1&&r[1]<1&&r[2]>-1&&r[2]<1}rayPlanetIntersection(e,r){const a=s.aV(e,r),l=s.bh(),p=s.bh();s.aO(p,r,a),s.aS(l,e,p);const g=1-s.aV(l,l);if(g<0)return null;const b=s.aV(e,e)-1,A=-a+(a<0?1:-1)*Math.sqrt(g),I=b/A,z=A;return{tMin:Math.min(I,z),tMax:Math.max(I,z)}}unprojectScreenPoint(e){const r=this._cameraPosition,a=this.getRayDirectionFromPixel(e),l=this.rayPlanetIntersection(r,a);if(l){const z=s.bh();s.aP(z,r,[a[0]*l.tMin,a[1]*l.tMin,a[2]*l.tMin]);const N=s.bh();return s.aT(N,z),Gs(N)}const p=this._cachedClippingPlane,g=p[0]*a[0]+p[1]*a[1]+p[2]*a[2],b=-s.bt(p,r)/g,A=s.bh();if(b>0)s.aP(A,r,[a[0]*b,a[1]*b,a[2]*b]);else{const z=s.bh();s.aP(z,r,[2*a[0],2*a[1],2*a[2]]);const N=s.bt(this._cachedClippingPlane,z);s.aS(A,z,[this._cachedClippingPlane[0]*N,this._cachedClippingPlane[1]*N,this._cachedClippingPlane[2]*N])}const I=function(z){const N=s.bh();return N[0]=z[0]*-z[3],N[1]=z[1]*-z[3],N[2]=z[2]*-z[3],{center:N,radius:Math.sqrt(1-z[3]*z[3])}}(p);return Gs(function(z,N,O){const Z=s.bh();s.aS(Z,O,z);const J=s.bh();return s.bi(J,z,Z,N/s.bj(Z)),J}(I.center,I.radius,A))}getMatrixForModel(e,r){const a=s.Q.convert(e),l=1/s.bu,p=s.b1();return s.bp(p,p,a.lng/180*Math.PI),s.a$(p,p,-a.lat/180*Math.PI),s.L(p,p,[0,0,1+r/s.bu]),s.a$(p,p,.5*Math.PI),s.M(p,p,[l,l,l]),p}getProjectionDataForCustomLayer(e=!0){const r=this.getProjectionData({overscaledTileID:new s.Y(0,0,0,0,0),applyGlobeMatrix:e});return r.tileMercatorCoords=[0,0,1,1],r}getFastPathSimpleProjectionMatrix(e){}}class Xs{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r,a=!0){this._helper.resize(e,r,a)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e,r){this._globeness=e,this._globeLatitudeErrorCorrectionRadians=r,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().recalculateCache(),this._mercatorTransform.getCoveringTilesDetailsProvider().recalculateCache()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this._helper=new Jr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,r)=>this.getConstrained(e,r)}),this._globeness=1,this._mercatorTransform=new ds,this._verticalPerspectiveTransform=new Zn}clone(){const e=new Xs;return e._globeness=this._globeness,e._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,e.apply(this),e}apply(e){this._helper.apply(e),this._mercatorTransform.apply(this),this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(e){const r=this._mercatorTransform.getProjectionData(e),a=this._verticalPerspectiveTransform.getProjectionData(e);return{mainMatrix:this.isGlobeRendering?a.mainMatrix:r.mainMatrix,clippingPlane:a.clippingPlane,tileMercatorCoords:a.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:r.fallbackMatrix}}isLocationOccluded(e){return this.currentTransform.isLocationOccluded(e)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return s.bc(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return s.bc(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(e,r,a){const l=this._mercatorTransform.getPitchedTextCorrection(e,r,a),p=this._verticalPerspectiveTransform.getPitchedTextCorrection(e,r,a);return s.bc(l,p,this._globeness)}projectTileCoordinates(e,r,a,l){return this.currentTransform.projectTileCoordinates(e,r,a,l)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this._mercatorTransform.recalculateZoomAndCenter(e),this._verticalPerspectiveTransform.recalculateZoomAndCenter(e)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,r){return this.currentTransform.lngLatToCameraDepth(e,r)}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e)}getBounds(){return this.currentTransform.getBounds()}getConstrained(e,r){return this.currentTransform.getConstrained(e,r)}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}setLocationAtPoint(e,r){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(e,r),void this.apply(this._mercatorTransform);this._verticalPerspectiveTransform.setLocationAtPoint(e,r),this.apply(this._verticalPerspectiveTransform)}locationToScreenPoint(e,r){return this.currentTransform.locationToScreenPoint(e,r)}screenPointToMercatorCoordinate(e,r){return this.currentTransform.screenPointToMercatorCoordinate(e,r)}screenPointToLocation(e,r){return this.currentTransform.screenPointToLocation(e,r)}isPointOnMapSurface(e,r){return this.currentTransform.isPointOnMapSurface(e,r)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getMatrixForModel(e,r){return this.currentTransform.getMatrixForModel(e,r)}getProjectionDataForCustomLayer(e=!0){const r=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return r;const a=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return a.fallbackMatrix=r.mainMatrix,a}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}}class Di{get useGlobeControls(){return!0}handlePanInertia(e,r){const a=zo(e,r);return Math.abs(a.lng-r.center.lng)>180&&(a.lng=r.center.lng+179.5*Math.sign(a.lng-r.center.lng)),{easingCenter:a,easingOffset:new s.P(0,0)}}handleMapControlsRollPitchBearingZoom(e,r){const a=e.around,l=r.screenPointToLocation(a);e.bearingDelta&&r.setBearing(r.bearing+e.bearingDelta),e.pitchDelta&&r.setPitch(r.pitch+e.pitchDelta),e.rollDelta&&r.setRoll(r.roll+e.rollDelta);const p=r.zoom;e.zoomDelta&&r.setZoom(r.zoom+e.zoomDelta);const g=r.zoom-p;if(g===0)return;const b=s.bq(r.center.lng,l.lng),A=b/(Math.abs(b/180)+1),I=s.bq(r.center.lat,l.lat),z=r.getRayDirectionFromPixel(a),N=r.cameraPosition,O=-1*s.aV(N,z),Z=s.bh();s.aP(Z,N,[z[0]*O,z[1]*O,z[2]*O]);const J=s.bo(Z)-1,se=Math.exp(.5*-Math.max(J-.3,0)),ne=Wn(r.worldSize,r.center.lat)/Math.min(r.width,r.height),oe=s.bf(ne,.9,.5,1,.25),ue=(1-s.ac(-g))*Math.min(se,oe),me=r.center.lat,fe=r.zoom,ge=new s.Q(r.center.lng+A*ue,s.ae(r.center.lat+I*ue,-85.051129,s.af));r.setLocationAtPoint(l,a);const xe=r.center,_e=s.bf(Math.abs(b),45,85,0,1),Ee=s.bf(ne,.75,.35,0,1),Fe=Math.pow(Math.max(_e,Ee),.25),Le=s.bq(xe.lng,ge.lng),Re=s.bq(xe.lat,ge.lat);r.setCenter(new s.Q(xe.lng+Le*Fe,xe.lat+Re*Fe).wrap()),r.setZoom(fe+qr(me,r.center.lat))}handleMapControlsPan(e,r,a){if(!e.panDelta)return;const l=r.center.lat,p=r.zoom;r.setCenter(zo(e.panDelta,r).wrap()),r.setZoom(p+qr(l,r.center.lat))}cameraForBoxAndBearing(e,r,a,l,p){const g=_i(e,r,a,l,p),b=r.left/p.width*2-1,A=(p.width-r.right)/p.width*2-1,I=r.top/p.height*-2+1,z=(p.height-r.bottom)/p.height*-2+1,N=s.bq(a.getWest(),a.getEast())<0,O=N?a.getEast():a.getWest(),Z=N?a.getWest():a.getEast(),J=Math.max(a.getNorth(),a.getSouth()),se=Math.min(a.getNorth(),a.getSouth()),ne=O+.5*s.bq(O,Z),oe=J+.5*s.bq(J,se),ue=p.clone();ue.setCenter(g.center),ue.setBearing(g.bearing),ue.setPitch(0),ue.setRoll(0),ue.setZoom(g.zoom);const me=ue.modelViewProjectionMatrix,fe=[Nr(a.getNorthWest()),Nr(a.getNorthEast()),Nr(a.getSouthWest()),Nr(a.getSouthEast()),Nr(new s.Q(Z,oe)),Nr(new s.Q(O,oe)),Nr(new s.Q(ne,J)),Nr(new s.Q(ne,se))],ge=Nr(g.center);let xe=Number.POSITIVE_INFINITY;for(const _e of fe)b<0&&(xe=Di.getLesserNonNegativeNonNull(xe,Di.solveVectorScale(_e,ge,me,"x",b))),A>0&&(xe=Di.getLesserNonNegativeNonNull(xe,Di.solveVectorScale(_e,ge,me,"x",A))),I>0&&(xe=Di.getLesserNonNegativeNonNull(xe,Di.solveVectorScale(_e,ge,me,"y",I))),z<0&&(xe=Di.getLesserNonNegativeNonNull(xe,Di.solveVectorScale(_e,ge,me,"y",z)));if(Number.isFinite(xe)&&xe!==0)return g.zoom=ue.zoom+s.ah(xe),g;hi()}handleJumpToCenterZoom(e,r){const a=e.center.lat,l=e.getConstrained(r.center?s.Q.convert(r.center):e.center,e.zoom).center;e.setCenter(l.wrap());const p=r.zoom!==void 0?+r.zoom:e.zoom+qr(a,l.lat);e.zoom!==p&&e.setZoom(p)}handleEaseTo(e,r){const a=e.zoom,l=e.center,p=e.padding,g={roll:e.roll,pitch:e.pitch,bearing:e.bearing},b={roll:r.roll===void 0?e.roll:r.roll,pitch:r.pitch===void 0?e.pitch:r.pitch,bearing:r.bearing===void 0?e.bearing:r.bearing},A=r.zoom!==void 0,I=!e.isPaddingEqual(r.padding);let z=!1;const N=r.center?s.Q.convert(r.center):l,O=e.getConstrained(N,a).center;ps(e,O);const Z=e.clone();Z.setCenter(O),Z.setZoom(A?+r.zoom:a+qr(l.lat,N.lat)),Z.setBearing(r.bearing);const J=new s.P(s.ae(e.centerPoint.x+r.offsetAsPoint.x,0,e.width),s.ae(e.centerPoint.y+r.offsetAsPoint.y,0,e.height));Z.setLocationAtPoint(O,J);const se=(r.offset&&r.offsetAsPoint.mag())>0?Z.center:O,ne=A?+r.zoom:a+qr(l.lat,se.lat),oe=a+qr(l.lat,0),ue=ne+qr(se.lat,0),me=s.bq(l.lng,se.lng),fe=s.bq(l.lat,se.lat),ge=s.ac(ue-oe);return z=ne!==a,{easeFunc:xe=>{if(s.b6(g,b)||Ai({startEulerAngles:g,endEulerAngles:b,tr:e,k:xe,useSlerp:g.roll!=b.roll}),I&&e.interpolatePadding(p,r.padding,xe),r.around)s.w("Easing around a point is not supported under globe projection."),e.setLocationAtPoint(r.around,r.aroundPoint);else{const _e=ue>oe?Math.min(2,ge):Math.max(.5,ge),Ee=Math.pow(_e,1-xe),Fe=pc(l,me,fe,xe*Ee);e.setCenter(Fe.wrap())}if(z){const _e=s.B.number(oe,ue,xe)+qr(0,e.center.lat);e.setZoom(_e)}},isZooming:z,elevationCenter:se}}handleFlyTo(e,r){const a=r.zoom!==void 0,l=e.center,p=e.zoom,g=e.padding,b=!e.isPaddingEqual(r.padding),A=e.getConstrained(s.Q.convert(r.center||r.locationAtOffset),p).center,I=a?+r.zoom:e.zoom+qr(e.center.lat,A.lat),z=e.clone();z.setCenter(A),z.setZoom(I),z.setBearing(r.bearing);const N=new s.P(s.ae(e.centerPoint.x+r.offsetAsPoint.x,0,e.width),s.ae(e.centerPoint.y+r.offsetAsPoint.y,0,e.height));z.setLocationAtPoint(A,N);const O=z.center;ps(e,O);const Z=function(fe,ge,xe){const _e=Nr(ge),Ee=Nr(xe),Fe=s.aV(_e,Ee),Le=Math.acos(Fe),Re=Ks(fe);return Le/(2*Math.PI)*Re}(e,l,O),J=p+qr(l.lat,0),se=I+qr(O.lat,0),ne=s.ac(se-J);let oe;if(typeof r.minZoom=="number"){const fe=+r.minZoom+qr(O.lat,0),ge=Math.min(fe,J,se)+qr(0,O.lat),xe=e.getConstrained(O,ge).zoom+qr(O.lat,0);oe=s.ac(xe-J)}const ue=s.bq(l.lng,O.lng),me=s.bq(l.lat,O.lat);return{easeFunc:(fe,ge,xe,_e)=>{const Ee=pc(l,ue,me,xe);b&&e.interpolatePadding(g,r.padding,fe);const Fe=fe===1?O:Ee;e.setCenter(Fe.wrap());const Le=J+s.ah(ge);e.setZoom(fe===1?I:Le+qr(0,Fe.lat))},scaleOfZoom:ne,targetCenter:O,scaleOfMinZoom:oe,pixelPathLength:Z}}static solveVectorScale(e,r,a,l,p){const g=l==="x"?[a[0],a[4],a[8],a[12]]:[a[1],a[5],a[9],a[13]],b=[a[3],a[7],a[11],a[15]],A=e[0]*g[0]+e[1]*g[1]+e[2]*g[2],I=e[0]*b[0]+e[1]*b[1]+e[2]*b[2],z=r[0]*g[0]+r[1]*g[1]+r[2]*g[2],N=r[0]*b[0]+r[1]*b[1]+r[2]*b[2];return z+p*I===A+p*N||b[3]*(A-z)+g[3]*(N-I)+A*N==z*I?null:(z+g[3]-p*N-p*b[3])/(z-A-p*N+p*I)}static getLesserNonNegativeNonNull(e,r){return r!==null&&r>=0&&r<e?r:e}}class Kn{constructor(e){this._globe=e,this._mercatorCameraHelper=new Hs,this._verticalPerspectiveCameraHelper=new Di}get useGlobeControls(){return this._globe.useGlobeRendering}get currentHelper(){return this.useGlobeControls?this._verticalPerspectiveCameraHelper:this._mercatorCameraHelper}handlePanInertia(e,r){return this.currentHelper.handlePanInertia(e,r)}handleMapControlsRollPitchBearingZoom(e,r){return this.currentHelper.handleMapControlsRollPitchBearingZoom(e,r)}handleMapControlsPan(e,r,a){this.currentHelper.handleMapControlsPan(e,r,a)}cameraForBoxAndBearing(e,r,a,l,p){return this.currentHelper.cameraForBoxAndBearing(e,r,a,l,p)}handleJumpToCenterZoom(e,r){this.currentHelper.handleJumpToCenterZoom(e,r)}handleEaseTo(e,r){return this.currentHelper.handleEaseTo(e,r)}handleFlyTo(e,r){return this.currentHelper.handleFlyTo(e,r)}}const Vo=(u,e)=>s.x(u,e&&e.filter(r=>r.identifier!=="source.canvas")),vh=s.bw();class Ka extends s.E{constructor(e,r={}){super(),this._rtlPluginLoaded=()=>{for(const a in this.sourceCaches){const l=this.sourceCaches[a].getSource().type;l!=="vector"&&l!=="geojson"||this.sourceCaches[a].reload()}},this.map=e,this.dispatcher=new ai(ji(),e._getMapId()),this.dispatcher.registerMessageHandler("GG",(a,l)=>this.getGlyphs(a,l)),this.dispatcher.registerMessageHandler("GI",(a,l)=>this.getImages(a,l)),this.imageManager=new tt,this.imageManager.setEventedParent(this),this.glyphManager=new Mt(e._requestManager,r.localIdeographFontFamily),this.lineAtlas=new ti(256,512),this.crossTileSymbolIndex=new qs,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.bx,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",s.by()),Li().on(Er,this._rtlPluginLoaded),this.on("data",a=>{if(a.dataType!=="source"||a.sourceDataType!=="metadata")return;const l=this.sourceCaches[a.sourceId];if(!l)return;const p=l.getSource();if(p&&p.vectorLayerIds)for(const g in this._layers){const b=this._layers[g];b.source===p.id&&this._validateLayer(b)}})}loadURL(e,r={},a){this.fire(new s.l("dataloading",{dataType:"style"})),r.validate=typeof r.validate!="boolean"||r.validate;const l=this.map._requestManager.transformRequest(e,"Style");this._loadStyleRequest=new AbortController;const p=this._loadStyleRequest;s.j(l,this._loadStyleRequest).then(g=>{this._loadStyleRequest=null,this._load(g.data,r,a)}).catch(g=>{this._loadStyleRequest=null,g&&!p.signal.aborted&&this.fire(new s.k(g))})}loadJSON(e,r={},a){this.fire(new s.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,R.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,r.validate=r.validate!==!1,this._load(e,r,a)}).catch(()=>{})}loadEmpty(){this.fire(new s.l("dataloading",{dataType:"style"})),this._load(vh,{validate:!1})}_load(e,r,a){var l,p;const g=r.transformStyle?r.transformStyle(a,e):e;if(!r.validate||!Vo(this,s.y(g))){this._loaded=!0,this.stylesheet=g;for(const b in g.sources)this.addSource(b,g.sources[b],{validate:!1});g.sprite?this._loadSprite(g.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(g.glyphs),this._createLayers(),this.light=new bi(this.stylesheet.light),this._setProjectionInternal(((l=this.stylesheet.projection)===null||l===void 0?void 0:l.type)||"mercator"),this.sky=new en(this.stylesheet.sky),this.map.setTerrain((p=this.stylesheet.terrain)!==null&&p!==void 0?p:null),this.fire(new s.l("data",{dataType:"style"})),this.fire(new s.l("style.load"))}}_createLayers(){const e=s.bz(this.stylesheet.layers);this.dispatcher.broadcast("SL",e),this._order=e.map(r=>r.id),this._layers={},this._serializedLayers=null;for(const r of e){const a=s.bA(r);a.setEventedParent(this,{layer:{id:r.id}}),this._layers[r.id]=a}}_loadSprite(e,r=!1,a=void 0){let l;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(p,g,b,A){return s._(this,void 0,void 0,function*(){const I=Ce(p),z=b>1?"@2x":"",N={},O={};for(const{id:Z,url:J}of I){const se=g.transformRequest(Ve(J,z,".json"),"SpriteJSON");N[Z]=s.j(se,A);const ne=g.transformRequest(Ve(J,z,".png"),"SpriteImage");O[Z]=te.getImage(ne,A)}return yield Promise.all([...Object.values(N),...Object.values(O)]),function(Z,J){return s._(this,void 0,void 0,function*(){const se={};for(const ne in Z){se[ne]={};const oe=R.getImageCanvasContext((yield J[ne]).data),ue=(yield Z[ne]).data;for(const me in ue){const{width:fe,height:ge,x:xe,y:_e,sdf:Ee,pixelRatio:Fe,stretchX:Le,stretchY:Re,content:De,textFitWidth:Ye,textFitHeight:Qe}=ue[me];se[ne][me]={data:null,pixelRatio:Fe,sdf:Ee,stretchX:Le,stretchY:Re,content:De,textFitWidth:Ye,textFitHeight:Qe,spriteData:{width:fe,height:ge,x:xe,y:_e,context:oe}}}}return se})}(N,O)})}(e,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(p=>{if(this._spriteRequest=null,p)for(const g in p){this._spritesImagesIds[g]=[];const b=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter(A=>!(A in p)):[];for(const A of b)this.imageManager.removeImage(A),this._changedImages[A]=!0;for(const A in p[g]){const I=g==="default"?A:`${g}:${A}`;this._spritesImagesIds[g].push(I),I in this.imageManager.images?this.imageManager.updateImage(I,p[g][A],!1):this.imageManager.addImage(I,p[g][A]),r&&(this._changedImages[I]=!0)}}}).catch(p=>{this._spriteRequest=null,l=p,this.fire(new s.k(l))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),r&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"})),a&&a(l)})}_unloadSprite(){for(const e of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(e),this._changedImages[e]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}_validateLayer(e){const r=this.sourceCaches[e.source];if(!r)return;const a=e.sourceLayer;if(!a)return;const l=r.getSource();(l.type==="geojson"||l.vectorLayerIds&&l.vectorLayerIds.indexOf(a)===-1)&&this.fire(new s.k(new Error(`Source layer "${a}" does not exist on source "${l.id}" as specified by style layer "${e.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const e in this.sourceCaches)if(!this.sourceCaches[e].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(e,r=!1){const a=this._serializedAllLayers();if(!e||e.length===0)return Object.values(r?s.bB(a):a);const l=[];for(const p of e)if(a[p]){const g=r?s.bB(a[p]):a[p];l.push(g)}return l}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};const r=Object.keys(this._layers);for(const a of r){const l=this._layers[a];l.type!=="custom"&&(e[a]=l.serialize())}return e}hasTransitions(){var e,r,a;if(!((e=this.light)===null||e===void 0)&&e.hasTransition()||!((r=this.sky)===null||r===void 0)&&r.hasTransition()||!((a=this.projection)===null||a===void 0)&&a.hasTransition())return!0;for(const l in this.sourceCaches)if(this.sourceCaches[l].hasTransition())return!0;for(const l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(e){if(!this._loaded)return;const r=this._changed;if(r){const l=Object.keys(this._updatedLayers),p=Object.keys(this._removedLayers);(l.length||p.length)&&this._updateWorkerLayers(l,p);for(const g in this._updatedSources){const b=this._updatedSources[g];if(b==="reload")this._reloadSource(g);else{if(b!=="clear")throw new Error(`Invalid action ${b}`);this._clearSource(g)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const g in this._updatedPaintProps)this._layers[g].updateTransitions(e);this.light.updateTransitions(e),this.sky.updateTransitions(e),this._resetUpdates()}const a={};for(const l in this.sourceCaches){const p=this.sourceCaches[l];a[l]=p.used,p.used=!1}for(const l of this._order){const p=this._layers[l];p.recalculate(e,this._availableImages),!p.isHidden(e.zoom)&&p.source&&(this.sourceCaches[p.source].used=!0)}for(const l in a){const p=this.sourceCaches[l];!!a[l]!=!!p.used&&p.fire(new s.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:l}))}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,r&&this.fire(new s.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const r in this.sourceCaches)this.sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(e,r){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(e,!1),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(e,r={}){var a;this._checkLoaded();const l=this.serialize();if(e=r.transformStyle?r.transformStyle(l,e):e,((a=r.validate)===null||a===void 0||a)&&Vo(this,s.y(e)))return!1;(e=s.bB(e)).layers=s.bz(e.layers);const p=s.bC(l,e),g=this._getOperationsToPerform(p);if(g.unimplemented.length>0)throw new Error(`Unimplemented: ${g.unimplemented.join(", ")}.`);if(g.operations.length===0)return!1;for(const b of g.operations)b();return this.stylesheet=e,this._serializedLayers=null,!0}_getOperationsToPerform(e){const r=[],a=[];for(const l of e)switch(l.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":r.push(()=>this.addLayer.apply(this,l.args));break;case"removeLayer":r.push(()=>this.removeLayer.apply(this,l.args));break;case"setPaintProperty":r.push(()=>this.setPaintProperty.apply(this,l.args));break;case"setLayoutProperty":r.push(()=>this.setLayoutProperty.apply(this,l.args));break;case"setFilter":r.push(()=>this.setFilter.apply(this,l.args));break;case"addSource":r.push(()=>this.addSource.apply(this,l.args));break;case"removeSource":r.push(()=>this.removeSource.apply(this,l.args));break;case"setLayerZoomRange":r.push(()=>this.setLayerZoomRange.apply(this,l.args));break;case"setLight":r.push(()=>this.setLight.apply(this,l.args));break;case"setGeoJSONSourceData":r.push(()=>this.setGeoJSONSourceData.apply(this,l.args));break;case"setGlyphs":r.push(()=>this.setGlyphs.apply(this,l.args));break;case"setSprite":r.push(()=>this.setSprite.apply(this,l.args));break;case"setTerrain":r.push(()=>this.map.setTerrain.apply(this,l.args));break;case"setSky":r.push(()=>this.setSky.apply(this,l.args));break;case"setProjection":this.setProjection.apply(this,l.args);break;case"setTransition":r.push(()=>{});break;default:a.push(l.command)}return{operations:r,unimplemented:a}}addImage(e,r){if(this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" already exists.`)));this.imageManager.addImage(e,r),this._afterImageUpdated(e)}updateImage(e,r){this.imageManager.updateImage(e,r)}getImage(e){return this.imageManager.getImage(e)}removeImage(e){if(!this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e)}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,r,a={}){if(this._checkLoaded(),this.sourceCaches[e]!==void 0)throw new Error(`Source "${e}" already exists.`);if(!r.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(r).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(s.y.source,`sources.${e}`,r,null,a))return;this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);const l=this.sourceCaches[e]=new Se(e,r,this.dispatcher);l.style=this,l.setEventedParent(this,()=>({isSourceLoaded:l.loaded(),source:l.serialize(),sourceId:e})),l.onAdd(this.map),this._changed=!0}removeSource(e){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error("There is no source with this ID");for(const a in this._layers)if(this._layers[a].source===e)return this.fire(new s.k(new Error(`Source "${e}" cannot be removed while layer "${a}" is using it.`)));const r=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],r.fire(new s.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),r.setEventedParent(null),r.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(e,r){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error(`There is no source with this ID=${e}`);const a=this.sourceCaches[e].getSource();if(a.type!=="geojson")throw new Error(`geojsonSource.type is ${a.type}, which is !== 'geojson`);a.setData(r),this._changed=!0}getSource(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()}addLayer(e,r,a={}){this._checkLoaded();const l=e.id;if(this.getLayer(l))return void this.fire(new s.k(new Error(`Layer "${l}" already exists on this map.`)));let p;if(e.type==="custom"){if(Vo(this,s.bD(e)))return;p=s.bA(e)}else{if("source"in e&&typeof e.source=="object"&&(this.addSource(l,e.source),e=s.bB(e),e=s.e(e,{source:l})),this._validate(s.y.layer,`layers.${l}`,e,{arrayIndex:-1},a))return;p=s.bA(e),this._validateLayer(p),p.setEventedParent(this,{layer:{id:l}})}const g=r?this._order.indexOf(r):this._order.length;if(r&&g===-1)this.fire(new s.k(new Error(`Cannot add layer "${l}" before non-existing layer "${r}".`)));else{if(this._order.splice(g,0,l),this._layerOrderChanged=!0,this._layers[l]=p,this._removedLayers[l]&&p.source&&p.type!=="custom"){const b=this._removedLayers[l];delete this._removedLayers[l],b.type!==p.type?this._updatedSources[p.source]="clear":(this._updatedSources[p.source]="reload",this.sourceCaches[p.source].pause())}this._updateLayer(p),p.onAdd&&p.onAdd(this.map)}}moveLayer(e,r){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new s.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===r)return;const a=this._order.indexOf(e);this._order.splice(a,1);const l=r?this._order.indexOf(r):this._order.length;r&&l===-1?this.fire(new s.k(new Error(`Cannot move layer "${e}" before non-existing layer "${r}".`))):(this._order.splice(l,0,e),this._layerOrderChanged=!0)}removeLayer(e){this._checkLoaded();const r=this._layers[e];if(!r)return void this.fire(new s.k(new Error(`Cannot remove non-existing layer "${e}".`)));r.setEventedParent(null);const a=this._order.indexOf(e);this._order.splice(a,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}getLayer(e){return this._layers[e]}getLayersOrder(){return[...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,r,a){this._checkLoaded();const l=this.getLayer(e);l?l.minzoom===r&&l.maxzoom===a||(r!=null&&(l.minzoom=r),a!=null&&(l.maxzoom=a),this._updateLayer(l)):this.fire(new s.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`)))}setFilter(e,r,a={}){this._checkLoaded();const l=this.getLayer(e);if(l){if(!s.bE(l.filter,r))return r==null?(l.filter=void 0,void this._updateLayer(l)):void(this._validate(s.y.filter,`layers.${l.id}.filter`,r,null,a)||(l.filter=s.bB(r),this._updateLayer(l)))}else this.fire(new s.k(new Error(`Cannot filter non-existing layer "${e}".`)))}getFilter(e){return s.bB(this.getLayer(e).filter)}setLayoutProperty(e,r,a,l={}){this._checkLoaded();const p=this.getLayer(e);p?s.bE(p.getLayoutProperty(r),a)||(p.setLayoutProperty(r,a,l),this._updateLayer(p)):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getLayoutProperty(e,r){const a=this.getLayer(e);if(a)return a.getLayoutProperty(r);this.fire(new s.k(new Error(`Cannot get style of non-existing layer "${e}".`)))}setPaintProperty(e,r,a,l={}){this._checkLoaded();const p=this.getLayer(e);p?s.bE(p.getPaintProperty(r),a)||(p.setPaintProperty(r,a,l)&&this._updateLayer(p),this._changed=!0,this._updatedPaintProps[e]=!0,this._serializedLayers=null):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getPaintProperty(e,r){return this.getLayer(e).getPaintProperty(r)}setFeatureState(e,r){this._checkLoaded();const a=e.source,l=e.sourceLayer,p=this.sourceCaches[a];if(p===void 0)return void this.fire(new s.k(new Error(`The source '${a}' does not exist in the map's style.`)));const g=p.getSource().type;g==="geojson"&&l?this.fire(new s.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):g!=="vector"||l?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),p.setFeatureState(l,e.id,r)):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(e,r){this._checkLoaded();const a=e.source,l=this.sourceCaches[a];if(l===void 0)return void this.fire(new s.k(new Error(`The source '${a}' does not exist in the map's style.`)));const p=l.getSource().type,g=p==="vector"?e.sourceLayer:void 0;p!=="vector"||g?r&&typeof e.id!="string"&&typeof e.id!="number"?this.fire(new s.k(new Error("A feature id is required to remove its specific state property."))):l.removeFeatureState(g,e.id,r):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(e){this._checkLoaded();const r=e.source,a=e.sourceLayer,l=this.sourceCaches[r];if(l!==void 0)return l.getSource().type!=="vector"||a?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),l.getFeatureState(a,e.id)):void this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new s.k(new Error(`The source '${r}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const e=s.bF(this.sourceCaches,p=>p.serialize()),r=this._serializeByIds(this._order,!0),a=this.map.getTerrain()||void 0,l=this.stylesheet;return s.bG({version:l.version,name:l.name,metadata:l.metadata,light:l.light,sky:l.sky,center:l.center,zoom:l.zoom,bearing:l.bearing,pitch:l.pitch,sprite:l.sprite,glyphs:l.glyphs,transition:l.transition,projection:l.projection,sources:e,layers:r,terrain:a},p=>p!==void 0)}_updateLayer(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&this.sourceCaches[e.source].getSource().type!=="raster"&&(this._updatedSources[e.source]="reload",this.sourceCaches[e.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(e){const r=g=>this._layers[g].type==="fill-extrusion",a={},l=[];for(let g=this._order.length-1;g>=0;g--){const b=this._order[g];if(r(b)){a[b]=g;for(const A of e){const I=A[b];if(I)for(const z of I)l.push(z)}}}l.sort((g,b)=>b.intersectionZ-g.intersectionZ);const p=[];for(let g=this._order.length-1;g>=0;g--){const b=this._order[g];if(r(b))for(let A=l.length-1;A>=0;A--){const I=l[A].feature;if(a[I.layer.id]<g)break;p.push(I),l.pop()}else for(const A of e){const I=A[b];if(I)for(const z of I)p.push(z.feature)}}return p}queryRenderedFeatures(e,r,a){r&&r.filter&&this._validate(s.y.filter,"queryRenderedFeatures.filter",r.filter,null,r);const l={};if(r&&r.layers){if(!(Array.isArray(r.layers)||r.layers instanceof Set))return this.fire(new s.k(new Error("parameters.layers must be an Array or a Set of strings"))),[];for(const I of r.layers){const z=this._layers[I];if(!z)return this.fire(new s.k(new Error(`The layer '${I}' does not exist in the map's style and cannot be queried for features.`))),[];l[z.source]=!0}}const p=[];r.availableImages=this._availableImages;const g=this._serializedAllLayers(),b=r.layers instanceof Set?r.layers:Array.isArray(r.layers)?new Set(r.layers):null,A=Object.assign(Object.assign({},r),{layers:b});for(const I in this.sourceCaches)r.layers&&!l[I]||p.push(Vn(this.sourceCaches[I],this._layers,g,e,A,a,this.map.terrain?(z,N,O)=>this.map.terrain.getElevation(z,N,O):void 0));return this.placement&&p.push(function(I,z,N,O,Z,J,se){const ne={},oe=J.queryRenderedSymbols(O),ue=[];for(const me of Object.keys(oe).map(Number))ue.push(se[me]);ue.sort(Kr);for(const me of ue){const fe=me.featureIndex.lookupSymbolFeatures(oe[me.bucketInstanceId],z,me.bucketIndex,me.sourceLayerIndex,Z.filter,Z.layers,Z.availableImages,I);for(const ge in fe){const xe=ne[ge]=ne[ge]||[],_e=fe[ge];_e.sort((Ee,Fe)=>{const Le=me.featureSortOrder;if(Le){const Re=Le.indexOf(Ee.featureIndex);return Le.indexOf(Fe.featureIndex)-Re}return Fe.featureIndex-Ee.featureIndex});for(const Ee of _e)xe.push(Ee)}}return function(me,fe,ge){for(const xe in me)for(const _e of me[xe])li(_e,ge[fe[xe].source]);return me}(ne,I,N)}(this._layers,g,this.sourceCaches,e,A,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(p)}querySourceFeatures(e,r){r&&r.filter&&this._validate(s.y.filter,"querySourceFeatures.filter",r.filter,null,r);const a=this.sourceCaches[e];return a?function(l,p){const g=l.getRenderableIds().map(I=>l.getTileByID(I)),b=[],A={};for(let I=0;I<g.length;I++){const z=g[I],N=z.tileID.canonical.key;A[N]||(A[N]=!0,z.querySourceFeatures(b,p))}return b}(a,r):[]}getLight(){return this.light.getLight()}setLight(e,r={}){this._checkLoaded();const a=this.light.getLight();let l=!1;for(const g in e)if(!s.bE(e[g],a[g])){l=!0;break}if(!l)return;const p={now:R.now(),transition:s.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,r),this.light.updateTransitions(p)}getProjection(){var e;return(e=this.stylesheet)===null||e===void 0?void 0:e.projection}setProjection(e){if(this._checkLoaded(),this.projection){if(this.projection.name===e.type)return;this.projection.destroy(),delete this.projection}this.stylesheet.projection=e,this._setProjectionInternal(e.type)}getSky(){var e;return(e=this.stylesheet)===null||e===void 0?void 0:e.sky}setSky(e,r={}){this._checkLoaded();const a=this.getSky();let l=!1;if(!e&&!a)return;if(e&&!a)l=!0;else if(!e&&a)l=!0;else for(const g in e)if(!s.bE(e[g],a[g])){l=!0;break}if(!l)return;const p={now:R.now(),transition:s.e({duration:300,delay:0},this.stylesheet.transition)};this.stylesheet.sky=e,this.sky.setSky(e,r),this.sky.updateTransitions(p)}_setProjectionInternal(e){const r=function(a){if(Array.isArray(a)){const l=new Do({type:a});return{projection:l,transform:new Xs,cameraHelper:new Kn(l)}}switch(a){case"mercator":return{projection:new Us,transform:new ds,cameraHelper:new Hs};case"globe":{const l=new Do({type:["interpolate",["linear"],["zoom"],11,"vertical-perspective",12,"mercator"]});return{projection:l,transform:new Xs,cameraHelper:new Kn(l)}}case"vertical-perspective":return{projection:new Zs,transform:new Zn,cameraHelper:new Di};default:return s.w(`Unknown projection name: ${a}. Falling back to mercator projection.`),{projection:new Us,transform:new ds,cameraHelper:new Hs}}}(e);this.projection=r.projection,this.map.migrateProjection(r.transform,r.cameraHelper);for(const a in this.sourceCaches)this.sourceCaches[a].reload()}_validate(e,r,a,l,p={}){return(!p||p.validate!==!1)&&Vo(this,e.call(s.y,s.e({key:r,style:this.serialize(),value:a,styleSpec:s.v},l)))}_remove(e=!0){this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._loadStyleRequest&&(this._loadStyleRequest.abort(),this._loadStyleRequest=null),this._spriteRequest&&(this._spriteRequest.abort(),this._spriteRequest=null),Li().off(Er,this._rtlPluginLoaded);for(const r in this._layers)this._layers[r].setEventedParent(null);for(const r in this.sourceCaches){const a=this.sourceCaches[r];a.setEventedParent(null),a.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),e&&this.dispatcher.broadcast("RM",void 0),this.dispatcher.remove(e)}_clearSource(e){this.sourceCaches[e].clearTiles()}_reloadSource(e){this.sourceCaches[e].resume(),this.sourceCaches[e].reload()}_updateSources(e){for(const r in this.sourceCaches)this.sourceCaches[r].update(e,this.map.terrain)}_generateCollisionBoxes(){for(const e in this.sourceCaches)this._reloadSource(e)}_updatePlacement(e,r,a,l,p=!1){let g=!1,b=!1;const A={};for(const I of this._order){const z=this._layers[I];if(z.type!=="symbol")continue;if(!A[z.source]){const O=this.sourceCaches[z.source];A[z.source]=O.getRenderableIds(!0).map(Z=>O.getTileByID(Z)).sort((Z,J)=>J.tileID.overscaledZ-Z.tileID.overscaledZ||(Z.tileID.isLessThan(J.tileID)?-1:1))}const N=this.crossTileSymbolIndex.addLayer(z,A[z.source],e.center.lng);g=g||N}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((p=p||this._layerOrderChanged||a===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(R.now(),e.zoom))&&(this.pauseablePlacement=new hc(e,this.map.terrain,this._order,p,r,a,l,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,A),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(R.now()),b=!0),g&&this.pauseablePlacement.placement.setStale()),b||g)for(const I of this._order){const z=this._layers[I];z.type==="symbol"&&this.placement.updateLayerOpacities(z,A[z.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(R.now())}_releaseSymbolFadeTiles(){for(const e in this.sourceCaches)this.sourceCaches[e].releaseSymbolFadeTiles()}getImages(e,r){return s._(this,void 0,void 0,function*(){const a=yield this.imageManager.getImages(r.icons);this._updateTilesForChangedImages();const l=this.sourceCaches[r.source];return l&&l.setDependencies(r.tileID.key,r.type,r.icons),a})}getGlyphs(e,r){return s._(this,void 0,void 0,function*(){const a=yield this.glyphManager.getGlyphs(r.stacks),l=this.sourceCaches[r.source];return l&&l.setDependencies(r.tileID.key,r.type,[""]),a})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,r={}){this._checkLoaded(),e&&this._validate(s.y.glyphs,"glyphs",e,null,r)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e))}addSprite(e,r,a={},l){this._checkLoaded();const p=[{id:e,url:r}],g=[...Ce(this.stylesheet.sprite),...p];this._validate(s.y.sprite,"sprite",g,null,a)||(this.stylesheet.sprite=g,this._loadSprite(p,!0,l))}removeSprite(e){this._checkLoaded();const r=Ce(this.stylesheet.sprite);if(r.find(a=>a.id===e)){if(this._spritesImagesIds[e])for(const a of this._spritesImagesIds[e])this.imageManager.removeImage(a),this._changedImages[a]=!0;r.splice(r.findIndex(a=>a.id===e),1),this.stylesheet.sprite=r.length>0?r:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}else this.fire(new s.k(new Error(`Sprite "${e}" doesn't exists on this map.`)))}getSprite(){return Ce(this.stylesheet.sprite)}setSprite(e,r={},a){this._checkLoaded(),e&&this._validate(s.y.sprite,"sprite",e,null,r)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,a):(this._unloadSprite(),a&&a(null)))}}var xh=s.aG([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class bh{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(e,r,a,l,p,g,b,A,I){this.context=e;let z=this.boundPaintVertexBuffers.length!==l.length;for(let N=0;!z&&N<l.length;N++)this.boundPaintVertexBuffers[N]!==l[N]&&(z=!0);!this.vao||this.boundProgram!==r||this.boundLayoutVertexBuffer!==a||z||this.boundIndexBuffer!==p||this.boundVertexOffset!==g||this.boundDynamicVertexBuffer!==b||this.boundDynamicVertexBuffer2!==A||this.boundDynamicVertexBuffer3!==I?this.freshBind(r,a,l,p,g,b,A,I):(e.bindVertexArray.set(this.vao),b&&b.bind(),p&&p.dynamicDraw&&p.bind(),A&&A.bind(),I&&I.bind())}freshBind(e,r,a,l,p,g,b,A){const I=e.numAttributes,z=this.context,N=z.gl;this.vao&&this.destroy(),this.vao=z.createVertexArray(),z.bindVertexArray.set(this.vao),this.boundProgram=e,this.boundLayoutVertexBuffer=r,this.boundPaintVertexBuffers=a,this.boundIndexBuffer=l,this.boundVertexOffset=p,this.boundDynamicVertexBuffer=g,this.boundDynamicVertexBuffer2=b,this.boundDynamicVertexBuffer3=A,r.enableAttributes(N,e);for(const O of a)O.enableAttributes(N,e);g&&g.enableAttributes(N,e),b&&b.enableAttributes(N,e),A&&A.enableAttributes(N,e),r.bind(),r.setVertexAttribPointers(N,e,p);for(const O of a)O.bind(),O.setVertexAttribPointers(N,e,p);g&&(g.bind(),g.setVertexAttribPointers(N,e,p)),l&&l.bind(),b&&(b.bind(),b.setVertexAttribPointers(N,e,p)),A&&(A.bind(),A.setVertexAttribPointers(N,e,p)),z.currentNumAttributes=I}destroy(){this.vao&&(this.context.deleteVertexArray(this.vao),this.vao=null)}}const wh=(u,e,r,a,l)=>({u_texture:0,u_ele_delta:u,u_fog_matrix:e,u_fog_color:r?r.properties.get("fog-color"):s.b7.white,u_fog_ground_blend:r?r.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:l?0:r?r.calculateFogBlendOpacity(a):0,u_horizon_color:r?r.properties.get("horizon-color"):s.b7.white,u_horizon_fog_blend:r?r.properties.get("horizon-fog-blend"):1,u_is_globe_mode:l?1:0}),Fo={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function gs(u){const e=[];for(let r=0;r<u.length;r++){if(u[r]===null)continue;const a=u[r].split(" ");e.push(a.pop())}return e}class Oo{constructor(e,r,a,l,p,g,b,A,I=[]){const z=e.gl;this.program=z.createProgram();const N=gs(r.staticAttributes),O=a?a.getBinderAttributes():[],Z=N.concat(O),J=ci.prelude.staticUniforms?gs(ci.prelude.staticUniforms):[],se=b.staticUniforms?gs(b.staticUniforms):[],ne=r.staticUniforms?gs(r.staticUniforms):[],oe=a?a.getBinderUniforms():[],ue=J.concat(se).concat(ne).concat(oe),me=[];for(const Le of ue)me.indexOf(Le)<0&&me.push(Le);const fe=a?a.defines():[];ri(z)&&fe.unshift("#version 300 es"),p&&fe.push("#define OVERDRAW_INSPECTOR;"),g&&fe.push("#define TERRAIN3D;"),A&&fe.push(A),I&&fe.push(...I);let ge=fe.concat(ci.prelude.fragmentSource,b.fragmentSource,r.fragmentSource).join(`
798
+ `),xe=fe.concat(ci.prelude.vertexSource,b.vertexSource,r.vertexSource).join(`
799
+ `);ri(z)||(ge=function(Le){return Le.replace(/\bin\s/g,"varying ").replace("out highp vec4 fragColor;","").replace(/fragColor/g,"gl_FragColor").replace(/texture\(/g,"texture2D(")}(ge),xe=function(Le){return Le.replace(/\bin\s/g,"attribute ").replace(/\bout\s/g,"varying ").replace(/texture\(/g,"texture2D(")}(xe));const _e=z.createShader(z.FRAGMENT_SHADER);if(z.isContextLost())return void(this.failedToCreate=!0);if(z.shaderSource(_e,ge),z.compileShader(_e),!z.getShaderParameter(_e,z.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${z.getShaderInfoLog(_e)}`);z.attachShader(this.program,_e);const Ee=z.createShader(z.VERTEX_SHADER);if(z.isContextLost())return void(this.failedToCreate=!0);if(z.shaderSource(Ee,xe),z.compileShader(Ee),!z.getShaderParameter(Ee,z.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${z.getShaderInfoLog(Ee)}`);z.attachShader(this.program,Ee),this.attributes={};const Fe={};this.numAttributes=Z.length;for(let Le=0;Le<this.numAttributes;Le++)Z[Le]&&(z.bindAttribLocation(this.program,Le,Z[Le]),this.attributes[Z[Le]]=Le);if(z.linkProgram(this.program),!z.getProgramParameter(this.program,z.LINK_STATUS))throw new Error(`Program failed to link: ${z.getProgramInfoLog(this.program)}`);z.deleteShader(Ee),z.deleteShader(_e);for(let Le=0;Le<me.length;Le++){const Re=me[Le];if(Re&&!Fe[Re]){const De=z.getUniformLocation(this.program,Re);De&&(Fe[Re]=De)}}this.fixedUniforms=l(e,Fe),this.terrainUniforms=((Le,Re)=>({u_depth:new s.bH(Le,Re.u_depth),u_terrain:new s.bH(Le,Re.u_terrain),u_terrain_dim:new s.b8(Le,Re.u_terrain_dim),u_terrain_matrix:new s.bJ(Le,Re.u_terrain_matrix),u_terrain_unpack:new s.bK(Le,Re.u_terrain_unpack),u_terrain_exaggeration:new s.b8(Le,Re.u_terrain_exaggeration)}))(e,Fe),this.projectionUniforms=((Le,Re)=>({u_projection_matrix:new s.bJ(Le,Re.u_projection_matrix),u_projection_tile_mercator_coords:new s.bK(Le,Re.u_projection_tile_mercator_coords),u_projection_clipping_plane:new s.bK(Le,Re.u_projection_clipping_plane),u_projection_transition:new s.b8(Le,Re.u_projection_transition),u_projection_fallback_matrix:new s.bJ(Le,Re.u_projection_fallback_matrix)}))(e,Fe),this.binderUniforms=a?a.getUniforms(e,Fe):[]}draw(e,r,a,l,p,g,b,A,I,z,N,O,Z,J,se,ne,oe,ue,me){const fe=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(a),e.setStencilMode(l),e.setColorMode(p),e.setCullFace(g),A){e.activeTexture.set(fe.TEXTURE2),fe.bindTexture(fe.TEXTURE_2D,A.depthTexture),e.activeTexture.set(fe.TEXTURE3),fe.bindTexture(fe.TEXTURE_2D,A.texture);for(const xe in this.terrainUniforms)this.terrainUniforms[xe].set(A[xe])}if(I)for(const xe in I)this.projectionUniforms[Fo[xe]].set(I[xe]);if(b)for(const xe in this.fixedUniforms)this.fixedUniforms[xe].set(b[xe]);ne&&ne.setUniforms(e,this.binderUniforms,J,{zoom:se});let ge=0;switch(r){case fe.LINES:ge=2;break;case fe.TRIANGLES:ge=3;break;case fe.LINE_STRIP:ge=1}for(const xe of Z.get()){const _e=xe.vaos||(xe.vaos={});(_e[z]||(_e[z]=new bh)).bind(e,this,N,ne?ne.getPaintVertexBuffers():[],O,xe.vertexOffset,oe,ue,me),fe.drawElements(r,xe.primitiveLength*ge,fe.UNSIGNED_SHORT,xe.primitiveOffset*ge*2)}}}function No(u,e,r){const a=1/s.az(r,1,e.transform.tileZoom),l=Math.pow(2,r.tileID.overscaledZ),p=r.tileSize*Math.pow(2,e.transform.tileZoom)/l,g=p*(r.tileID.canonical.x+r.tileID.wrap*l),b=p*r.tileID.canonical.y;return{u_image:0,u_texsize:r.imageAtlasTexture.size,u_scale:[a,u.fromScale,u.toScale],u_fade:u.t,u_pixel_coord_upper:[g>>16,b>>16],u_pixel_coord_lower:[65535&g,65535&b]}}const qo=(u,e,r,a)=>{const l=u.style.light,p=l.properties.get("position"),g=[p.x,p.y,p.z],b=s.bN();l.properties.get("anchor")==="viewport"&&s.bO(b,u.transform.bearingInRadians),s.bP(g,g,b);const A=u.transform.transformLightDirection(g),I=l.properties.get("color");return{u_lightpos:g,u_lightpos_globe:A,u_lightintensity:l.properties.get("intensity"),u_lightcolor:[I.r,I.g,I.b],u_vertical_gradient:+e,u_opacity:r,u_fill_translate:a}},nn=(u,e,r,a,l,p,g)=>s.e(qo(u,e,r,a),No(p,u,g),{u_height_factor:-Math.pow(2,l.overscaledZ)/g.tileSize/8}),dc=(u,e,r,a)=>s.e(No(e,u,r),{u_fill_translate:a}),Ga=(u,e)=>({u_world:u,u_fill_translate:e}),Qs=(u,e,r,a,l)=>s.e(dc(u,e,r,l),{u_world:a}),Ys=(u,e,r,a,l)=>{const p=u.transform;let g,b,A=0;if(r.paint.get("circle-pitch-alignment")==="map"){const I=s.az(e,1,p.zoom);g=!0,b=[I,I],A=I/(s.Z*Math.pow(2,e.tileID.overscaledZ))*2*Math.PI*l}else g=!1,b=p.pixelsToGLUnits;return{u_camera_to_center_distance:p.cameraToCenterDistance,u_scale_with_map:+(r.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+g,u_device_pixel_ratio:u.pixelRatio,u_extrude_scale:b,u_globe_extrude_scale:A,u_translate:a}},Sh=u=>({u_pixel_extrude_scale:[1/u.width,1/u.height]}),Uo=u=>({u_viewport_size:[u.width,u.height]}),fc=(u,e=1)=>({u_color:u,u_overlay:0,u_overlay_scale:e}),Gn=(u,e,r,a)=>{const l=s.az(u,1,e)/(s.Z*Math.pow(2,u.tileID.overscaledZ))*2*Math.PI*a;return{u_extrude_scale:s.az(u,1,e),u_intensity:r,u_globe_extrude_scale:l}},mc=(u,e,r,a)=>{const l=s.K();s.bQ(l,0,u.width,u.height,0,0,1);const p=u.context.gl;return{u_matrix:l,u_world:[p.drawingBufferWidth,p.drawingBufferHeight],u_image:r,u_color_ramp:a,u_opacity:e.paint.get("heatmap-opacity")}},gc=(u,e,r)=>{const a=r.paint.get("hillshade-accent-color");let l;switch(r.paint.get("hillshade-method")){case"basic":l=4;break;case"combined":l=1;break;case"igor":l=2;break;case"multidirectional":l=3;break;default:l=0}const p=r.getIlluminationProperties();for(let g=0;g<p.directionRadians.length;g++)r.paint.get("hillshade-illumination-anchor")==="viewport"&&(p.directionRadians[g]+=u.transform.bearingInRadians);return{u_image:0,u_latrange:yc(0,e.tileID),u_exaggeration:r.paint.get("hillshade-exaggeration"),u_altitudes:p.altitudeRadians,u_azimuths:p.directionRadians,u_accent:a,u_method:l,u_highlights:p.highlightColor,u_shadows:p.shadowColor}},Ah=(u,e)=>{const r=e.stride,a=s.K();return s.bQ(a,0,s.Z,-8192,0,0,1),s.L(a,a,[0,-8192,0]),{u_matrix:a,u_image:1,u_dimension:[r,r],u_zoom:u.overscaledZ,u_unpack:e.getUnpackVector()}};function yc(u,e){const r=Math.pow(2,e.canonical.z),a=e.canonical.y;return[new s.$(0,a/r).toLngLat().lat,new s.$(0,(a+1)/r).toLngLat().lat]}const $s=(u,e,r,a)=>{const l=u.transform;return{u_translation:kn(u,e,r),u_ratio:a/s.az(e,1,l.zoom),u_device_pixel_ratio:u.pixelRatio,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]]}},_c=(u,e,r,a,l)=>s.e($s(u,e,r,a),{u_image:0,u_image_height:l}),vc=(u,e,r,a,l)=>{const p=u.transform,g=Ja(e,p);return{u_translation:kn(u,e,r),u_texsize:e.imageAtlasTexture.size,u_ratio:a/s.az(e,1,p.zoom),u_device_pixel_ratio:u.pixelRatio,u_image:0,u_scale:[g,l.fromScale,l.toScale],u_fade:l.t,u_units_to_pixels:[1/p.pixelsToGLUnits[0],1/p.pixelsToGLUnits[1]]}},xc=(u,e,r,a,l,p)=>{const g=u.lineAtlas,b=Ja(e,u.transform),A=r.layout.get("line-cap")==="round",I=g.getDash(l.from,A),z=g.getDash(l.to,A),N=I.width*p.fromScale,O=z.width*p.toScale;return s.e($s(u,e,r,a),{u_patternscale_a:[b/N,-I.height/2],u_patternscale_b:[b/O,-z.height/2],u_sdfgamma:g.width/(256*Math.min(N,O)*u.pixelRatio)/2,u_image:0,u_tex_y_a:I.y,u_tex_y_b:z.y,u_mix:p.t})};function Ja(u,e){return 1/s.az(u,1,e.tileZoom)}function kn(u,e,r){return s.aA(u.transform,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}const bc=(u,e,r,a,l)=>{return{u_tl_parent:u,u_scale_parent:e,u_buffer_scale:1,u_fade_t:r.mix,u_opacity:r.opacity*a.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:a.paint.get("raster-brightness-min"),u_brightness_high:a.paint.get("raster-brightness-max"),u_saturation_factor:(g=a.paint.get("raster-saturation"),g>0?1-1/(1.001-g):-g),u_contrast_factor:(p=a.paint.get("raster-contrast"),p>0?1/(1-p):1+p),u_spin_weights:wc(a.paint.get("raster-hue-rotate")),u_coords_top:[l[0].x,l[0].y,l[1].x,l[1].y],u_coords_bottom:[l[3].x,l[3].y,l[2].x,l[2].y]};var p,g};function wc(u){u*=Math.PI/180;const e=Math.sin(u),r=Math.cos(u);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}const ys=(u,e,r,a,l,p,g,b,A,I,z,N,O)=>{const Z=g.transform;return{u_is_size_zoom_constant:+(u==="constant"||u==="source"),u_is_size_feature_constant:+(u==="constant"||u==="camera"),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:Z.cameraToCenterDistance,u_pitch:Z.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:Z.width/Z.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_label_plane_matrix:b,u_coord_matrix:A,u_is_text:+z,u_pitch_with_map:+a,u_is_along_line:l,u_is_variable_anchor:p,u_texsize:N,u_texture:0,u_translation:I,u_pitched_scale:O}},Sc=(u,e,r,a,l,p,g,b,A,I,z,N,O,Z)=>{const J=g.transform;return s.e(ys(u,e,r,a,l,p,g,b,A,I,z,N,Z),{u_gamma_scale:a?Math.cos(J.pitch*Math.PI/180)*J.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:1})},jo=(u,e,r,a,l,p,g,b,A,I,z,N,O)=>s.e(Sc(u,e,r,a,l,p,g,b,A,I,!0,z,0,O),{u_texsize_icon:N,u_texture_icon:1}),kh=(u,e)=>({u_opacity:u,u_color:e}),Th=(u,e,r,a,l)=>s.e(function(p,g,b,A){const I=b.imageManager.getPattern(p.from.toString()),z=b.imageManager.getPattern(p.to.toString()),{width:N,height:O}=b.imageManager.getPixelSize(),Z=Math.pow(2,A.tileID.overscaledZ),J=A.tileSize*Math.pow(2,b.transform.tileZoom)/Z,se=J*(A.tileID.canonical.x+A.tileID.wrap*Z),ne=J*A.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:I.tl,u_pattern_br_a:I.br,u_pattern_tl_b:z.tl,u_pattern_br_b:z.br,u_texsize:[N,O],u_mix:g.t,u_pattern_size_a:I.displaySize,u_pattern_size_b:z.displaySize,u_scale_a:g.fromScale,u_scale_b:g.toScale,u_tile_units_to_pixels:1/s.az(A,1,b.transform.tileZoom),u_pixel_coord_upper:[se>>16,ne>>16],u_pixel_coord_lower:[65535&se,65535&ne]}}(r,l,e,a),{u_opacity:u}),Xa=(u,e)=>{},Ac={fillExtrusion:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillExtrusionPattern:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_height_factor:new s.b8(u,e.u_height_factor),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),fill:(u,e)=>({u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillPattern:(u,e)=>({u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutline:(u,e)=>({u_world:new s.bM(u,e.u_world),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutlinePattern:(u,e)=>({u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),circle:(u,e)=>({u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_scale_with_map:new s.bH(u,e.u_scale_with_map),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_extrude_scale:new s.bM(u,e.u_extrude_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale),u_translate:new s.bM(u,e.u_translate)}),collisionBox:(u,e)=>({u_pixel_extrude_scale:new s.bM(u,e.u_pixel_extrude_scale)}),collisionCircle:(u,e)=>({u_viewport_size:new s.bM(u,e.u_viewport_size)}),debug:(u,e)=>({u_color:new s.bI(u,e.u_color),u_overlay:new s.bH(u,e.u_overlay),u_overlay_scale:new s.b8(u,e.u_overlay_scale)}),depth:Xa,clippingMask:Xa,heatmap:(u,e)=>({u_extrude_scale:new s.b8(u,e.u_extrude_scale),u_intensity:new s.b8(u,e.u_intensity),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale)}),heatmapTexture:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_color_ramp:new s.bH(u,e.u_color_ramp),u_opacity:new s.b8(u,e.u_opacity)}),hillshade:(u,e)=>({u_image:new s.bH(u,e.u_image),u_latrange:new s.bM(u,e.u_latrange),u_exaggeration:new s.b8(u,e.u_exaggeration),u_altitudes:new s.bS(u,e.u_altitudes),u_azimuths:new s.bS(u,e.u_azimuths),u_accent:new s.bI(u,e.u_accent),u_method:new s.bH(u,e.u_method),u_shadows:new s.bR(u,e.u_shadows),u_highlights:new s.bR(u,e.u_highlights)}),hillshadePrepare:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_image:new s.bH(u,e.u_image),u_dimension:new s.bM(u,e.u_dimension),u_zoom:new s.b8(u,e.u_zoom),u_unpack:new s.bK(u,e.u_unpack)}),line:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels)}),lineGradient:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_image:new s.bH(u,e.u_image),u_image_height:new s.b8(u,e.u_image_height)}),linePattern:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_texsize:new s.bM(u,e.u_texsize),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_image:new s.bH(u,e.u_image),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),lineSDF:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_patternscale_a:new s.bM(u,e.u_patternscale_a),u_patternscale_b:new s.bM(u,e.u_patternscale_b),u_sdfgamma:new s.b8(u,e.u_sdfgamma),u_image:new s.bH(u,e.u_image),u_tex_y_a:new s.b8(u,e.u_tex_y_a),u_tex_y_b:new s.b8(u,e.u_tex_y_b),u_mix:new s.b8(u,e.u_mix)}),raster:(u,e)=>({u_tl_parent:new s.bM(u,e.u_tl_parent),u_scale_parent:new s.b8(u,e.u_scale_parent),u_buffer_scale:new s.b8(u,e.u_buffer_scale),u_fade_t:new s.b8(u,e.u_fade_t),u_opacity:new s.b8(u,e.u_opacity),u_image0:new s.bH(u,e.u_image0),u_image1:new s.bH(u,e.u_image1),u_brightness_low:new s.b8(u,e.u_brightness_low),u_brightness_high:new s.b8(u,e.u_brightness_high),u_saturation_factor:new s.b8(u,e.u_saturation_factor),u_contrast_factor:new s.b8(u,e.u_contrast_factor),u_spin_weights:new s.bL(u,e.u_spin_weights),u_coords_top:new s.bK(u,e.u_coords_top),u_coords_bottom:new s.bK(u,e.u_coords_bottom)}),symbolIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolSDF:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolTextAndIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texsize_icon:new s.bM(u,e.u_texsize_icon),u_texture:new s.bH(u,e.u_texture),u_texture_icon:new s.bH(u,e.u_texture_icon),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),background:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_color:new s.bI(u,e.u_color)}),backgroundPattern:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_image:new s.bH(u,e.u_image),u_pattern_tl_a:new s.bM(u,e.u_pattern_tl_a),u_pattern_br_a:new s.bM(u,e.u_pattern_br_a),u_pattern_tl_b:new s.bM(u,e.u_pattern_tl_b),u_pattern_br_b:new s.bM(u,e.u_pattern_br_b),u_texsize:new s.bM(u,e.u_texsize),u_mix:new s.b8(u,e.u_mix),u_pattern_size_a:new s.bM(u,e.u_pattern_size_a),u_pattern_size_b:new s.bM(u,e.u_pattern_size_b),u_scale_a:new s.b8(u,e.u_scale_a),u_scale_b:new s.b8(u,e.u_scale_b),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_tile_units_to_pixels:new s.b8(u,e.u_tile_units_to_pixels)}),terrain:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_ele_delta:new s.b8(u,e.u_ele_delta),u_fog_matrix:new s.bJ(u,e.u_fog_matrix),u_fog_color:new s.bI(u,e.u_fog_color),u_fog_ground_blend:new s.b8(u,e.u_fog_ground_blend),u_fog_ground_blend_opacity:new s.b8(u,e.u_fog_ground_blend_opacity),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon_fog_blend:new s.b8(u,e.u_horizon_fog_blend),u_is_globe_mode:new s.b8(u,e.u_is_globe_mode)}),terrainDepth:(u,e)=>({u_ele_delta:new s.b8(u,e.u_ele_delta)}),terrainCoords:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_terrain_coords_id:new s.b8(u,e.u_terrain_coords_id),u_ele_delta:new s.b8(u,e.u_ele_delta)}),projectionErrorMeasurement:(u,e)=>({u_input:new s.b8(u,e.u_input),u_output_expected:new s.b8(u,e.u_output_expected)}),atmosphere:(u,e)=>({u_sun_pos:new s.bL(u,e.u_sun_pos),u_atmosphere_blend:new s.b8(u,e.u_atmosphere_blend),u_globe_position:new s.bL(u,e.u_globe_position),u_globe_radius:new s.b8(u,e.u_globe_radius),u_inv_proj_matrix:new s.bJ(u,e.u_inv_proj_matrix)}),sky:(u,e)=>({u_sky_color:new s.bI(u,e.u_sky_color),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon:new s.bM(u,e.u_horizon),u_horizon_normal:new s.bM(u,e.u_horizon_normal),u_sky_horizon_blend:new s.b8(u,e.u_sky_horizon_blend),u_sky_blend:new s.b8(u,e.u_sky_blend)})};class kc{constructor(e,r,a){this.context=e;const l=e.gl;this.buffer=l.createBuffer(),this.dynamicDraw=!!a,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),l.bufferData(l.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?l.DYNAMIC_DRAW:l.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){const r=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const Qa={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Tc{constructor(e,r,a,l){this.length=r.length,this.attributes=a,this.itemSize=r.bytesPerElement,this.dynamicDraw=l,this.context=e;const p=e.gl;this.buffer=p.createBuffer(),e.bindVertexBuffer.set(this.buffer),p.bufferData(p.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?p.DYNAMIC_DRAW:p.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,r){for(let a=0;a<this.attributes.length;a++){const l=r.attributes[this.attributes[a].name];l!==void 0&&e.enableVertexAttribArray(l)}}setVertexAttribPointers(e,r,a){for(let l=0;l<this.attributes.length;l++){const p=this.attributes[l],g=r.attributes[p.name];g!==void 0&&e.vertexAttribPointer(g,p.components,e[Qa[p.type]],!1,this.itemSize,p.offset+this.itemSize*(a||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class qt{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default)}}class hn extends qt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class Ya extends qt{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1)}}class $a extends qt{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1)}}class el extends qt{getDefault(){return[!0,!0,!0,!0]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class Cc extends qt{getDefault(){return!0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1)}}class tl extends qt{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1)}}class Jn extends qt{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(e){const r=this.current;(e.func!==r.func||e.ref!==r.ref||e.mask!==r.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1)}}class rl extends qt{getDefault(){const e=this.gl;return[e.KEEP,e.KEEP,e.KEEP]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1)}}class Ch extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.STENCIL_TEST):r.disable(r.STENCIL_TEST),this.current=e,this.dirty=!1}}class Eh extends qt{getDefault(){return[0,1]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1)}}class Ph extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.DEPTH_TEST):r.disable(r.DEPTH_TEST),this.current=e,this.dirty=!1}}class Ih extends qt{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1)}}class Ec extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.BLEND):r.disable(r.BLEND),this.current=e,this.dirty=!1}}class Mh extends qt{getDefault(){const e=this.gl;return[e.ONE,e.ZERO]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=!1)}}class Pc extends qt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class Ho extends qt{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquation(e),this.current=e,this.dirty=!1)}}class Wo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.CULL_FACE):r.disable(r.CULL_FACE),this.current=e,this.dirty=!1}}class Zo extends qt{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1)}}class il extends qt{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1)}}class Xn extends qt{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1)}}class Ko extends qt{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1)}}class _s extends qt{getDefault(){const e=this.gl;return[0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class zi extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindFramebuffer(r.FRAMEBUFFER,e),this.current=e,this.dirty=!1}}class Ic extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindRenderbuffer(r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Mc extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindTexture(r.TEXTURE_2D,e),this.current=e,this.dirty=!1}}class nl extends qt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindBuffer(r.ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class Qn extends qt{getDefault(){return null}set(e){const r=this.gl;r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class Go extends qt{getDefault(){return null}set(e){var r;if(e===this.current&&!this.dirty)return;const a=this.gl;ri(a)?a.bindVertexArray(e):(r=a.getExtension("OES_vertex_array_object"))===null||r===void 0||r.bindVertexArrayOES(e),this.current=e,this.dirty=!1}}class Jo extends qt{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1}}class eo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1}}class Xo extends qt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1}}class Qo extends qt{constructor(e,r){super(e),this.context=e,this.parent=r}getDefault(){return null}}class vs extends Qo{setDirty(){this.dirty=!0}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),this.current=e,this.dirty=!1}}class xs extends Qo{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Lc extends Qo{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}const Yo="Framebuffer is not complete";class Lt{constructor(e,r,a,l,p){this.context=e,this.width=r,this.height=a;const g=e.gl,b=this.framebuffer=g.createFramebuffer();if(this.colorAttachment=new vs(e,b),l)this.depthAttachment=p?new Lc(e,b):new xs(e,b);else if(p)throw new Error("Stencil cannot be set without depth");if(g.checkFramebufferStatus(g.FRAMEBUFFER)!==g.FRAMEBUFFER_COMPLETE)throw new Error(Yo)}destroy(){const e=this.context.gl,r=this.colorAttachment.get();if(r&&e.deleteTexture(r),this.depthAttachment){const a=this.depthAttachment.get();a&&e.deleteRenderbuffer(a)}e.deleteFramebuffer(this.framebuffer)}}class $o{constructor(e){var r,a;if(this.gl=e,this.clearColor=new hn(this),this.clearDepth=new Ya(this),this.clearStencil=new $a(this),this.colorMask=new el(this),this.depthMask=new Cc(this),this.stencilMask=new tl(this),this.stencilFunc=new Jn(this),this.stencilOp=new rl(this),this.stencilTest=new Ch(this),this.depthRange=new Eh(this),this.depthTest=new Ph(this),this.depthFunc=new Ih(this),this.blend=new Ec(this),this.blendFunc=new Mh(this),this.blendColor=new Pc(this),this.blendEquation=new Ho(this),this.cullFace=new Wo(this),this.cullFaceSide=new Zo(this),this.frontFace=new il(this),this.program=new Xn(this),this.activeTexture=new Ko(this),this.viewport=new _s(this),this.bindFramebuffer=new zi(this),this.bindRenderbuffer=new Ic(this),this.bindTexture=new Mc(this),this.bindVertexBuffer=new nl(this),this.bindElementBuffer=new Qn(this),this.bindVertexArray=new Go(this),this.pixelStoreUnpack=new Jo(this),this.pixelStoreUnpackPremultiplyAlpha=new eo(this),this.pixelStoreUnpackFlipY=new Xo(this),this.extTextureFilterAnisotropic=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),ri(e)){this.HALF_FLOAT=e.HALF_FLOAT;const l=e.getExtension("EXT_color_buffer_half_float");this.RGBA16F=(r=e.RGBA16F)!==null&&r!==void 0?r:l==null?void 0:l.RGBA16F_EXT,this.RGB16F=(a=e.RGB16F)!==null&&a!==void 0?a:l==null?void 0:l.RGB16F_EXT,e.getExtension("EXT_color_buffer_float")}else{e.getExtension("EXT_color_buffer_half_float"),e.getExtension("OES_texture_half_float_linear");const l=e.getExtension("OES_texture_half_float");this.HALF_FLOAT=l==null?void 0:l.HALF_FLOAT_OES}}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArray.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(e,r){return new kc(this,e,r)}createVertexBuffer(e,r,a){return new Tc(this,e,r,a)}createRenderbuffer(e,r,a){const l=this.gl,p=l.createRenderbuffer();return this.bindRenderbuffer.set(p),l.renderbufferStorage(l.RENDERBUFFER,e,r,a),this.bindRenderbuffer.set(null),p}createFramebuffer(e,r,a,l){return new Lt(this,e,r,a,l)}clear({color:e,depth:r,stencil:a}){const l=this.gl;let p=0;e&&(p|=l.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),r!==void 0&&(p|=l.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(r),this.depthMask.set(!0)),a!==void 0&&(p|=l.STENCIL_BUFFER_BIT,this.clearStencil.set(a),this.stencilMask.set(255)),l.clear(p)}setCullFace(e){e.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace))}setDepthMode(e){e.func!==this.gl.ALWAYS||e.mask?(this.depthTest.set(!0),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range)):this.depthTest.set(!1)}setStencilMode(e){e.test.func!==this.gl.ALWAYS||e.mask?(this.stencilTest.set(!0),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask})):this.stencilTest.set(!1)}setColorMode(e){s.bE(e.blendFunction,Jt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)}createVertexArray(){var e;return ri(this.gl)?this.gl.createVertexArray():(e=this.gl.getExtension("OES_vertex_array_object"))===null||e===void 0?void 0:e.createVertexArrayOES()}deleteVertexArray(e){var r;return ri(this.gl)?this.gl.deleteVertexArray(e):(r=this.gl.getExtension("OES_vertex_array_object"))===null||r===void 0?void 0:r.deleteVertexArrayOES(e)}unbindVAO(){this.bindVertexArray.set(null)}}let ea;function sl(u,e,r,a,l){const p=u.context,g=u.transform,b=p.gl,A=u.useProgram("collisionBox"),I=[];let z=0,N=0;for(let oe=0;oe<a.length;oe++){const ue=a[oe],me=e.getTile(ue).getBucket(r);if(!me)continue;const fe=l?me.textCollisionBox:me.iconCollisionBox,ge=me.collisionCircleArray;ge.length>0&&(I.push({circleArray:ge,circleOffset:N,coord:ue}),z+=ge.length/4,N=z),fe&&A.draw(p,b.LINES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,Sh(u.transform),u.style.map.terrain&&u.style.map.terrain.getTerrainData(ue),g.getProjectionData({overscaledTileID:ue,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),r.id,fe.layoutVertexBuffer,fe.indexBuffer,fe.segments,null,u.transform.zoom,null,null,fe.collisionVertexBuffer)}if(!l||!I.length)return;const O=u.useProgram("collisionCircle"),Z=new s.bT;Z.resize(4*z),Z._trim();let J=0;for(const oe of I)for(let ue=0;ue<oe.circleArray.length/4;ue++){const me=4*ue,fe=oe.circleArray[me+0],ge=oe.circleArray[me+1],xe=oe.circleArray[me+2],_e=oe.circleArray[me+3];Z.emplace(J++,fe,ge,xe,_e,0),Z.emplace(J++,fe,ge,xe,_e,1),Z.emplace(J++,fe,ge,xe,_e,2),Z.emplace(J++,fe,ge,xe,_e,3)}(!ea||ea.length<2*z)&&(ea=function(oe){const ue=2*oe,me=new s.bV;me.resize(ue),me._trim();for(let fe=0;fe<ue;fe++){const ge=6*fe;me.uint16[ge+0]=4*fe+0,me.uint16[ge+1]=4*fe+1,me.uint16[ge+2]=4*fe+2,me.uint16[ge+3]=4*fe+2,me.uint16[ge+4]=4*fe+3,me.uint16[ge+5]=4*fe+0}return me}(z));const se=p.createIndexBuffer(ea,!0),ne=p.createVertexBuffer(Z,s.bU.members,!0);for(const oe of I){const ue=Uo(u.transform);O.draw(p,b.TRIANGLES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,ue,u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe.coord),null,r.id,ne,se,s.aJ.simpleSegment(0,2*oe.circleOffset,oe.circleArray.length,oe.circleArray.length/2),null,u.transform.zoom,null,null,null)}ne.destroy(),se.destroy()}const to=s.ad(new Float32Array(16));function Lh(u,e,r,a,l,p){const{horizontalAlign:g,verticalAlign:b}=s.aE(u);return new s.P((-(g-.5)*e/l+a[0])*p,(-(b-.5)*r/l+a[1])*p)}function Rh(u,e,r,a,l,p){const g=e.tileAnchorPoint.add(new s.P(e.translation[0],e.translation[1]));if(e.pitchWithMap){let b=a.mult(p);r||(b=b.rotate(-l));const A=g.add(b);return ze(A.x,A.y,e.pitchedLabelPlaneMatrix,e.getElevation).point}if(r){const b=vr(e.tileAnchorPoint.x+1,e.tileAnchorPoint.y,e).point.sub(u),A=Math.atan(b.y/b.x)+(b.x<0?Math.PI:0);return u.add(a.rotate(A))}return u.add(a)}function Rc(u,e,r,a,l,p,g,b,A,I,z,N){const O=u.text.placedSymbolArray,Z=u.text.dynamicLayoutVertexArray,J=u.icon.dynamicLayoutVertexArray,se={};Z.clear();for(let ne=0;ne<O.length;ne++){const oe=O.get(ne),ue=oe.hidden||!oe.crossTileID||u.allowVerticalPlacement&&!oe.placedOrientation?null:a[oe.crossTileID];if(ue){const me=new s.P(oe.anchorX,oe.anchorY),fe={getElevation:N,width:l.width,height:l.height,pitchedLabelPlaneMatrix:p,pitchWithMap:r,transform:l,tileAnchorPoint:me,translation:I,unwrappedTileID:z},ge=r?Tt(me.x,me.y,fe):vr(me.x,me.y,fe),xe=Kt(l.cameraToCenterDistance,ge.signedDistanceFromCamera);let _e=s.am(u.textSizeData,b,oe)*xe/s.ay;r&&(_e*=u.tilePixelRatio/g);const{width:Ee,height:Fe,anchor:Le,textOffset:Re,textBoxScale:De}=ue,Ye=Lh(Le,Ee,Fe,Re,De,_e),Qe=l.getPitchedTextCorrection(me.x+I[0],me.y+I[1],z),We=Rh(ge.point,fe,e,Ye,-l.bearingInRadians,Qe),ot=u.allowVerticalPlacement&&oe.placedOrientation===s.al.vertical?Math.PI/2:0;for(let Et=0;Et<oe.numGlyphs;Et++)s.as(Z,We,ot);A&&oe.associatedIconIndex>=0&&(se[oe.associatedIconIndex]={shiftedAnchor:We,angle:ot})}else cn(oe.numGlyphs,Z)}if(A){J.clear();const ne=u.icon.placedSymbolArray;for(let oe=0;oe<ne.length;oe++){const ue=ne.get(oe);if(ue.hidden)cn(ue.numGlyphs,J);else{const me=se[oe];if(me)for(let fe=0;fe<ue.numGlyphs;fe++)s.as(J,me.shiftedAnchor,me.angle);else cn(ue.numGlyphs,J)}}u.icon.dynamicLayoutVertexBuffer.updateData(J)}u.text.dynamicLayoutVertexBuffer.updateData(Z)}function Dh(u,e,r){return r.iconsInText&&e?"symbolTextAndIcon":u?"symbolSDF":"symbolIcon"}function ta(u,e,r,a,l,p,g,b,A,I,z,N,O){const Z=u.context,J=Z.gl,se=u.transform,ne=b==="map",oe=A==="map",ue=b!=="viewport"&&r.layout.get("symbol-placement")!=="point",me=ne&&!oe&&!ue,fe=!r.layout.get("symbol-sort-key").isConstant();let ge=!1;const xe=u.getDepthModeForSublayer(0,wt.ReadOnly),_e=r._unevaluatedLayout.hasValue("text-variable-anchor")||r._unevaluatedLayout.hasValue("text-variable-anchor-offset"),Ee=[],Fe=se.getCircleRadiusCorrection();for(const Le of a){const Re=e.getTile(Le),De=Re.getBucket(r);if(!De)continue;const Ye=l?De.text:De.icon;if(!Ye||!Ye.segments.get().length||!Ye.hasVisibleVertices)continue;const Qe=Ye.programConfigurations.get(r.id),We=l||De.sdfIcons,ot=l?De.textSizeData:De.iconSizeData,Et=oe||se.pitch!==0,Ot=u.useProgram(Dh(We,l,De),Qe),pr=s.ak(ot,se.zoom),Qt=u.style.map.terrain&&u.style.map.terrain.getTerrainData(Le);let dr,fr,tr,Ht,Br=[0,0],Ur=null;if(l)fr=Re.glyphAtlasTexture,tr=J.LINEAR,dr=Re.glyphAtlasTexture.size,De.iconsInText&&(Br=Re.imageAtlasTexture.size,Ur=Re.imageAtlasTexture,Ht=Et||u.options.rotating||u.options.zooming||ot.kind==="composite"||ot.kind==="camera"?J.LINEAR:J.NEAREST);else{const Ir=r.layout.get("icon-size").constantOr(0)!==1||De.iconsNeedLinear;fr=Re.imageAtlasTexture,tr=We||u.options.rotating||u.options.zooming||Ir||Et?J.LINEAR:J.NEAREST,dr=Re.imageAtlasTexture.size}const Qr=s.az(Re,1,u.transform.zoom),Wt=ht(ne,u.transform,Qr),Cn=s.K();s.an(Cn,Wt);const an=St(oe,ne,u.transform,Qr),En=s.aA(se,Re,p,g),es=se.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!O,applyTerrainMatrix:!0}),yo=_e&&De.hasTextData(),Pn=r.layout.get("icon-text-fit")!=="none"&&yo&&De.hasIconData();if(ue){const Ir=u.style.map.terrain?(di,sr)=>u.style.map.terrain.getElevation(Le,di,sr):null,Mr=r.layout.get("text-rotation-alignment")==="map";jt(De,u,l,Wt,Cn,oe,I,Mr,Le.toUnwrapped(),se.width,se.height,En,Ir)}const ts=l&&_e||Pn,Ti=ue||ts?to:oe?Wt:u.transform.clipSpaceToPixelsMatrix,In=We&&r.paint.get(l?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let dn;dn=We?De.iconsInText?jo(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,dr,Br,Fe):Sc(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,l,dr,0,Fe):ys(ot.kind,pr,me,oe,ue,ts,u,Ti,an,En,l,dr,Fe);const Mn={program:Ot,buffers:Ye,uniformValues:dn,projectionData:es,atlasTexture:fr,atlasTextureIcon:Ur,atlasInterpolation:tr,atlasInterpolationIcon:Ht,isSDF:We,hasHalo:In};if(fe&&De.canOverlap){ge=!0;const Ir=Ye.segments.get();for(const Mr of Ir)Ee.push({segments:new s.aJ([Mr]),sortKey:Mr.sortKey,state:Mn,terrainData:Qt})}else Ee.push({segments:Ye.segments,sortKey:0,state:Mn,terrainData:Qt})}ge&&Ee.sort((Le,Re)=>Le.sortKey-Re.sortKey);for(const Le of Ee){const Re=Le.state;if(Z.activeTexture.set(J.TEXTURE0),Re.atlasTexture.bind(Re.atlasInterpolation,J.CLAMP_TO_EDGE),Re.atlasTextureIcon&&(Z.activeTexture.set(J.TEXTURE1),Re.atlasTextureIcon&&Re.atlasTextureIcon.bind(Re.atlasInterpolationIcon,J.CLAMP_TO_EDGE)),Re.isSDF){const De=Re.uniformValues;Re.hasHalo&&(De.u_is_halo=1,ro(Re.buffers,Le.segments,r,u,Re.program,xe,z,N,De,Re.projectionData,Le.terrainData)),De.u_is_halo=0}ro(Re.buffers,Le.segments,r,u,Re.program,xe,z,N,Re.uniformValues,Re.projectionData,Le.terrainData)}}function ro(u,e,r,a,l,p,g,b,A,I,z){const N=a.context;l.draw(N,N.gl.TRIANGLES,p,g,b,Ft.backCCW,A,z,I,r.id,u.layoutVertexBuffer,u.indexBuffer,e,r.paint,a.transform.zoom,u.programConfigurations.get(r.id),u.dynamicLayoutVertexBuffer,u.opacityVertexBuffer)}function ra(u,e,r,a,l){const p=u.context,g=p.gl,b=Ct.disabled,A=new Jt([g.ONE,g.ONE],s.b7.transparent,[!0,!0,!0,!0]),I=e.getBucket(r);if(!I)return;const z=a.key;let N=r.heatmapFbos.get(z);N||(N=ia(p,e.tileSize,e.tileSize),r.heatmapFbos.set(z,N)),p.bindFramebuffer.set(N.framebuffer),p.viewport.set([0,0,e.tileSize,e.tileSize]),p.clear({color:s.b7.transparent});const O=I.programConfigurations.get(r.id),Z=u.useProgram("heatmap",O,!l),J=u.transform.getProjectionData({overscaledTileID:e.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),se=u.style.map.terrain.getTerrainData(a);Z.draw(p,g.TRIANGLES,wt.disabled,b,A,Ft.disabled,Gn(e,u.transform.zoom,r.paint.get("heatmap-intensity"),1),se,J,r.id,I.layoutVertexBuffer,I.indexBuffer,I.segments,r.paint,u.transform.zoom,O)}function ol(u,e,r,a,l){const p=u.context,g=p.gl,b=u.transform;p.setColorMode(u.colorModeForRenderPass());const A=al(p,e),I=r.key,z=e.heatmapFbos.get(I);if(!z)return;p.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,z.colorAttachment.get()),p.activeTexture.set(g.TEXTURE1),A.bind(g.LINEAR,g.CLAMP_TO_EDGE);const N=b.getProjectionData({overscaledTileID:r,applyTerrainMatrix:l,applyGlobeMatrix:!a});u.useProgram("heatmapTexture").draw(p,g.TRIANGLES,wt.disabled,Ct.disabled,u.colorModeForRenderPass(),Ft.disabled,mc(u,e,0,1),null,N,e.id,u.rasterBoundsBuffer,u.quadTriangleIndexBuffer,u.rasterBoundsSegments,e.paint,b.zoom),z.destroy(),e.heatmapFbos.delete(I)}function ia(u,e,r){var a,l;const p=u.gl,g=p.createTexture();p.bindTexture(p.TEXTURE_2D,g),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_T,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,p.LINEAR),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,p.LINEAR);const b=(a=u.HALF_FLOAT)!==null&&a!==void 0?a:p.UNSIGNED_BYTE,A=(l=u.RGBA16F)!==null&&l!==void 0?l:p.RGBA;p.texImage2D(p.TEXTURE_2D,0,A,e,r,0,p.RGBA,b,null);const I=u.createFramebuffer(e,r,!1,!1);return I.colorAttachment.set(g),I}function al(u,e){return e.colorRampTexture||(e.colorRampTexture=new Ze(u,e.colorRamp,u.gl.RGBA)),e.colorRampTexture}function io(u,e,r,a,l){if(!r||!a||!a.imageAtlas)return;const p=a.imageAtlas.patternPositions;let g=p[r.to.toString()],b=p[r.from.toString()];if(!g&&b&&(g=b),!b&&g&&(b=g),!g||!b){const A=l.getPaintProperty(e);g=p[A],b=p[A]}g&&b&&u.setConstantPatternPositions(g,b)}function no(u,e,r,a,l,p,g,b){const A=u.context.gl,I="fill-pattern",z=r.paint.get(I),N=z&&z.constantOr(1),O=r.getCrossfadeParameters();let Z,J,se,ne,oe;const ue=u.transform,me=r.paint.get("fill-translate"),fe=r.paint.get("fill-translate-anchor");g?(J=N&&!r.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",Z=A.LINES):(J=N?"fillPattern":"fill",Z=A.TRIANGLES);const ge=z.constantOr(null);for(const xe of a){const _e=e.getTile(xe);if(N&&!_e.patternsLoaded())continue;const Ee=_e.getBucket(r);if(!Ee)continue;const Fe=Ee.programConfigurations.get(r.id),Le=u.useProgram(J,Fe),Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(xe);N&&(u.context.activeTexture.set(A.TEXTURE0),_e.imageAtlasTexture.bind(A.LINEAR,A.CLAMP_TO_EDGE),Fe.updatePaintBuffers(O)),io(Fe,I,ge,_e,r);const De=ue.getProjectionData({overscaledTileID:xe,applyGlobeMatrix:!b,applyTerrainMatrix:!0}),Ye=s.aA(ue,_e,me,fe);if(g){ne=Ee.indexBuffer2,oe=Ee.segments2;const We=[A.drawingBufferWidth,A.drawingBufferHeight];se=J==="fillOutlinePattern"&&N?Qs(u,O,_e,We,Ye):Ga(We,Ye)}else ne=Ee.indexBuffer,oe=Ee.segments,se=N?dc(u,O,_e,Ye):{u_fill_translate:Ye};const Qe=u.stencilModeForClipping(xe);Le.draw(u.context,Z,l,Qe,p,Ft.backCCW,se,Re,De,r.id,Ee.layoutVertexBuffer,ne,oe,r.paint,u.transform.zoom,Fe)}}function so(u,e,r,a,l,p,g,b){const A=u.context,I=A.gl,z="fill-extrusion-pattern",N=r.paint.get(z),O=N.constantOr(1),Z=r.getCrossfadeParameters(),J=r.paint.get("fill-extrusion-opacity"),se=N.constantOr(null),ne=u.transform;for(const oe of a){const ue=e.getTile(oe),me=ue.getBucket(r);if(!me)continue;const fe=u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe),ge=me.programConfigurations.get(r.id),xe=u.useProgram(O?"fillExtrusionPattern":"fillExtrusion",ge);O&&(u.context.activeTexture.set(I.TEXTURE0),ue.imageAtlasTexture.bind(I.LINEAR,I.CLAMP_TO_EDGE),ge.updatePaintBuffers(Z));const _e=ne.getProjectionData({overscaledTileID:oe,applyGlobeMatrix:!b,applyTerrainMatrix:!0});io(ge,z,se,ue,r);const Ee=s.aA(ne,ue,r.paint.get("fill-extrusion-translate"),r.paint.get("fill-extrusion-translate-anchor")),Fe=r.paint.get("fill-extrusion-vertical-gradient"),Le=O?nn(u,Fe,J,Ee,oe,Z,ue):qo(u,Fe,J,Ee);xe.draw(A,A.gl.TRIANGLES,l,p,g,Ft.backCCW,Le,fe,_e,r.id,me.layoutVertexBuffer,me.indexBuffer,me.segments,r.paint,u.transform.zoom,ge,u.style.map.terrain&&me.centroidVertexBuffer)}}function ll(u,e,r,a,l,p,g,b,A){var I;const z=u.style.projection,N=u.context,O=u.transform,Z=N.gl,J=[`#define NUM_ILLUMINATION_SOURCES ${r.paint.get("hillshade-highlight-color").values.length}`],se=u.useProgram("hillshade",null,!1,J),ne=!u.options.moving;for(const oe of a){const ue=e.getTile(oe),me=ue.fbo;if(!me)continue;const fe=z.getMeshFromTileID(N,oe.canonical,b,!0,"raster"),ge=(I=u.style.map.terrain)===null||I===void 0?void 0:I.getTerrainData(oe);N.activeTexture.set(Z.TEXTURE0),Z.bindTexture(Z.TEXTURE_2D,me.colorAttachment.get());const xe=O.getProjectionData({overscaledTileID:oe,aligned:ne,applyGlobeMatrix:!A,applyTerrainMatrix:!0});se.draw(N,Z.TRIANGLES,p,l[oe.overscaledZ],g,Ft.backCCW,gc(u,ue,r),ge,xe,r.id,fe.vertexBuffer,fe.indexBuffer,fe.segments)}}const oo=[new s.P(0,0),new s.P(s.Z,0),new s.P(s.Z,s.Z),new s.P(0,s.Z)];function na(u,e,r,a,l,p,g,b,A=!1,I=!1){const z=a[a.length-1].overscaledZ,N=u.context,O=N.gl,Z=u.useProgram("raster"),J=u.transform,se=u.style.projection,ne=u.colorModeForRenderPass(),oe=!u.options.moving;for(const ue of a){const me=u.getDepthModeForSublayer(ue.overscaledZ-z,r.paint.get("raster-opacity")===1?wt.ReadWrite:wt.ReadOnly,O.LESS),fe=e.getTile(ue);fe.registerFadeDuration(r.paint.get("raster-fade-duration"));const ge=e.findLoadedParent(ue,0),xe=e.findLoadedSibling(ue),_e=Dc(fe,ge||xe||null,e,r,u.transform,u.style.map.terrain);let Ee,Fe;const Le=r.paint.get("raster-resampling")==="nearest"?O.NEAREST:O.LINEAR;N.activeTexture.set(O.TEXTURE0),fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),N.activeTexture.set(O.TEXTURE1),ge?(ge.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),Ee=Math.pow(2,ge.tileID.overscaledZ-fe.tileID.overscaledZ),Fe=[fe.tileID.canonical.x*Ee%1,fe.tileID.canonical.y*Ee%1]):fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),fe.texture.useMipmap&&N.extTextureFilterAnisotropic&&u.transform.pitch>20&&O.texParameterf(O.TEXTURE_2D,N.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,N.extTextureFilterAnisotropicMax);const Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(ue),De=J.getProjectionData({overscaledTileID:ue,aligned:oe,applyGlobeMatrix:!I,applyTerrainMatrix:!0}),Ye=bc(Fe||[0,0],Ee||1,_e,r,b),Qe=se.getMeshFromTileID(N,ue.canonical,p,g,"raster");Z.draw(N,O.TRIANGLES,me,l?l[ue.overscaledZ]:Ct.disabled,ne,A?Ft.frontCCW:Ft.backCCW,Ye,Re,De,r.id,Qe.vertexBuffer,Qe.indexBuffer,Qe.segments)}}function Dc(u,e,r,a,l,p){const g=a.paint.get("raster-fade-duration");if(!p&&g>0){const b=R.now(),A=(b-u.timeAdded)/g,I=e?(b-e.timeAdded)/g:-1,z=r.getSource(),N=ke(l,{tileSize:z.tileSize,roundZoom:z.roundZoom}),O=!e||Math.abs(e.tileID.overscaledZ-N)>Math.abs(u.tileID.overscaledZ-N),Z=O&&u.refreshedUponExpiration?1:s.ae(O?A:1-I,0,1);return u.refreshedUponExpiration&&A>=1&&(u.refreshedUponExpiration=!1),e?{opacity:1,mix:1-Z}:{opacity:Z,mix:0}}return{opacity:1,mix:0}}const sa=new s.b7(1,0,0,1),cl=new s.b7(0,1,0,1),zc=new s.b7(0,0,1,1),Bc=new s.b7(1,0,1,1),oa=new s.b7(0,1,1,1);function aa(u,e,r,a){ao(u,0,e+r/2,u.transform.width,r,a)}function Vc(u,e,r,a){ao(u,e-r/2,0,r,u.transform.height,a)}function ao(u,e,r,a,l,p){const g=u.context,b=g.gl;b.enable(b.SCISSOR_TEST),b.scissor(e*u.pixelRatio,r*u.pixelRatio,a*u.pixelRatio,l*u.pixelRatio),g.clear({color:p}),b.disable(b.SCISSOR_TEST)}function Ar(u,e,r){const a=u.context,l=a.gl,p=u.useProgram("debug"),g=wt.disabled,b=Ct.disabled,A=u.colorModeForRenderPass(),I="$debug",z=u.style.map.terrain&&u.style.map.terrain.getTerrainData(r);a.activeTexture.set(l.TEXTURE0);const N=e.getTileByID(r.key).latestRawTileData,O=Math.floor((N&&N.byteLength||0)/1024),Z=e.getTile(r).tileSize,J=512/Math.min(Z,512)*(r.overscaledZ/u.transform.zoom)*.5;let se=r.canonical.toString();r.overscaledZ!==r.canonical.z&&(se+=` => ${r.overscaledZ}`),function(oe,ue){oe.initDebugOverlayCanvas();const me=oe.debugOverlayCanvas,fe=oe.context.gl,ge=oe.debugOverlayCanvas.getContext("2d");ge.clearRect(0,0,me.width,me.height),ge.shadowColor="white",ge.shadowBlur=2,ge.lineWidth=1.5,ge.strokeStyle="white",ge.textBaseline="top",ge.font="bold 36px Open Sans, sans-serif",ge.fillText(ue,5,5),ge.strokeText(ue,5,5),oe.debugOverlayTexture.update(me),oe.debugOverlayTexture.bind(fe.LINEAR,fe.CLAMP_TO_EDGE)}(u,`${se} ${O}kB`);const ne=u.transform.getProjectionData({overscaledTileID:r,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(a,l.TRIANGLES,g,b,Jt.alphaBlended,Ft.disabled,fc(s.b7.transparent,J),null,ne,I,u.debugBuffer,u.quadTriangleIndexBuffer,u.debugSegments),p.draw(a,l.LINE_STRIP,g,b,A,Ft.disabled,fc(s.b7.red),z,ne,I,u.debugBuffer,u.tileBorderIndexBuffer,u.debugSegments)}function Tn(u,e,r,a){const{isRenderingGlobe:l}=a,p=u.context,g=p.gl,b=u.transform,A=u.colorModeForRenderPass(),I=u.getDepthModeFor3D(),z=u.useProgram("terrain");p.bindFramebuffer.set(null),p.viewport.set([0,0,u.width,u.height]);for(const N of r){const O=e.getTerrainMesh(N.tileID),Z=u.renderToTexture.getTexture(N),J=e.getTerrainData(N.tileID);p.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,Z.texture);const se=e.getMeshFrameDelta(b.zoom),ne=b.calculateFogMatrix(N.tileID.toUnwrapped()),oe=wh(se,ne,u.style.sky,b.pitch,l),ue=b.getProjectionData({overscaledTileID:N.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});z.draw(p,g.TRIANGLES,I,Ct.disabled,A,Ft.backCCW,oe,J,ue,"terrain",O.vertexBuffer,O.indexBuffer,O.segments)}}function ki(u,e){if(!e.mesh){const r=new s.aI;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(1,1),r.emplaceBack(-1,1);const a=new s.aK;a.emplaceBack(0,1,2),a.emplaceBack(0,2,3),e.mesh=new hs(u.createVertexBuffer(r,ui.members),u.createIndexBuffer(a),s.aJ.simpleSegment(0,0,r.length,a.length))}return e.mesh}class ul{constructor(e,r){this.context=new $o(e),this.transform=r,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.ad(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Se.maxUnderzooming+Se.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new qs}resize(e,r,a){if(this.width=Math.floor(e*a),this.height=Math.floor(r*a),this.pixelRatio=a,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const l of this.style._order)this.style._layers[l].resize()}setup(){const e=this.context,r=new s.aI;r.emplaceBack(0,0),r.emplaceBack(s.Z,0),r.emplaceBack(0,s.Z),r.emplaceBack(s.Z,s.Z),this.tileExtentBuffer=e.createVertexBuffer(r,ui.members),this.tileExtentSegments=s.aJ.simpleSegment(0,0,4,2);const a=new s.aI;a.emplaceBack(0,0),a.emplaceBack(s.Z,0),a.emplaceBack(0,s.Z),a.emplaceBack(s.Z,s.Z),this.debugBuffer=e.createVertexBuffer(a,ui.members),this.debugSegments=s.aJ.simpleSegment(0,0,4,5);const l=new s.b_;l.emplaceBack(0,0,0,0),l.emplaceBack(s.Z,0,s.Z,0),l.emplaceBack(0,s.Z,0,s.Z),l.emplaceBack(s.Z,s.Z,s.Z,s.Z),this.rasterBoundsBuffer=e.createVertexBuffer(l,xh.members),this.rasterBoundsSegments=s.aJ.simpleSegment(0,0,4,2);const p=new s.aI;p.emplaceBack(0,0),p.emplaceBack(s.Z,0),p.emplaceBack(0,s.Z),p.emplaceBack(s.Z,s.Z),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(p,ui.members),this.rasterBoundsSegmentsPosOnly=s.aJ.simpleSegment(0,0,4,5);const g=new s.aI;g.emplaceBack(0,0),g.emplaceBack(1,0),g.emplaceBack(0,1),g.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(g,ui.members),this.viewportSegments=s.aJ.simpleSegment(0,0,4,2);const b=new s.b$;b.emplaceBack(0),b.emplaceBack(1),b.emplaceBack(3),b.emplaceBack(2),b.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(b);const A=new s.aK;A.emplaceBack(1,0,2),A.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(A);const I=this.context.gl;this.stencilClearMode=new Ct({func:I.ALWAYS,mask:0},0,255,I.ZERO,I.ZERO,I.ZERO),this.tileExtentMesh=new hs(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const e=this.context,r=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const a=s.K();s.bQ(a,0,this.width,this.height,0,0,1),s.M(a,a,[r.drawingBufferWidth,r.drawingBufferHeight,0]);const l={mainMatrix:a,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:a};this.useProgram("clippingMask",null,!0).draw(e,r.TRIANGLES,wt.disabled,this.stencilClearMode,Jt.disabled,Ft.disabled,null,null,l,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(e,r,a){if(this.currentStencilSource===e.source||!e.isTileClipped()||!r||!r.length)return;this.currentStencilSource=e.source,this.nextStencilID+r.length>256&&this.clearStencil();const l=this.context;l.setColorMode(Jt.disabled),l.setDepthMode(wt.disabled);const p={};for(const g of r)p[g.key]=this.nextStencilID++;this._renderTileMasks(p,r,a,!0),this._renderTileMasks(p,r,a,!1),this._tileClippingMaskIDs=p}_renderTileMasks(e,r,a,l){const p=this.context,g=p.gl,b=this.style.projection,A=this.transform,I=this.useProgram("clippingMask");for(const z of r){const N=e[z.key],O=this.style.map.terrain&&this.style.map.terrain.getTerrainData(z),Z=b.getMeshFromTileID(this.context,z.canonical,l,!0,"stencil"),J=A.getProjectionData({overscaledTileID:z,applyGlobeMatrix:!a,applyTerrainMatrix:!0});I.draw(p,g.TRIANGLES,wt.disabled,new Ct({func:g.ALWAYS,mask:0},N,255,g.KEEP,g.KEEP,g.REPLACE),Jt.disabled,a?Ft.disabled:Ft.backCCW,null,O,J,"$clipping",Z.vertexBuffer,Z.indexBuffer,Z.segments)}}_renderTilesDepthBuffer(){const e=this.context,r=e.gl,a=this.style.projection,l=this.transform,p=this.useProgram("depth"),g=this.getDepthModeFor3D(),b=be(l,{tileSize:l.tileSize});for(const A of b){const I=this.style.map.terrain&&this.style.map.terrain.getTerrainData(A),z=a.getMeshFromTileID(this.context,A.canonical,!0,!0,"raster"),N=l.getProjectionData({overscaledTileID:A,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(e,r.TRIANGLES,g,Ct.disabled,Jt.disabled,Ft.backCCW,null,I,N,"$clipping",z.vertexBuffer,z.indexBuffer,z.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,r=this.context.gl;return new Ct({func:r.NOTEQUAL,mask:255},e,255,r.KEEP,r.KEEP,r.REPLACE)}stencilModeForClipping(e){const r=this.context.gl;return new Ct({func:r.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,r.KEEP,r.KEEP,r.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,p=a[0].overscaledZ-l+1;if(p>1){this.currentStencilSource=void 0,this.nextStencilID+p>256&&this.clearStencil();const g={};for(let b=0;b<p;b++)g[b+l]=new Ct({func:r.GEQUAL,mask:255},b+this.nextStencilID,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID+=p,[g,a]}return[{[l]:Ct.disabled},a]}stencilConfigForOverlapTwoPass(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,p=a[0].overscaledZ-l+1;if(this.clearStencil(),p>1){const g={},b={};for(let A=0;A<p;A++)g[A+l]=new Ct({func:r.GREATER,mask:255},p+1+A,255,r.KEEP,r.KEEP,r.REPLACE),b[A+l]=new Ct({func:r.GREATER,mask:255},1+A,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID=2*p+1,[g,b,a]}return this.nextStencilID=3,[{[l]:new Ct({func:r.GREATER,mask:255},2,255,r.KEEP,r.KEEP,r.REPLACE)},{[l]:new Ct({func:r.GREATER,mask:255},1,255,r.KEEP,r.KEEP,r.REPLACE)},a]}colorModeForRenderPass(){const e=this.context.gl;return this._showOverdrawInspector?new Jt([e.CONSTANT_COLOR,e.ONE],new s.b7(.125,.125,.125,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?Jt.unblended:Jt.alphaBlended}getDepthModeForSublayer(e,r,a){if(!this.opaquePassEnabledForLayer())return wt.disabled;const l=1-((1+this.currentLayer)*this.numSublayers+e)*this.depthEpsilon;return new wt(a||this.context.gl.LEQUAL,r,[l,l])}getDepthModeFor3D(){return new wt(this.context.gl.LEQUAL,wt.ReadWrite,this.depthRangeFor3D)}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(e,r){var a,l;this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(R.now()),this.imageManager.beginFrame();const p=this.style._order,g=this.style.sourceCaches,b={},A={},I={},z={isRenderingToTexture:!1,isRenderingGlobe:((a=e.projection)===null||a===void 0?void 0:a.transitionState)>0};for(const O in g){const Z=g[O];Z.used&&Z.prepare(this.context),b[O]=Z.getVisibleCoordinates(!1),A[O]=b[O].slice().reverse(),I[O]=Z.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let O=0;O<p.length;O++)if(this.style._layers[p[O]].is3D()){this.opaquePassCutoff=O;break}this.maybeDrawDepthAndCoords(!1),this.renderToTexture&&(this.renderToTexture.prepareForRender(this.style,this.transform.zoom),this.opaquePassCutoff=0),this.renderPass="offscreen";for(const O of p){const Z=this.style._layers[O];if(!Z.hasOffscreenPass()||Z.isHidden(this.transform.zoom))continue;const J=A[Z.source];(Z.type==="custom"||J.length)&&this.renderLayer(this,g[Z.source],Z,J,z)}if((l=this.style.projection)===null||l===void 0||l.updateGPUdependent({context:this.context,useProgram:O=>this.useProgram(O)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?s.b7.black:s.b7.transparent,depth:1}),this.clearStencil(),this.style.sky&&function(O,Z){const J=O.context,se=J.gl,ne=((xe,_e,Ee)=>{const Fe=Math.cos(_e.rollInRadians),Le=Math.sin(_e.rollInRadians),Re=we(_e),De=_e.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:xe.properties.get("sky-color"),u_horizon_color:xe.properties.get("horizon-color"),u_horizon:[(_e.width/2-Re*Le)*Ee,(_e.height/2+Re*Fe)*Ee],u_horizon_normal:[-Le,Fe],u_sky_horizon_blend:xe.properties.get("sky-horizon-blend")*_e.height/2*Ee,u_sky_blend:De}})(Z,O.style.map.transform,O.pixelRatio),oe=new wt(se.LEQUAL,wt.ReadWrite,[0,1]),ue=Ct.disabled,me=O.colorModeForRenderPass(),fe=O.useProgram("sky"),ge=ki(J,Z);fe.draw(J,se.TRIANGLES,oe,ue,me,Ft.disabled,ne,null,void 0,"sky",ge.vertexBuffer,ge.indexBuffer,ge.segments)}(this,this.style.sky),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=p.length-1;this.currentLayer>=0;this.currentLayer--){const O=this.style._layers[p[this.currentLayer]],Z=g[O.source],J=b[O.source];this._renderTileClippingMasks(O,J,!1),this.renderLayer(this,Z,O,J,z)}this.renderPass="translucent";let N=!1;for(this.currentLayer=0;this.currentLayer<p.length;this.currentLayer++){const O=this.style._layers[p[this.currentLayer]],Z=g[O.source];if(this.renderToTexture&&this.renderToTexture.renderLayer(O,z))continue;this.opaquePassEnabledForLayer()||N||(N=!0,z.isRenderingGlobe&&!this.style.map.terrain&&this._renderTilesDepthBuffer());const J=(O.type==="symbol"?I:A)[O.source];this._renderTileClippingMasks(O,b[O.source],!!this.renderToTexture),this.renderLayer(this,Z,O,J,z)}if(z.isRenderingGlobe&&function(O,Z,J){const se=O.context,ne=se.gl,oe=O.useProgram("atmosphere"),ue=new wt(ne.LEQUAL,wt.ReadOnly,[0,1]),me=O.transform,fe=function(De,Ye){const Qe=De.properties.get("position"),We=[-Qe.x,-Qe.y,-Qe.z],ot=s.ad(new Float64Array(16));return De.properties.get("anchor")==="map"&&(s.a_(ot,ot,Ye.rollInRadians),s.a$(ot,ot,-Ye.pitchInRadians),s.a_(ot,ot,Ye.bearingInRadians),s.a$(ot,ot,Ye.center.lat*Math.PI/180),s.bp(ot,ot,-Ye.center.lng*Math.PI/180)),s.bZ(We,We,ot),We}(J,O.transform),ge=me.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),xe=Z.properties.get("atmosphere-blend")*ge.projectionTransition;if(xe===0)return;const _e=Wn(me.worldSize,me.center.lat),Ee=me.inverseProjectionMatrix,Fe=new Float64Array(4);Fe[3]=1,s.at(Fe,Fe,me.modelViewProjectionMatrix),Fe[0]/=Fe[3],Fe[1]/=Fe[3],Fe[2]/=Fe[3],Fe[3]=1,s.at(Fe,Fe,Ee),Fe[0]/=Fe[3],Fe[1]/=Fe[3],Fe[2]/=Fe[3],Fe[3]=1;const Le=((De,Ye,Qe,We,ot)=>({u_sun_pos:De,u_atmosphere_blend:Ye,u_globe_position:Qe,u_globe_radius:We,u_inv_proj_matrix:ot}))(fe,xe,[Fe[0],Fe[1],Fe[2]],_e,Ee),Re=ki(se,Z);oe.draw(se,ne.TRIANGLES,ue,Ct.disabled,Jt.alphaBlended,Ft.disabled,Le,null,null,"atmosphere",Re.vertexBuffer,Re.indexBuffer,Re.segments)}(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const O=function(Z,J){let se=null;const ne=Object.values(Z._layers).flatMap(fe=>fe.source&&!fe.isHidden(J)?[Z.sourceCaches[fe.source]]:[]),oe=ne.filter(fe=>fe.getSource().type==="vector"),ue=ne.filter(fe=>fe.getSource().type!=="vector"),me=fe=>{(!se||se.getSource().maxzoom<fe.getSource().maxzoom)&&(se=fe)};return oe.forEach(fe=>me(fe)),se||ue.forEach(fe=>me(fe)),se}(this.style,this.transform.zoom);O&&function(Z,J,se){for(let ne=0;ne<se.length;ne++)Ar(Z,J,se[ne])}(this,O,O.getVisibleCoordinates())}this.options.showPadding&&function(O){const Z=O.transform.padding;aa(O,O.transform.height-(Z.top||0),3,sa),aa(O,Z.bottom||0,3,cl),Vc(O,Z.left||0,3,zc),Vc(O,O.transform.width-(Z.right||0),3,Bc);const J=O.transform.centerPoint;(function(se,ne,oe,ue){ao(se,ne-1,oe-10,2,20,ue),ao(se,ne-10,oe-1,20,2,ue)})(O,J.x,O.transform.height-J.y,oa)}(this),this.context.setDefault()}maybeDrawDepthAndCoords(e){if(!this.style||!this.style.map||!this.style.map.terrain)return;const r=this.terrainFacilitator.matrix,a=this.transform.modelViewProjectionMatrix;let l=this.terrainFacilitator.dirty;l||(l=e?!s.c0(r,a):!s.c1(r,a)),l||(l=this.style.map.terrain.sourceCache.anyTilesAfterTime(this.terrainFacilitator.renderTime)),l&&(s.c2(r,a),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(p,g){const b=p.context,A=b.gl,I=p.transform,z=Jt.unblended,N=new wt(A.LEQUAL,wt.ReadWrite,[0,1]),O=g.sourceCache.getRenderableTiles(),Z=p.useProgram("terrainDepth");b.bindFramebuffer.set(g.getFramebuffer("depth").framebuffer),b.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1});for(const J of O){const se=g.getTerrainMesh(J.tileID),ne=g.getTerrainData(J.tileID),oe=I.getProjectionData({overscaledTileID:J.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0}),ue={u_ele_delta:g.getMeshFrameDelta(I.zoom)};Z.draw(b,A.TRIANGLES,N,Ct.disabled,z,Ft.backCCW,ue,ne,oe,"terrain",se.vertexBuffer,se.indexBuffer,se.segments)}b.bindFramebuffer.set(null),b.viewport.set([0,0,p.width,p.height])}(this,this.style.map.terrain),function(p,g){const b=p.context,A=b.gl,I=p.transform,z=Jt.unblended,N=new wt(A.LEQUAL,wt.ReadWrite,[0,1]),O=g.getCoordsTexture(),Z=g.sourceCache.getRenderableTiles(),J=p.useProgram("terrainCoords");b.bindFramebuffer.set(g.getFramebuffer("coords").framebuffer),b.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1}),g.coordsIndex=[];for(const se of Z){const ne=g.getTerrainMesh(se.tileID),oe=g.getTerrainData(se.tileID);b.activeTexture.set(A.TEXTURE0),A.bindTexture(A.TEXTURE_2D,O.texture);const ue={u_terrain_coords_id:(255-g.coordsIndex.length)/255,u_texture:0,u_ele_delta:g.getMeshFrameDelta(I.zoom)},me=I.getProjectionData({overscaledTileID:se.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});J.draw(b,A.TRIANGLES,N,Ct.disabled,z,Ft.backCCW,ue,oe,me,"terrain",ne.vertexBuffer,ne.indexBuffer,ne.segments),g.coordsIndex.push(se.tileID.key)}b.bindFramebuffer.set(null),b.viewport.set([0,0,p.width,p.height])}(this,this.style.map.terrain))}renderLayer(e,r,a,l,p){a.isHidden(this.transform.zoom)||(a.type==="background"||a.type==="custom"||(l||[]).length)&&(this.id=a.id,s.c3(a)?function(g,b,A,I,z,N){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:O}=N,Z=Ct.disabled,J=g.colorModeForRenderPass();(A._unevaluatedLayout.hasValue("text-variable-anchor")||A._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(se,ne,oe,ue,me,fe,ge,xe,_e){const Ee=ne.transform,Fe=ne.style.map.terrain,Le=me==="map",Re=fe==="map";for(const De of se){const Ye=ue.getTile(De),Qe=Ye.getBucket(oe);if(!Qe||!Qe.text||!Qe.text.segments.get().length)continue;const We=s.ak(Qe.textSizeData,Ee.zoom),ot=s.az(Ye,1,ne.transform.zoom),Et=ht(Le,ne.transform,ot),Ot=oe.layout.get("icon-text-fit")!=="none"&&Qe.hasIconData();if(We){const pr=Math.pow(2,Ee.zoom-Ye.tileID.overscaledZ),Qt=Fe?(dr,fr)=>Fe.getElevation(De,dr,fr):null;Rc(Qe,Le,Re,_e,Ee,Et,pr,We,Ot,s.aA(Ee,Ye,ge,xe),De.toUnwrapped(),Qt)}}}(I,g,A,b,A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),z),A.paint.get("icon-opacity").constantOr(1)!==0&&ta(g,b,A,I,!1,A.paint.get("icon-translate"),A.paint.get("icon-translate-anchor"),A.layout.get("icon-rotation-alignment"),A.layout.get("icon-pitch-alignment"),A.layout.get("icon-keep-upright"),Z,J,O),A.paint.get("text-opacity").constantOr(1)!==0&&ta(g,b,A,I,!0,A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),A.layout.get("text-keep-upright"),Z,J,O),b.map.showCollisionBoxes&&(sl(g,b,A,I,!0),sl(g,b,A,I,!1))}(e,r,a,l,this.style.placement.variableOffsets,p):s.c4(a)?function(g,b,A,I,z){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=A.paint.get("circle-opacity"),Z=A.paint.get("circle-stroke-width"),J=A.paint.get("circle-stroke-opacity"),se=!A.layout.get("circle-sort-key").isConstant();if(O.constantOr(1)===0&&(Z.constantOr(1)===0||J.constantOr(1)===0))return;const ne=g.context,oe=ne.gl,ue=g.transform,me=g.getDepthModeForSublayer(0,wt.ReadOnly),fe=Ct.disabled,ge=g.colorModeForRenderPass(),xe=[],_e=ue.getCircleRadiusCorrection();for(let Ee=0;Ee<I.length;Ee++){const Fe=I[Ee],Le=b.getTile(Fe),Re=Le.getBucket(A);if(!Re)continue;const De=A.paint.get("circle-translate"),Ye=A.paint.get("circle-translate-anchor"),Qe=s.aA(ue,Le,De,Ye),We=Re.programConfigurations.get(A.id),ot=g.useProgram("circle",We),Et=Re.layoutVertexBuffer,Ot=Re.indexBuffer,pr=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Fe),Qt={programConfiguration:We,program:ot,layoutVertexBuffer:Et,indexBuffer:Ot,uniformValues:Ys(g,Le,A,Qe,_e),terrainData:pr,projectionData:ue.getProjectionData({overscaledTileID:Fe,applyGlobeMatrix:!N,applyTerrainMatrix:!0})};if(se){const dr=Re.segments.get();for(const fr of dr)xe.push({segments:new s.aJ([fr]),sortKey:fr.sortKey,state:Qt})}else xe.push({segments:Re.segments,sortKey:0,state:Qt})}se&&xe.sort((Ee,Fe)=>Ee.sortKey-Fe.sortKey);for(const Ee of xe){const{programConfiguration:Fe,program:Le,layoutVertexBuffer:Re,indexBuffer:De,uniformValues:Ye,terrainData:Qe,projectionData:We}=Ee.state;Le.draw(ne,oe.TRIANGLES,me,fe,ge,Ft.backCCW,Ye,Qe,We,A.id,Re,De,Ee.segments,A.paint,g.transform.zoom,Fe)}}(e,r,a,l,p):s.c5(a)?function(g,b,A,I,z){if(A.paint.get("heatmap-opacity")===0)return;const N=g.context,{isRenderingToTexture:O,isRenderingGlobe:Z}=z;if(g.style.map.terrain){for(const J of I){const se=b.getTile(J);b.hasRenderableParent(J)||(g.renderPass==="offscreen"?ra(g,se,A,J,Z):g.renderPass==="translucent"&&ol(g,A,J,O,Z))}N.viewport.set([0,0,g.width,g.height])}else g.renderPass==="offscreen"?function(J,se,ne,oe){const ue=J.context,me=ue.gl,fe=J.transform,ge=Ct.disabled,xe=new Jt([me.ONE,me.ONE],s.b7.transparent,[!0,!0,!0,!0]);(function(_e,Ee,Fe){const Le=_e.gl;_e.activeTexture.set(Le.TEXTURE1),_e.viewport.set([0,0,Ee.width/4,Ee.height/4]);let Re=Fe.heatmapFbos.get(s.bW);Re?(Le.bindTexture(Le.TEXTURE_2D,Re.colorAttachment.get()),_e.bindFramebuffer.set(Re.framebuffer)):(Re=ia(_e,Ee.width/4,Ee.height/4),Fe.heatmapFbos.set(s.bW,Re))})(ue,J,ne),ue.clear({color:s.b7.transparent});for(let _e=0;_e<oe.length;_e++){const Ee=oe[_e];if(se.hasRenderableParent(Ee))continue;const Fe=se.getTile(Ee),Le=Fe.getBucket(ne);if(!Le)continue;const Re=Le.programConfigurations.get(ne.id),De=J.useProgram("heatmap",Re),Ye=fe.getProjectionData({overscaledTileID:Ee,applyGlobeMatrix:!0,applyTerrainMatrix:!1}),Qe=fe.getCircleRadiusCorrection();De.draw(ue,me.TRIANGLES,wt.disabled,ge,xe,Ft.backCCW,Gn(Fe,fe.zoom,ne.paint.get("heatmap-intensity"),Qe),null,Ye,ne.id,Le.layoutVertexBuffer,Le.indexBuffer,Le.segments,ne.paint,fe.zoom,Re)}ue.viewport.set([0,0,J.width,J.height])}(g,b,A,I):g.renderPass==="translucent"&&function(J,se){const ne=J.context,oe=ne.gl;ne.setColorMode(J.colorModeForRenderPass());const ue=se.heatmapFbos.get(s.bW);ue&&(ne.activeTexture.set(oe.TEXTURE0),oe.bindTexture(oe.TEXTURE_2D,ue.colorAttachment.get()),ne.activeTexture.set(oe.TEXTURE1),al(ne,se).bind(oe.LINEAR,oe.CLAMP_TO_EDGE),J.useProgram("heatmapTexture").draw(ne,oe.TRIANGLES,wt.disabled,Ct.disabled,J.colorModeForRenderPass(),Ft.disabled,mc(J,se,0,1),null,null,se.id,J.viewportBuffer,J.quadTriangleIndexBuffer,J.viewportSegments,se.paint,J.transform.zoom))}(g,A)}(e,r,a,l,p):s.c6(a)?function(g,b,A,I,z){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=A.paint.get("line-opacity"),Z=A.paint.get("line-width");if(O.constantOr(1)===0||Z.constantOr(1)===0)return;const J=g.getDepthModeForSublayer(0,wt.ReadOnly),se=g.colorModeForRenderPass(),ne=A.paint.get("line-dasharray"),oe=A.paint.get("line-pattern"),ue=oe.constantOr(1),me=A.paint.get("line-gradient"),fe=A.getCrossfadeParameters(),ge=ue?"linePattern":ne?"lineSDF":me?"lineGradient":"line",xe=g.context,_e=xe.gl,Ee=g.transform;let Fe=!0;for(const Le of I){const Re=b.getTile(Le);if(ue&&!Re.patternsLoaded())continue;const De=Re.getBucket(A);if(!De)continue;const Ye=De.programConfigurations.get(A.id),Qe=g.context.program.get(),We=g.useProgram(ge,Ye),ot=Fe||We.program!==Qe,Et=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Le),Ot=oe.constantOr(null);if(Ot&&Re.imageAtlas){const tr=Re.imageAtlas,Ht=tr.patternPositions[Ot.to.toString()],Br=tr.patternPositions[Ot.from.toString()];Ht&&Br&&Ye.setConstantPatternPositions(Ht,Br)}const pr=Ee.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!N,applyTerrainMatrix:!0}),Qt=Ee.getPixelScale(),dr=ue?vc(g,Re,A,Qt,fe):ne?xc(g,Re,A,Qt,ne,fe):me?_c(g,Re,A,Qt,De.lineClipsArray.length):$s(g,Re,A,Qt);if(ue)xe.activeTexture.set(_e.TEXTURE0),Re.imageAtlasTexture.bind(_e.LINEAR,_e.CLAMP_TO_EDGE),Ye.updatePaintBuffers(fe);else if(ne&&(ot||g.lineAtlas.dirty))xe.activeTexture.set(_e.TEXTURE0),g.lineAtlas.bind(xe);else if(me){const tr=De.gradients[A.id];let Ht=tr.texture;if(A.gradientVersion!==tr.version){let Br=256;if(A.stepInterpolant){const Ur=b.getSource().maxzoom,Qr=Le.canonical.z===Ur?Math.ceil(1<<g.transform.maxZoom-Le.canonical.z):1;Br=s.ae(s.bX(De.maxLineLength/s.Z*1024*Qr),256,xe.maxTextureSize)}tr.gradient=s.bY({expression:A.gradientExpression(),evaluationKey:"lineProgress",resolution:Br,image:tr.gradient||void 0,clips:De.lineClipsArray}),tr.texture?tr.texture.update(tr.gradient):tr.texture=new Ze(xe,tr.gradient,_e.RGBA),tr.version=A.gradientVersion,Ht=tr.texture}xe.activeTexture.set(_e.TEXTURE0),Ht.bind(A.stepInterpolant?_e.NEAREST:_e.LINEAR,_e.CLAMP_TO_EDGE)}const fr=g.stencilModeForClipping(Le);We.draw(xe,_e.TRIANGLES,J,fr,se,Ft.disabled,dr,Et,pr,A.id,De.layoutVertexBuffer,De.indexBuffer,De.segments,A.paint,g.transform.zoom,Ye,De.layoutVertexBuffer2),Fe=!1}}(e,r,a,l,p):s.c7(a)?function(g,b,A,I,z){const N=A.paint.get("fill-color"),O=A.paint.get("fill-opacity");if(O.constantOr(1)===0)return;const{isRenderingToTexture:Z}=z,J=g.colorModeForRenderPass(),se=A.paint.get("fill-pattern"),ne=g.opaquePassEnabledForLayer()&&!se.constantOr(1)&&N.constantOr(s.b7.transparent).a===1&&O.constantOr(0)===1?"opaque":"translucent";if(g.renderPass===ne){const oe=g.getDepthModeForSublayer(1,g.renderPass==="opaque"?wt.ReadWrite:wt.ReadOnly);no(g,b,A,I,oe,J,!1,Z)}if(g.renderPass==="translucent"&&A.paint.get("fill-antialias")){const oe=g.getDepthModeForSublayer(A.getPaintProperty("fill-outline-color")?2:0,wt.ReadOnly);no(g,b,A,I,oe,J,!0,Z)}}(e,r,a,l,p):s.c8(a)?function(g,b,A,I,z){const N=A.paint.get("fill-extrusion-opacity");if(N===0)return;const{isRenderingToTexture:O}=z;if(g.renderPass==="translucent"){const Z=new wt(g.context.gl.LEQUAL,wt.ReadWrite,g.depthRangeFor3D);if(N!==1||A.paint.get("fill-extrusion-pattern").constantOr(1))so(g,b,A,I,Z,Ct.disabled,Jt.disabled,O),so(g,b,A,I,Z,g.stencilModeFor3D(),g.colorModeForRenderPass(),O);else{const J=g.colorModeForRenderPass();so(g,b,A,I,Z,Ct.disabled,J,O)}}}(e,r,a,l,p):s.c9(a)?function(g,b,A,I,z){if(g.renderPass!=="offscreen"&&g.renderPass!=="translucent")return;const{isRenderingToTexture:N}=z,O=g.context,Z=g.style.projection.useSubdivision,J=g.getDepthModeForSublayer(0,wt.ReadOnly),se=g.colorModeForRenderPass();if(g.renderPass==="offscreen")(function(ne,oe,ue,me,fe,ge,xe){const _e=ne.context,Ee=_e.gl;for(const Fe of ue){const Le=oe.getTile(Fe),Re=Le.dem;if(!Re||!Re.data||!Le.needsHillshadePrepare)continue;const De=Re.dim,Ye=Re.stride,Qe=Re.getPixels();if(_e.activeTexture.set(Ee.TEXTURE1),_e.pixelStoreUnpackPremultiplyAlpha.set(!1),Le.demTexture=Le.demTexture||ne.getTileTexture(Ye),Le.demTexture){const ot=Le.demTexture;ot.update(Qe,{premultiply:!1}),ot.bind(Ee.NEAREST,Ee.CLAMP_TO_EDGE)}else Le.demTexture=new Ze(_e,Qe,Ee.RGBA,{premultiply:!1}),Le.demTexture.bind(Ee.NEAREST,Ee.CLAMP_TO_EDGE);_e.activeTexture.set(Ee.TEXTURE0);let We=Le.fbo;if(!We){const ot=new Ze(_e,{width:De,height:De,data:null},Ee.RGBA);ot.bind(Ee.LINEAR,Ee.CLAMP_TO_EDGE),We=Le.fbo=_e.createFramebuffer(De,De,!0,!1),We.colorAttachment.set(ot.texture)}_e.bindFramebuffer.set(We.framebuffer),_e.viewport.set([0,0,De,De]),ne.useProgram("hillshadePrepare").draw(_e,Ee.TRIANGLES,fe,ge,xe,Ft.disabled,Ah(Le.tileID,Re),null,null,me.id,ne.rasterBoundsBuffer,ne.quadTriangleIndexBuffer,ne.rasterBoundsSegments),Le.needsHillshadePrepare=!1}})(g,b,I,A,J,Ct.disabled,se),O.viewport.set([0,0,g.width,g.height]);else if(g.renderPass==="translucent")if(Z){const[ne,oe,ue]=g.stencilConfigForOverlapTwoPass(I);ll(g,b,A,ue,ne,J,se,!1,N),ll(g,b,A,ue,oe,J,se,!0,N)}else{const[ne,oe]=g.getStencilConfigForOverlapAndUpdateStencilID(I);ll(g,b,A,oe,ne,J,se,!1,N)}}(e,r,a,l,p):s.ca(a)?function(g,b,A,I,z){if(g.renderPass!=="translucent"||A.paint.get("raster-opacity")===0||!I.length)return;const{isRenderingToTexture:N}=z,O=b.getSource(),Z=g.style.projection.useSubdivision;if(O instanceof mt)na(g,b,A,I,null,!1,!1,O.tileCoords,O.flippedWindingOrder,N);else if(Z){const[J,se,ne]=g.stencilConfigForOverlapTwoPass(I);na(g,b,A,ne,J,!1,!0,oo,!1,N),na(g,b,A,ne,se,!0,!0,oo,!1,N)}else{const[J,se]=g.getStencilConfigForOverlapAndUpdateStencilID(I);na(g,b,A,se,J,!1,!0,oo,!1,N)}}(e,r,a,l,p):s.cb(a)?function(g,b,A,I,z){const N=A.paint.get("background-color"),O=A.paint.get("background-opacity");if(O===0)return;const{isRenderingToTexture:Z}=z,J=g.context,se=J.gl,ne=g.style.projection,oe=g.transform,ue=oe.tileSize,me=A.paint.get("background-pattern");if(g.isPatternMissing(me))return;const fe=!me&&N.a===1&&O===1&&g.opaquePassEnabledForLayer()?"opaque":"translucent";if(g.renderPass!==fe)return;const ge=Ct.disabled,xe=g.getDepthModeForSublayer(0,fe==="opaque"?wt.ReadWrite:wt.ReadOnly),_e=g.colorModeForRenderPass(),Ee=g.useProgram(me?"backgroundPattern":"background"),Fe=I||be(oe,{tileSize:ue,terrain:g.style.map.terrain});me&&(J.activeTexture.set(se.TEXTURE0),g.imageManager.bind(g.context));const Le=A.getCrossfadeParameters();for(const Re of Fe){const De=oe.getProjectionData({overscaledTileID:Re,applyGlobeMatrix:!Z,applyTerrainMatrix:!0}),Ye=me?Th(O,g,me,{tileID:Re,tileSize:ue},Le):kh(O,N),Qe=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Re),We=ne.getMeshFromTileID(J,Re.canonical,!1,!0,"raster");Ee.draw(J,se.TRIANGLES,xe,ge,_e,Ft.backCCW,Ye,Qe,De,A.id,We.vertexBuffer,We.indexBuffer,We.segments)}}(e,0,a,l,p):s.cc(a)&&function(g,b,A,I){const{isRenderingGlobe:z}=I,N=g.context,O=A.implementation,Z=g.style.projection,J=g.transform,se=J.getProjectionDataForCustomLayer(z),ne={farZ:J.farZ,nearZ:J.nearZ,fov:J.fov*Math.PI/180,modelViewProjectionMatrix:J.modelViewProjectionMatrix,projectionMatrix:J.projectionMatrix,shaderData:{variantName:Z.shaderVariantName,vertexShaderPrelude:`const float PI = 3.141592653589793;
800
+ uniform mat4 u_projection_matrix;
801
+ ${Z.shaderPreludeCode.vertexSource}`,define:Z.shaderDefine},defaultProjectionData:se},oe=O.renderingMode?O.renderingMode:"2d";if(g.renderPass==="offscreen"){const ue=O.prerender;ue&&(g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),ue.call(O,N.gl,ne),N.setDirty(),g.setBaseState())}else if(g.renderPass==="translucent"){g.setCustomLayerDefaults(),N.setColorMode(g.colorModeForRenderPass()),N.setStencilMode(Ct.disabled);const ue=oe==="3d"?g.getDepthModeFor3D():g.getDepthModeForSublayer(0,wt.ReadOnly);N.setDepthMode(ue),O.render(N.gl,ne),N.setDirty(),g.setBaseState(),N.bindFramebuffer.set(null)}}(e,0,a,p))}saveTileTexture(e){const r=this._tileTextures[e.size[0]];r?r.push(e):this._tileTextures[e.size[0]]=[e]}getTileTexture(e){const r=this._tileTextures[e];return r&&r.length>0?r.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const r=this.imageManager.getPattern(e.from.toString()),a=this.imageManager.getPattern(e.to.toString());return!r||!a}useProgram(e,r,a=!1,l=[]){this.cache=this.cache||{};const p=!!this.style.map.terrain,g=this.style.projection,b=a?ci.projectionMercator:g.shaderPreludeCode,A=a?jn:g.shaderDefine,I=e+(r?r.cacheKey:"")+`/${a?Vt:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(p?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[I]||(this.cache[I]=new Oo(this.context,ci[e],r,Ac[e],this._showOverdrawInspector,p,b,A,l)),this.cache[I]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Ze(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:r}=this.context.gl;return this.width!==e||this.height!==r}}function lo(u,e){let r,a=!1,l=null,p=null;const g=()=>{l=null,a&&(u.apply(p,r),l=setTimeout(g,e),a=!1)};return(...b)=>(a=!0,p=this,r=b,l||g(),l)}class hl{constructor(e){this._getCurrentHash=()=>{const r=window.location.hash.replace("#","");if(this._hashName){let a;return r.split("&").map(l=>l.split("=")).forEach(l=>{l[0]===this._hashName&&(a=l)}),(a&&a[1]||"").split("/")}return r.split("/")},this._onHashChange=()=>{const r=this._getCurrentHash();if(!this._isValidHash(r))return!1;const a=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(r[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+r[2],+r[1]],zoom:+r[0],bearing:a,pitch:+(r[4]||0)}),!0},this._updateHashUnthrottled=()=>{const r=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,r)},this._removeHash=()=>{const r=this._getCurrentHash();if(r.length===0)return;const a=r.join("/");let l=a;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${a}`);let p=window.location.hash.replace(l,"");p.startsWith("#&")?p=p.slice(0,1)+p.slice(2):p==="#"&&(p="");let g=window.location.href.replace(/(#.+)?$/,p);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=lo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){const r=this._map.getCenter(),a=Math.round(100*this._map.getZoom())/100,l=Math.ceil((a*Math.LN2+Math.log(512/360/.5))/Math.LN10),p=Math.pow(10,l),g=Math.round(r.lng*p)/p,b=Math.round(r.lat*p)/p,A=this._map.getBearing(),I=this._map.getPitch();let z="";if(z+=e?`/${g}/${b}/${a}`:`${a}/${b}/${g}`,(A||I)&&(z+="/"+Math.round(10*A)/10),I&&(z+=`/${Math.round(I)}`),this._hashName){const N=this._hashName;let O=!1;const Z=window.location.hash.slice(1).split("&").map(J=>{const se=J.split("=")[0];return se===N?(O=!0,`${se}=${z}`):J}).filter(J=>J);return O||Z.push(`${N}=${z}`),`#${Z.join("&")}`}return`#${z}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.Q(+e[2],+e[1])}catch{return!1}const r=+e[0],a=+(e[3]||0),l=+(e[4]||0);return r>=this._map.getMinZoom()&&r<=this._map.getMaxZoom()&&a>=-180&&a<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const sn={linearity:.3,easing:s.cd(0,0,.3,1)},pl=s.e({deceleration:2500,maxSpeed:1400},sn),co=s.e({deceleration:20,maxSpeed:1400},sn),dl=s.e({deceleration:1e3,maxSpeed:360},sn),Fc=s.e({deceleration:1e3,maxSpeed:90},sn),Oc=s.e({deceleration:1e3,maxSpeed:360},sn);class Nc{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:R.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,r=R.now();for(;e.length>0&&r-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const r={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:p}of this._inertiaBuffer)r.zoom+=p.zoomDelta||0,r.bearing+=p.bearingDelta||0,r.pitch+=p.pitchDelta||0,r.roll+=p.rollDelta||0,p.panDelta&&r.pan._add(p.panDelta),p.around&&(r.around=p.around),p.pinchAround&&(r.pinchAround=p.pinchAround);const a=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(r.pan.mag()){const p=ws(r.pan.mag(),a,s.e({},pl,e||{})),g=r.pan.mult(p.amount/r.pan.mag()),b=this._map.cameraHelper.handlePanInertia(g,this._map.transform);l.center=b.easingCenter,l.offset=b.easingOffset,bs(l,p)}if(r.zoom){const p=ws(r.zoom,a,co);l.zoom=this._map.transform.zoom+p.amount,bs(l,p)}if(r.bearing){const p=ws(r.bearing,a,dl);l.bearing=this._map.transform.bearing+s.ae(p.amount,-179,179),bs(l,p)}if(r.pitch){const p=ws(r.pitch,a,Fc);l.pitch=this._map.transform.pitch+p.amount,bs(l,p)}if(r.roll){const p=ws(r.roll,a,Oc);l.roll=this._map.transform.roll+s.ae(p.amount,-179,179),bs(l,p)}if(l.zoom||l.bearing){const p=r.pinchAround===void 0?r.around:r.pinchAround;l.around=p?this._map.unproject(p):this._map.getCenter()}return this.clear(),s.e(l,{noMoveStart:!0})}}function bs(u,e){(!u.duration||u.duration<e.duration)&&(u.duration=e.duration,u.easing=e.easing)}function ws(u,e,r){const{maxSpeed:a,linearity:l,deceleration:p}=r,g=s.ae(u*l/(e/1e3),-a,a),b=Math.abs(g)/(p*l);return{easing:r.easing,duration:1e3*b,amount:g*(b/2)}}class zr extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a,l={}){a=a instanceof MouseEvent?a:new MouseEvent(e,a);const p=T.mousePos(r.getCanvas(),a),g=r.unproject(p);super(e,s.e({point:p,lngLat:g,originalEvent:a},l)),this._defaultPrevented=!1,this.target=r}}class Ss extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){const l=e==="touchend"?a.changedTouches:a.touches,p=T.touchPos(r.getCanvasContainer(),l),g=p.map(A=>r.unproject(A)),b=p.reduce((A,I,z,N)=>A.add(I.div(N.length)),new s.P(0,0));super(e,{points:p,point:b,lngLats:g,lngLat:r.unproject(b),originalEvent:a}),this._defaultPrevented=!1}}class fl extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){super(e,{originalEvent:a}),this._defaultPrevented=!1}}class qc{constructor(e,r){this._map=e,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new fl(e.type,this._map,e))}mousedown(e,r){return this._mousedownPos=r,this._firePreventable(new zr(e.type,this._map,e))}mouseup(e){this._map.fire(new zr(e.type,this._map,e))}click(e,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||this._map.fire(new zr(e.type,this._map,e))}dblclick(e){return this._firePreventable(new zr(e.type,this._map,e))}mouseover(e){this._map.fire(new zr(e.type,this._map,e))}mouseout(e){this._map.fire(new zr(e.type,this._map,e))}touchstart(e){return this._firePreventable(new Ss(e.type,this._map,e))}touchmove(e){this._map.fire(new Ss(e.type,this._map,e))}touchend(e){this._map.fire(new Ss(e.type,this._map,e))}touchcancel(e){this._map.fire(new Ss(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Uc{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new zr(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new zr("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new zr(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class As{constructor(e){this._map=e}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class ml{constructor(e,r){this._map=e,this._tr=new As(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,r){this.isEnabled()&&e.shiftKey&&e.button===0&&(T.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(e,r){if(!this._active)return;const a=r;if(this._lastPos.equals(a)||!this._box&&a.dist(this._startPos)<this._clickTolerance)return;const l=this._startPos;this._lastPos=a,this._box||(this._box=T.create("div","maplibregl-boxzoom",this._container),this._container.classList.add("maplibregl-crosshair"),this._fireEvent("boxzoomstart",e));const p=Math.min(l.x,a.x),g=Math.max(l.x,a.x),b=Math.min(l.y,a.y),A=Math.max(l.y,a.y);T.setTransform(this._box,`translate(${p}px,${b}px)`),this._box.style.width=g-p+"px",this._box.style.height=A-b+"px"}mouseupWindow(e,r){if(!this._active||e.button!==0)return;const a=this._startPos,l=r;if(this.reset(),T.suppressClick(),a.x!==l.x||a.y!==l.y)return this._map.fire(new s.l("boxzoomend",{originalEvent:e})),{cameraAnimation:p=>p.fitScreenCoordinates(a,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(T.remove(this._box),this._box=null),T.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,r){return this._map.fire(new s.l(e,{originalEvent:r}))}}function la(u,e){if(u.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${u.length}, points ${e.length}`);const r={};for(let a=0;a<u.length;a++)r[u[a].identifier]=e[a];return r}class jc{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(e,r,a){(this.centroid||a.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),a.length===this.numTouches&&(this.centroid=function(l){const p=new s.P(0,0);for(const g of l)p._add(g);return p.div(l.length)}(r),this.touches=la(a,r)))}touchmove(e,r,a){if(this.aborted||!this.centroid)return;const l=la(a,r);for(const p in this.touches){const g=l[p];(!g||g.dist(this.touches[p])>30)&&(this.aborted=!0)}}touchend(e,r,a){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),a.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class ks{constructor(e){this.singleTap=new jc(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,r,a){this.singleTap.touchstart(e,r,a)}touchmove(e,r,a){this.singleTap.touchmove(e,r,a)}touchend(e,r,a){const l=this.singleTap.touchend(e,r,a);if(l){const p=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(l)<30;if(p&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Hc{constructor(e){this._tr=new As(e),this._zoomIn=new ks({numTouches:1,numTaps:2}),this._zoomOut=new ks({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,r,a){this._zoomIn.touchstart(e,r,a),this._zoomOut.touchstart(e,r,a)}touchmove(e,r,a){this._zoomIn.touchmove(e,r,a),this._zoomOut.touchmove(e,r,a)}touchend(e,r,a){const l=this._zoomIn.touchend(e,r,a),p=this._zoomOut.touchend(e,r,a),g=this._tr;return l?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(l)},{originalEvent:e})}):p?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(p)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ni{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const r=this._moveFunction(...e);if(r.bearingDelta||r.pitchDelta||r.rollDelta||r.around||r.panDelta)return this._active=!0,r}dragStart(e,r){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(r)?r[0]:r,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,r){if(!this.isEnabled())return;const a=this._lastPoint;if(!a)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const l=Array.isArray(r)?r[0]:r;return!this._moved&&l.dist(a)<this._clickTolerance?void 0:(this._moved=!0,this._lastPoint=l,this._move(a,l))}dragEnd(e){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(e)&&(this._moved&&T.suppressClick(),this.reset(e))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}}const Wi={0:1,2:2};class Ts{constructor(e){this._correctEvent=e.checkCorrectEvent}startMove(e){const r=T.mouseButton(e);this._eventButton=r}endMove(e){delete this._eventButton}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return!function(r,a){const l=Wi[a];return r.buttons===void 0||(r.buttons&l)!==l}(e,this._eventButton)}isValidEndEvent(e){return T.mouseButton(e)===this._eventButton}}class Zi{constructor(){this._firstTouch=void 0}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier}endMove(e){delete this._firstTouch}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}}class Cs{constructor(e=new Ts({checkCorrectEvent:()=>!0}),r=new Zi){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=r}_executeRelevantHandler(e,r,a){return e instanceof MouseEvent?r(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?a(e):void 0}startMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.startMove(r),r=>this.oneFingerTouchMoveStateManager.startMove(r))}endMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.endMove(r),r=>this.oneFingerTouchMoveStateManager.endMove(r))}isValidStartEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidStartEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidStartEvent(r))}isValidMoveEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidMoveEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(r))}isValidEndEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidEndEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidEndEvent(r))}}const ca=u=>{u.mousedown=u.dragStart,u.mousemoveWindow=u.dragMove,u.mouseup=u.dragEnd,u.contextmenu=e=>{e.preventDefault()}};class zh{constructor(e,r){this._clickTolerance=e.clickTolerance||1,this._map=r,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,r,a){return this._calculateTransform(e,r,a)}touchmove(e,r,a){if(this._active){if(!this._shouldBePrevented(a.length))return e.preventDefault(),this._calculateTransform(e,r,a);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,r,a){this._calculateTransform(e,r,a),this._active&&this._shouldBePrevented(a.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,r,a){a.length>0&&(this._active=!0);const l=la(a,r),p=new s.P(0,0),g=new s.P(0,0);let b=0;for(const I in l){const z=l[I],N=this._touches[I];N&&(p._add(z),g._add(z.sub(N)),b++,l[I]=z)}if(this._touches=l,this._shouldBePrevented(b)||!g.mag())return;const A=g.div(b);return this._sum._add(A),this._sum.mag()<this._clickTolerance?void 0:{around:p.div(b),panDelta:A}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class gl{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(e,r,a){this._firstTwoTouches||a.length<2||(this._firstTwoTouches=[a[0].identifier,a[1].identifier],this._start([r[0],r[1]]))}touchmove(e,r,a){if(!this._firstTwoTouches)return;e.preventDefault();const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);if(!g||!b)return;const A=this._aroundCenter?null:g.add(b).div(2);return this._move([g,b],A,e)}touchend(e,r,a){if(!this._firstTwoTouches)return;const[l,p]=this._firstTwoTouches,g=ua(a,r,l),b=ua(a,r,p);g&&b||(this._active&&T.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(e){this._enabled=!0,this._aroundCenter=!!e&&e.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}}function ua(u,e,r){for(let a=0;a<u.length;a++)if(u[a].identifier===r)return e[a]}function yl(u,e){return Math.log(u/e)/Math.LN2}class Es extends gl{reset(){super.reset(),delete this._distance,delete this._startDistance}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,r){const a=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(yl(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:yl(this._distance,a),pinchAround:r}}}function on(u,e){return 180*u.angleWith(e)/Math.PI}class it extends gl{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,r,a){const l=this._vector;if(this._vector=e[0].sub(e[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:on(this._vector,l),pinchAround:r}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());const r=25/(Math.PI*this._minDiameter)*360,a=on(e,this._startVector);return Math.abs(a)<r}}function ha(u){return Math.abs(u.y)>Math.abs(u.x)}class pa extends gl{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,r,a){super.touchstart(e,r,a),this._currentTouchCount=a.length}_start(e){this._lastPoints=e,ha(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,r,a){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=e[0].sub(this._lastPoints[0]),p=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,p,a.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(l.y+p.y)/2*-.5}):void 0}gestureBeginsVertically(e,r,a){if(this._valid!==void 0)return this._valid;const l=e.mag()>=2,p=r.mag()>=2;if(!l&&!p)return;if(!l||!p)return this._firstMove===void 0&&(this._firstMove=a),a-this._firstMove<100&&void 0;const g=e.y>0==r.y>0;return ha(e)&&ha(r)&&g}}const Wc={panStep:100,bearingStep:15,pitchStep:10};class Ps{constructor(e){this._tr=new As(e);const r=Wc;this._panStep=r.panStep,this._bearingStep=r.bearingStep,this._pitchStep=r.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let r=0,a=0,l=0,p=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:e.shiftKey?a=-1:(e.preventDefault(),p=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),p=1);break;case 38:e.shiftKey?l=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?l=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(a=0,l=0),{cameraAnimation:b=>{const A=this._tr;b.easeTo({duration:300,easeId:"keyboardHandler",easing:uo,zoom:r?Math.round(A.zoom)+r*(e.shiftKey?2:1):A.zoom,bearing:A.bearing+a*this._bearingStep,pitch:A.pitch+l*this._pitchStep,offset:[-p*this._panStep,-g*this._panStep],center:A.center},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function uo(u){return u*(2-u)}const _l=4.000244140625;class Rt{constructor(e,r){this._onTimeout=a=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(a)},this._map=e,this._tr=new As(e),this._triggerRenderFrame=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let r=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const a=R.now(),l=a-(this._lastWheelEventTime||0);this._lastWheelEventTime=a,r!==0&&r%_l==0?this._type="wheel":r!==0&&Math.abs(r)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(l*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const r=T.mousePos(this._map.getCanvas(),e),a=this._tr;this._aroundPoint=this._aroundCenter?a.transform.locationToScreenPoint(s.Q.convert(a.center)):r,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const b=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=b),typeof this._targetZoom=="number"&&(this._targetZoom+=b)}if(this._delta!==0){const b=this._type==="wheel"&&Math.abs(this._delta)>_l?this._wheelZoomRate:this._defaultZoomRate;let A=2/(1+Math.exp(-Math.abs(this._delta*b)));this._delta<0&&A!==0&&(A=1/A);const I=typeof this._targetZoom!="number"?e.scale:s.ac(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ah(I*A)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const r=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,a=this._startZoom,l=this._easing;let p,g=!1;if(this._type==="wheel"&&a&&l){const b=R.now()-this._lastWheelEventTime,A=Math.min((b+5)/200,1),I=l(A);p=s.B.number(a,r,I),A<1?this._frameId||(this._frameId=!0):g=!0}else p=r,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout},200)),this._lastExpectedZoom=p,{noInertia:!0,needsRenderFrame:!g,zoomDelta:p-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let r=s.cf;if(this._prevEase){const a=this._prevEase,l=(R.now()-a.start)/a.duration,p=a.easing(l+.01)-a.easing(l),g=.27/Math.sqrt(p*p+1e-4)*.01,b=Math.sqrt(.0729-g*g);r=s.cd(g,b,.25,1)}return this._prevEase={start:R.now(),duration:e,easing:r},r}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class da{constructor(e,r){this._clickZoom=e,this._tapZoom=r}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Bh{constructor(e){this._tr=new As(e),this.reset()}reset(){this._active=!1}dblclick(e,r){return e.preventDefault(),{cameraAnimation:a=>{a.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(r)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class vl{constructor(){this._tap=new ks({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(e,r,a){if(!this._swipePoint)if(this._tapTime){const l=r[0],p=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(l)<30;p&&g?a.length>0&&(this._swipePoint=l,this._swipeTouch=a[0].identifier):this.reset()}else this._tap.touchstart(e,r,a)}touchmove(e,r,a){if(this._tapTime){if(this._swipePoint){if(a[0].identifier!==this._swipeTouch)return;const l=r[0],p=l.y-this._swipePoint.y;return this._swipePoint=l,e.preventDefault(),this._active=!0,{zoomDelta:p/128}}}else this._tap.touchmove(e,r,a)}touchend(e,r,a){if(this._tapTime)this._swipePoint&&a.length===0&&this.reset();else{const l=this._tap.touchend(e,r,a);l&&(this._tapTime=e.timeStamp,this._tapPoint=l)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Zc{constructor(e,r,a){this._el=e,this._mousePan=r,this._touchPan=a}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Kc{constructor(e,r,a,l){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=r,this._mousePitch=a,this._mouseRoll=l}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class xl{constructor(e,r,a,l){this._el=e,this._touchZoom=r,this._touchRotate=a,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class fa{constructor(e,r){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=r,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=T.create("div","maplibregl-cooperative-gesture-screen",e);let r=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(r=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const a=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=r,this._container.appendChild(l);const p=document.createElement("div");p.className="maplibregl-mobile-message",p.textContent=a,this._container.appendChild(p),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(T.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,r){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:r})),this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const ho=u=>u.zoom||u.drag||u.roll||u.pitch||u.rotate;class Vh extends s.l{}function ma(u){return u.panDelta&&u.panDelta.mag()||u.zoomDelta||u.bearingDelta||u.pitchDelta||u.rollDelta}class Fh{constructor(e,r){this.handleWindowEvent=l=>{this.handleEvent(l,`${l.type}Window`)},this.handleEvent=(l,p)=>{if(l.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=l.type==="renderFrame"?void 0:l,b={needsRenderFrame:!1},A={},I={};for(const{handlerName:O,handler:Z,allowed:J}of this._handlers){if(!Z.isEnabled())continue;let se;if(this._blockedByActive(I,J,O))Z.reset();else if(Z[p||l.type]){if(s.cg(l,p||l.type)){const ne=T.mousePos(this._map.getCanvas(),l);se=Z[p||l.type](l,ne)}else if(s.ch(l,p||l.type)){const ne=this._getMapTouches(l.touches),oe=T.touchPos(this._map.getCanvas(),ne);se=Z[p||l.type](l,oe,ne)}else s.ci(p||l.type)||(se=Z[p||l.type](l));this.mergeHandlerResult(b,A,se,O,g),se&&se.needsRenderFrame&&this._triggerRenderFrame()}(se||Z.isActive())&&(I[O]=Z)}const z={};for(const O in this._previousActiveHandlers)I[O]||(z[O]=g);this._previousActiveHandlers=I,(Object.keys(z).length||ma(b))&&(this._changes.push([b,A,z]),this._triggerRenderFrame()),(Object.keys(I).length||ma(b))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:N}=b;N&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],N(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Nc(e),this._bearingSnap=r.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(r);const a=this._el;this._listeners=[[a,"touchstart",{passive:!0}],[a,"touchmove",{passive:!1}],[a,"touchend",void 0],[a,"touchcancel",void 0],[a,"mousedown",void 0],[a,"mousemove",void 0],[a,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[a,"mouseover",void 0],[a,"mouseout",void 0],[a,"dblclick",void 0],[a,"click",void 0],[a,"keydown",{capture:!1}],[a,"keyup",void 0],[a,"wheel",{passive:!1}],[a,"contextmenu",void 0],[window,"blur",void 0]];for(const[l,p,g]of this._listeners)T.addEventListener(l,p,l===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,r,a]of this._listeners)T.removeEventListener(e,r,e===document?this.handleWindowEvent:this.handleEvent,a)}_addDefaultHandlers(e){const r=this._map,a=r.getCanvasContainer();this._add("mapEvent",new qc(r,e));const l=r.boxZoom=new ml(r,e);this._add("boxZoom",l),e.interactive&&e.boxZoom&&l.enable();const p=r.cooperativeGestures=new fa(r,e.cooperativeGestures);this._add("cooperativeGestures",p),e.cooperativeGestures&&p.enable();const g=new Hc(r),b=new Bh(r);r.doubleClickZoom=new da(b,g),this._add("tapZoom",g),this._add("clickZoom",b),e.interactive&&e.doubleClickZoom&&r.doubleClickZoom.enable();const A=new vl;this._add("tapDragZoom",A);const I=r.touchPitch=new pa(r);this._add("touchPitch",I),e.interactive&&e.touchPitch&&r.touchPitch.enable(e.touchPitch);const z=()=>r.project(r.getCenter()),N=function({enable:fe,clickTolerance:ge,aroundCenter:xe=!0,minPixelCenterThreshold:_e=100,rotateDegreesPerPixelMoved:Ee=.8},Fe){const Le=new Ts({checkCorrectEvent:Re=>T.mouseButton(Re)===0&&Re.ctrlKey||T.mouseButton(Re)===2&&!Re.ctrlKey});return new ni({clickTolerance:ge,move:(Re,De)=>{const Ye=Fe();if(xe&&Math.abs(Ye.y-Re.y)>_e)return{bearingDelta:s.ce(new s.P(Re.x,De.y),De,Ye)};let Qe=(De.x-Re.x)*Ee;return xe&&De.y<Ye.y&&(Qe=-Qe),{bearingDelta:Qe}},moveStateManager:Le,enable:fe,assignEvents:ca})}(e,z),O=function({enable:fe,clickTolerance:ge,pitchDegreesPerPixelMoved:xe=-.5}){const _e=new Ts({checkCorrectEvent:Ee=>T.mouseButton(Ee)===0&&Ee.ctrlKey||T.mouseButton(Ee)===2});return new ni({clickTolerance:ge,move:(Ee,Fe)=>({pitchDelta:(Fe.y-Ee.y)*xe}),moveStateManager:_e,enable:fe,assignEvents:ca})}(e),Z=function({enable:fe,clickTolerance:ge,rollDegreesPerPixelMoved:xe=.3},_e){const Ee=new Ts({checkCorrectEvent:Fe=>T.mouseButton(Fe)===2&&Fe.ctrlKey});return new ni({clickTolerance:ge,move:(Fe,Le)=>{const Re=_e();let De=(Le.x-Fe.x)*xe;return Le.y<Re.y&&(De=-De),{rollDelta:De}},moveStateManager:Ee,enable:fe,assignEvents:ca})}(e,z);r.dragRotate=new Kc(e,N,O,Z),this._add("mouseRotate",N,["mousePitch"]),this._add("mousePitch",O,["mouseRotate","mouseRoll"]),this._add("mouseRoll",Z,["mousePitch"]),e.interactive&&e.dragRotate&&r.dragRotate.enable();const J=function({enable:fe,clickTolerance:ge}){const xe=new Ts({checkCorrectEvent:_e=>T.mouseButton(_e)===0&&!_e.ctrlKey});return new ni({clickTolerance:ge,move:(_e,Ee)=>({around:Ee,panDelta:Ee.sub(_e)}),activateOnStart:!0,moveStateManager:xe,enable:fe,assignEvents:ca})}(e),se=new zh(e,r);r.dragPan=new Zc(a,J,se),this._add("mousePan",J),this._add("touchPan",se,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&r.dragPan.enable(e.dragPan);const ne=new it,oe=new Es;r.touchZoomRotate=new xl(a,oe,ne,A),this._add("touchRotate",ne,["touchPan","touchZoom"]),this._add("touchZoom",oe,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&r.touchZoomRotate.enable(e.touchZoomRotate);const ue=r.scrollZoom=new Rt(r,()=>this._triggerRenderFrame());this._add("scrollZoom",ue,["mousePan"]),e.interactive&&e.scrollZoom&&r.scrollZoom.enable(e.scrollZoom);const me=r.keyboard=new Ps(r);this._add("keyboard",me),e.interactive&&e.keyboard&&r.keyboard.enable(),this._add("blockableMapEvent",new Uc(r))}_add(e,r,a){this._handlers.push({handlerName:e,handler:r,allowed:a}),this._handlersById[e]=r}stop(e){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!ho(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,r,a){for(const l in e)if(l!==a&&(!r||r.indexOf(l)<0))return!0;return!1}_getMapTouches(e){const r=[];for(const a of e)this._el.contains(a.target)&&r.push(a);return r}mergeHandlerResult(e,r,a,l,p){if(!a)return;s.e(e,a);const g={handlerName:l,originalEvent:a.originalEvent||p};a.zoomDelta!==void 0&&(r.zoom=g),a.panDelta!==void 0&&(r.drag=g),a.rollDelta!==void 0&&(r.roll=g),a.pitchDelta!==void 0&&(r.pitch=g),a.bearingDelta!==void 0&&(r.rotate=g)}_applyChanges(){const e={},r={},a={};for(const[l,p,g]of this._changes)l.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(l.panDelta)),l.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(e.rollDelta=(e.rollDelta||0)+l.rollDelta),l.around!==void 0&&(e.around=l.around),l.pinchAround!==void 0&&(e.pinchAround=l.pinchAround),l.noInertia&&(e.noInertia=l.noInertia),s.e(r,p),s.e(a,g);this._updateMapTransform(e,r,a),this._changes=[]}_updateMapTransform(e,r,a){const l=this._map,p=l._getTransformForUpdate(),g=l.terrain;if(!(ma(e)||g&&this._terrainMovement))return this._fireEvents(r,a,!0);l._stop(!0);let{panDelta:b,zoomDelta:A,bearingDelta:I,pitchDelta:z,rollDelta:N,around:O,pinchAround:Z}=e;Z!==void 0&&(O=Z),O=O||l.transform.centerPoint,g&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const J={panDelta:b,zoomDelta:A,rollDelta:N,pitchDelta:z,bearingDelta:I,around:O};this._map.cameraHelper.useGlobeControls&&!p.isPointOnMapSurface(O)&&(O=p.centerPoint);const se=O.distSqr(p.centerPoint)<.01?p.center:p.screenPointToLocation(b?O.sub(b):O);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._terrainMovement||!r.drag&&!r.zoom?r.drag&&this._terrainMovement?p.setCenter(p.screenPointToLocation(p.centerPoint.sub(b))):this._map.cameraHelper.handleMapControlsPan(J,p,se):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(J,p,se))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,p),this._map.cameraHelper.handleMapControlsPan(J,p,se)),l._applyUpdatedTransform(p),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(r,a,!0)}_fireEvents(e,r,a){const l=ho(this._eventsInProgress),p=ho(e),g={};for(const N in e){const{originalEvent:O}=e[N];this._eventsInProgress[N]||(g[`${N}start`]=O),this._eventsInProgress[N]=e[N]}!l&&p&&this._fireEvent("movestart",p.originalEvent);for(const N in g)this._fireEvent(N,g[N]);p&&this._fireEvent("move",p.originalEvent);for(const N in e){const{originalEvent:O}=e[N];this._fireEvent(N,O)}const b={};let A;for(const N in this._eventsInProgress){const{handlerName:O,originalEvent:Z}=this._eventsInProgress[N];this._handlersById[O].isActive()||(delete this._eventsInProgress[N],A=r[O]||Z,b[`${N}end`]=A)}for(const N in b)this._fireEvent(N,b[N]);const I=ho(this._eventsInProgress),z=(l||p)&&!I;if(z&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const N=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&N.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(N)}if(a&&z){this._updatingCamera=!0;const N=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),O=Z=>Z!==0&&-this._bearingSnap<Z&&Z<this._bearingSnap;!N||!N.essential&&R.prefersReducedMotion?(this._map.fire(new s.l("moveend",{originalEvent:A})),O(this._map.getBearing())&&this._map.resetNorth()):(O(N.bearing||this._map.getBearing())&&(N.bearing=0),N.freezeElevation=!0,this._map.easeTo(N,{originalEvent:A})),this._updatingCamera=!1}}_fireEvent(e,r){this._map.fire(new s.l(e,r?{originalEvent:r}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new Vh("renderFrame",{timeStamp:e})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Oh extends s.E{constructor(e,r,a){super(),this._renderFrameCallback=()=>{const l=Math.min((R.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(l)),l<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=a.bearingSnap,this.cameraHelper=r,this.on("moveend",()=>{delete this._requestedCameraState})}migrateProjection(e,r){e.apply(this.transform),this.transform=e,this.cameraHelper=r}getCenter(){return new s.Q(this.transform.center.lng,this.transform.center.lat)}setCenter(e,r){return this.jumpTo({center:e},r)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,r){return this.jumpTo({elevation:e},r),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,r,a){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},r),a)}panTo(e,r,a){return this.easeTo(s.e({center:e},r),a)}getZoom(){return this.transform.zoom}setZoom(e,r){return this.jumpTo({zoom:e},r),this}zoomTo(e,r,a){return this.easeTo(s.e({zoom:e},r),a)}zoomIn(e,r){return this.zoomTo(this.getZoom()+1,e,r),this}zoomOut(e,r){return this.zoomTo(this.getZoom()-1,e,r),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,r){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)).fire(new s.l("moveend",r))),this}getBearing(){return this.transform.bearing}setBearing(e,r){return this.jumpTo({bearing:e},r),this}getPadding(){return this.transform.padding}setPadding(e,r){return this.jumpTo({padding:e},r),this}rotateTo(e,r,a){return this.easeTo(s.e({bearing:e},r),a)}resetNorth(e,r){return this.rotateTo(0,s.e({duration:1e3},e),r),this}resetNorthPitch(e,r){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),r),this}snapToNorth(e,r){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,r):this}getPitch(){return this.transform.pitch}setPitch(e,r){return this.jumpTo({pitch:e},r),this}getRoll(){return this.transform.roll}setRoll(e,r){return this.jumpTo({roll:e},r),this}cameraForBounds(e,r){e=Ke.convert(e).adjustAntiMeridian();const a=r&&r.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),a,r)}_cameraForBoxAndBearing(e,r,a,l){const p={top:0,bottom:0,right:0,left:0};if(typeof(l=s.e({padding:p,offset:[0,0],maxZoom:this.transform.maxZoom},l)).padding=="number"){const I=l.padding;l.padding={top:I,bottom:I,right:I,left:I}}const g=s.e(p,l.padding);l.padding=g;const b=this.transform,A=new Ke(e,r);return this.cameraHelper.cameraForBoxAndBearing(l,g,A,a,b)}fitBounds(e,r,a){return this._fitInternal(this.cameraForBounds(e,r),r,a)}fitScreenCoordinates(e,r,a,l,p){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(s.P.convert(e)),this.transform.screenPointToLocation(s.P.convert(r)),a,l),l,p)}_fitInternal(e,r,a){return e?(delete(r=s.e(e,r)).padding,r.linear?this.easeTo(r,a):this.flyTo(r,a)):this}jumpTo(e,r){this.stop();const a=this._getTransformForUpdate();let l=!1,p=!1,g=!1;const b=a.zoom;this.cameraHelper.handleJumpToCenterZoom(a,e);const A=a.zoom!==b;return"elevation"in e&&a.elevation!==+e.elevation&&a.setElevation(+e.elevation),"bearing"in e&&a.bearing!==+e.bearing&&(l=!0,a.setBearing(+e.bearing)),"pitch"in e&&a.pitch!==+e.pitch&&(p=!0,a.setPitch(+e.pitch)),"roll"in e&&a.roll!==+e.roll&&(g=!0,a.setRoll(+e.roll)),e.padding==null||a.isPaddingEqual(e.padding)||a.setPadding(e.padding),this._applyUpdatedTransform(a),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)),A&&this.fire(new s.l("zoomstart",r)).fire(new s.l("zoom",r)).fire(new s.l("zoomend",r)),l&&this.fire(new s.l("rotatestart",r)).fire(new s.l("rotate",r)).fire(new s.l("rotateend",r)),p&&this.fire(new s.l("pitchstart",r)).fire(new s.l("pitch",r)).fire(new s.l("pitchend",r)),g&&this.fire(new s.l("rollstart",r)).fire(new s.l("roll",r)).fire(new s.l("rollend",r)),this.fire(new s.l("moveend",r))}calculateCameraOptionsFromTo(e,r,a,l=0){const p=s.$.fromLngLat(e,r),g=s.$.fromLngLat(a,l),b=g.x-p.x,A=g.y-p.y,I=g.z-p.z,z=Math.hypot(b,A,I);if(z===0)throw new Error("Can't calculate camera options with same From and To");const N=Math.hypot(b,A),O=s.ah(this.transform.cameraToCenterDistance/z/this.transform.tileSize),Z=180*Math.atan2(b,-A)/Math.PI;let J=180*Math.acos(N/z)/Math.PI;return J=I<0?90-J:90+J,{center:g.toLngLat(),elevation:l,zoom:O,pitch:J,bearing:Z}}calculateCameraOptionsFromCameraLngLatAltRotation(e,r,a,l,p){const g=this.transform.calculateCenterFromCameraLngLatAlt(e,r,a,l);return{center:g.center,elevation:g.elevation,zoom:g.zoom,bearing:a,pitch:l,roll:p}}easeTo(e,r){this._stop(!1,e.easeId),((e=s.e({offset:[0,0],duration:500,easing:s.cf},e)).animate===!1||!e.essential&&R.prefersReducedMotion)&&(e.duration=0);const a=this._getTransformForUpdate(),l=this.getBearing(),p=a.pitch,g=a.roll,b="bearing"in e?this._normalizeBearing(e.bearing,l):l,A="pitch"in e?+e.pitch:p,I="roll"in e?this._normalizeBearing(e.roll,g):g,z="padding"in e?e.padding:a.padding,N=s.P.convert(e.offset);let O,Z;e.around&&(O=s.Q.convert(e.around),Z=a.locationToScreenPoint(O));const J={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},se=this.cameraHelper.handleEaseTo(a,{bearing:b,pitch:A,roll:I,padding:z,around:O,aroundPoint:Z,offsetAsPoint:N,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating=this._rotating||l!==b,this._pitching=this._pitching||A!==p,this._rolling=this._rolling||I!==g,this._padding=!a.isPaddingEqual(z),this._zooming=this._zooming||se.isZooming,this._easeId=e.easeId,this._prepareEase(r,e.noMoveStart,J),this.terrain&&this._prepareElevation(se.elevationCenter),this._ease(ne=>{se.easeFunc(ne),this.terrain&&!e.freezeElevation&&this._updateElevation(ne),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},ne=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r,ne)},e),this}_prepareEase(e,r,a={}){this._moving=!0,r||a.moving||this.fire(new s.l("movestart",e)),this._zooming&&!a.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!a.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!a.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!a.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const r=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&r!==this._elevationTarget){const a=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(a-(r-(a*e+this._elevationStart))/(1-e)),this._elevationTarget=r}this.transform.setElevation(s.B.number(this._elevationStart,this._elevationTarget,e))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const r=e.getCameraLngLat(),a=e.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(r,e.zoom):0;if(a<l){const p=this.calculateCameraOptionsFromTo(r,l,e.center,e.elevation);return{pitch:p.pitch,zoom:p.zoom}}return{}}_applyUpdatedTransform(e){const r=[];if(r.push(l=>this._elevateCameraIfInsideTerrain(l)),this.transformCameraUpdate&&r.push(l=>this.transformCameraUpdate(l)),!r.length)return;const a=e.clone();for(const l of r){const p=a.clone(),{center:g,zoom:b,roll:A,pitch:I,bearing:z,elevation:N}=l(p);g&&p.setCenter(g),N!==void 0&&p.setElevation(N),b!==void 0&&p.setZoom(b),A!==void 0&&p.setRoll(A),I!==void 0&&p.setPitch(I),z!==void 0&&p.setBearing(z),a.apply(p)}this.transform.apply(a)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,r){if(this._easeId&&r&&this._easeId===r)return;delete this._easeId;const a=this._zooming,l=this._rotating,p=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,a&&this.fire(new s.l("zoomend",e)),l&&this.fire(new s.l("rotateend",e)),p&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,r){if(!e.essential&&R.prefersReducedMotion){const De=s.O(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(De,r)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.cf},e);const a=this._getTransformForUpdate(),l=a.bearing,p=a.pitch,g=a.roll,b=a.padding,A="bearing"in e?this._normalizeBearing(e.bearing,l):l,I="pitch"in e?+e.pitch:p,z="roll"in e?this._normalizeBearing(e.roll,g):g,N="padding"in e?e.padding:a.padding,O=s.P.convert(e.offset);let Z=a.centerPoint.add(O);const J=a.screenPointToLocation(Z),se=this.cameraHelper.handleFlyTo(a,{bearing:A,pitch:I,roll:z,padding:N,locationAtOffset:J,offsetAsPoint:O,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let ne=e.curve;const oe=Math.max(a.width,a.height),ue=oe/se.scaleOfZoom,me=se.pixelPathLength;typeof se.scaleOfMinZoom=="number"&&(ne=Math.sqrt(oe/se.scaleOfMinZoom/me*2));const fe=ne*ne;function ge(De){const Ye=(ue*ue-oe*oe+(De?-1:1)*fe*fe*me*me)/(2*(De?ue:oe)*fe*me);return Math.log(Math.sqrt(Ye*Ye+1)-Ye)}function xe(De){return(Math.exp(De)-Math.exp(-De))/2}function _e(De){return(Math.exp(De)+Math.exp(-De))/2}const Ee=ge(!1);let Fe=function(De){return _e(Ee)/_e(Ee+ne*De)},Le=function(De){return oe*((_e(Ee)*(xe(Ye=Ee+ne*De)/_e(Ye))-xe(Ee))/fe)/me;var Ye},Re=(ge(!0)-Ee)/ne;if(Math.abs(me)<2e-6||!isFinite(Re)){if(Math.abs(oe-ue)<1e-6)return this.easeTo(e,r);const De=ue<oe?-1:1;Re=Math.abs(Math.log(ue/oe))/ne,Le=()=>0,Fe=Ye=>Math.exp(De*ne*Ye)}return e.duration="duration"in e?+e.duration:1e3*Re/("screenSpeed"in e?+e.screenSpeed/ne:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=l!==A,this._pitching=I!==p,this._rolling=z!==g,this._padding=!a.isPaddingEqual(N),this._prepareEase(r,!1),this.terrain&&this._prepareElevation(se.targetCenter),this._ease(De=>{const Ye=De*Re,Qe=1/Fe(Ye),We=Le(Ye);this._rotating&&a.setBearing(s.B.number(l,A,De)),this._pitching&&a.setPitch(s.B.number(p,I,De)),this._rolling&&a.setRoll(s.B.number(g,z,De)),this._padding&&(a.interpolatePadding(b,N,De),Z=a.centerPoint.add(O)),se.easeFunc(De,Qe,We,Z),this.terrain&&!e.freezeElevation&&this._updateElevation(De),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r)},e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,r){var a;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const l=this._onEaseEnd;delete this._onEaseEnd,l.call(this,r)}return e||(a=this.handlers)===null||a===void 0||a.stop(!1),this}_ease(e,r,a){a.animate===!1||a.duration===0?(e(1),r()):(this._easeStart=R.now(),this._easeOptions=a,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,r){e=s.aL(e,-180,180);const a=Math.abs(e-r);return Math.abs(e-360-r)<a&&(e-=360),Math.abs(e+360-r)<a&&(e+=360),e}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(s.Q.convert(e),this.transform.tileZoom):null}}const pn={compact:!0,customAttribution:'<a href="https://maplibre.org/" target="_blank">MapLibre</a>'};class nr{constructor(e=pn){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=r=>{!r||r.sourceDataType!=="metadata"&&r.sourceDataType!=="visibility"&&r.dataType!=="style"&&r.type!=="terrain"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=T.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=T.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=T.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){T.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(e,r){const a=this._map._getUIString(`AttributionControl.${r}`);e.title=a,e.setAttribute("aria-label",a)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(l=>typeof l!="string"?"":l)):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const r=this._map.style.sourceCaches;for(const l in r){const p=r[l];if(p.used||p.usedForTerrain){const g=p.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter(l=>String(l).trim()),e.sort((l,p)=>l.length-p.length),e=e.filter((l,p)=>{for(let g=p+1;g<e.length;g++)if(e[g].indexOf(l)>=0)return!1;return!0});const a=e.join(" | ");a!==this._attribHTML&&(this._attribHTML=a,e.length?(this._innerContainer.innerHTML=T.sanitize(a),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class po{constructor(e={}){this._updateCompact=()=>{const r=this._container.children;if(r.length){const a=r[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&a.classList.add("maplibregl-compact"):a.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=T.create("div","maplibregl-ctrl");const r=T.create("a","maplibregl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://maplibre.org/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){T.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class bl{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const r=++this._id;return this._queue.push({callback:e,id:r,cancelled:!1}),r}remove(e){const r=this._currentlyRunning,a=r?this._queue.concat(r):this._queue;for(const l of a)if(l.id===e)return void(l.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const r=this._currentlyRunning=this._queue;this._queue=[];for(const a of r)if(!a.cancelled&&(a.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Gc=s.aG([{name:"a_pos3d",type:"Int16",components:3}]);class Jc extends s.E{constructor(e){super(),this._lastTilesetChange=R.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,r){this.sourceCache.update(e,r),this._renderableTilesKeys=[];const a={};for(const l of be(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:r,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))a[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),s.bQ(l.terrainRttPosMatrix32f,0,s.Z,s.Z,0,0,1),this._tiles[l.key]=new Ri(l,this.tileSize),this._lastTilesetChange=R.now());for(const l in this._tiles)a[l]||delete this._tiles[l]}freeRtt(e){for(const r in this._tiles){const a=this._tiles[r];(!e||a.tileID.equals(e)||a.tileID.isChildOf(e)||e.isChildOf(a.tileID))&&(a.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,r){return r?this._getTerrainCoordsForTileRanges(e,r):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const r={};for(const a of this._renderableTilesKeys){const l=this._tiles[a].tileID,p=e.clone(),g=s.b2();if(l.canonical.equals(e.canonical))s.bQ(g,0,s.Z,s.Z,0,0,1);else if(l.canonical.isChildOf(e.canonical)){const b=l.canonical.z-e.canonical.z,A=l.canonical.x-(l.canonical.x>>b<<b),I=l.canonical.y-(l.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,z,z,0,0,1),s.L(g,g,[-A*z,-I*z,0])}else{if(!e.canonical.isChildOf(l.canonical))continue;{const b=e.canonical.z-l.canonical.z,A=e.canonical.x-(e.canonical.x>>b<<b),I=e.canonical.y-(e.canonical.y>>b<<b),z=s.Z>>b;s.bQ(g,0,s.Z,s.Z,0,0,1),s.L(g,g,[A*z,I*z,0]),s.M(g,g,[1/2**b,1/2**b,0])}}p.terrainRttPosMatrix32f=new Float32Array(g),r[a]=p}return r}_getTerrainCoordsForTileRanges(e,r){const a={};for(const l of this._renderableTilesKeys){const p=this._tiles[l].tileID;if(!this._isWithinTileRanges(p,r))continue;const g=e.clone(),b=s.b2();if(p.canonical.z===e.canonical.z){const A=e.canonical.x-p.canonical.x,I=e.canonical.y-p.canonical.y;s.bQ(b,0,s.Z,s.Z,0,0,1),s.L(b,b,[A*s.Z,I*s.Z,0])}else if(p.canonical.z>e.canonical.z){const A=p.canonical.z-e.canonical.z,I=p.canonical.x-(p.canonical.x>>A<<A),z=p.canonical.y-(p.canonical.y>>A<<A),N=e.canonical.x-(p.canonical.x>>A),O=e.canonical.y-(p.canonical.y>>A),Z=s.Z>>A;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[-I*Z+N*s.Z,-z*Z+O*s.Z,0])}else{const A=e.canonical.z-p.canonical.z,I=e.canonical.x-(e.canonical.x>>A<<A),z=e.canonical.y-(e.canonical.y>>A<<A),N=(e.canonical.x>>A)-p.canonical.x,O=(e.canonical.y>>A)-p.canonical.y,Z=s.Z<<A;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[I*s.Z+N*Z,z*s.Z+O*Z,0])}g.terrainRttPosMatrix32f=new Float32Array(b),a[l]=g}return a}getSourceTile(e,r){const a=this.sourceCache._source;let l=e.overscaledZ-this.deltaZoom;if(l>a.maxzoom&&(l=a.maxzoom),l<a.minzoom)return null;this._sourceTileCache[e.key]||(this._sourceTileCache[e.key]=e.scaledTo(l).key);let p=this.sourceCache.getTileByID(this._sourceTileCache[e.key]);if((!p||!p.dem)&&r)for(;l>=a.minzoom&&(!p||!p.dem);)p=this.sourceCache.getTileByID(e.scaledTo(l--).key);return p}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,r){return r[e.canonical.z]&&e.canonical.x>=r[e.canonical.z].minTileX&&e.canonical.x<=r[e.canonical.z].maxTileX&&e.canonical.y>=r[e.canonical.z].minTileY&&e.canonical.y<=r[e.canonical.z].maxTileY}}class Xc{constructor(e,r,a){this._meshCache={},this.painter=e,this.sourceCache=new Jc(r),this.options=a,this.exaggeration=typeof a.exaggeration=="number"?a.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,r,a,l=s.Z){var p;if(!(r>=0&&r<l&&a>=0&&a<l))return 0;const g=this.getTerrainData(e),b=(p=g.tile)===null||p===void 0?void 0:p.dem;if(!b)return 0;const A=s.cj([],[r/l*s.Z,a/l*s.Z],g.u_terrain_matrix),I=[A[0]*b.dim,A[1]*b.dim],z=Math.floor(I[0]),N=Math.floor(I[1]),O=I[0]-z,Z=I[1]-N;return b.get(z,N)*(1-O)*(1-Z)+b.get(z+1,N)*O*(1-Z)+b.get(z,N+1)*(1-O)*Z+b.get(z+1,N+1)*O*Z}getElevationForLngLatZoom(e,r){if(!s.ck(r,e.wrap()))return 0;const{tileID:a,mercatorX:l,mercatorY:p}=this._getOverscaledTileIDFromLngLatZoom(e,r);return this.getElevation(a,l%s.Z,p%s.Z,s.Z)}getElevation(e,r,a,l=s.Z){return this.getDEMElevation(e,r,a,l)*this.exaggeration}getTerrainData(e){if(!this._emptyDemTexture){const l=this.painter.context,p=new s.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new Ze(l,p,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new Ze(l,new s.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=s.ad([])}const r=this.sourceCache.getSourceTile(e,!0);if(r&&r.dem&&(!r.demTexture||r.needsTerrainPrepare)){const l=this.painter.context;r.demTexture=this.painter.getTileTexture(r.dem.stride),r.demTexture?r.demTexture.update(r.dem.getPixels(),{premultiply:!1}):r.demTexture=new Ze(l,r.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),r.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),r.needsTerrainPrepare=!1}const a=r&&r+r.tileID.key+e.key;if(a&&!this._demMatrixCache[a]){const l=this.sourceCache.sourceCache._source.maxzoom;let p=e.canonical.z-r.tileID.canonical.z;e.overscaledZ>e.canonical.z&&(e.canonical.z>=l?p=e.canonical.z-l:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>p<<p),b=e.canonical.y-(e.canonical.y>>p<<p),A=s.cl(new Float64Array(16),[1/(s.Z<<p),1/(s.Z<<p),0]);s.L(A,A,[g*s.Z,b*s.Z,0]),this._demMatrixCache[e.key]={matrix:A,coord:e}}return{u_depth:2,u_terrain:3,u_terrain_dim:r&&r.dem&&r.dem.dim||1,u_terrain_matrix:a?this._demMatrixCache[e.key].matrix:this._emptyDemMatrix,u_terrain_unpack:r&&r.dem&&r.dem.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(r&&r.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:r}}getFramebuffer(e){const r=this.painter,a=r.width/devicePixelRatio,l=r.height/devicePixelRatio;return!this._fbo||this._fbo.width===a&&this._fbo.height===l||(this._fbo.destroy(),this._fboCoordsTexture.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture,delete this._fboCoordsTexture),this._fboCoordsTexture||(this._fboCoordsTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboCoordsTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=r.context.createFramebuffer(a,l,!0,!1),this._fbo.depthAttachment.set(r.context.createRenderbuffer(r.context.gl.DEPTH_COMPONENT16,a,l))),this._fbo.colorAttachment.set(e==="coords"?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){const e=this.painter.context;if(this._coordsTexture)return this._coordsTexture;const r=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let p=0,g=0;p<this._coordsTextureSize;p++)for(let b=0;b<this._coordsTextureSize;b++,g+=4)r[g+0]=255&b,r[g+1]=255&p,r[g+2]=b>>8<<4|p>>8,r[g+3]=0;const a=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(r.buffer)),l=new Ze(e,a,e.gl.RGBA,{premultiply:!1});return l.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const r=new Uint8Array(4),a=this.painter.context,l=a.gl,p=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),b=Math.round(this.painter.height/devicePixelRatio);a.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(p,b-g-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null);const A=r[0]+(r[2]>>4<<8),I=r[1]+((15&r[2])<<8),z=this.coordsIndex[255-r[3]],N=z&&this.sourceCache.getTileByID(z);if(!N)return null;const O=this._coordsTextureSize,Z=(1<<N.tileID.canonical.z)*O;return new s.$((N.tileID.canonical.x*O+A)/Z+N.tileID.wrap,(N.tileID.canonical.y*O+I)/Z,this.getElevation(N.tileID,A,I,O))}depthAtPoint(e){const r=new Uint8Array(4),a=this.painter.context,l=a.gl;return a.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer),l.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null),(r[0]/16777216+r[1]/65536+r[2]/256+r[3])/256}getTerrainMesh(e){var r;const a=((r=this.painter.style.projection)===null||r===void 0?void 0:r.transitionState)>0,l=a&&e.canonical.y===0,p=a&&e.canonical.y===(1<<e.canonical.z)-1,g=`m_${l?"n":""}_${p?"s":""}`;if(this._meshCache[g])return this._meshCache[g];const b=this.painter.context,A=new s.cm,I=new s.aK,z=this.meshSize,N=s.Z/z,O=z*z;for(let _e=0;_e<=z;_e++)for(let Ee=0;Ee<=z;Ee++)A.emplaceBack(Ee*N,_e*N,0);for(let _e=0;_e<O;_e+=z+1)for(let Ee=0;Ee<z;Ee++)I.emplaceBack(Ee+_e,z+Ee+_e+1,z+Ee+_e+2),I.emplaceBack(Ee+_e,z+Ee+_e+2,Ee+_e+1);const Z=A.length,J=Z+(z+1),se=(z+1)*z,ne=l?s.b9:0,oe=l?0:1,ue=p?s.ba:s.Z,me=p?0:1;for(let _e=0;_e<=z;_e++)A.emplaceBack(_e*N,ne,oe);for(let _e=0;_e<=z;_e++)A.emplaceBack(_e*N,ue,me);for(let _e=0;_e<z;_e++)I.emplaceBack(se+_e,J+_e,J+_e+1),I.emplaceBack(se+_e,J+_e+1,se+_e+1),I.emplaceBack(0+_e,Z+_e+1,Z+_e),I.emplaceBack(0+_e,0+_e+1,Z+_e+1);const fe=A.length,ge=fe+2*(z+1);for(const _e of[0,1])for(let Ee=0;Ee<=z;Ee++)for(const Fe of[0,1])A.emplaceBack(_e*s.Z,Ee*N,Fe);for(let _e=0;_e<2*z;_e+=2)I.emplaceBack(fe+_e,fe+_e+1,fe+_e+3),I.emplaceBack(fe+_e,fe+_e+3,fe+_e+2),I.emplaceBack(ge+_e,ge+_e+3,ge+_e+1),I.emplaceBack(ge+_e,ge+_e+2,ge+_e+3);const xe=new hs(b.createVertexBuffer(A,Gc.members),b.createIndexBuffer(I),s.aJ.simpleSegment(0,0,A.length,I.length));return this._meshCache[g]=xe,xe}getMeshFrameDelta(e){return 2*Math.PI*s.bu/Math.pow(2,Math.max(e,0))/5}getMinTileElevationForLngLatZoom(e,r){var a;const{tileID:l}=this._getOverscaledTileIDFromLngLatZoom(e,r);return(a=this.getMinMaxElevation(l).minElevation)!==null&&a!==void 0?a:0}getMinMaxElevation(e){const r=this.getTerrainData(e).tile,a={minElevation:null,maxElevation:null};return r&&r.dem&&(a.minElevation=r.dem.min*this.exaggeration,a.maxElevation=r.dem.max*this.exaggeration),a}_getOverscaledTileIDFromLngLatZoom(e,r){const a=s.$.fromLngLat(e.wrap()),l=(1<<r)*s.Z,p=a.x*l,g=a.y*l,b=Math.floor(p/s.Z),A=Math.floor(g/s.Z);return{tileID:new s.Y(r,0,r,b,A),mercatorX:p,mercatorY:g}}}class Nh{constructor(e,r,a){this._context=e,this._size=r,this._tileSize=a,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(const e of this._objects)e.texture.destroy(),e.fbo.destroy()}_createObject(e){const r=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),a=new Ze(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return a.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),this._context.extTextureFilterAnisotropic&&this._context.gl.texParameterf(this._context.gl.TEXTURE_2D,this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._context.extTextureFilterAnisotropicMax),r.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),r.colorAttachment.set(a.texture),{id:e,fbo:r,texture:a,stamp:-1,inUse:!1}}getObjectForId(e){return this._objects[e]}useObject(e){e.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(r=>e.id!==r),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const r of this._recentlyUsed)if(!this._objects[r].inUse)return this._objects[r];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length<this._size)&&this._objects.some(e=>!e.inUse)===!1}}const pi={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ga{constructor(e,r){this.painter=e,this.terrain=r,this.pool=new Nh(e.context,30,r.sourceCache.tileSize*r.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,r){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter(a=>!e._layers[a].isHidden(r)),this._coordsAscending={};for(const a in e.sourceCaches){this._coordsAscending[a]={};const l=e.sourceCaches[a].getVisibleCoordinates(),p=e.sourceCaches[a].getSource(),g=p instanceof mt?p.terrainTileRanges:null;for(const b of l){const A=this.terrain.sourceCache.getTerrainCoords(b,g);for(const I in A)this._coordsAscending[a][I]||(this._coordsAscending[a][I]=[]),this._coordsAscending[a][I].push(A[I])}}this._coordsAscendingStr={};for(const a of e._order){const l=e._layers[a],p=l.source;if(pi[l.type]&&!this._coordsAscendingStr[p]){this._coordsAscendingStr[p]={};for(const g in this._coordsAscending[p])this._coordsAscendingStr[p][g]=this._coordsAscending[p][g].map(b=>b.key).sort().join()}}for(const a of this._renderableTiles)for(const l in this._coordsAscendingStr){const p=this._coordsAscendingStr[l][a.tileID.key];p&&p!==a.rttCoords[l]&&(a.rtt=[])}}renderLayer(e,r){if(e.isHidden(this.painter.transform.zoom))return!1;const a=Object.assign(Object.assign({},r),{isRenderingToTexture:!0}),l=e.type,p=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(pi[l]&&(this._prevType&&pi[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(pi[this._prevType]||pi[l]&&g){this._prevType=l;const b=this._stacks.length-1,A=this._stacks[b]||[];for(const I of this._renderableTiles){if(this.pool.isFull()&&(Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(I),I.rtt[b]){const N=this.pool.getObjectForId(I.rtt[b].id);if(N.stamp===I.rtt[b].stamp){this.pool.useObject(N);continue}}const z=this.pool.getOrCreateFreeObject();this.pool.useObject(z),this.pool.stampObject(z),I.rtt[b]={id:z.id,stamp:z.stamp},p.context.bindFramebuffer.set(z.fbo.framebuffer),p.context.clear({color:s.b7.transparent,stencil:0}),p.currentStencilSource=void 0;for(let N=0;N<A.length;N++){const O=p.style._layers[A[N]],Z=O.source?this._coordsAscending[O.source][I.tileID.key]:[I.tileID];p.context.viewport.set([0,0,z.fbo.width,z.fbo.height]),p._renderTileClippingMasks(O,Z,!0),p.renderLayer(p,p.style.sourceCaches[O.source],O,Z,a),O.source&&(I.rttCoords[O.source]=this._coordsAscendingStr[O.source][I.tileID.key])}}return Tn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects(),pi[l]}return!1}}const ct={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"MapLibre logo","Map.Title":"Map","Marker.Title":"Map marker","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","Popup.Close":"Close popup","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","GlobeControl.Enable":"Enable globe","GlobeControl.Disable":"Disable globe","TerrainControl.Enable":"Enable terrain","TerrainControl.Disable":"Disable terrain","CooperativeGesturesHandler.WindowsHelpText":"Use Ctrl + scroll to zoom the map","CooperativeGesturesHandler.MacHelpText":"Use ⌘ + scroll to zoom the map","CooperativeGesturesHandler.MobileHelpText":"Use two fingers to move the map"},ft=B,fo={hash:!1,interactive:!0,bearingSnap:7,attributionControl:pn,maplibreLogo:!1,refreshExpiredTiles:!0,canvasContextAttributes:{antialias:!1,preserveDrawingBuffer:!1,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,desynchronized:!1,contextType:void 0},scrollZoom:!0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,trackResize:!0,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:!0,maxTileCacheSize:null,maxTileCacheZoomLevels:s.a.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:"sans-serif",pitchWithRotate:!0,rollEnabled:!1,validateStyle:!0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0},wl={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0};class Sl{constructor(e,r,a=!1){this.mousedown=p=>{this.startMove(p,T.mousePos(this.element,p)),T.addEventListener(window,"mousemove",this.mousemove),T.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=p=>{this.move(p,T.mousePos(this.element,p))},this.mouseup=p=>{this._rotatePitchHanlder.dragEnd(p),this.offTemp()},this.touchstart=p=>{p.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=T.touchPos(this.element,p.targetTouches)[0],this.startMove(p,this._startPos),T.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.addEventListener(window,"touchend",this.touchend))},this.touchmove=p=>{p.targetTouches.length!==1?this.reset():(this._lastPos=T.touchPos(this.element,p.targetTouches)[0],this.move(p,this._lastPos))},this.touchend=p=>{p.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp()},this.reset=()=>{this._rotatePitchHanlder.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=r;const l=new Cs;this._rotatePitchHanlder=new ni({clickTolerance:3,move:(p,g)=>{const b=r.getBoundingClientRect(),A=new s.P((b.bottom-b.top)/2,(b.right-b.left)/2);return{bearingDelta:s.ce(new s.P(p.x,g.y),g,A),pitchDelta:a?-.5*(g.y-p.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=e,T.addEventListener(r,"mousedown",this.mousedown),T.addEventListener(r,"touchstart",this.touchstart,{passive:!1}),T.addEventListener(r,"touchcancel",this.reset)}startMove(e,r){this._rotatePitchHanlder.dragStart(e,r),T.disableDrag()}move(e,r){const a=this.map,{bearingDelta:l,pitchDelta:p}=this._rotatePitchHanlder.dragMove(e,r)||{};l&&a.setBearing(a.getBearing()+l),p&&a.setPitch(a.getPitch()+p)}off(){const e=this.element;T.removeEventListener(e,"mousedown",this.mousedown),T.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),T.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.removeEventListener(window,"touchend",this.touchend),T.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){T.enableDrag(),T.removeEventListener(window,"mousemove",this.mousemove),T.removeEventListener(window,"mouseup",this.mouseup),T.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.removeEventListener(window,"touchend",this.touchend)}}let Pr;function Al(u,e,r,a=!1){if(a||!r.getCoveringTilesDetailsProvider().allowWorldCopies())return u==null?void 0:u.wrap();const l=new s.Q(u.lng,u.lat);if(u=new s.Q(u.lng,u.lat),e){const p=new s.Q(u.lng-360,u.lat),g=new s.Q(u.lng+360,u.lat),b=r.locationToScreenPoint(u).distSqr(e);r.locationToScreenPoint(p).distSqr(e)<b?u=p:r.locationToScreenPoint(g).distSqr(e)<b&&(u=g)}for(;Math.abs(u.lng-r.center.lng)>180;){const p=r.locationToScreenPoint(u);if(p.x>=0&&p.y>=0&&p.x<=r.width&&p.y<=r.height)break;u.lng>r.center.lng?u.lng-=360:u.lng+=360}return u.lng!==l.lng&&r.isPointOnMapSurface(r.locationToScreenPoint(u))?u:l}const Bi={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Qc(u,e,r){const a=u.classList;for(const l in Bi)a.remove(`maplibregl-${r}-anchor-${l}`);a.add(`maplibregl-${r}-anchor-${e}`)}class Yn extends s.E{constructor(e){if(super(),this._onKeyPress=r=>{const a=r.code,l=r.charCode||r.keyCode;a!=="Space"&&a!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=r=>{const a=r.originalEvent.target,l=this._element;this._popup&&(a===l||l.contains(a))&&this.togglePopup()},this._update=r=>{if(!this._map)return;const a=this._map.loaded()&&!this._map.isMoving();((r==null?void 0:r.type)==="terrain"||(r==null?void 0:r.type)==="render"&&!a)&&this._map.once("render",this._update),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let l="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?l=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(l=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let p="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?p="rotateX(0deg)":this._pitchAlignment==="map"&&(p=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||r&&r.type!=="moveend"||(this._pos=this._pos.round()),T.setTransform(this._element,`${Bi[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${p} ${l}`),R.frameAsync(new AbortController).then(()=>{this._updateOpacity(r&&r.type==="moveend")}).catch(()=>{})},this._onMove=r=>{if(!this._isDragging){const a=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=a}this._isDragging&&(this._pos=r.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new s.l("dragstart"))),this.fire(new s.l("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new s.l("dragend")),this._state="inactive"},this._addDragHandler=r=>{this._element.contains(r.originalEvent.target)&&(r.preventDefault(),this._positionDelta=r.point.sub(this._pos).add(this._offset),this._pointerdownPos=r.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=T.create("div");const r=T.createNS("http://www.w3.org/2000/svg","svg"),a=41,l=27;r.setAttributeNS(null,"display","block"),r.setAttributeNS(null,"height",`${a}px`),r.setAttributeNS(null,"width",`${l}px`),r.setAttributeNS(null,"viewBox",`0 0 ${l} ${a}`);const p=T.createNS("http://www.w3.org/2000/svg","g");p.setAttributeNS(null,"stroke","none"),p.setAttributeNS(null,"stroke-width","1"),p.setAttributeNS(null,"fill","none"),p.setAttributeNS(null,"fill-rule","evenodd");const g=T.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const b=T.createNS("http://www.w3.org/2000/svg","g");b.setAttributeNS(null,"transform","translate(3.0, 29.0)"),b.setAttributeNS(null,"fill","#000000");const A=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const oe of A){const ue=T.createNS("http://www.w3.org/2000/svg","ellipse");ue.setAttributeNS(null,"opacity","0.04"),ue.setAttributeNS(null,"cx","10.5"),ue.setAttributeNS(null,"cy","5.80029008"),ue.setAttributeNS(null,"rx",oe.rx),ue.setAttributeNS(null,"ry",oe.ry),b.appendChild(ue)}const I=T.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"fill",this._color);const z=T.createNS("http://www.w3.org/2000/svg","path");z.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),I.appendChild(z);const N=T.createNS("http://www.w3.org/2000/svg","g");N.setAttributeNS(null,"opacity","0.25"),N.setAttributeNS(null,"fill","#000000");const O=T.createNS("http://www.w3.org/2000/svg","path");O.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),N.appendChild(O);const Z=T.createNS("http://www.w3.org/2000/svg","g");Z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),Z.setAttributeNS(null,"fill","#FFFFFF");const J=T.createNS("http://www.w3.org/2000/svg","g");J.setAttributeNS(null,"transform","translate(8.0, 8.0)");const se=T.createNS("http://www.w3.org/2000/svg","circle");se.setAttributeNS(null,"fill","#000000"),se.setAttributeNS(null,"opacity","0.25"),se.setAttributeNS(null,"cx","5.5"),se.setAttributeNS(null,"cy","5.5"),se.setAttributeNS(null,"r","5.4999962");const ne=T.createNS("http://www.w3.org/2000/svg","circle");ne.setAttributeNS(null,"fill","#FFFFFF"),ne.setAttributeNS(null,"cx","5.5"),ne.setAttributeNS(null,"cy","5.5"),ne.setAttributeNS(null,"r","5.4999962"),J.appendChild(se),J.appendChild(ne),g.appendChild(b),g.appendChild(I),g.appendChild(N),g.appendChild(Z),g.appendChild(J),r.appendChild(g),r.setAttributeNS(null,"height",a*this._scale+"px"),r.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(r),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",r=>{r.preventDefault()}),this._element.addEventListener("mousedown",r=>{r.preventDefault()}),Qc(this._element,this._anchor,"marker"),e&&e.className)for(const r of e.className.split(" "))this._element.classList.add(r);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.on("projectiontransition",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("projectiontransition",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),T.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.Q.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const l=Math.abs(13.5)/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[l,-1*(38.1-13.5+l)],"bottom-right":[-l,-1*(38.1-13.5+l)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var r,a;const l=(r=this._map)===null||r===void 0?void 0:r.terrain,p=this._map.transform.isLocationOccluded(this._lngLat);if(!l||p){const Z=p?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==Z&&(this._element.style.opacity=Z))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const g=this._map,b=g.terrain.depthAtPoint(this._pos),A=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,A)-b<.006)return void(this._element.style.opacity=this._opacity);const I=-this._offset.y/g.transform.pixelsPerMeter,z=Math.sin(g.getPitch()*Math.PI/180)*I,N=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),O=g.transform.lngLatToCameraDepth(this._lngLat,A+z)-N>.006;!((a=this._popup)===null||a===void 0)&&a.isOpen()&&O&&this._popup.remove(),this._element.style.opacity=O?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,r){return(this._opacity===void 0||e===void 0&&r===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),r!==void 0&&(this._opacityWhenCovered=r),this._map&&this._updateOpacity(!0),this}}const br={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let hr=0,Is=!1;const mo={maxWidth:100,unit:"metric"};function go(u,e,r){const a=r&&r.maxWidth||100,l=u._container.clientHeight/2,p=u._container.clientWidth/2,g=u.unproject([p-a/2,l]),b=u.unproject([p+a/2,l]),A=Math.round(u.project(b).x-u.project(g).x),I=Math.min(a,A,u._container.clientWidth),z=g.distanceTo(b);if(r&&r.unit==="imperial"){const N=3.2808*z;N>5280?$n(e,I,N/5280,u._getUIString("ScaleControl.Miles")):$n(e,I,N,u._getUIString("ScaleControl.Feet"))}else r&&r.unit==="nautical"?$n(e,I,z/1852,u._getUIString("ScaleControl.NauticalMiles")):z>=1e3?$n(e,I,z/1e3,u._getUIString("ScaleControl.Kilometers")):$n(e,I,z,u._getUIString("ScaleControl.Meters"))}function $n(u,e,r,a){const l=function(p){const g=Math.pow(10,`${Math.floor(p)}`.length-1);let b=p/g;return b=b>=10?10:b>=5?5:b>=3?3:b>=2?2:b>=1?1:function(A){const I=Math.pow(10,Math.ceil(-Math.log(A)/Math.LN10));return Math.round(A*I)/I}(b),g*b}(r);u.style.width=e*(l/r)+"px",u.innerHTML=`${l}&nbsp;${a}`}const kl={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},Tl=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Ms(u){if(u){if(typeof u=="number"){const e=Math.round(Math.abs(u)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,u),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-u),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(u,0),right:new s.P(-u,0)}}if(u instanceof s.P||Array.isArray(u)){const e=s.P.convert(u);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(u.center||[0,0]),top:s.P.convert(u.top||[0,0]),"top-left":s.P.convert(u["top-left"]||[0,0]),"top-right":s.P.convert(u["top-right"]||[0,0]),bottom:s.P.convert(u.bottom||[0,0]),"bottom-left":s.P.convert(u["bottom-left"]||[0,0]),"bottom-right":s.P.convert(u["bottom-right"]||[0,0]),left:s.P.convert(u.left||[0,0]),right:s.P.convert(u.right||[0,0])}}return Ms(new s.P(0,0))}const Cl=B;x.AJAXError=s.cq,x.Event=s.l,x.Evented=s.E,x.LngLat=s.Q,x.MercatorCoordinate=s.$,x.Point=s.P,x.addProtocol=s.cr,x.config=s.a,x.removeProtocol=s.cs,x.AttributionControl=nr,x.BoxZoomHandler=ml,x.CanvasSource=It,x.CooperativeGesturesHandler=fa,x.DoubleClickZoomHandler=da,x.DragPanHandler=Zc,x.DragRotateHandler=Kc,x.EdgeInsets=js,x.FullscreenControl=class extends s.E{constructor(u={}){super(),this._onFullscreenChange=()=>{var e;let r=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=r==null?void 0:r.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)r=r.shadowRoot.fullscreenElement;r===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,u&&u.container&&(u.container instanceof HTMLElement?this._container=u.container:s.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(u){return this._map=u,this._container||(this._container=this._map.getContainer()),this._controlContainer=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){T.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const u=this._fullscreenButton=T.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);T.create("span","maplibregl-ctrl-icon",u).setAttribute("aria-hidden","true"),u.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const u=this._getTitle();this._fullscreenButton.setAttribute("aria-label",u),this._fullscreenButton.title=u}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},x.GeoJSONSource=Pt,x.GeolocateControl=class extends s.E{constructor(u){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const r=new s.Q(e.coords.longitude,e.coords.latitude),a=e.coords.accuracy,l=this._map.getBearing(),p=s.e({bearing:l},this.options.fitBoundsOptions),g=Ke.fromLngLat(r,a);this._map.fitBounds(g,p,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const r=new s.Q(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=e=>{if(this._map){if(e.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&Is)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=T.create("button","maplibregl-ctrl-geolocate",this._container),T.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}else{const r=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=T.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Yn({element:this._dotElement}),this._circleElement=T.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Yn({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",r=>{r.geolocateSource||this._watchState!=="ACTIVE_LOCK"||r.originalEvent&&r.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))})}},this.options=s.e({},br,u)}onAdd(u){return this._map=u,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return s._(this,arguments,void 0,function*(e=!1){if(Pr!==void 0&&!e)return Pr;if(window.navigator.permissions===void 0)return Pr=!!window.navigator.geolocation,Pr;try{Pr=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Pr=!!window.navigator.geolocation}return Pr})}().then(e=>this._finishSetupUI(e)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),T.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,hr=0,Is=!1}_isOutOfMapMaxBounds(u){const e=this._map.getMaxBounds(),r=u.coords;return e&&(r.longitude<e.getWest()||r.longitude>e.getEast()||r.latitude<e.getSouth()||r.latitude>e.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const u=this._map.getBounds(),e=u.getSouthEast(),r=u.getNorthEast(),a=e.distanceTo(r),l=Math.ceil(this._accuracy/(a/this._map._container.clientHeight)*2);this._circleElement.style.width=`${l}px`,this._circleElement.style.height=`${l}px`}trigger(){if(!this._setup)return s.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":hr--,Is=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new s.l("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new s.l("trackuserlocationstart")),this.fire(new s.l("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let u;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),hr++,hr>1?(u={maximumAge:6e5,timeout:0},Is=!0):(u=this.options.positionOptions,Is=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,u)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},x.GlobeControl=class{constructor(){this._toggleProjection=()=>{var u;const e=(u=this._map.getProjection())===null||u===void 0?void 0:u.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var u;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((u=this._map.getProjection())===null||u===void 0?void 0:u.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(u){return this._map=u,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=T.create("button","maplibregl-ctrl-globe",this._container),T.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._container}onRemove(){T.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},x.Hash=hl,x.ImageSource=mt,x.KeyboardHandler=Ps,x.LngLatBounds=Ke,x.LogoControl=po,x.Map=class extends Oh{constructor(u){var e,r;s.cn.mark(s.co.create);const a=Object.assign(Object.assign(Object.assign({},fo),u),{canvasContextAttributes:Object.assign(Object.assign({},fo.canvasContextAttributes),u.canvasContextAttributes)});if(a.minZoom!=null&&a.maxZoom!=null&&a.minZoom>a.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(a.minPitch!=null&&a.maxPitch!=null&&a.minPitch>a.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(a.minPitch!=null&&a.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(a.maxPitch!=null&&a.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new ds,p=new Hs;if(a.minZoom!==void 0&&l.setMinZoom(a.minZoom),a.maxZoom!==void 0&&l.setMaxZoom(a.maxZoom),a.minPitch!==void 0&&l.setMinPitch(a.minPitch),a.maxPitch!==void 0&&l.setMaxPitch(a.maxPitch),a.renderWorldCopies!==void 0&&l.setRenderWorldCopies(a.renderWorldCopies),super(l,p,{bearingSnap:a.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new bl,this._controls=[],this._mapId=s.a4(),this._contextLost=b=>{b.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:b}))},this._contextRestored=b=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:b}))},this._onMapScroll=b=>{if(b.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=a.interactive,this._maxTileCacheSize=a.maxTileCacheSize,this._maxTileCacheZoomLevels=a.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},a.canvasContextAttributes),this._trackResize=a.trackResize===!0,this._bearingSnap=a.bearingSnap,this._centerClampedToGround=a.centerClampedToGround,this._refreshExpiredTiles=a.refreshExpiredTiles===!0,this._fadeDuration=a.fadeDuration,this._crossSourceCollisions=a.crossSourceCollisions===!0,this._collectResourceTiming=a.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},ct),a.locale),this._clickTolerance=a.clickTolerance,this._overridePixelRatio=a.pixelRatio,this._maxCanvasSize=a.maxCanvasSize,this.transformCameraUpdate=a.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=a.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=te.addThrottleControl(()=>this.isMoving()),this._requestManager=new de(a.transformRequest),typeof a.container=="string"){if(this._container=document.getElementById(a.container),!this._container)throw new Error(`Container '${a.container}' not found.`)}else{if(!(a.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=a.container}if(a.maxBounds&&this.setMaxBounds(a.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this.on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once("idle",()=>{this._idleTriggered=!0}),typeof window<"u"){addEventListener("online",this._onWindowOnline,!1);let b=!1;const A=lo(I=>{this._trackResize&&!this._removed&&(this.resize(I),this.redraw())},50);this._resizeObserver=new ResizeObserver(I=>{b?A(I):b=!0}),this._resizeObserver.observe(this._container)}this.handlers=new Fh(this,a),this._hash=a.hash&&new hl(typeof a.hash=="string"&&a.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,roll:a.roll}),a.bounds&&(this.resize(),this.fitBounds(a.bounds,s.e({},a.fitBoundsOptions,{duration:0}))));const g=typeof a.style=="string"||((r=(e=a.style)===null||e===void 0?void 0:e.projection)===null||r===void 0?void 0:r.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=a.localIdeographFontFamily,this._validateStyle=a.validateStyle,a.style&&this.setStyle(a.style,{localIdeographFontFamily:a.localIdeographFontFamily}),a.attributionControl&&this.addControl(new nr(typeof a.attributionControl=="boolean"?void 0:a.attributionControl)),a.maplibreLogo&&this.addControl(new po,a.logoPosition),this.on("style.load",()=>{if(g||this._resizeTransform(),this.transform.unmodified){const b=s.O(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(b)}}),this.on("data",b=>{this._update(b.dataType==="style"),this.fire(new s.l(`${b.dataType}data`,b))}),this.on("dataloading",b=>{this.fire(new s.l(`${b.dataType}dataloading`,b))}),this.on("dataabort",b=>{this.fire(new s.l("sourcedataabort",b))})}_getMapId(){return this._mapId}addControl(u,e){if(e===void 0&&(e=u.getDefaultPosition?u.getDefaultPosition():"top-right"),!u||!u.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const r=u.onAdd(this);this._controls.push(u);const a=this._controlPositions[e];return e.indexOf("bottom")!==-1?a.insertBefore(r,a.firstChild):a.appendChild(r),this}removeControl(u){if(!u||!u.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(u);return e>-1&&this._controls.splice(e,1),u.onRemove(this),this}hasControl(u){return this._controls.indexOf(u)>-1}calculateCameraOptionsFromTo(u,e,r,a){return a==null&&this.terrain&&(a=this.terrain.getElevationForLngLatZoom(r,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(u,e,r,a)}resize(u,e=!0){const[r,a]=this._containerDimensions(),l=this._getClampedPixelRatio(r,a);if(this._resizeCanvas(r,a,l),this.painter.resize(r,a,l),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const b=this._getClampedPixelRatio(r,a);this._resizeCanvas(r,a,b),this.painter.resize(r,a,b)}this._resizeTransform(e);const p=!this._moving;return p&&(this.stop(),this.fire(new s.l("movestart",u)).fire(new s.l("move",u))),this.fire(new s.l("resize",u)),p&&this.fire(new s.l("moveend",u)),this}_resizeTransform(u=!0){var e;const[r,a]=this._containerDimensions();this.transform.resize(r,a,u),(e=this._requestedCameraState)===null||e===void 0||e.resize(r,a,u)}_getClampedPixelRatio(u,e){const{0:r,1:a}=this._maxCanvasSize,l=this.getPixelRatio(),p=u*l,g=e*l;return Math.min(p>r?r/p:1,g>a?a/g:1)*l}getPixelRatio(){var u;return(u=this._overridePixelRatio)!==null&&u!==void 0?u:devicePixelRatio}setPixelRatio(u){this._overridePixelRatio=u,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(u){return this.transform.setMaxBounds(Ke.convert(u)),this._update()}setMinZoom(u){if((u=u??-2)>=-2&&u<=this.transform.maxZoom)return this.transform.setMinZoom(u),this._update(),this.getZoom()<u&&this.setZoom(u),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(u){if((u=u??22)>=this.transform.minZoom)return this.transform.setMaxZoom(u),this._update(),this.getZoom()>u&&this.setZoom(u),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(u){if((u=u??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(u>=0&&u<=this.transform.maxPitch)return this.transform.setMinPitch(u),this._update(),this.getPitch()<u&&this.setPitch(u),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(u){if((u=u??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(u>=this.transform.minPitch)return this.transform.setMaxPitch(u),this._update(),this.getPitch()>u&&this.setPitch(u),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(u){return this.transform.setRenderWorldCopies(u),this._update()}project(u){return this.transform.locationToScreenPoint(s.Q.convert(u),this.style&&this.terrain)}unproject(u){return this.transform.screenPointToLocation(s.P.convert(u),this.terrain)}isMoving(){var u;return this._moving||((u=this.handlers)===null||u===void 0?void 0:u.isMoving())}isZooming(){var u;return this._zooming||((u=this.handlers)===null||u===void 0?void 0:u.isZooming())}isRotating(){var u;return this._rotating||((u=this.handlers)===null||u===void 0?void 0:u.isRotating())}_createDelegatedListener(u,e,r){if(u==="mouseenter"||u==="mouseover"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:p=>{const g=e.filter(A=>this.getLayer(A)),b=g.length!==0?this.queryRenderedFeatures(p.point,{layers:g}):[];b.length?a||(a=!0,r.call(this,new zr(u,this,p.originalEvent,{features:b}))):a=!1},mouseout:()=>{a=!1}}}}if(u==="mouseleave"||u==="mouseout"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:g=>{const b=e.filter(A=>this.getLayer(A));(b.length!==0?this.queryRenderedFeatures(g.point,{layers:b}):[]).length?a=!0:a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))},mouseout:g=>{a&&(a=!1,r.call(this,new zr(u,this,g.originalEvent)))}}}}{const a=l=>{const p=e.filter(b=>this.getLayer(b)),g=p.length!==0?this.queryRenderedFeatures(l.point,{layers:p}):[];g.length&&(l.features=g,r.call(this,l),delete l.features)};return{layers:e,listener:r,delegates:{[u]:a}}}}_saveDelegatedListener(u,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[u]=this._delegatedListeners[u]||[],this._delegatedListeners[u].push(e)}_removeDelegatedListener(u,e,r){if(!this._delegatedListeners||!this._delegatedListeners[u])return;const a=this._delegatedListeners[u];for(let l=0;l<a.length;l++){const p=a[l];if(p.listener===r&&p.layers.length===e.length&&p.layers.every(g=>e.includes(g))){for(const g in p.delegates)this.off(g,p.delegates[g]);return void a.splice(l,1)}}}on(u,e,r){if(r===void 0)return super.on(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);this._saveDelegatedListener(u,l);for(const p in l.delegates)this.on(p,l.delegates[p]);return{unsubscribe:()=>{this._removeDelegatedListener(u,a,r)}}}once(u,e,r){if(r===void 0)return super.once(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);for(const p in l.delegates){const g=l.delegates[p];l.delegates[p]=(...b)=>{this._removeDelegatedListener(u,a,r),g(...b)}}this._saveDelegatedListener(u,l);for(const p in l.delegates)this.once(p,l.delegates[p]);return this}off(u,e,r){return r===void 0?super.off(u,e):(this._removeDelegatedListener(u,typeof e=="string"?[e]:e,r),this)}queryRenderedFeatures(u,e){if(!this.style)return[];let r;const a=u instanceof s.P||Array.isArray(u),l=a?u:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(a?{}:u)||{},l instanceof s.P||typeof l[0]=="number")r=[s.P.convert(l)];else{const p=s.P.convert(l[0]),g=s.P.convert(l[1]);r=[p,new s.P(g.x,p.y),g,new s.P(p.x,g.y),p]}return this.style.queryRenderedFeatures(r,e,this.transform)}querySourceFeatures(u,e){return this.style.querySourceFeatures(u,e)}setStyle(u,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&u?(this._diffStyle(u,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(u,e))}setTransformRequest(u){return this._requestManager.setTransformRequest(u),this}_getUIString(u){const e=this._locale[u];if(e==null)throw new Error(`Missing UI string '${u}'`);return e}_updateStyle(u,e){var r,a;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",()=>this._updateStyle(u,e));const l=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!u)),u?(this.style=new Ka(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof u=="string"?this.style.loadURL(u,e,l):this.style.loadJSON(u,e,l),this):((a=(r=this.style)===null||r===void 0?void 0:r.projection)===null||a===void 0||a.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ka(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(u,e){if(typeof u=="string"){const r=this._requestManager.transformRequest(u,"Style");s.j(r,new AbortController).then(a=>{this._updateDiff(a.data,e)}).catch(a=>{a&&this.fire(new s.k(a))})}else typeof u=="object"&&this._updateDiff(u,e)}_updateDiff(u,e){try{this.style.setState(u,e)&&this._update(!0)}catch(r){s.w(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(u,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(u,e){return this._lazyInitEmptyStyle(),this.style.addSource(u,e),this._update(!0)}isSourceLoaded(u){const e=this.style&&this.style.sourceCaches[u];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${u}'`)))}setTerrain(u){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),u){const e=this.style.sourceCaches[u.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${u.source}`);this.terrain===null&&e.reload();for(const r in this.style._layers){const a=this.style._layers[r];a.type==="hillshade"&&a.source===u.source&&s.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Xc(this.painter,e,u),this.painter.renderToTexture=new ga(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=r=>{var a;r.dataType==="style"?this.terrain.sourceCache.freeRtt():r.dataType==="source"&&r.tile&&(r.sourceId!==u.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((a=r.source)===null||a===void 0?void 0:a.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(r.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new s.l("terrain",{terrain:u})),this}getTerrain(){var u,e;return(e=(u=this.terrain)===null||u===void 0?void 0:u.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const u=this.style&&this.style.sourceCaches;for(const e in u){const r=u[e]._tiles;for(const a in r){const l=r[a];if(l.state!=="loaded"&&l.state!=="errored")return!1}}return!0}removeSource(u){return this.style.removeSource(u),this._update(!0)}getSource(u){return this.style.getSource(u)}setSourceTileLodParams(u,e,r){if(r){const a=this.getSource(r);if(!a)throw new Error(`There is no source with ID "${r}", cannot set LOD parameters`);a.calculateTileZoom=ye(Math.max(1,u),Math.max(1,e))}else for(const a in this.style.sourceCaches)this.style.sourceCaches[a].getSource().calculateTileZoom=ye(Math.max(1,u),Math.max(1,e));return this._update(!0),this}refreshTiles(u,e){const r=this.style.sourceCaches[u];if(!r)throw new Error(`There is no source cache with ID "${u}", cannot refresh tile`);e===void 0?r.reload():r.refreshTiles(e.map(a=>new s.a1(a.z,a.x,a.y)))}addImage(u,e,r={}){const{pixelRatio:a=1,sdf:l=!1,stretchX:p,stretchY:g,content:b,textFitWidth:A,textFitHeight:I}=r;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:z,height:N,data:O}=e,Z=e;return this.style.addImage(u,{data:new s.R({width:z,height:N},new Uint8Array(O)),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:A,textFitHeight:I,sdf:l,version:0,userImage:Z}),Z.onAdd&&Z.onAdd(this,u),this}}{const{width:z,height:N,data:O}=R.getImageData(e);this.style.addImage(u,{data:new s.R({width:z,height:N},O),pixelRatio:a,stretchX:p,stretchY:g,content:b,textFitWidth:A,textFitHeight:I,sdf:l,version:0})}}updateImage(u,e){const r=this.style.getImage(u);if(!r)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const a=e instanceof HTMLImageElement||s.b(e)?R.getImageData(e):e,{width:l,height:p,data:g}=a;if(l===void 0||p===void 0)return this.fire(new s.k(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(l!==r.data.width||p!==r.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const b=!(e instanceof HTMLImageElement||s.b(e));return r.data.replace(g,b),this.style.updateImage(u,r),this}getImage(u){return this.style.getImage(u)}hasImage(u){return u?!!this.style.getImage(u):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(u){this.style.removeImage(u)}loadImage(u){return te.getImage(this._requestManager.transformRequest(u,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(u,e){return this._lazyInitEmptyStyle(),this.style.addLayer(u,e),this._update(!0)}moveLayer(u,e){return this.style.moveLayer(u,e),this._update(!0)}removeLayer(u){return this.style.removeLayer(u),this._update(!0)}getLayer(u){return this.style.getLayer(u)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(u,e,r){return this.style.setLayerZoomRange(u,e,r),this._update(!0)}setFilter(u,e,r={}){return this.style.setFilter(u,e,r),this._update(!0)}getFilter(u){return this.style.getFilter(u)}setPaintProperty(u,e,r,a={}){return this.style.setPaintProperty(u,e,r,a),this._update(!0)}getPaintProperty(u,e){return this.style.getPaintProperty(u,e)}setLayoutProperty(u,e,r,a={}){return this.style.setLayoutProperty(u,e,r,a),this._update(!0)}getLayoutProperty(u,e){return this.style.getLayoutProperty(u,e)}setGlyphs(u,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(u,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(u,e,r={}){return this._lazyInitEmptyStyle(),this.style.addSprite(u,e,r,a=>{a||this._update(!0)}),this}removeSprite(u){return this._lazyInitEmptyStyle(),this.style.removeSprite(u),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(u,e,r=>{r||this._update(!0)}),this}setLight(u,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(u,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(u,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(u,e){return this.style.setFeatureState(u,e),this._update()}removeFeatureState(u,e){return this.style.removeFeatureState(u,e),this._update()}getFeatureState(u){return this.style.getFeatureState(u)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let u=0,e=0;return this._container&&(u=this._container.clientWidth||400,e=this._container.clientHeight||300),[u,e]}_setupContainer(){const u=this._container;u.classList.add("maplibregl-map");const e=this._canvasContainer=T.create("div","maplibregl-canvas-container",u);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=T.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const r=this._containerDimensions(),a=this._getClampedPixelRatio(r[0],r[1]);this._resizeCanvas(r[0],r[1],a);const l=this._controlContainer=T.create("div","maplibregl-control-container",u),p=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(g=>{p[g]=T.create("div",`maplibregl-ctrl-${g} `,l)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(u,e,r){this._canvas.width=Math.floor(r*u),this._canvas.height=Math.floor(r*e),this._canvas.style.width=`${u}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const u=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",a=>{e={requestedAttributes:u},a&&(e.statusMessage=a.statusMessage,e.type=a.type)},{once:!0});let r=null;if(r=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,u):this._canvas.getContext("webgl2",u)||this._canvas.getContext("webgl",u),!r){const a="Failed to initialize WebGL";throw e?(e.message=a,new Error(JSON.stringify(e))):new Error(a)}this.painter=new ul(r,this.transform),C.testSupport(r)}migrateProjection(u,e){super.migrateProjection(u,e),this.painter.transform=u,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(u){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||u,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(u){return this._update(),this._renderTaskQueue.add(u)}_cancelRenderFrame(u){this._renderTaskQueue.remove(u)}_render(u){var e,r,a,l,p;const g=this._idleTriggered?this._fadeDuration:0,b=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(u),this._removed)return;let A=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const N=this.transform.zoom,O=R.now();this.style.zoomHistory.update(N,O);const Z=new s.C(N,{now:O,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),J=Z.crossFadingFactor();J===1&&J===this._crossFadingFactor||(A=!0,this._crossFadingFactor=J),this.style.update(Z)}const I=((r=this.style.projection)===null||r===void 0?void 0:r.transitionState)>0!==b;(a=this.style.projection)===null||a===void 0||a.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((l=this.style.projection)===null||l===void 0?void 0:l.transitionState,(p=this.style.projection)===null||p===void 0?void 0:p.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||I)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,g,this._crossSourceCollisions,I),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cn.mark(s.co.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||A)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const z=this._sourcesDirty||this._styleDirty||this._placementDirty;return z||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||z||(this._fullyLoaded=!0,s.cn.mark(s.co.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var u;this._hash&&this._hash.remove();for(const r of this._controls)r.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&removeEventListener("online",this._onWindowOnline,!1),te.removeThrottleControl(this._imageQueueHandle),(u=this._resizeObserver)===null||u===void 0||u.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),T.remove(this._canvasContainer),T.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cn.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,R.frame(this._frameRequest,u=>{s.cn.frame(u),this._frameRequest=null;try{this._render(u)}catch(e){if(!s.cp(e)&&!function(r){return r.message===Yo}(e))throw e}},()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(u){this._showTileBoundaries!==u&&(this._showTileBoundaries=u,this._update())}get showPadding(){return!!this._showPadding}set showPadding(u){this._showPadding!==u&&(this._showPadding=u,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(u){this._showCollisionBoxes!==u&&(this._showCollisionBoxes=u,u?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(u){this._showOverdrawInspector!==u&&(this._showOverdrawInspector=u,this._update())}get repaint(){return!!this._repaint}set repaint(u){this._repaint!==u&&(this._repaint=u,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(u){this._vertices=u,this._update()}get version(){return ft}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(u){return this._lazyInitEmptyStyle(),this.style.setProjection(u),this._update(!0)}},x.MapMouseEvent=zr,x.MapTouchEvent=Ss,x.MapWheelEvent=fl,x.Marker=Yn,x.NavigationControl=class{constructor(u){this._updateZoomButtons=()=>{const e=this._map.getZoom(),r=e===this._map.getMaxZoom(),a=e===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=a,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",a.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(e,r)=>{const a=this._map._getUIString(`NavigationControl.${r}`);e.title=a,e.setAttribute("aria-label",a)},this.options=s.e({},wl,u),this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",e=>this._map.zoomIn({},{originalEvent:e})),T.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",e=>this._map.zoomOut({},{originalEvent:e})),T.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})}),this._compassIcon=T.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(u){return this._map=u,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Sl(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){T.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(u,e){const r=T.create("button",u,this._container);return r.type="button",r.addEventListener("click",e),r}},x.Popup=class extends s.E{constructor(u){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:void 0)},this.remove=()=>(this._content&&T.remove(this._content),this._container&&(T.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=T.create("div","maplibregl-popup",this._map.getContainer()),this._tip=T.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=Al(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const r=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let a=this.options.anchor;const l=Ms(this.options.offset);if(!a){const g=this._container.offsetWidth,b=this._container.offsetHeight;let A;A=r.y+l.bottom.y<b?["top"]:r.y>this._map.transform.height-b?["bottom"]:[],r.x<g/2?A.push("left"):r.x>this._map.transform.width-g/2&&A.push("right"),a=A.length===0?"bottom":A.join("-")}let p=r.add(l[a]);this.options.subpixelPositioning||(p=p.round()),T.setTransform(this._container,`${Bi[a]} translate(${p.x}px,${p.y}px)`),Qc(this._container,a,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(kl),u)}addTo(u){return this._map&&this.remove(),this._map=u,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(u){return this._lngLat=s.Q.convert(u),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(u){return this.setDOMContent(document.createTextNode(u))}setHTML(u){const e=document.createDocumentFragment(),r=document.createElement("body");let a;for(r.innerHTML=u;a=r.firstChild,a;)e.appendChild(a);return this.setDOMContent(e)}getMaxWidth(){var u;return(u=this._container)===null||u===void 0?void 0:u.style.maxWidth}setMaxWidth(u){return this.options.maxWidth=u,this._update(),this}setDOMContent(u){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=T.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(u),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(u){return this._container&&this._container.classList.add(u),this}removeClassName(u){return this._container&&this._container.classList.remove(u),this}setOffset(u){return this.options.offset=u,this._update(),this}toggleClassName(u){if(this._container)return this._container.classList.toggle(u)}setSubpixelPositioning(u){this.options.subpixelPositioning=u}_createCloseButton(){this.options.closeButton&&(this._closeButton=T.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="&#215;",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const u=this._container.querySelector(Tl);u&&u.focus()}},x.RasterDEMTileSource=kt,x.RasterTileSource=xt,x.ScaleControl=class{constructor(u){this._onMove=()=>{go(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,go(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},mo),u)}getDefaultPosition(){return"bottom-left"}onAdd(u){return this._map=u,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-scale",u.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){T.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},x.ScrollZoomHandler=Rt,x.Style=Ka,x.TerrainControl=class{constructor(u){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=u}onAdd(u){return this._map=u,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=T.create("button","maplibregl-ctrl-terrain",this._container),T.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){T.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},x.TwoFingersTouchPitchHandler=pa,x.TwoFingersTouchRotateHandler=it,x.TwoFingersTouchZoomHandler=Es,x.TwoFingersTouchZoomRotateHandler=xl,x.VectorTileSource=lt,x.VideoSource=Ut,x.addSourceType=(u,e)=>s._(void 0,void 0,void 0,function*(){if(mi(u))throw new Error(`A source type called "${u}" already exists.`);((r,a)=>{Sr[r]=a})(u,e)}),x.clearPrewarmedResources=function(){const u=wi;u&&(u.isPreloaded()&&u.numActive()===1?(u.release(wn),wi=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},x.createTileMesh=Ws,x.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},x.getRTLTextPluginStatus=function(){return Li().getRTLTextPluginStatus()},x.getVersion=function(){return Cl},x.getWorkerCount=function(){return Rr.workerCount},x.getWorkerUrl=function(){return s.a.WORKER_URL},x.importScriptInWorkers=function(u){return Sn().broadcast("IS",u)},x.prewarm=function(){ji().acquire(wn)},x.setMaxParallelImageRequests=function(u){s.a.MAX_PARALLEL_IMAGE_REQUESTS=u},x.setRTLTextPlugin=function(u,e){return Li().setRTLTextPlugin(u,e)},x.setWorkerCount=function(u){Rr.workerCount=u},x.setWorkerUrl=function(u){s.a.WORKER_URL=u}});var P=_;return P})}(Qu)),Qu.exports}var bx=xx();const $p=$g(bx);function ty(h){const d={"bottom-left":"bottom-[20px] left-[20px]","bottom-right":"bottom-[20px] right-[20px]","bottom-center":"bottom-[20px] left-1/2 -translate-x-1/2","top-left":"top-[20px] left-[20px]","top-right":"top-[20px] right-[20px]","top-center":"top-[20px] left-1/2 -translate-x-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"};return d[h]||d["bottom-left"]}const Gt=(h,d)=>{const _=h.__vccOpts||h;for(const[w,k]of d)_[w]=k;return _},wx={key:0,class:"p-5 pb-0 flex justify-between items-center"},Sx={class:"inline-block font-semibold text-lg text-gray-800"},Ax={class:"flex flex-col gap-1 p-5"},kx={class:"flex items-center justify-between w-full text-sm text-gray-800"},Tx={key:0,class:"ms-2 text-xs text-gray-500"},Cx={__name:"vs-legend-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var k;return((k=d.config)==null?void 0:k.items)||[]}),w=y.computed(()=>{var k;return((k=d.config)==null?void 0:k.title)||""});return(k,P)=>(y.openBlock(),y.createElementBlock("div",{class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative",style:y.normalizeStyle({width:h.config.width||"100%"})},[w.value?(y.openBlock(),y.createElementBlock("div",wx,[y.createElementVNode("h2",Sx,y.toDisplayString(w.value),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Ax,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.value,x=>(y.openBlock(),y.createElementBlock("div",{class:"flex items-center",key:x.label},[y.createElementVNode("span",{class:y.normalizeClass(["shrink-0 size-2.5 inline-block me-2.5",[x.shape==="square"?"rounded-sm":"",x.shape==="circle"?"rounded-full":"",x.shape==="line"?"w-6 h-0.5":"",x.shape==="dashed-line"?"w-6 h-0.5 dashed-line":""]]),style:y.normalizeStyle({backgroundColor:x.color})},null,6),y.createElementVNode("span",kx,[y.createElementVNode("span",null,y.toDisplayString(x.label),1),x.count!==void 0?(y.openBlock(),y.createElementBlock("span",Tx," ("+y.toDisplayString(x.count)+") ",1)):y.createCommentVNode("",!0)])]))),128))])],4))}},Ex=Gt(Cx,[["__scopeId","data-v-6dafc777"]]),Px="data:image/png;base64,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",Ix={class:"flex flex-row gap-x-3 z-10 relative"},Mx=["onClick"],Lx=["src","alt"],Rx={__name:"vs-basemaps-widget",props:{map:{type:Object,required:!0},config:{type:Object,default:()=>({})},position:{type:String,default:"bottom-left"}},setup(h){const d=h,_=y.ref("voyager"),w=y.computed(()=>{var B;if(!((B=d.config)!=null&&B.layers))return[];const s=d.config.layers.map(D=>({id:D.id,title:D.label||D.title,url:D.url,service:D.type,category:"Базові карти",attribution:D.attribution,image:D.image,enabled:!0,owner:D.owner||"Unknown"}));return s.push({id:"__none__",title:"Без підложки",url:"",service:"",category:"Базові карти",attribution:"",image:Px,enabled:!0,owner:""}),s});function k(s){return{version:8,sources:{[s.id]:{type:"raster",tiles:[s.url],tileSize:256,attribution:s.attribution||""}},layers:[{id:s.id,type:"raster",source:s.id}]}}const P=s=>{if(!d.map)return;const B=d.map.getStyle(),D=w.value.map(T=>T.id),M=B.layers.filter(T=>!D.includes(T.id)),F={};for(const T in B.sources)D.includes(T)||(F[T]=B.sources[T]);if(s.id==="__none__"){const T={version:8,sources:{...F},layers:[...M]};d.map.setStyle(T);return}const R=k(s);d.map.setStyle(R),d.map.once("styledata",()=>{for(const[T,C]of Object.entries(F))d.map.getSource(T)||d.map.addSource(T,C);for(const T of M)d.map.getLayer(T.id)||d.map.addLayer(T)})},x=s=>{_.value=s;const B=w.value.find(D=>D.id===s);B&&d.map&&P(B)};return y.onMounted(()=>{var s;(s=d.config)!=null&&s.default&&(_.value=d.config.default)}),(s,B)=>{const D=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",Ix,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(w.value,M=>(y.openBlock(),y.createBlock(D,{trigger:"hover",placement:"top",key:M.id},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:y.normalizeClass(["w-14 h-14 flex items-center justify-center bg-white rounded-xl shadow-2xs cursor-pointer transition-all border-4",_.value===M.id?"border-blue-400":"border-transparent"]),onClick:F=>x(M.id)},[y.createElementVNode("img",{src:M.image,alt:M.title,class:y.normalizeClass(["object-cover rounded-lg",M.id==="__none__"?"w-10 h-10":"w-12 h-12"])},null,10,Lx)],10,Mx)]),default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(M.title)+" ",1)]),_:2},1024))),128))])}}};function za(h){if(!h.attrType||!h.attribute||!h.rules)return h.color||"#ccc";const d=h.rules.map(_=>[["==",["get",h.attribute],_.id||_.value],_.color]);return d.push(h.color||"#ccc"),["case",...d.flat()]}function Dx(h){if(!h.attrType||h.attrType!=="icon-by-attribute"||!h.attribute||!h.rules)return h.default_icon||null;const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.icon]);return d.push(h.default_icon||"marker.svg"),["case",...d.flat()]}function ry(h){if(!h.attrType||h.attrType!=="attribute-pattern"||!h.attribute||!h.rules)return h.fillPattern||"";const d=h.rules.map(_=>[["==",["get",h.attribute],_.value],_.fillPattern||""]);return d.push(h.fillPattern||""),["case",...d.flat()]}function os(h,d="stroke",_="#ccc"){return["case",["boolean",["feature-state","hovered"],!1],"#ff0000",["boolean",["feature-state","selected"],!1],"#ff0000",h[d]||_]}function zx(h){const d=[{type:"fill",minzoom:h.pointZoom||0,paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ry(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}];return h.pointZoom&&d.push({type:"circle",maxzoom:h.pointZoom,paint:{"circle-color":h.color||"#ccc","circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-opacity":h.opacity||1}}),d}function Bx(h){return[{type:"line",paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]}function Vx(h){const d=[{type:"circle",maxzoom:h.icon&&+h.iconZoom||22,paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}];return h!=null&&h.clusterZoom?(d.push({type:"circle",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}}),d.push({type:"symbol",filter:["has","point_count"],layout:{"text-field":["get","point_count"],"text-font":["Open Sans Regular"],"text-size":12}})):h.icon&&d.push({type:"symbol",minzoom:+h.iconZoom||16,layout:{"icon-image":h.icon,"icon-allow-overlap":!0}}),d}function Fx(h,d,_){const w=h.type||"point";return w==="polygon"?[{type:"fill",..._!==void 0?{maxzoom:_}:{},paint:{"fill-color":za(h),"fill-outline-color":os(h,"stroke","#ccc"),"fill-opacity":h.opacity||1,...h.attrType==="attribute-pattern"&&{"fill-pattern":ry(h)},...h.fillPattern&&!h.attrType&&{"fill-pattern":h.fillPattern}}},{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"stroke","#ccc"),"line-width":h.width||2,"line-opacity":h.lineOpacity||h.opacity||1}}]:w==="line"?[{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":os(h,"color",za(h)),"line-width":h.width||2,"line-opacity":h.opacity||1,...h.dashArray&&{"line-dasharray":h.dashArray}},layout:{...h.lineCap&&{"line-cap":h.lineCap},...h.lineJoin&&{"line-join":h.lineJoin}}}]:[{type:"circle",..._!==void 0?{maxzoom:_}:{},paint:{"circle-radius":h.radius||6,"circle-stroke-color":os(h,"stroke","#ccc"),"circle-stroke-width":h.width||2,"circle-color":za(h),"circle-opacity":h.opacity||1}}]}function iy(h){var _,w;if(!h)return null;if(h.attrType==="icon-by-attribute"&&h.iconZoom){const k=Dx(h),P=Array.isArray(k)&&k[0]==="case"?k:["case",["==",["get",h.attribute],((w=(_=h.rules)==null?void 0:_[0])==null?void 0:w.value)||""],k,k],x=Fx(h,void 0,+h.iconZoom),s={type:"symbol",minzoom:+h.iconZoom,layout:{"icon-image":P,"icon-size":(h==null?void 0:h.icon_size)||1,"icon-allow-overlap":!0,"icon-anchor":(h==null?void 0:h.icon_anchor)||"bottom"},paint:{"icon-opacity":h.opacity||1}};return[...x,s]}const d=h.type||"point";return d==="polygon"?zx(h):d==="line"?Bx(h):Vx(h)}function Ox(h){return h.startsWith("http")?h:`${window.location.origin}${h}`}function Nx(h){const{id:d,sourceLayer:_,url:w,bounds:k,title:P,style:x,service:s,service_type:B,source_type:D,data:M}=h,F=Ox(w),R=B||s||D||"vector";switch(R){case"vtile":case"vector":return qx(d,_,F,k,P,x);case"raster":return Ux(d,F,k,P,x);case"geojson":return jx(d,M||F,k,P,x);default:throw new Error(`Unsupported layer service type: ${R}`)}}function ny(h){switch(h){case"polygon":return{type:"polygon",color:"#3388ff",opacity:.5};case"line":return{type:"line",color:"#3388ff",opacity:1};case"point":default:return{type:"point",color:"#3388ff",radius:6,opacity:1}}}function qx(h,d,_,w,k,P){const x=d||(_.match(/\/vtile\/([^/]+)/)||[])[1],s={type:"vector",tiles:[_],...w&&{bounds:w}},B=P||ny("polygon"),M=iy(B).map((F,R)=>({...F,id:`${h}-${R}`,"source-layer":x||h,source:h}));return{id:h,title:k,source:s,layers:M,visible:!0}}function Ux(h,d,_,w,k){const P={type:"raster",tiles:[d],tileSize:256,..._&&{bounds:_}},x=k||{},s={id:h,type:"raster",source:h,layout:{visibility:"visible"},...x&&{paint:x}};return{id:h,title:w,source:P,layers:[s],visible:!0}}function jx(h,d,_,w,k){var M;const P={type:"geojson",data:d,..._&&{bounds:_}};let x="point";if(d&&d.features&&d.features.length>0){const F=(M=d.features[0].geometry)==null?void 0:M.type;F==="Polygon"||F==="MultiPolygon"?x="polygon":F==="LineString"||F==="MultiLineString"?x="line":x="point"}const s=k||ny(x),D=iy(s).map((F,R)=>({...F,id:`${h}-${R}`,source:h}));return{id:h,title:w,source:P,layers:D,visible:!0}}function Hx(h){if(!h||h.attrType!=="icon-by-attribute")return[];const d=new Set;return h.default_icon&&d.add(h.default_icon),Array.isArray(h.rules)&&h.rules.forEach(_=>{_.icon&&d.add(_.icon)}),Array.from(d).map(_=>({name:_,url:(h.icon_base_url||"")+_}))}function Wx(h){const d=new Set;function _(w){typeof w=="string"?d.add(w):Array.isArray(w)&&w.forEach(_)}return h&&h["icon-image"]&&_(h["icon-image"]),Array.from(d)}async function sy(h,d){const _=d.map(async({name:w,url:k})=>{const P=await h.loadImage(k);return{name:w,data:P.data}});try{const w=await Promise.all(_);for(const{name:k,data:P}of w)h.hasImage(k)||h.addImage(k,P)}catch(w){console.error("Failed to load icons:",w)}}function Zx(h,d,_="/icons/"){const k=Wx(d).map(P=>({name:P,url:_+P}));return sy(h,k)}async function Po(h,d){const _=Nx(d),w=Hx(d.style);w.length>0&&await sy(h,w),d.layout&&d.layout["icon-image"]&&await Zx(h,d.layout),h.getSource(_.id)||h.addSource(_.id,_.source);for(const k of _.layers)d.visible!==void 0&&(k.layout={...k.layout,visibility:d.visible?"visible":"none"}),h.getLayer(k.id)?h.setLayoutProperty(k.id,"visibility",d.visible?"visible":"none"):await h.addLayer(k);return _}function Da(h,d){h.getStyle().layers.filter(k=>k.source===d).forEach(k=>{h.removeLayer(k.id)}),h.getSource(d)&&h.removeSource(d)}const Kx={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},Gx={class:"flex flex-col justify-between h-full pb-5 px-5"},Jx={key:0,class:"relative mb-[10px]"},Xx={width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0px, -50%)"}},Qx={key:1,class:"mb-4"},Yx={class:""},$x={class:"space-y-2"},eb={class:"flex items-center gap-[10px] text-gray-500"},tb={class:"dataset-checkbox-container flex"},rb=["onUpdate:modelValue","onChange"],ib={class:"text-sm"},nb=["onClick"],sb=["innerHTML"],ob={key:0,class:"text-sm text-gray-500 text-center py-2"},ab={__name:"vs-layers-widget",props:{map:{type:Object,required:!0},history:{type:Boolean,default:!1},config:{type:Object,default:()=>({layers:[],search:!1,allow_toggle_all:!1})},position:{type:String,default:"bottom-left"},hasFilters:{type:Boolean,default:!1}},emits:["set-filter-layer","update:enabledLayerIds"],setup(h,{emit:d}){const _=h,w=d,k=y.ref("");y.computed(()=>ty(_.position));const P=y.ref([]);function x(){const C=new URLSearchParams(window.location.search).get("layers");return C?C.split(","):[]}function s(T){const C=new URLSearchParams(window.location.search);T.length>0?C.set("layers",T.join(",")):C.delete("layers");const U=`${window.location.pathname}?${C.toString()}`;window.history.replaceState({},"",U)}y.onMounted(()=>{let T=[];_.history&&(T=x()),T.length>0?P.value=_.config.layers.map(C=>({...C,visible:T.includes(String(C.id))})):P.value=_.config.layers.map(C=>({...C,visible:C.visible??!1})),P.value.forEach(C=>{C.visible&&Po(_.map,C)}),w("update:enabledLayerIds",M())});const B=y.computed(()=>{if(!k.value)return P.value;const T=k.value.toLowerCase();return P.value.filter(C=>(C.title||C.name||C.label||"").toLowerCase().includes(T))}),D=y.computed(()=>P.value.every(T=>T.visible)),M=()=>P.value.filter(T=>T.visible).map(T=>T.id),F=T=>{T.visible?Po(_.map,T):(Da(_.map,T.id),w("set-filter-layer",null)),_.map.getStyle().layers.filter(K=>K.source===T.id).forEach(K=>{_.map.setLayoutProperty(K.id,"visibility",T.visible?"visible":"none")}),w("update:enabledLayerIds",M())},R=()=>{const T=!D.value;P.value.forEach(C=>{C.visible=T,T?Po(_.map,C):Da(_.map,C.id)}),T||w("set-filter-layer",null),w("update:enabledLayerIds",M())};return y.watch(()=>M(),T=>{_.history&&s(T)},{deep:!0}),(T,C)=>(y.openBlock(),y.createElementBlock("div",Kx,[C[2]||(C[2]=y.createElementVNode("div",{class:"p-5 pb-3 flex justify-between items-center"},[y.createElementVNode("h2",{class:"inline-block font-semibold text-lg text-gray-800"},"Шари")],-1)),y.createElementVNode("div",Gx,[h.config.search?(y.openBlock(),y.createElementBlock("div",Jx,[y.withDirectives(y.createElementVNode("input",{type:"text","onUpdate:modelValue":C[0]||(C[0]=U=>k.value=U),placeholder:"Введіть назву шару...",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none"},null,512),[[y.vModelText,k.value]]),(y.openBlock(),y.createElementBlock("svg",Xx,C[1]||(C[1]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])))])):y.createCommentVNode("",!0),h.config.allow_toggle_all?(y.openBlock(),y.createElementBlock("div",Qx,[y.createElementVNode("button",{onClick:R,class:"w-full py-[7px] bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors"},y.toDisplayString(D.value?"Вимкнути всі":"Увімкнути всі"),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",Yx,[y.createElementVNode("ul",$x,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(B.value,U=>(y.openBlock(),y.createElementBlock("li",{key:U.id,class:"flex flex-wrap justify-between items-center gap-x-2"},[y.createElementVNode("label",eb,[y.createElementVNode("span",tb,[y.withDirectives(y.createElementVNode("input",{class:"dataset-checkbox",type:"checkbox","onUpdate:modelValue":K=>U.visible=K,onChange:()=>F(U)},null,40,rb),[[y.vModelCheckbox,U.visible]])]),y.createElementVNode("span",ib,y.toDisplayString(U.title||U.name||U.label),1)]),U.actions&&U.visible?(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:0},y.renderList(U.actions,K=>(y.openBlock(),y.createElementBlock("div",{key:K.id},[y.createElementVNode("button",{class:"text-sm text-gray-500",onClick:ie=>T.$emit("show-widget",K.widget)},[y.createElementVNode("div",{innerHTML:K.icon},null,8,sb)],8,nb)]))),128)):y.createCommentVNode("",!0)]))),128)),k.value&&B.value.length===0?(y.openBlock(),y.createElementBlock("li",ob," Шарів не знайдено ")):y.createCommentVNode("",!0)])])])]))}},lb={class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},cb={key:0,class:"p-5 pb-3 flex justify-between items-start gap-[30px]"},ub={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},hb={class:"flex flex-col gap-1"},pb={class:"flex flex-col gap-1 p-5 pt-0"},db=["innerHTML"],fb={__name:"vs-info-widget",props:{config:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.title)||""}),w=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.content)||""}),k=y.computed(()=>{var P;return((P=d.config)==null?void 0:P.goTo)||[]});return(P,x)=>{var D,M;const s=y.resolveComponent("VsPopover"),B=y.resolveComponent("router-link");return y.openBlock(),y.createElementBlock("div",lb,[_.value||(D=k.value)!=null&&D.length?(y.openBlock(),y.createElementBlock("div",cb,[y.createElementVNode("h2",ub,y.toDisplayString(_.value),1),(M=k.value)!=null&&M.length?(y.openBlock(),y.createBlock(s,{key:0,placement:"bottom"},{reference:y.withCtx(()=>[y.createVNode(s,{trigger:"hover",placement:"right"},{reference:y.withCtx(()=>x[0]||(x[0]=[y.createElementVNode("div",{class:"flex items-center justify-center h-8 w-8 transition-colors rounded-full hover:bg-gray-100 cursor-pointer"},[y.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)])),default:y.withCtx(()=>[x[1]||(x[1]=y.createTextVNode(" Перейти на карту "))]),_:1})]),default:y.withCtx(()=>[y.createElementVNode("div",hb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(k.value,F=>(y.openBlock(),y.createElementBlock("div",{key:F.label},[F.url?(y.openBlock(),y.createBlock(B,{key:0,to:F.url,class:"text-sm text-gray-800 dark:text-neutral-200 hover:bg-gray-100 hover:text-blue-600 transition-colors rounded px-2 py-1 block"},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(F.label),1)]),_:2},1032,["to"])):y.createCommentVNode("",!0)]))),128))])]),_:1})):y.createCommentVNode("",!0)])):y.createCommentVNode("",!0),y.createElementVNode("div",pb,[y.createElementVNode("div",{innerHTML:w.value},null,8,db)])])}}},mb=Gt(fb,[["__scopeId","data-v-187a97ca"]]),gb={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative overflow-hidden"},yb={key:0,class:"p-5 pb-3 flex justify-between items-center"},_b={class:"inline-block font-semibold text-lg text-gray-800"},vb={key:1,class:"flex"},xb={class:"flex items-center mx-[8px]"},bb={class:"min-h-[34px] max-h-[34px] overflow-hidden min-w-[34px] flex justify-center items-center bg-stone-100 text-stone-800 py-2 px-3 text-sm rounded-lg"},wb={class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},Sb={class:"flex flex-col justify-between pb-5 px-5 h-full overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},Ab={key:0,class:"text-center"},kb={key:1,class:"text-red-500"},Tb={key:2},Cb=["innerHTML"],Eb={key:1,class:"flow-root"},Pb={class:"-my-3 divide-y divide-gray-100 text-sm"},Ib={class:"font-medium text-gray-900"},Mb={class:"text-gray-700 sm:col-span-2"},Lb={key:2,class:"vs-map-card-info__nodata"},oy={__name:"vs-card-widget",props:{config:{type:Object,required:!0},cardValues:{type:Object,required:!0}},emits:["close","content-resize"],setup(h,{emit:d}){const _=h,w=d,k=y.computed(()=>{var K;return((K=_.config)==null?void 0:K.title)||""}),P=y.ref([]),x=y.ref(!1),s=y.ref(null),B=y.ref(0),D=y.computed(()=>B.value+1),M=y.computed(()=>{var K;return((K=_.info)==null?void 0:K.length)||0}),F=y.computed(()=>P.value[B.value]),R=y.computed(()=>{if(!F.value)return{};const{rows:K,columns:ie}=F.value;return!K||!ie?{}:ie.reduce((le,Ae)=>(!Ae.hide&&!["geom","geodata","id"].includes(Ae.name)&&(le[Ae.ua]=K[Ae.name]??"-"),le),{})});async function T(){var K,ie,le;x.value=!0,s.value=null;try{const Ae={id:(K=_.cardValues)==null?void 0:K.id,layer:(ie=_.cardValues)==null?void 0:ie.layer,map:(le=_.cardValues)==null?void 0:le.map},te=await gr.get("/api/map-format",{params:Ae});P.value[B.value]=te.data}catch(Ae){s.value=(Ae==null?void 0:Ae.message)||"Помилка запиту"}finally{x.value=!1,await y.nextTick(),w("content-resize")}}function C(){B.value<_.info.length-1&&(B.value+=1,P.value[B.value]||T())}function U(){B.value>0&&(B.value-=1,P.value[B.value]||T())}return y.onMounted(async()=>{await y.nextTick(),T()}),y.watch(()=>_.info,()=>{B.value=0,T(),w("content-resize")},{deep:!0}),y.watch([()=>_.cardValues,()=>_.config],async()=>{await y.nextTick(),T(),w("content-resize")}),(K,ie)=>{var le;return y.openBlock(),y.createElementBlock("div",gb,[k.value?(y.openBlock(),y.createElementBlock("div",yb,[y.createElementVNode("h2",_b,y.toDisplayString(k.value),1),y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600 ml-2",onClick:ie[0]||(ie[0]=Ae=>w("close"))},ie[1]||(ie[1]=[y.createElementVNode("svg",{class:"shrink-0 size-4 cursor-pointer",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[y.createElementVNode("path",{d:"M18 6 6 18"}),y.createElementVNode("path",{d:"m6 6 12 12"})],-1)]))])):y.createCommentVNode("",!0),M.value>1?(y.openBlock(),y.createElementBlock("div",vb,[y.createElementVNode("button",{type:"button",class:y.normalizeClass([{"opacity-flex items-center justify-between border-b px-[16px] py-[8px]50 pointer-events-none":D.value===1},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"]),onClick:U}," ◀ ",2),y.createElementVNode("div",xb,[y.createElementVNode("span",bb,y.toDisplayString(D.value),1),ie[2]||(ie[2]=y.createElementVNode("span",{class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},"з",-1)),y.createElementVNode("span",wb,y.toDisplayString(M.value),1)]),y.createElementVNode("button",{type:"button",onClick:C,class:y.normalizeClass([{"opacity-50 pointer-events-none":D.value===M.value},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"])}," ▶ ",2)])):y.createCommentVNode("",!0),y.createElementVNode("div",Sb,[x.value?(y.openBlock(),y.createElementBlock("div",Ab,"Завантаження даних...")):s.value?(y.openBlock(),y.createElementBlock("div",kb,"Помилка завантаження даних")):(y.openBlock(),y.createElementBlock("div",Tb,[(le=F.value)!=null&&le.html?(y.openBlock(),y.createElementBlock("div",{key:0,innerHTML:F.value.html,class:"custom-table-html border-b"},null,8,Cb)):Object.keys(R.value).length?(y.openBlock(),y.createElementBlock("div",Eb,[y.createElementVNode("dl",Pb,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(R.value,(Ae,te)=>(y.openBlock(),y.createElementBlock("div",{key:te,class:"grid grid-cols-1 gap-1 py-3 even:bg-gray-50 sm:grid-cols-3 sm:gap-4"},[y.createElementVNode("dt",Ib,y.toDisplayString(te),1),y.createElementVNode("dd",Mb,y.toDisplayString(Ae),1)]))),128))])])):(y.openBlock(),y.createElementBlock("div",Lb,"Даних не знайдено."))]))])])}}},Rb={class:"size-full flex flex-col bg-white border border-gray-200 shadow-2xs rounded-xl dark:bg-neutral-800 dark:border-neutral-700"},Db={key:0,class:"p-5 pb-0 items-center"},zb={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},Bb={class:"h-full p-5"},Vb={class:"h-full flex flex-col justify-between space-y-4"},Fb={class:"space-y-4"},Ob={key:0,class:"flex gap-x-1 w-full h-2.5 rounded-full overflow-hidden"},Nb=["aria-valuenow"],qb={class:"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center rounded-lg group hover:bg-gray-100"},Ub=["for"],jb={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},Hb=["id","onUpdate:modelValue"],Wb={class:"ms-2 text-gray-800 dark:text-neutral-200"},Zb={key:0,class:"ms-auto text-xs text-gray-500 dark:text-neutral-500"},Kb={__name:"vs-attributre-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0}},setup(h){const d=h,_=y.computed(()=>{var B;return((B=d.config)==null?void 0:B.title)||""}),w=y.ref([]),k=y.computed(()=>d.config.layer.style.rules.some(B=>B.count!==void 0)),P=y.computed(()=>d.config.layer.style.rules.reduce((B,D)=>B+(D.count||0),0)),x=B=>!B||P.value===0?0:Math.round(B/P.value*100),s=()=>{const D=d.config.layer.style.rules.filter((M,F)=>w.value[F]).map(M=>M.id||M.value).join(",");if(d.config.layer.id){const M=d.map.getSource(d.config.layer.id);if(M){const R=M.tiles[0].split("?filter=")[0],T=D?`${R}?filter=${d.config.layer.style.attribute}=${D}`:R;M.setTiles([T])}}};return y.onMounted(()=>{var B;(B=d.config)!=null&&B.layer&&(Po(d.map,d.config.layer),w.value=new Array(d.config.layer.style.rules.length).fill(!1))}),(B,D)=>(y.openBlock(),y.createElementBlock("div",Rb,[_.value?(y.openBlock(),y.createElementBlock("div",Db,[y.createElementVNode("div",null,[y.createElementVNode("h2",zb,y.toDisplayString(_.value),1)])])):y.createCommentVNode("",!0),y.createElementVNode("div",Bb,[y.createElementVNode("div",Vb,[y.createElementVNode("div",Fb,[k.value?(y.openBlock(),y.createElementBlock("div",Ob,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("div",{key:F,class:"flex flex-col justify-center overflow-hidden text-xs text-white text-center whitespace-nowrap",style:y.normalizeStyle({width:`${x(M.count)}%`,backgroundColor:M.color}),role:"progressbar","aria-valuenow":x(M.count),"aria-valuemin":"0","aria-valuemax":"100"},null,12,Nb))),128))])):y.createCommentVNode("",!0),y.createElementVNode("ul",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(h.config.layer.style.rules,(M,F)=>(y.openBlock(),y.createElementBlock("li",{key:F},[y.createElementVNode("div",qb,[y.createElementVNode("label",{for:`filter-${F}`,class:"flex items-center w-full cursor-pointer"},[y.createElementVNode("div",{class:"w-[18px] h-[18px] border rounded-[4px] flex items-center justify-center",style:y.normalizeStyle({background:w.value[F]?M.color||"#2563eb":"#fff",borderColor:w.value[F]?M.color||"#2563eb":M.color||"#d9d9d9"})},[w.value[F]?(y.openBlock(),y.createElementBlock("img",jb)):y.createCommentVNode("",!0)],4),y.withDirectives(y.createElementVNode("input",{type:"checkbox",id:`filter-${F}`,"onUpdate:modelValue":R=>w.value[F]=R,onChange:s,class:"hidden",disabled:!1},null,40,Hb),[[y.vModelCheckbox,w.value[F]]]),y.createElementVNode("span",Wb,y.toDisplayString(M.label||M.text),1),k.value?(y.openBlock(),y.createElementBlock("span",Zb,"("+y.toDisplayString(M.count)+")",1)):y.createCommentVNode("",!0)],8,Ub)])]))),128))])])])])]))}},Gb={class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},Jb=["for"],Xb={class:"custom-checkbox-wrapper"},Qb=["id","checked"],Yb={class:"custom-checkbox"},$b={key:0,xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},e1={class:"flex items-center justify-between ml-2 w-full"},t1=["title"],r1={key:0,class:"text-xs opacity-60 text-[#4b5563]"},i1={__name:"vs-map-catalog-item",props:{layer:{type:Object,required:!0},map:{type:Object,default:()=>null},selectedLayers:{type:Array,default:()=>[]}},emits:["select","remove"],setup(h,{emit:d}){const _=h,w=d,k=y.computed(()=>_.selectedLayers.some(s=>s.id===_.layer.id)),P=s=>Intl.NumberFormat("uk",{notation:"compact"}).format(s),x=s=>{w(s?"select":"remove",_.layer)};return(s,B)=>{var D,M,F,R,T;return y.openBlock(),y.createElementBlock("div",Gb,[y.createElementVNode("label",{class:"flex items-center w-full cursor-pointer",for:h.layer.id},[y.createElementVNode("div",Xb,[y.createElementVNode("input",{id:h.layer.id,type:"checkbox",checked:k.value,onChange:B[0]||(B[0]=C=>x(C.target.checked)),class:"custom-checkbox-input"},null,40,Qb),y.createElementVNode("div",Yb,[k.value?(y.openBlock(),y.createElementBlock("svg",$b,B[1]||(B[1]=[y.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))):y.createCommentVNode("",!0)])]),y.createElementVNode("div",e1,[y.createElementVNode("div",{class:"whitespace-nowrap text text-ellipsis max-w-[260px] overflow-hidden text-[13px] text-[#4b5563]",title:(D=h.layer)==null?void 0:D.name},y.toDisplayString(((M=h.layer)==null?void 0:M.name)||((F=h.layer)==null?void 0:F.title)),9,t1),isNaN(P((R=h.layer)==null?void 0:R.count))?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock("div",r1,y.toDisplayString(P((T=h.layer)==null?void 0:T.count)),1))])],8,Jb)])}}},n1=Gt(i1,[["__scopeId","data-v-b96f3537"]]),s1={},o1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"};function a1(h,d){return y.openBlock(),y.createElementBlock("svg",o1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"11",cy:"11",r:"8"},null,-1),y.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"},null,-1),y.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"},null,-1),y.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"},null,-1)]))}const l1=Gt(s1,[["render",a1]]),c1={},u1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"};function h1(h,d){return y.openBlock(),y.createElementBlock("svg",u1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),y.createElementVNode("path",{d:"M12 16v-4"},null,-1),y.createElementVNode("path",{d:"M12 8h.01"},null,-1)]))}const p1=Gt(c1,[["render",h1]]),d1={},f1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"};function m1(h,d){return y.openBlock(),y.createElementBlock("svg",f1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M12 3v18"},null,-1),y.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"},null,-1),y.createElementVNode("path",{d:"M3 9h18"},null,-1),y.createElementVNode("path",{d:"M3 15h18"},null,-1)]))}const g1=Gt(d1,[["render",m1]]),y1={},_1={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"};function v1(h,d){return y.openBlock(),y.createElementBlock("svg",_1,d[0]||(d[0]=[y.createStaticVNode('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>',5)]))}const x1=Gt(y1,[["render",v1]]),b1={},w1={xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical text-gray-600"};function S1(h,d){return y.openBlock(),y.createElementBlock("svg",w1,d[0]||(d[0]=[y.createElementVNode("circle",{cx:"12",cy:"12",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"5",r:"1"},null,-1),y.createElementVNode("circle",{cx:"12",cy:"19",r:"1"},null,-1)]))}const A1=Gt(b1,[["render",S1]]),k1={},T1={width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function C1(h,d){return y.openBlock(),y.createElementBlock("svg",T1,d[0]||(d[0]=[y.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const E1=Gt(k1,[["render",C1]]);function P1(){const d=new URLSearchParams(window.location.search).get("layers");return d?d.split(","):[]}function I1(h){const d=new URLSearchParams(window.location.search);h.length>0?d.set("layers",h.join(",")):d.delete("layers");const _=`${window.location.pathname}?${d.toString()}`;window.history.replaceState({},"",_)}const M1={components:{VsLayersItem:n1,ZoomInIcon:l1,InfoIcon:p1,TableIcon:g1,TrashIcon:x1,DotsIcon:A1,ChevronRightIcon:E1,Container:rm.Container,Draggable:rm.Draggable},props:{center:{type:Array,default:()=>[26.2516,50.6199]},zoom:{type:Number,default:12},map:{type:Object,default:()=>null},history:{type:Boolean,default:!1}},emits:["content-resize"],data(){return{layers:null,rawCatalog:null,categories:null,selectedCategory:"",search:"",activeView:"catalog",selectedLayers:[]}},computed:{searchedLayers(){return this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))}},async mounted(){if(await this.getLayers(),this.categories=this.layersCategories(),this.history){const h=P1();h.length>0&&this.layers&&(h.forEach(d=>{const _=this.layers.find(w=>String(w.id)===d);if(_&&!this.selectedLayers.find(w=>w.id===_.id)){const w={..._,visible:!0,opacity:100};this.selectedLayers.push(w),Po(this.map,w)}}),this.activeView="selected")}this._resizeObserver=new window.ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{const h=this.$el;h&&this._resizeObserver.observe(h)})},beforeUnmount(){this._resizeObserver&&this._resizeObserver.disconnect()},watch:{selectedLayers:{handler(h){this.history&&I1(h.map(d=>d.id))},deep:!0}},methods:{async getLayers(){try{const h=await gr.get("/api/map-catalog"),d=(h.data.services||[]).filter(_=>_.service_type!=="other");this.layers=[...d,...h.data.rasters||[]],this.rawCatalog={...h.data,services:d}}catch(h){console.error("Помилка завантаження шарів:",h)}},layersCategories(){return this.rawCatalog?{Сервіси:this.rawCatalog.services||[],Растри:this.rawCatalog.rasters||[]}:{}},selectCategory(h){this.selectedCategory=this.selectedCategory===h?"":h},formatNumber(h){return Intl.NumberFormat("uk",{notation:"compact"}).format(h)},onEnter(){this.layers.filter(({name:h})=>h==null?void 0:h.toLowerCase().match(this.search.toLowerCase()))},clearSearch(){this.search=""},addToSelected(h){if(!this.selectedLayers.find(d=>d.id===h.id)){const d={...h,visible:!0,opacity:100};this.selectedLayers.unshift(d),Po(this.map,d)}},deleteLayer(h){const d=this.selectedLayers.findIndex(_=>_.id===h.id);d!==-1&&this.selectedLayers.splice(d,1),Da(this.map,h.id)},async toggleLayerVisibility(h){try{h.visible?(await Po(this.map,h),this.updateLayerOpacity(h)):await Da(this.map,h.id)}catch(d){console.error("Error toggling layer visibility:",d),h.visible=!h.visible}},onLayerOpacityChange(h){this.updateLayerOpacity(h)},updateLayerOpacity(h){if(this.map){const d=this.map.getStyle().layers.filter(w=>w.id.includes(h.id)),_=h.opacity/100;d.forEach(w=>{w.type==="fill"?(h.originalFillOpacity||(h.originalFillOpacity=this.map.getPaintProperty(w.id,"fill-opacity")||1),this.map.setPaintProperty(w.id,"fill-opacity",h.originalFillOpacity*_)):w.type==="raster"?this.map.setPaintProperty(w.id,"raster-opacity",_):w.type==="line"?this.map.setPaintProperty(w.id,"line-opacity",_):w.type==="circle"?(this.map.setPaintProperty(w.id,"circle-opacity",_),this.map.setPaintProperty(w.id,"circle-stroke-opacity",_)):w.type==="symbol"&&(this.map.setPaintProperty(w.id,"icon-opacity",_),this.map.setPaintProperty(w.id,"text-opacity",_))})}},async handleRemoveFromCatalog(h){const d=this.selectedLayers.find(_=>_.id===h.id);d!=null&&d.visible&&await Da(this.map,h.id),this.deleteLayer(h)},clearSelectedLayers(){this.selectedLayers.forEach(async h=>{h.visible&&await Da(this.map,h.id)}),this.selectedLayers=[]},zoomToLayer(h){this.fitBoundsByLayer(h)},showLayerInfo(h){},showLayerTable(h){},fitBoundsByLayer(h){h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4&&this.map&&this.map.fitBounds([[h.bbox[0],h.bbox[1]],[h.bbox[2],h.bbox[3]]],{padding:50,duration:0})},popoverActions(h){return[{label:"Збільшити до шару",icon:"ZoomInIcon",class:h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4?"text-gray-700 hover:bg-gray-100":"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"zoomToLayer",disabled:!(h&&h.bbox&&Array.isArray(h.bbox)&&h.bbox.length===4)},{label:"Інформація про шар",icon:"InfoIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerInfo",disabled:!0},{label:"Таблиця шару",icon:"TableIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerTable",disabled:!0},{divider:!0},{label:"Видалити шар",icon:"TrashIcon",class:"text-red-600 hover:bg-red-50",handler:"deleteLayer",disabled:!1}]},onDrop(h){const{removedIndex:d,addedIndex:_,payload:w}=h;if(d===null&&_===null)return;const k=[...this.selectedLayers];let P=w;if(d!==null&&(P=k.splice(d,1)[0]),_!==null&&k.splice(_,0,P),this.selectedLayers=k,this.map&&this.selectedLayers.length>1)for(let x=this.selectedLayers.length-1;x>=0;x--){const s=this.selectedLayers[x];s.visible&&this.map.getStyle().layers.find(B=>B.id.includes(s.id))&&this.map.getStyle().layers.forEach(B=>{B.id.includes(s.id)&&this.map.moveLayer(B.id)})}}}},L1={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm"},R1={class:"flex items-center justify-between mb-4"},D1={class:"flex items-center gap-2"},z1={class:"text-lg font-semibold text-gray-800"},B1={key:0},V1={key:1},F1={class:"flex mb-4 border-b border-gray-200"},O1={key:0},N1={class:"mb-4"},q1={class:"border border-gray-200 rounded-md p-3 mb-2 bg-white shadow-sm"},U1={class:"flex items-center justify-between"},j1={class:"flex items-center gap-2 cursor-move"},H1=["onUpdate:modelValue","onChange"],W1={class:"text-gray-800 font-medium"},Z1={class:"flex items-center gap-2"},K1={class:"relative"},G1={class:"flex items-center gap-2"},J1=["onUpdate:modelValue","onInput"],X1={class:"text-xs text-gray-600 whitespace-nowrap"},Q1=["onClick"],Y1={class:"relative"},$1={class:"w-48"},e2={key:0,class:"my-1 border-gray-200"},t2=["disabled","onClick"],r2={class:"p-1 rounded-full hover:bg-gray-100 transition-colors","aria-label":"Layer actions"},i2={key:0,class:"text-center text-[14px] text-[#4b5563]"},n2={class:"relative mt-[10px]"},s2={class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"},width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o2={key:0,class:"vs-layers-catalog__list flex-1 scrollable-container overflow-auto mt-2 catalog-list"},a2={key:0,class:"text-center text-[14px] text-[#4b5563]"},l2={key:0,class:"text-center text-[14px] text-[#4b5563]"},c2=["onClick"],u2={class:"flex items-center gap-x-3"},h2=["title"],p2={class:"text-xs opacity-60 text-[#4b5563]"};function d2(h,d,_,w,k,P){var C;const x=y.resolveComponent("VsPopover"),s=y.resolveComponent("DotsIcon"),B=y.resolveComponent("Draggable"),D=y.resolveComponent("Container"),M=y.resolveComponent("searchIcon"),F=y.resolveComponent("closeIcon"),R=y.resolveComponent("VsLayersItem"),T=y.resolveComponent("chevronRightIcon");return y.openBlock(),y.createElementBlock("div",L1,[y.createElementVNode("div",R1,[y.createElementVNode("div",D1,[d[6]||(d[6]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[y.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),y.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),y.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),y.createElementVNode("h2",z1,[y.createTextVNode(y.toDisplayString(k.activeView==="catalog"?"Каталог":"Вибрані шари")+" ",1),k.activeView==="catalog"?(y.openBlock(),y.createElementBlock("span",B1,"("+y.toDisplayString(((C=k.layers)==null?void 0:C.length)||0)+")",1)):(y.openBlock(),y.createElementBlock("span",V1,"("+y.toDisplayString(k.selectedLayers.length)+")",1))])]),y.createElementVNode("button",{class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers",onClick:d[0]||(d[0]=(...U)=>P.clearSelectedLayers&&P.clearSelectedLayers(...U))},d[7]||(d[7]=[y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-5b1a9326><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-5b1a9326></path><path d="M21 3v5h-5" data-v-5b1a9326></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-5b1a9326></path><path d="M8 16H3v5" data-v-5b1a9326></path></svg>',1)]))]),y.createElementVNode("div",F1,[y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",k.activeView==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[1]||(d[1]=U=>k.activeView="catalog")}," Каталог ",2),y.createElementVNode("button",{class:y.normalizeClass(["px-4 py-2 text-sm font-medium",k.activeView==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:d[2]||(d[2]=U=>k.activeView="selected")}," Вибрані шари ",2)]),k.activeView==="selected"?(y.openBlock(),y.createElementBlock("div",O1,[y.createElementVNode("div",N1,[y.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:d[3]||(d[3]=U=>k.activeView="catalog")},d[8]||(d[8]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"M12 5v14"})],-1),y.createElementVNode("span",null,"Вибрати шар",-1)]))]),(y.openBlock(),y.createBlock(D,{onDrop:P.onDrop,lockAxis:"y","drag-class":"dragging",key:k.selectedLayers.length,class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(k.selectedLayers,(U,K)=>(y.openBlock(),y.createBlock(B,{key:U.id||K,payload:U},{default:y.withCtx(()=>[y.createElementVNode("div",q1,[y.createElementVNode("div",U1,[y.createElementVNode("div",j1,[d[9]||(d[9]=y.createElementVNode("svg",{width:"16",height:"16",fill:"none",stroke:"#9ca3af","stroke-width":"2",viewBox:"0 0 24 24",class:"mr-1 shrink-0"},[y.createElementVNode("circle",{cx:"5",cy:"5",r:"1.5"}),y.createElementVNode("circle",{cx:"5",cy:"12",r:"1.5"}),y.createElementVNode("circle",{cx:"5",cy:"19",r:"1.5"}),y.createElementVNode("circle",{cx:"12",cy:"5",r:"1.5"}),y.createElementVNode("circle",{cx:"12",cy:"12",r:"1.5"}),y.createElementVNode("circle",{cx:"12",cy:"19",r:"1.5"}),y.createElementVNode("circle",{cx:"19",cy:"5",r:"1.5"}),y.createElementVNode("circle",{cx:"19",cy:"12",r:"1.5"}),y.createElementVNode("circle",{cx:"19",cy:"19",r:"1.5"})],-1)),y.withDirectives(y.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500","onUpdate:modelValue":ie=>U.visible=ie,onChange:ie=>P.toggleLayerVisibility(U)},null,40,H1),[[y.vModelCheckbox,U.visible]]),y.createElementVNode("span",W1,y.toDisplayString(U.name||U.title||U.label),1)]),y.createElementVNode("div",Z1,[y.createElementVNode("div",K1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer",onClick:ie=>P.updateLayerOpacity(U)},y.toDisplayString(U.opacity||100)+"% ",9,Q1)]),default:y.withCtx(()=>[y.createElementVNode("div",G1,[d[10]||(d[10]=y.createElementVNode("label",{class:"text-gray-600 whitespace-nowrap"},"Прозорість:",-1)),y.withDirectives(y.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":ie=>U.opacity=ie,onInput:ie=>P.onLayerOpacityChange(U),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,40,J1),[[y.vModelText,U.opacity]]),y.createElementVNode("span",X1,y.toDisplayString(Math.round(U.opacity))+"% ",1)])]),_:2},1024)]),y.createElementVNode("div",Y1,[y.createVNode(x,{placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("div",r2,[y.createVNode(s)])]),default:y.withCtx(()=>[y.createElementVNode("div",$1,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.popoverActions(U),(ie,le)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:le},[ie.divider?(y.openBlock(),y.createElementBlock("hr",e2)):(y.openBlock(),y.createElementBlock("button",{key:1,class:y.normalizeClass("w-full p-2 text-left text-sm flex items-center gap-2 "+(ie.class||"")),disabled:ie.disabled,onClick:Ae=>!ie.disabled&&h.$options.methods[ie.handler].call(this,U)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(ie.icon),{class:"lucide"})),y.createTextVNode(" "+y.toDisplayString(ie.label),1)],10,t2))],64))),128))])]),_:2},1024)])])])])]),_:2},1032,["payload"]))),128)),k.selectedLayers.length===0?(y.openBlock(),y.createElementBlock("div",i2,d[11]||(d[11]=[y.createElementVNode("p",null,'Щоб додати шар, натисніть на кнопку "Вибрати шар".',-1)]))):y.createCommentVNode("",!0)]),_:1},8,["onDrop"]))])):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createElementVNode("div",n2,[(y.openBlock(),y.createElementBlock("svg",s2,d[12]||(d[12]=[y.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))),y.withDirectives(y.createElementVNode("input",{title:"value",placeholder:"Введіть назву шару...","onUpdate:modelValue":d[4]||(d[4]=U=>k.search=U),type:"text",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",onKeyup:d[5]||(d[5]=y.withKeys((...U)=>P.onEnter&&P.onEnter(...U),["enter"]))},null,544),[[y.vModelText,k.search]]),y.createVNode(M,{class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}}),k.search?(y.openBlock(),y.createBlock(F,{key:0,class:"absolute top-1/2 right-[10px] w-[16px] h-[16px] cursor-pointer",style:{transform:"translate(0, -50%)"},onClick:P.clearSearch},null,8,["onClick"])):y.createCommentVNode("",!0)]),k.categories?(y.openBlock(),y.createElementBlock("div",o2,[k.search?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.searchedLayers,(U,K)=>(y.openBlock(),y.createBlock(R,{key:K,layer:U,map:_.map,selectedLayers:k.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128)),P.searchedLayers.length===0?(y.openBlock(),y.createElementBlock("div",a2," Нічого не знайдено ")):y.createCommentVNode("",!0)],64)):(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[!k.categories||Object.keys(k.categories).length===0?(y.openBlock(),y.createElementBlock("div",l2," Каталог порожній ")):(y.openBlock(!0),y.createElementBlock(y.Fragment,{key:1},y.renderList(Object.keys(k.categories),U=>(y.openBlock(),y.createElementBlock("div",{key:U},[y.createElementVNode("div",{class:"hover:bg-gray-100 focus:bg-gray-100 px-2.5 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:K=>P.selectCategory(U)},[y.createElementVNode("div",u2,[y.createVNode(T,{class:y.normalizeClass({"rotate-up":U===k.selectedCategory,"rotate-down":U!==k.selectedCategory})},null,8,["class"]),y.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]",title:U},y.toDisplayString(U),9,h2)]),y.createElementVNode("div",p2,y.toDisplayString(P.formatNumber(k.categories[U].length)),1)],8,c2),y.withDirectives(y.createElementVNode("div",null,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(k.categories[U],(K,ie)=>(y.openBlock(),y.createBlock(R,{key:ie,layer:K,map:_.map,selectedLayers:k.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128))],512),[[y.vShow,U===k.selectedCategory]])]))),128))],64))])):y.createCommentVNode("",!0)],64))])}const f2=Gt(M1,[["render",d2],["__scopeId","data-v-5b1a9326"]]);var vu={exports:{}},xu={exports:{}},vn={},Oi={},wm;function Ui(){if(wm)return Oi;wm=1,Oi.__esModule=!0,Oi.extend=k,Oi.indexOf=B,Oi.escapeExpression=D,Oi.isEmpty=M,Oi.createFrame=F,Oi.blockParams=R,Oi.appendContextPath=T;var h={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},d=/[&<>"'`=]/g,_=/[&<>"'`=]/;function w(C){return h[C]}function k(C){for(var U=1;U<arguments.length;U++)for(var K in arguments[U])Object.prototype.hasOwnProperty.call(arguments[U],K)&&(C[K]=arguments[U][K]);return C}var P=Object.prototype.toString;Oi.toString=P;var x=function(U){return typeof U=="function"};x(/x/)&&(Oi.isFunction=x=function(C){return typeof C=="function"&&P.call(C)==="[object Function]"}),Oi.isFunction=x;var s=Array.isArray||function(C){return C&&typeof C=="object"?P.call(C)==="[object Array]":!1};Oi.isArray=s;function B(C,U){for(var K=0,ie=C.length;K<ie;K++)if(C[K]===U)return K;return-1}function D(C){if(typeof C!="string"){if(C&&C.toHTML)return C.toHTML();if(C==null)return"";if(!C)return C+"";C=""+C}return _.test(C)?C.replace(d,w):C}function M(C){return!C&&C!==0?!0:!!(s(C)&&C.length===0)}function F(C){var U=k({},C);return U._parent=C,U}function R(C,U){return C.path=U,C}function T(C,U){return(C?C+".":"")+U}return Oi}var bu={exports:{}},Sm;function bn(){return Sm||(Sm=1,function(h,d){d.__esModule=!0;var _=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function w(k,P){var x=P&&P.loc,s=void 0,B=void 0,D=void 0,M=void 0;x&&(s=x.start.line,B=x.end.line,D=x.start.column,M=x.end.column,k+=" - "+s+":"+D);for(var F=Error.prototype.constructor.call(this,k),R=0;R<_.length;R++)this[_[R]]=F[_[R]];Error.captureStackTrace&&Error.captureStackTrace(this,w);try{x&&(this.lineNumber=s,this.endLineNumber=B,Object.defineProperty?(Object.defineProperty(this,"column",{value:D,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:M,enumerable:!0})):(this.column=D,this.endColumn=M))}catch{}}w.prototype=new Error,d.default=w,h.exports=d.default}(bu,bu.exports)),bu.exports}var Ql={},wu={exports:{}},Am;function m2(){return Am||(Am=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerHelper("blockHelperMissing",function(k,P){var x=P.inverse,s=P.fn;if(k===!0)return s(this);if(k===!1||k==null)return x(this);if(_.isArray(k))return k.length>0?(P.ids&&(P.ids=[P.name]),w.helpers.each(k,P)):x(this);if(P.data&&P.ids){var B=_.createFrame(P.data);B.contextPath=_.appendContextPath(P.data.contextPath,P.name),P={data:B}}return s(k,P)})},h.exports=d.default}(wu,wu.exports)),wu.exports}var Su={exports:{}},km;function g2(){return km||(km=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),k=bn(),P=_(k);d.default=function(x){x.registerHelper("each",function(s,B){if(!B)throw new P.default("Must pass iterator to #each");var D=B.fn,M=B.inverse,F=0,R="",T=void 0,C=void 0;B.data&&B.ids&&(C=w.appendContextPath(B.data.contextPath,B.ids[0])+"."),w.isFunction(s)&&(s=s.call(this)),B.data&&(T=w.createFrame(B.data));function U(te,de,Ce){T&&(T.key=te,T.index=de,T.first=de===0,T.last=!!Ce,C&&(T.contextPath=C+te)),R=R+D(s[te],{data:T,blockParams:w.blockParams([s[te],te],[C+te,null])})}if(s&&typeof s=="object")if(w.isArray(s))for(var K=s.length;F<K;F++)F in s&&U(F,F,F===s.length-1);else if(typeof Symbol=="function"&&s[Symbol.iterator]){for(var ie=[],le=s[Symbol.iterator](),Ae=le.next();!Ae.done;Ae=le.next())ie.push(Ae.value);s=ie;for(var K=s.length;F<K;F++)U(F,F,F===s.length-1)}else(function(){var te=void 0;Object.keys(s).forEach(function(de){te!==void 0&&U(te,F-1),te=de,F++}),te!==void 0&&U(te,F-1,!0)})();return F===0&&(R=M(this)),R})},h.exports=d.default}(Su,Su.exports)),Su.exports}var Au={exports:{}},Tm;function y2(){return Tm||(Tm=1,function(h,d){d.__esModule=!0;function _(P){return P&&P.__esModule?P:{default:P}}var w=bn(),k=_(w);d.default=function(P){P.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new k.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},h.exports=d.default}(Au,Au.exports)),Au.exports}var ku={exports:{}},Cm;function _2(){return Cm||(Cm=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),k=bn(),P=_(k);d.default=function(x){x.registerHelper("if",function(s,B){if(arguments.length!=2)throw new P.default("#if requires exactly one argument");return w.isFunction(s)&&(s=s.call(this)),!B.hash.includeZero&&!s||w.isEmpty(s)?B.inverse(this):B.fn(this)}),x.registerHelper("unless",function(s,B){if(arguments.length!=2)throw new P.default("#unless requires exactly one argument");return x.helpers.if.call(this,s,{fn:B.inverse,inverse:B.fn,hash:B.hash})})},h.exports=d.default}(ku,ku.exports)),ku.exports}var Tu={exports:{}},Em;function v2(){return Em||(Em=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("log",function(){for(var w=[void 0],k=arguments[arguments.length-1],P=0;P<arguments.length-1;P++)w.push(arguments[P]);var x=1;k.hash.level!=null?x=k.hash.level:k.data&&k.data.level!=null&&(x=k.data.level),w[0]=x,_.log.apply(_,w)})},h.exports=d.default}(Tu,Tu.exports)),Tu.exports}var Cu={exports:{}},Pm;function x2(){return Pm||(Pm=1,function(h,d){d.__esModule=!0,d.default=function(_){_.registerHelper("lookup",function(w,k,P){return w&&P.lookupProperty(w,k)})},h.exports=d.default}(Cu,Cu.exports)),Cu.exports}var Eu={exports:{}},Im;function b2(){return Im||(Im=1,function(h,d){d.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var w=Ui(),k=bn(),P=_(k);d.default=function(x){x.registerHelper("with",function(s,B){if(arguments.length!=2)throw new P.default("#with requires exactly one argument");w.isFunction(s)&&(s=s.call(this));var D=B.fn;if(w.isEmpty(s))return B.inverse(this);var M=B.data;return B.data&&B.ids&&(M=w.createFrame(B.data),M.contextPath=w.appendContextPath(B.data.contextPath,B.ids[0])),D(s,{data:M,blockParams:w.blockParams([s],[M&&M.contextPath])})})},h.exports=d.default}(Eu,Eu.exports)),Eu.exports}var Mm;function ay(){if(Mm)return Ql;Mm=1,Ql.__esModule=!0,Ql.registerDefaultHelpers=U,Ql.moveHelperToHooks=K;function h(ie){return ie&&ie.__esModule?ie:{default:ie}}var d=m2(),_=h(d),w=g2(),k=h(w),P=y2(),x=h(P),s=_2(),B=h(s),D=v2(),M=h(D),F=x2(),R=h(F),T=b2(),C=h(T);function U(ie){_.default(ie),k.default(ie),x.default(ie),B.default(ie),M.default(ie),R.default(ie),C.default(ie)}function K(ie,le,Ae){ie.helpers[le]&&(ie.hooks[le]=ie.helpers[le],Ae||delete ie.helpers[le])}return Ql}var Pu={},Iu={exports:{}},Lm;function w2(){return Lm||(Lm=1,function(h,d){d.__esModule=!0;var _=Ui();d.default=function(w){w.registerDecorator("inline",function(k,P,x,s){var B=k;return P.partials||(P.partials={},B=function(D,M){var F=x.partials;x.partials=_.extend({},F,P.partials);var R=k(D,M);return x.partials=F,R}),P.partials[s.args[0]]=s.fn,B})},h.exports=d.default}(Iu,Iu.exports)),Iu.exports}var Rm;function S2(){if(Rm)return Pu;Rm=1,Pu.__esModule=!0,Pu.registerDefaultDecorators=w;function h(k){return k&&k.__esModule?k:{default:k}}var d=w2(),_=h(d);function w(k){_.default(k)}return Pu}var Mu={exports:{}},Dm;function ly(){return Dm||(Dm=1,function(h,d){d.__esModule=!0;var _=Ui(),w={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(P){if(typeof P=="string"){var x=_.indexOf(w.methodMap,P.toLowerCase());x>=0?P=x:P=parseInt(P,10)}return P},log:function(P){if(P=w.lookupLevel(P),typeof console<"u"&&w.lookupLevel(w.level)<=P){var x=w.methodMap[P];console[x]||(x="log");for(var s=arguments.length,B=Array(s>1?s-1:0),D=1;D<s;D++)B[D-1]=arguments[D];console[x].apply(console,B)}}};d.default=w,h.exports=d.default}(Mu,Mu.exports)),Mu.exports}var Ma={},Lu={},zm;function A2(){if(zm)return Lu;zm=1,Lu.__esModule=!0,Lu.createNewLookupObject=d;var h=Ui();function d(){for(var _=arguments.length,w=Array(_),k=0;k<_;k++)w[k]=arguments[k];return h.extend.apply(void 0,[Object.create(null)].concat(w))}return Lu}var Bm;function cy(){if(Bm)return Ma;Bm=1,Ma.__esModule=!0,Ma.createProtoAccessControl=P,Ma.resultIsAllowed=x,Ma.resetLoggedProperties=D;function h(M){return M&&M.__esModule?M:{default:M}}var d=A2(),_=ly(),w=h(_),k=Object.create(null);function P(M){var F=Object.create(null);F.constructor=!1,F.__defineGetter__=!1,F.__defineSetter__=!1,F.__lookupGetter__=!1;var R=Object.create(null);return R.__proto__=!1,{properties:{whitelist:d.createNewLookupObject(R,M.allowedProtoProperties),defaultValue:M.allowProtoPropertiesByDefault},methods:{whitelist:d.createNewLookupObject(F,M.allowedProtoMethods),defaultValue:M.allowProtoMethodsByDefault}}}function x(M,F,R){return s(typeof M=="function"?F.methods:F.properties,R)}function s(M,F){return M.whitelist[F]!==void 0?M.whitelist[F]===!0:M.defaultValue!==void 0?M.defaultValue:(B(F),!1)}function B(M){k[M]!==!0&&(k[M]=!0,w.default.log("error",'Handlebars: Access has been denied to resolve the property "'+M+`" because it is not an "own property" of its parent.
802
+ You can add a runtime option to disable the check or this warning:
803
+ See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function D(){Object.keys(k).forEach(function(M){delete k[M]})}return Ma}var Vm;function dd(){if(Vm)return vn;Vm=1,vn.__esModule=!0,vn.HandlebarsEnvironment=C;function h(K){return K&&K.__esModule?K:{default:K}}var d=Ui(),_=bn(),w=h(_),k=ay(),P=S2(),x=ly(),s=h(x),B=cy(),D="4.7.8";vn.VERSION=D;var M=8;vn.COMPILER_REVISION=M;var F=7;vn.LAST_COMPATIBLE_COMPILER_REVISION=F;var R={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};vn.REVISION_CHANGES=R;var T="[object Object]";function C(K,ie,le){this.helpers=K||{},this.partials=ie||{},this.decorators=le||{},k.registerDefaultHelpers(this),P.registerDefaultDecorators(this)}C.prototype={constructor:C,logger:s.default,log:s.default.log,registerHelper:function(ie,le){if(d.toString.call(ie)===T){if(le)throw new w.default("Arg not supported with multiple helpers");d.extend(this.helpers,ie)}else this.helpers[ie]=le},unregisterHelper:function(ie){delete this.helpers[ie]},registerPartial:function(ie,le){if(d.toString.call(ie)===T)d.extend(this.partials,ie);else{if(typeof le>"u")throw new w.default('Attempting to register a partial called "'+ie+'" as undefined');this.partials[ie]=le}},unregisterPartial:function(ie){delete this.partials[ie]},registerDecorator:function(ie,le){if(d.toString.call(ie)===T){if(le)throw new w.default("Arg not supported with multiple decorators");d.extend(this.decorators,ie)}else this.decorators[ie]=le},unregisterDecorator:function(ie){delete this.decorators[ie]},resetLoggedPropertyAccesses:function(){B.resetLoggedProperties()}};var U=s.default.log;return vn.log=U,vn.createFrame=d.createFrame,vn.logger=s.default,vn}var Ru={exports:{}},Fm;function k2(){return Fm||(Fm=1,function(h,d){d.__esModule=!0;function _(w){this.string=w}_.prototype.toString=_.prototype.toHTML=function(){return""+this.string},d.default=_,h.exports=d.default}(Ru,Ru.exports)),Ru.exports}var is={},Du={},Om;function T2(){if(Om)return Du;Om=1,Du.__esModule=!0,Du.wrapHelper=h;function h(d,_){if(typeof d!="function")return d;var w=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=_(P),d.apply(this,arguments)};return w}return Du}var Nm;function C2(){if(Nm)return is;Nm=1,is.__esModule=!0,is.checkRevision=M,is.template=F,is.wrapProgram=R,is.resolvePartial=T,is.invokePartial=C,is.noop=U;function h(te){return te&&te.__esModule?te:{default:te}}function d(te){if(te&&te.__esModule)return te;var de={};if(te!=null)for(var Ce in te)Object.prototype.hasOwnProperty.call(te,Ce)&&(de[Ce]=te[Ce]);return de.default=te,de}var _=Ui(),w=d(_),k=bn(),P=h(k),x=dd(),s=ay(),B=T2(),D=cy();function M(te){var de=te&&te[0]||1,Ce=x.COMPILER_REVISION;if(!(de>=x.LAST_COMPATIBLE_COMPILER_REVISION&&de<=x.COMPILER_REVISION))if(de<x.LAST_COMPATIBLE_COMPILER_REVISION){var Ve=x.REVISION_CHANGES[Ce],Ze=x.REVISION_CHANGES[de];throw new P.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+Ve+") or downgrade your runtime to an older version ("+Ze+").")}else throw new P.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+te[1]+").")}function F(te,de){if(!de)throw new P.default("No environment passed to template");if(!te||!te.main)throw new P.default("Unknown template object: "+typeof te);te.main.decorator=te.main_d,de.VM.checkRevision(te.compiler);var Ce=te.compiler&&te.compiler[0]===7;function Ve(tt,Xe,rt){rt.hash&&(Xe=w.extend({},Xe,rt.hash),rt.ids&&(rt.ids[0]=!0)),tt=de.VM.resolvePartial.call(this,tt,Xe,rt);var bt=w.extend({},rt,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),Mt=de.VM.invokePartial.call(this,tt,Xe,bt);if(Mt==null&&de.compile&&(rt.partials[rt.name]=de.compile(tt,te.compilerOptions,de),Mt=rt.partials[rt.name](Xe,bt)),Mt!=null){if(rt.indent){for(var cr=Mt.split(`
804
+ `),yr=0,bi=cr.length;yr<bi&&!(!cr[yr]&&yr+1===bi);yr++)cr[yr]=rt.indent+cr[yr];Mt=cr.join(`
805
+ `)}return Mt}else throw new P.default("The partial "+rt.name+" could not be compiled when running in runtime-only mode")}var Ze={strict:function(Xe,rt,bt){if(!Xe||!(rt in Xe))throw new P.default('"'+rt+'" not defined in '+Xe,{loc:bt});return Ze.lookupProperty(Xe,rt)},lookupProperty:function(Xe,rt){var bt=Xe[rt];if(bt==null||Object.prototype.hasOwnProperty.call(Xe,rt)||D.resultIsAllowed(bt,Ze.protoAccessControl,rt))return bt},lookup:function(Xe,rt){for(var bt=Xe.length,Mt=0;Mt<bt;Mt++){var cr=Xe[Mt]&&Ze.lookupProperty(Xe[Mt],rt);if(cr!=null)return Xe[Mt][rt]}},lambda:function(Xe,rt){return typeof Xe=="function"?Xe.call(rt):Xe},escapeExpression:w.escapeExpression,invokePartial:Ve,fn:function(Xe){var rt=te[Xe];return rt.decorator=te[Xe+"_d"],rt},programs:[],program:function(Xe,rt,bt,Mt,cr){var yr=this.programs[Xe],bi=this.fn(Xe);return rt||cr||Mt||bt?yr=R(this,Xe,bi,rt,bt,Mt,cr):yr||(yr=this.programs[Xe]=R(this,Xe,bi)),yr},data:function(Xe,rt){for(;Xe&&rt--;)Xe=Xe._parent;return Xe},mergeIfNeeded:function(Xe,rt){var bt=Xe||rt;return Xe&&rt&&Xe!==rt&&(bt=w.extend({},rt,Xe)),bt},nullContext:Object.seal({}),noop:de.VM.noop,compilerInfo:te.compiler};function vt(tt){var Xe=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],rt=Xe.data;vt._setup(Xe),!Xe.partial&&te.useData&&(rt=K(tt,rt));var bt=void 0,Mt=te.useBlockParams?[]:void 0;te.useDepths&&(Xe.depths?bt=tt!=Xe.depths[0]?[tt].concat(Xe.depths):Xe.depths:bt=[tt]);function cr(yr){return""+te.main(Ze,yr,Ze.helpers,Ze.partials,rt,Mt,bt)}return cr=ie(te.main,cr,Ze,Xe.depths||[],rt,Mt),cr(tt,Xe)}return vt.isTop=!0,vt._setup=function(tt){if(tt.partial)Ze.protoAccessControl=tt.protoAccessControl,Ze.helpers=tt.helpers,Ze.partials=tt.partials,Ze.decorators=tt.decorators,Ze.hooks=tt.hooks;else{var Xe=w.extend({},de.helpers,tt.helpers);le(Xe,Ze),Ze.helpers=Xe,te.usePartial&&(Ze.partials=Ze.mergeIfNeeded(tt.partials,de.partials)),(te.usePartial||te.useDecorators)&&(Ze.decorators=w.extend({},de.decorators,tt.decorators)),Ze.hooks={},Ze.protoAccessControl=D.createProtoAccessControl(tt);var rt=tt.allowCallsToHelperMissing||Ce;s.moveHelperToHooks(Ze,"helperMissing",rt),s.moveHelperToHooks(Ze,"blockHelperMissing",rt)}},vt._child=function(tt,Xe,rt,bt){if(te.useBlockParams&&!rt)throw new P.default("must pass block params");if(te.useDepths&&!bt)throw new P.default("must pass parent depths");return R(Ze,tt,te[tt],Xe,0,rt,bt)},vt}function R(te,de,Ce,Ve,Ze,vt,tt){function Xe(rt){var bt=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],Mt=tt;return tt&&rt!=tt[0]&&!(rt===te.nullContext&&tt[0]===null)&&(Mt=[rt].concat(tt)),Ce(te,rt,te.helpers,te.partials,bt.data||Ve,vt&&[bt.blockParams].concat(vt),Mt)}return Xe=ie(Ce,Xe,te,tt,Ve,vt),Xe.program=de,Xe.depth=tt?tt.length:0,Xe.blockParams=Ze||0,Xe}function T(te,de,Ce){return te?!te.call&&!Ce.name&&(Ce.name=te,te=Ce.partials[te]):Ce.name==="@partial-block"?te=Ce.data["partial-block"]:te=Ce.partials[Ce.name],te}function C(te,de,Ce){var Ve=Ce.data&&Ce.data["partial-block"];Ce.partial=!0,Ce.ids&&(Ce.data.contextPath=Ce.ids[0]||Ce.data.contextPath);var Ze=void 0;if(Ce.fn&&Ce.fn!==U&&function(){Ce.data=x.createFrame(Ce.data);var vt=Ce.fn;Ze=Ce.data["partial-block"]=function(Xe){var rt=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return rt.data=x.createFrame(rt.data),rt.data["partial-block"]=Ve,vt(Xe,rt)},vt.partials&&(Ce.partials=w.extend({},Ce.partials,vt.partials))}(),te===void 0&&Ze&&(te=Ze),te===void 0)throw new P.default("The partial "+Ce.name+" could not be found");if(te instanceof Function)return te(de,Ce)}function U(){return""}function K(te,de){return(!de||!("root"in de))&&(de=de?x.createFrame(de):{},de.root=te),de}function ie(te,de,Ce,Ve,Ze,vt){if(te.decorator){var tt={};de=te.decorator(de,tt,Ce,Ve&&Ve[0],Ze,vt,Ve),w.extend(de,tt)}return de}function le(te,de){Object.keys(te).forEach(function(Ce){var Ve=te[Ce];te[Ce]=Ae(Ve,de)})}function Ae(te,de){var Ce=de.lookupProperty;return B.wrapHelper(te,function(Ve){return w.extend({lookupProperty:Ce},Ve)})}return is}var zu={exports:{}},qm;function uy(){return qm||(qm=1,function(h,d){d.__esModule=!0,d.default=function(_){(function(){typeof globalThis!="object"&&(Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__)})();var w=globalThis.Handlebars;_.noConflict=function(){return globalThis.Handlebars===_&&(globalThis.Handlebars=w),_}},h.exports=d.default}(zu,zu.exports)),zu.exports}var Um;function E2(){return Um||(Um=1,function(h,d){d.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}function w(le){if(le&&le.__esModule)return le;var Ae={};if(le!=null)for(var te in le)Object.prototype.hasOwnProperty.call(le,te)&&(Ae[te]=le[te]);return Ae.default=le,Ae}var k=dd(),P=w(k),x=k2(),s=_(x),B=bn(),D=_(B),M=Ui(),F=w(M),R=C2(),T=w(R),C=uy(),U=_(C);function K(){var le=new P.HandlebarsEnvironment;return F.extend(le,P),le.SafeString=s.default,le.Exception=D.default,le.Utils=F,le.escapeExpression=F.escapeExpression,le.VM=T,le.template=function(Ae){return T.template(Ae,le)},le}var ie=K();ie.create=K,U.default(ie),ie.default=ie,d.default=ie,h.exports=d.default}(xu,xu.exports)),xu.exports}var Bu={exports:{}},jm;function hy(){return jm||(jm=1,function(h,d){d.__esModule=!0;var _={helpers:{helperExpression:function(k){return k.type==="SubExpression"||(k.type==="MustacheStatement"||k.type==="BlockStatement")&&!!(k.params&&k.params.length||k.hash)},scopedId:function(k){return/^\.|this\b/.test(k.original)},simpleId:function(k){return k.parts.length===1&&!_.helpers.scopedId(k)&&!k.depth}}};d.default=_,h.exports=d.default}(Bu,Bu.exports)),Bu.exports}var La={},Vu={exports:{}},Hm;function P2(){return Hm||(Hm=1,function(h,d){d.__esModule=!0;var _=function(){var w={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(s,B,D,M,F,R,T){var C=R.length-1;switch(F){case 1:return R[C-1];case 2:this.$=M.prepareProgram(R[C]);break;case 3:this.$=R[C];break;case 4:this.$=R[C];break;case 5:this.$=R[C];break;case 6:this.$=R[C];break;case 7:this.$=R[C];break;case 8:this.$=R[C];break;case 9:this.$={type:"CommentStatement",value:M.stripComment(R[C]),strip:M.stripFlags(R[C],R[C]),loc:M.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:R[C],value:R[C],loc:M.locInfo(this._$)};break;case 11:this.$=M.prepareRawBlock(R[C-2],R[C-1],R[C],this._$);break;case 12:this.$={path:R[C-3],params:R[C-2],hash:R[C-1]};break;case 13:this.$=M.prepareBlock(R[C-3],R[C-2],R[C-1],R[C],!1,this._$);break;case 14:this.$=M.prepareBlock(R[C-3],R[C-2],R[C-1],R[C],!0,this._$);break;case 15:this.$={open:R[C-5],path:R[C-4],params:R[C-3],hash:R[C-2],blockParams:R[C-1],strip:M.stripFlags(R[C-5],R[C])};break;case 16:this.$={path:R[C-4],params:R[C-3],hash:R[C-2],blockParams:R[C-1],strip:M.stripFlags(R[C-5],R[C])};break;case 17:this.$={path:R[C-4],params:R[C-3],hash:R[C-2],blockParams:R[C-1],strip:M.stripFlags(R[C-5],R[C])};break;case 18:this.$={strip:M.stripFlags(R[C-1],R[C-1]),program:R[C]};break;case 19:var U=M.prepareBlock(R[C-2],R[C-1],R[C],R[C],!1,this._$),K=M.prepareProgram([U],R[C-1].loc);K.chained=!0,this.$={strip:R[C-2].strip,program:K,chain:!0};break;case 20:this.$=R[C];break;case 21:this.$={path:R[C-1],strip:M.stripFlags(R[C-2],R[C])};break;case 22:this.$=M.prepareMustache(R[C-3],R[C-2],R[C-1],R[C-4],M.stripFlags(R[C-4],R[C]),this._$);break;case 23:this.$=M.prepareMustache(R[C-3],R[C-2],R[C-1],R[C-4],M.stripFlags(R[C-4],R[C]),this._$);break;case 24:this.$={type:"PartialStatement",name:R[C-3],params:R[C-2],hash:R[C-1],indent:"",strip:M.stripFlags(R[C-4],R[C]),loc:M.locInfo(this._$)};break;case 25:this.$=M.preparePartialBlock(R[C-2],R[C-1],R[C],this._$);break;case 26:this.$={path:R[C-3],params:R[C-2],hash:R[C-1],strip:M.stripFlags(R[C-4],R[C])};break;case 27:this.$=R[C];break;case 28:this.$=R[C];break;case 29:this.$={type:"SubExpression",path:R[C-3],params:R[C-2],hash:R[C-1],loc:M.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:R[C],loc:M.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:M.id(R[C-2]),value:R[C],loc:M.locInfo(this._$)};break;case 32:this.$=M.id(R[C-1]);break;case 33:this.$=R[C];break;case 34:this.$=R[C];break;case 35:this.$={type:"StringLiteral",value:R[C],original:R[C],loc:M.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(R[C]),original:Number(R[C]),loc:M.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:R[C]==="true",original:R[C]==="true",loc:M.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:M.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:M.locInfo(this._$)};break;case 40:this.$=R[C];break;case 41:this.$=R[C];break;case 42:this.$=M.preparePath(!0,R[C],this._$);break;case 43:this.$=M.preparePath(!1,R[C],this._$);break;case 44:R[C-2].push({part:M.id(R[C]),original:R[C],separator:R[C-1]}),this.$=R[C-2];break;case 45:this.$=[{part:M.id(R[C]),original:R[C]}];break;case 46:this.$=[];break;case 47:R[C-1].push(R[C]);break;case 48:this.$=[];break;case 49:R[C-1].push(R[C]);break;case 50:this.$=[];break;case 51:R[C-1].push(R[C]);break;case 58:this.$=[];break;case 59:R[C-1].push(R[C]);break;case 64:this.$=[];break;case 65:R[C-1].push(R[C]);break;case 70:this.$=[];break;case 71:R[C-1].push(R[C]);break;case 78:this.$=[];break;case 79:R[C-1].push(R[C]);break;case 82:this.$=[];break;case 83:R[C-1].push(R[C]);break;case 86:this.$=[];break;case 87:R[C-1].push(R[C]);break;case 90:this.$=[];break;case 91:R[C-1].push(R[C]);break;case 94:this.$=[];break;case 95:R[C-1].push(R[C]);break;case 98:this.$=[R[C]];break;case 99:R[C-1].push(R[C]);break;case 100:this.$=[R[C]];break;case 101:R[C-1].push(R[C]);break}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{15:[2,48],17:39,18:[2,48]},{20:41,56:40,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:44,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:45,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:41,56:48,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:49,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,50]},{72:[1,35],86:51},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:52,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:53,38:55,39:[1,57],43:56,44:[1,58],45:54,47:[2,54]},{28:59,43:60,44:[1,58],47:[2,56]},{13:62,15:[1,20],18:[1,61]},{33:[2,86],57:63,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:64,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:65,47:[1,66]},{30:67,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:68,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:69,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:70,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:74,33:[2,80],50:71,63:72,64:75,65:[1,43],69:73,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,79]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,50]},{20:74,53:80,54:[2,84],63:81,64:75,65:[1,43],69:82,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:83,47:[1,66]},{47:[2,55]},{4:84,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:85,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:86,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:87,47:[1,66]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:74,33:[2,88],58:88,63:89,64:75,65:[1,43],69:90,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:91,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:92,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,31:93,33:[2,60],63:94,64:75,65:[1,43],69:95,70:76,71:77,72:[1,78],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,66],36:96,63:97,64:75,65:[1,43],69:98,70:76,71:77,72:[1,78],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,22:99,23:[2,52],63:100,64:75,65:[1,43],69:101,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:[1,43],69:104,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,105]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:106,72:[1,107],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,108],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,109]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:55,39:[1,57],43:56,44:[1,58],45:111,46:110,47:[2,76]},{33:[2,70],40:112,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,113]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:74,63:115,64:75,65:[1,43],67:114,68:[2,96],69:116,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:[1,120]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:121,74:122,75:[1,120]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,123]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,124]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,108]},{20:74,63:125,64:75,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:74,33:[2,72],41:126,63:127,64:75,65:[1,43],69:128,70:76,71:77,72:[1,78],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,129]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},{15:[2,12],18:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:134,74:135,75:[1,120]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,137],77:[1,136]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,138]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(s,B){throw new Error(s)},parse:function(s){var B=this,D=[0],M=[null],F=[],R=this.table,T="",C=0,U=0;this.lexer.setInput(s),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc>"u"&&(this.lexer.yylloc={});var K=this.lexer.yylloc;F.push(K);var ie=this.lexer.options&&this.lexer.options.ranges;typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);function le(){var bt;return bt=B.lexer.lex()||1,typeof bt!="number"&&(bt=B.symbols_[bt]||bt),bt}for(var Ae,te,de,Ce,Ve={},Ze,vt,tt,Xe;;){if(te=D[D.length-1],this.defaultActions[te]?de=this.defaultActions[te]:((Ae===null||typeof Ae>"u")&&(Ae=le()),de=R[te]&&R[te][Ae]),typeof de>"u"||!de.length||!de[0]){var rt="";{Xe=[];for(Ze in R[te])this.terminals_[Ze]&&Ze>2&&Xe.push("'"+this.terminals_[Ze]+"'");this.lexer.showPosition?rt="Parse error on line "+(C+1)+`:
806
+ `+this.lexer.showPosition()+`
807
+ Expecting `+Xe.join(", ")+", got '"+(this.terminals_[Ae]||Ae)+"'":rt="Parse error on line "+(C+1)+": Unexpected "+(Ae==1?"end of input":"'"+(this.terminals_[Ae]||Ae)+"'"),this.parseError(rt,{text:this.lexer.match,token:this.terminals_[Ae]||Ae,line:this.lexer.yylineno,loc:K,expected:Xe})}}if(de[0]instanceof Array&&de.length>1)throw new Error("Parse Error: multiple actions possible at state: "+te+", token: "+Ae);switch(de[0]){case 1:D.push(Ae),M.push(this.lexer.yytext),F.push(this.lexer.yylloc),D.push(de[1]),Ae=null,U=this.lexer.yyleng,T=this.lexer.yytext,C=this.lexer.yylineno,K=this.lexer.yylloc;break;case 2:if(vt=this.productions_[de[1]][1],Ve.$=M[M.length-vt],Ve._$={first_line:F[F.length-(vt||1)].first_line,last_line:F[F.length-1].last_line,first_column:F[F.length-(vt||1)].first_column,last_column:F[F.length-1].last_column},ie&&(Ve._$.range=[F[F.length-(vt||1)].range[0],F[F.length-1].range[1]]),Ce=this.performAction.call(Ve,T,U,C,this.yy,de[1],M,F),typeof Ce<"u")return Ce;vt&&(D=D.slice(0,-1*vt*2),M=M.slice(0,-1*vt),F=F.slice(0,-1*vt)),D.push(this.productions_[de[1]][0]),M.push(Ve.$),F.push(Ve._$),tt=R[D[D.length-2]][D[D.length-1]],D.push(tt);break;case 3:return!0}}return!0}},k=function(){var x={EOF:1,parseError:function(B,D){if(this.yy.parser)this.yy.parser.parseError(B,D);else throw new Error(B)},setInput:function(B){return this._input=B,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var D=B.match(/(?:\r\n?|\n).*/g);return D?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},unput:function(B){var D=B.length,M=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-D-1),this.offset-=D;var F=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),M.length-1&&(this.yylineno-=M.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:M?(M.length===F.length?this.yylloc.first_column:0)+F[F.length-M.length].length-M[0].length:this.yylloc.first_column-D},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-D]),this},more:function(){return this._more=!0,this},less:function(B){this.unput(this.match.slice(B))},pastInput:function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var B=this.pastInput(),D=new Array(B.length+1).join("-");return B+this.upcomingInput()+`
808
+ `+D+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,D,M,F,R;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),C=0;C<T.length&&(M=this._input.match(this.rules[T[C]]),!(M&&(!D||M[0].length>D[0].length)&&(D=M,F=C,!this.options.flex)));C++);return D?(R=D[0].match(/(?:\r\n?|\n).*/g),R&&(this.yylineno+=R.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:R?R[R.length-1].length-R[R.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+D[0].length},this.yytext+=D[0],this.match+=D[0],this.matches=D,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(D[0].length),this.matched+=D[0],B=this.performAction.call(this,this.yy,this,T[F],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),B||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
809
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return typeof B<"u"?B:this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(B){this.begin(B)}};return x.options={},x.performAction=function(B,D,M,F){function R(T,C){return D.yytext=D.yytext.substring(T,D.yyleng-C+T)}switch(M){case 0:if(D.yytext.slice(-2)==="\\\\"?(R(0,1),this.begin("mu")):D.yytext.slice(-1)==="\\"?(R(0,1),this.begin("emu")):this.begin("mu"),D.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(R(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(D.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return D.yytext=R(1,2).replace(/\\"/g,'"'),80;case 32:return D.yytext=R(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return D.yytext=D.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},x.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],x.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},x}();w.lexer=k;function P(){this.yy={}}return P.prototype=w,w.Parser=P,new P}();d.default=_,h.exports=d.default}(Vu,Vu.exports)),Vu.exports}var Fu={exports:{}},Ou={exports:{}},Wm;function py(){return Wm||(Wm=1,function(h,d){d.__esModule=!0;function _(D){return D&&D.__esModule?D:{default:D}}var w=bn(),k=_(w);function P(){this.parents=[]}P.prototype={constructor:P,mutating:!1,acceptKey:function(M,F){var R=this.accept(M[F]);if(this.mutating){if(R&&!P.prototype[R.type])throw new k.default('Unexpected node type "'+R.type+'" found when accepting '+F+" on "+M.type);M[F]=R}},acceptRequired:function(M,F){if(this.acceptKey(M,F),!M[F])throw new k.default(M.type+" requires "+F)},acceptArray:function(M){for(var F=0,R=M.length;F<R;F++)this.acceptKey(M,F),M[F]||(M.splice(F,1),F--,R--)},accept:function(M){if(M){if(!this[M.type])throw new k.default("Unknown type: "+M.type,M);this.current&&this.parents.unshift(this.current),this.current=M;var F=this[M.type](M);if(this.current=this.parents.shift(),!this.mutating||F)return F;if(F!==!1)return M}},Program:function(M){this.acceptArray(M.body)},MustacheStatement:x,Decorator:x,BlockStatement:s,DecoratorBlock:s,PartialStatement:B,PartialBlockStatement:function(M){B.call(this,M),this.acceptKey(M,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:x,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(M){this.acceptArray(M.pairs)},HashPair:function(M){this.acceptRequired(M,"value")}};function x(D){this.acceptRequired(D,"path"),this.acceptArray(D.params),this.acceptKey(D,"hash")}function s(D){x.call(this,D),this.acceptKey(D,"program"),this.acceptKey(D,"inverse")}function B(D){this.acceptRequired(D,"name"),this.acceptArray(D.params),this.acceptKey(D,"hash")}d.default=P,h.exports=d.default}(Ou,Ou.exports)),Ou.exports}var Zm;function I2(){return Zm||(Zm=1,function(h,d){d.__esModule=!0;function _(M){return M&&M.__esModule?M:{default:M}}var w=py(),k=_(w);function P(){var M=arguments.length<=0||arguments[0]===void 0?{}:arguments[0];this.options=M}P.prototype=new k.default,P.prototype.Program=function(M){var F=!this.options.ignoreStandalone,R=!this.isRootSeen;this.isRootSeen=!0;for(var T=M.body,C=0,U=T.length;C<U;C++){var K=T[C],ie=this.accept(K);if(ie){var le=x(T,C,R),Ae=s(T,C,R),te=ie.openStandalone&&le,de=ie.closeStandalone&&Ae,Ce=ie.inlineStandalone&&le&&Ae;ie.close&&B(T,C,!0),ie.open&&D(T,C,!0),F&&Ce&&(B(T,C),D(T,C)&&K.type==="PartialStatement"&&(K.indent=/([ \t]+$)/.exec(T[C-1].original)[1])),F&&te&&(B((K.program||K.inverse).body),D(T,C)),F&&de&&(B(T,C),D((K.inverse||K.program).body))}}return M},P.prototype.BlockStatement=P.prototype.DecoratorBlock=P.prototype.PartialBlockStatement=function(M){this.accept(M.program),this.accept(M.inverse);var F=M.program||M.inverse,R=M.program&&M.inverse,T=R,C=R;if(R&&R.chained)for(T=R.body[0].program;C.chained;)C=C.body[C.body.length-1].program;var U={open:M.openStrip.open,close:M.closeStrip.close,openStandalone:s(F.body),closeStandalone:x((T||F).body)};if(M.openStrip.close&&B(F.body,null,!0),R){var K=M.inverseStrip;K.open&&D(F.body,null,!0),K.close&&B(T.body,null,!0),M.closeStrip.open&&D(C.body,null,!0),!this.options.ignoreStandalone&&x(F.body)&&s(T.body)&&(D(F.body),B(T.body))}else M.closeStrip.open&&D(F.body,null,!0);return U},P.prototype.Decorator=P.prototype.MustacheStatement=function(M){return M.strip},P.prototype.PartialStatement=P.prototype.CommentStatement=function(M){var F=M.strip||{};return{inlineStandalone:!0,open:F.open,close:F.close}};function x(M,F,R){F===void 0&&(F=M.length);var T=M[F-1],C=M[F-2];if(!T)return R;if(T.type==="ContentStatement")return(C||!R?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(T.original)}function s(M,F,R){F===void 0&&(F=-1);var T=M[F+1],C=M[F+2];if(!T)return R;if(T.type==="ContentStatement")return(C||!R?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(T.original)}function B(M,F,R){var T=M[F==null?0:F+1];if(!(!T||T.type!=="ContentStatement"||!R&&T.rightStripped)){var C=T.value;T.value=T.value.replace(R?/^\s+/:/^[ \t]*\r?\n?/,""),T.rightStripped=T.value!==C}}function D(M,F,R){var T=M[F==null?M.length-1:F-1];if(!(!T||T.type!=="ContentStatement"||!R&&T.leftStripped)){var C=T.value;return T.value=T.value.replace(R?/\s+$/:/[ \t]+$/,""),T.leftStripped=T.value!==C,T.leftStripped}}d.default=P,h.exports=d.default}(Fu,Fu.exports)),Fu.exports}var Yi={},Km;function M2(){if(Km)return Yi;Km=1,Yi.__esModule=!0,Yi.SourceLocation=k,Yi.id=P,Yi.stripFlags=x,Yi.stripComment=s,Yi.preparePath=B,Yi.prepareMustache=D,Yi.prepareRawBlock=M,Yi.prepareBlock=F,Yi.prepareProgram=R,Yi.preparePartialBlock=T;function h(C){return C&&C.__esModule?C:{default:C}}var d=bn(),_=h(d);function w(C,U){if(U=U.path?U.path.original:U,C.path.original!==U){var K={loc:C.path.loc};throw new _.default(C.path.original+" doesn't match "+U,K)}}function k(C,U){this.source=C,this.start={line:U.first_line,column:U.first_column},this.end={line:U.last_line,column:U.last_column}}function P(C){return/^\[.*\]$/.test(C)?C.substring(1,C.length-1):C}function x(C,U){return{open:C.charAt(2)==="~",close:U.charAt(U.length-3)==="~"}}function s(C){return C.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function B(C,U,K){K=this.locInfo(K);for(var ie=C?"@":"",le=[],Ae=0,te=0,de=U.length;te<de;te++){var Ce=U[te].part,Ve=U[te].original!==Ce;if(ie+=(U[te].separator||"")+Ce,!Ve&&(Ce===".."||Ce==="."||Ce==="this")){if(le.length>0)throw new _.default("Invalid path: "+ie,{loc:K});Ce===".."&&Ae++}else le.push(Ce)}return{type:"PathExpression",data:C,depth:Ae,parts:le,original:ie,loc:K}}function D(C,U,K,ie,le,Ae){var te=ie.charAt(3)||ie.charAt(2),de=te!=="{"&&te!=="&",Ce=/\*/.test(ie);return{type:Ce?"Decorator":"MustacheStatement",path:C,params:U,hash:K,escaped:de,strip:le,loc:this.locInfo(Ae)}}function M(C,U,K,ie){w(C,K),ie=this.locInfo(ie);var le={type:"Program",body:U,strip:{},loc:ie};return{type:"BlockStatement",path:C.path,params:C.params,hash:C.hash,program:le,openStrip:{},inverseStrip:{},closeStrip:{},loc:ie}}function F(C,U,K,ie,le,Ae){ie&&ie.path&&w(C,ie);var te=/\*/.test(C.open);U.blockParams=C.blockParams;var de=void 0,Ce=void 0;if(K){if(te)throw new _.default("Unexpected inverse block on decorator",K);K.chain&&(K.program.body[0].closeStrip=ie.strip),Ce=K.strip,de=K.program}return le&&(le=de,de=U,U=le),{type:te?"DecoratorBlock":"BlockStatement",path:C.path,params:C.params,hash:C.hash,program:U,inverse:de,openStrip:C.strip,inverseStrip:Ce,closeStrip:ie&&ie.strip,loc:this.locInfo(Ae)}}function R(C,U){if(!U&&C.length){var K=C[0].loc,ie=C[C.length-1].loc;K&&ie&&(U={source:K.source,start:{line:K.start.line,column:K.start.column},end:{line:ie.end.line,column:ie.end.column}})}return{type:"Program",body:C,strip:{},loc:U}}function T(C,U,K,ie){return w(C,K),{type:"PartialBlockStatement",name:C.path,params:C.params,hash:C.hash,program:U,openStrip:C.strip,closeStrip:K&&K.strip,loc:this.locInfo(ie)}}return Yi}var Gm;function L2(){if(Gm)return La;Gm=1,La.__esModule=!0,La.parseWithoutProcessing=M,La.parse=F;function h(R){if(R&&R.__esModule)return R;var T={};if(R!=null)for(var C in R)Object.prototype.hasOwnProperty.call(R,C)&&(T[C]=R[C]);return T.default=R,T}function d(R){return R&&R.__esModule?R:{default:R}}var _=P2(),w=d(_),k=I2(),P=d(k),x=M2(),s=h(x),B=Ui();La.parser=w.default;var D={};B.extend(D,s);function M(R,T){if(R.type==="Program")return R;w.default.yy=D,D.locInfo=function(U){return new D.SourceLocation(T&&T.srcName,U)};var C=w.default.parse(R);return C}function F(R,T){var C=M(R,T),U=new P.default(T);return U.accept(C)}return La}var Ra={},Jm;function R2(){if(Jm)return Ra;Jm=1,Ra.__esModule=!0,Ra.Compiler=s,Ra.precompile=B,Ra.compile=D;function h(R){return R&&R.__esModule?R:{default:R}}var d=bn(),_=h(d),w=Ui(),k=hy(),P=h(k),x=[].slice;function s(){}s.prototype={compiler:s,equals:function(T){var C=this.opcodes.length;if(T.opcodes.length!==C)return!1;for(var U=0;U<C;U++){var K=this.opcodes[U],ie=T.opcodes[U];if(K.opcode!==ie.opcode||!M(K.args,ie.args))return!1}C=this.children.length;for(var U=0;U<C;U++)if(!this.children[U].equals(T.children[U]))return!1;return!0},guid:0,compile:function(T,C){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=C,this.stringParams=C.stringParams,this.trackIds=C.trackIds,C.blockParams=C.blockParams||[],C.knownHelpers=w.extend(Object.create(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},C.knownHelpers),this.accept(T)},compileProgram:function(T){var C=new this.compiler,U=C.compile(T,this.options),K=this.guid++;return this.usePartial=this.usePartial||U.usePartial,this.children[K]=U,this.useDepths=this.useDepths||U.useDepths,K},accept:function(T){if(!this[T.type])throw new _.default("Unknown type: "+T.type,T);this.sourceNode.unshift(T);var C=this[T.type](T);return this.sourceNode.shift(),C},Program:function(T){this.options.blockParams.unshift(T.blockParams);for(var C=T.body,U=C.length,K=0;K<U;K++)this.accept(C[K]);return this.options.blockParams.shift(),this.isSimple=U===1,this.blockParams=T.blockParams?T.blockParams.length:0,this},BlockStatement:function(T){F(T);var C=T.program,U=T.inverse;C=C&&this.compileProgram(C),U=U&&this.compileProgram(U);var K=this.classifySexpr(T);K==="helper"?this.helperSexpr(T,C,U):K==="simple"?(this.simpleSexpr(T),this.opcode("pushProgram",C),this.opcode("pushProgram",U),this.opcode("emptyHash"),this.opcode("blockValue",T.path.original)):(this.ambiguousSexpr(T,C,U),this.opcode("pushProgram",C),this.opcode("pushProgram",U),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(T){var C=T.program&&this.compileProgram(T.program),U=this.setupFullMustacheParams(T,C,void 0),K=T.path;this.useDecorators=!0,this.opcode("registerDecorator",U.length,K.original)},PartialStatement:function(T){this.usePartial=!0;var C=T.program;C&&(C=this.compileProgram(T.program));var U=T.params;if(U.length>1)throw new _.default("Unsupported number of partial arguments: "+U.length,T);U.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):U.push({type:"PathExpression",parts:[],depth:0}));var K=T.name.original,ie=T.name.type==="SubExpression";ie&&this.accept(T.name),this.setupFullMustacheParams(T,C,void 0,!0);var le=T.indent||"";this.options.preventIndent&&le&&(this.opcode("appendContent",le),le=""),this.opcode("invokePartial",ie,K,le),this.opcode("append")},PartialBlockStatement:function(T){this.PartialStatement(T)},MustacheStatement:function(T){this.SubExpression(T),T.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(T){this.DecoratorBlock(T)},ContentStatement:function(T){T.value&&this.opcode("appendContent",T.value)},CommentStatement:function(){},SubExpression:function(T){F(T);var C=this.classifySexpr(T);C==="simple"?this.simpleSexpr(T):C==="helper"?this.helperSexpr(T):this.ambiguousSexpr(T)},ambiguousSexpr:function(T,C,U){var K=T.path,ie=K.parts[0],le=C!=null||U!=null;this.opcode("getContext",K.depth),this.opcode("pushProgram",C),this.opcode("pushProgram",U),K.strict=!0,this.accept(K),this.opcode("invokeAmbiguous",ie,le)},simpleSexpr:function(T){var C=T.path;C.strict=!0,this.accept(C),this.opcode("resolvePossibleLambda")},helperSexpr:function(T,C,U){var K=this.setupFullMustacheParams(T,C,U),ie=T.path,le=ie.parts[0];if(this.options.knownHelpers[le])this.opcode("invokeKnownHelper",K.length,le);else{if(this.options.knownHelpersOnly)throw new _.default("You specified knownHelpersOnly, but used the unknown helper "+le,T);ie.strict=!0,ie.falsy=!0,this.accept(ie),this.opcode("invokeHelper",K.length,ie.original,P.default.helpers.simpleId(ie))}},PathExpression:function(T){this.addDepth(T.depth),this.opcode("getContext",T.depth);var C=T.parts[0],U=P.default.helpers.scopedId(T),K=!T.depth&&!U&&this.blockParamIndex(C);K?this.opcode("lookupBlockParam",K,T.parts):C?T.data?(this.options.data=!0,this.opcode("lookupData",T.depth,T.parts,T.strict)):this.opcode("lookupOnContext",T.parts,T.falsy,T.strict,U):this.opcode("pushContext")},StringLiteral:function(T){this.opcode("pushString",T.value)},NumberLiteral:function(T){this.opcode("pushLiteral",T.value)},BooleanLiteral:function(T){this.opcode("pushLiteral",T.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(T){var C=T.pairs,U=0,K=C.length;for(this.opcode("pushHash");U<K;U++)this.pushParam(C[U].value);for(;U--;)this.opcode("assignToHash",C[U].key);this.opcode("popHash")},opcode:function(T){this.opcodes.push({opcode:T,args:x.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(T){T&&(this.useDepths=!0)},classifySexpr:function(T){var C=P.default.helpers.simpleId(T.path),U=C&&!!this.blockParamIndex(T.path.parts[0]),K=!U&&P.default.helpers.helperExpression(T),ie=!U&&(K||C);if(ie&&!K){var le=T.path.parts[0],Ae=this.options;Ae.knownHelpers[le]?K=!0:Ae.knownHelpersOnly&&(ie=!1)}return K?"helper":ie?"ambiguous":"simple"},pushParams:function(T){for(var C=0,U=T.length;C<U;C++)this.pushParam(T[C])},pushParam:function(T){var C=T.value!=null?T.value:T.original||"";if(this.stringParams)C.replace&&(C=C.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),T.depth&&this.addDepth(T.depth),this.opcode("getContext",T.depth||0),this.opcode("pushStringParam",C,T.type),T.type==="SubExpression"&&this.accept(T);else{if(this.trackIds){var U=void 0;if(T.parts&&!P.default.helpers.scopedId(T)&&!T.depth&&(U=this.blockParamIndex(T.parts[0])),U){var K=T.parts.slice(1).join(".");this.opcode("pushId","BlockParam",U,K)}else C=T.original||C,C.replace&&(C=C.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",T.type,C)}this.accept(T)}},setupFullMustacheParams:function(T,C,U,K){var ie=T.params;return this.pushParams(ie),this.opcode("pushProgram",C),this.opcode("pushProgram",U),T.hash?this.accept(T.hash):this.opcode("emptyHash",K),ie},blockParamIndex:function(T){for(var C=0,U=this.options.blockParams.length;C<U;C++){var K=this.options.blockParams[C],ie=K&&w.indexOf(K,T);if(K&&ie>=0)return[C,ie]}}};function B(R,T,C){if(R==null||typeof R!="string"&&R.type!=="Program")throw new _.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+R);T=T||{},"data"in T||(T.data=!0),T.compat&&(T.useDepths=!0);var U=C.parse(R,T),K=new C.Compiler().compile(U,T);return new C.JavaScriptCompiler().compile(K,T)}function D(R,T,C){if(T===void 0&&(T={}),R==null||typeof R!="string"&&R.type!=="Program")throw new _.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+R);T=w.extend({},T),"data"in T||(T.data=!0),T.compat&&(T.useDepths=!0);var U=void 0;function K(){var le=C.parse(R,T),Ae=new C.Compiler().compile(le,T),te=new C.JavaScriptCompiler().compile(Ae,T,void 0,!0);return C.template(te)}function ie(le,Ae){return U||(U=K()),U.call(this,le,Ae)}return ie._setup=function(le){return U||(U=K()),U._setup(le)},ie._child=function(le,Ae,te,de){return U||(U=K()),U._child(le,Ae,te,de)},ie}function M(R,T){if(R===T)return!0;if(w.isArray(R)&&w.isArray(T)&&R.length===T.length){for(var C=0;C<R.length;C++)if(!M(R[C],T[C]))return!1;return!0}}function F(R){if(!R.path.parts){var T=R.path;R.path={type:"PathExpression",data:!1,depth:0,parts:[T.original+""],original:T.original+"",loc:T.loc}}}return Ra}var Nu={exports:{}},qu={exports:{}},Yl={},zp={},Uu={},ju={},Xm;function D2(){if(Xm)return ju;Xm=1;var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");return ju.encode=function(d){if(0<=d&&d<h.length)return h[d];throw new TypeError("Must be between 0 and 63: "+d)},ju.decode=function(d){var _=65,w=90,k=97,P=122,x=48,s=57,B=43,D=47,M=26,F=52;return _<=d&&d<=w?d-_:k<=d&&d<=P?d-k+M:x<=d&&d<=s?d-x+F:d==B?62:d==D?63:-1},ju}var Qm;function dy(){if(Qm)return Uu;Qm=1;var h=D2(),d=5,_=1<<d,w=_-1,k=_;function P(s){return s<0?(-s<<1)+1:(s<<1)+0}function x(s){var B=(s&1)===1,D=s>>1;return B?-D:D}return Uu.encode=function(B){var D="",M,F=P(B);do M=F&w,F>>>=d,F>0&&(M|=k),D+=h.encode(M);while(F>0);return D},Uu.decode=function(B,D,M){var F=B.length,R=0,T=0,C,U;do{if(D>=F)throw new Error("Expected more digits in base 64 VLQ value.");if(U=h.decode(B.charCodeAt(D++)),U===-1)throw new Error("Invalid base64 digit: "+B.charAt(D-1));C=!!(U&k),U&=w,R=R+(U<<T),T+=d}while(C);M.value=x(R),M.rest=D},Uu}var Bp={},Ym;function oc(){return Ym||(Ym=1,function(h){function d(te,de,Ce){if(de in te)return te[de];if(arguments.length===3)return Ce;throw new Error('"'+de+'" is a required argument.')}h.getArg=d;var _=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,w=/^data:.+\,.+$/;function k(te){var de=te.match(_);return de?{scheme:de[1],auth:de[2],host:de[3],port:de[4],path:de[5]}:null}h.urlParse=k;function P(te){var de="";return te.scheme&&(de+=te.scheme+":"),de+="//",te.auth&&(de+=te.auth+"@"),te.host&&(de+=te.host),te.port&&(de+=":"+te.port),te.path&&(de+=te.path),de}h.urlGenerate=P;function x(te){var de=te,Ce=k(te);if(Ce){if(!Ce.path)return te;de=Ce.path}for(var Ve=h.isAbsolute(de),Ze=de.split(/\/+/),vt,tt=0,Xe=Ze.length-1;Xe>=0;Xe--)vt=Ze[Xe],vt==="."?Ze.splice(Xe,1):vt===".."?tt++:tt>0&&(vt===""?(Ze.splice(Xe+1,tt),tt=0):(Ze.splice(Xe,2),tt--));return de=Ze.join("/"),de===""&&(de=Ve?"/":"."),Ce?(Ce.path=de,P(Ce)):de}h.normalize=x;function s(te,de){te===""&&(te="."),de===""&&(de=".");var Ce=k(de),Ve=k(te);if(Ve&&(te=Ve.path||"/"),Ce&&!Ce.scheme)return Ve&&(Ce.scheme=Ve.scheme),P(Ce);if(Ce||de.match(w))return de;if(Ve&&!Ve.host&&!Ve.path)return Ve.host=de,P(Ve);var Ze=de.charAt(0)==="/"?de:x(te.replace(/\/+$/,"")+"/"+de);return Ve?(Ve.path=Ze,P(Ve)):Ze}h.join=s,h.isAbsolute=function(te){return te.charAt(0)==="/"||_.test(te)};function B(te,de){te===""&&(te="."),te=te.replace(/\/$/,"");for(var Ce=0;de.indexOf(te+"/")!==0;){var Ve=te.lastIndexOf("/");if(Ve<0||(te=te.slice(0,Ve),te.match(/^([^\/]+:\/)?\/*$/)))return de;++Ce}return Array(Ce+1).join("../")+de.substr(te.length+1)}h.relative=B;var D=function(){var te=Object.create(null);return!("__proto__"in te)}();function M(te){return te}function F(te){return T(te)?"$"+te:te}h.toSetString=D?M:F;function R(te){return T(te)?te.slice(1):te}h.fromSetString=D?M:R;function T(te){if(!te)return!1;var de=te.length;if(de<9||te.charCodeAt(de-1)!==95||te.charCodeAt(de-2)!==95||te.charCodeAt(de-3)!==111||te.charCodeAt(de-4)!==116||te.charCodeAt(de-5)!==111||te.charCodeAt(de-6)!==114||te.charCodeAt(de-7)!==112||te.charCodeAt(de-8)!==95||te.charCodeAt(de-9)!==95)return!1;for(var Ce=de-10;Ce>=0;Ce--)if(te.charCodeAt(Ce)!==36)return!1;return!0}function C(te,de,Ce){var Ve=K(te.source,de.source);return Ve!==0||(Ve=te.originalLine-de.originalLine,Ve!==0)||(Ve=te.originalColumn-de.originalColumn,Ve!==0||Ce)||(Ve=te.generatedColumn-de.generatedColumn,Ve!==0)||(Ve=te.generatedLine-de.generatedLine,Ve!==0)?Ve:K(te.name,de.name)}h.compareByOriginalPositions=C;function U(te,de,Ce){var Ve=te.generatedLine-de.generatedLine;return Ve!==0||(Ve=te.generatedColumn-de.generatedColumn,Ve!==0||Ce)||(Ve=K(te.source,de.source),Ve!==0)||(Ve=te.originalLine-de.originalLine,Ve!==0)||(Ve=te.originalColumn-de.originalColumn,Ve!==0)?Ve:K(te.name,de.name)}h.compareByGeneratedPositionsDeflated=U;function K(te,de){return te===de?0:te===null?1:de===null?-1:te>de?1:-1}function ie(te,de){var Ce=te.generatedLine-de.generatedLine;return Ce!==0||(Ce=te.generatedColumn-de.generatedColumn,Ce!==0)||(Ce=K(te.source,de.source),Ce!==0)||(Ce=te.originalLine-de.originalLine,Ce!==0)||(Ce=te.originalColumn-de.originalColumn,Ce!==0)?Ce:K(te.name,de.name)}h.compareByGeneratedPositionsInflated=ie;function le(te){return JSON.parse(te.replace(/^\)]}'[^\n]*\n/,""))}h.parseSourceMapInput=le;function Ae(te,de,Ce){if(de=de||"",te&&(te[te.length-1]!=="/"&&de[0]!=="/"&&(te+="/"),de=te+de),Ce){var Ve=k(Ce);if(!Ve)throw new Error("sourceMapURL could not be parsed");if(Ve.path){var Ze=Ve.path.lastIndexOf("/");Ze>=0&&(Ve.path=Ve.path.substring(0,Ze+1))}de=s(P(Ve),de)}return x(de)}h.computeSourceURL=Ae}(Bp)),Bp}var Vp={},$m;function fy(){if($m)return Vp;$m=1;var h=oc(),d=Object.prototype.hasOwnProperty,_=typeof Map<"u";function w(){this._array=[],this._set=_?new Map:Object.create(null)}return w.fromArray=function(P,x){for(var s=new w,B=0,D=P.length;B<D;B++)s.add(P[B],x);return s},w.prototype.size=function(){return _?this._set.size:Object.getOwnPropertyNames(this._set).length},w.prototype.add=function(P,x){var s=_?P:h.toSetString(P),B=_?this.has(P):d.call(this._set,s),D=this._array.length;(!B||x)&&this._array.push(P),B||(_?this._set.set(P,D):this._set[s]=D)},w.prototype.has=function(P){if(_)return this._set.has(P);var x=h.toSetString(P);return d.call(this._set,x)},w.prototype.indexOf=function(P){if(_){var x=this._set.get(P);if(x>=0)return x}else{var s=h.toSetString(P);if(d.call(this._set,s))return this._set[s]}throw new Error('"'+P+'" is not in the set.')},w.prototype.at=function(P){if(P>=0&&P<this._array.length)return this._array[P];throw new Error("No element indexed by "+P)},w.prototype.toArray=function(){return this._array.slice()},Vp.ArraySet=w,Vp}var Fp={},eg;function z2(){if(eg)return Fp;eg=1;var h=oc();function d(w,k){var P=w.generatedLine,x=k.generatedLine,s=w.generatedColumn,B=k.generatedColumn;return x>P||x==P&&B>=s||h.compareByGeneratedPositionsInflated(w,k)<=0}function _(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}return _.prototype.unsortedForEach=function(k,P){this._array.forEach(k,P)},_.prototype.add=function(k){d(this._last,k)?(this._last=k,this._array.push(k)):(this._sorted=!1,this._array.push(k))},_.prototype.toArray=function(){return this._sorted||(this._array.sort(h.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},Fp.MappingList=_,Fp}var tg;function my(){if(tg)return zp;tg=1;var h=dy(),d=oc(),_=fy().ArraySet,w=z2().MappingList;function k(P){P||(P={}),this._file=d.getArg(P,"file",null),this._sourceRoot=d.getArg(P,"sourceRoot",null),this._skipValidation=d.getArg(P,"skipValidation",!1),this._sources=new _,this._names=new _,this._mappings=new w,this._sourcesContents=null}return k.prototype._version=3,k.fromSourceMap=function(x){var s=x.sourceRoot,B=new k({file:x.file,sourceRoot:s});return x.eachMapping(function(D){var M={generated:{line:D.generatedLine,column:D.generatedColumn}};D.source!=null&&(M.source=D.source,s!=null&&(M.source=d.relative(s,M.source)),M.original={line:D.originalLine,column:D.originalColumn},D.name!=null&&(M.name=D.name)),B.addMapping(M)}),x.sources.forEach(function(D){var M=D;s!==null&&(M=d.relative(s,D)),B._sources.has(M)||B._sources.add(M);var F=x.sourceContentFor(D);F!=null&&B.setSourceContent(D,F)}),B},k.prototype.addMapping=function(x){var s=d.getArg(x,"generated"),B=d.getArg(x,"original",null),D=d.getArg(x,"source",null),M=d.getArg(x,"name",null);this._skipValidation||this._validateMapping(s,B,D,M),D!=null&&(D=String(D),this._sources.has(D)||this._sources.add(D)),M!=null&&(M=String(M),this._names.has(M)||this._names.add(M)),this._mappings.add({generatedLine:s.line,generatedColumn:s.column,originalLine:B!=null&&B.line,originalColumn:B!=null&&B.column,source:D,name:M})},k.prototype.setSourceContent=function(x,s){var B=x;this._sourceRoot!=null&&(B=d.relative(this._sourceRoot,B)),s!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[d.toSetString(B)]=s):this._sourcesContents&&(delete this._sourcesContents[d.toSetString(B)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},k.prototype.applySourceMap=function(x,s,B){var D=s;if(s==null){if(x.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);D=x.file}var M=this._sourceRoot;M!=null&&(D=d.relative(M,D));var F=new _,R=new _;this._mappings.unsortedForEach(function(T){if(T.source===D&&T.originalLine!=null){var C=x.originalPositionFor({line:T.originalLine,column:T.originalColumn});C.source!=null&&(T.source=C.source,B!=null&&(T.source=d.join(B,T.source)),M!=null&&(T.source=d.relative(M,T.source)),T.originalLine=C.line,T.originalColumn=C.column,C.name!=null&&(T.name=C.name))}var U=T.source;U!=null&&!F.has(U)&&F.add(U);var K=T.name;K!=null&&!R.has(K)&&R.add(K)},this),this._sources=F,this._names=R,x.sources.forEach(function(T){var C=x.sourceContentFor(T);C!=null&&(B!=null&&(T=d.join(B,T)),M!=null&&(T=d.relative(M,T)),this.setSourceContent(T,C))},this)},k.prototype._validateMapping=function(x,s,B,D){if(s&&typeof s.line!="number"&&typeof s.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(x&&"line"in x&&"column"in x&&x.line>0&&x.column>=0&&!s&&!B&&!D)){if(x&&"line"in x&&"column"in x&&s&&"line"in s&&"column"in s&&x.line>0&&x.column>=0&&s.line>0&&s.column>=0&&B)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:x,source:B,original:s,name:D}))}},k.prototype._serializeMappings=function(){for(var x=0,s=1,B=0,D=0,M=0,F=0,R="",T,C,U,K,ie=this._mappings.toArray(),le=0,Ae=ie.length;le<Ae;le++){if(C=ie[le],T="",C.generatedLine!==s)for(x=0;C.generatedLine!==s;)T+=";",s++;else if(le>0){if(!d.compareByGeneratedPositionsInflated(C,ie[le-1]))continue;T+=","}T+=h.encode(C.generatedColumn-x),x=C.generatedColumn,C.source!=null&&(K=this._sources.indexOf(C.source),T+=h.encode(K-F),F=K,T+=h.encode(C.originalLine-1-D),D=C.originalLine-1,T+=h.encode(C.originalColumn-B),B=C.originalColumn,C.name!=null&&(U=this._names.indexOf(C.name),T+=h.encode(U-M),M=U)),R+=T}return R},k.prototype._generateSourcesContent=function(x,s){return x.map(function(B){if(!this._sourcesContents)return null;s!=null&&(B=d.relative(s,B));var D=d.toSetString(B);return Object.prototype.hasOwnProperty.call(this._sourcesContents,D)?this._sourcesContents[D]:null},this)},k.prototype.toJSON=function(){var x={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(x.file=this._file),this._sourceRoot!=null&&(x.sourceRoot=this._sourceRoot),this._sourcesContents&&(x.sourcesContent=this._generateSourcesContent(x.sources,x.sourceRoot)),x},k.prototype.toString=function(){return JSON.stringify(this.toJSON())},zp.SourceMapGenerator=k,zp}var $l={},Op={},rg;function B2(){return rg||(rg=1,function(h){h.GREATEST_LOWER_BOUND=1,h.LEAST_UPPER_BOUND=2;function d(_,w,k,P,x,s){var B=Math.floor((w-_)/2)+_,D=x(k,P[B],!0);return D===0?B:D>0?w-B>1?d(B,w,k,P,x,s):s==h.LEAST_UPPER_BOUND?w<P.length?w:-1:B:B-_>1?d(_,B,k,P,x,s):s==h.LEAST_UPPER_BOUND?B:_<0?-1:_}h.search=function(w,k,P,x){if(k.length===0)return-1;var s=d(-1,k.length,w,k,P,x||h.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&P(k[s],k[s-1],!0)===0;)--s;return s}}(Op)),Op}var Np={},ig;function V2(){if(ig)return Np;ig=1;function h(w,k,P){var x=w[k];w[k]=w[P],w[P]=x}function d(w,k){return Math.round(w+Math.random()*(k-w))}function _(w,k,P,x){if(P<x){var s=d(P,x),B=P-1;h(w,s,x);for(var D=w[x],M=P;M<x;M++)k(w[M],D)<=0&&(B+=1,h(w,B,M));h(w,B+1,M);var F=B+1;_(w,k,P,F-1),_(w,k,F+1,x)}}return Np.quickSort=function(w,k){_(w,k,0,w.length-1)},Np}var ng;function F2(){if(ng)return $l;ng=1;var h=oc(),d=B2(),_=fy().ArraySet,w=dy(),k=V2().quickSort;function P(D,M){var F=D;return typeof D=="string"&&(F=h.parseSourceMapInput(D)),F.sections!=null?new B(F,M):new x(F,M)}P.fromSourceMap=function(D,M){return x.fromSourceMap(D,M)},P.prototype._version=3,P.prototype.__generatedMappings=null,Object.defineProperty(P.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),P.prototype.__originalMappings=null,Object.defineProperty(P.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),P.prototype._charIsMappingSeparator=function(M,F){var R=M.charAt(F);return R===";"||R===","},P.prototype._parseMappings=function(M,F){throw new Error("Subclasses must implement _parseMappings")},P.GENERATED_ORDER=1,P.ORIGINAL_ORDER=2,P.GREATEST_LOWER_BOUND=1,P.LEAST_UPPER_BOUND=2,P.prototype.eachMapping=function(M,F,R){var T=F||null,C=R||P.GENERATED_ORDER,U;switch(C){case P.GENERATED_ORDER:U=this._generatedMappings;break;case P.ORIGINAL_ORDER:U=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var K=this.sourceRoot;U.map(function(ie){var le=ie.source===null?null:this._sources.at(ie.source);return le=h.computeSourceURL(K,le,this._sourceMapURL),{source:le,generatedLine:ie.generatedLine,generatedColumn:ie.generatedColumn,originalLine:ie.originalLine,originalColumn:ie.originalColumn,name:ie.name===null?null:this._names.at(ie.name)}},this).forEach(M,T)},P.prototype.allGeneratedPositionsFor=function(M){var F=h.getArg(M,"line"),R={source:h.getArg(M,"source"),originalLine:F,originalColumn:h.getArg(M,"column",0)};if(R.source=this._findSourceIndex(R.source),R.source<0)return[];var T=[],C=this._findMapping(R,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,d.LEAST_UPPER_BOUND);if(C>=0){var U=this._originalMappings[C];if(M.column===void 0)for(var K=U.originalLine;U&&U.originalLine===K;)T.push({line:h.getArg(U,"generatedLine",null),column:h.getArg(U,"generatedColumn",null),lastColumn:h.getArg(U,"lastGeneratedColumn",null)}),U=this._originalMappings[++C];else for(var ie=U.originalColumn;U&&U.originalLine===F&&U.originalColumn==ie;)T.push({line:h.getArg(U,"generatedLine",null),column:h.getArg(U,"generatedColumn",null),lastColumn:h.getArg(U,"lastGeneratedColumn",null)}),U=this._originalMappings[++C]}return T},$l.SourceMapConsumer=P;function x(D,M){var F=D;typeof D=="string"&&(F=h.parseSourceMapInput(D));var R=h.getArg(F,"version"),T=h.getArg(F,"sources"),C=h.getArg(F,"names",[]),U=h.getArg(F,"sourceRoot",null),K=h.getArg(F,"sourcesContent",null),ie=h.getArg(F,"mappings"),le=h.getArg(F,"file",null);if(R!=this._version)throw new Error("Unsupported version: "+R);U&&(U=h.normalize(U)),T=T.map(String).map(h.normalize).map(function(Ae){return U&&h.isAbsolute(U)&&h.isAbsolute(Ae)?h.relative(U,Ae):Ae}),this._names=_.fromArray(C.map(String),!0),this._sources=_.fromArray(T,!0),this._absoluteSources=this._sources.toArray().map(function(Ae){return h.computeSourceURL(U,Ae,M)}),this.sourceRoot=U,this.sourcesContent=K,this._mappings=ie,this._sourceMapURL=M,this.file=le}x.prototype=Object.create(P.prototype),x.prototype.consumer=P,x.prototype._findSourceIndex=function(D){var M=D;if(this.sourceRoot!=null&&(M=h.relative(this.sourceRoot,M)),this._sources.has(M))return this._sources.indexOf(M);var F;for(F=0;F<this._absoluteSources.length;++F)if(this._absoluteSources[F]==D)return F;return-1},x.fromSourceMap=function(M,F){var R=Object.create(x.prototype),T=R._names=_.fromArray(M._names.toArray(),!0),C=R._sources=_.fromArray(M._sources.toArray(),!0);R.sourceRoot=M._sourceRoot,R.sourcesContent=M._generateSourcesContent(R._sources.toArray(),R.sourceRoot),R.file=M._file,R._sourceMapURL=F,R._absoluteSources=R._sources.toArray().map(function(Ce){return h.computeSourceURL(R.sourceRoot,Ce,F)});for(var U=M._mappings.toArray().slice(),K=R.__generatedMappings=[],ie=R.__originalMappings=[],le=0,Ae=U.length;le<Ae;le++){var te=U[le],de=new s;de.generatedLine=te.generatedLine,de.generatedColumn=te.generatedColumn,te.source&&(de.source=C.indexOf(te.source),de.originalLine=te.originalLine,de.originalColumn=te.originalColumn,te.name&&(de.name=T.indexOf(te.name)),ie.push(de)),K.push(de)}return k(R.__originalMappings,h.compareByOriginalPositions),R},x.prototype._version=3,Object.defineProperty(x.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}x.prototype._parseMappings=function(M,F){for(var R=1,T=0,C=0,U=0,K=0,ie=0,le=M.length,Ae=0,te={},de={},Ce=[],Ve=[],Ze,vt,tt,Xe,rt;Ae<le;)if(M.charAt(Ae)===";")R++,Ae++,T=0;else if(M.charAt(Ae)===",")Ae++;else{for(Ze=new s,Ze.generatedLine=R,Xe=Ae;Xe<le&&!this._charIsMappingSeparator(M,Xe);Xe++);if(vt=M.slice(Ae,Xe),tt=te[vt],tt)Ae+=vt.length;else{for(tt=[];Ae<Xe;)w.decode(M,Ae,de),rt=de.value,Ae=de.rest,tt.push(rt);if(tt.length===2)throw new Error("Found a source, but no line and column");if(tt.length===3)throw new Error("Found a source and line, but no column");te[vt]=tt}Ze.generatedColumn=T+tt[0],T=Ze.generatedColumn,tt.length>1&&(Ze.source=K+tt[1],K+=tt[1],Ze.originalLine=C+tt[2],C=Ze.originalLine,Ze.originalLine+=1,Ze.originalColumn=U+tt[3],U=Ze.originalColumn,tt.length>4&&(Ze.name=ie+tt[4],ie+=tt[4])),Ve.push(Ze),typeof Ze.originalLine=="number"&&Ce.push(Ze)}k(Ve,h.compareByGeneratedPositionsDeflated),this.__generatedMappings=Ve,k(Ce,h.compareByOriginalPositions),this.__originalMappings=Ce},x.prototype._findMapping=function(M,F,R,T,C,U){if(M[R]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+M[R]);if(M[T]<0)throw new TypeError("Column must be greater than or equal to 0, got "+M[T]);return d.search(M,F,C,U)},x.prototype.computeColumnSpans=function(){for(var M=0;M<this._generatedMappings.length;++M){var F=this._generatedMappings[M];if(M+1<this._generatedMappings.length){var R=this._generatedMappings[M+1];if(F.generatedLine===R.generatedLine){F.lastGeneratedColumn=R.generatedColumn-1;continue}}F.lastGeneratedColumn=1/0}},x.prototype.originalPositionFor=function(M){var F={generatedLine:h.getArg(M,"line"),generatedColumn:h.getArg(M,"column")},R=this._findMapping(F,this._generatedMappings,"generatedLine","generatedColumn",h.compareByGeneratedPositionsDeflated,h.getArg(M,"bias",P.GREATEST_LOWER_BOUND));if(R>=0){var T=this._generatedMappings[R];if(T.generatedLine===F.generatedLine){var C=h.getArg(T,"source",null);C!==null&&(C=this._sources.at(C),C=h.computeSourceURL(this.sourceRoot,C,this._sourceMapURL));var U=h.getArg(T,"name",null);return U!==null&&(U=this._names.at(U)),{source:C,line:h.getArg(T,"originalLine",null),column:h.getArg(T,"originalColumn",null),name:U}}}return{source:null,line:null,column:null,name:null}},x.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(M){return M==null}):!1},x.prototype.sourceContentFor=function(M,F){if(!this.sourcesContent)return null;var R=this._findSourceIndex(M);if(R>=0)return this.sourcesContent[R];var T=M;this.sourceRoot!=null&&(T=h.relative(this.sourceRoot,T));var C;if(this.sourceRoot!=null&&(C=h.urlParse(this.sourceRoot))){var U=T.replace(/^file:\/\//,"");if(C.scheme=="file"&&this._sources.has(U))return this.sourcesContent[this._sources.indexOf(U)];if((!C.path||C.path=="/")&&this._sources.has("/"+T))return this.sourcesContent[this._sources.indexOf("/"+T)]}if(F)return null;throw new Error('"'+T+'" is not in the SourceMap.')},x.prototype.generatedPositionFor=function(M){var F=h.getArg(M,"source");if(F=this._findSourceIndex(F),F<0)return{line:null,column:null,lastColumn:null};var R={source:F,originalLine:h.getArg(M,"line"),originalColumn:h.getArg(M,"column")},T=this._findMapping(R,this._originalMappings,"originalLine","originalColumn",h.compareByOriginalPositions,h.getArg(M,"bias",P.GREATEST_LOWER_BOUND));if(T>=0){var C=this._originalMappings[T];if(C.source===R.source)return{line:h.getArg(C,"generatedLine",null),column:h.getArg(C,"generatedColumn",null),lastColumn:h.getArg(C,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},$l.BasicSourceMapConsumer=x;function B(D,M){var F=D;typeof D=="string"&&(F=h.parseSourceMapInput(D));var R=h.getArg(F,"version"),T=h.getArg(F,"sections");if(R!=this._version)throw new Error("Unsupported version: "+R);this._sources=new _,this._names=new _;var C={line:-1,column:0};this._sections=T.map(function(U){if(U.url)throw new Error("Support for url field in sections not implemented.");var K=h.getArg(U,"offset"),ie=h.getArg(K,"line"),le=h.getArg(K,"column");if(ie<C.line||ie===C.line&&le<C.column)throw new Error("Section offsets must be ordered and non-overlapping.");return C=K,{generatedOffset:{generatedLine:ie+1,generatedColumn:le+1},consumer:new P(h.getArg(U,"map"),M)}})}return B.prototype=Object.create(P.prototype),B.prototype.constructor=P,B.prototype._version=3,Object.defineProperty(B.prototype,"sources",{get:function(){for(var D=[],M=0;M<this._sections.length;M++)for(var F=0;F<this._sections[M].consumer.sources.length;F++)D.push(this._sections[M].consumer.sources[F]);return D}}),B.prototype.originalPositionFor=function(M){var F={generatedLine:h.getArg(M,"line"),generatedColumn:h.getArg(M,"column")},R=d.search(F,this._sections,function(C,U){var K=C.generatedLine-U.generatedOffset.generatedLine;return K||C.generatedColumn-U.generatedOffset.generatedColumn}),T=this._sections[R];return T?T.consumer.originalPositionFor({line:F.generatedLine-(T.generatedOffset.generatedLine-1),column:F.generatedColumn-(T.generatedOffset.generatedLine===F.generatedLine?T.generatedOffset.generatedColumn-1:0),bias:M.bias}):{source:null,line:null,column:null,name:null}},B.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(M){return M.consumer.hasContentsOfAllSources()})},B.prototype.sourceContentFor=function(M,F){for(var R=0;R<this._sections.length;R++){var T=this._sections[R],C=T.consumer.sourceContentFor(M,!0);if(C)return C}if(F)return null;throw new Error('"'+M+'" is not in the SourceMap.')},B.prototype.generatedPositionFor=function(M){for(var F=0;F<this._sections.length;F++){var R=this._sections[F];if(R.consumer._findSourceIndex(h.getArg(M,"source"))!==-1){var T=R.consumer.generatedPositionFor(M);if(T){var C={line:T.line+(R.generatedOffset.generatedLine-1),column:T.column+(R.generatedOffset.generatedLine===T.line?R.generatedOffset.generatedColumn-1:0)};return C}}}return{line:null,column:null}},B.prototype._parseMappings=function(M,F){this.__generatedMappings=[],this.__originalMappings=[];for(var R=0;R<this._sections.length;R++)for(var T=this._sections[R],C=T.consumer._generatedMappings,U=0;U<C.length;U++){var K=C[U],ie=T.consumer._sources.at(K.source);ie=h.computeSourceURL(T.consumer.sourceRoot,ie,this._sourceMapURL),this._sources.add(ie),ie=this._sources.indexOf(ie);var le=null;K.name&&(le=T.consumer._names.at(K.name),this._names.add(le),le=this._names.indexOf(le));var Ae={source:ie,generatedLine:K.generatedLine+(T.generatedOffset.generatedLine-1),generatedColumn:K.generatedColumn+(T.generatedOffset.generatedLine===K.generatedLine?T.generatedOffset.generatedColumn-1:0),originalLine:K.originalLine,originalColumn:K.originalColumn,name:le};this.__generatedMappings.push(Ae),typeof Ae.originalLine=="number"&&this.__originalMappings.push(Ae)}k(this.__generatedMappings,h.compareByGeneratedPositionsDeflated),k(this.__originalMappings,h.compareByOriginalPositions)},$l.IndexedSourceMapConsumer=B,$l}var qp={},sg;function O2(){if(sg)return qp;sg=1;var h=my().SourceMapGenerator,d=oc(),_=/(\r?\n)/,w=10,k="$$$isSourceNode$$$";function P(x,s,B,D,M){this.children=[],this.sourceContents={},this.line=x??null,this.column=s??null,this.source=B??null,this.name=M??null,this[k]=!0,D!=null&&this.add(D)}return P.fromStringWithSourceMap=function(s,B,D){var M=new P,F=s.split(_),R=0,T=function(){var le=te(),Ae=te()||"";return le+Ae;function te(){return R<F.length?F[R++]:void 0}},C=1,U=0,K=null;return B.eachMapping(function(le){if(K!==null)if(C<le.generatedLine)ie(K,T()),C++,U=0;else{var Ae=F[R]||"",te=Ae.substr(0,le.generatedColumn-U);F[R]=Ae.substr(le.generatedColumn-U),U=le.generatedColumn,ie(K,te),K=le;return}for(;C<le.generatedLine;)M.add(T()),C++;if(U<le.generatedColumn){var Ae=F[R]||"";M.add(Ae.substr(0,le.generatedColumn)),F[R]=Ae.substr(le.generatedColumn),U=le.generatedColumn}K=le},this),R<F.length&&(K&&ie(K,T()),M.add(F.splice(R).join(""))),B.sources.forEach(function(le){var Ae=B.sourceContentFor(le);Ae!=null&&(D!=null&&(le=d.join(D,le)),M.setSourceContent(le,Ae))}),M;function ie(le,Ae){if(le===null||le.source===void 0)M.add(Ae);else{var te=D?d.join(D,le.source):le.source;M.add(new P(le.originalLine,le.originalColumn,te,Ae,le.name))}}},P.prototype.add=function(s){if(Array.isArray(s))s.forEach(function(B){this.add(B)},this);else if(s[k]||typeof s=="string")s&&this.children.push(s);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+s);return this},P.prototype.prepend=function(s){if(Array.isArray(s))for(var B=s.length-1;B>=0;B--)this.prepend(s[B]);else if(s[k]||typeof s=="string")this.children.unshift(s);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+s);return this},P.prototype.walk=function(s){for(var B,D=0,M=this.children.length;D<M;D++)B=this.children[D],B[k]?B.walk(s):B!==""&&s(B,{source:this.source,line:this.line,column:this.column,name:this.name})},P.prototype.join=function(s){var B,D,M=this.children.length;if(M>0){for(B=[],D=0;D<M-1;D++)B.push(this.children[D]),B.push(s);B.push(this.children[D]),this.children=B}return this},P.prototype.replaceRight=function(s,B){var D=this.children[this.children.length-1];return D[k]?D.replaceRight(s,B):typeof D=="string"?this.children[this.children.length-1]=D.replace(s,B):this.children.push("".replace(s,B)),this},P.prototype.setSourceContent=function(s,B){this.sourceContents[d.toSetString(s)]=B},P.prototype.walkSourceContents=function(s){for(var B=0,D=this.children.length;B<D;B++)this.children[B][k]&&this.children[B].walkSourceContents(s);for(var M=Object.keys(this.sourceContents),B=0,D=M.length;B<D;B++)s(d.fromSetString(M[B]),this.sourceContents[M[B]])},P.prototype.toString=function(){var s="";return this.walk(function(B){s+=B}),s},P.prototype.toStringWithSourceMap=function(s){var B={code:"",line:1,column:0},D=new h(s),M=!1,F=null,R=null,T=null,C=null;return this.walk(function(U,K){B.code+=U,K.source!==null&&K.line!==null&&K.column!==null?((F!==K.source||R!==K.line||T!==K.column||C!==K.name)&&D.addMapping({source:K.source,original:{line:K.line,column:K.column},generated:{line:B.line,column:B.column},name:K.name}),F=K.source,R=K.line,T=K.column,C=K.name,M=!0):M&&(D.addMapping({generated:{line:B.line,column:B.column}}),F=null,M=!1);for(var ie=0,le=U.length;ie<le;ie++)U.charCodeAt(ie)===w?(B.line++,B.column=0,ie+1===le?(F=null,M=!1):M&&D.addMapping({source:K.source,original:{line:K.line,column:K.column},generated:{line:B.line,column:B.column},name:K.name})):B.column++}),this.walkSourceContents(function(U,K){D.setSourceContent(U,K)}),{code:B.code,map:D}},qp.SourceNode=P,qp}var og;function N2(){return og||(og=1,Yl.SourceMapGenerator=my().SourceMapGenerator,Yl.SourceMapConsumer=F2().SourceMapConsumer,Yl.SourceNode=O2().SourceNode),Yl}var ag;function q2(){return ag||(ag=1,function(h,d){d.__esModule=!0;var _=Ui(),w=void 0;try{var k=N2();w=k.SourceNode}catch{}w||(w=function(s,B,D,M){this.src="",M&&this.add(M)},w.prototype={add:function(B){_.isArray(B)&&(B=B.join("")),this.src+=B},prepend:function(B){_.isArray(B)&&(B=B.join("")),this.src=B+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}});function P(s,B,D){if(_.isArray(s)){for(var M=[],F=0,R=s.length;F<R;F++)M.push(B.wrap(s[F],D));return M}else if(typeof s=="boolean"||typeof s=="number")return s+"";return s}function x(s){this.srcFile=s,this.source=[]}x.prototype={isEmpty:function(){return!this.source.length},prepend:function(B,D){this.source.unshift(this.wrap(B,D))},push:function(B,D){this.source.push(this.wrap(B,D))},merge:function(){var B=this.empty();return this.each(function(D){B.add([" ",D,`
810
+ `])}),B},each:function(B){for(var D=0,M=this.source.length;D<M;D++)B(this.source[D])},empty:function(){var B=this.currentLocation||{start:{}};return new w(B.start.line,B.start.column,this.srcFile)},wrap:function(B){var D=arguments.length<=1||arguments[1]===void 0?this.currentLocation||{start:{}}:arguments[1];return B instanceof w?B:(B=P(B,this,D),new w(D.start.line,D.start.column,this.srcFile,B))},functionCall:function(B,D,M){return M=this.generateList(M),this.wrap([B,D?"."+D+"(":"(",M,")"])},quotedString:function(B){return'"'+(B+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(B){var D=this,M=[];Object.keys(B).forEach(function(R){var T=P(B[R],D);T!=="undefined"&&M.push([D.quotedString(R),":",T])});var F=this.generateList(M);return F.prepend("{"),F.add("}"),F},generateList:function(B){for(var D=this.empty(),M=0,F=B.length;M<F;M++)M&&D.add(","),D.add(P(B[M],this));return D},generateArray:function(B){var D=this.generateList(B);return D.prepend("["),D.add("]"),D}},d.default=x,h.exports=d.default}(qu,qu.exports)),qu.exports}var lg;function U2(){return lg||(lg=1,function(h,d){d.__esModule=!0;function _(R){return R&&R.__esModule?R:{default:R}}var w=dd(),k=bn(),P=_(k),x=Ui(),s=q2(),B=_(s);function D(R){this.value=R}function M(){}M.prototype={nameLookup:function(T,C){return this.internalNameLookup(T,C)},depthedLookup:function(T){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(T),")"]},compilerInfo:function(){var T=w.COMPILER_REVISION,C=w.REVISION_CHANGES[T];return[T,C]},appendToBuffer:function(T,C,U){return x.isArray(T)||(T=[T]),T=this.source.wrap(T,C),this.environment.isSimple?["return ",T,";"]:U?["buffer += ",T,";"]:(T.appendToBuffer=!0,T)},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(T,C){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",T,",",JSON.stringify(C),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(T,C,U,K){this.environment=T,this.options=C,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!K,this.name=this.environment.name,this.isChild=!!U,this.context=U||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(T,C),this.useDepths=this.useDepths||T.useDepths||T.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||T.useBlockParams;var ie=T.opcodes,le=void 0,Ae=void 0,te=void 0,de=void 0;for(te=0,de=ie.length;te<de;te++)le=ie[te],this.source.currentLocation=le.loc,Ae=Ae||le.loc,this[le.opcode].apply(this,le.args);if(this.source.currentLocation=Ae,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new P.default("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend(["var decorators = container.decorators, ",this.lookupPropertyFunctionVarDeclaration(),`;
811
+ `]),this.decorators.push("return fn;"),K?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend(`function(fn, props, container, depth0, data, blockParams, depths) {
812
+ `),this.decorators.push(`}
813
+ `),this.decorators=this.decorators.merge()));var Ce=this.createFunctionContext(K);if(this.isChild)return Ce;var Ve={compiler:this.compilerInfo(),main:Ce};this.decorators&&(Ve.main_d=this.decorators,Ve.useDecorators=!0);var Ze=this.context,vt=Ze.programs,tt=Ze.decorators;for(te=0,de=vt.length;te<de;te++)vt[te]&&(Ve[te]=vt[te],tt[te]&&(Ve[te+"_d"]=tt[te],Ve.useDecorators=!0));return this.environment.usePartial&&(Ve.usePartial=!0),this.options.data&&(Ve.useData=!0),this.useDepths&&(Ve.useDepths=!0),this.useBlockParams&&(Ve.useBlockParams=!0),this.options.compat&&(Ve.compat=!0),K?Ve.compilerOptions=this.options:(Ve.compiler=JSON.stringify(Ve.compiler),this.source.currentLocation={start:{line:1,column:0}},Ve=this.objectLiteral(Ve),C.srcName?(Ve=Ve.toStringWithSourceMap({file:C.destName}),Ve.map=Ve.map&&Ve.map.toString()):Ve=Ve.toString()),Ve},preamble:function(){this.lastContext=0,this.source=new B.default(this.options.srcName),this.decorators=new B.default(this.options.srcName)},createFunctionContext:function(T){var C=this,U="",K=this.stackVars.concat(this.registers.list);K.length>0&&(U+=", "+K.join(", "));var ie=0;Object.keys(this.aliases).forEach(function(te){var de=C.aliases[te];de.children&&de.referenceCount>1&&(U+=", alias"+ ++ie+"="+te,de.children[0]="alias"+ie)}),this.lookupPropertyFunctionIsUsed&&(U+=", "+this.lookupPropertyFunctionVarDeclaration());var le=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&le.push("blockParams"),this.useDepths&&le.push("depths");var Ae=this.mergeSource(U);return T?(le.push(Ae),Function.apply(this,le)):this.source.wrap(["function(",le.join(","),`) {
814
+ `,Ae,"}"])},mergeSource:function(T){var C=this.environment.isSimple,U=!this.forceBuffer,K=void 0,ie=void 0,le=void 0,Ae=void 0;return this.source.each(function(te){te.appendToBuffer?(le?te.prepend(" + "):le=te,Ae=te):(le&&(ie?le.prepend("buffer += "):K=!0,Ae.add(";"),le=Ae=void 0),ie=!0,C||(U=!1))}),U?le?(le.prepend("return "),Ae.add(";")):ie||this.source.push('return "";'):(T+=", buffer = "+(K?"":this.initializeBuffer()),le?(le.prepend("return buffer + "),Ae.add(";")):this.source.push("return buffer;")),T&&this.source.prepend("var "+T.substring(2)+(K?"":`;
815
+ `)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return`
816
+ lookupProperty = container.lookupProperty || function(parent, propertyName) {
817
+ if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
818
+ return parent[propertyName];
819
+ }
820
+ return undefined
821
+ }
822
+ `.trim()},blockValue:function(T){var C=this.aliasable("container.hooks.blockHelperMissing"),U=[this.contextName(0)];this.setupHelperArgs(T,0,U);var K=this.popStack();U.splice(1,0,K),this.push(this.source.functionCall(C,"call",U))},ambiguousBlockValue:function(){var T=this.aliasable("container.hooks.blockHelperMissing"),C=[this.contextName(0)];this.setupHelperArgs("",0,C,!0),this.flushInline();var U=this.topStack();C.splice(1,0,U),this.pushSource(["if (!",this.lastHelper,") { ",U," = ",this.source.functionCall(T,"call",C),"}"])},appendContent:function(T){this.pendingContent?T=this.pendingContent+T:this.pendingLocation=this.source.currentLocation,this.pendingContent=T},append:function(){if(this.isInline())this.replaceStack(function(C){return[" != null ? ",C,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var T=this.popStack();this.pushSource(["if (",T," != null) { ",this.appendToBuffer(T,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(T){this.lastContext=T},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(T,C,U,K){var ie=0;!K&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(T[ie++])):this.pushContext(),this.resolvePath("context",T,ie,C,U)},lookupBlockParam:function(T,C){this.useBlockParams=!0,this.push(["blockParams[",T[0],"][",T[1],"]"]),this.resolvePath("context",C,1)},lookupData:function(T,C,U){T?this.pushStackLiteral("container.data(data, "+T+")"):this.pushStackLiteral("data"),this.resolvePath("data",C,0,!0,U)},resolvePath:function(T,C,U,K,ie){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(F(this.options.strict&&ie,this,C,U,T));return}for(var Ae=C.length;U<Ae;U++)this.replaceStack(function(te){var de=le.nameLookup(te,C[U],T);return K?[" && ",de]:[" != null ? ",de," : ",te]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(T,C){this.pushContext(),this.pushString(C),C!=="SubExpression"&&(typeof T=="string"?this.pushString(T):this.pushStackLiteral(T))},emptyHash:function(T){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(T?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var T=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(T.ids)),this.stringParams&&(this.push(this.objectLiteral(T.contexts)),this.push(this.objectLiteral(T.types))),this.push(this.objectLiteral(T.values))},pushString:function(T){this.pushStackLiteral(this.quotedString(T))},pushLiteral:function(T){this.pushStackLiteral(T)},pushProgram:function(T){T!=null?this.pushStackLiteral(this.programExpression(T)):this.pushStackLiteral(null)},registerDecorator:function(T,C){var U=this.nameLookup("decorators",C,"decorator"),K=this.setupHelperArgs(C,T);this.decorators.push(["fn = ",this.decorators.functionCall(U,"",["fn","props","container",K])," || fn;"])},invokeHelper:function(T,C,U){var K=this.popStack(),ie=this.setupHelper(T,C),le=[];U&&le.push(ie.name),le.push(K),this.options.strict||le.push(this.aliasable("container.hooks.helperMissing"));var Ae=["(",this.itemsSeparatedBy(le,"||"),")"],te=this.source.functionCall(Ae,"call",ie.callParams);this.push(te)},itemsSeparatedBy:function(T,C){var U=[];U.push(T[0]);for(var K=1;K<T.length;K++)U.push(C,T[K]);return U},invokeKnownHelper:function(T,C){var U=this.setupHelper(T,C);this.push(this.source.functionCall(U.name,"call",U.callParams))},invokeAmbiguous:function(T,C){this.useRegister("helper");var U=this.popStack();this.emptyHash();var K=this.setupHelper(0,T,C),ie=this.lastHelper=this.nameLookup("helpers",T,"helper"),le=["(","(helper = ",ie," || ",U,")"];this.options.strict||(le[0]="(helper = ",le.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",le,K.paramsInit?["),(",K.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",K.callParams)," : helper))"])},invokePartial:function(T,C,U){var K=[],ie=this.setupParams(C,1,K);T&&(C=this.popStack(),delete ie.name),U&&(ie.indent=JSON.stringify(U)),ie.helpers="helpers",ie.partials="partials",ie.decorators="container.decorators",T?K.unshift(C):K.unshift(this.nameLookup("partials",C,"partial")),this.options.compat&&(ie.depths="depths"),ie=this.objectLiteral(ie),K.push(ie),this.push(this.source.functionCall("container.invokePartial","",K))},assignToHash:function(T){var C=this.popStack(),U=void 0,K=void 0,ie=void 0;this.trackIds&&(ie=this.popStack()),this.stringParams&&(K=this.popStack(),U=this.popStack());var le=this.hash;U&&(le.contexts[T]=U),K&&(le.types[T]=K),ie&&(le.ids[T]=ie),le.values[T]=C},pushId:function(T,C,U){T==="BlockParam"?this.pushStackLiteral("blockParams["+C[0]+"].path["+C[1]+"]"+(U?" + "+JSON.stringify("."+U):"")):T==="PathExpression"?this.pushString(C):T==="SubExpression"?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:M,compileChildren:function(T,C){for(var U=T.children,K=void 0,ie=void 0,le=0,Ae=U.length;le<Ae;le++){K=U[le],ie=new this.compiler;var te=this.matchExistingProgram(K);if(te==null){this.context.programs.push("");var de=this.context.programs.length;K.index=de,K.name="program"+de,this.context.programs[de]=ie.compile(K,C,this.context,!this.precompile),this.context.decorators[de]=ie.decorators,this.context.environments[de]=K,this.useDepths=this.useDepths||ie.useDepths,this.useBlockParams=this.useBlockParams||ie.useBlockParams,K.useDepths=this.useDepths,K.useBlockParams=this.useBlockParams}else K.index=te.index,K.name="program"+te.index,this.useDepths=this.useDepths||te.useDepths,this.useBlockParams=this.useBlockParams||te.useBlockParams}},matchExistingProgram:function(T){for(var C=0,U=this.context.environments.length;C<U;C++){var K=this.context.environments[C];if(K&&K.equals(T))return K}},programExpression:function(T){var C=this.environment.children[T],U=[C.index,"data",C.blockParams];return(this.useBlockParams||this.useDepths)&&U.push("blockParams"),this.useDepths&&U.push("depths"),"container.program("+U.join(", ")+")"},useRegister:function(T){this.registers[T]||(this.registers[T]=!0,this.registers.list.push(T))},push:function(T){return T instanceof D||(T=this.source.wrap(T)),this.inlineStack.push(T),T},pushStackLiteral:function(T){this.push(new D(T))},pushSource:function(T){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),T&&this.source.push(T)},replaceStack:function(T){var C=["("],U=void 0,K=void 0,ie=void 0;if(!this.isInline())throw new P.default("replaceStack on non-inline");var le=this.popStack(!0);if(le instanceof D)U=[le.value],C=["(",U],ie=!0;else{K=!0;var Ae=this.incrStack();C=["((",this.push(Ae)," = ",le,")"],U=this.topStack()}var te=T.call(this,U);ie||this.popStack(),K&&this.stackSlot--,this.push(C.concat(te,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var T=this.inlineStack;this.inlineStack=[];for(var C=0,U=T.length;C<U;C++){var K=T[C];if(K instanceof D)this.compileStack.push(K);else{var ie=this.incrStack();this.pushSource([ie," = ",K,";"]),this.compileStack.push(ie)}}},isInline:function(){return this.inlineStack.length},popStack:function(T){var C=this.isInline(),U=(C?this.inlineStack:this.compileStack).pop();if(!T&&U instanceof D)return U.value;if(!C){if(!this.stackSlot)throw new P.default("Invalid stack pop");this.stackSlot--}return U},topStack:function(){var T=this.isInline()?this.inlineStack:this.compileStack,C=T[T.length-1];return C instanceof D?C.value:C},contextName:function(T){return this.useDepths&&T?"depths["+T+"]":"depth"+T},quotedString:function(T){return this.source.quotedString(T)},objectLiteral:function(T){return this.source.objectLiteral(T)},aliasable:function(T){var C=this.aliases[T];return C?(C.referenceCount++,C):(C=this.aliases[T]=this.source.wrap(T),C.aliasable=!0,C.referenceCount=1,C)},setupHelper:function(T,C,U){var K=[],ie=this.setupHelperArgs(C,T,K,U),le=this.nameLookup("helpers",C,"helper"),Ae=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:K,paramsInit:ie,name:le,callParams:[Ae].concat(K)}},setupParams:function(T,C,U){var K={},ie=[],le=[],Ae=[],te=!U,de=void 0;te&&(U=[]),K.name=this.quotedString(T),K.hash=this.popStack(),this.trackIds&&(K.hashIds=this.popStack()),this.stringParams&&(K.hashTypes=this.popStack(),K.hashContexts=this.popStack());var Ce=this.popStack(),Ve=this.popStack();(Ve||Ce)&&(K.fn=Ve||"container.noop",K.inverse=Ce||"container.noop");for(var Ze=C;Ze--;)de=this.popStack(),U[Ze]=de,this.trackIds&&(Ae[Ze]=this.popStack()),this.stringParams&&(le[Ze]=this.popStack(),ie[Ze]=this.popStack());return te&&(K.args=this.source.generateArray(U)),this.trackIds&&(K.ids=this.source.generateArray(Ae)),this.stringParams&&(K.types=this.source.generateArray(le),K.contexts=this.source.generateArray(ie)),this.options.data&&(K.data="data"),this.useBlockParams&&(K.blockParams="blockParams"),K},setupHelperArgs:function(T,C,U,K){var ie=this.setupParams(T,C,U);return ie.loc=JSON.stringify(this.source.currentLocation),ie=this.objectLiteral(ie),K?(this.useRegister("options"),U.push("options"),["options=",ie]):U?(U.push(ie),""):ie}},function(){for(var R="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),T=M.RESERVED_WORDS={},C=0,U=R.length;C<U;C++)T[R[C]]=!0}(),M.isValidJavaScriptVariableName=function(R){return!M.RESERVED_WORDS[R]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(R)};function F(R,T,C,U,K){var ie=T.popStack(),le=C.length;for(R&&le--;U<le;U++)ie=T.nameLookup(ie,C[U],K);return R?[T.aliasable("container.strict"),"(",ie,", ",T.quotedString(C[U]),", ",JSON.stringify(T.source.currentLocation)," )"]:ie}d.default=M,h.exports=d.default}(Nu,Nu.exports)),Nu.exports}var cg;function j2(){return cg||(cg=1,function(h,d){d.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}var w=E2(),k=_(w),P=hy(),x=_(P),s=L2(),B=R2(),D=U2(),M=_(D),F=py(),R=_(F),T=uy(),C=_(T),U=k.default.create;function K(){var le=U();return le.compile=function(Ae,te){return B.compile(Ae,te,le)},le.precompile=function(Ae,te){return B.precompile(Ae,te,le)},le.AST=x.default,le.Compiler=B.Compiler,le.JavaScriptCompiler=M.default,le.Parser=s.parser,le.parse=s.parse,le.parseWithoutProcessing=s.parseWithoutProcessing,le}var ie=K();ie.create=K,C.default(ie),ie.Visitor=R.default,ie.default=ie,d.default=ie,h.exports=d.default}(vu,vu.exports)),vu.exports}var H2=j2();const Hu=$g(H2);function ug(h,d,_,w){const k=h+d;let P=0,x=0;if(k<=_)P=h,x=d;else{const s=_/2;if(h>s&&d>s)P=s-w,x=s-w;else{const B=Math.min(h,d),D=_-B;h>d?(P=Math.max(D,100)-w,x=B):(P=B,x=Math.max(D,100)-w)}}return{topMaxHeight:P,bottomMaxHeight:x}}function Wu(h,d,_,w){if(!h)return!1;const k=_-w*2-((d==null?void 0:d.scrollHeight)||0);return h.scrollHeight>k}function W2(h,d,_){const w=d-_*2;return Math.min(h,w)}function hg(h,d,_){const w=(d-_*3)/2;return Math.min(h,w)}function pg(h,d){var Ae,te,de,Ce,Ve,Ze,vt;const w=d-80,k=((Ae=h.topLeft)==null?void 0:Ae.scrollHeight)||0,P=((te=h.bottomLeft)==null?void 0:te.scrollHeight)||0,{topMaxHeight:x,bottomMaxHeight:s}=ug(k,P,w,40),B=((de=h.topRight)==null?void 0:de.scrollHeight)||0,D=((Ce=h.bottomRight)==null?void 0:Ce.scrollHeight)||0,{topMaxHeight:M,bottomMaxHeight:F}=ug(B,D,w,40),R=((Ve=h.center)==null?void 0:Ve.scrollHeight)||0,T=W2(R,d,40),C=((Ze=h.topCenter)==null?void 0:Ze.scrollHeight)||0,U=hg(C,d,40),K=((vt=h.bottomCenter)==null?void 0:vt.scrollHeight)||0,ie=hg(K,d,40),le={topLeft:Wu(h.topLeft,h.bottomLeft,d,40),topRight:Wu(h.topRight,h.bottomRight,d,40),topCenter:C>U,center:R>T,bottomLeft:Wu(h.bottomLeft,h.topLeft,d,40),bottomRight:Wu(h.bottomRight,h.topRight,d,40),bottomCenter:K>ie};return{heights:{topLeft:x,topRight:M,topCenter:U,center:T,bottomLeft:s,bottomRight:F,bottomCenter:ie},hasScroll:le}}const Z2="data:image/jpeg;base64,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",K2="data:image/jpeg;base64,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",G2="data:image/jpeg;base64,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",J2={"diagonal-stripes":Z2,dots:K2,crosshatch:G2};async function X2(h){for(const[d,_]of Object.entries(J2))if(!h.hasImage(d))try{const w=await h.loadImage(_);h.addImage(d,w.data)}catch(w){console.error(`Failed to load pattern image: ${d}`,w)}}const Q2={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},Y2={key:0,class:"p-5 pb-3 flex justify-between items-center"},$2={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},ew={class:"flex flex-col justify-between h-full"},tw={__name:"vs-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),k=y.computed(()=>{var x;return((x=d.config)==null?void 0:x.filters)||[]}),P=y.computed(()=>k.value.map(x=>({...x,id:x.name})));return y.watch(()=>{var x;return(x=w.value)==null?void 0:x.activeFilters},x=>{_.value=Object.keys(x||{}).length},{deep:!0}),(x,s)=>{const B=y.resolveComponent("VsFilter");return y.openBlock(),y.createElementBlock("div",Q2,[h.config.title?(y.openBlock(),y.createElementBlock("div",Y2,[y.createElementVNode("h2",$2,y.toDisplayString(h.config.title),1)])):y.createCommentVNode("",!0),y.createElementVNode("div",ew,[y.createVNode(B,{ref_key:"filter",ref:w,scheme:P.value,header:!1,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:x.handleFilterChange},null,8,["scheme","onFilterChange"])])])}}},rw={type:"button",class:"py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg bg-white text-gray-800 hover:bg-gray-50 focus:outline-none focus:bg-gray-49 h-[38px] shadow-md"},iw={class:"flex gap-[5px] items-center"},nw={class:"text-gray-600"},sw={key:0,class:"w-[16px] h-[16px] font-medium bg-gray-800 text-white rounded-full flex items-center justify-center text-[10px]"},ow={__name:"vs-inline-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(h){const d=h,_=y.ref(0),w=y.ref(null),k=y.computed(()=>{var D;return((D=d.config)==null?void 0:D.filters)||[]}),P=y.computed(()=>k.value.map(D=>({...D,id:D.name}))),x=y.computed(()=>{var M;const D=(M=d.config)==null?void 0:M.conditions;return!D||!D.layers?!0:d.enabledLayerIds.some(F=>D.layers.includes(F))}),s=y.computed(()=>{var D;if(d.enabledLayerIds&&d.enabledLayerIds.length){const F=(((D=d.config)==null?void 0:D.layers)||[]).find(R=>R.id===d.enabledLayerIds[0]);return(F==null?void 0:F.title)||(F==null?void 0:F.name)||(F==null?void 0:F.label)||d.enabledLayerIds[0]}return""}),B=async({url:D})=>{var T,C;const M=(T=d.config)==null?void 0:T.conditions;if(!M){const U=(C=d.config)==null?void 0:C.layer_id;if(!U)return;const K=d.map.getSource(U);if(K){const le=K.tiles[0].split("?filter=")[0],Ae=D?`${le}?filter=${D}`:le;K.setTiles([Ae])}return}const F=(M==null?void 0:M.layers)||[],R=d.enabledLayerIds.filter(U=>F.includes(U));R.length&&R.forEach(U=>{const K=d.map.getSource(U);if(K){const le=K.tiles[0].split("?filter=")[0],Ae=D?`${le}?filter=${D}`:le;K.setTiles([Ae])}})};return y.watch(()=>d.enabledLayerIds,D=>{(!D||!D.length)&&w.value&&(w.value.activeFilters={},_.value=0)}),y.watch(()=>{var D;return(D=w.value)==null?void 0:D.activeFilters},D=>{_.value=Object.keys(D||{}).length},{deep:!0}),(D,M)=>{const F=y.resolveComponent("VsPopover"),R=y.resolveComponent("VsFilterList");return x.value&&P.value.length?(y.openBlock(),y.createBlock(R,{key:0,ref_key:"filter",ref:w,isDialog:h.config.dialog??!0,scheme:P.value,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:B},{button:y.withCtx(({visible:T})=>[y.createVNode(F,{teleport:"body",trigger:"hover",placement:"bottom"},{reference:y.withCtx(()=>[y.createElementVNode("button",rw,[y.createElementVNode("div",iw,[M[0]||(M[0]=y.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[y.createElementVNode("path",{d:"M12 20L9 21V12.5L4.52 7.572C4.18545 7.20393 4.00005 6.7244 4 6.227V4H20V6.172C19.9999 6.70239 19.7891 7.21101 19.414 7.586L15 12",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M21.121 20.1209C21.5406 19.7014 21.8265 19.1668 21.9423 18.5849C22.0581 18.0029 21.9988 17.3997 21.7717 16.8514C21.5447 16.3032 21.1602 15.8346 20.6668 15.5049C20.1734 15.1752 19.5934 14.9993 19 14.9993C18.4066 14.9993 17.8266 15.1752 17.3332 15.5049C16.8398 15.8346 16.4553 16.3032 16.2283 16.8514C16.0012 17.3997 15.9419 18.0029 16.0577 18.5849C16.1735 19.1668 16.4594 19.7014 16.879 20.1209C17.297 20.5399 18.004 21.1659 19 21.9999C20.051 21.1099 20.759 20.4839 21.121 20.1209Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),y.createElementVNode("path",{d:"M19 18V18.01",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),y.createElementVNode("span",nw,y.toDisplayString(s.value),1),_.value?(y.openBlock(),y.createElementBlock("span",sw,y.toDisplayString(_.value),1)):y.createCommentVNode("",!0)])])]),default:y.withCtx(()=>[M[1]||(M[1]=y.createTextVNode(" Відкрити бокову панель "))]),_:1})]),_:1},8,["isDialog","scheme"])):y.createCommentVNode("",!0)}}},aw={name:"VsListWidget",props:{config:{type:Object,required:!0}},data(){return{items:[],total:0,currentPage:1,limit:10,rootEl:null,resizeObserver:null}},methods:{async fetchData(){try{const h=await gr.get(this.config.api,{params:{page:this.currentPage,limit:this.limit}});this.items=h.data.rows,this.total=h.data.total,this.$emit("content-resize")}catch(h){console.error("Error fetching data:",h)}},handlePageChange(h){this.currentPage=h,this.fetchData()},changeLimit(h){this.limit=h,this.currentPage=1,this.fetchData()}},mounted(){this.fetchData(),this.resizeObserver=new ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{this.$refs.rootEl&&this.resizeObserver.observe(this.$refs.rootEl)})},beforeUnmount(){this.resizeObserver&&this.$refs.rootEl&&(this.resizeObserver.unobserve(this.$refs.rootEl),this.resizeObserver.disconnect())}},lw={class:"bg-white p-4 rounded-lg h-full flex flex-col overflow-hidden",ref:"rootEl"},cw={key:0,class:"flex flex-col flex-1 overflow-hidden"},uw={class:"space-y-0 overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},hw=["onClick"],pw={class:"text-base font-medium"},dw={class:"mt-2 flex flex-wrap gap-2"},fw={key:1,class:"px-2 py-1 text-sm bg-gray-100 rounded-full"},mw={key:0,class:"my-5 pr-2"},gw={class:"paginationWrapper relative flex justify-center"},yw={key:1,class:"text-center text-slate-400"};function _w(h,d,_,w,k,P){var s;const x=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",lw,[d[0]||(d[0]=y.createElementVNode("h2",{class:"text-xl font-semibold mb-4"},"Список",-1)),((s=k.items)==null?void 0:s.length)>0?(y.openBlock(),y.createElementBlock("div",cw,[y.createElementVNode("div",uw,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(k.items,B=>(y.openBlock(),y.createElementBlock("div",{key:B.id,class:"py-4 border-b last:border-b-0 hover:bg-gray-50",onClick:D=>h.$emit("cardValuesId",B.id)},[y.createElementVNode("h3",pw,y.toDisplayString(B.name),1),y.createElementVNode("div",dw,[B.status_data?(y.openBlock(),y.createElementBlock("span",{key:0,class:y.normalizeClass(["px-2 py-1 text-sm rounded-full",{"bg-green-100 text-green-800":B.status_data.color==="green","bg-red-100 text-red-800":B.status_data.color==="red"}])},y.toDisplayString(B.status_data.text),3)):y.createCommentVNode("",!0),B.class_mbd_id_data?(y.openBlock(),y.createElementBlock("span",fw,y.toDisplayString(B.class_mbd_id_data.text),1)):y.createCommentVNode("",!0)])],8,hw))),128))]),k.total>k.limit?(y.openBlock(),y.createElementBlock("div",mw,[y.createElementVNode("div",gw,[y.createVNode(x,{total:k.total,maxPages:4,defaultPage:k.currentPage,pageSize:k.limit,goTo:!1,size:"medium",onPageChange:P.handlePageChange,backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[5,10,20,50],onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])):y.createCommentVNode("",!0)])):(y.openBlock(),y.createElementBlock("div",yw,"Немає даних"))],512)}const vw=Gt(aw,[["render",_w]]),xw={class:"map-skeleton-loader"},bw={__name:"vs-skeleton-loader",setup(h){return(d,_)=>(y.openBlock(),y.createElementBlock("div",xw,_[0]||(_[0]=[y.createElementVNode("div",{class:"dot-pulse"},null,-1)])))}},ww=Gt(bw,[["__scopeId","data-v-954c1e03"]]),Sw={},Aw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kw(h,d){return y.openBlock(),y.createElementBlock("svg",Aw,d[0]||(d[0]=[y.createElementVNode("title",null,"Globe Icon",-1),y.createElementVNode("desc",null," A circular representation of a globe with horizontal and vertical lines ",-1),y.createElementVNode("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M2 12H22",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Tw=Gt(Sw,[["render",kw]]),Cw={components:{homeIcon:Tw},name:"vs-homezoom",props:{map:{type:Object},initialView:{type:Object,default:()=>({})}},methods:{homeZoom(){!this.map||!this.initialView||(this.initialView.bbox?this.map.fitBounds(this.initialView.bbox,{duration:0,padding:10}):this.initialView.center&&this.initialView.zoom!==void 0&&(this.map.setCenter(this.initialView.center),this.map.setZoom(this.initialView.zoom)),this.initialView.pitch!==void 0&&this.map.setPitch(this.initialView.pitch),this.initialView.bearing!==void 0&&this.map.setBearing(this.initialView.bearing))}},computed:{}};function Ew(h,d,_,w,k,P){const x=y.resolveComponent("homeIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.homeZoom,class:"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"},null,8,["onClick"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Повернутися до початкових налаштувань",-1))]),_:1})])}const Pw=Gt(Cw,[["render",Ew]]),Iw={},Mw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Lw(h,d){return y.openBlock(),y.createElementBlock("svg",Mw,d[0]||(d[0]=[y.createElementVNode("title",null,"Document with Two Sections Icon",-1),y.createElementVNode("desc",null,"A document icon with a split design indicating two sections",-1),y.createElementVNode("path",{d:"M6 9V2H18V9",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M6 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H20C20.5304 9 21.0391 9.21071 21.4142 9.58579C21.7893 9.96086 22 10.4696 22 11V16C22 16.5304 21.7893 17.0391 21.4142 17.4142C21.0391 17.7893 20.5304 18 20 18H18",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),y.createElementVNode("path",{d:"M18 14H6V22H18V14Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Rw=Gt(Iw,[["render",Lw]]),Dw={components:{printIcon:Rw},props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{printVisible:!1,scriptElements:[],styleElements:[],resourcesLoaded:!1}},watch:{activeTool(h){h!=="print"?this.printVisible=!1:this.init()},async printVisible(h){!this.resourcesLoaded&&h?(await this.loadResources(),this.init(),this.simulateClick()):this.removeResources()},activeTool(h,d){h!=="print"&&d==="print"&&(this.closePrint&&this.closePrint(),this.printVisible=!1),h==="print"&&!this.printVisible&&(this.printVisible=!0,this.init())}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.printVisible,"bg-white":!this.printVisible}}},mounted(){document.addEventListener("click",h=>{const d=document.querySelector(".mapboxgl-export-list");if(d&&d.contains(h.target)){h.stopPropagation();return}!h.target.classList.contains("mapboxgl-export-list")&&!h.target.classList.contains("print-button")&&!h.target.classList.contains("mapboxgl-export-control")&&!h.target.id.includes("mapbox-gl-export")&&(this.printVisible=!1)})},methods:{addScript(h){return new Promise((d,_)=>{const w=document.createElement("script");w.src=h,w.async=!0,w.onload=d,w.onerror=_,document.head.appendChild(w),this.scriptElements.push(w)})},addStyle(h){return new Promise((d,_)=>{const w=document.createElement("link");w.href=h,w.rel="stylesheet",w.type="text/css",w.onload=d,w.onerror=_,document.head.appendChild(w),this.styleElements.push(w)})},async loadResources(){try{await this.addStyle("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.min.css"),await this.addScript("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.js"),await this.addStyle("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.min.css"),await this.addScript("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.umd.min.js"),this.resourcesLoaded=!0}catch(h){console.error("Failed to load resources:",h)}},removeResources(){this.scriptElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.scriptElements=[],this.styleElements.forEach(h=>{h.parentNode&&h.parentNode.removeChild(h)}),this.styleElements=[],this.resourcesLoaded=!1},async toggleResources(){this.printVisible=!this.printVisible},init(){if(!window.MapboxExportControl){console.error("MapboxExportControl is not loaded.");return}window.mapboxgl.accessToken="pk.eyJ1Ijoia3Jpemhhbm92c2t5IiwiYSI6ImNsemkxNWtkODA5dDcycnNhMWZzYWM0MTAifQ.6fEpgfd_2mA4UYuflDewpQ";const{MapboxExportControl:h,Size:d,PageOrientation:_,Format:w,DPI:k}=window.MapboxExportControl;this.map.addControl(new h({PageSize:d.A3,PageOrientation:_.Portrait,Format:w.PNG,DPI:k[96],Crosshair:!0,PrintableArea:!0,Local:"uk"}))},simulateClick(){new Promise(d=>{const _=setTimeout(()=>{const w=document.querySelector(".mapboxgl-export-control");w&&(clearInterval(_),d(w))},100)}).then(d=>{d.click()}).catch(()=>{console.error("Print button not found.")})},togglePrint(){!this.activeTool||this.activeTool!=="print"?this.setActiveTool&&this.setActiveTool("print"):this.setActiveTool&&this.setActiveTool(null),this.printVisible=!this.printVisible,this.printVisible?this.init():this.removeResources()}}};function zw(h,d,_,w,k,P){const x=y.resolveComponent("printIcon"),s=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(s,{trigger:"hover",placement:"left",teleport:"body"},{reference:y.withCtx(()=>[y.createVNode(x,{onClick:P.togglePrint,class:y.normalizeClass([P.modalButtonClasses,"print-button w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[0]||(d[0]=y.createElementVNode("div",null,"Надрукувати",-1))]),_:1})}const Bw=Gt(Dw,[["render",zw]]),Vw={props:{map:{type:Object,required:!0}},data(){return{is3D:!1}},mounted(){this.map.on("move",this.updateViewStatus),this.updateViewStatus()},beforeUnmount(){this.map.off("move",this.updateViewStatus)},methods:{toggleView(){this.is3D?this.map.easeTo({pitch:0,bearing:0,duration:1e3}):this.map.easeTo({pitch:60,bearing:-29.6,duration:1e3})},updateViewStatus(){this.is3D=this.map.getPitch()!==0}}};function Fw(h,d,_,w,k,P){const x=y.resolveComponent("VsPopover");return y.openBlock(),y.createBlock(x,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createElementVNode("div",{class:"font-light w-full h-[44px] p-[9px] [transition:.3s] hover:[transition:.3s] text-[19px] hover:bg-[#DBEAFE] flex cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]",onClick:d[0]||(d[0]=(...s)=>P.toggleView&&P.toggleView(...s))},y.toDisplayString(k.is3D?"2D":"3D"),1)]),default:y.withCtx(()=>[d[1]||(d[1]=y.createElementVNode("div",null,"Перемикач виду",-1))]),_:1})}const Ow=Gt(Vw,[["render",Fw]]),Nw={},qw={class:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function Uw(h,d){return y.openBlock(),y.createElementBlock("svg",qw,d[0]||(d[0]=[y.createElementVNode("path",{d:"M18 6 6 18"},null,-1),y.createElementVNode("path",{d:"m6 6 12 12"},null,-1)]))}const fd=Gt(Nw,[["render",Uw]]),jw={props:{bgColor:{type:String,default:"#1E40AF"}}},Hw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ww=["stroke"],Zw=["stroke"],Kw=["stroke"],Gw=["stroke"],Jw=["stroke"],Xw=["stroke"];function Qw(h,d,_,w,k,P){return y.openBlock(),y.createElementBlock("svg",Hw,[d[0]||(d[0]=y.createElementVNode("title",null,"Target Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A target icon with a circular pattern inside a rounded square",-1)),y.createElementVNode("path",{d:"M2 12H5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Ww),y.createElementVNode("path",{d:"M19 12H22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Zw),y.createElementVNode("path",{d:"M12 2V5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Kw),y.createElementVNode("path",{d:"M12 19V22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Gw),y.createElementVNode("path",{d:"M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Jw),y.createElementVNode("path",{d:"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Xw)])}const Yw=Gt(jw,[["render",Qw]]),{Marker:$w}=$p,eS={components:{geoIcon:Yw,closeIcon:fd},data(){return{location:null,data:null,marker:null,showLocation:!1}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.showLocation,"bg-white":!this.showLocation}}},props:{map:{type:Object}},beforeUnmount(){var h;(h=this.marker)==null||h.remove()},watch:{activeControl(h,d){h!=="geolocation"&&d==="geolocation"&&(this.showLocation=!1,this.closeGeolocation())}},methods:{togleGeolocation(){this.showLocation=!this.showLocation,this.showLocation?this.getUserLocation():(this.closeGeolocation(),this.activeControl="no")},getUserLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(this.onGeolocationSuccess,this.onGeolocationError):(this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Цей браузер не підтримує геолокацію"}),this.$emit("close"))},async onGeolocationSuccess(h){this.location={latitude:h.coords.latitude,longitude:h.coords.longitude};const _=await(await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${this.location.latitude}&lon=${this.location.longitude}`)).json();this.data=_.address;const w=[this.location.longitude,this.location.latitude],k=[[parseFloat(_.boundingbox[2]),parseFloat(_.boundingbox[0])],[parseFloat(_.boundingbox[3]),parseFloat(_.boundingbox[1])]];this.map.fitBounds(k,{padding:200,maxZoom:16}),this.marker||(this.marker=new $w({color:"var(--primary)"})),this.marker.setLngLat(w).addTo(this.map),this.activeControl="geolocation"},closeGeolocation(){this.showLocation=!1,this.marker&&(this.marker.remove(),this.marker=null),this.location=null,this.data=null},onGeolocationError(){this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Для визначення геолокації потрібен HTTPS протокол"}),this.$emit("close")}}},tS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[70px] bg-white border rounded-[15px] p-4 z-10"},rS={class:"flex justify-between items-center border-b pb-[16px]"},iS={class:"d-flex"},nS={class:"pt-[16px]"};function sS(h,d,_,w,k,P){var D,M,F,R,T,C;const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("geoIcon"),B=y.resolveComponent("VsPopover");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[k.location?(y.openBlock(),y.createElementBlock("div",tS,[y.createElementVNode("div",rS,[d[0]||(d[0]=y.createElementVNode("div",{class:"text-lg font-semibold"},"Ваша геолокація",-1)),y.createElementVNode("div",iS,[y.createVNode(x,{onClick:P.closeGeolocation},null,8,["onClick"])])]),y.createElementVNode("div",nS,[y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("strong",null,"Широта:",-1)),y.createTextVNode(" "+y.toDisplayString((D=k.location)==null?void 0:D.latitude),1)]),y.createElementVNode("div",null,[d[2]||(d[2]=y.createElementVNode("strong",null,"Довгота:",-1)),y.createTextVNode(" "+y.toDisplayString((M=k.location)==null?void 0:M.longitude),1)]),y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("strong",null,"КраЇна:",-1)),y.createTextVNode(" "+y.toDisplayString((F=k.data)==null?void 0:F.country),1)]),y.createElementVNode("div",null,[d[4]||(d[4]=y.createElementVNode("strong",null,"Код країни:",-1)),y.createTextVNode(" "+y.toDisplayString((R=k.data)==null?void 0:R.country_code),1)]),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("strong",null,"Місто:",-1)),y.createTextVNode(" "+y.toDisplayString((T=k.data)==null?void 0:T.city),1)]),y.createElementVNode("div",null,[d[6]||(d[6]=y.createElementVNode("strong",null,"Поштовий індекс:",-1)),y.createTextVNode(" "+y.toDisplayString((C=k.data)==null?void 0:C.postcode),1)])])])):y.createCommentVNode("",!0)])),y.createVNode(B,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(s,{onClick:P.togleGeolocation,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[7]||(d[7]=y.createElementVNode("div",null,"Дізнатися геолокацію",-1))]),_:1})])}const oS=Gt(eS,[["render",sS]]);var dg=63710088e-1;function aS(h,d){var _,w,k,P,x,s,B,D,M,F,R=0,T=h.type==="FeatureCollection",C=h.type==="Feature",U=T?h.features.length:1;for(_=0;_<U;_++){for(s=T?h.features[_].geometry:C?h.geometry:h,D=T?h.features[_].properties:C?h.properties:{},M=T?h.features[_].bbox:C?h.bbox:void 0,F=T?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,k=0;k<x;k++){if(P=B?s.geometries[k]:s,P===null){if(d(null,R,D,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,R,D,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],R,D,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}R++}}function lS(h,d,_){var w=_;return aS(h,function(k,P,x,s,B){P===0&&_===void 0?w=k:w=d(w,k,P,x,s,B)}),w}function cS(h){return lS(h,(d,_)=>d+uS(_),0)}function uS(h){let d=0,_;switch(h.type){case"Polygon":return fg(h.coordinates);case"MultiPolygon":for(_=0;_<h.coordinates.length;_++)d+=fg(h.coordinates[_]);return d;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function fg(h){let d=0;if(h&&h.length>0){d+=Math.abs(mg(h[0]));for(let _=1;_<h.length;_++)d-=Math.abs(mg(h[_]))}return d}var hS=dg*dg/2,Up=Math.PI/180;function mg(h){const d=h.length-1;if(d<=2)return 0;let _=0,w=0;for(;w<d;){const k=h[w],P=h[w+1===d?0:w+1],x=h[w+2>=d?(w+2)%d:w+2],s=k[0]*Up,B=P[1]*Up,D=x[0]*Up;_+=(D-s)*Math.sin(B),w++}return _*hS}var $i=63710088e-1,pS={centimeters:$i*100,centimetres:$i*100,degrees:360/(2*Math.PI),feet:$i*3.28084,inches:$i*39.37,kilometers:$i/1e3,kilometres:$i/1e3,meters:$i,metres:$i,miles:$i/1609.344,millimeters:$i*1e3,millimetres:$i*1e3,nauticalmiles:$i/1852,radians:1,yards:$i*1.0936};function ih(h,d,_={}){const w={type:"Feature"};return(_.id===0||_.id)&&(w.id=_.id),_.bbox&&(w.bbox=_.bbox),w.properties=d||{},w.geometry=h,w}function gy(h,d,_={}){for(const k of h){if(k.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(k[k.length-1].length!==k[0].length)throw new Error("First and last Position are not equivalent.");for(let P=0;P<k[k.length-1].length;P++)if(k[k.length-1][P]!==k[0][P])throw new Error("First and last Position are not equivalent.")}return ih({type:"Polygon",coordinates:h},d,_)}function nh(h,d,_={}){if(h.length<2)throw new Error("coordinates must be an array of two or more positions");return ih({type:"LineString",coordinates:h},d,_)}function tc(h,d={}){const _={type:"FeatureCollection"};return d.id&&(_.id=d.id),d.bbox&&(_.bbox=d.bbox),_.features=h,_}function dS(h,d="kilometers"){const _=pS[d];if(!_)throw new Error(d+" units is invalid");return h*_}function Zu(h){return h%360*Math.PI/180}function gg(h){if(!h)throw new Error("coord is required");if(!Array.isArray(h)){if(h.type==="Feature"&&h.geometry!==null&&h.geometry.type==="Point")return[...h.geometry.coordinates];if(h.type==="Point")return[...h.coordinates]}if(Array.isArray(h)&&h.length>=2&&!Array.isArray(h[0])&&!Array.isArray(h[1]))return[...h];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ed(h,d,_={}){var w=gg(h),k=gg(d),P=Zu(k[1]-w[1]),x=Zu(k[0]-w[0]),s=Zu(w[1]),B=Zu(k[1]),D=Math.pow(Math.sin(P/2),2)+Math.pow(Math.sin(x/2),2)*Math.cos(s)*Math.cos(B);return dS(2*Math.atan2(Math.sqrt(D),Math.sqrt(1-D)),_.units)}function yy(h,d,_){if(h!==null)for(var w,k,P,x,s,B,D,M=0,F=0,R,T=h.type,C=T==="FeatureCollection",U=T==="Feature",K=C?h.features.length:1,ie=0;ie<K;ie++){D=C?h.features[ie].geometry:U?h.geometry:h,R=D?D.type==="GeometryCollection":!1,s=R?D.geometries.length:1;for(var le=0;le<s;le++){var Ae=0,te=0;if(x=R?D.geometries[le]:D,x!==null){B=x.coordinates;var de=x.type;switch(M=0,de){case null:break;case"Point":if(d(B,F,ie,Ae,te)===!1)return!1;F++,Ae++;break;case"LineString":case"MultiPoint":for(w=0;w<B.length;w++){if(d(B[w],F,ie,Ae,te)===!1)return!1;F++,de==="MultiPoint"&&Ae++}de==="LineString"&&Ae++;break;case"Polygon":case"MultiLineString":for(w=0;w<B.length;w++){for(k=0;k<B[w].length-M;k++){if(d(B[w][k],F,ie,Ae,te)===!1)return!1;F++}de==="MultiLineString"&&Ae++,de==="Polygon"&&te++}de==="Polygon"&&Ae++;break;case"MultiPolygon":for(w=0;w<B.length;w++){for(te=0,k=0;k<B[w].length;k++){for(P=0;P<B[w][k].length-M;P++){if(d(B[w][k][P],F,ie,Ae,te)===!1)return!1;F++}te++}Ae++}break;case"GeometryCollection":for(w=0;w<x.geometries.length;w++)if(yy(x.geometries[w],d)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function fS(h,d){var _,w,k,P,x,s,B,D,M,F,R=0,T=h.type==="FeatureCollection",C=h.type==="Feature",U=T?h.features.length:1;for(_=0;_<U;_++){for(s=T?h.features[_].geometry:C?h.geometry:h,D=T?h.features[_].properties:C?h.properties:{},M=T?h.features[_].bbox:C?h.bbox:void 0,F=T?h.features[_].id:C?h.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,k=0;k<x;k++){if(P=B?s.geometries[k]:s,P===null){if(d(null,R,D,M,F)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(d(P,R,D,M,F)===!1)return!1;break}case"GeometryCollection":{for(w=0;w<P.geometries.length;w++)if(d(P.geometries[w],R,D,M,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}R++}}function mS(h,d){fS(h,function(_,w,k,P,x){var s=_===null?null:_.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return d(ih(_,k,{bbox:P,id:x}),w,0)===!1?!1:void 0}var B;switch(s){case"MultiPoint":B="Point";break;case"MultiLineString":B="LineString";break;case"MultiPolygon":B="Polygon";break}for(var D=0;D<_.coordinates.length;D++){var M=_.coordinates[D],F={type:B,coordinates:M};if(d(ih(F,k),w,D)===!1)return!1}})}function gS(h,d){mS(h,function(_,w,k){var P=0;if(_.geometry){var x=_.geometry.type;if(!(x==="Point"||x==="MultiPoint")){var s,B=0,D=0,M=0;if(yy(_,function(F,R,T,C,U){if(s===void 0||w>B||C>D||U>M){s=F,B=w,D=C,M=U,P=0;return}var K=nh([s,F],_.properties);if(d(K,w,k,U,P)===!1)return!1;P++,s=F})===!1)return!1}}})}function yS(h,d,_){var w=_,k=!1;return gS(h,function(P,x,s,B,D){k===!1&&_===void 0?w=P:w=d(w,P,x,s,B,D),k=!0}),w}function _S(h,d={}){return yS(h,(_,w)=>{const k=w.geometry.coordinates;return _+ed(k[0],k[1],d)},0)}const vS={props:{bgColor:{type:String,default:"#1E40AF"}}},xS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},bS=["stroke"],wS=["stroke"],SS=["stroke"],AS=["stroke"],kS=["stroke"];function TS(h,d,_,w,k,P){return y.openBlock(),y.createElementBlock("svg",xS,[d[0]||(d[0]=y.createElementVNode("title",null,"Pencil Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"A pencil icon with strokes and detailed lines",-1)),y.createElementVNode("path",{d:"M21.3 15.3C21.5238 15.523 21.7013 15.7879 21.8225 16.0796C21.9436 16.3714 22.0059 16.6841 22.0059 17C22.0059 17.3159 21.9436 17.6286 21.8225 17.9204C21.7013 18.2121 21.5238 18.477 21.3 18.7L18.7 21.3C18.4771 21.5237 18.2121 21.7013 17.9204 21.8224C17.6287 21.9435 17.3159 22.0059 17 22.0059C16.6842 22.0059 16.3714 21.9435 16.0797 21.8224C15.788 21.7013 15.523 21.5237 15.3 21.3L2.70005 8.7C2.2506 8.24838 1.99829 7.63715 1.99829 7C1.99829 6.36285 2.2506 5.75162 2.70005 5.3L5.30005 2.7C5.75167 2.25056 6.36289 1.99825 7.00005 1.99825C7.6372 1.99825 8.24842 2.25056 8.70005 2.7L21.3 15.3Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,bS),y.createElementVNode("path",{d:"M14.5 12.5L16.5 10.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,wS),y.createElementVNode("path",{d:"M11.5 9.5L13.5 7.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,SS),y.createElementVNode("path",{d:"M8.5 6.5L10.5 4.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,AS),y.createElementVNode("path",{d:"M17.5 15.5L19.5 13.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,kS)])}const CS=Gt(vS,[["render",TS]]),ES={name:"vs-measure",components:{rulerIcon:CS,closeIcon:fd},data(){return{points:[],inputPoint:[],distance:0,distanceType:!1,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,k)=>[...w,typeof k=="string"?k:k.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="length"&&d==="length"&&(this.closeMeasure(),this.modalVisible=!1),h==="length"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},props:{map:{type:Object},activeTool:String,setActiveTool:Function},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length)this.points=this.points.filter(_=>{var w,k;return _.properties.id!==((k=(w=d[0])==null?void 0:w.properties)==null?void 0:k.id)});else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(k=>k==null?void 0:k.geometry),d=h.map((k,P)=>{var B,D;const x=ed(h[P?P-1:0],k),s=this.distanceType?x:x+ +((D=(B=h[P-1])==null?void 0:B.properties)==null?void 0:D.distance)||0;return k.properties.distance=s,k.properties.title=`${s.toLocaleString()}км`,k}),_=await tc(d);if(d.length>2){const k=gy([[...d.map(P=>P.geometry.coordinates),d[0].geometry.coordinates]]);this.map.getSource("linear-area").setData(tc([k]))}else{const k=this.map.getSource("measure");k&&k.setData(_)}d.length>1&&(_.features=_.features.concat(nh(d.map(k=>k.geometry.coordinates))),this.distance=_S(nh(d.map(k=>k.geometry.coordinates))));const w=this.map.getSource("measure");w&&w.setData(_)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"})})},removeLinearLayer(){this.map.getLayer("measure-lines")&&this.map.removeLayer("measure-lines"),this.map.getLayer("measure-points")&&this.map.removeLayer("measure-points"),this.map.getLayer("measure-symbol")&&this.map.removeLayer("measure-symbol"),this.map.getSource("measure")&&this.map.removeSource("measure"),this.map.getLayer("linear-area-fill")&&this.map.removeLayer("linear-area-fill"),this.map.getSource("linear-area")&&this.map.removeSource("linear-area"),this.distance=0},createLinearLayer(){this.map.addSource("measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"measure-lines",type:"line",source:"measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"measure-points",type:"circle",source:"measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.map.addLayer({id:"measure-symbol",source:"measure",type:"symbol",paint:{"text-color":"#111","text-halo-color":"#fff","text-halo-width":2},layout:{"symbol-placement":"point","text-letter-spacing":.2,"text-field":"{title}","text-font":["Open Sans Regular"],"text-size":15,"text-anchor":"bottom-left"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){const{map:h}=this;h.addSource("linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}})},distanceFormat(){const h=this.points.filter(d=>d.geometry).map(d=>d.geometry);h.forEach((d,_)=>{const w=ed(h[_?_-1:0],d);distance.push(w);const k=this.distanceType?w:w+ +this.points[_?_-1:0].properties.distance||0;this.points[_].properties.distance=k,this.points[_].properties.title=`${k.toLocaleString()}km`})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="length"?this.setActiveTool&&this.setActiveTool("length"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{buttonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},PS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},IS={class:"flex justify-between items-center border-b pb-[16px]"},MS={class:"pt-[16px]"},LS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},RS={key:0,class:"flex items-center mb-4"},DS={key:1,class:"text-[14px] font-bold",ref:"distanceContainer"};function zS(h,d,_,w,k,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("VsSwitch"),D=y.resolveComponent("rulerIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[k.modalVisible&&_.activeTool==="length"?(y.openBlock(),y.createElementBlock("div",PS,[y.createElementVNode("div",IS,[d[3]||(d[3]=y.createElementVNode("div",{class:"text-[20px]"},"Лінійка",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...M)=>P.toggleMeasure&&P.toggleMeasure(...M))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[2]||(d[2]=y.createTextVNode(" Приховати панель "))]),_:1})]),y.createElementVNode("div",MS,[y.createElementVNode("p",LS,[k.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),k.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),k.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),k.points.length>=3?(y.openBlock(),y.createElementBlock("div",RS,[y.createVNode(B,{modelValue:k.distanceType,"onUpdate:modelValue":d[1]||(d[1]=M=>k.distanceType=M),onChange:P.setPoints},null,8,["modelValue","onChange"]),d[4]||(d[4]=y.createElementVNode("span",{class:"text-[14px] font-medium text-[#6B7280] ml-2"},"загальна | до точки",-1))])):y.createCommentVNode("",!0),k.points.length>=2?(y.openBlock(),y.createElementBlock("div",DS,[d[5]||(d[5]=y.createTextVNode(" Загальна відстань: ")),y.createElementVNode("span",null,y.toDisplayString(k.distance.toLocaleString())+" км",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(D,{class:y.normalizeClass([P.buttonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"]),onClick:P.toggleMeasure},null,8,["class","onClick"])]),default:y.withCtx(()=>[d[6]||(d[6]=y.createElementVNode("div",null,"Виміряти довжину",-1))]),_:1})])}const BS=Gt(ES,[["render",zS],["__scopeId","data-v-401b2f16"]]),VS={props:{bgColor:{type:String,default:"#1E40AF"}}},FS={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},OS=["stroke"],NS=["stroke"],qS=["stroke"];function US(h,d,_,w,k,P){return y.openBlock(),y.createElementBlock("svg",FS,[d[0]||(d[0]=y.createElementVNode("title",null,"Crossed Arrows with Curved Line Icon",-1)),d[1]||(d[1]=y.createElementVNode("desc",null,"Two crossed arrows with a curved line to the right",-1)),y.createElementVNode("path",{d:"M4 19L12 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,OS),y.createElementVNode("path",{d:"M12 19L4 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,NS),y.createElementVNode("path",{d:"M20 12H16C16 10.5 16.442 10 17.5 9.5C18.558 9 20 8.334 20 7.002C20 6.53 19.83 6.072 19.516 5.712C19.196 5.35007 18.7613 5.1092 18.2848 5.02981C17.8083 4.95043 17.319 5.03735 16.899 5.276C16.479 5.515 16.161 5.89 16 6.336",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,qS)])}const jS=Gt(VS,[["render",US]]),HS={components:{areaIcon:jS,closeIcon:fd},name:"vs-area-measure",props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{points:[],inputPoint:[],area:0,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(h=>{var d,_;return{id:h.properties.id,value:((_=(d=h==null?void 0:h.geometry)==null?void 0:d.coordinates)==null?void 0:_.reduceRight((w,k)=>[...w,typeof k=="string"?k:k.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(h,d){h!=="area"&&d==="area"&&(this.closeMeasure(),this.modalVisible=!1),h==="area"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},methods:{measureMapClick(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length)this.points=this.points.filter(_=>_.properties.id!==d[0].properties.id);else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(h.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const h=this.points.filter(w=>w==null?void 0:w.geometry),d=await tc(h);if(h.length>2){const w=gy([[...h.map(P=>P.geometry.coordinates),h[0].geometry.coordinates]]);this.area=cS(w)/1e6;const k=this.map.getSource("area-linear-area");k&&k.setData(tc([w]))}else{const w=this.map.getSource("area-linear-area");w&&w.setData(tc([]))}h.length>1&&(d.features=d.features.concat(nh(h.map(w=>w.geometry.coordinates))));const _=this.map.getSource("area-measure");_&&_.setData(d)},handleDelete(h){this.points=this.points.filter(d=>d.properties.id!==h)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(h=>{if(/^([^,]*,[^,]*)$/.test(h.value)){const d=h.value.split(",").reverse();if(d[0]<-90||d[0]>90||d[1]>180||d[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"});else return{type:"Feature",geometry:{type:"Point",coordinates:d},properties:{id:h.id}}}else this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"})})},removeLinearLayer(){["area-measure-lines","area-measure-points","area-linear-area-fill","center-symbol"].forEach(_=>{this.map.getLayer(_)&&this.map.removeLayer(_)}),["area-measure","area-linear-area"].forEach(_=>{this.map.getSource(_)&&this.map.removeSource(_)}),this.area=0},createLinearLayer(){this.map.addSource("area-measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-measure-lines",type:"line",source:"area-measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"area-measure-points",type:"circle",source:"area-measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove)},mouseMove(h){const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});this.map.getCanvas().style.cursor=d.length?"move":"crosshair"},createAreaLayer(){this.map.addSource("area-linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-linear-area-fill",type:"fill",source:"area-linear-area",layout:{},paint:{"fill-color":"#000","fill-opacity":.06}})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","area-measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(h){const d=h.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[d.lng,d.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(h){h.preventDefault();const d=this.map.queryRenderedFeatures(h.point,{layers:["area-measure-points"]});if(d.length){const _=d[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="area"?this.setActiveTool&&this.setActiveTool("area"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},WS={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},ZS={class:"flex justify-between items-center border-b pb-[16px]"},KS={class:"pt-[16px]"},GS={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},JS={key:0,ref:"distanceContainer",class:"text-[14px] font-bold"};function XS(h,d,_,w,k,P){const x=y.resolveComponent("closeIcon"),s=y.resolveComponent("VsPopover"),B=y.resolveComponent("areaIcon");return y.openBlock(),y.createElementBlock("div",null,[(y.openBlock(),y.createBlock(y.Teleport,{to:"#maplibre-demo-map"},[k.modalVisible&&_.activeTool==="area"?(y.openBlock(),y.createElementBlock("div",WS,[y.createElementVNode("div",ZS,[d[2]||(d[2]=y.createElementVNode("div",{class:"text-lg"},"Площа",-1)),y.createVNode(s,{trigger:"hover",teleport:"body"},{reference:y.withCtx(()=>[y.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:d[0]||(d[0]=(...D)=>P.toggleMeasure&&P.toggleMeasure(...D))},[y.createVNode(x,{class:"cursor-pointer"})])]),default:y.withCtx(()=>[d[1]||(d[1]=y.createTextVNode(" Приховати панель "))]),_:1})]),y.createElementVNode("div",KS,[y.createElementVNode("p",GS,[k.points.length?y.createCommentVNode("",!0):(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),k.points.length==1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:1},[y.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):y.createCommentVNode("",!0),k.points.length>1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:2},[y.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):y.createCommentVNode("",!0)]),k.points.length>2?(y.openBlock(),y.createElementBlock("div",JS,[d[3]||(d[3]=y.createTextVNode(" Загальна площа: ")),y.createElementVNode("span",null,y.toDisplayString(k.area.toLocaleString())+" км²",1)],512)):y.createCommentVNode("",!0)])])):y.createCommentVNode("",!0)])),y.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:y.withCtx(()=>[y.createVNode(B,{onClick:P.toggleMeasure,class:y.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:y.withCtx(()=>[d[4]||(d[4]=y.createElementVNode("div",null,"Виміряти площу",-1))]),_:1})])}const QS=Gt(HS,[["render",XS],["__scopeId","data-v-024154e1"]]),YS={__name:"vs-map-widget-column",props:{position:String,widgets:Array,map:Object,mapLoaded:Boolean,cardValues:Object,hasFilters:Boolean,currentFilterLayer:Object,enabledLayerIds:Array,getWidgetComponent:Function,getColumnWidth:Function,rightColumnOffset:[String,Number],maxHeight:Number,history:Boolean},emits:["set-filter-layer","update:enabledLayerIds","cardValuesId","closeCard","content-resize"],setup(h,{expose:d,emit:_}){const w=_,k=h,P=y.ref(k.widgets.map(D=>{var M;return{...D,config:{...D.config,visible:((M=D.config)==null?void 0:M.visible)!==!1}}}));y.watch(()=>k.widgets.map(D=>D.id||D.type).join(","),()=>{P.value=k.widgets.map(D=>{var M;return{...D,config:{...D.config,visible:((M=D.config)==null?void 0:M.visible)!==!1}}})});function x(D){const M=P.value.find(F=>F.id===D);M&&M.config&&(M.config.visible=!M.config.visible,setTimeout(()=>{w("content-resize")},30))}const s=y.ref(null);d({columnRef:s});let B=null;return y.onMounted(()=>{B=new MutationObserver(()=>{var D;clearTimeout((D=s.value)==null?void 0:D._resizeTimeout),s.value._resizeTimeout=setTimeout(()=>{w("content-resize")},30)}),s.value&&B.observe(s.value,{childList:!0,subtree:!0,characterData:!0})}),y.onUnmounted(()=>{B&&B.disconnect()}),(D,M)=>h.mapLoaded?(y.openBlock(),y.createElementBlock("div",{key:0,class:y.normalizeClass(["widget-column",[y.unref(ty)(h.position)]]),ref_key:"columnRef",ref:s,style:y.normalizeStyle({maxHeight:h.maxHeight?h.maxHeight+"px":void 0,width:h.getColumnWidth(h.position),...h.rightColumnOffset?{right:h.rightColumnOffset}:{}})},[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(P.value,F=>{var R;return y.openBlock(),y.createElementBlock(y.Fragment,{key:F.id||F.type},[F.type!=="card"?y.withDirectives((y.openBlock(),y.createBlock(y.resolveDynamicComponent(h.getWidgetComponent(F.type)),{key:0,map:h.map,config:F.config,hasFilters:h.hasFilters,currentLayer:h.currentFilterLayer,enabledLayerIds:h.enabledLayerIds,history:h.history,onSetFilterLayer:M[0]||(M[0]=T=>D.$emit("set-filter-layer",T)),"onUpdate:enabledLayerIds":M[1]||(M[1]=T=>D.$emit("update:enabledLayerIds",T)),onCardValuesId:M[2]||(M[2]=T=>D.$emit("cardValuesId",T)),onContentResize:M[3]||(M[3]=T=>D.$emit("content-resize")),onShowWidget:x,class:"widget"},null,40,["map","config","hasFilters","currentLayer","enabledLayerIds","history"])),[[y.vShow,((R=F.config)==null?void 0:R.visible)!==!1]]):y.createCommentVNode("",!0),h.cardValues&&F.type==="card"?(y.openBlock(),y.createBlock(oy,{key:1,config:F.config,cardValues:h.cardValues,class:"widget",onClose:M[4]||(M[4]=T=>D.$emit("closeCard")),onContentResize:M[5]||(M[5]=T=>D.$emit("content-resize"))},null,8,["config","cardValues"])):y.createCommentVNode("",!0)],64)}),128))],6)):y.createCommentVNode("",!0)}},$S=Gt(YS,[["__scopeId","data-v-3be78334"]]),eA={class:"map-widgets"},tA={key:0,class:"absolute top-[180px] right-2 z-10 flex flex-col gap-[5px]"},rA={__name:"vs-map",props:{table:{type:String,required:!0}},setup(h){const d=h,_=y.ref(null),w=y.ref(!1);let k=null;const P=y.ref(null),x=y.ref(null),s=y.ref([]),B=y.ref([]),D=y.ref(null),M=y.ref(null),F=y.ref(null),R=["top-left","top-right","top-center","center","bottom-left","bottom-center","bottom-right"],T={"top-left":y.ref(null),"top-right":y.ref(null),"top-center":y.ref(null),center:y.ref(null),"bottom-left":y.ref(null),"bottom-center":y.ref(null),"bottom-right":y.ref(null)};function C(Ke,nt){T[Ke].value=nt==null?void 0:nt.columnRef}const U=y.ref(0),K=y.ref(0),ie=y.ref(0),le=y.ref(0),Ae=y.ref(0),te=y.ref(0),de=y.ref(0);function Ce(Ke){if(!Ke){const Pt={topLeft:T["top-left"].value,topRight:T["top-right"].value,topCenter:T["top-center"].value,center:T.center.value,bottomLeft:T["bottom-left"].value,bottomRight:T["bottom-right"].value,bottomCenter:T["bottom-center"].value};Object.values(Pt).forEach(Ut=>{Ut&&(Ut.style.maxHeight="")});const{heights:mt}=pg(Pt,window.innerHeight);U.value=mt.topLeft,K.value=mt.topRight,ie.value=mt.topCenter,le.value=mt.center,Ae.value=mt.bottomLeft,te.value=mt.bottomRight,de.value=mt.bottomCenter;return}const lt={"top-left":["top-left","bottom-left"],"bottom-left":["top-left","bottom-left"],"top-right":["top-right","bottom-right"],"bottom-right":["top-right","bottom-right"],"top-center":["top-center","bottom-center"],"bottom-center":["top-center","bottom-center"],center:["center"]}[Ke]||[],xt={topLeft:T["top-left"].value,topRight:T["top-right"].value,topCenter:T["top-center"].value,center:T.center.value,bottomLeft:T["bottom-left"].value,bottomRight:T["bottom-right"].value,bottomCenter:T["bottom-center"].value};lt.forEach(Pt=>{xt[Pt]&&(xt[Pt].style.maxHeight="")});const{heights:kt}=pg(xt,window.innerHeight);lt.forEach(Pt=>{xt[Pt]&&kt[Pt]&&(xt[Pt].style.maxHeight=kt[Pt]+"px")}),lt.includes("top-left")&&(U.value=kt.topLeft),lt.includes("bottom-left")&&(Ae.value=kt.bottomLeft),lt.includes("top-right")&&(K.value=kt.topRight),lt.includes("bottom-right")&&(te.value=kt.bottomRight),lt.includes("top-center")&&(ie.value=kt.topCenter),lt.includes("bottom-center")&&(de.value=kt.bottomCenter),lt.includes("center")&&(le.value=kt.center)}function Ve(Ke){return!F.value||!F.value.widgets?[]:Ke==="center"?[...F.value.widgets.filter(lt=>(lt.position||{})==="center")||[],...B.value.filter(lt=>lt.position==="center")]:F.value.widgets.filter(nt=>(nt.position||{})===Ke)||[]}Hu.registerHelper("eq",(Ke,nt)=>Ke===nt),Hu.registerHelper("formatDate",Ke=>Ke?new Date(Ke).toLocaleDateString():"Немає дати"),Hu.registerHelper("get",(Ke,nt)=>(Ke==null?void 0:Ke[nt])??"");const Ze=(Ke,nt,lt)=>{try{if(Ke)if(lt==="markdown"){const xt=Ke.replace(/\{\{([^}]+)\}\}/g,(kt,Pt)=>{try{return new Function("data",`with(data) { return ${Pt} }`)(nt)}catch{return""}});return rr(xt)}else return Hu.compile(Ke)(nt)}catch(xt){return console.error("Error processing template:",xt),Ke}},vt=(Ke,nt,lt,xt,kt,Pt)=>{const mt=Ze(Ke,xt,kt),Ut=nt?Ze(nt,xt,kt):"";let It="";return lt!=null&&lt.length&&(It=lt.map(Sr=>{const mi=Ze(Sr.value,xt,kt);return`
823
+ <tr class="flex justify-between items-center">
824
+ <td class="font-medium mr-1.5 flex items-center">${Sr.label}</td>
825
+ <td class="text-right">${mi}</td>
826
+ </tr>
827
+ `}).join("")),`
828
+ <div class="absolute min-w-28 max-w-[300px] bg-white/70 border border-gray-200 rounded-lg shadow-md text-gray-800 pointer-events-none" style="left: ${Pt.x+10}px; top: ${Pt.y}px">
829
+ ${mt?`
830
+ <div class="font-semibold text-sm border-b border-solid border-gray-200 text-gray-800 rounded-t-lg px-2 py-1">
831
+ <h3>${mt}</h3>
832
+ </div>
833
+ `:""}
834
+ ${nt?`<div class="text-sm px-2 py-1 break-words">${Ut}</div>`:""}
835
+ ${lt!=null&&lt.length&&!nt?`
836
+ <div class="text-xs px-2 py-0.5 text-gray-500">
837
+ <table class="w-full">
838
+ <tbody>${It}</tbody>
839
+ </table>
840
+ </div>
841
+ `:""}
842
+ </div>
843
+ `},tt=Ke=>({legend:Ex,basemaps:Rx,layers:ab,info:mb,attribute:Kb,catalog:f2,filters:tw,"inline-filters":ow,list:vw,card:oy})[Ke],Xe=y.computed(()=>!!F.value&&Array.isArray(F.value.widgets)&&F.value.widgets.some(Ke=>Ke.type==="filters")),rt=Ke=>{P.value=Ke};function bt(){const Ke=new URLSearchParams(window.location.search),nt=parseFloat(Ke.get("x")),lt=parseFloat(Ke.get("y")),xt=parseFloat(Ke.get("z")),kt=parseFloat(Ke.get("bearing")),Pt=parseFloat(Ke.get("pitch"));return{center:isFinite(nt)&&isFinite(lt)?[nt,lt]:null,zoom:isFinite(xt)?xt:null,bearing:isFinite(kt)?kt:null,pitch:isFinite(Pt)?Pt:null}}function Mt({center:Ke,zoom:nt,bearing:lt,pitch:xt}){const kt=new URLSearchParams(window.location.search);kt.set("x",Ke[0].toFixed(5)),kt.set("y",Ke[1].toFixed(5)),kt.set("z",nt.toFixed(2)),kt.set("bearing",lt.toFixed(2)),kt.set("pitch",xt.toFixed(2));const Pt=`${window.location.pathname}?${kt.toString()}`;window.history.replaceState({},"",Pt)}const cr=()=>{var Pt,mt,Ut;if(!F.value||!F.value.map)return;const Ke={version:8,glyphs:"https://cdn.softpro.ua/data/fonts/{fontstack}/{range}.pbf",sources:{voyager:{type:"raster",tiles:["https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png"],tileSize:256,attribution:"&copy; <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a>, &copy; <a href='https://carto.com/attributions'>CARTO</a>"}},layers:[{id:"voyager",type:"raster",source:"voyager",minzoom:0,maxzoom:22}]};let nt=F.value.map.center,lt=F.value.map.zoom,xt=F.value.map.bearing||0,kt=F.value.map.pitch||0;if(F.value.history){const It=bt();It.center&&(nt=It.center),It.zoom!==null&&(lt=It.zoom),It.bearing!==null&&(xt=It.bearing),It.pitch!==null&&(kt=It.pitch)}if(_.value=new $p.Map({container:"maplibre-demo-map",style:Ke,center:nt,zoom:lt,bearing:xt,pitch:kt,maxBounds:[18.0856083513,40.3614785833,58.0807890155,56.3350745713]}),(Ut=(mt=(Pt=F==null?void 0:F.value)==null?void 0:Pt.interactions)==null?void 0:mt.navigation)!=null&&Ut.enabled){const It=new $p.NavigationControl({showCompass:!0,showZoom:!0,visualizePitch:!0});_.value.addControl(It,"top-right")}_.value.on("load",async()=>{var Er,Hi,Mi,Li,Ri;await X2(_.value);const It=bt(),Sr=It.center&&It.zoom!==null;if((Er=F.value.map)!=null&&Er.bbox&&!Sr){const[$t,Xt,yt,er]=F.value.map.bbox;_.value.fitBounds([[$t,Xt],[yt,er]],{padding:50,duration:0})}if(await(async()=>{var Xt,yt,er,ur,we;const $t=((we=(ur=(er=(yt=(Xt=F.value)==null?void 0:Xt.widgets)==null?void 0:yt.find(G=>G.type==="layers"))==null?void 0:er.config)==null?void 0:ur.layers)==null?void 0:we.filter(G=>{var Q;return((Q=G.style)==null?void 0:Q.attrType)==="icon-by-attribute"}))||[];for(const G of $t){const{rules:Q,default_icon:re,icon_base_url:ce}=G.style,ye=[...Q.map($=>$.icon),re].filter(Boolean);for(const $ of ye)try{const ke=`${ce}${$}`,be=await _.value.loadImage(ke);_.value.hasImage($)||_.value.addImage($,be.data)}catch(ke){console.error(`Failed to load icon: ${$}`,ke)}}})(),(Li=(Mi=(Hi=F.value)==null?void 0:Hi.interactions)==null?void 0:Mi.hover)!=null&&Li.enabled&&(_.value.on("mousemove",$t=>{var G,Q,re,ce,ye,$,ke,be;const Xt=_.value.queryRenderedFeatures($t.point);if(_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor=Xt.length?"pointer":""),!Xt.length){if(x.value){const Se=(G=_.value.getSource(x.value.source))==null?void 0:G.type;x.value.source,x.value.id,Se==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}k&&(k.remove(),k=null);return}const yt=Xt[0];if(!x.value||x.value.id!==yt.id||x.value.source!==yt.layer.source){if(x.value){const Ie=(Q=_.value.getSource(x.value.source))==null?void 0:Q.type;x.value.source,x.value.id,Ie==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1})}const Se=(re=_.value.getSource(yt.layer.source))==null?void 0:re.type;yt.layer.source,yt.id,Se==="vector"&&yt.layer.source,Rr(_.value,yt.layer.source,yt.id,{hovered:!0}),x.value={source:yt.layer.source,id:yt.id}}const er=(ye=(ce=F.value)==null?void 0:ce.widgets)==null?void 0:ye.find(Se=>Se.type==="layers"),ur=(ke=($=F.value)==null?void 0:$.widgets)==null?void 0:ke.find(Se=>Se.type==="attribute");let we=null;if(er&&(we=er.config.layers.find(Se=>Se.id===yt.layer.source)),!we&&ur&&ur.config.layer.id===yt.layer.source&&(we=ur.config.layer),(be=we==null?void 0:we.style)!=null&&be.popup){const Se=we.style.popup;let Ie=Se.title,Te="";Se.mode==="markdown"?Te=Array.isArray(Se.content)?Se.content.join(`
844
+
845
+ `):"":Te=Array.isArray(Se.content)?Se.content.join(""):"",k||(k=document.createElement("div"),_.value.getContainer().appendChild(k));const qe=_.value.project($t.lngLat);k.innerHTML=vt(Ie,Te,Se.fields,yt.properties,Se.mode,qe)}}),_.value.on("mouseleave",()=>{var $t;if(k&&(k.remove(),k=null),x.value){const Xt=($t=_.value.getSource(x.value.source))==null?void 0:$t.type;x.value.source,x.value.id,Xt==="vector"&&x.value.source,Rr(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor="")})),_.value.on("click",async $t=>{var Q,re,ce,ye,$;if(["length","area","print"].includes(M.value))return;const Xt=_.value.queryRenderedFeatures($t.point);if(!Xt.length)return;s.value.forEach(ke=>{var Se;const be=(Se=_.value.getSource(ke.source))==null?void 0:Se.type;ke.source,ke.id,be==="vector"&&ke.source,Rr(_.value,ke.source,ke.id,{selected:!1})}),s.value=[];const yt=Xt[0],er=(Q=_.value.getSource(yt.layer.source))==null?void 0:Q.type;yt.layer.source,yt.id,er==="vector"&&yt.layer.source,Rr(_.value,yt.layer.source,yt.id,{selected:!0}),s.value.push({source:yt.layer.source,id:yt.id});const ur=(ce=(re=F.value)==null?void 0:re.widgets)==null?void 0:ce.find(ke=>ke.type==="layers"),we=($=(ye=F.value)==null?void 0:ye.widgets)==null?void 0:$.find(ke=>ke.type==="attribute");let G=(we==null?void 0:we.config.layer)||(ur==null?void 0:ur.config.layers.find(ke=>ke.id===yt.layer.source));D.value={layer:(G==null?void 0:G.service_key)||"",map:(G==null?void 0:G.map_key)||"",id:yt.properties.id,title:(G==null?void 0:G.title)||""}}),_.value.on("dblclick",$t=>{var er,ur,we;if(["length","area","print"].includes(M.value))return;ai([$t.lngLat.lng,$t.lngLat.lat]);const Xt=(ur=(er=F.value)==null?void 0:er.widgets)==null?void 0:ur.find(G=>G.type==="layers");let yt=null;(we=Xt==null?void 0:Xt.config)!=null&&we.layers&&(yt=Xt.config.layers.find(G=>G.visible!==!1&&["tms","wms","raster"].includes((G.service_type||G.service||"").toLowerCase()))),D.value={layer:(yt==null?void 0:yt.map_key)||"",map:(yt==null?void 0:yt.service_key)||"",id:"",title:(yt==null?void 0:yt.title)||""}}),_.value.resize(),w.value=!0,(Ri=F==null?void 0:F.value)!=null&&Ri.history){const $t=()=>{const Xt=_.value.getCenter();Mt({center:[Xt.lng,Xt.lat],zoom:_.value.getZoom(),bearing:_.value.getBearing(),pitch:_.value.getPitch()})};_.value.on("moveend",$t),_.value.on("rotate",$t),_.value.on("pitch",$t)}})},yr=()=>{ji(),s.value.forEach(Ke=>{_.value&&Rr(_.value,Ke.source,Ke.id,{selected:!1})}),s.value=[],D.value=null};y.onMounted(async()=>{await Zt(),await y.nextTick(),cr(),window.addEventListener("resize",()=>{Ce()}),y.watch([T["top-left"],T["top-right"],T["top-center"],T.center,T["bottom-left"],T["bottom-right"],T["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,Ke=>{Ke&&y.nextTick().then(()=>{Ce()})}),y.watch(()=>d.table,async Ke=>{if(Ke){if(_.value){try{_.value.remove()}catch{}_.value=null,w.value=!1}await Zt(),await y.nextTick(),cr(),Ce(),window.removeEventListener("resize",Ce),window.addEventListener("resize",Ce),y.watch([T["top-left"],T["top-right"],T["top-center"],T.center,T["bottom-left"],T["bottom-right"],T["bottom-center"],()=>F.value.widgets,B],async()=>{await y.nextTick(),Ce(),setTimeout(Ce,0)},{deep:!0}),y.watch(w,nt=>{nt&&y.nextTick().then(()=>{Ce()})})}})}),y.onUnmounted(()=>{window.removeEventListener("resize",Ce)});const bi=y.computed(()=>{var nt,lt,xt;return{height:((nt=F==null?void 0:F.value)==null?void 0:nt.height)||((xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.height)||"100vh",width:"100%"}}),Zt=async()=>{const Ke=await gr.get(`/api/map/${d.table}`);F.value=Ke.data},en=Ke=>{if(!F.value||!F.value.widgets)return"400px";const nt=F.value.widgets.find(lt=>lt.position===Ke);return(nt==null?void 0:nt.width)||"400px"},ti=y.ref([]);y.watch(()=>F.value,Ke=>{Ke&&Ke.map&&(ti.value=wn(),cr())});const wn=()=>{var nt;if(!F.value||!F.value.widgets)return[];const Ke=F.value.widgets.find(lt=>lt.type==="layers");return(nt=Ke==null?void 0:Ke.config)!=null&&nt.layers?Ke.config.layers.map(lt=>({...lt,visible:lt.visible??!1})).filter(lt=>lt.visible).map(lt=>lt.id):[]};function Rr(Ke,nt,lt,xt){Ke.getStyle().layers.filter(Pt=>Pt.source===nt).forEach(Pt=>{var Ut;const mt={source:nt,id:lt};((Ut=Ke.getSource(nt))==null?void 0:Ut.type)==="vector"&&Pt["source-layer"]&&(mt.sourceLayer=Pt["source-layer"]),Ke.setFeatureState(mt,xt)})}const as=y.computed(()=>!!F.value&&!!F.value.interactions&&!!F.value.interactions.navigation&&F.value.interactions.navigation.enabled),wi=y.computed(()=>!!F.value&&Array.isArray(F.value.tools)&&F.value.tools.length>0),Dr=y.computed(()=>as.value||wi.value?"70px":"20px");function ji(){_.value&&(_.value.getLayer("layer-with-pulsing-dot")&&_.value.removeLayer("layer-with-pulsing-dot"),_.value.getSource("dot-point")&&_.value.removeSource("dot-point"),_.value.hasImage&&_.value.hasImage("pulsing-dot")&&_.value.removeImage("pulsing-dot"))}function ai(Ke){var xt,kt,Pt,mt;ji();const nt=80,lt={width:nt,height:nt,data:new Uint8Array(nt*nt*4),onAdd(){const Ut=document.createElement("canvas");Ut.width=this.width,Ut.height=this.height,this.context=Ut.getContext("2d",{willReadFrequently:!0})},render(){var Mi;const It=performance.now()%2e3/2e3,Sr=nt/2*.3,mi=nt/2*.7*It+Sr,{context:Er}=this;Er.clearRect(0,0,this.width,this.height),Er.beginPath(),Er.arc(this.width/2,this.height/2,mi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-It})`,Er.fill();const Hi=nt/2*.7*(It-.5<0?It-.5+1:It-.5)+Sr;return Er.beginPath(),Er.arc(this.width/2,this.height/2,Hi,0,Math.PI*2),Er.fillStyle=`rgba(255, 100, 100, ${1-(It-.5<0?It-.5+1:It-.5)})`,Er.fill(),this.data=Er.getImageData(0,0,this.width,this.height).data,(Mi=_.value)==null||Mi.triggerRepaint(),!0}};(xt=_.value)!=null&&xt.hasImage("pulsing-dot")||(kt=_.value)==null||kt.addImage("pulsing-dot",lt,{pixelRatio:2}),(Pt=_.value)==null||Pt.addSource("dot-point",{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:Ke}}}),(mt=_.value)==null||mt.addLayer({id:"layer-with-pulsing-dot",type:"symbol",source:"dot-point",layout:{"icon-image":"pulsing-dot"},paint:{"icon-opacity":.6}})}const Sn=y.computed(()=>{var Ke,nt,lt,xt,kt,Pt,mt,Ut,It,Sr;return{center:(nt=(Ke=F==null?void 0:F.value)==null?void 0:Ke.map)==null?void 0:nt.center,zoom:(xt=(lt=F==null?void 0:F.value)==null?void 0:lt.map)==null?void 0:xt.zoom,pitch:((Pt=(kt=F==null?void 0:F.value)==null?void 0:kt.map)==null?void 0:Pt.pitch)||0,bearing:((Ut=(mt=F==null?void 0:F.value)==null?void 0:mt.map)==null?void 0:Ut.bearing)||0,bbox:((Sr=(It=F==null?void 0:F.value)==null?void 0:It.map)==null?void 0:Sr.bbox)||null}}),tn={home:Pw,print:Bw,geolocation:oS,pitch:Ow,length:BS,area:QS},Vn=Ke=>{M.value=Ke};function Kr(Ke){if(!F.value||!F.value.widgets)return;const nt=F.value.widgets.find(kt=>kt.type==="list");if(!nt||!nt.config)return;const{map_key:lt,service_key:xt}=nt.config;lt&&xt&&(D.value={id:Ke,map:lt,layer:xt})}function li(Ke){switch(Ke){case"top-left":return U.value;case"top-right":return K.value;case"top-center":return ie.value;case"center":return le.value;case"bottom-left":return Ae.value;case"bottom-right":return te.value;case"bottom-center":return de.value;default:return 0}}const Gr=y.computed(()=>F.value&&F.value.widgets?F.value.widgets.filter(Ke=>Ke.position==="absolute"):[]);return(Ke,nt)=>{var lt,xt,kt,Pt;return y.openBlock(),y.createElementBlock("div",{id:"maplibre-demo-map",style:y.normalizeStyle(bi.value)},[w.value?y.createCommentVNode("",!0):(y.openBlock(),y.createBlock(ww,{key:0})),y.withDirectives(y.createElementVNode("div",eA,[(y.openBlock(),y.createElementBlock(y.Fragment,null,y.renderList(R,mt=>{var Ut,It;return y.createVNode($S,{key:mt,position:mt,widgets:Ve(mt),map:_.value,mapLoaded:w.value,cardValues:D.value,hasFilters:Xe.value,history:(It=(Ut=F.value)==null?void 0:Ut.value)==null?void 0:It.history,currentFilterLayer:P.value,enabledLayerIds:ti.value,getWidgetComponent:tt,getColumnWidth:en,rightColumnOffset:mt==="top-right"?Dr.value:void 0,maxHeight:li(mt),ref_for:!0,ref:Sr=>C(mt,Sr),onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[0]||(nt[0]=Sr=>ti.value=Sr),onCardValuesId:Kr,onCloseCard:yr,onContentResize:()=>Ce(mt)},null,8,["position","widgets","map","mapLoaded","cardValues","hasFilters","history","currentFilterLayer","enabledLayerIds","rightColumnOffset","maxHeight","onContentResize"])}),64)),(xt=(lt=F.value)==null?void 0:lt.value)!=null&&xt.tools?(y.openBlock(),y.createElementBlock("div",tA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList((Pt=(kt=F.value)==null?void 0:kt.value)==null?void 0:Pt.tools,mt=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:mt},[w.value&&tn[mt]?(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tn[mt]),y.mergeProps({key:0,map:_.value,activeTool:M.value,setActiveTool:Vn,ref_for:!0},mt==="home"?{initialView:Sn.value}:{},{onCardValuesId:Kr}),null,16,["map","activeTool"])):y.createCommentVNode("",!0)],64))),128))])):y.createCommentVNode("",!0)],512),[[y.vShow,w.value]]),(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(Gr.value,(mt,Ut)=>(y.openBlock(),y.createElementBlock("div",{key:"abs-"+(mt.id||mt.type||Ut),class:"absolute z-20",style:y.normalizeStyle(mt.style)},[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(tt(mt.type)),{map:_.value,config:mt.config,hasFilters:Xe.value,currentFilterLayer:P.value,enabledLayerIds:ti.value,cardValues:D.value,onSetFilterLayer:rt,"onUpdate:enabledLayerIds":nt[1]||(nt[1]=It=>ti.value=It),onCardValuesId:Kr,onCloseCard:yr},null,40,["map","config","hasFilters","currentFilterLayer","enabledLayerIds","cardValues"]))],4))),128))],4)}}},iA=Gt(rA,[["__scopeId","data-v-edaa6750"]]),nA={props:{title:{type:String,required:!0},description:{type:String,required:!0}}},sA={class:"text-center mb-12"},oA={class:"text-3xl font-bold mb-4"},aA={class:"text-slate-600 max-w-2xl mx-auto"};function lA(h,d,_,w,k,P){return y.openBlock(),y.createElementBlock("div",sA,[y.createElementVNode("h2",oA,y.toDisplayString(_.title),1),y.createElementVNode("p",aA,y.toDisplayString(_.description),1)])}const _y=Gt(nA,[["render",lA]]),cA={name:"RegistryList",components:{HeroBlock:_y},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"data"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},breadcrumbs:{type:Array,default:()=>[]},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,required:!0}},data(){return{filterUrl:"",mounted:!1,tableData:[],currentPage:1,limit:16,localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData()},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?"/api/gis-registry":"/api/data",{data:d}=await gr.get(`${h}/${this.table}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.total:d==null?void 0:d.filtered)}catch(h){console.error(h.message)}}}},uA={class:"py-16 md:py-24"},hA={class:"py-6"},pA={class:"container"},dA={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},fA=["href"],mA={key:1,class:"text-foreground font-medium truncate"},gA={class:"flex flex-col md:flex-row gap-4 justify-end"},yA={class:"container"},_A={key:0,class:"space-y-4"},vA={class:"my-5 pr-2"},xA={class:"paginationWrapper relative flex justify-center"},bA={key:1,class:"text-center text-slate-400"};function wA(h,d,_,w,k,P){var D,M;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",uA,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description},null,8,["title","description"])]),y.createElementVNode("section",hA,[y.createElementVNode("div",pA,[(D=_.breadcrumbs)!=null&&D.length?(y.openBlock(),y.createElementBlock("div",dA,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(F,R)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:R},[R<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:F.link,class:"hover:text-foreground"},y.toDisplayString(F.name),9,fA),d[0]||(d[0]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",mA,y.toDisplayString(F.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",gA,[_.filters&&k.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,isDialog:_.dialog,urlSeparator:"true",view:"plain",token:_.token,name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[1]||(d[1]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","isDialog","token","onFilterChange"])):y.createCommentVNode("",!0)])])]),y.createElementVNode("section",null,[y.createElementVNode("div",yA,[((M=k.tableData)==null?void 0:M.length)>0?(y.openBlock(),y.createElementBlock("div",_A,[y.renderSlot(h.$slots,"default",{items:k.tableData}),y.createElementVNode("div",vA,[y.createElementVNode("div",xA,[y.createVNode(B,{total:k.localTotal,maxPages:4,defaultPage:k.currentPage,pageSize:k.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[9,18,27,36],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",bA,y.toDisplayString(_.emptyStateText),1))])])])}const vy=Gt(cA,[["render",wA]]),SA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},AA={class:"flex flex-col space-y-1.5 p-4 pb-2 bg-slate-50"},kA={class:"flex items-center justify-between"},TA={class:"text-lg font-bold line-clamp-2"},CA={class:"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 text-foreground ml-2 whitespace-nowrap","data-v0-t":"badge"},EA={class:"p-4 pt-2"},PA={class:"grid grid-cols-2 gap-3 text-sm"},IA={class:"flex items-center gap-1.5"},MA={class:"font-medium"},LA={class:"flex items-center gap-1.5"},RA={class:"font-medium"},DA={class:"flex items-center gap-1.5"},zA={class:"font-medium"},BA={class:"flex items-center gap-1.5"},VA={class:"font-medium"},FA={class:"items-center p-3 bg-slate-50 flex justify-end"},OA=["href"];function NA(h,d,_,w,k,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg border bg-card text-card-foreground overflow-hidden border-none shadow-md relative","data-v0-t":"card"},[d[8]||(d[8]=y.createElementVNode("div",{class:"absolute left-0 top-0 bottom-0 w-1 bg-blue-500"},null,-1)),y.createElementVNode("div",AA,[y.createElementVNode("div",kA,[y.createElementVNode("h2",TA,y.toDisplayString(x.name),1),y.createElementVNode("div",CA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",EA,[y.createElementVNode("div",PA,[y.createElementVNode("div",IA,[d[0]||(d[0]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hash h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><line x1="4" x2="20" y1="9" y2="9"></line><line x1="4" x2="20" y1="15" y2="15"></line><line x1="10" x2="8" y1="3" y2="21"></line><line x1="16" x2="14" y1="3" y2="21"></line></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("span",MA,y.toDisplayString(x.parent_text),1)])]),y.createElementVNode("div",LA,[d[2]||(d[2]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[d[1]||(d[1]=y.createElementVNode("span",{class:"text-muted-foreground"},"Статус: ",-1)),y.createElementVNode("span",RA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",DA,[d[4]||(d[4]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-building h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><rect width="16" height="20" x="4" y="2" rx="2" ry="2"></rect><path d="M9 22v-4h6v4"></path><path d="M8 6h.01"></path><path d="M16 6h.01"></path><path d="M12 6h.01"></path><path d="M12 10h.01"></path><path d="M12 14h.01"></path><path d="M16 10h.01"></path><path d="M16 14h.01"></path><path d="M8 10h.01"></path><path d="M8 14h.01"></path></svg>',1)),y.createElementVNode("div",null,[y.createElementVNode("div",null,[d[3]||(d[3]=y.createElementVNode("span",{class:"text-muted-foreground"},"Тип: ",-1)),y.createElementVNode("span",zA,y.toDisplayString(x.type_text),1)])])]),y.createElementVNode("div",BA,[d[6]||(d[6]=y.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5 text-muted-foreground flex-shrink-0"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>',1)),y.createElementVNode("div",null,[d[5]||(d[5]=y.createElementVNode("span",{class:"text-muted-foreground"},"Дата видачі: ",-1)),y.createElementVNode("span",VA,y.toDisplayString(P.formatDate(x.cdate)),1)])])])]),y.createElementVNode("div",FA,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-9 rounded-md px-3"},d[7]||(d[7]=[y.createTextVNode(" Детальніше"),y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-arrow-right ml-1 h-3.5 w-3.5"},[y.createElementVNode("path",{d:"M5 12h14"}),y.createElementVNode("path",{d:"m12 5 7 7-7 7"})],-1)]),8,OA)])]))),128)}const qA=Gt(SA,[["render",NA]]),UA={name:"Template2",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},jA={class:"flex flex-col space-y-1.5 p-6 pb-2 border-b"},HA={class:"flex justify-between items-center"},WA={class:"tracking-tight text-lg font-medium"},ZA={class:"inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800"},KA={class:"p-6 py-4"},GA={class:"grid grid-cols-1 gap-3"},JA={class:"flex items-center"},XA={class:"font-medium"},QA={class:"flex items-center"},YA={class:"font-medium"},$A={class:"items-center p-6 pt-0 flex justify-end"},ek=["href"];function tk(h,d,_,w,k,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"rounded-lg bg-card text-card-foreground border-0 shadow-md","data-v0-t":"card"},[y.createElementVNode("div",jA,[y.createElementVNode("div",HA,[y.createElementVNode("h3",WA,y.toDisplayString(x.name),1),y.createElementVNode("span",ZA,y.toDisplayString(x.status_text),1)])]),y.createElementVNode("div",KA,[y.createElementVNode("div",GA,[y.createElementVNode("div",JA,[d[0]||(d[0]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Номер адреси:")],-1)),y.createElementVNode("p",XA,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",QA,[d[1]||(d[1]=y.createElementVNode("div",{class:"w-32 flex-shrink-0"},[y.createElementVNode("p",{class:"text-sm font-semibold text-gray-500"},"Дата видачі:")],-1)),y.createElementVNode("p",YA,y.toDisplayString(P.formatDate(x.cdate)),1)])])]),y.createElementVNode("div",$A,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-10 px-4 py-2 rounded-md bg-gray-900 text-white hover:bg-black"}," Детальніше ",8,ek)])]))),128)}const rk=Gt(UA,[["render",tk]]),ik={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"})}}},nk={class:"flex items-center py-2 px-3"},sk={class:"grid grid-cols-12 gap-2 w-full text-sm"},ok={class:"col-span-5"},ak={class:"font-medium line-clamp-1"},lk={class:"inline-flex items-center rounded-full border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80 mt-1 text-[10px] font-normal px-1.5 py-0","data-v0-t":"badge"},ck={class:"col-span-2"},uk={class:"truncate"},hk={class:"col-span-2"},pk={class:"truncate"},dk={class:"col-span-2"},fk={class:"col-span-1 flex justify-end items-center"},mk=["href"];function gk(h,d,_,w,k,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{class:"border-b border-slate-200 hover:bg-slate-50 transition-colors",key:x.id},[y.createElementVNode("div",nk,[d[4]||(d[4]=y.createElementVNode("div",{class:"w-1 h-8 rounded-full mr-3 bg-blue-500"},null,-1)),y.createElementVNode("div",sk,[y.createElementVNode("div",ok,[y.createElementVNode("p",ak,y.toDisplayString(x.name),1),y.createElementVNode("div",lk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("div",ck,[d[0]||(d[0]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Територіальна належність",-1)),y.createElementVNode("p",uk,y.toDisplayString(x.parent_text),1)]),y.createElementVNode("div",hk,[d[1]||(d[1]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Статус",-1)),y.createElementVNode("p",pk,y.toDisplayString(x.status_text),1)]),y.createElementVNode("div",dk,[d[2]||(d[2]=y.createElementVNode("p",{class:"text-[10px] text-muted-foreground"},"Дата видачі",-1)),y.createElementVNode("p",null,y.toDisplayString(P.formatDate(x.cdate)),1)]),y.createElementVNode("div",fk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground rounded-md h-7 w-7 p-0"},d[3]||(d[3]=[y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-chevron-right h-4 w-4"},[y.createElementVNode("path",{d:"m9 18 6-6-6-6"})],-1)]),8,mk)])])])]))),128)}const yk=Gt(ik,[["render",gk]]),_k={name:"Template3",props:{items:{type:Array,required:!0},path:{type:String,required:!0}},methods:{formatDate(h){return h?new Date(h).toLocaleDateString("uk-UA",{day:"2-digit",month:"2-digit",year:"numeric"}):"Не вказано"}}},vk={class:"grid grid-cols-12 divide-x divide-gray-100"},xk={class:"col-span-7 p-4"},bk={class:"flex items-center mb-1"},wk={class:"text-base font-bold text-gray-900 mr-2"},Sk={class:"inline-flex items-center rounded-full px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-blue-100 text-blue-800 border-0 text-xs"},Ak={class:"text-sm text-gray-600 line-clamp-1 mb-2"},kk={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-sm"},Tk={class:"flex items-center"},Ck={class:"text-gray-600 truncate"},Ek={class:"col-span-2 flex flex-col justify-center items-center bg-gray-50 border-l p-2"},Pk={class:"w-full space-y-2"},Ik=["href"];function Mk(h,d,_,w,k,P){return y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.items,x=>(y.openBlock(),y.createElementBlock("div",{key:x.id,class:"bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200 hover:shadow-md"},[y.createElementVNode("div",vk,[d[2]||(d[2]=y.createElementVNode("div",{class:"col-span-1 flex items-center justify-center"},[y.createElementVNode("div",{class:"w-3 h-12 rounded-sm bg-red-500",title:"Пріоритет: Високий","aria-hidden":"true"})],-1)),y.createElementVNode("div",xk,[y.createElementVNode("div",bk,[y.createElementVNode("h3",wk,y.toDisplayString(x.name),1),y.createElementVNode("div",Sk,y.toDisplayString(x.type_text),1)]),y.createElementVNode("p",Ak,y.toDisplayString(x.parent_text),1),y.createElementVNode("div",kk,[y.createElementVNode("div",Tk,[d[0]||(d[0]=y.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-clock h-3.5 w-3.5 text-gray-400 mr-1 flex-shrink-0"},[y.createElementVNode("circle",{cx:"12",cy:"12",r:"10"}),y.createElementVNode("polyline",{points:"12 6 12 12 16 14"})],-1)),y.createElementVNode("span",Ck,"Оновлено: "+y.toDisplayString(P.formatDate(x.editor_date)),1)])])]),d[3]||(d[3]=y.createStaticVNode('<div class="col-span-2 p-3 bg-gray-50 flex flex-col justify-center"><p class="text-xs text-gray-500 mb-1.5">Категорії:</p><div class="flex flex-wrap gap-1"><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Житловий </div><div class="inline-flex items-center rounded-full font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-white border border-gray-200 text-gray-700 text-xs px-1.5 py-0"> Центр </div></div></div>',1)),y.createElementVNode("div",Ek,[y.createElementVNode("div",Pk,[y.createElementVNode("a",{href:`${_.path}/${x.id}`,class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 rounded-md px-3 w-full bg-blue-600 hover:bg-blue-700 text-white text-xs h-8"}," Детальніше",8,Ik),d[1]||(d[1]=y.createElementVNode("button",{disabled:"",class:"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border bg-background hover:text-accent-foreground rounded-md px-3 w-full text-gray-700 border-gray-300 hover:bg-gray-100 text-xs h-8"}," Завантажити ",-1))])])])]))),128)}const Lk=Gt(_k,[["render",Mk]]),Rk={template1:qA,template2:rk,template3:yk,template4:Lk},Dk={name:"RegistryList",components:{HeroBlock:_y,...Rk},props:{title:{type:String,required:!0},description:{type:String,default:""},type:{type:String,default:"list"},items:{type:Array,default:()=>[]},total:{type:Number,default:0},filters:{type:Array,default:()=>null},emptyStateText:{type:String,default:"Немає даних"},limit:{type:Number,default:16},currentPage:{type:Number,default:1},breadcrumbs:{type:Array,default:()=>[]},path:{type:String,default:""},id_key:{type:String,default:"id"},dialog:{type:Boolean,default:!0},token:{type:String,default:""},table:{type:String,required:!0}},data(){return{filterUrl:"",mounted:!1,templateViews:[{value:"template1",label:"Шаблон 1"},{value:"template2",label:"Шаблон 2"},{value:"template3",label:"Шаблон 3"},{value:"template4",label:"Шаблон 4"}],templateView:"template1",tableData:[],localTotal:0}},created(){this.tableData=this.items,this.localTotal=this.total},mounted(){this.mounted=!0},methods:{handleFilterChange({url:h}){this.currentPage=1,this.filterUrl=h,this.getData()},handlePageChange(h){this.currentPage=h,this.getData(),this.$nextTick(()=>{this.$refs.componentRef.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"})})},changeLimit(h){this.limit=h,this.currentPage=1,this.getData()},async getData(){try{const h=this.type==="registry"?"/api/gis-registry":"/api/data",{data:d}=await gr.get(`${h}/${this.table}?filter=${this.filterUrl}&page=${this.currentPage}&limit=${this.limit}`);d&&(this.tableData=d==null?void 0:d.rows,this.localTotal=this.type==="registry"?d==null?void 0:d.filtered:d==null?void 0:d.total)}catch(h){console.error(h.message)}}}},zk={class:"py-16 md:py-24"},Bk={class:"py-6",ref:"componentRef"},Vk={class:"container"},Fk={key:0,class:"flex items-center text-sm text-muted-foreground mb-6"},Ok=["href"],Nk={key:1,class:"text-foreground font-medium truncate"},qk={class:"flex flex-col md:flex-row gap-4 justify-end"},Uk={class:"container"},jk={key:0,class:"space-y-4"},Hk={class:"my-5 pr-2"},Wk={class:"paginationWrapper relative flex justify-center"},Zk={key:1,class:"text-center text-slate-400"};function Kk(h,d,_,w,k,P){var F,R;const x=y.resolveComponent("HeroBlock"),s=y.resolveComponent("VsFilterList"),B=y.resolveComponent("VsAutocompleteOption"),D=y.resolveComponent("VsAutocomplete"),M=y.resolveComponent("VsPagination");return y.openBlock(),y.createElementBlock("div",zk,[y.createElementVNode("section",null,[y.createVNode(x,{title:_.title,description:_.description,path:_.path},null,8,["title","description","path"])]),y.createElementVNode("section",Bk,[y.createElementVNode("div",Vk,[(F=_.breadcrumbs)!=null&&F.length?(y.openBlock(),y.createElementBlock("div",Fk,[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(_.breadcrumbs,(T,C)=>(y.openBlock(),y.createElementBlock(y.Fragment,{key:C},[C<_.breadcrumbs.length-1?(y.openBlock(),y.createElementBlock(y.Fragment,{key:0},[y.createElementVNode("a",{href:T.link,class:"hover:text-foreground"},y.toDisplayString(T.name),9,Ok),d[1]||(d[1]=y.createElementVNode("span",{class:"mx-2"},"/",-1))],64)):(y.openBlock(),y.createElementBlock("span",Nk,y.toDisplayString(T.name),1))],64))),128))])):y.createCommentVNode("",!0),y.createElementVNode("div",qk,[_.filters&&k.mounted?(y.openBlock(),y.createBlock(s,{key:0,ref:"filter",scheme:_.filters,token:_.token,isDialog:_.dialog,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:P.handleFilterChange},{button:y.withCtx(()=>d[2]||(d[2]=[y.createElementVNode("button",{class:"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground px-3 py-2",type:"button"}," Фільтри ",-1)])),_:1},8,["scheme","token","isDialog","onFilterChange"])):y.createCommentVNode("",!0),y.createVNode(D,{modelValue:k.templateView,"onUpdate:modelValue":d[0]||(d[0]=T=>k.templateView=T),class:"w-[150px]"},{default:y.withCtx(()=>[(y.openBlock(!0),y.createElementBlock(y.Fragment,null,y.renderList(k.templateViews,T=>(y.openBlock(),y.createBlock(B,{label:T.label,value:T.value},{default:y.withCtx(()=>[y.createTextVNode(y.toDisplayString(T.label),1)]),_:2},1032,["label","value"]))),256))]),_:1},8,["modelValue"])])])],512),y.createElementVNode("section",null,[y.createElementVNode("div",Uk,[((R=k.tableData)==null?void 0:R.length)>0?(y.openBlock(),y.createElementBlock("div",jk,[(y.openBlock(),y.createBlock(y.resolveDynamicComponent(k.templateView),{items:k.tableData,path:_.path,id_key:_.id_key},null,8,["items","path","id_key"])),y.createElementVNode("div",Hk,[y.createElementVNode("div",Wk,[y.createVNode(M,{total:k.localTotal,maxPages:4,defaultPage:_.currentPage,pageSize:_.limit,goTo:!1,size:"medium",backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[10,20,30,40],onPageChange:P.handlePageChange,onPageSizeChange:P.changeLimit},null,8,["total","defaultPage","pageSize","onPageChange","onPageSizeChange"])])])])):(y.openBlock(),y.createElementBlock("div",Zk,y.toDisplayString(_.emptyStateText),1))])])])}const xy=Gt(Dk,[["render",Kk]]),Gk={class:"pt-[10px]"},Jk={__name:"vs-editor-style-ace",props:{yamlValue:{type:null,default:()=>""}},setup(h){const d=h,_=y.ref(d.yamlValue);return(w,k)=>{const P=y.resolveComponent("VsFormAce");return y.openBlock(),y.createElementBlock("div",Gk,[y.createVNode(P,{modelValue:_.value,"onUpdate:modelValue":k[0]||(k[0]=x=>_.value=x),value:_.value,fontSize:"12px"},null,8,["modelValue","value"])])}}},Xk={components:{VsEditorStyleAce:Jk},props:{data:Object,value:null,name:String},data(){var h,d,_;return{style:((_=(d=(h=this.data)==null?void 0:h.rows)==null?void 0:d[0])==null?void 0:_.style)||""}}};function Qk(h,d,_,w,k,P){const x=y.resolveComponent("VsEditorStyleAce");return y.openBlock(),y.createBlock(x,{yamlValue:k.style,onChangeData:h.onChange,height:500,onUpdate:h.getData},null,8,["yamlValue","onChangeData","onUpdate"])}const Yk=Gt(Xk,[["render",Qk]]),$k={install(h){h.component("MapCustom",iA),h.component("RegistryList",vy),h.component("RegistryListCustom",xy),h.component("vs-style-yml",Yk)}};exports.RegistryList=vy;exports.RegistryListCustom=xy;exports.default=$k;