1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[634],{6158:function(x,eu,ef){var em=ef(34155);x.exports=function(){"use strict";var x,eu,ef;function define(em,e_){if(x){if(eu){var eg="self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; ("+x+")(sharedChunk); ("+eu+")(sharedChunk); self.onerror = null;",ex={};x(ex),ef=e_(ex),"undefined"!=typeof window&&window&&window.URL&&window.URL.createObjectURL&&(ef.workerUrl=window.URL.createObjectURL(new Blob([eg],{type:"text/javascript"})))}else eu=e_}else x=e_}return define(["exports"],function(x){let eu,ef,e_,eg,ex,ev,eb;var ew,eT="undefined"!=typeof self?self:{},eE="2.14.1";let eS={API_URL:"https://api.mapbox.com",get API_URL_REGEX(){if(null==eu){let x=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{eu=null!=em.env.API_URL_REGEX?new RegExp(em.env.API_URL_REGEX):x}catch(ef){eu=x}}return eu},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){if(!eS.API_URL)return null;try{let x=new URL(eS.API_URL);return"api.mapbox.cn"===x.hostname?"https://events.mapbox.cn/events/v2":"api.mapbox.com"===x.hostname?"https://events.mapbox.com/events/v2":null}catch(x){return null}},SESSION_PATH:"/map-sessions/v1",FEEDBACK_URL:"https://apps.mapbox.com/feedback",TILE_URL_VERSION:"v4",RASTER_URL_PREFIX:"raster/v1",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},eM={supported:!1,testSupport:function(x){!eC&&eA&&(ez?c(x):eI=x)}},eI,eA,eC=!1,ez=!1;function c(x){let eu=x.createTexture();x.bindTexture(x.TEXTURE_2D,eu);try{if(x.texImage2D(x.TEXTURE_2D,0,x.RGBA,x.RGBA,x.UNSIGNED_BYTE,eA),x.isContextLost())return;eM.supported=!0}
1catch(x){}x.deleteTexture(eu),eC=!0}function f(x,eu,ef,em){this.cx=3*x,this.bx=3*(ef-x)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*eu,this.by=3*(em-eu)-this.cy,this.ay=1-this.cy-this.by,this.p1x=x,this.p1y=eu,this.p2x=ef,this.p2y=em}eT.document&&((eA=eT.document.createElement("img")).onload=function(){eI&&c(eI),eI=null,ez=!0},eA.onerror=function(){eC=!0,eI=null},eA.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),f.prototype={sampleCurveX:function(x){return((this.ax*x+this.bx)*x+this.cx)*x},sampleCurveY:function(x){return((this.ay*x+this.by)*x+this.cy)*x},sampleCurveDerivativeX:function(x){return(3*this.ax*x+2*this.bx)*x+this.cx},solveCurveX:function(x,eu){if(void 0===eu&&(eu=1e-6),x<0)return 0;if(x>1)return 1;for(var ef=x,em=0;em<8;em++){var e_=this.sampleCurveX(ef)-x;if(Math.abs(e_)<eu)return ef;var eg=this.sampleCurveDerivativeX(ef);if(1e-6>Math.abs(eg))break;ef-=e_/eg}var ex=0,ev=1;for(ef=x,em=0;em<20&&!(Math.abs((e_=this.sampleCurveX(ef))-x)<eu);em++)x>e_?ex=ef:ev=ef,ef=.5*(ev-ex)+ex;return ef},solve:function(x,eu){return this.sampleCurveY(this.solveCurveX(x,eu))}};var eD=y;function y(x,eu){this.x=x,this.y=eu}y.prototype={clone:function(){return new y(this.x,this.y)},add:function(x){return this.clone()._add(x)},sub:function(x){return this.clone()._sub(x)},multByPoint:function(x){return this.clone()._multByPoint(x)},divByPoint:function(x){return this.clone()._divByPoint(x)},mult:function(x){return this.clone()._mult(x)},div:function(x){return this.clone()._div(x)},rotate:function(x){return this.clone()._rotate(x)},rotateAround:function(x,eu){return this.clone()._rotateAround(x,eu)},matMult:function(x){return this.clone()._matMult(x)},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(x){return this.x===x.x&&this.y===x.y},dist:function(x){return Math.sqrt(this.distSqr(x))},distSqr:function(x){var eu=x.x-this.x,ef=x.y-this.y;return eu*eu+ef*ef},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(x){return Math.atan2(this.y-x.y,this.x-x.x)},angleWith:function(x){return this.angleWithSep(x.x,x.y)},angleWithSep:function(x,eu){return Math.atan2(this.x*eu-this.y*x,this.x*x+this.y*eu)},_matMult:function(x){var eu=x[2]*this.x+x[3]*this.y;return this.x=x[0]*this.x+x[1]*this.y,this.y=eu,this},_add:function(x){return this.x+=x.x,this.y+=x.y,this},_sub:function(x){return this.x-=x.x,this.y-=x.y,this},_mult:function(x){return this.x*=x,this.y*=x,this},_div:function(x){return this.x/=x,this.y/=x,this},_multByPoint:function(x){return this.x*=x.x,this.y*=x.y,this},_divByPoint:function(x){return this.x/=x.x,this.y/=x.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var x=this.y;return this.y=this.x,this.x=-x,this},_rotate:function(x){var eu=Math.cos(x),ef=Math.sin(x),em=ef*this.x+eu*this.y;return this.x=eu*this.x-ef*this.y,this.y=em,this},_rotateAround:function(x,eu){var ef=Math.cos(x),em=Math.sin(x),e_=eu.y+em*(this.x-eu.x)+ef*(this.y-eu.y);return this.x=eu.x+ef*(this.x-eu.x)-em*(this.y-eu.y),this.y=e_,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},y.convert=function(x){return x instanceof y?x:Array.isArray(x)?new y(x[0],x[1]):x};let ek=Math.PI/180,eP=180/Math.PI,eL=[[0,0],[1,0],[1,1],[0,1]];function w(x){if(x<=0)return 0;if(x>=1)return 1;let eu=x*x,ef=eu*x;return 4*(x<.5?ef:3*(x-eu)+ef-.75)}function _(x,eu,ef,em){let e_=new f(x,eu,ef,em);return function(x){return e_.solve(x)}}let eR=_(.25,.1,.25,1);function S(x,eu,ef){return Math.min(ef,Math.max(eu,x))}function k(x,eu,ef){return(ef=S((ef-x)/(eu-x),0,1))*ef*(3-2*ef)}function I(x,eu,ef){let em=ef-eu,e_=((x-eu)%em+em)%em+eu;return e_===eu?ef:e_}function M(x,eu,ef){if(!x.length)return ef(null,[]);let em=x.length,e_=Array(x.length),eg=null;x.forEach((x,ex)=>{eu(x,(x,eu)=>{x&&(eg=x),e_[ex]=eu,0==--em&&ef(eg,e_)})})}function T(x){let eu=[];for(let ef in x)eu.push(x[ef]);return eu}function z(x,...eu){for(let ef of eu)for(let eu in ef)x[eu]=ef[eu];return x}let eB=1;function E(){return eB++}function C(){return function t(x){return x?(x^Math.random()*(16>>x/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function P(x){return x<=1?1:Math.pow(2,Math.ceil(Math.log(x)/Math.LN2))}function D(x){return!!x&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(x)}function V(x,eu){x.forEach(x=>{eu[x]&&(eu[x]=eu[x].bind(eu))})}function L(x,eu){return -1!==x.indexOf(eu,x.length-eu.length)}function F(x,eu,ef){let em={};for(let e_ in x)em[e_]=eu.call(ef||this,x[e_],e_,x);return em}function R(x,eu,ef){let em={};for(let e_ in x)eu.call(ef||this,x[e_],e_,x)&&(em[e_]=x[e_]);return em}function j(x){return Array.isArray(x)?x.map(j):"object"==typeof x&&x?F(x,j):x}let eO={};function U(x){eO[x]||("undefined"!=typeof console&&console.warn(x),eO[x]=!0)}function O(x,eu,ef){return(ef.y-x.y)*(eu.x-x.x)>(eu.y-x.y)*(ef.x-x.x)}function N(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function G(x){let eu={};if(x.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(x,ef,em,e_)=>{let eg=em||e_;return eu[ef]=!eg||eg.toLowerCase(),""}),eu["max-age"]){let x=parseInt(eu["max-age"],10);isNaN(x)?delete eu["max-age"]:eu["max-age"]=x}return eu}let eF=null;
1function X(x){if(null==eF){let eu=x.navigator?x.navigator.userAgent:null;eF=!!x.safari||!(!eu||!(/\b(iPad|iPhone|iPod)\b/.test(eu)||eu.match("Safari")&&!eu.match("Chrome")))}return eF}function K(x){try{let eu=eT[x];return eu.setItem("_mapbox_test_",1),eu.removeItem("_mapbox_test_"),!0}catch(x){return!1}}function Y(x,eu){return[x[4*eu],x[4*eu+1],x[4*eu+2],x[4*eu+3]]}let eU="mapbox-tiles",eV,eN,ej=500,eG=50;function et(){try{return eT.caches}catch(x){}}function rt(){et()&&!eV&&(eV=eT.caches.open(eU))}function nt(x){let eu=x.indexOf("?");if(eu<0)return x;let ef=function(x){let eu=x.indexOf("?");return eu>0?x.slice(eu+1).split("&"):[]}(x),em=ef.filter(x=>{let eu=x.split("=");return"language"===eu[0]||"worldview"===eu[0]});return em.length?`${x.slice(0,eu)}?${em.join("&")}`:x.slice(0,eu)}let eZ=1/0,e$={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(e$);let at=class at extends Error{constructor(x,eu,ef){401===eu&>(ef)&&(x+=": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes"),super(x),this.status=eu,this.url=ef}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}};let eq=N()?()=>self.worker&&self.worker.referrer:()=>("blob:"===eT.location.protocol?eT.parent:eT).location.href,lt=function(x,eu){var ef;if(!(/^file:/.test(ef=x.url)||/^file:/.test(eq())&&!/^\w+:/.test(ef))){if(eT.fetch&&eT.Request&&eT.AbortController&&eT.Request.prototype.hasOwnProperty("signal"))return function(x,eu){var ef;let em=new eT.AbortController,e_=new eT.Request(x.url,{method:x.method||"GET",body:x.body,credentials:x.credentials,headers:x.headers,referrer:eq(),referrerPolicy:x.referrerPolicy,signal:em.signal}),eg=!1,ex=!1,ev=(ef=e_.url).indexOf("sku=")>0&>(ef);"json"===x.type&&e_.headers.set("Accept","application/json");let u=(ef,em,eg)=>{if(ex)return;if(ef&&"SecurityError"!==ef.message&&U(ef),em&&eg)return c(em);let eb=Date.now();eT.fetch(e_).then(ef=>{if(ef.ok){let x=ev?ef.clone():null;return c(ef,x,eb)}return eu(new at(ef.statusText,ef.status,x.url))}).catch(ef=>{"AbortError"!==ef.name&&eu(Error(`${ef.message} ${x.url}`))})},c=(ef,em,ev)=>{("arrayBuffer"===x.type?ef.arrayBuffer():"json"===x.type?ef.json():ef.text()).then(x=>{ex||(em&&ev&&function(x,eu,ef){if(rt(),!eV)return;let em={status:eu.status,statusText:eu.statusText,headers:new eT.Headers};eu.headers.forEach((x,eu)=>em.headers.set(eu,x));let e_=G(eu.headers.get("Cache-Control")||"");if(e_["no-store"])return;e_["max-age"]&&em.headers.set("Expires",new Date(ef+1e3*e_["max-age"]).toUTCString());let eg=em.headers.get("Expires");eg&&(new Date(eg).getTime()-ef<42e4||function(x,eu){if(void 0===eN)try{new Response(new ReadableStream),eN=!0}catch(x){eN=!1}eN?eu(x.body):x.blob().then(eu)}(eu,eu=>{let ef=new eT.Response(eu,em);rt(),eV&&eV.then(eu=>eu.put(nt(x.url),ef)).catch(x=>U(x.message))}))}(e_,em,ev),eg=!0,eu(null,x,ef.headers.get("Cache-Control"),ef.headers.get("Expires")))}).catch(x=>{ex||eu(Error(x.message))})};return ev?function(x,eu){if(rt(),!eV)return eu(null);let ef=nt(x.url);eV.then(x=>{x.match(ef).then(em=>{let e_=function(x){if(!x)return!1;let eu=new Date(x.headers.get("Expires")||0),ef=G(x.headers.get("Cache-Control")||"");return eu>Date.now()&&!ef["no-cache"]}(em);x.delete(ef),e_&&x.put(ef,em.clone()),eu(null,em,e_)}).catch(eu)}).catch(eu)}(e_,u):u(null,null),{cancel:()=>{ex=!0,eg||em.abort()}}}(x,eu);if(N()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",x,eu,void 0,!0)}return function(x,eu){let ef=new eT.XMLHttpRequest;for(let eu in ef.open(x.method||"GET",x.url,!0),"arrayBuffer"===x.type&&(ef.responseType="arraybuffer"),x.headers)ef.setRequestHeader(eu,x.headers[eu]);return"json"===x.type&&(ef.responseType="text",ef.setRequestHeader("Accept","application/json")),ef.withCredentials="include"===x.credentials,ef.onerror=()=>{eu(Error(ef.statusText))},ef.onload=()=>{if((ef.status>=200&&ef.status<300||0===ef.status)&&null!==ef.response){let em=ef.response;if("json"===x.type)try{em=JSON.parse(ef.response)}catch(x){return eu(x)}
1eu(null,em,ef.getResponseHeader("Cache-Control"),ef.getResponseHeader("Expires"))}else eu(new at(ef.statusText,ef.status,x.url))},ef.send(x.body),{cancel:()=>ef.abort()}}(x,eu)},ut=function(x,eu){return lt(z(x,{type:"arrayBuffer"}),eu)},eW="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";ef=[],e_=0;let dt=function(x,eu){if(eM.supported&&(x.headers||(x.headers={}),x.headers.accept="image/webp,*/*"),e_>=eS.MAX_PARALLEL_IMAGE_REQUESTS){let em={requestParameters:x,callback:eu,cancelled:!1,cancel(){this.cancelled=!0}};return ef.push(em),em}e_++;let em=!1,a=()=>{if(!em)for(em=!0,e_--;ef.length&&e_<eS.MAX_PARALLEL_IMAGE_REQUESTS;){let x=ef.shift(),{requestParameters:eu,callback:em,cancelled:e_}=x;e_||(x.cancel=dt(eu,em).cancel)}},eg=ut(x,(x,ef,em,e_)=>{a(),x?eu(x):ef&&(eT.createImageBitmap?function(x,eu){let ef=new eT.Blob([new Uint8Array(x)],{type:"image/png"});eT.createImageBitmap(ef).then(x=>{eu(null,x)}).catch(x=>{eu(Error(`Could not load image because of ${x.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})}(ef,(x,ef)=>eu(x,ef,em,e_)):function(x,eu){let ef=new eT.Image,em=eT.URL;ef.onload=()=>{eu(null,ef),em.revokeObjectURL(ef.src),ef.onload=null,eT.requestAnimationFrame(()=>{ef.src=eW})},ef.onerror=()=>eu(Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));let e_=new eT.Blob([new Uint8Array(x)],{type:"image/png"});ef.src=x.byteLength?em.createObjectURL(e_):eW}(ef,(x,ef)=>eu(x,ef,em,e_)))});return{cancel:()=>{eg.cancel(),a()}}},eX="NO_ACCESS_TOKEN";function mt(x){return 0===x.indexOf("mapbox:")}function gt(x){return eS.API_URL_REGEX.test(x)}function xt(x){return eS.API_CDN_URL_REGEX.test(x)}function vt(x){return eS.API_STYLE_REGEX.test(x)&&!bt(x)}function bt(x){return eS.API_SPRITE_REGEX.test(x)}let eH=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function _t(x){let eu=x.match(eH);if(!eu)throw Error("Unable to parse URL object");return{protocol:eu[1],authority:eu[2],path:eu[3]||"/",params:eu[4]?eu[4].split("&"):[]}}function At(x){let eu=x.params.length?`?${x.params.join("&")}`:"";return`${x.protocol}://${x.authority}${x.path}${eu}`}function St(x){if(!x)return null;let eu=x.split(".");if(!eu||3!==eu.length)return null;try{return JSON.parse(decodeURIComponent(eT.atob(eu[1]).split("").map(x=>"%"+("00"+x.charCodeAt(0).toString(16)).slice(-2)).join("")))}catch(x){return null}}let kt=class kt{constructor(x){this.type=x,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(x){let eu=St(eS.ACCESS_TOKEN),ef="";return ef=eu&&eu.u?eT.btoa(encodeURIComponent(eu.u).replace(/%([0-9A-F]{2})/g,(x,eu)=>String.fromCharCode(Number("0x"+eu)))):eS.ACCESS_TOKEN||"",x?`mapbox.eventData.${x}:${ef}`:`mapbox.eventData:${ef}`}fetchEventData(){let x=K("localStorage"),eu=this.getStorageKey(),ef=this.getStorageKey("uuid");if(x)try{let x=eT.localStorage.getItem(eu);x&&(this.eventData=JSON.parse(x));let em=eT.localStorage.getItem(ef);em&&(this.anonId=em)}catch(x){U("Unable to read from LocalStorage")}}saveEventData(){let x=K("localStorage"),eu=this.getStorageKey(),ef=this.getStorageKey("uuid");if(x)try{eT.localStorage.setItem(ef,this.anonId),Object.keys(this.eventData).length>=1&&eT.localStorage.setItem(eu,JSON.stringify(this.eventData))}catch(x){U("Unable to write to LocalStorage")}}processRequests(x){}postEvent(x,eu,ef,em){if(!eS.EVENTS_URL)return;let e_=_t(eS.EVENTS_URL);e_.params.push(`access_token=${em||eS.ACCESS_TOKEN||""}`);let eg={event:this.type,created:new Date(x).toISOString()},ex=eu?z(eg,eu):eg,ev={url:At(e_),headers:{"Content-Type":"text/plain"},body:JSON.stringify([ex])};this.pendingRequest=lt(z(ev,{method:"POST"}),x=>{this.pendingRequest=null,ef(x),this.saveEventData(),this.processRequests(em)})}queueRequest(x,eu){this.queue.push(x),this.processRequests(eu)}};let eY=new class extends kt{constructor(x){super("appUserTurnstile"),this._customAccessToken=x}postTurnstileEvent(x,eu){eS.EVENTS_URL&&eS.ACCESS_TOKEN&&Array.isArray(x)&&x.some(x=>mt(x)||gt(x))&&this.queueRequest(Date.now(),eu)}
1processRequests(x){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();let eu=St(eS.ACCESS_TOKEN),ef=eu?eu.u:eS.ACCESS_TOKEN,em=ef!==this.eventData.tokenU;D(this.anonId)||(this.anonId=C(),em=!0);let e_=this.queue.shift();if(this.eventData.lastSuccess){let x=new Date(this.eventData.lastSuccess),eu=new Date(e_),ef=(e_-this.eventData.lastSuccess)/864e5;em=em||ef>=1||ef<-1||x.getDate()!==eu.getDate()}else em=!0;em?this.postEvent(e_,{sdkIdentifier:"mapbox-gl-js",sdkVersion:eE,skuId:"01","enabled.telemetry":!1,userId:this.anonId},x=>{x||(this.eventData.lastSuccess=e_,this.eventData.tokenU=ef)},x):this.processRequests()}},eJ=eY.postTurnstileEvent.bind(eY),eK=new class extends kt{constructor(){super("map.load"),this.success={},this.skuToken=""}postMapLoadEvent(x,eu,ef,em){this.skuToken=eu,this.errorCb=em,eS.EVENTS_URL&&(ef||eS.ACCESS_TOKEN?this.queueRequest({id:x,timestamp:Date.now()},ef):this.errorCb(Error(eX)))}processRequests(x){if(this.pendingRequest||0===this.queue.length)return;let{id:eu,timestamp:ef}=this.queue.shift();eu&&this.success[eu]||(this.anonId||this.fetchEventData(),D(this.anonId)||(this.anonId=C()),this.postEvent(ef,{sdkIdentifier:"mapbox-gl-js",sdkVersion:eE,skuId:"01",skuToken:this.skuToken,userId:this.anonId},x=>{x?this.errorCb(x):eu&&(this.success[eu]=!0)},x))}},eQ=eK.postMapLoadEvent.bind(eK),e0=new class extends kt{constructor(){super("gljs.performance")}postPerformanceEvent(x,eu){eS.EVENTS_URL&&(x||eS.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:eu},x)}processRequests(x){if(this.pendingRequest||0===this.queue.length)return;let{timestamp:eu,performanceData:ef}=this.queue.shift(),em=function(x){let eu=eT.performance.getEntriesByType("resource"),ef=eT.performance.getEntriesByType("mark"),em=function(x){let eu={};if(x){for(let ef in x)if("other"!==ef)for(let em of x[ef]){let x=`${ef}ResolveRangeMin`,e_=`${ef}ResolveRangeMax`,eg=`${ef}RequestCount`,ex=`${ef}RequestCachedCount`;eu[x]=Math.min(eu[x]||1/0,em.startTime),eu[e_]=Math.max(eu[e_]||-1/0,em.responseEnd);let o=x=>{void 0===eu[x]&&(eu[x]=0),++eu[x]};void 0!==em.transferSize&&0===em.transferSize&&o(ex),o(eg)}}return eu}(function(x,eu){let ef={};if(x)for(let em of x){let x=eu(em);void 0===ef[x]&&(ef[x]=[]),ef[x].push(em)}return ef}(eu,Ft)),e_=eT.devicePixelRatio,eg=eT.navigator.connection||eT.navigator.mozConnection||eT.navigator.webkitConnection,ex={counters:[],metadata:[],attributes:[]},u=(x,eu,ef)=>{null!=ef&&x.push({name:eu,value:ef.toString()})};for(let x in em)u(ex.counters,x,em[x]);if(x.interactionRange[0]!==1/0&&x.interactionRange[1]!==-1/0&&(u(ex.counters,"interactionRangeMin",x.interactionRange[0]),u(ex.counters,"interactionRangeMax",x.interactionRange[1])),ef)for(let x of Object.keys(e4)){let eu=e4[x],em=ef.find(x=>x.name===eu);em&&u(ex.counters,eu,em.startTime)}return u(ex.counters,"visibilityHidden",x.visibilityHidden),u(ex.attributes,"style",function(x){if(x)for(let eu of x){let x=eu.name.split("?")[0];if(vt(x)){let eu=x.split("/").slice(-2);if(2===eu.length)return`mapbox://styles/${eu[0]}/${eu[1]}`}}}(eu)),u(ex.attributes,"terrainEnabled",x.terrainEnabled?"true":"false"),u(ex.attributes,"fogEnabled",x.fogEnabled?"true":"false"),u(ex.attributes,"projection",x.projection),u(ex.attributes,"zoom",x.zoom),u(ex.metadata,"devicePixelRatio",e_),u(ex.metadata,"connectionEffectiveType",eg?eg.effectiveType:void 0),u(ex.metadata,"navigatorUserAgent",eT.navigator.userAgent),u(ex.metadata,"screenWidth",eT.screen.width),u(ex.metadata,"screenHeight",eT.screen.height),u(ex.metadata,"windowWidth",eT.innerWidth),u(ex.metadata,"windowHeight",eT.innerHeight),u(ex.metadata,"mapWidth",x.width/e_),u(ex.metadata,"mapHeight",x.height/e_),u(ex.metadata,"webglRenderer",x.renderer),u(ex.metadata,"webglVendor",x.vendor),u(ex.metadata,"sdkVersion",eE),u(ex.metadata,"sdkIdentifier","mapbox-gl-js"),ex}(ef);for(let x of em.metadata);for(let x of em.counters);for(let x of em.attributes);this.postEvent(eu,em,()=>{},x)}},e1=e0.postPerformanceEvent.bind(e0),e2=new class extends kt{constructor(){super("map.auth"),this.success={},this.skuToken=""}getSession(x,eu,ef,em){if(!eS.API_URL||!eS.SESSION_PATH)return;let e_=_t(eS.API_URL+eS.SESSION_PATH);e_.params.push(`sku=${eu||""}`),e_.params.push(`access_token=${em||eS.ACCESS_TOKEN||""}`);let eg={url:At(e_),headers:{"Content-Type":"text/plain"}};this.pendingRequest=lt(z(eg,{method:"GET"}),x=>{this.pendingRequest=null,ef(x),this.saveEventData(),this.processRequests(em)})}getSessionAPI(x,eu,ef,em){this.skuToken=eu,this.errorCb=em,eS.SESSION_PATH&&eS.API_URL&&(ef||eS.ACCESS_TOKEN?this.queueRequest({id:x,timestamp:Date.now()},ef):this.errorCb(Error(eX)))}
1processRequests(x){if(this.pendingRequest||0===this.queue.length)return;let{id:eu,timestamp:ef}=this.queue.shift();eu&&this.success[eu]||this.getSession(ef,this.skuToken,x=>{x?this.errorCb(x):eu&&(this.success[eu]=!0)},x)}},e3=e2.getSessionAPI.bind(e2),e5=new Set,e4={create:"create",load:"load",fullLoad:"fullLoad"};function Ft(x){let eu=x.name.split("?")[0];return xt(eu)&&eu.includes("mapbox-gl.js")?"javascript":xt(eu)&&eu.includes("mapbox-gl.css")?"css":eS.API_FONTS_REGEX.test(eu)?"fontRange":bt(eu)?"sprite":vt(eu)?"style":eS.API_TILEJSON_REGEX.test(eu)?"tilejson":"other"}let e6=eT.performance;function jt(x){let eu=x?x.url.toString():void 0;return e6.getEntriesByName(eu)}let e8={now:()=>void 0!==ev?ev:eT.performance.now(),setNow(x){ev=x},restoreNow(){ev=void 0},frame(x){let eu=eT.requestAnimationFrame(x);return{cancel:()=>eT.cancelAnimationFrame(eu)}},getImageData(x,eu=0){let{width:ef,height:em}=x;eb||(eb=eT.document.createElement("canvas"));let e_=eb.getContext("2d",{willReadFrequently:!0});if(!e_)throw Error("failed to create canvas 2d context");return(ef>eb.width||em>eb.height)&&(eb.width=ef,eb.height=em),e_.clearRect(-eu,-eu,ef+2*eu,em+2*eu),e_.drawImage(x,0,0,ef,em),e_.getImageData(-eu,-eu,ef+2*eu,em+2*eu)},resolveURL:x=>(eg||(eg=eT.document.createElement("a")),eg.href=x,eg.href),get devicePixelRatio(){return eT.devicePixelRatio},get prefersReducedMotion(){return!!eT.matchMedia&&(null==ex&&(ex=eT.matchMedia("(prefers-reduced-motion: reduce)")),ex.matches)}};function Gt(x,eu,ef){ef[x]&&-1!==ef[x].indexOf(eu)||(ef[x]=ef[x]||[],ef[x].push(eu))}function Zt(x,eu,ef){if(ef&&ef[x]){let em=ef[x].indexOf(eu);-1!==em&&ef[x].splice(em,1)}}let Xt=class Xt{constructor(x,eu={}){z(this,eu),this.type=x}};let Kt=class Kt extends Xt{constructor(x,eu={}){super("error",z({error:x},eu))}};let Yt=class Yt{on(x,eu){return this._listeners=this._listeners||{},Gt(x,eu,this._listeners),this}off(x,eu){return Zt(x,eu,this._listeners),Zt(x,eu,this._oneTimeListeners),this}once(x,eu){return eu?(this._oneTimeListeners=this._oneTimeListeners||{},Gt(x,eu,this._oneTimeListeners),this):new Promise(eu=>this.once(x,eu))}fire(x,eu){"string"==typeof x&&(x=new Xt(x,eu||{}));let ef=x.type;if(this.listens(ef)){x.target=this;let eu=this._listeners&&this._listeners[ef]?this._listeners[ef].slice():[];for(let ef of eu)ef.call(this,x);let em=this._oneTimeListeners&&this._oneTimeListeners[ef]?this._oneTimeListeners[ef].slice():[];for(let eu of em)Zt(ef,eu,this._oneTimeListeners),eu.call(this,x);let e_=this._eventedParent;e_&&(z(x,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),e_.fire(x))}
1else x instanceof Kt&&console.error(x.error);return this}listens(x){return!!(this._listeners&&this._listeners[x]&&this._listeners[x].length>0||this._oneTimeListeners&&this._oneTimeListeners[x]&&this._oneTimeListeners[x].length>0||this._eventedParent&&this._eventedParent.listens(x))}setEventedParent(x,eu){return this._eventedParent=x,this._eventedParentData=eu,this}};var e9=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"type":"array","value":"layer"}},"sources":{"*":{"type":"source"}},"source":["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"attribution":{"type":"string"},"promoteId":{"type":"promoteId"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"scheme":{"type":"enum","values":{"xyz":{},"tms":{}},"default":"xyz"},"attribution":{"type":"string"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{}}},"url":{"type":"string"},"tiles":{"type":"array","value":"string"},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129]},"minzoom":{"type":"number","default":0},"maxzoom":{"type":"number","default":22},"tileSize":{"type":"number","default":512,"units":"pixels"},"attribution":{"type":"string"},"encoding":{"type":"enum","values":{"terrarium":{},"mapbox":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0},"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"metadata":{"type":"*"},"source":{"type":"string"},"source-layer":{"type":"string"},"minzoom":{"type":"number","minimum":0,"maximum":24},"maxzoom":{"type":"number","minimum":0,"maximum":24},"filter":{"type":"filter"},"layout":{"type":"layout"},"paint":{"type":"paint"}},"layout":["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_circle":{"circle-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","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"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1
vendor: 16,128 bytes, line 1
1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"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":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{"type":"enum","values":{"none":{},"width":{},"height":{},"both":{}},"default":"none","requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{},"left":{},"right":{},"top":{},"bottom":{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},"default":"center","requires":["text-field",{"!":"text-variable-anchor"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","requires":["text-field",{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"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_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":
vendor: 3,713 bytes, line 1
1false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}
1,"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}},"property-type":{"data-driven":{"type":"property-type"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}');function Wt(x,...eu){for(let ef of eu)for(let eu in ef)x[eu]=ef[eu];return x}function Jt(x){return x instanceof Number||x instanceof String||x instanceof Boolean?x.valueOf():x}function Qt(x){if(Array.isArray(x))return x.map(Qt);if(x instanceof Object&&!(x instanceof Number||x instanceof String||x instanceof Boolean)){let eu={};for(let ef in x)eu[ef]=Qt(x[ef]);return eu}return Jt(x)}
1var e7=class extends Error{constructor(x,eu){super(eu),this.message=eu,this.key=x}};let re=class re{constructor(x,eu=[]){for(let[ef,em]of(this.parent=x,this.bindings={},eu))this.bindings[ef]=em}concat(x){return new re(this,x)}get(x){if(this.bindings[x])return this.bindings[x];if(this.parent)return this.parent.get(x);throw Error(`${x} not found in scope.`)}has(x){return!!this.bindings[x]||!!this.parent&&this.parent.has(x)}};let tt={kind:"null"},tn={kind:"number"},ta={kind:"string"},th={kind:"boolean"},tu={kind:"color"},tc={kind:"object"},tm={kind:"value"},t_={kind:"collator"},tg={kind:"formatted"},tx={kind:"resolvedImage"};function de(x,eu){return{kind:"array",itemType:x,N:eu}}function ye(x){if("array"===x.kind){let eu=ye(x.itemType);return"number"==typeof x.N?`array<${eu}, ${x.N}>`:"value"===x.itemType.kind?"array":`array<${eu}>`}return x.kind}let tv=[tt,tn,ta,th,tu,tg,tc,de(tm),tx];function ge(x,eu){if("error"===eu.kind)return null;if("array"===x.kind){if("array"===eu.kind&&(0===eu.N&&"value"===eu.itemType.kind||!ge(x.itemType,eu.itemType))&&("number"!=typeof x.N||x.N===eu.N))return null}else{if(x.kind===eu.kind)return null;if("value"===x.kind){for(let x of tv)if(!ge(x,eu))return null}}return`Expected ${ye(x)} but found ${ye(eu)} instead.`}function xe(x,eu){return eu.some(eu=>eu.kind===x.kind)}function ve(x,eu){return eu.some(eu=>"null"===eu?null===x:"array"===eu?Array.isArray(x):"object"===eu?x&&!Array.isArray(x)&&"object"==typeof x:eu===typeof x)}var tb,tw={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function _e(x){return(x=Math.round(x))<0?0:x>255?255:x}function Ae(x){return _e("%"===x[x.length-1]?parseFloat(x)/100*255:parseInt(x))}function Se(x){var eu;return(eu="%"===x[x.length-1]?parseFloat(x)/100:parseFloat(x))<0?0:eu>1?1:eu}function ke(x,eu,ef){return ef<0?ef+=1:ef>1&&(ef-=1),6*ef<1?x+(eu-x)*ef*6:2*ef<1?eu:3*ef<2?x+(eu-x)*(2/3-ef)*6:x}try{tb=({}).parseCSSColor=function(x){var eu,ef=x.replace(/ /g,"").toLowerCase();if(ef in tw)return tw[ef].slice();if("#"===ef[0])return 4===ef.length?(eu=parseInt(ef.substr(1),16))>=0&&eu<=4095?[(3840&eu)>>4|(3840&eu)>>8,240&eu|(240&eu)>>4,15&eu|(15&eu)<<4,1]:null:7===ef.length&&(eu=parseInt(ef.substr(1),16))>=0&&eu<=16777215?[(16711680&eu)>>16,(65280&eu)>>8,255&eu,1]:null;var em=ef.indexOf("("),e_=ef.indexOf(")");if(-1!==em&&e_+1===ef.length){var eg=ef.substr(0,em),ex=ef.substr(em+1,e_-(em+1)).split(","),ev=1;switch(eg){case"rgba":if(4!==ex.length)break;ev=Se(ex.pop());case"rgb":return 3!==ex.length?null:[Ae(ex[0]),Ae(ex[1]),Ae(ex[2]),ev];case"hsla":if(4!==ex.length)break;ev=Se(ex.pop());case"hsl":if(3!==ex.length)break;var eb=(parseFloat(ex[0])%360+360)%360/360,ew=Se(ex[1]),eT=Se(ex[2]),eE=eT<=.5?eT*(ew+1):eT+ew-eT*ew,eS=2*eT-eE;return[_e(255*ke(eS,eE,eb+1/3)),_e(255*ke(eS,eE,eb)),_e(255*ke(eS,eE,eb-1/3)),ev]}}return null}}catch(x){}let Ie=class Ie{constructor(x,eu,ef,em=1){this.r=x,this.g=eu,this.b=ef,this.a=em}static parse(x){if(!x)return;if(x instanceof Ie)return x;if("string"!=typeof x)return;let eu=tb(x);return eu?new Ie(eu[0]/255*eu[3],eu[1]/255*eu[3],eu[2]/255*eu[3],eu[3]):void 0}toString(){let[x,eu,ef,em]=this.toArray();return`rgba(${Math.round(x)},${Math.round(eu)},${Math.round(ef)},${em})`}toArray(){let{r:x,g:eu,b:ef,a:em}=this;return 0===em?[0,0,0,0]:[255*x/em,255*eu/em,255*ef/em,em]}toArray01(){let{r:x,g:eu,b:ef,a:em}=this;return 0===em?[0,0,0,0]:[x/em,eu/em,ef/em,em]}toArray01PremultipliedAlpha(){let{r:x,g:eu,b:ef,a:em}=this;return[x,eu,ef,em]}};Ie.black=new Ie(0,0,0,1),Ie.white=new Ie(1,1,1,1),Ie.transparent=new Ie(0,0,0,0),Ie.red=new Ie(1,0,0,1),Ie.blue=new Ie(0,0,1,1);let Te=class Te{constructor(x,eu,ef){this.sensitivity=x?eu?"variant":"case":eu?"accent":"base",this.locale=ef,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(x,eu){return this.collator.compare(x,eu)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};let ze=class ze{constructor(x,eu,ef,em,e_){this.text=x.normalize?x.normalize():x,this.image=eu,this.scale=ef,this.fontStack=em,this.textColor=e_}};
1let Be=class Be{constructor(x){this.sections=x}static fromString(x){return new Be([new ze(x,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(x=>0!==x.text.length||x.image&&0!==x.image.name.length)}static factory(x){return x instanceof Be?x:Be.fromString(x)}toString(){return 0===this.sections.length?"":this.sections.map(x=>x.text).join("")}serialize(){let x=["format"];for(let eu of this.sections){if(eu.image){x.push(["image",eu.image.name]);continue}x.push(eu.text);let ef={};eu.fontStack&&(ef["text-font"]=["literal",eu.fontStack.split(",")]),eu.scale&&(ef["font-scale"]=eu.scale),eu.textColor&&(ef["text-color"]=["rgba"].concat(eu.textColor.toArray())),x.push(ef)}return x}};let Ee=class Ee{constructor(x){this.name=x.name,this.available=x.available}toString(){return this.name}static fromString(x){return x?new Ee({name:x,available:!1}):null}serialize(){return["image",this.name]}};function Ce(x,eu,ef,em){return"number"==typeof x&&x>=0&&x<=255&&"number"==typeof eu&&eu>=0&&eu<=255&&"number"==typeof ef&&ef>=0&&ef<=255?void 0===em||"number"==typeof em&&em>=0&&em<=1?null:`Invalid rgba value [${[x,eu,ef,em].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof em?[x,eu,ef,em]:[x,eu,ef]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Pe(x){if(null===x||"string"==typeof x||"boolean"==typeof x||"number"==typeof x||x instanceof Ie||x instanceof Te||x instanceof Be||x instanceof Ee)return!0;if(Array.isArray(x)){for(let eu of x)if(!Pe(eu))return!1;return!0}if("object"==typeof x){for(let eu in x)if(!Pe(x[eu]))return!1;return!0}return!1}function De(x){if(null===x)return tt;if("string"==typeof x)return ta;if("boolean"==typeof x)return th;if("number"==typeof x)return tn;if(x instanceof Ie)return tu;if(x instanceof Te)return t_;if(x instanceof Be)return tg;if(x instanceof Ee)return tx;if(Array.isArray(x)){let eu;let ef=x.length;for(let ef of x){let x=De(ef);if(eu){if(eu===x)continue;eu=tm;break}eu=x}return de(eu||tm,ef)}return tc}function Ve(x){let eu=typeof x;return null===x?"":"string"===eu||"number"===eu||"boolean"===eu?String(x):x instanceof Ie||x instanceof Be||x instanceof Ee?x.toString():JSON.stringify(x)}let Le=class Le{constructor(x,eu){this.type=x,this.value=eu}static parse(x,eu){if(2!==x.length)return eu.error(`'literal' expression requires exactly one argument, but found ${x.length-1} instead.`);if(!Pe(x[1]))return eu.error("invalid value");let ef=x[1],em=De(ef),e_=eu.expectedType;return"array"===em.kind&&0===em.N&&e_&&"array"===e_.kind&&("number"!=typeof e_.N||0===e_.N)&&(em=e_),new Le(em,ef)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof Ie?["rgba"].concat(this.value.toArray()):this.value instanceof Be?this.value.serialize():this.value}};var tT=class{constructor(x){this.name="ExpressionEvaluationError",this.message=x}toJSON(){return this.message}};let tE={string:ta,number:tn,boolean:th,object:tc};let $e=class $e{constructor(x,eu){this.type=x,this.args=eu}static parse(x,eu){if(x.length<2)return eu.error("Expected at least one argument.");let ef,em=1,e_=x[0];if("array"===e_){let e_,eg;if(x.length>2){let ef=x[1];if("string"!=typeof ef||!(ef in tE)||"object"===ef)return eu.error('The item type argument of "array" must be one of string, number, boolean',1);e_=tE[ef],em++}else e_=tm;if(x.length>3){if(null!==x[2]&&("number"!=typeof x[2]||x[2]<0||x[2]!==Math.floor(x[2])))return eu.error('The length argument to "array" must be a positive integer literal',2);eg=x[2],em++}ef=de(e_,eg)}else ef=tE[e_];let eg=[];for(;em<x.length;em++){let ef=eu.parse(x[em],em,tm);if(!ef)return null;eg.push(ef)}return new $e(ef,eg)}evaluate(x){for(let eu=0;eu<this.args.length;eu++){let ef=this.args[eu].evaluate(x);if(!ge(this.type,De(ef)))return ef;if(eu===this.args.length-1)throw new tT(`Expected value to be of type ${ye(this.type)}, but found ${ye(De(ef))} instead.`)}return null}eachChild(x){this.args.forEach(x)}outputDefined(){return this.args.every(x=>x.outputDefined())}serialize(){let x=this.type,eu=[x.kind];if("array"===x.kind){let ef=x.itemType;if("string"===ef.kind||"number"===ef.kind||"boolean"===ef.kind){eu.push(ef.kind);let em=x.N;("number"==typeof em||this.args.length>1)&&eu.push(em)}}return eu.concat(this.args.map(x=>x.serialize()))}};
1let Oe=class Oe{constructor(x){this.type=tg,this.sections=x}static parse(x,eu){if(x.length<2)return eu.error("Expected at least one argument.");let ef=x[1];if(!Array.isArray(ef)&&"object"==typeof ef)return eu.error("First argument must be an image or text section.");let em=[],e_=!1;for(let ef=1;ef<=x.length-1;++ef){let eg=x[ef];if(e_&&"object"==typeof eg&&!Array.isArray(eg)){e_=!1;let x=null;if(eg["font-scale"]&&!(x=eu.parse(eg["font-scale"],1,tn)))return null;let ef=null;if(eg["text-font"]&&!(ef=eu.parse(eg["text-font"],1,de(ta))))return null;let ex=null;if(eg["text-color"]&&!(ex=eu.parse(eg["text-color"],1,tu)))return null;let ev=em[em.length-1];ev.scale=x,ev.font=ef,ev.textColor=ex}else{let eg=eu.parse(x[ef],1,tm);if(!eg)return null;let ex=eg.type.kind;if("string"!==ex&&"value"!==ex&&"null"!==ex&&"resolvedImage"!==ex)return eu.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");e_=!0,em.push({content:eg,scale:null,font:null,textColor:null})}}return new Oe(em)}evaluate(x){return new Be(this.sections.map(eu=>{let ef=eu.content.evaluate(x);return De(ef)===tx?new ze("",ef,null,null,null):new ze(Ve(ef),null,eu.scale?eu.scale.evaluate(x):null,eu.font?eu.font.evaluate(x).join(","):null,eu.textColor?eu.textColor.evaluate(x):null)}))}eachChild(x){for(let eu of this.sections)x(eu.content),eu.scale&&x(eu.scale),eu.font&&x(eu.font),eu.textColor&&x(eu.textColor)}outputDefined(){return!1}serialize(){let x=["format"];for(let eu of this.sections){x.push(eu.content.serialize());let ef={};eu.scale&&(ef["font-scale"]=eu.scale.serialize()),eu.font&&(ef["text-font"]=eu.font.serialize()),eu.textColor&&(ef["text-color"]=eu.textColor.serialize()),x.push(ef)}return x}};let qe=class qe{constructor(x){this.type=tx,this.input=x}static parse(x,eu){if(2!==x.length)return eu.error("Expected two arguments.");let ef=eu.parse(x[1],1,ta);return ef?new qe(ef):eu.error("No image name provided.")}evaluate(x){let eu=this.input.evaluate(x),ef=Ee.fromString(eu);return ef&&x.availableImages&&(ef.available=x.availableImages.indexOf(eu)>-1),ef}eachChild(x){x(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}};let tS={"to-boolean":th,"to-color":tu,"to-number":tn,"to-string":ta};let Ge=class Ge{constructor(x,eu){this.type=x,this.args=eu}static parse(x,eu){if(x.length<2)return eu.error("Expected at least one argument.");let ef=x[0];if(("to-boolean"===ef||"to-string"===ef)&&2!==x.length)return eu.error("Expected one argument.");let em=tS[ef],e_=[];for(let ef=1;ef<x.length;ef++){let em=eu.parse(x[ef],ef,tm);if(!em)return null;e_.push(em)}return new Ge(em,e_)}evaluate(x){if("boolean"===this.type.kind)return!!this.args[0].evaluate(x);if("color"===this.type.kind){let eu,ef;for(let em of this.args){if(eu=em.evaluate(x),ef=null,eu instanceof Ie)return eu;if("string"==typeof eu){let ef=x.parseColor(eu);if(ef)return ef}else if(Array.isArray(eu)&&!(ef=eu.length<3||eu.length>4?`Invalid rbga value ${JSON.stringify(eu)}: expected an array containing either three or four numeric values.`:Ce(eu[0],eu[1],eu[2],eu[3])))return new Ie(eu[0]/255,eu[1]/255,eu[2]/255,eu[3])}throw new tT(ef||`Could not parse color from value '${"string"==typeof eu?eu:String(JSON.stringify(eu))}'`)}if("number"===this.type.kind){let eu=null;for(let ef of this.args){if(null===(eu=ef.evaluate(x)))return 0;let em=Number(eu);if(!isNaN(em))return em}throw new tT(`Could not convert ${JSON.stringify(eu)} to number.`)}return"formatted"===this.type.kind?Be.fromString(Ve(this.args[0].evaluate(x))):"resolvedImage"===this.type.kind?Ee.fromString(Ve(this.args[0].evaluate(x))):Ve(this.args[0].evaluate(x))}eachChild(x){this.args.forEach(x)}outputDefined(){return this.args.every(x=>x.outputDefined())}serialize(){if("formatted"===this.type.kind)return new Oe([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new qe(this.args[0]).serialize();let x=[`to-${this.type.kind}`];return this.eachChild(eu=>{x.push(eu.serialize())}),x}};let tM=["Unknown","Point","LineString","Polygon"];var tI=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?tM[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||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){let x=this.featureDistanceData.center,eu=this.featureDistanceData.scale,{x:ef,y:em}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(ef*eu-x[0])+this.featureDistanceData.bearing[1]*(em*eu-x[1])}return 0}parseColor(x){let eu=this._parseColorCache[x];return eu||(eu=this._parseColorCache[x]=Ie.parse(x)),eu}};let Ye=class Ye{constructor(x,eu,ef,em){this.name=x,this.type=eu,this._evaluate=ef,this.args=em}evaluate(x){return this._evaluate(x,this.args)}
1eachChild(x){this.args.forEach(x)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(x=>x.serialize()))}static parse(x,eu){let ef=x[0],em=Ye.definitions[ef];if(!em)return eu.error(`Unknown expression "${ef}". If you wanted a literal array, use ["literal", [...]].`,0);let e_=Array.isArray(em)?em[0]:em.type,eg=Array.isArray(em)?[[em[1],em[2]]]:em.overloads,ex=eg.filter(([eu])=>!Array.isArray(eu)||eu.length===x.length-1),ev=null;for(let[em,eg]of ex){ev=new tA(eu.registry,eu.path,null,eu.scope);let ex=[],eb=!1;for(let eu=1;eu<x.length;eu++){let ef=x[eu],e_=Array.isArray(em)?em[eu-1]:em.type,eg=ev.parse(ef,1+ex.length,e_);if(!eg){eb=!0;break}ex.push(eg)}if(!eb){if(Array.isArray(em)&&em.length!==ex.length)ev.error(`Expected ${em.length} arguments, but found ${ex.length} instead.`);else{for(let x=0;x<ex.length;x++){let eu=Array.isArray(em)?em[x]:em.type,ef=ex[x];ev.concat(x+1).checkSubtype(eu,ef.type)}if(0===ev.errors.length)return new Ye(ef,e_,eg,ex)}}}if(1===ex.length)eu.errors.push(...ev.errors);else{let ef=(ex.length?ex:eg).map(([x])=>Array.isArray(x)?`(${x.map(ye).join(", ")})`:`(${ye(x.type)}...)`).join(" | "),em=[];for(let ef=1;ef<x.length;ef++){let e_=eu.parse(x[ef],1+em.length);if(!e_)return null;em.push(ye(e_.type))}eu.error(`Expected arguments of type ${ef}, but found (${em.join(", ")}) instead.`)}return null}static register(x,eu){for(let ef in Ye.definitions=eu,eu)x[ef]=Ye}};let We=class We{constructor(x,eu,ef){this.type=t_,this.locale=ef,this.caseSensitive=x,this.diacriticSensitive=eu}static parse(x,eu){if(2!==x.length)return eu.error("Expected one argument.");let ef=x[1];if("object"!=typeof ef||Array.isArray(ef))return eu.error("Collator options argument must be an object.");let em=eu.parse(void 0!==ef["case-sensitive"]&&ef["case-sensitive"],1,th);if(!em)return null;let e_=eu.parse(void 0!==ef["diacritic-sensitive"]&&ef["diacritic-sensitive"],1,th);if(!e_)return null;let eg=null;return!ef.locale||(eg=eu.parse(ef.locale,1,ta))?new We(em,e_,eg):null}evaluate(x){return new Te(this.caseSensitive.evaluate(x),this.diacriticSensitive.evaluate(x),this.locale?this.locale.evaluate(x):null)}eachChild(x){x(this.caseSensitive),x(this.diacriticSensitive),this.locale&&x(this.locale)}outputDefined(){return!1}serialize(){let x={};return x["case-sensitive"]=this.caseSensitive.serialize(),x["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(x.locale=this.locale.serialize()),["collator",x]}};function Qe(x,eu){x[0]=Math.min(x[0],eu[0]),x[1]=Math.min(x[1],eu[1]),x[2]=Math.max(x[2],eu[0]),x[3]=Math.max(x[3],eu[1])}function tr(x,eu){return!(x[0]<=eu[0]||x[2]>=eu[2]||x[1]<=eu[1]||x[3]>=eu[3])}function nr(x,eu){var ef,em;let e_=!1;for(let eg=0,ex=eu.length;eg<ex;eg++){let ex=eu[eg];for(let eu=0,eg=ex.length;eu<eg-1;eu++){if(function(x,eu,ef){let em=x[0]-eu[0],e_=x[1]-eu[1],eg=x[0]-ef[0],ex=x[1]-ef[1];return em*ex-eg*e_==0&&em*eg<=0&&e_*ex<=0}(x,ex[eu],ex[eu+1]))return!1;(ef=ex[eu])[1]>x[1]!=(em=ex[eu+1])[1]>x[1]&&x[0]<(em[0]-ef[0])*(x[1]-ef[1])/(em[1]-ef[1])+ef[0]&&(e_=!e_)}}return e_}function sr(x,eu,ef,em){let e_=em[0]-ef[0],eg=em[1]-ef[1],ex=(x[0]-ef[0])*eg-e_*(x[1]-ef[1]),ev=(eu[0]-ef[0])*eg-e_*(eu[1]-ef[1]);return ex>0&&ev<0||ex<0&&ev>0}function or(x,eu){for(let ef=0;ef<x.length;++ef)if(!nr(x[ef],eu))return!1;for(let ef=0;ef<x.length-1;++ef)if(function(x,eu,ef){var em,e_,eg,ex;for(let ev of ef)for(let ef=0;ef<ev.length-1;++ef)if(0!=(eg=[(e_=ev[ef+1])[0]-(em=ev[ef])[0],e_[1]-em[1]])[0]*(ex=[eu[0]-x[0],eu[1]-x[1]])[1]-eg[1]*ex[0]&&sr(x,eu,em,e_)&&sr(em,e_,x,eu))return!0;return!1}(x[ef],x[ef+1],eu))return!1;return!0}function ur(x,eu,ef){let em=[];for(let e_=0;e_<x.length;e_++){let eg=[];for(let em=0;em<x[e_].length;em++){let ex=function(x,eu){let ef=(180+x[0])/360,em=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+x[1]*Math.PI/360)))/360,e_=Math.pow(2,eu.z);return[Math.round(ef*e_*8192),Math.round(em*e_*8192)]}(x[e_][em],ef);Qe(eu,ex),eg.push(ex)}em.push(eg)}return em}function cr(x,eu,ef){let em=[];for(let e_=0;e_<x.length;e_++){let eg=ur(x[e_],eu,ef);em.push(eg)}return em}function hr(x,eu,ef,em){if(x[0]<ef[0]||x[0]>ef[2]){let eu=.5*em,e_=x[0]-ef[0]>eu?-em:ef[0]-x[0]>eu?em:0;0===e_&&(e_=x[0]-ef[2]>eu?-em:ef[2]-x[0]>eu?em:0),x[0]+=e_}Qe(eu,x)}function pr(x,eu,ef,em){let e_=8192*Math.pow(2,em.z),eg=[8192*em.x,8192*em.y],ex=[];if(!x)return ex;for(let em of x)for(let x of em){let em=[x.x+eg[0],x.y+eg[1]];hr(em,eu,ef,e_),ex.push(em)}return ex}function fr(x,eu,ef,em){let e_=8192*Math.pow(2,em.z),eg=[8192*em.x,8192*em.y],ex=[];if(!x)return ex;for(let ef of x){let x=[];for(let em of ef){let ef=[em.x+eg[0],em.y+eg[1]];Qe(eu,ef),x.push(ef)}ex.push(x)}if(eu[2]-eu[0]<=e_/2)for(let x of(eu[0]=eu[1]=1/0,eu[2]=eu[3]=-1/0,ex))for(let em of x)hr(em,eu,ef,e_);return ex}let dr=class dr{constructor(x,eu){this.type=th,this.geojson=x,this.geometries=eu}static parse(x,eu){if(2!==x.length)return eu.error(`'within' expression requires exactly one argument, but found ${x.length-1} instead.`);if(Pe(x[1])){let eu=x[1];if("FeatureCollection"===eu.type)for(let x=0;x<eu.features.length;++x){let ef=eu.features[x].geometry.type;if("Polygon"===ef||"MultiPolygon"===ef)return new dr(eu,eu.features[x].geometry)}else if("Feature"===eu.type){let x=eu.geometry.type;if("Polygon"===x||"MultiPolygon"===x)return new dr(eu,eu.geometry)}else if("Polygon"===eu.type||"MultiPolygon"===eu.type)return new dr(eu,eu)}return eu.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(x){if(null!=x.geometry()&&null!=x.canonicalID()){if("Point"===x.geometryType())return function(x,eu){let ef=[1
1/0,1/0,-1/0,-1/0],em=[1/0,1/0,-1/0,-1/0],e_=x.canonicalID();if(!e_)return!1;if("Polygon"===eu.type){let eg=ur(eu.coordinates,em,e_),ex=pr(x.geometry(),ef,em,e_);if(!tr(ef,em))return!1;for(let x of ex)if(!nr(x,eg))return!1}if("MultiPolygon"===eu.type){let eg=cr(eu.coordinates,em,e_),ex=pr(x.geometry(),ef,em,e_);if(!tr(ef,em))return!1;for(let x of ex)if(!function(x,eu){for(let ef=0;ef<eu.length;ef++)if(nr(x,eu[ef]))return!0;return!1}(x,eg))return!1}return!0}(x,this.geometries);if("LineString"===x.geometryType())return function(x,eu){let ef=[1/0,1/0,-1/0,-1/0],em=[1/0,1/0,-1/0,-1/0],e_=x.canonicalID();if(!e_)return!1;if("Polygon"===eu.type){let eg=ur(eu.coordinates,em,e_),ex=fr(x.geometry(),ef,em,e_);if(!tr(ef,em))return!1;for(let x of ex)if(!or(x,eg))return!1}if("MultiPolygon"===eu.type){let eg=cr(eu.coordinates,em,e_),ex=fr(x.geometry(),ef,em,e_);if(!tr(ef,em))return!1;for(let x of ex)if(!function(x,eu){for(let ef=0;ef<eu.length;ef++)if(or(x,eu[ef]))return!0;return!1}(x,eg))return!1}return!0}(x,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}};function mr(x){if(x instanceof Ye&&("get"===x.name&&1===x.args.length||"feature-state"===x.name||"has"===x.name&&1===x.args.length||"properties"===x.name||"geometry-type"===x.name||"id"===x.name||/^filter-/.test(x.name))||x instanceof dr)return!1;let eu=!0;return x.eachChild(x=>{eu&&!mr(x)&&(eu=!1)}),eu}function gr(x){if(x instanceof Ye&&"feature-state"===x.name)return!1;let eu=!0;return x.eachChild(x=>{eu&&!gr(x)&&(eu=!1)}),eu}function xr(x,eu){if(x instanceof Ye&&eu.indexOf(x.name)>=0)return!1;let ef=!0;return x.eachChild(x=>{ef&&!xr(x,eu)&&(ef=!1)}),ef}let vr=class vr{constructor(x,eu){this.type=eu.type,this.name=x,this.boundExpression=eu}static parse(x,eu){if(2!==x.length||"string"!=typeof x[1])return eu.error("'var' expression requires exactly one string literal argument.");let ef=x[1];return eu.scope.has(ef)?new vr(ef,eu.scope.get(ef)):eu.error(`Unknown variable "${ef}". Make sure "${ef}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(x){return this.boundExpression.evaluate(x)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}};let wr=class wr{constructor(x,eu=[],ef,em=new re,e_=[]){this.registry=x,this.path=eu,this.key=eu.map(x=>`[${x}]`).join(""),this.scope=em,this.errors=e_,this.expectedType=ef}parse(x,eu,ef,em,e_={}){return eu?this.concat(eu,ef,em)._parse(x,e_):this._parse(x,e_)}_parse(x,eu){function r(x,eu,ef){return"assert"===ef?new $e(eu,[x]):"coerce"===ef?new Ge(eu,[x]):x}if(null!==x&&"string"!=typeof x&&"boolean"!=typeof x&&"number"!=typeof x||(x=["literal",x]),Array.isArray(x)){if(0===x.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');let ef=x[0];if("string"!=typeof ef)return this.error(`Expression name must be a string, but found ${typeof ef} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let em=this.registry[ef];if(em){let ef=em.parse(x,this);if(!ef)return null;if(this.expectedType){let x=this.expectedType,em=ef.type;if("string"!==x.kind&&"number"!==x.kind&&"boolean"!==x.kind&&"object"!==x.kind&&"array"!==x.kind||"value"!==em.kind){if("color"!==x.kind&&"formatted"!==x.kind&&"resolvedImage"!==x.kind||"value"!==em.kind&&"string"!==em.kind){if(this.checkSubtype(x,em))return null}else ef=r(ef,x,eu.typeAnnotation||"coerce")}else ef=r(ef,x,eu.typeAnnotation||"assert")}if(!(ef instanceof Le)&&"resolvedImage"!==ef.type.kind&&function Ar(x){if(x instanceof vr)return Ar(x.boundExpression);if(x instanceof Ye&&"error"===x.name||x instanceof We||x instanceof dr)return!1;let eu=x instanceof Ge||x instanceof $e,ef=!0;return x.eachChild(x=>{ef=eu?ef&&Ar(x):ef&&x instanceof Le}),!!ef&&mr(x)&&xr(x,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"])}(ef)){let x=new tI;try{ef=new Le(ef.type,ef.evaluate(x))}catch(x){return this.error(x.message),null}}return ef}return this.error(`Unknown expression "${ef}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===x?"'undefined' value invalid. Use null instead.":"object"==typeof x?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof x} instead.`)}concat(x,eu,ef){let em="number"==typeof x?this.path.concat(x):this.path,e_=ef?this.scope.concat(ef):this.scope;return new wr(this.registry,em,eu||null,e_,this.errors)}error(x,...eu){let ef=`${this.key}${eu.map(x=>`[${x}]`).join("")}`;this.errors.push(new e7(ef,x))}checkSubtype(x,eu){let ef=ge(x,eu);return ef&&this.error(ef),ef}};var tA=wr;function Sr(x,eu){let ef=x.length-1,em,e_,eg=0,ex=ef,ev=0;for(;eg<=ex;)if(em=x[ev=Math.floor((eg+ex)/2)],e_=x[ev+1],em<=eu){if(ev===ef||eu<e_)return ev;eg=ev+1}else{if(!(em>eu))throw new tT("Input is not a number.");ex=ev-1}return 0}
1let kr=class kr{constructor(x,eu,ef){for(let[em,e_]of(this.type=x,this.input=eu,this.labels=[],this.outputs=[],ef))this.labels.push(em),this.outputs.push(e_)}static parse(x,eu){if(x.length-1<4)return eu.error(`Expected at least 4 arguments, but found only ${x.length-1}.`);if((x.length-1)%2!=0)return eu.error("Expected an even number of arguments.");let ef=eu.parse(x[1],1,tn);if(!ef)return null;let em=[],e_=null;eu.expectedType&&"value"!==eu.expectedType.kind&&(e_=eu.expectedType);for(let ef=1;ef<x.length;ef+=2){let eg=1===ef?-1/0:x[ef],ex=x[ef+1],ev=ef,eb=ef+1;if("number"!=typeof eg)return eu.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',ev);if(em.length&&em[em.length-1][0]>=eg)return eu.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',ev);let ew=eu.parse(ex,eb,e_);if(!ew)return null;e_=e_||ew.type,em.push([eg,ew])}return new kr(e_,ef,em)}evaluate(x){let eu=this.labels,ef=this.outputs;if(1===eu.length)return ef[0].evaluate(x);let em=this.input.evaluate(x);if(em<=eu[0])return ef[0].evaluate(x);let e_=eu.length;return em>=eu[e_-1]?ef[e_-1].evaluate(x):ef[Sr(eu,em)].evaluate(x)}eachChild(x){for(let eu of(x(this.input),this.outputs))x(eu)}outputDefined(){return this.outputs.every(x=>x.outputDefined())}serialize(){let x=["step",this.input.serialize()];for(let eu=0;eu<this.labels.length;eu++)eu>0&&x.push(this.labels[eu]),x.push(this.outputs[eu].serialize());return x}};function Mr(x,eu,ef){return x*(1-ef)+eu*ef}var tC=Object.freeze({__proto__:null,number:Mr,color:function(x,eu,ef){return new Ie(Mr(x.r,eu.r,ef),Mr(x.g,eu.g,ef),Mr(x.b,eu.b,ef),Mr(x.a,eu.a,ef))},array:function(x,eu,ef){return x.map((x,em)=>Mr(x,eu[em],ef))}});let tz=4/29,tD=6/29,tk=3*tD*tD,tP=Math.PI/180,tL=180/Math.PI;function Lr(x){return x>.008856451679035631?Math.pow(x,1/3):x/tk+tz}function Fr(x){return x>tD?x*x*x:tk*(x-tz)}function Rr(x){return 255*(x<=.0031308?12.92*x:1.055*Math.pow(x,1/2.4)-.055)}function jr(x){return(x/=255)<=.04045?x/12.92:Math.pow((x+.055)/1.055,2.4)}function $r(x){let eu=jr(x.r),ef=jr(x.g),em=jr(x.b),e_=Lr((.4124564*eu+.3575761*ef+.1804375*em)/.95047),eg=Lr((.2126729*eu+.7151522*ef+.072175*em)/1);return{l:116*eg-16,a:500*(e_-eg),b:200*(eg-Lr((.0193339*eu+.119192*ef+.9503041*em)/1.08883)),alpha:x.a}}function Ur(x){let eu=(x.l+16)/116,ef=isNaN(x.a)?eu:eu+x.a/500,em=isNaN(x.b)?eu:eu-x.b/200;return eu=1*Fr(eu),ef=.95047*Fr(ef),em=1.08883*Fr(em),new Ie(Rr(3.2404542*ef-1.5371385*eu-.4985314*em),Rr(-.969266*ef+1.8760108*eu+.041556*em),Rr(.0556434*ef-.2040259*eu+1.0572252*em),x.alpha)}let tR={forward:$r,reverse:Ur,interpolate:function(x,eu,ef){return{l:Mr(x.l,eu.l,ef),a:Mr(x.a,eu.a,ef),b:Mr(x.b,eu.b,ef),alpha:Mr(x.alpha,eu.alpha,ef)}}},tB={forward:function(x){let{l:eu,a:ef,b:em}=$r(x),e_=Math.atan2(em,ef)*tL;return{h:e_<0?e_+360:e_,c:Math.sqrt(ef*ef+em*em),l:eu,alpha:x.a}},reverse:function(x){let eu=x.h*tP,ef=x.c;return Ur({l:x.l,a:Math.cos(eu)*ef,b:Math.sin(eu)*ef,alpha:x.alpha})},interpolate:function(x,eu,ef){return{h:function(x,eu,ef){let em=eu-x;return x+ef*(em>180||em<-180?em-360*Math.round(em/360):em)}(x.h,eu.h,ef),c:Mr(x.c,eu.c,ef),l:Mr(x.l,eu.l,ef),alpha:Mr(x.alpha,eu.alpha,ef)}}};var tO=Object.freeze({__proto__:null,lab:tR,hcl:tB});let Zr=class Zr{constructor(x,eu,ef,em,e_){for(let[eg,ex]of(this.type=x,this.operator=eu,this.interpolation=ef,this.input=em,this.labels=[],this.outputs=[],e_))this.labels.push(eg),this.outputs.push(ex)}static interpolationFactor(x,eu,ef,em){let e_=0;if("exponential"===x.name)e_=Xr(eu,x.base,ef,em);else if("linear"===x.name)e_=Xr(eu,1,ef,em);else if("cubic-bezier"===x.name){let eg=x.controlPoints;e_=new f(eg[0],eg[1],eg[2],eg[3]).solve(Xr(eu,1,ef,em))}return e_}static parse(x,eu){let[ef,em,e_,...eg]=x;if(!Array.isArray(em)||0===em.length)return eu.error("Expected an interpolation type expression.",1);if("linear"===em[0])em={name:"linear"};else if("exponential"===em[0]){let x=em[1];if("number"!=typeof x)return eu.error("Exponential interpolation requires a numeric base.",1,1);em={name:"exponential",base:x}}else{if("cubic-bezier"!==em[0])return eu.error(`Unknown interpolation type ${String(em[0])}`,1,0);{let x=em.slice(1);if(4!==x.length||x.some(x=>"number"!=typeof x||x<0||x>1))return eu.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);em={name:"cubic-bezier",controlPoints:x}}}if(x.length-1<4)return eu.error(`Expected at least 4 arguments, but found only ${x.length-1}.`);if((x.length-1)%2!=0)return eu.error("Expected an even number of arguments.");if(!(e_=eu.parse(e_,2,tn)))return null;let ex=[],ev=null;"interpolate-hcl"===ef||"interpolate-lab"===ef?ev=tu:eu.expectedType&&"value"!==eu.expectedType.kind&&(ev=eu.expectedType);for(let x=0;x<eg.length;x+=2){let ef=eg[x],em=eg[x+1],e_=x+3,eb=x+4;if("number"!=typeof ef)return eu.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not c
1omputed expressions) for the input values.',e_);if(ex.length&&ex[ex.length-1][0]>=ef)return eu.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',e_);let ew=eu.parse(em,eb,ev);if(!ew)return null;ev=ev||ew.type,ex.push([ef,ew])}return"number"===ev.kind||"color"===ev.kind||"array"===ev.kind&&"number"===ev.itemType.kind&&"number"==typeof ev.N?new Zr(ev,ef,em,e_,ex):eu.error(`Type ${ye(ev)} is not interpolatable.`)}evaluate(x){let eu=this.labels,ef=this.outputs;if(1===eu.length)return ef[0].evaluate(x);let em=this.input.evaluate(x);if(em<=eu[0])return ef[0].evaluate(x);let e_=eu.length;if(em>=eu[e_-1])return ef[e_-1].evaluate(x);let eg=Sr(eu,em),ex=Zr.interpolationFactor(this.interpolation,em,eu[eg],eu[eg+1]),ev=ef[eg].evaluate(x),eb=ef[eg+1].evaluate(x);return"interpolate"===this.operator?tC[this.type.kind.toLowerCase()](ev,eb,ex):"interpolate-hcl"===this.operator?tB.reverse(tB.interpolate(tB.forward(ev),tB.forward(eb),ex)):tR.reverse(tR.interpolate(tR.forward(ev),tR.forward(eb),ex))}eachChild(x){for(let eu of(x(this.input),this.outputs))x(eu)}outputDefined(){return this.outputs.every(x=>x.outputDefined())}serialize(){let x;x="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);let eu=[this.operator,x,this.input.serialize()];for(let x=0;x<this.labels.length;x++)eu.push(this.labels[x],this.outputs[x].serialize());return eu}};function Xr(x,eu,ef,em){let e_=em-ef,eg=x-ef;return 0===e_?0:1===eu?eg/e_:(Math.pow(eu,eg)-1)/(Math.pow(eu,e_)-1)}let Yr=class Yr{constructor(x,eu){this.type=x,this.args=eu}static parse(x,eu){if(x.length<2)return eu.error("Expectected at least one argument.");let ef=null,em=eu.expectedType;em&&"value"!==em.kind&&(ef=em);let e_=[];for(let em of x.slice(1)){let x=eu.parse(em,1+e_.length,ef,void 0,{typeAnnotation:"omit"});if(!x)return null;ef=ef||x.type,e_.push(x)}let eg=em&&e_.some(x=>ge(em,x.type));return new Yr(eg?tm:ef,e_)}evaluate(x){let eu,ef=null,em=0;for(let e_ of this.args){if(em++,(ef=e_.evaluate(x))&&ef instanceof Ee&&!ef.available&&(eu||(eu=ef),ef=null,em===this.args.length))return eu;if(null!==ef)break}return ef}eachChild(x){this.args.forEach(x)}outputDefined(){return this.args.every(x=>x.outputDefined())}serialize(){let x=["coalesce"];return this.eachChild(eu=>{x.push(eu.serialize())}),x}};let Wr=class Wr{constructor(x,eu){this.type=eu.type,this.bindings=[].concat(x),this.result=eu}evaluate(x){return this.result.evaluate(x)}eachChild(x){for(let eu of this.bindings)x(eu[1]);x(this.result)}static parse(x,eu){if(x.length<4)return eu.error(`Expected at least 3 arguments, but found ${x.length-1} instead.`);let ef=[];for(let em=1;em<x.length-1;em+=2){let e_=x[em];if("string"!=typeof e_)return eu.error(`Expected string, but found ${typeof e_} instead.`,em);if(/[^a-zA-Z0-9_]/.test(e_))return eu.error("Variable names must contain only alphanumeric characters or '_'.",em);let eg=eu.parse(x[em+1],em+1);if(!eg)return null;ef.push([e_,eg])}let em=eu.parse(x[x.length-1],x.length-1,eu.expectedType,ef);return em?new Wr(ef,em):null}outputDefined(){return this.result.outputDefined()}serialize(){let x=["let"];for(let[eu,ef]of this.bindings)x.push(eu,ef.serialize());return x.push(this.result.serialize()),x}};let Qr=class Qr{constructor(x,eu,ef){this.type=x,this.index=eu,this.input=ef}static parse(x,eu){if(3!==x.length)return eu.error(`Expected 2 arguments, but found ${x.length-1} instead.`);let ef=eu.parse(x[1],1,tn),em=eu.parse(x[2],2,de(eu.expectedType||tm));return ef&&em?new Qr(em.type.itemType,ef,em):null}evaluate(x){let eu=this.index.evaluate(x),ef=this.input.evaluate(x);if(eu<0)throw new tT(`Array index out of bounds: ${eu} < 0.`);if(eu>=ef.length)throw new tT(`Array index out of bounds: ${eu} > ${ef.length-1}.`);if(eu!==Math.floor(eu))throw new tT(`Array index must be an integer, but found ${eu} instead.`);return ef[eu]}eachChild(x){x(this.index),x(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}};let en=class en{constructor(x,eu){this.type=th,this.needle=x,this.haystack=eu}static parse(x,eu){if(3!==x.length)return eu.error(`Expected 2 arguments, but found ${x.length-1} instead.`);let ef=eu.parse(x[1],1,tm),em=eu.parse(x[2],2,tm);return ef&&em?xe(ef.type,[th,ta,tn,tt,tm])?new en(ef,em):eu.error(`Expected first argument to be of type boolean, string, number or null, but found ${ye(ef.type)} instead`):null}evaluate(x){let eu=this.needle.evaluate(x),ef=this.haystack.evaluate(x);if(null==ef)return!1;if(!ve(eu,["boolean","string","number","null"]))throw new tT(`Expected first argument to be of type boolean, string, number or null, but found ${ye(De(eu))} instead.`);if(!ve(ef,["string","array"]))throw new tT(`Expected second argument to be of type array or string, but found ${ye(De(ef))} instead.`);return ef.indexOf(eu)>=0}eachChild(x){x(this.needle),x(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}};let nn=class nn{constructor(x,eu,ef){this.type=tn,this.needle=x,this.haystack=eu,this.fromIndex=ef}static parse(x,eu){if(x.length<=2||x.length>=5)return eu.error(`Expected 3 or 4 arguments, but found ${x.length-1} instead.`);let ef=eu.parse(x[1],1,tm),em=eu.parse(x[2],2,tm);if(!ef||!em)return null;if(!xe(ef.type,[th,ta,tn,tt,tm]))return eu.error(`Expected first argument to be of type boolean, string, number or null, but found ${ye(ef.type)} instead`);if(4===x.length){let e_=eu.parse(x[3],3,tn);return e_?new nn(ef,em,e_):null}return new nn(ef,em)}evaluate(x){let eu=this.needle.evaluate(x),ef=this.haystack.evaluate(x);if(!ve(eu,["boolean","string","number","null"]))throw new tT(`Expected first argument to be of type boolean, string, number or null, but found ${ye(De(eu))} instead.`);if(!ve(ef,["string","array"]))throw new tT(`Expected second argument to be of type array or string, but found ${ye(De(ef))} instead.`);if(this.fromIndex){let em=this.fromIndex.evaluate(x);return ef.indexOf(eu,em)}return ef.indexOf(eu)}eachChild(x){x(this.needle),x(this.haystack),this.fromIndex&&x(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){let x=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),x]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}};let an=class an{constructor(x,eu,ef,em,e_,eg){this.inputType=x,this.type=eu,this.input=ef,this.cases=em,this.outputs=e_,this.otherwise=eg}static parse(x,eu){let ef,em;if(x.length<5)return eu.error(`Expected at least 4 arguments, but found only ${x.length-1}.`);if(x.length%2!=1)return eu.error("Expected an even number of arguments.");eu.expectedType&&"value"!==eu.expectedType.kind&&(em=eu.expectedType);let e_={},eg=[];for(let ex=2;ex<x.length-1;ex+=2){let ev=x[ex],eb=x[ex+1];Array.isArray(ev)||(ev=[ev]);let ew=eu.concat(ex);if(0===ev.length)return ew.error("Expected at least one branch label.");for(let x of ev){if("number"!=typeof x&&"string"!=typeof x)return ew.error("Branch labels must be numbers or strings.");if("number"==typeof x&&Math.abs(x)>Number.MAX_SAFE_INTEGER)return ew.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof x&&Math.floor(x)!==x)return ew.error("Numeric branch labels must be integer values.");if(ef){if(ew.checkSubtype(ef,De(x)))return null}else ef=De(x);if(void 0!==e_[String(x)])return ew.error("Branch labels must be unique.");e_[String(x)]=eg.length}let eT=eu.parse(eb,ex,em);if(!eT)return null;em=em||eT.type,eg.push(eT)}let ex=eu.parse(x[1],1,tm);if(!ex)return null;let ev=eu.parse(x[x.length-1],x.length-1,em);return ev?"value"!==ex.type.kind&&eu.concat(1).checkSubtype(ef,ex.type)?null:new an(ef,em,ex,e_,eg,ev):null}evaluate(x){let eu=this.input.evaluate(x);return(De(eu)===this.inputType&&this.outputs[this.cases[eu]]||this.otherwise).evaluate(x)}
1eachChild(x){x(this.input),this.outputs.forEach(x),x(this.otherwise)}outputDefined(){return this.outputs.every(x=>x.outputDefined())&&this.otherwise.outputDefined()}serialize(){let x=["match",this.input.serialize()],eu=Object.keys(this.cases).sort(),ef=[],em={};for(let x of eu){let eu=em[this.cases[x]];void 0===eu?(em[this.cases[x]]=ef.length,ef.push([this.cases[x],[x]])):ef[eu][1].push(x)}let i=x=>"number"===this.inputType.kind?Number(x):x;for(let[eu,em]of ef)x.push(1===em.length?i(em[0]):em.map(i)),x.push(this.outputs[eu].serialize());return x.push(this.otherwise.serialize()),x}};let ln=class ln{constructor(x,eu,ef){this.type=x,this.branches=eu,this.otherwise=ef}static parse(x,eu){let ef;if(x.length<4)return eu.error(`Expected at least 3 arguments, but found only ${x.length-1}.`);if(x.length%2!=0)return eu.error("Expected an odd number of arguments.");eu.expectedType&&"value"!==eu.expectedType.kind&&(ef=eu.expectedType);let em=[];for(let e_=1;e_<x.length-1;e_+=2){let eg=eu.parse(x[e_],e_,th);if(!eg)return null;let ex=eu.parse(x[e_+1],e_+1,ef);if(!ex)return null;em.push([eg,ex]),ef=ef||ex.type}let e_=eu.parse(x[x.length-1],x.length-1,ef);return e_?new ln(ef,em,e_):null}evaluate(x){for(let[eu,ef]of this.branches)if(eu.evaluate(x))return ef.evaluate(x);return this.otherwise.evaluate(x)}eachChild(x){for(let[eu,ef]of this.branches)x(eu),x(ef);x(this.otherwise)}outputDefined(){return this.branches.every(([x,eu])=>eu.outputDefined())&&this.otherwise.outputDefined()}serialize(){let x=["case"];return this.eachChild(eu=>{x.push(eu.serialize())}),x}};let cn=class cn{constructor(x,eu,ef,em){this.type=x,this.input=eu,this.beginIndex=ef,this.endIndex=em}static parse(x,eu){if(x.length<=2||x.length>=5)return eu.error(`Expected 3 or 4 arguments, but found ${x.length-1} instead.`);let ef=eu.parse(x[1],1,tm),em=eu.parse(x[2],2,tn);if(!ef||!em)return null;if(!xe(ef.type,[de(tm),ta,tm]))return eu.error(`Expected first argument to be of type array or string, but found ${ye(ef.type)} instead`);if(4===x.length){let e_=eu.parse(x[3],3,tn);return e_?new cn(ef.type,ef,em,e_):null}return new cn(ef.type,ef,em)}evaluate(x){let eu=this.input.evaluate(x),ef=this.beginIndex.evaluate(x);if(!ve(eu,["string","array"]))throw new tT(`Expected first argument to be of type array or string, but found ${ye(De(eu))} instead.`);if(this.endIndex){let em=this.endIndex.evaluate(x);return eu.slice(ef,em)}return eu.slice(ef)}eachChild(x){x(this.input),x(this.beginIndex),this.endIndex&&x(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){let x=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),x]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}};function pn(x,eu){return"=="===x||"!="===x?"boolean"===eu.kind||"string"===eu.kind||"number"===eu.kind||"null"===eu.kind||"value"===eu.kind:"string"===eu.kind||"number"===eu.kind||"value"===eu.kind}function fn(x,eu,ef,em){return 0===em.compare(eu,ef)}function dn(x,eu,ef){let em="=="!==x&&"!="!==x;return class i{constructor(x,eu,ef){this.type=th,this.lhs=x,this.rhs=eu,this.collator=ef,this.hasUntypedArgument="value"===x.type.kind||"value"===eu.type.kind}static parse(x,eu){if(3!==x.length&&4!==x.length)return eu.error("Expected two or three arguments.");let ef=x[0],e_=eu.parse(x[1],1,tm);if(!e_)return null;if(!pn(ef,e_.type))return eu.concat(1).error(`"${ef}" comparisons are not supported for type '${ye(e_.type)}'.`);let eg=eu.parse(x[2],2,tm);if(!eg)return null;if(!pn(ef,eg.type))return eu.concat(2).error(`"${ef}" comparisons are not supported for type '${ye(eg.type)}'.`);if(e_.type.kind!==eg.type.kind&&"value"!==e_.type.kind&&"value"!==eg.type.kind)return eu.error(`Cannot compare types '${ye(e_.type)}' and '${ye(eg.type)}'.`);em&&("value"===e_.type.kind&&"value"!==eg.type.kind?e_=new $e(eg.type,[e_]):"value"!==e_.type.kind&&"value"===eg.type.kind&&(eg=new $e(e_.type,[eg])));let ex=null;if(4===x.length){if("string"!==e_.type.kind&&"string"!==eg.type.kind&&"value"!==e_.type.kind&&"value"!==eg.type.kind)return eu.error("Cannot use collator to compare non-string types.");if(!(ex=eu.parse(x[3],3,t_)))return null}return new i(e_,eg,ex)}evaluate(e_){let eg=this.lhs.evaluate(e_),ex=this.rhs.evaluate(e_);if(em&&this.hasUntypedArgument){let eu=De(eg),ef=De(ex);if(eu.kind!==ef.kind||"string"!==eu.kind&&"number"!==eu.kind)throw new tT(`Expected arguments for "${x}" to be (string, string) or (number, number), but found (${eu.kind}, ${ef.kind}) instead.`)}if(this.collator&&!em&&this.hasUntypedArgument){let x=De(eg),ef=De(ex);if("string"!==x.kind||"string"!==ef.kind)return eu(e_,eg,ex)}return this.collator?ef(e_,eg,ex,this.collator.evaluate(e_)):eu(e_,eg,ex)}eachChild(x){x(this.lhs),x(this.rhs),this.collator&&x(this.collator)}outputDefined(){return!0}serialize(){let eu=[x];return this.eachChild(x=>{eu.push(x.serialize())}),eu}}}let tF=dn("==",function(x,eu,ef){return eu===ef},fn),tU=dn("!=",function(x,eu,ef){return eu!==ef},function(x,eu,ef,em){return!fn(0,eu,ef,em)}),tV=dn("<",function(x,eu,ef){return eu<ef},function(x,eu,ef,em){return 0>em.compare(eu,ef)}),tN=dn(">",function(x,eu,ef){return eu>ef},function(x,eu,ef,em){return em.compare(eu,ef)>0}),tj=dn("<=",function(x,eu,ef){return eu<=ef},function(x,eu,ef,em){return 0>=em.compare(eu,ef)}),tG=dn(">=",function(x,eu,ef){return eu>=ef},function(x,eu,ef,em){return em.compare(eu,ef)>=0});let wn=class wn{constructor(x,eu,ef,em,e_,eg){this.type=ta,this.number=x,this.locale=eu,this.currency=ef,this.unit=em,this.minFractionDigits=e_,this.maxFractionDigits=eg}static parse(x,eu){if(3!==x.length)return eu.error("Expected two arguments.");let ef=eu.parse(x[1],1,tn);if(!ef)return null;let em=x[2];if("object"!=typeof em||Array.isArray(em))return eu.error("NumberFormat options argument must be an object.");let e_=null;if(em.locale&&!(e_=eu.parse(em.locale,1,ta)))return null;let eg=null;if(em.currency&&!(eg=eu.parse(em.currency,1,ta)))return null;let ex=null;if(em.unit&&!(ex=eu.parse(em.unit,1,ta)))return null;let ev=null;if(em["min-fraction-digits"]&&!(ev=eu.parse(em["min-fraction-digits"],1,tn)))return null;let eb=null;return!em["max-fraction-digits"]||(eb=eu.parse(em["max-fraction-digits"],1,tn))?new wn(ef,e_,eg,ex,ev,eb):null}evaluate(x){return new Intl.NumberFormat(this.locale?this.locale.evaluate(x):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(x):void 0,unit:this.unit?this.unit.evaluate(x):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(x):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(x):void 0}).format(this.number.evaluate(x))}eachChild(x){x(this.number),this.locale&&x(this.locale),this.currency&&x(this.currency),this.unit&&x(this.unit),this.minFractionDigits&&x(this.minFractionDigits),this.maxFractionDigits&&x(this.maxFractionDigits)}outputDefined(){return!1}serialize(){let x={};return this.locale&&(x.locale=this.locale.serialize()),this.currency&&(x.currency=this.currency.serialize()),this.unit&&(x.unit=this.unit.serialize()),this.minFractionDigits&&(x["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(x["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),x]}};
1let _n=class _n{constructor(x){this.type=tn,this.input=x}static parse(x,eu){if(2!==x.length)return eu.error(`Expected 1 argument, but found ${x.length-1} instead.`);let ef=eu.parse(x[1],1);return ef?"array"!==ef.type.kind&&"string"!==ef.type.kind&&"value"!==ef.type.kind?eu.error(`Expected argument of type string or array, but found ${ye(ef.type)} instead.`):new _n(ef):null}evaluate(x){let eu=this.input.evaluate(x);if("string"==typeof eu||Array.isArray(eu))return eu.length;throw new tT(`Expected value to be of type string or array, but found ${ye(De(eu))} instead.`)}eachChild(x){x(this.input)}outputDefined(){return!1}serialize(){let x=["length"];return this.eachChild(eu=>{x.push(eu.serialize())}),x}};let tZ={"==":tF,"!=":tU,">":tN,"<":tV,">=":tG,"<=":tj,array:$e,at:Qr,boolean:$e,case:ln,coalesce:Yr,collator:We,format:Oe,image:qe,in:en,"index-of":nn,interpolate:Zr,"interpolate-hcl":Zr,"interpolate-lab":Zr,length:_n,let:Wr,literal:Le,match:an,number:$e,"number-format":wn,object:$e,slice:cn,step:kr,string:$e,"to-boolean":Ge,"to-color":Ge,"to-number":Ge,"to-string":Ge,var:vr,within:dr};function Sn(x,[eu,ef,em,e_]){eu=eu.evaluate(x),ef=ef.evaluate(x),em=em.evaluate(x);let eg=e_?e_.evaluate(x):1,ex=Ce(eu,ef,em,eg);if(ex)throw new tT(ex);return new Ie(eu/255*eg,ef/255*eg,em/255*eg,eg)}function In(x,eu){let ef=eu[x];return void 0===ef?null:ef}function Mn(x){return{type:x}}function zn(x){return{result:"success",value:x}}function Bn(x){return{result:"error",value:x}}function En(x){return"data-driven"===x["property-type"]}function Cn(x){return!!x.expression&&x.expression.parameters.indexOf("zoom")>-1}function Pn(x){return!!x.expression&&x.expression.interpolated}function Dn(x){return x instanceof Number?"number":x instanceof String?"string":x instanceof Boolean?"boolean":Array.isArray(x)?"array":null===x?"null":typeof x}function Vn(x){return"object"==typeof x&&null!==x&&!Array.isArray(x)}function Ln(x){return x}function Rn(x,eu,ef){return void 0!==x?x:void 0!==eu?eu:void 0!==ef?ef:void 0}function jn(x,eu,ef,em,e_){return Rn(typeof ef===e_?em[ef]:void 0,x.default,eu.default)}function $n(x,eu,ef){if("number"!==Dn(ef))return Rn(x.default,eu.default);let em=x.stops.length;if(1===em||ef<=x.stops[0][0])return x.stops[0][1];if(ef>=x.stops[em-1][0])return x.stops[em-1][1];let e_=Sr(x.stops.map(x=>x[0]),ef);return x.stops[e_][1]}function Un(x,eu,ef){let em=void 0!==x.base?x.base:1;if("number"!==Dn(ef))return Rn(x.default,eu.default);let e_=x.stops.length;if(1===e_||ef<=x.stops[0][0])return x.stops[0][1];if(ef>=x.stops[e_-1][0])return x.stops[e_-1][1];let eg=Sr(x.stops.map(x=>x[0]),ef),ex=function(x,eu,ef,em){let e_=em-ef,eg=x-ef;return 0===e_?0:1===eu?eg/e_:(Math.pow(eu,eg)-1)/(Math.pow(eu,e_)-1)}(ef,em,x.stops[eg][0],x.stops[eg+1][0]),ev=x.stops[eg][1],eb=x.stops[eg+1][1],ew=tC[eu.type]||Ln;if(x.colorSpace&&"rgb"!==x.colorSpace){let eu=tO[x.colorSpace];ew=(x,ef)=>eu.reverse(eu.interpolate(eu.forward(x),eu.forward(ef),ex))}return"function"==typeof ev.evaluate?{evaluate(...x){let eu=ev.evaluate.apply(void 0,x),ef=eb.evaluate.apply(void 0,x);if(void 0!==eu&&void 0!==ef)return ew(eu,ef,ex)}}:ew(ev,eb,ex)}function On(x,eu,ef){return"color"===eu.type?ef=Ie.parse(ef):"formatted"===eu.type?ef=Be.fromString(ef.toString()):"resolvedImage"===eu.type?ef=Ee.fromString(ef.toString()):Dn(ef)===eu.type||"enum"===eu.type&&eu.values[ef]||(ef=void 0),Rn(ef,x.default,eu.default)}Ye.register(tZ,{error:[{kind:"error"},[ta],(x,[eu])=>{throw new tT(eu.evaluate(x))}],typeof:[ta,[tm],(x,[eu])=>ye(De(eu.evaluate(x)))],"to-rgba":[de(tn,4),[tu],(x,[eu])=>eu.evaluate(x).toArray()],rgb:[tu,[tn,tn,tn],Sn],rgba:[tu,[tn,tn,tn,tn],Sn],has:{type:th,overloads:[[[ta],(x,[eu])=>eu.evaluate(x) in x.properties()],[[ta,tc],(x,[eu,ef])=>eu.evaluate(x) in ef.evaluate(x)]]},get:{type:tm,overloads:[[[ta],(x,[eu])=>In(eu.evaluate(x),x.properties())],[[ta,tc],(x,[eu,ef])=>In(eu.evaluate(x),ef.evaluate(x))]]},"feature-state":[tm,[ta],(x,[eu])=>In(eu.evaluate(x),x.featureState||{})],properties:[tc,[],x=>x.properties()],"geometry-type":[ta,[],x=>x.geometryType()],id:[tm,[],x=>x.id()],zoom:[tn,[],x=>x.globals.zoom],pitch:[tn,[],x=>x.globals.pitch||0],"distance-from-center":[tn,[],x=>x.distanceFromCenter()],"heatmap-density":[tn,[],x=>x.globals.heatmapDensity||0],"line-progress":[tn,[],x=>x.globals.lineProgress||0],"sky-radial-progress":[tn,[],x=>x.globals.skyRadialProgress||0],accumulated:[tm,[],x=>void 0===x.globals.accumulated?null:x.globals.accumulated],"+":[tn,Mn(tn),(x,eu)=>{let ef=0;for(let em of eu)ef+=em.evaluate(x);return ef}],"*":[tn,Mn(tn),(x,eu)=>{let ef=1;for(let em of eu)ef*=em.evaluate(x);return ef}],"-":{type:tn,overloads:[[[tn,tn],(x,[eu,ef])=>eu.evaluate(x)-ef.evaluate(x)],[[tn],(x,[eu])=>-eu.evaluate(x)]]},"/":[tn,[tn,tn],(x,[eu,ef])=>eu.evaluate(x)/ef.evaluate(x)],"%":[tn,[tn,tn],(x,[eu,ef])=>eu.evaluate(x)%ef.evaluate(x)],ln2:[tn,[],()=>Math.LN2],pi:[tn,[],()=>Math.PI],e:[tn,[],()=>Math.E],"^":[tn,[tn,tn],(x,[eu,ef])=>Math.pow(eu.evaluate(x),ef.evaluate(x))],sqrt:[tn,[tn],(x,[eu])=>Math.sqrt(eu.evaluate(x))],log10:[tn,[tn],(x,[eu])=>
1Math.log(eu.evaluate(x))/Math.LN10],ln:[tn,[tn],(x,[eu])=>Math.log(eu.evaluate(x))],log2:[tn,[tn],(x,[eu])=>Math.log(eu.evaluate(x))/Math.LN2],sin:[tn,[tn],(x,[eu])=>Math.sin(eu.evaluate(x))],cos:[tn,[tn],(x,[eu])=>Math.cos(eu.evaluate(x))],tan:[tn,[tn],(x,[eu])=>Math.tan(eu.evaluate(x))],asin:[tn,[tn],(x,[eu])=>Math.asin(eu.evaluate(x))],acos:[tn,[tn],(x,[eu])=>Math.acos(eu.evaluate(x))],atan:[tn,[tn],(x,[eu])=>Math.atan(eu.evaluate(x))],min:[tn,Mn(tn),(x,eu)=>Math.min(...eu.map(eu=>eu.evaluate(x)))],max:[tn,Mn(tn),(x,eu)=>Math.max(...eu.map(eu=>eu.evaluate(x)))],abs:[tn,[tn],(x,[eu])=>Math.abs(eu.evaluate(x))],round:[tn,[tn],(x,[eu])=>{let ef=eu.evaluate(x);return ef<0?-Math.round(-ef):Math.round(ef)}],floor:[tn,[tn],(x,[eu])=>Math.floor(eu.evaluate(x))],ceil:[tn,[tn],(x,[eu])=>Math.ceil(eu.evaluate(x))],"filter-==":[th,[ta,tm],(x,[eu,ef])=>x.properties()[eu.value]===ef.value],"filter-id-==":[th,[tm],(x,[eu])=>x.id()===eu.value],"filter-type-==":[th,[ta],(x,[eu])=>x.geometryType()===eu.value],"filter-<":[th,[ta,tm],(x,[eu,ef])=>{let em=x.properties()[eu.value],e_=ef.value;return typeof em==typeof e_&&em<e_}],"filter-id-<":[th,[tm],(x,[eu])=>{let ef=x.id(),em=eu.value;return typeof ef==typeof em&&ef<em}],"filter->":[th,[ta,tm],(x,[eu,ef])=>{let em=x.properties()[eu.value],e_=ef.value;return typeof em==typeof e_&&em>e_}],"filter-id->":[th,[tm],(x,[eu])=>{let ef=x.id(),em=eu.value;return typeof ef==typeof em&&ef>em}],"filter-<=":[th,[ta,tm],(x,[eu,ef])=>{let em=x.properties()[eu.value],e_=ef.value;return typeof em==typeof e_&&em<=e_}],"filter-id-<=":[th,[tm],(x,[eu])=>{let ef=x.id(),em=eu.value;return typeof ef==typeof em&&ef<=em}],"filter->=":[th,[ta,tm],(x,[eu,ef])=>{let em=x.properties()[eu.value],e_=ef.value;return typeof em==typeof e_&&em>=e_}],"filter-id->=":[th,[tm],(x,[eu])=>{let ef=x.id(),em=eu.value;return typeof ef==typeof em&&ef>=em}],"filter-has":[th,[tm],(x,[eu])=>eu.value in x.properties()],"filter-has-id":[th,[],x=>null!==x.id()&&void 0!==x.id()],"filter-type-in":[th,[de(ta)],(x,[eu])=>eu.value.indexOf(x.geometryType())>=0],"filter-id-in":[th,[de(tm)],(x,[eu])=>eu.value.indexOf(x.id())>=0],"filter-in-small":[th,[ta,de(tm)],(x,[eu,ef])=>ef.value.indexOf(x.properties()[eu.value])>=0],"filter-in-large":[th,[ta,de(tm)],(x,[eu,ef])=>(function(x,eu,ef,em){for(;ef<=em;){let e_=ef+em>>1;if(eu[e_]===x)return!0;eu[e_]>x?em=e_-1:ef=e_+1}return!1})(x.properties()[eu.value],ef.value,0,ef.value.length-1)],all:{type:th,overloads:[[[th,th],(x,[eu,ef])=>eu.evaluate(x)&&ef.evaluate(x)],[Mn(th),(x,eu)=>{for(let ef of eu)if(!ef.evaluate(x))return!1;return!0}]]},any:{type:th,overloads:[[[th,th],(x,[eu,ef])=>eu.evaluate(x)||ef.evaluate(x)],[Mn(th),(x,eu)=>{for(let ef of eu)if(ef.evaluate(x))return!0;return!1}]]},"!":[th,[th],(x,[eu])=>!eu.evaluate(x)],"is-supported-script":[th,[ta],(x,[eu])=>{let ef=x.globals&&x.globals.isSupportedScript;return!ef||ef(eu.evaluate(x))}],upcase:[ta,[ta],(x,[eu])=>eu.evaluate(x).toUpperCase()],downcase:[ta,[ta],(x,[eu])=>eu.evaluate(x).toLowerCase()],concat:[ta,Mn(tm),(x,eu)=>eu.map(eu=>Ve(eu.evaluate(x))).join("")],"resolved-locale":[ta,[t_],(x,[eu])=>eu.evaluate(x).resolvedLocale()]});let qn=class qn{constructor(x,eu){this.expression=x,this._warningHistory={},this._evaluator=new tI,this._defaultValue=eu?"color"===eu.type&&(Vn(eu.default)||Array.isArray(eu.default))?new Ie(0,0,0,0):"color"===eu.type?Ie.parse(eu.default)||null:void 0===eu.default?null:eu.default:null,this._enumValues=eu&&"enum"===eu.type?eu.values:null}evaluateWithoutErrorHandling(x,eu,ef,em,e_,eg,ex,ev){return this._evaluator.globals=x,this._evaluator.feature=eu,this._evaluator.featureState=ef,this._evaluator.canonical=em||null,this._evaluator.availableImages=e_||null,this._evaluator.formattedSection=eg,this._evaluator.featureTileCoord=ex||null,this._evaluator.featureDistanceData=ev||null,this.expression.evaluate(this._evaluator)}evaluate(x,eu,ef,em,e_,eg,ex,ev){this._evaluator.globals=x,this._evaluator.feature=eu||null,this._evaluator.featureState=ef||null,this._evaluator.canonical=em||null,this._evaluator.availableImages=e_||null,this._evaluator.formattedSection=eg||null,this._evaluator.featureTileCoord=ex||null,this._evaluator.featureDistanceData=ev||null;try{let x=this.expression.evaluate(this._evaluator);if(null==x||"number"==typeof x&&x!=x)return this._defaultValue;if(this._enumValues&&!(x in this._enumValues))throw new tT(`Expected value to be one of ${Object.keys(this._enumValues).map(x=>JSON.stringify(x)).join(", ")}, but found ${JSON.stringify(x)} instead.`);return x}catch(x){return this._warningHistory[x.message]||(this._warningHistory[x.message]=!0,"undefined"!=typeof console&&console.warn(x.message)),this._defaultValue}}};function Nn(x){return Array.isArray(x)&&x.length>0&&"string"==typeof x[0]&&x[0]in tZ}function Gn(x,eu){let ef=new tA(tZ,[],eu?function(x){let eu={color:tu,string:ta,number:tn,enum:ta,boolean:th,formatted:tg,resolvedImage:tx};return"array"===x.type?de(eu[x.value]||tm,x.length):eu[x.type]}(eu):void 0),em=ef.parse(x,void 0,void 0,void 0,eu&&"string"===eu.type?{typeAnnotation:"coerce"}:void 0);return em?zn(new qn(em,eu)):Bn(ef.errors)}let Zn=class Zn{constructor(x,eu){this.kind=x,this._styleExpression=eu,this.isStateDependent="constant"!==x&&!gr(eu.expression)}evaluateWithoutErrorHandling(x,eu,ef,em,e_,eg){return this._styleExpression.evaluateWithoutErrorHandling(x,eu,ef,em,e_,eg)}evaluate(x,eu,ef,em,e_,eg){return this._styleExpression.evaluate(x,eu,ef,em,e_,eg)}};let Xn=class Xn{constructor(x,eu,ef,em){this.kind=x,this.zoomStops=ef,this._styleExpression=eu,this.isStateDependent="camera"!==x&&!gr(eu.expression),this.interpolationType=em}evaluateWithoutErrorHandling(x,eu,ef,em,e_,eg){return this._styleExpression.evaluateWithoutErrorHandling(x,eu,ef,em,e_,eg)}evaluate(x,eu,ef,em,e_,eg){return this._styleExpression.evaluate(x,eu,ef,em,e_,eg)}interpolationFactor(x,eu,ef){return this.interpolationType?Zr.interpolationFactor(this.interpolationType,x,eu,ef):0}};function Kn(x,eu){if("error"===(x=Gn(x,eu)).result)return x;let ef=x.value.expression,em=mr(ef);if(!em&&!En(eu))return Bn([new e7("","data expressions not supported")]);let e_=xr(ef,["zoom","pitch","distance-from-center"]);if(!e_&&!Cn(eu))return Bn([new e7("","zoom expressions not supported")]);let eg=function Hn(x){let eu=null;if(x instanceof Wr)eu=Hn(x.result);
1else if(x instanceof Yr){for(let ef of x.args)if(eu=Hn(ef))break}else(x instanceof kr||x instanceof Zr)&&x.input instanceof Ye&&"zoom"===x.input.name&&(eu=x);return eu instanceof e7||x.eachChild(x=>{let ef=Hn(x);ef instanceof e7?eu=ef:!eu&&ef?eu=new e7("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):eu&&ef&&eu!==ef&&(eu=new e7("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),eu}(ef);return eg||e_?eg instanceof e7?Bn([eg]):eg instanceof Zr&&!Pn(eu)?Bn([new e7("",'"interpolate" expressions cannot be used with this property')]):zn(eg?new Xn(em?"camera":"composite",x.value,eg.labels,eg instanceof Zr?eg.interpolation:void 0):new Zn(em?"constant":"source",x.value)):Bn([new e7("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}let Yn=class Yn{constructor(x,eu){this._parameters=x,this._specification=eu,Wt(this,function Fn(x,eu){let ef,em,e_;let eg="color"===eu.type,ex=x.stops&&"object"==typeof x.stops[0][0],ev=ex||!(ex||void 0!==x.property),eb=x.type||(Pn(eu)?"exponential":"interval");if(eg&&((x=Wt({},x)).stops&&(x.stops=x.stops.map(x=>[x[0],Ie.parse(x[1])])),x.default=Ie.parse(x.default?x.default:eu.default)),x.colorSpace&&"rgb"!==x.colorSpace&&!tO[x.colorSpace])throw Error(`Unknown color space: ${x.colorSpace}`);if("exponential"===eb)ef=Un;else if("interval"===eb)ef=$n;else if("categorical"===eb){for(let eu of(ef=jn,em=Object.create(null),x.stops))em[eu[0]]=eu[1];e_=typeof x.stops[0][0]}else{if("identity"!==eb)throw Error(`Unknown function type "${eb}"`);ef=On}if(ex){let ef={},em=[];for(let eu=0;eu<x.stops.length;eu++){let e_=x.stops[eu],eg=e_[0].zoom;void 0===ef[eg]&&(ef[eg]={zoom:eg,type:x.type,property:x.property,default:x.default,stops:[]},em.push(eg)),ef[eg].stops.push([e_[0].value,e_[1]])}let e_=[];for(let x of em)e_.push([ef[x].zoom,Fn(ef[x],eu)]);let eg={name:"linear"};return{kind:"composite",interpolationType:eg,interpolationFactor:Zr.interpolationFactor.bind(void 0,eg),zoomStops:e_.map(x=>x[0]),evaluate:({zoom:ef},em)=>Un({stops:e_,base:x.base},eu,ef).evaluate(ef,em)}}if(ev){let eg="exponential"===eb?{name:"exponential",base:void 0!==x.base?x.base:1}:null;return{kind:"camera",interpolationType:eg,interpolationFactor:Zr.interpolationFactor.bind(void 0,eg),zoomStops:x.stops.map(x=>x[0]),evaluate:({zoom:eg})=>ef(x,eu,eg,em,e_)}}return{kind:"source",evaluate(eg,ex){let ev=ex&&ex.properties?ex.properties[x.property]:void 0;return void 0===ev?Rn(x.default,eu.default):ef(x,eu,ev,em,e_)}}}(this._parameters,this._specification))}static deserialize(x){return new Yn(x._parameters,x._specification)}static serialize(x){return{_parameters:x._parameters,_specification:x._specification}}};let Wn=class Wn{constructor(x,eu,ef,em){this.message=(x?`${x}: `:"")+ef,em&&(this.identifier=em),null!=eu&&eu.__line__&&(this.line=eu.__line__)}};function Jn(x){let eu=x.key,ef=x.value,em=x.valueSpec||{},e_=x.objectElementValidators||{},eg=x.style,ex=x.styleSpec,ev=[],eb=Dn(ef);if("object"!==eb)return[new Wn(eu,ef,`object expected, ${eb} found`)];for(let x in ef){let eb;let ew=x.split(".")[0],eT=em[ew]||em["*"];e_[ew]?eb=e_[ew]:em[ew]?eb=Ci:e_["*"]?eb=e_["*"]:em["*"]&&(eb=Ci),eb?ev=ev.concat(eb({key:(eu?`${eu}.`:eu)+x,value:ef[x],valueSpec:eT,style:eg,styleSpec:ex,object:ef,objectKey:x},ef)):ev.push(new Wn(eu,ef[x],`unknown property "${x}"`))}for(let x in em)e_[x]||em[x].required&&void 0===em[x].default&&void 0===ef[x]&&ev.push(new Wn(eu,ef,`missing required property "${x}"`));return ev}function Qn(x){let eu=x.value,ef=x.valueSpec,em=x.style,e_=x.styleSpec,eg=x.key,ex=x.arrayElementValidator||Ci;if("array"!==Dn(eu))return[new Wn(eg,eu,`array expected, ${Dn(eu)} found`)];if(ef.length&&eu.length!==ef.length)return[new Wn(eg,eu,`array length ${ef.length} expected, length ${eu.length} found`)];if(ef["min-length"]&&eu.length<ef["min-length"])return[new Wn(eg,eu,`array length at least ${ef["min-length"]} expected, length ${eu.length} found`)];let ev={type:ef.value,values:ef.values,minimum:ef.minimum,maximum:ef.maximum,function:void 0};
1e_.$version<7&&(ev.function=ef.function),"object"===Dn(ef.value)&&(ev=ef.value);let eb=[];for(let x=0;x<eu.length;x++)eb=eb.concat(ex({array:eu,arrayIndex:x,value:eu[x],valueSpec:ev,style:em,styleSpec:e_,key:`${eg}[${x}]`}));return eb}function ti(x){let eu=x.key,ef=x.value,em=x.valueSpec,e_=Dn(ef);if("number"===e_&&ef!=ef&&(e_="NaN"),"number"!==e_)return[new Wn(eu,ef,`number expected, ${e_} found`)];if("minimum"in em){let e_=em.minimum;if("array"===Dn(em.minimum)&&(e_=em.minimum[x.arrayIndex]),ef<e_)return[new Wn(eu,ef,`${ef} is less than the minimum value ${e_}`)]}if("maximum"in em){let e_=em.maximum;if("array"===Dn(em.maximum)&&(e_=em.maximum[x.arrayIndex]),ef>e_)return[new Wn(eu,ef,`${ef} is greater than the maximum value ${e_}`)]}return[]}function ei(x){let eu=x.valueSpec,ef=Jt(x.value.type),em,e_,eg,ex={},ev="categorical"!==ef&&void 0===x.value.property,eb="array"===Dn(x.value.stops)&&"array"===Dn(x.value.stops[0])&&"object"===Dn(x.value.stops[0][0]),ew=Jn({key:x.key,value:x.value,valueSpec:x.styleSpec.function,style:x.style,styleSpec:x.styleSpec,objectElementValidators:{stops:function(x){if("identity"===ef)return[new Wn(x.key,x.value,'identity function may not have a "stops" property')];let eu=[],em=x.value;return eu=eu.concat(Qn({key:x.key,value:em,valueSpec:x.valueSpec,style:x.style,styleSpec:x.styleSpec,arrayElementValidator:h})),"array"===Dn(em)&&0===em.length&&eu.push(new Wn(x.key,em,"array must have at least one stop")),eu},default:function(x){return Ci({key:x.key,value:x.value,valueSpec:eu,style:x.style,styleSpec:x.styleSpec})}}});return"identity"===ef&&ev&&ew.push(new Wn(x.key,x.value,'missing required property "property"')),"identity"===ef||x.value.stops||ew.push(new Wn(x.key,x.value,'missing required property "stops"')),"exponential"===ef&&x.valueSpec.expression&&!Pn(x.valueSpec)&&ew.push(new Wn(x.key,x.value,"exponential functions not supported")),x.styleSpec.$version>=8&&(ev||En(x.valueSpec)?ev&&!Cn(x.valueSpec)&&ew.push(new Wn(x.key,x.value,"zoom functions not supported")):ew.push(new Wn(x.key,x.value,"property functions not supported"))),("categorical"===ef||eb)&&void 0===x.value.property&&ew.push(new Wn(x.key,x.value,'"property" property is required')),ew;function h(x){let ef=[],em=x.value,ev=x.key;if("array"!==Dn(em))return[new Wn(ev,em,`array expected, ${Dn(em)} found`)];if(2!==em.length)return[new Wn(ev,em,`array length 2 expected, length ${em.length} found`)];if(eb){if("object"!==Dn(em[0]))return[new Wn(ev,em,`object expected, ${Dn(em[0])} found`)];if(void 0===em[0].zoom)return[new Wn(ev,em,"object stop key must have zoom")];if(void 0===em[0].value)return[new Wn(ev,em,"object stop key must have value")];let eu=Jt(em[0].zoom);if("number"!=typeof eu)return[new Wn(ev,em[0].zoom,"stop zoom values must be numbers")];if(eg&&eg>eu)return[new Wn(ev,em[0].zoom,"stop zoom values must appear in ascending order")];eu!==eg&&(eg=eu,e_=void 0,ex={}),ef=ef.concat(Jn({key:`${ev}[0]`,value:em[0],valueSpec:{zoom:{}},style:x.style,styleSpec:x.styleSpec,objectElementValidators:{zoom:ti,value:p}}))}else ef=ef.concat(p({key:`${ev}[0]`,value:em[0],valueSpec:{},style:x.style,styleSpec:x.styleSpec},em));return Nn(Qt(em[1]))?ef.concat([new Wn(`${ev}[1]`,em[1],"expressions are not allowed in function stops.")]):ef.concat(Ci({key:`${ev}[1]`,value:em[1],valueSpec:eu,style:x.style,styleSpec:x.styleSpec}))}function p(x,eg){let ev=Dn(x.value),eb=Jt(x.value),ew=null!==x.value?x.value:eg;if(em){if(ev!==em)return[new Wn(x.key,ew,`${ev} stop domain type must match previous stop domain type ${em}`)]}else em=ev;if("number"!==ev&&"string"!==ev&&"boolean"!==ev&&"number"!=typeof eb&&"string"!=typeof eb&&"boolean"!=typeof eb)return[new Wn(x.key,ew,"stop domain value must be a number, string, or boolean")];if("number"!==ev&&"categorical"!==ef){let em=`number expected, ${ev} found`;return En(eu)&&void 0===ef&&(em+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Wn(x.key,ew,em)]}return"categorical"!==ef||"number"!==ev||"number"==typeof eb&&isFinite(eb)&&Math.floor(eb)===eb?"categorical"!==ef&&"number"===ev&&"number"==typeof eb&&"number"==typeof e_&&void 0!==e_&&eb<e_?[new Wn(x.key,ew,"stop domain values must appear in ascending order")]:(e_=eb,"categorical"===ef&&eb in ex?[new Wn(x.key,ew,"stop domain values must be unique")]:(ex[eb]=!0,[])):[new Wn(x.key,ew,`integer expected, found ${String(eb)}`)]}}function ri(x){let eu=("property"===x.expressionContext?Kn:Gn)(Qt(x.value),x.valueSpec);if("error"===eu.result)return eu.value.map(eu=>new Wn(`${x.key}${eu.key}`,x.value,eu.message));let ef=eu.value.expression||eu.value._styleExpression.expression;if("property"===x.expressionContext&&"text-font"===x.propertyKey&&!ef.outputDefined())return[new Wn(x.key,x.value,`Invalid data expression for "${x.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===x.expressionContext&&"layout"===x.propertyType&&!gr(ef))return[new Wn(x.key,x.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===x.expressionContext)return function ni(x,eu){let ef=new Set(["zoom","feature-state","pitch","distance-from-center"]);if(eu.valueSpec&&eu.valueSpec.expression)for(let x of eu.valueSpec.expression.parameters)ef.delete(x);if(0===ef.size)return[];let em=[];return x instanceof Ye&&ef.has(x.name)?[new Wn(eu.key,eu.value,`["${x.name}"] expression is not supported in a filter for a ${eu.object.type}
1 layer with id: ${eu.object.id}`)]:(x.eachChild(x=>{em.push(...ni(x,eu))}),em)}(ef,x);if(x.expressionContext&&0===x.expressionContext.indexOf("cluster")){if(!xr(ef,["zoom","feature-state"]))return[new Wn(x.key,x.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===x.expressionContext&&!mr(ef))return[new Wn(x.key,x.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function ii(x){let eu=x.key,ef=x.value,em=x.valueSpec,e_=[];return Array.isArray(em.values)?-1===em.values.indexOf(Jt(ef))&&e_.push(new Wn(eu,ef,`expected one of [${em.values.join(", ")}], ${JSON.stringify(ef)} found`)):-1===Object.keys(em.values).indexOf(Jt(ef))&&e_.push(new Wn(eu,ef,`expected one of [${Object.keys(em.values).join(", ")}], ${JSON.stringify(ef)} found`)),e_}function si(x){if(!0===x||!1===x)return!0;if(!Array.isArray(x)||0===x.length)return!1;switch(x[0]){case"has":return x.length>=2&&"$id"!==x[1]&&"$type"!==x[1];case"in":return x.length>=3&&("string"!=typeof x[1]||Array.isArray(x[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==x.length||Array.isArray(x[1])||Array.isArray(x[2]);case"any":case"all":for(let eu of x.slice(1))if(!si(eu)&&"boolean"!=typeof eu)return!1;return!0;default:return!0}}function ai(x,eu="fill"){if(null==x)return{filter:()=>!0,needGeometry:!1,needFeature:!1};si(x)||(x=function fi(x){if(!x)return!0;let eu=x[0];return x.length<=1?"any"!==eu:"=="===eu?di(x[1],x[2],"=="):"!="===eu?gi(di(x[1],x[2],"==")):"<"===eu||">"===eu||"<="===eu||">="===eu?di(x[1],x[2],eu):"any"===eu?["any"].concat(x.slice(1).map(fi)):"all"===eu?["all"].concat(x.slice(1).map(fi)):"none"===eu?["all"].concat(x.slice(1).map(fi).map(gi)):"in"===eu?yi(x[1],x.slice(2)):"!in"===eu?gi(yi(x[1],x.slice(2))):"has"===eu?mi(x[1]):"!has"===eu?gi(mi(x[1])):"within"!==eu||x}(x));let ef=x,em=!0;try{em=function(x){if(!ui(x))return x;let eu=Qt(x);return function li(x){let eu=!1,ef=[];if("case"===x[0]){for(let em=1;em<x.length-1;em+=2)eu=eu||ui(x[em]),ef.push(x[em+1]);ef.push(x[x.length-1])}else if("match"===x[0]){eu=eu||ui(x[1]);for(let eu=2;eu<x.length-1;eu+=2)ef.push(x[eu+1]);ef.push(x[x.length-1])}else if("step"===x[0]){eu=eu||ui(x[1]);for(let eu=1;eu<x.length-1;eu+=2)ef.push(x[eu+1])}eu&&(x.length=0,x.push("any",...ef));for(let eu=1;eu<x.length;eu++)li(x[eu])}(eu),eu=function oi(x){if(!Array.isArray(x))return x;let eu=function(x){if(t$.has(x[0])){for(let eu=1;eu<x.length;eu++)if(ui(x[eu]))return!0}return x}(x);return!0===eu?eu:eu.map(x=>oi(x))}(eu)}(ef)}catch(x){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate. 2This is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md 3and paste the contents of this message in the report. 4Thank you! 5Filter Expression: 6${JSON.stringify(ef,null,2)} 7 `)}let e_=e9[`filter_${eu}`],eg=Gn(em,e_),ex=null;if("error"===eg.result)throw Error(eg.value.map(x=>`${x.key}: ${x.message}`).join(", "));ex=(x,eu,ef)=>eg.value.evaluate(x,eu,{},ef);let ev=null,eb=null;if(em!==ef){let x=Gn(ef,e_);if("error"===x.result)throw Error(x.value.map(x=>`${x.key}: ${x.message}`).join(", "));ev=(eu,ef,em,e_,eg)=>x.value.evaluate(eu,ef,{},em,void 0,void 0,e_,eg),eb=!mr(x.value.expression)}return{filter:ex,dynamicFilter:ev||void 0,needGeometry:function pi(x){if(!Array.isArray(x))return!1;if("within"===x[0])return!0;for(let eu=1;eu<x.length;eu++)if(pi(x[eu]))return!0;return!1}(em),needFeature:!!eb}}function ui(x){var eu;if(!Array.isArray(x))return!1;if("pitch"===(eu=x[0])||"distance-from-center"===eu)return!0;for(let eu=1;eu<x.length;eu++)if(ui(x[eu]))return!0;return!1}let t$=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]);function hi(x,eu){return x<eu?-1:x>eu?1:0}function di(x,eu,ef){switch(x){case"$type":return[`filter-type-${ef}`,eu];case"$id":return[`filter-id-${ef}`,eu];default:return[`filter-${ef}`,x,eu]}}function yi(x,eu){if(0===eu.length)return!1;switch(x){case"$type":return["filter-type-in",["literal",eu]];case"$id":return["filter-id-in",["literal",eu]];default:return eu.length>200&&!eu.some(x=>typeof x!=typeof eu[0])?["filter-in-large",x,["literal",eu.sort(hi)]]:["filter-in-small",x,["literal",eu]]}}function mi(x){switch(x){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",x]}}function gi(x){return["!",x]}function xi(x){return si(Qt(x.value))?ri(Wt({},x,{expressionContext:"filter",valueSpec:x.styleSpec[`filter_${x.layerType||"fill"}`]})):function vi(x){let eu=x.value,ef=x.key;if("array"!==Dn(eu))return[new Wn(ef,eu,`array expected, ${Dn(eu)} found`)];let em=x.styleSpec,e_,eg=[];if(eu.length<1)return[new Wn(ef,eu,"filter array must have at least 1 element")];switch(eg=eg.concat(ii({key:`${ef}[0]`,value:eu[0],valueSpec:em.filter_operator,style:x.style,styleSpec:x.styleSpec})),Jt(eu[0])){case"<":case"<=":case">":case">=":eu.length>
7=2&&"$type"===Jt(eu[1])&&eg.push(new Wn(ef,eu,`"$type" cannot be use with operator "${eu[0]}"`));case"==":case"!=":3!==eu.length&&eg.push(new Wn(ef,eu,`filter array for operator "${eu[0]}" must have 3 elements`));case"in":case"!in":eu.length>=2&&"string"!==(e_=Dn(eu[1]))&&eg.push(new Wn(`${ef}[1]`,eu[1],`string expected, ${e_} found`));for(let ex=2;ex<eu.length;ex++)e_=Dn(eu[ex]),"$type"===Jt(eu[1])?eg=eg.concat(ii({key:`${ef}[${ex}]`,value:eu[ex],valueSpec:em.geometry_type,style:x.style,styleSpec:x.styleSpec})):"string"!==e_&&"number"!==e_&&"boolean"!==e_&&eg.push(new Wn(`${ef}[${ex}]`,eu[ex],`string, number, or boolean expected, ${e_} found`));break;case"any":case"all":case"none":for(let em=1;em<eu.length;em++)eg=eg.concat(vi({key:`${ef}[${em}]`,value:eu[em],style:x.style,styleSpec:x.styleSpec}));break;case"has":case"!has":e_=Dn(eu[1]),2!==eu.length?eg.push(new Wn(ef,eu,`filter array for "${eu[0]}" operator must have 2 elements`)):"string"!==e_&&eg.push(new Wn(`${ef}[1]`,eu[1],`string expected, ${e_} found`));break;case"within":e_=Dn(eu[1]),2!==eu.length?eg.push(new Wn(ef,eu,`filter array for "${eu[0]}" operator must have 2 elements`)):"object"!==e_&&eg.push(new Wn(`${ef}[1]`,eu[1],`object expected, ${e_} found`))}return eg}(x)}function bi(x,eu){let ef;let em=x.key,e_=x.style,eg=x.styleSpec,ex=x.value,ev=x.objectKey,eb=eg[`${eu}_${x.layerType}`];if(!eb)return[];let ew=ev.match(/^(.*)-transition$/);if("paint"===eu&&ew&&eb[ew[1]]&&eb[ew[1]].transition)return Ci({key:em,value:ex,valueSpec:eg.transition,style:e_,styleSpec:eg});let eT=x.valueSpec||eb[ev];if(!eT)return[new Wn(em,ex,`unknown property "${ev}"`)];if("string"===Dn(ex)&&En(eT)&&!eT.tokens&&(ef=/^{([^}]+)}$/.exec(ex))){let x=`\`{ "type": "identity", "property": ${ef?JSON.stringify(ef[1]):'"_"'} }\``;return[new Wn(em,ex,`"${ev}" does not support interpolation syntax 8Use an identity property function instead: ${x}.`)]}let eE=[];return"symbol"===x.layerType&&("text-field"===ev&&e_&&!e_.glyphs&&eE.push(new Wn(em,ex,'use of "text-field" requires a style "glyphs" property')),"text-font"===ev&&Vn(Qt(ex))&&"identity"===Jt(ex.type)&&eE.push(new Wn(em,ex,'"text-font" does not support identity functions'))),eE.concat(Ci({key:x.key,value:ex,valueSpec:eT,style:e_,styleSpec:eg,expressionContext:"property",propertyType:eu,propertyKey:ev}))}function wi(x){return bi(x,"paint")}function _i(x){return bi(x,"layout")}function Ai(x){let eu=[],ef=x.value,em=x.key,e_=x.style,eg=x.styleSpec;ef.type||ef.ref||eu.push(new Wn(em,ef,'either "type" or "ref" is required'));let ex=Jt(ef.type),ev=Jt(ef.ref);if(ef.id){let eg=Jt(ef.id);for(let ex=0;ex<x.arrayIndex;ex++){let x=e_.layers[ex];Jt(x.id)===eg&&eu.push(new Wn(em,ef.id,`duplicate layer id "${ef.id}", previously used at line ${x.id.__line__}`))}}if("ref"in ef){let x;["type","source","source-layer","filter","layout"].forEach(x=>{x in ef&&eu.push(new Wn(em,ef[x],`"${x}" is prohibited for ref layers`))}),e_.layers.forEach(eu=>{Jt(eu.id)===ev&&(x=eu)}),x?x.ref?eu.push(new Wn(em,ef.ref,"ref cannot reference another ref layer")):ex=Jt(x.type):"string"==typeof ev&&eu.push(new Wn(em,ef.ref,`ref layer "${ev}" not found`))}else if("background"!==ex&&"sky"!==ex){if(ef.source){let x=e_.sources&&e_.sources[ef.source],eg=x&&Jt(x.type);x?"vector"===eg&&"raster"===ex?eu.push(new Wn(em,ef.source,`layer "${ef.id}" requires a raster source`)):"raster"===eg&&"raster"!==ex?eu.push(new Wn(em,ef.source,`layer "${ef.id}" requires a vector source`)):"vector"!==eg||ef["source-layer"]?"raster-dem"===eg&&"hillshade"!==ex?eu.push(new Wn(em,ef.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===ex&&ef.paint&&(ef.paint["line-gradient"]||ef.paint["line-trim-offset"])&&("geojson"!==eg||!x.lineMetrics)&&eu.push(new Wn(em,ef,`layer "${ef.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):eu.push(new Wn(em,ef,`layer "${ef.id}" must specify a "source-layer"`)):eu.push(new Wn(em,ef.source,`source "${ef.source}" not found`))}else eu.push(new Wn(em,ef,'missing required property "source"'))}return eu=eu.concat(Jn({key:em,value:ef,valueSpec:eg.layer,style:x.style,styleSpec:x.styleSpec,objectElementValidators:{"*":()=>[],type:()=>Ci({key:`${em}.type`,value:ef.type,valueSpec:eg.layer.type,style:x.style,styleSpec:x.styleSpec,object:ef,objectKey:"type"}),filter:x=>xi(Wt({layerType:ex},x)),layout:x=>Jn({layer:ef,key:x.key,value:x.value,valueSpec:{},style:x.style,styleSpec:x.styleSpec,objectElementValidators:{"*":x=>_i(Wt({layerType:ex},x))}}),paint:x=>Jn({layer:ef,key:x.key,value:x.value,valueSpec:{},style:x.style,styleSpec:x.styleSpec,objectElementValidators:{"*":x=>wi(Wt({layerType:ex},x))}})}}))}function Si(x){let eu=x.value,ef=x.key,em=Dn(eu);return"string"!==em?[new Wn(ef,eu,`string expected, ${em}
8 found`)]:[]}let tq={promoteId:function({key:x,value:eu}){if("string"===Dn(eu))return Si({key:x,value:eu});{let ef=[];for(let em in eu)ef.push(...Si({key:`${x}.${em}`,value:eu[em]}));return ef}}};function Ii(x){let eu;let ef=x.value,em=x.key,e_=x.styleSpec,eg=x.style;if(!ef.type)return[new Wn(em,ef,'"type" is required')];let ex=Jt(ef.type);switch(ex){case"vector":case"raster":case"raster-dem":return Jn({key:em,value:ef,valueSpec:e_[`source_${ex.replace("-","_")}`],style:x.style,styleSpec:e_,objectElementValidators:tq});case"geojson":if(eu=Jn({key:em,value:ef,valueSpec:e_.source_geojson,style:eg,styleSpec:e_,objectElementValidators:tq}),ef.cluster)for(let x in ef.clusterProperties){let[e_,eg]=ef.clusterProperties[x],ex="string"==typeof e_?[e_,["accumulated"],["get",x]]:e_;eu.push(...ri({key:`${em}.${x}.map`,value:eg,expressionContext:"cluster-map"})),eu.push(...ri({key:`${em}.${x}.reduce`,value:ex,expressionContext:"cluster-reduce"}))}return eu;case"video":return Jn({key:em,value:ef,valueSpec:e_.source_video,style:eg,styleSpec:e_});case"image":return Jn({key:em,value:ef,valueSpec:e_.source_image,style:eg,styleSpec:e_});case"canvas":return[new Wn(em,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return ii({key:`${em}.type`,value:ef.type,valueSpec:{values:e_.source.reduce((x,eu)=>{let ef=e_[eu];return"enum"===ef.type.type&&(x=x.concat(Object.keys(ef.type.values))),x},[])},style:eg,styleSpec:e_})}}function Ti(x){let eu=x.value,ef=x.styleSpec,em=ef.light,e_=x.style,eg=[],ex=Dn(eu);if(void 0===eu)return eg;if("object"!==ex)return eg.concat([new Wn("light",eu,`object expected, ${ex} found`)]);for(let x in eu){let ex=x.match(/^(.*)-transition$/);eg=eg.concat(ex&&em[ex[1]]&&em[ex[1]].transition?Ci({key:x,value:eu[x],valueSpec:ef.transition,style:e_,styleSpec:ef}):em[x]?Ci({key:x,value:eu[x],valueSpec:em[x],style:e_,styleSpec:ef}):[new Wn(x,eu[x],`unknown property "${x}"`)])}return eg}function zi(x){let eu=x.value,ef=x.key,em=x.style,e_=x.styleSpec,eg=e_.terrain,ex=[],ev=Dn(eu);if(void 0===eu)return ex;if("object"!==ev)return ex.concat([new Wn("terrain",eu,`object expected, ${ev} found`)]);for(let x in eu){let ef=x.match(/^(.*)-transition$/);ex=ex.concat(ef&&eg[ef[1]]&&eg[ef[1]].transition?Ci({key:x,value:eu[x],valueSpec:e_.transition,style:em,styleSpec:e_}):eg[x]?Ci({key:x,value:eu[x],valueSpec:eg[x],style:em,styleSpec:e_}):[new Wn(x,eu[x],`unknown property "${x}"`)])}if(eu.source){let x=em.sources&&em.sources[eu.source],e_=x&&Jt(x.type);x?"raster-dem"!==e_&&ex.push(new Wn(ef,eu.source,`terrain cannot be used with a source of type ${String(e_)}, it only be used with a "raster-dem" source type`)):ex.push(new Wn(ef,eu.source,`source "${eu.source}" not found`))}else ex.push(new Wn(ef,eu,'terrain is missing required property "source"'));return ex}function Bi(x){let eu=x.value,ef=x.style,em=x.styleSpec,e_=em.fog,eg=[],ex=Dn(eu);if(void 0===eu)return eg;if("object"!==ex)return eg.concat([new Wn("fog",eu,`object expected, ${ex} found`)]);for(let x in eu){let ex=x.match(/^(.*)-transition$/);eg=eg.concat(ex&&e_[ex[1]]&&e_[ex[1]].transition?Ci({key:x,value:eu[x],valueSpec:em.transition,style:ef,styleSpec:em}):e_[x]?Ci({key:x,value:eu[x],valueSpec:e_[x],style:ef,styleSpec:em}):[new Wn(x,eu[x],`unknown property "${x}"`)])}return eg}let tW={"*":()=>[],array:Qn,boolean:function(x){let eu=x.value,ef=x.key,em=Dn(eu);return"boolean"!==em?[new Wn(ef,eu,`boolean expected, ${em} found`)]:[]},number:ti,color:function(x){let eu=x.key,ef=x.value,em=Dn(ef);return"string"!==em?[new Wn(eu,ef,`color expected, ${em} found`)]:null===tb(ef)?[new Wn(eu,ef,`color expected, "${ef}" found`)]:[]},enum:ii,filter:xi,function:ei,layer:Ai,object:Jn,source:Ii,light:Ti,terrain:zi,fog:Bi,string:Si,formatted:function(x){return 0===Si(x).length?[]:ri(x)},resolvedImage:function(x){return 0===Si(x).length?[]:ri(x)},projection:function(x){let eu=x.value,ef=x.styleSpec,em=ef.projection,e_=x.style,eg=[],ex=Dn(eu);if("object"===ex)for(let x in eu)eg=eg.concat(Ci({key:x,value:eu[x],valueSpec:em[x],style:e_,styleSpec:ef}));else"string"!==ex&&(eg=eg.concat([new Wn("projection",eu,`object or string expected, ${ex} found`)]));return eg}};function Ci(x){let eu=x.value,ef=x.valueSpec,em=x.styleSpec;return ef.expression&&Vn(Jt(eu))?ei(x):ef.expression&&Nn(Qt(eu))?ri(x):ef.type&&tW[ef.type]?tW[ef.type](x):Jn(Wt({},x,{valueSpec:ef.type?em[ef.type]:ef}))}function Pi(x){let eu=x.value,ef=x.key,em=Si(x);return em.length||(-1===eu.indexOf("{fontstack}")&&em.push(new Wn(ef,eu,'"glyphs" url must include a "{fontstack}" token')),-1===eu.indexOf("{range}")&&em.push(new Wn(ef,eu,'"glyphs" url must include a "{range}" token'))),em}function Di(x,eu=e9){return Fi(Ci({key:"",value:x,valueSpec:eu.$root,styleSpec:eu,style:x,objectElementValidators:{glyphs:Pi,"*":()=>[]}}))}let Vi=x=>Fi(wi(x)),Li=x=>Fi(_i(x));function Fi(x){return x.slice().sort((x,eu)=>x.line&&eu.line?x.line-eu.line:0)}function Ri(x,eu){let ef=!1;if(eu&&eu.length)for(let em of eu)x.fire(new Kt(Error(em.message))),ef=!0;return ef}function $i(x,eu,ef){var em=this.cells=[];if(x instanceof ArrayBuffer){this.arrayBuffer=x;var e_=new Int32Array(this.arrayBuffer);x=e_[0],this.d=(eu=e_[1])+2*(ef=e_[2]);for(var eg=0;eg<this.d*this.d;eg++){var ex=e_[3+eg],ev=e_[3+eg+1];em.push(ex===ev?null:e_.subarray(ex,ev))}var eb=e_[3+em.length+1];this.keys=e_.subarray(e_[3+em.length],eb),this.bboxes=e_.subarray(eb),this.insert=this._insertReadonly}else{this.d=eu+2*ef;for(var ew=0;ew<this.d*this.d;ew++)em.push([]);this.keys=[],this.bboxes=[]}this.n=eu,this.extent=x,this.padding=ef,this.scale=eu/x,this.uid=0;var eT=ef/eu*x;this.min=-eT,this.max=x+eT}
8$i.prototype.insert=function(x,eu,ef,em,e_){this._forEachCell(eu,ef,em,e_,this._insertCell,this.uid++),this.keys.push(x),this.bboxes.push(eu),this.bboxes.push(ef),this.bboxes.push(em),this.bboxes.push(e_)},$i.prototype._insertReadonly=function(){throw"Cannot insert into a GridIndex created from an ArrayBuffer."},$i.prototype._insertCell=function(x,eu,ef,em,e_,eg){this.cells[e_].push(eg)},$i.prototype.query=function(x,eu,ef,em,e_){var eg=this.min,ex=this.max;if(x<=eg&&eu<=eg&&ex<=ef&&ex<=em&&!e_)return Array.prototype.slice.call(this.keys);var ev=[];return this._forEachCell(x,eu,ef,em,this._queryCell,ev,{},e_),ev},$i.prototype._queryCell=function(x,eu,ef,em,e_,eg,ex,ev){var eb=this.cells[e_];if(null!==eb)for(var ew=this.keys,eT=this.bboxes,eE=0;eE<eb.length;eE++){var eS=eb[eE];if(void 0===ex[eS]){var eM=4*eS;(ev?ev(eT[eM+0],eT[eM+1],eT[eM+2],eT[eM+3]):x<=eT[eM+2]&&eu<=eT[eM+3]&&ef>=eT[eM+0]&&em>=eT[eM+1])?(ex[eS]=!0,eg.push(ew[eS])):ex[eS]=!1}}},$i.prototype._forEachCell=function(x,eu,ef,em,e_,eg,ex,ev){for(var eb=this._convertToCellCoord(x),ew=this._convertToCellCoord(eu),eT=this._convertToCellCoord(ef),eE=this._convertToCellCoord(em),eS=eb;eS<=eT;eS++)for(var eM=ew;eM<=eE;eM++){var eI=this.d*eM+eS;if((!ev||ev(this._convertFromCellCoord(eS),this._convertFromCellCoord(eM),this._convertFromCellCoord(eS+1),this._convertFromCellCoord(eM+1)))&&e_.call(this,x,eu,ef,em,eI,eg,ex,ev))return}},$i.prototype._convertFromCellCoord=function(x){return(x-this.padding)/this.scale},$i.prototype._convertToCellCoord=function(x){return Math.max(0,Math.min(this.d-1,Math.floor(x*this.scale)+this.padding))},$i.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var x=this.cells,eu=3+this.cells.length+1+1,ef=0,em=0;em<this.cells.length;em++)ef+=this.cells[em].length;var e_=new Int32Array(eu+ef+this.keys.length+this.bboxes.length);e_[0]=this.extent,e_[1]=this.n,e_[2]=this.padding;for(var eg=eu,ex=0;ex<x.length;ex++){var ev=x[ex];e_[3+ex]=eg,e_.set(ev,eg),eg+=ev.length}return e_[3+x.length]=eg,e_.set(this.keys,eg),e_[3+x.length+1]=eg+=this.keys.length,e_.set(this.bboxes,eg),eg+=this.bboxes.length,e_.buffer};let tX={};function Oi(x,eu,ef={}){Object.defineProperty(x,"_classRegistryKey",{value:eu,writeable:!1}),tX[eu]={klass:x,omit:ef.omit||[]}}for(let x in Oi(Object,"Object"),$i.serialize=function(x,eu){let ef=x.toArrayBuffer();return eu&&eu.push(ef),{buffer:ef}},$i.deserialize=function(x){return new $i(x.buffer)},Object.defineProperty($i,"name",{value:"Grid"}),Oi($i,"Grid"),Oi(Ie,"Color"),Oi(Error,"Error"),Oi(at,"AJAXError"),Oi(Ee,"ResolvedImage"),Oi(Yn,"StylePropertyFunction"),Oi(qn,"StyleExpression",{omit:["_evaluator"]}),Oi(Xn,"ZoomDependentExpression"),Oi(Zn,"ZoomConstantExpression"),Oi(Ye,"CompoundExpression",{omit:["_evaluate"]}),tZ)tX[tZ[x]._classRegistryKey]||Oi(tZ[x],`Expression${x}`);function qi(x){return x&&"undefined"!=typeof ArrayBuffer&&(x instanceof ArrayBuffer||x.constructor&&"ArrayBuffer"===x.constructor.name)}function Ni(x){return eT.ImageBitmap&&x instanceof eT.ImageBitmap}function Gi(x,eu){if(null==x||"boolean"==typeof x||"number"==typeof x||"string"==typeof x||x instanceof Boolean||x instanceof Number||x instanceof String||x instanceof Date||x instanceof RegExp)return x;if(qi(x)||Ni(x))return eu&&eu.push(x),x;if(ArrayBuffer.isView(x))return eu&&eu.push(x.buffer),x;if(x instanceof eT.ImageData)return eu&&eu.push(x.data.buffer),x;if(Array.isArray(x)){let ef=[];for(let em of x)ef.push(Gi(em,eu));return ef}if("object"==typeof x){let ef=x.constructor,em=ef._classRegistryKey;if(!em)throw Error(`can't serialize object of unregistered class ${em}`);let e_=ef.serialize?ef.serialize(x,eu):{};if(!ef.serialize){for(let ef in x)x.hasOwnProperty(ef)&&(tX[em].omit.indexOf(ef)>=0||(e_[ef]=Gi(x[ef],eu)));x instanceof Error&&(e_.message=x.message)}if(e_.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==em&&(e_.$name=em),e_}throw Error("can't serialize object of type "+typeof x)}function Zi(x){if(null==x||"boolean"==typeof x||"number"==typeof x||"string"==typeof x||x instanceof Boolean||x instanceof Number||x instanceof String||x instanceof Date||x instanceof RegExp||qi(x)||Ni(x)||ArrayBuffer.isView(x)||x
8instanceof eT.ImageData)return x;if(Array.isArray(x))return x.map(Zi);if("object"==typeof x){let eu=x.$name||"Object",{klass:ef}=tX[eu];if(!ef)throw Error(`can't deserialize unregistered class ${eu}`);if(ef.deserialize)return ef.deserialize(x);let em=Object.create(ef.prototype);for(let eu of Object.keys(x))"$name"!==eu&&(em[eu]=Zi(x[eu]));return em}throw Error("can't deserialize object of type "+typeof x)}let Xi=x=>x>=1536&&x<=1791,Ki=x=>x>=1872&&x<=1919,Yi=x=>x>=2208&&x<=2303,Hi=x=>x>=11904&&x<=12031,Wi=x=>x>=12032&&x<=12255,Ji=x=>x>=12272&&x<=12287,Qi=x=>x>=12288&&x<=12351,ts=x=>x>=12352&&x<=12447,es=x=>x>=12448&&x<=12543,rs=x=>x>=12544&&x<=12591,ns=x=>x>=12704&&x<=12735,is=x=>x>=12736&&x<=12783,ss=x=>x>=12784&&x<=12799,as=x=>x>=12800&&x<=13055,os=x=>x>=13056&&x<=13311,ls=x=>x>=13312&&x<=19903,us=x=>x>=19968&&x<=40959,cs=x=>x>=40960&&x<=42127,hs=x=>x>=42128&&x<=42191,ps=x=>x>=44032&&x<=55215,fs=x=>x>=63744&&x<=64255,ds=x=>x>=64336&&x<=65023,ys=x=>x>=65040&&x<=65055,ms=x=>x>=65072&&x<=65103,gs=x=>x>=65104&&x<=65135,xs=x=>x>=65136&&x<=65279,vs=x=>x>=65280&&x<=65519;function bs(x){for(let eu of x)if(As(eu.charCodeAt(0)))return!0;return!1}function As(x){return!(746!==x&&747!==x&&(x<4352||!(ns(x)||rs(x)||ms(x)&&!(x>=65097&&x<=65103)||fs(x)||os(x)||Hi(x)||is(x)||!(!Qi(x)||x>=12296&&x<=12305||x>=12308&&x<=12319||12336===x)||ls(x)||us(x)||as(x)||x>=12592&&x<=12687||x>=43360&&x<=43391||x>=55216&&x<=55295||x>=4352&&x<=4607||ps(x)||ts(x)||Ji(x)||x>=12688&&x<=12703||Wi(x)||ss(x)||es(x)&&12540!==x||!(!vs(x)||65288===x||65289===x||65293===x||x>=65306&&x<=65310||65339===x||65341===x||65343===x||x>=65371&&x<=65503||65507===x||x>=65512&&x<=65519)||!(!gs(x)||x>=65112&&x<=65118||x>=65123&&x<=65126)||x>=5120&&x<=5759||x>=6320&&x<=6399||ys(x)||x>=19904&&x<=19967||cs(x)||hs(x))))}function Ss(x){return!(As(x)||x>=128&&x<=255&&(167===x||169===x||174===x||177===x||188===x||189===x||190===x||215===x||247===x)||x>=8192&&x<=8303&&(8214===x||8224===x||8225===x||8240===x||8241===x||8251===x||8252===x||8258===x||8263===x||8264===x||8265===x||8273===x)||x>=8448&&x<=8527||x>=8528&&x<=8591||x>=8960&&x<=9215&&(x>=8960&&x<=8967||x>=8972&&x<=8991||x>=8996&&x<=9e3||9003===x||x>=9085&&x<=9114||x>=9150&&x<=9165||9167===x||x>=9169&&x<=9179||x>=9186&&x<=9215)||x>=9216&&x<=9279&&9251!==x||x>=9280&&x<=9311||x>=9312&&x<=9471||x>=9632&&x<=9727||x>=9728&&x<=9983&&!(x>=9754&&x<=9759)||x>=11008&&x<=11263&&(x>=11026&&x<=11055||x>=11088&&x<=11097||x>=11192&&x<=11243)||Qi(x)||es(x)||x>=57344&&x<=63743||ms(x)||gs(x)||vs(x)||8734===x||8756===x||8757===x||x>=9984&&x<=10087||x>=10102&&x<=10131||65532===x||65533===x)}function ks(x){return x>=1424&&x<=2303||ds(x)||xs(x)}let tH="deferred",tY="loading",tJ="loaded",tK=null,tQ="unavailable",t0=null,Ds=function(x){x&&"string"==typeof x&&x.indexOf("NetworkError")>-1&&(tQ="error"),tK&&tK(x)};function Vs(){t1.fire(new Xt("pluginStateChange",{pluginStatus:tQ,pluginURL:t0}))}let t1=new Yt,Fs=function(){return tQ},Rs=function(){if(tQ!==tH||!t0)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");tQ=tY,Vs(),t0&&ut({url:t0},x=>{x?Ds(x):(tQ=tJ,Vs())})},t2={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>tQ===tJ||null!=t2.applyArabicShaping,isLoading:()=>tQ===tY,setState(x){tQ=x.pluginStatus,t0=x.pluginURL},isParsed:()=>null!=t2.applyArabicShaping&&null!=t2.processBidirectionalText&&null!=t2.processStyledBidirectionalText,getPluginURL:()=>t0};let $s=class $s{constructor(x,eu){this.zoom=x,eu?(this.now=eu.now,this.fadeDuration=eu.fadeDuration,this.transition=eu.transition,this.pitch=eu.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0)}isSupportedScript(x){return function(x,eu){for(let em of x){var ef;if(ef=em.charCodeAt(0),!eu&&ks(ef)||ef>=2304&&ef<=3583||ef>=3840&&ef<=4255||ef>=6016&&ef<=6143)return!1}return!0}(x,t2.isLoaded())}};let Us=class Us{constructor(x,eu){this.property=x,this.value=eu,this.expression=function(x,eu){if(Vn(x))return new Yn(x,eu);if(Nn(x)){let ef=Kn(x,eu);if("error"===ef.result)throw Error(ef.value.map(x=>`${x.key}: ${x.message}`).join(", "));return ef.value}{let ef=x;return"string"==typeof x&&"color"===eu.type&&(ef=Ie.parse(x)),{kind:"constant",evaluate:()=>ef}}}(void 0===eu?x.specification.default:eu,x.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(x,eu,ef){return this.property.possiblyEvaluate(this,x,eu,ef)}};
8let Os=class Os{constructor(x){this.property=x,this.value=new Us(x,void 0)}transitioned(x,eu){return new Ns(this.property,this.value,eu,z({},x.transition,this.transition),x.now)}untransitioned(){return new Ns(this.property,this.value,null,{},0)}};let qs=class qs{constructor(x){this._properties=x,this._values=Object.create(x.defaultTransitionablePropertyValues)}getValue(x){return j(this._values[x].value.value)}setValue(x,eu){this._values.hasOwnProperty(x)||(this._values[x]=new Os(this._values[x].property)),this._values[x].value=new Us(this._values[x].property,null===eu?void 0:j(eu))}getTransition(x){return j(this._values[x].transition)}setTransition(x,eu){this._values.hasOwnProperty(x)||(this._values[x]=new Os(this._values[x].property)),this._values[x].transition=j(eu)||void 0}serialize(){let x={};for(let eu of Object.keys(this._values)){let ef=this.getValue(eu);void 0!==ef&&(x[eu]=ef);let em=this.getTransition(eu);void 0!==em&&(x[`${eu}-transition`]=em)}return x}transitioned(x,eu){let ef=new Gs(this._properties);for(let em of Object.keys(this._values))ef._values[em]=this._values[em].transitioned(x,eu._values[em]);return ef}untransitioned(){let x=new Gs(this._properties);for(let eu of Object.keys(this._values))x._values[eu]=this._values[eu].untransitioned();return x}};let Ns=class Ns{constructor(x,eu,ef,em,e_){let eg=em.delay||0,ex=em.duration||0;e_=e_||0,this.property=x,this.value=eu,this.begin=e_+eg,this.end=this.begin+ex,x.specification.transition&&(em.delay||em.duration)&&(this.prior=ef)}possiblyEvaluate(x,eu,ef){let em=x.now||0,e_=this.value.possiblyEvaluate(x,eu,ef),eg=this.prior;if(eg){if(em>this.end||this.value.isDataDriven())return this.prior=null,e_;if(em<this.begin)return eg.possiblyEvaluate(x,eu,ef);{let ex=(em-this.begin)/(this.end-this.begin);return this.property.interpolate(eg.possiblyEvaluate(x,eu,ef),e_,w(ex))}}return e_}};let Gs=class Gs{constructor(x){this._properties=x,this._values=Object.create(x.defaultTransitioningPropertyValues)}possiblyEvaluate(x,eu,ef){let em=new Ks(this._properties);for(let e_ of Object.keys(this._values))em._values[e_]=this._values[e_].possiblyEvaluate(x,eu,ef);return em}hasTransition(){for(let x of Object.keys(this._values))if(this._values[x].prior)return!0;return!1}};let Zs=class Zs{constructor(x){this._properties=x,this._values=Object.create(x.defaultPropertyValues)}getValue(x){return j(this._values[x].value)}setValue(x,eu){this._values[x]=new Us(this._values[x].property,null===eu?void 0:j(eu))}serialize(){let x={};for(let eu of Object.keys(this._values)){let ef=this.getValue(eu);void 0!==ef&&(x[eu]=ef)}return x}possiblyEvaluate(x,eu,ef){let em=new Ks(this._properties);for(let e_ of Object.keys(this._values))em._values[e_]=this._values[e_].possiblyEvaluate(x,eu,ef);return em}};let Xs=class Xs{constructor(x,eu,ef){this.property=x,this.value=eu,this.parameters=ef}isConstant(){return"constant"===this.value.kind}constantOr(x){return"constant"===this.value.kind?this.value.value:x}evaluate(x,eu,ef,em){return this.property.evaluate(this.value,this.parameters,x,eu,ef,em)}};let Ks=class Ks{constructor(x){this._properties=x,this._values=Object.create(x.defaultPossiblyEvaluatedValues)}get(x){return this._values[x]}};let Ys=class Ys{constructor(x){this.specification=x}possiblyEvaluate(x,eu){return x.expression.evaluate(eu)}interpolate(x,eu,ef){let em=tC[this.specification.type];return em?em(x,eu,ef):x}};let Hs=class Hs{constructor(x,eu){this.specification=x,this.overrides=eu}possiblyEvaluate(x,eu,ef,em){return new Xs(this,"constant"===x.expression.kind||"camera"===x.expression.kind?{kind:"constant",value:x.expression.evaluate(eu,null,{},ef,em)}:x.expression,eu)}interpolate(x,eu,ef){if("constant"!==x.value.kind||"constant"!==eu.value.kind)return x;if(void 0===x.value.value||void 0===eu.value.value)return new Xs(this,{kind:"constant",value:void 0},x.parameters);let em=tC[this.specification.type];return em?new Xs(this,{kind:"constant",value:em(x.value.value,eu.value.value,ef)},x.parameters):x}evaluate(x,eu,ef,em,e_,eg){return"constant"===x.kind?x.value:x.evaluate(eu,ef,em,e_,eg)}};
8let Ws=class Ws{constructor(x){this.specification=x}possiblyEvaluate(x,eu,ef,em){return!!x.expression.evaluate(eu,null,{},ef,em)}interpolate(){return!1}};let Js=class Js{constructor(x){this.properties=x,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];let eu=new $s(0,{});for(let ef in x){let em=x[ef];em.specification.overridable&&this.overridableProperties.push(ef);let e_=this.defaultPropertyValues[ef]=new Us(em,void 0),eg=this.defaultTransitionablePropertyValues[ef]=new Os(em);this.defaultTransitioningPropertyValues[ef]=eg.untransitioned(),this.defaultPossiblyEvaluatedValues[ef]=e_.possiblyEvaluate(eu)}}};function Qs(x,eu){return 256*(x=S(Math.floor(x),0,255))+S(Math.floor(eu),0,255)}Oi(Hs,"DataDrivenProperty"),Oi(Ys,"DataConstantProperty"),Oi(Ws,"ColorRampProperty");let t3={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};let ea=class ea{constructor(x,eu){this._structArray=x,this._pos1=eu*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}};let ra=class ra{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(x,eu){return x._trim(),eu&&(x.isTransferred=!0,eu.push(x.arrayBuffer)),{length:x.length,arrayBuffer:x.arrayBuffer}}static deserialize(x){let eu=Object.create(this.prototype);return eu.arrayBuffer=x.arrayBuffer,eu.length=x.length,eu.capacity=x.arrayBuffer.byteLength/eu.bytesPerElement,eu._refreshViews(),eu}_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(x){this.reserve(x),this.length=x}reserve(x){if(x>this.capacity){this.capacity=Math.max(x,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let eu=this.uint8;this._refreshViews(),eu&&this.uint8.set(eu)}}_refreshViews(){throw Error("_refreshViews() must be implemented by each concrete StructArray layout")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}};function na(x,eu=1){let ef=0,em=0;return{members:x.map(x=>{let e_=t3[x.type].BYTES_PER_ELEMENT,eg=ef=ia(ef,Math.max(eu,e_)),ex=x.components||1;return em=Math.max(em,e_),ef+=e_*ex,{name:x.name,type:x.type,components:ex,offset:eg}}),size:ia(ef,Math.max(em,eu)),alignment:eu}}function ia(x,eu){return Math.ceil(x/eu)*eu}let sa=class sa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu){let ef=this.length;return this.resize(ef+1),this.emplace(ef,x,eu)}emplace(x,eu,ef){let em=2*x;return this.int16[em+0]=eu,this.int16[em+1]=ef,x}};sa.prototype.bytesPerElement=4,Oi(sa,"StructArrayLayout2i4");let aa=class aa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu,ef){let em=this.length;return this.resize(em+1),this.emplace(em,x,eu,ef)}emplace(x,eu,ef,em){let e_=3*x;return this.int16[e_+0]=eu,this.int16[e_+1]=ef,this.int16[e_+2]=em,x}};aa.prototype.bytesPerElement=6,Oi(aa,"StructArrayLayout3i6");let oa=class oa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em){let e_=this.length;return this.resize(e_+1),this.emplace(e_,x,eu,ef,em)}emplace(x,eu,ef,em,e_){let eg=4*x;return this.int16[eg+0]=eu,this.int16[eg+1]=ef,this.int16[eg+2]=em,this.int16[eg+3]=e_,x}};oa.prototype.bytesPerElement=8,Oi(oa,"StructArrayLayout4i8");let la=class la extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex){let ev=this.length;return this.resize(ev+1),this.emplace(ev,x,eu,ef,em,e_,eg,ex)}emplace(x,eu,ef,em,e_,eg,ex,ev){let eb=6*x,ew=12*x;return this.int16[eb+0]=eu,this.int16[eb+1]=ef,this.uint8[ew+4]=em,this.uint8[ew+5]=e_,this.uint8[ew+6]=eg,this.uint8[ew+7]=ex,this.float32[3*x+2]=ev,x}};la.prototype.bytesPerElement=12,Oi(la,"StructArrayLayout2i4ub1f12");let ua=class ua extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em){let e_=this.length;return this.resize(e_+1),this.emplace(e_,x,eu,ef,em)}emplace(x,eu,ef,em,e_){let eg=4*x;return this.float32[eg+0]=eu,this.float32[eg+1]=ef,this.float32[eg+2]=em,this.float32[eg+3]=e_,x}};ua.prototype.bytesPerElement=16,Oi(ua,"StructArrayLayout4f16");let ca=class ca extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_){let eg=this.length;return this.resize(eg+1),this.emplace(eg,x,eu,ef,em,e_)}emplace(x,eu,ef,em,e_,eg){let ex=6*x;return this.uint16[ex+0]=eu,this.uint16[ex+1]=ef,this.uint16[ex+2]=em,this.uint16[ex+3]=e_,this.float32[3*x+2]=eg,x}};ca.prototype.bytesPerElement=12,Oi(ca,"StructArrayLayout4ui1f12");let ha=class ha extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em){let e_=this.length;return this.resize(e_+1),this.emplace(e_,x,eu,ef,em)}emplace(x,eu,ef,em,e_){let eg=4*x;return this.uint16[eg+0]=eu,this.uint16[eg+1]=ef,this.uint16[eg+2]=em,this.uint16[eg+3]=e_,x}};ha.prototype.bytesPerElement=8,Oi(ha,"StructArrayLayout4ui8");let pa=class pa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg){let ex=this.length;return this.resize(ex+1),this.emplace(ex,x,eu,ef,em,e_,eg)}emplace(x,eu,ef,em,e_,eg,ex){let ev=6*x;return this.int16[ev+0]=eu,this.int16[ev+1]=ef,this.int16[ev+2]=em,this.int16[ev+3]=e_,this.int16[ev+4]=eg,this.int16[ev+5]=ex,x}};pa.prototype.bytesPerElement=12,Oi(pa,"StructArrayLayout6i12");let fa=class fa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE){let eS=this.length;return this.resize(eS+1),this.emplace(eS,x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE)}emplace(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS){let eM=12*x;return this.int16[eM+0]=eu,this.int16[eM+1]=ef,this.int16[eM+2]=em,this.int16[eM+3]=e_,this.uint16[eM+4]=eg,this.uint16[eM+5]=ex,this.uint16[eM+6]=ev,this.uint16[eM+7]=eb,this.int16[eM+8]=ew,this.int16[eM+9]=eT,this.int16[eM+10]=eE,this.int16[eM+11]=eS,x}};fa.prototype.bytesPerElement=24,Oi(fa,"StructArrayLayout4i4ui4i24");let da=class da extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg){let ex=this.length;return this.resize(ex+1),this.emplace(ex,x,eu,ef,em,e_,eg)}emplace(x,eu,ef,em,e_,eg,ex){let ev=10*x,eb=5*x;return this.int16[ev+0]=eu,this.int16[ev+1]=ef,this.int16[ev+2]=em,this.float32[eb+2]=e_,this.float32[eb+3]=eg,this.float32[eb+4]=ex,x}};da.prototype.bytesPerElement=20,Oi(da,"StructArrayLayout3i3f20");let ya=class ya extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(x){let eu=this.length;return this.resize(eu+1),this.emplace(eu,x)}emplace(x,eu){return this.uint32[1*x+0]=eu,x}};
8ya.prototype.bytesPerElement=4,Oi(ya,"StructArrayLayout1ul4");let ma=class ma extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS){let eM=this.length;return this.resize(eM+1),this.emplace(eM,x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS)}emplace(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM){let eI=20*x,eA=10*x;return this.int16[eI+0]=eu,this.int16[eI+1]=ef,this.int16[eI+2]=em,this.int16[eI+3]=e_,this.int16[eI+4]=eg,this.float32[eA+3]=ex,this.float32[eA+4]=ev,this.float32[eA+5]=eb,this.float32[eA+6]=ew,this.int16[eI+14]=eT,this.uint32[eA+8]=eE,this.uint16[eI+18]=eS,this.uint16[eI+19]=eM,x}};ma.prototype.bytesPerElement=40,Oi(ma,"StructArrayLayout5i4f1i1ul2ui40");let ga=class ga extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex){let ev=this.length;return this.resize(ev+1),this.emplace(ev,x,eu,ef,em,e_,eg,ex)}emplace(x,eu,ef,em,e_,eg,ex,ev){let eb=8*x;return this.int16[eb+0]=eu,this.int16[eb+1]=ef,this.int16[eb+2]=em,this.int16[eb+4]=e_,this.int16[eb+5]=eg,this.int16[eb+6]=ex,this.int16[eb+7]=ev,x}};ga.prototype.bytesPerElement=16,Oi(ga,"StructArrayLayout3i2i2i16");let xa=class xa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_){let eg=this.length;return this.resize(eg+1),this.emplace(eg,x,eu,ef,em,e_)}emplace(x,eu,ef,em,e_,eg){let ex=4*x,ev=8*x;return this.float32[ex+0]=eu,this.float32[ex+1]=ef,this.float32[ex+2]=em,this.int16[ev+6]=e_,this.int16[ev+7]=eg,x}};xa.prototype.bytesPerElement=16,Oi(xa,"StructArrayLayout2f1f2i16");let va=class va extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em){let e_=this.length;return this.resize(e_+1),this.emplace(e_,x,eu,ef,em)}emplace(x,eu,ef,em,e_){let eg=12*x,ex=3*x;return this.uint8[eg+0]=eu,this.uint8[eg+1]=ef,this.float32[ex+1]=em,this.float32[ex+2]=e_,x}};va.prototype.bytesPerElement=12,Oi(va,"StructArrayLayout2ub2f12");let ba=class ba extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef){let em=this.length;return this.resize(em+1),this.emplace(em,x,eu,ef)}emplace(x,eu,ef,em){let e_=3*x;return this.float32[e_+0]=eu,this.float32[e_+1]=ef,this.float32[e_+2]=em,x}};ba.prototype.bytesPerElement=12,Oi(ba,"StructArrayLayout3f12");let wa=class wa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu,ef){let em=this.length;return this.resize(em+1),this.emplace(em,x,eu,ef)}emplace(x,eu,ef,em){let e_=3*x;return this.uint16[e_+0]=eu,this.uint16[e_+1]=ef,this.uint16[e_+2]=em,x}};wa.prototype.bytesPerElement=6,Oi(wa,"StructArrayLayout3ui6");let _a=class _a extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP){let eL=this.length;return this.resize(eL+1),this.emplace(eL,x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP)}emplace(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP,eL){let eR=30*x,eB=15*x,eO=60*x;return this.int16[eR+0]=eu,this.int16[eR+1]=ef,this.int16[eR+2]=em,this.float32[eB+2]=e_,this.float32[eB+3]=eg,this.uint16[eR+8]=ex,this.uint16[eR+9]=ev,this.uint32[eB+5]=eb,this.uint32[eB+6]=ew,this.uint32[eB+7]=eT,this.uint16[eR+16]=eE,this.uint16[eR+17]=eS,this.uint16[eR+18]=eM,this.float32[eB+10]=eI,this.float32[eB+11]=eA,this.uint8[eO+48]=eC,this.uint8[eO+49]=ez,this.uint8[eO+50]=eD,this.uint32[eB+13]=ek,this.int16[eR+28]=eP,this.uint8[eO+58]=eL,x}};_a.prototype.bytesPerElement=60,Oi(_a,"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60");let Aa=class Aa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP,eL,eR,eB,eO,eF,eU,eV,eN,ej){let eG=this.length;return this.resize(eG+1),this.emplace(eG,x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP,eL,eR,eB,eO,eF,eU,eV,eN,ej)}emplace(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP,eL,eR,eB,eO,eF,eU,eV,eN,ej,eG){let eZ=38*x,e$=19*x;return this.int16[eZ+0]=eu,this.int16[eZ+1]=ef,this.int16[eZ+2]=em,this.float32[e$+2]=e_,this.float32[e$+3]=eg,this.int16[eZ+8]=ex,this.int16[eZ+9]=ev,this.int16[eZ+10]=eb,this.int16[eZ+11]=ew,this.int16[eZ+12]=eT,this.int16[eZ+13]=eE,this.uint16[eZ+14]=eS,this.uint16[eZ+15]=eM,this.uint16[eZ+16]=eI,this.uint16[eZ+17]=eA,this.uint16[eZ+18]=eC,this.uint16[eZ+19]=ez,this.uint16[eZ+20]=eD,this.uint16[eZ+21]=ek,this.uint16[eZ+22]=eP,this.uint16[eZ+23]=eL,this.uint16[eZ+24]=eR,this.uint16[eZ+25]=eB,this.uint16[eZ+26]=eO,this.uint16[eZ+27]=eF,this.uint16[eZ+28]=eU,this.uint32[e$+15]=eV,this.float32[e$+16]=eN,this.float32[e$+17]=ej,this.float32[e$+18]=eG,x}};Aa.prototype.bytesPerElement=76,Oi(Aa,"StructArrayLayout3i2f6i15ui1ul3f76");let Sa=class Sa extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x){let eu=this.length;return this.resize(eu+1),this.emplace(eu,x)}emplace(x,eu){return this.float32[1*x+0]=eu,x}};
8Sa.prototype.bytesPerElement=4,Oi(Sa,"StructArrayLayout1f4");let ka=class ka extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em,e_){let eg=this.length;return this.resize(eg+1),this.emplace(eg,x,eu,ef,em,e_)}emplace(x,eu,ef,em,e_,eg){let ex=5*x;return this.float32[ex+0]=eu,this.float32[ex+1]=ef,this.float32[ex+2]=em,this.float32[ex+3]=e_,this.float32[ex+4]=eg,x}};ka.prototype.bytesPerElement=20,Oi(ka,"StructArrayLayout5f20");let Ia=class Ia extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu,ef,em){let e_=this.length;return this.resize(e_+1),this.emplace(e_,x,eu,ef,em)}emplace(x,eu,ef,em,e_){let eg=6*x;return this.uint32[3*x+0]=eu,this.uint16[eg+2]=ef,this.uint16[eg+3]=em,this.uint16[eg+4]=e_,x}};Ia.prototype.bytesPerElement=12,Oi(Ia,"StructArrayLayout1ul3ui12");let Ma=class Ma extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x,eu){let ef=this.length;return this.resize(ef+1),this.emplace(ef,x,eu)}emplace(x,eu,ef){let em=2*x;return this.uint16[em+0]=eu,this.uint16[em+1]=ef,x}};Ma.prototype.bytesPerElement=4,Oi(Ma,"StructArrayLayout2ui4");let Ta=class Ta extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(x){let eu=this.length;return this.resize(eu+1),this.emplace(eu,x)}emplace(x,eu){return this.uint16[1*x+0]=eu,x}};Ta.prototype.bytesPerElement=2,Oi(Ta,"StructArrayLayout1ui2");let za=class za extends ra{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(x,eu){let ef=this.length;return this.resize(ef+1),this.emplace(ef,x,eu)}emplace(x,eu,ef){let em=2*x;return this.float32[em+0]=eu,this.float32[em+1]=ef,x}};za.prototype.bytesPerElement=8,Oi(za,"StructArrayLayout2f8");let Ba=class Ba extends ea{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}};Ba.prototype.size=40;let Ea=class Ea extends ma{get(x){return new Ba(this,x)}};Oi(Ea,"CollisionBoxArray");let Ca=class Ca extends ea{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(x){this._structArray.uint8[this._pos1+49]=x}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(x){this._structArray.uint8[this._pos1+50]=x}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(x){this._structArray.uint32[this._pos4+13]=x}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(x){this._structArray.uint8[this._pos1+58]=x}};Ca.prototype.size=60;let Pa=class Pa extends _a{get(x){return new Ca(this,x)}};Oi(Pa,"PlacedSymbolArray");let Da=class Da extends ea{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}
8get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(x){this._structArray.uint32[this._pos4+15]=x}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}};Da.prototype.size=76;let Va=class Va extends Aa{get(x){return new Da(this,x)}};Oi(Va,"SymbolInstanceArray");let La=class La extends Sa{getoffsetX(x){return this.float32[1*x+0]}};Oi(La,"GlyphOffsetArray");let Fa=class Fa extends sa{getx(x){return this.int16[2*x+0]}gety(x){return this.int16[2*x+1]}};Oi(Fa,"SymbolLineVertexArray");let Ra=class Ra extends ea{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]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}};Ra.prototype.size=12;let ja=class ja extends Ia{get(x){return new Ra(this,x)}};Oi(ja,"FeatureIndexArray");let $a=class $a extends Ma{geta_centroid_pos0(x){return this.uint16[2*x+0]}geta_centroid_pos1(x){return this.uint16[2*x+1]}};Oi($a,"FillExtrusionCentroidArray");let t5=na([{name:"a_pattern",components:4,type:"Uint16"},{name:"a_pixel_ratio",components:1,type:"Float32"}]),t4=na([{name:"a_dash",components:4,type:"Uint16"}]);var t6={},t8={};({get exports(){return t8},set exports(t){t8=t}}).exports=function(x,eu){var ef,em,e_,eg,ex,ev;for(em=x.length-(ef=3&x.length),e_=eu,ev=0;ev<em;)ex=255&x.charCodeAt(ev)|(255&x.charCodeAt(++ev))<<8|(255&x.charCodeAt(++ev))<<16|(255&x.charCodeAt(++ev))<<24,++ev,e_=27492+(65535&(eg=5*(65535&(e_=(e_^=ex=(65535&(ex=(ex=(65535&ex)*3432918353+(((ex>>>16)*3432918353&65535)<<16)&4294967295)<<15|ex>>>17))*461845907+(((ex>>>16)*461845907&65535)<<16)&4294967295)<<13|e_>>>19))+((5*(e_>>>16)&65535)<<16)&4294967295))+((58964+(eg>>>16)&65535)<<16);switch(ex=0,ef){case 3:ex^=(255&x.charCodeAt(ev+2))<<16;case 2:ex^=(255&x.charCodeAt(ev+1))<<8;case 1:e_^=ex=(65535&(ex=(ex=(65535&(ex^=255&x.charCodeAt(ev)))*3432918353+(((ex>>>16)*3432918353&65535)<<16)&4294967295)<<15|ex>>>17))*461845907+(((ex>>>16)*461845907&65535)<<16)&4294967295}return e_^=x.length,e_=2246822507*(65535&(e_^=e_>>>16))+((2246822507*(e_>>>16)&65535)<<16)&4294967295,e_=3266489909*(65535&(e_^=e_>>>13))+((3266489909*(e_>>>16)&65535)<<16)&4294967295,(e_^=e_>>>16)>>>0};var t9={};({get exports(){return t9},set exports(t){t9=t}}).exports=function(x,eu){for(var ef,em=x.length,e_=eu^em,eg=0;em>=4;)ef=1540483477*(65535&(ef=255&x.charCodeAt(eg)|(255&x.charCodeAt(++eg))<<8|(255&x.charCodeAt(++eg))<<16|(255&x.charCodeAt(++eg))<<24))+((1540483477*(ef>>>16)&65535)<<16),e_=1540483477*(65535&e_)+((1540483477*(e_>>>16)&65535)<<16)^(ef=1540483477*(65535&(ef^=ef>>>24))+((1540483477*(ef>>>16)&65535)<<16)),em-=4,++eg;switch(em){case 3:e_^=(255&x.charCodeAt(eg+2))<<16;case 2:e_^=(255&x.charCodeAt(eg+1))<<8;case 1:e_=1540483477*(65535&(e_^=255&x.charCodeAt(eg)))+((1540483477*(e_>>>16)&65535)<<16)}return e_=1540483477*(65535&(e_^=e_>>>13))+((1540483477*(e_>>>16)&65535)<<16),(e_^=e_>>>15)>>>0};var t7=t8,ir=t9;({get exports(){return t6},set exports(t){t6=t}}).exports=t7,t6.murmur3=t7,t6.murmur2=ir;let Ya=class Ya{constructor(){this.ids=[],this.positions=[],this.indexed=!1}
8add(x,eu,ef,em){this.ids.push(Ha(x)),this.positions.push(eu,ef,em)}getPositions(x){let eu=Ha(x),ef=0,em=this.ids.length-1;for(;ef<em;){let x=ef+em>>1;this.ids[x]>=eu?em=x:ef=x+1}let e_=[];for(;this.ids[ef]===eu;)e_.push({index:this.positions[3*ef],start:this.positions[3*ef+1],end:this.positions[3*ef+2]}),ef++;return e_}static serialize(x,eu){let ef=new Float64Array(x.ids),em=new Uint32Array(x.positions);return function Wa(x,eu,ef,em){for(;ef<em;){let e_=x[ef+em>>1],eg=ef-1,ex=em+1;for(;;){do eg++;while(x[eg]<e_);do ex--;while(x[ex]>e_);if(eg>=ex)break;Ja(x,eg,ex),Ja(eu,3*eg,3*ex),Ja(eu,3*eg+1,3*ex+1),Ja(eu,3*eg+2,3*ex+2)}ex-ef<em-ex?(Wa(x,eu,ef,ex),ef=ex+1):(Wa(x,eu,ex+1,em),em=ex)}}(ef,em,0,ef.length-1),eu&&eu.push(ef.buffer,em.buffer),{ids:ef,positions:em}}static deserialize(x){let eu=new Ya;return eu.ids=x.ids,eu.positions=x.positions,eu.indexed=!0,eu}};function Ha(x){let eu=+x;return!isNaN(eu)&&Number.MIN_SAFE_INTEGER<=eu&&eu<=Number.MAX_SAFE_INTEGER?eu:t6(String(x))}function Ja(x,eu,ef){let em=x[eu];x[eu]=x[ef],x[ef]=em}Oi(Ya,"FeaturePositionMap");let Qa=class Qa{constructor(x){this.gl=x.gl,this.initialized=!1}fetchUniformLocation(x,eu){return this.location||this.initialized||(this.location=this.gl.getUniformLocation(x,eu),this.initialized=!0),!!this.location}};let to=class to extends Qa{constructor(x){super(x),this.current=0}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&this.current!==ef&&(this.current=ef,this.gl.uniform1f(this.location,ef))}};let eo=class eo extends Qa{constructor(x){super(x),this.current=[0,0,0,0]}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&(ef[0]===this.current[0]&&ef[1]===this.current[1]&&ef[2]===this.current[2]&&ef[3]===this.current[3]||(this.current=ef,this.gl.uniform4f(this.location,ef[0],ef[1],ef[2],ef[3])))}};let ro=class ro extends Qa{constructor(x){super(x),this.current=Ie.transparent}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&(ef.r===this.current.r&&ef.g===this.current.g&&ef.b===this.current.b&&ef.a===this.current.a||(this.current=ef,this.gl.uniform4f(this.location,ef.r,ef.g,ef.b,ef.a)))}};let io=new Float32Array(16),il=new Float32Array(9),ic=new Float32Array(4);function ao(x){return[Qs(255*x.r,255*x.g),Qs(255*x.b,255*x.a)]}let oo=class oo{constructor(x,eu,ef){this.value=x,this.uniformNames=eu.map(x=>`u_${x}`),this.type=ef}setUniform(x,eu,ef,em,e_){eu.set(x,e_,em.constantOr(this.value))}getBinding(x,eu){return"color"===this.type?new ro(x):new to(x)}};let lo=class lo{constructor(x,eu){this.uniformNames=eu.map(x=>`u_${x}`),this.pattern=null,this.pixelRatio=1}setConstantPatternPositions(x){this.pixelRatio=x.pixelRatio||1,this.pattern=x.tl.concat(x.br)}setUniform(x,eu,ef,em,e_){let eg="u_pattern"===e_||"u_dash"===e_?this.pattern:"u_pixel_ratio"===e_?this.pixelRatio:null;eg&&eu.set(x,e_,eg)}getBinding(x,eu){return"u_pattern"===eu||"u_dash"===eu?new eo(x):new to(x)}};let uo=class uo{constructor(x,eu,ef,em){this.expression=x,this.type=ef,this.maxValue=0,this.paintVertexAttributes=eu.map(x=>({name:`a_${x}`,type:"Float32",components:"color"===ef?2:1,offset:0})),this.paintVertexArray=new em}populatePaintArray(x,eu,ef,em,e_,eg){let ex=this.paintVertexArray.length,ev=this.expression.evaluate(new $s(0),eu,{},e_,em,eg);this.paintVertexArray.resize(x),this._setPaintValue(ex,x,ev)}updatePaintArray(x,eu,ef,em,e_){let eg=this.expression.evaluate({zoom:0},ef,em,void 0,e_);this._setPaintValue(x,eu,eg)}_setPaintValue(x,eu,ef){if("color"===this.type){let em=ao(ef);for(let ef=x;ef<eu;ef++)this.paintVertexArray.emplace(ef,em[0],em[1])}else{for(let em=x;em<eu;em++)this.paintVertexArray.emplace(em,ef);this.maxValue=Math.max(this.maxValue,Math.abs(ef))}}upload(x){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=x.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}};let co=class co{constructor(x,eu,ef,em,e_,eg){this.expression=x,this.uniformNames=eu.map(x=>`u_${x}_t`),this.type=ef,this.useIntegerZoom=em,this.zoom=e_,this.maxValue=0,this.paintVertexAttributes=eu.map(x=>({name:`a_${x}`,type:"Float32",components:"color"===ef?4:2,offset:0})),this.paintVertexArray=new eg}populatePaintArray(x,eu,ef,em,e_,eg){let ex=this.expression.evaluate(new $s(this.zoom),eu,{},e_,em,eg),ev=this.expression.evaluate(new $s(this.zoom+1),eu,{},e_,em,eg),eb=this.paintVertexArray.length;this.paintVertexArray.resize(x),this._setPaintValue(eb,x,ex,ev)}updatePaintArray(x,eu,ef,em,e_){let eg=this.expression.evaluate({zoom:this.zoom},ef,em,void 0,e_),ex=this.expression.evaluate({zoom:this.zoom+1},ef,em,void 0,e_);this._setPaintValue(x,eu,eg,ex)}_setPaintValue(x,eu,ef,em){if("color"===this.type){let e_=ao(ef),eg=ao(em);for(let ef=x;ef<eu;ef++)this.paintVertexArray.emplace(ef,e_[0],e_[1],eg[0],eg[1])}else{for(let e_=x;e_<eu;
8e_++)this.paintVertexArray.emplace(e_,ef,em);this.maxValue=Math.max(this.maxValue,Math.abs(ef),Math.abs(em))}}upload(x){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=x.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(x,eu,ef,em,e_){let eg=this.useIntegerZoom?Math.floor(ef.zoom):ef.zoom,ex=S(this.expression.interpolationFactor(eg,this.zoom,this.zoom+1),0,1);eu.set(x,e_,ex)}getBinding(x,eu){return new to(x)}};let ho=class ho{constructor(x,eu,ef,em,e_){this.expression=x,this.layerId=e_,this.paintVertexAttributes=("array"===ef?t4:t5).members;for(let x=0;x<eu.length;++x);this.paintVertexArray=new em}populatePaintArray(x,eu,ef){let em=this.paintVertexArray.length;this.paintVertexArray.resize(x),this._setPaintValues(em,x,eu.patterns&&eu.patterns[this.layerId],ef)}updatePaintArray(x,eu,ef,em,e_,eg){this._setPaintValues(x,eu,ef.patterns&&ef.patterns[this.layerId],eg)}_setPaintValues(x,eu,ef,em){if(!em||!ef)return;let e_=em[ef];if(!e_)return;let{tl:eg,br:ex,pixelRatio:ev}=e_;for(let ef=x;ef<eu;ef++)this.paintVertexArray.emplace(ef,eg[0],eg[1],ex[0],ex[1],ev)}upload(x){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer=x.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}};let po=class po{constructor(x,eu,ef=()=>!0){this.binders={},this._buffers=[];let em=[];for(let eg in x.paint._values){var e_;if(!ef(eg))continue;let ex=x.paint.get(eg);if(!(ex instanceof Xs&&En(ex.property.specification)))continue;let ev=(e_=x.type,id[eg]||[eg.replace(`${e_}-`,"").replace(/-/g,"_")]),eb=ex.value,ew=ex.property.specification.type,eT=!!ex.property.useIntegerZoom,eE="line-dasharray"===eg||eg.endsWith("pattern"),eS="line-dasharray"===eg&&"constant"!==x.layout.get("line-cap").value.kind;if("constant"!==eb.kind||eS){if("source"===eb.kind||eS||eE){let eu=vo(eg,ew,"source");this.binders[eg]=eE?new ho(eb,ev,ew,eu,x.id):new uo(eb,ev,ew,eu),em.push(`/a_${eg}`)}else{let x=vo(eg,ew,"composite");this.binders[eg]=new co(eb,ev,ew,eT,eu,x),em.push(`/z_${eg}`)}}else this.binders[eg]=eE?new lo(eb.value,ev):new oo(eb.value,ev,ew),em.push(`/u_${eg}`)}this.cacheKey=em.sort().join("")}getMaxValue(x){let eu=this.binders[x];return eu instanceof uo||eu instanceof co?eu.maxValue:0}populatePaintArrays(x,eu,ef,em,e_,eg){for(let ex in this.binders){let ev=this.binders[ex];(ev instanceof uo||ev instanceof co||ev instanceof ho)&&ev.populatePaintArray(x,eu,ef,em,e_,eg)}}setConstantPatternPositions(x){for(let eu in this.binders){let ef=this.binders[eu];ef instanceof lo&&ef.setConstantPatternPositions(x)}}updatePaintArrays(x,eu,ef,em,e_,eg){let ex=!1;for(let ev in x){let eb=eu.getPositions(ev);for(let eu of eb){let eb=ef.feature(eu.index);for(let ef in this.binders){let ew=this.binders[ef];if((ew instanceof uo||ew instanceof co||ew instanceof ho)&&!0===ew.expression.isStateDependent){let eT=em.paint.get(ef);ew.expression=eT.value,ew.updatePaintArray(eu.start,eu.end,eb,x[ev],e_,eg),ex=!0}}}}return ex}defines(){let x=[];for(let eu in this.binders){let ef=this.binders[eu];(ef instanceof oo||ef instanceof lo)&&x.push(...ef.uniformNames.map(x=>`#define HAS_UNIFORM_${x}`))}return x}getBinderAttributes(){let x=[];for(let eu in this.binders){let ef=this.binders[eu];if(ef instanceof uo||ef instanceof co||ef instanceof ho)for(let eu=0;eu<ef.paintVertexAttributes.length;eu++)x.push(ef.paintVertexAttributes[eu].name)}return x}getBinderUniforms(){let x=[];for(let eu in this.binders){let ef=this.binders[eu];if(ef instanceof oo||ef instanceof lo||ef instanceof co)for(let eu of ef.uniformNames)x.push(eu)}return x}getPaintVertexBuffers(){return this._buffers}getUniforms(x){let eu=[];for(let ef in this.binders){let em=this.binders[ef];if(em instanceof oo||em instanceof lo||em instanceof co)for(let e_ of em.uniformNames)eu.push({name:e_,property:ef,binding:em.getBinding(x,e_)})}return eu}setUniforms(x,eu,ef,em,e_){for(let{name:eu,property:eg,binding:ex}of ef)this.binders[eg].setUniform(x,ex,e_,em.get(eg),eu)}updatePaintBuffers(){for(let x in this._buffers=[],this.binders){let eu=this.binders[x];(eu instanceof uo||eu instanceof co||eu instanceof ho)&&eu.paintVertexBuffer&&this._buffers.push(eu.paintVertexBuffer)}}upload(x){for(let eu in this.binders){let ef=this.binders[eu];(ef instanceof uo||ef instanceof co||ef instanceof ho)&&ef.upload(x)}this.updatePaintBuffers()}destroy(){for(let x in this.binders){let eu=this.binders[x];(eu instanceof uo||eu instanceof co||eu instanceof ho)&&eu.destroy()}}};let fo=class fo{constructor(x,eu,ef=()=>!0){for(let em of(this.programConfigurations={},x))this.programConfigurations[em.id]=new po(em,eu,ef);this.needsUpload=!1,this._featureMap=new Ya,this._bufferOffset=0}populatePaintArrays(x,eu,ef,em,e_,eg,ex){for(let ef in this.programConfigurations)this.programConfigurations[ef].populatePaintArrays(x,eu,em,e_,eg,ex);void 0!==eu.id&&this._featureMap.add(eu.id,ef,this._bufferOffset,x),this._bufferOffset=x,this.needsUpload=!0}updatePaintArrays(x,eu,ef,em,e_){for(let eg of ef)this.needsUpload=this.programConfigurations[eg.id].updatePaintArrays(x,this._featureMap,eu,eg,em,e_)||this.needsUpload}get(x){return this.programConfigurations[x]}upload(x){if(this.needsUpload){for(let eu in this.programConfigurations)this.programConfigurations[eu].upload(x);this.needsUpload=!1}}destroy(){for(let x in this.programConfigurations)this.programConfigurations[x].destroy()}};let id={"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":["ga
8pwidth"],"line-pattern":["pattern","pixel_ratio"],"fill-pattern":["pattern","pixel_ratio"],"fill-extrusion-pattern":["pattern","pixel_ratio"],"line-dasharray":["dash"]},ip={"line-pattern":{source:ca,composite:ca},"fill-pattern":{source:ca,composite:ca},"fill-extrusion-pattern":{source:ca,composite:ca},"line-dasharray":{source:ha,composite:ha}},im={color:{source:za,composite:ua},number:{source:Sa,composite:za}};function vo(x,eu,ef){let em=ip[x];return em&&em[ef]||im[eu][ef]}Oi(oo,"ConstantBinder"),Oi(lo,"PatternConstantBinder"),Oi(uo,"SourceExpressionBinder"),Oi(ho,"PatternCompositeBinder"),Oi(co,"CompositeExpressionBinder"),Oi(po,"ProgramConfiguration",{omit:["_buffers"]}),Oi(fo,"ProgramConfigurationSet");let i_="-transition";let wo=class wo extends Yt{constructor(x,eu){if(super(),this.id=x.id,this.type=x.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==x.type&&(this.metadata=x.metadata,this.minzoom=x.minzoom,this.maxzoom=x.maxzoom,"background"!==x.type&&"sky"!==x.type&&(this.source=x.source,this.sourceLayer=x["source-layer"],this.filter=x.filter),eu.layout&&(this._unevaluatedLayout=new Zs(eu.layout)),eu.paint)){for(let ef in this._transitionablePaint=new qs(eu.paint),x.paint)this.setPaintProperty(ef,x.paint[ef],{validate:!1});for(let eu in x.layout)this.setLayoutProperty(eu,x.layout[eu],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Ks(eu.paint)}}getLayoutProperty(x){return"visibility"===x?this.visibility:this._unevaluatedLayout.getValue(x)}setLayoutProperty(x,eu,ef={}){null!=eu&&this._validate(Li,`layers.${this.id}.layout.${x}`,x,eu,ef)||("visibility"!==x?this._unevaluatedLayout.setValue(x,eu):this.visibility=eu)}getPaintProperty(x){return L(x,i_)?this._transitionablePaint.getTransition(x.slice(0,-i_.length)):this._transitionablePaint.getValue(x)}setPaintProperty(x,eu,ef={}){if(null!=eu&&this._validate(Vi,`layers.${this.id}.paint.${x}`,x,eu,ef))return!1;if(L(x,i_))return this._transitionablePaint.setTransition(x.slice(0,-i_.length),eu||void 0),!1;{let ef=this._transitionablePaint._values[x],em=ef.value.isDataDriven(),e_=ef.value;this._transitionablePaint.setValue(x,eu),this._handleSpecialPaintPropertyUpdate(x);let eg=this._transitionablePaint._values[x].value,ex=eg.isDataDriven(),ev=L(x,"pattern")||"line-dasharray"===x;return ex||em||ev||this._handleOverridablePaintPropertyUpdate(x,e_,eg)}}_handleSpecialPaintPropertyUpdate(x){}getProgramIds(){return null}getProgramConfiguration(x){return null}_handleOverridablePaintPropertyUpdate(x,eu,ef){return!1}isHidden(x){return!!(this.minzoom&&x<this.minzoom)||!!(this.maxzoom&&x>=this.maxzoom)||"none"===this.visibility}updateTransitions(x){this._transitioningPaint=this._transitionablePaint.transitioned(x,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(x,eu){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(x,void 0,eu)),this.paint=this._transitioningPaint.possiblyEvaluate(x,void 0,eu)}
8serialize(){let x={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&&(x.layout=x.layout||{},x.layout.visibility=this.visibility),R(x,(x,eu)=>!(void 0===x||"layout"===eu&&!Object.keys(x).length||"paint"===eu&&!Object.keys(x).length))}_validate(x,eu,ef,em,e_={}){return(!e_||!1!==e_.validate)&&Ri(this,x.call(Di,{key:eu,layerType:this.type,objectKey:ef,value:em,styleSpec:e9,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let x in this.paint._values){let eu=this.paint.get(x);if(eu instanceof Xs&&En(eu.property.specification)&&("source"===eu.value.kind||"composite"===eu.value.kind)&&eu.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=ai(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}};let ig=na([{name:"a_pos",components:2,type:"Int16"}],4),ix=na([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]);let So=class So{constructor(x=[]){this.segments=x}prepareSegment(x,eu,ef,em){let e_=this.segments[this.segments.length-1];return x>So.MAX_VERTEX_ARRAY_LENGTH&&U(`Max vertices per segment is ${So.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${x}`),(!e_||e_.vertexLength+x>So.MAX_VERTEX_ARRAY_LENGTH||e_.sortKey!==em)&&(e_={vertexOffset:eu.length,primitiveOffset:ef.length,vertexLength:0,primitiveLength:0},void 0!==em&&(e_.sortKey=em),this.segments.push(e_)),e_}get(){return this.segments}destroy(){for(let x of this.segments)for(let eu in x.vaos)x.vaos[eu].destroy()}static simpleSegment(x,eu,ef,em){return new So([{vertexOffset:x,primitiveOffset:eu,vertexLength:ef,primitiveLength:em,vaos:{},sortKey:0}])}};So.MAX_VERTEX_ARRAY_LENGTH=65535,Oi(So,"SegmentVector");let Io=class Io{constructor(x,eu){x&&(eu?this.setSouthWest(x).setNorthEast(eu):4===x.length?this.setSouthWest([x[0],x[1]]).setNorthEast([x[2],x[3]]):this.setSouthWest(x[0]).setNorthEast(x[1]))}setNorthEast(x){return this._ne=x instanceof ru?new ru(x.lng,x.lat):ru.convert(x),this}setSouthWest(x){return this._sw=x instanceof ru?new ru(x.lng,x.lat):ru.convert(x),this}extend(x){let eu,ef;let em=this._sw,e_=this._ne;if(x instanceof ru)eu=x,ef=x;else{if(!(x instanceof Io))return Array.isArray(x)?4===x.length||x.every(Array.isArray)?this.extend(Io.convert(x)):this.extend(ru.convert(x)):"object"==typeof x&&null!==x&&x.hasOwnProperty("lat")&&(x.hasOwnProperty("lon")||x.hasOwnProperty("lng"))?this.extend(ru.convert(x)):this;if(eu=x._sw,ef=x._ne,!eu||!ef)return this}return em||e_?(em.lng=Math.min(eu.lng,em.lng),em.lat=Math.min(eu.lat,em.lat),e_.lng=Math.max(ef.lng,e_.lng),e_.lat=Math.max(ef.lat,e_.lat)):(this._sw=new ru(eu.lng,eu.lat),this._ne=new ru(ef.lng,ef.lat)),this}getCenter(){return new ru((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 ru(this.getWest(),this.getNorth())}getSouthEast(){return new ru(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(x){let{lng:eu,lat:ef}=ru.convert(x),em=this._sw.lng<=eu&&eu<=this._ne.lng;return this._sw.lng>this._ne.lng&&(em=this._sw.lng>=eu&&eu>=this._ne.lng),this._sw.lat<=ef&&ef<=this._ne.lat&&em}static convert(x){return!x||x instanceof Io?x:new Io(x)}};var iv="undefined"!=typeof Float32Array?Float32Array:Array;function zo(){var x=new iv(9);return iv!=Float32Array&&(x[1]=0,x[2]=0,x[3]=0,x[5]=0,x[6]=0,x[7]=0),x[0]=1,x[4]=1,x[8]=1,x}function Bo(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3],ev=eu[4],eb=eu[5],ew=eu[6],eT=eu[7],eE=eu[8],eS=ef[0],eM=ef[1],eI=ef[2],eA=ef[3],eC=ef[4],ez=ef[5],eD=ef[6],ek=ef[7],eP=ef[8];return x[0]=eS*em+eM*ex+eI*ew,x[1]=eS*e_+eM*ev+eI*eT,x[2]=eS*eg+eM*eb+eI*eE,x[3]=eA*em+eC*ex+ez*ew,x[4]=eA*e_+eC*ev+ez*eT,x[5]=eA*eg+eC*eb+ez*eE,x[6]=eD*em+ek*ex+eP*ew,x[7]=eD*e_+ek*ev+eP*eT,x[8]=eD*eg+ek*eb+eP*eE,x}function Eo(x){return x[0]=1,x[1]=0,x[2]=0,x[3]=0,x[4]=0,x[5]=1,x[6]=0,x[7]=0,x[8]=0,x[9]=0,x[10]=1,x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x}function Co(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=eu[3],ex=eu[4],ev=eu[5],eb=eu[6],ew=eu[7],eT=eu[8],eE=eu[9],eS=eu[10],eM=eu[11],eI=eu[12],eA=eu[13],e
vendor: 5,379 bytes, line 8
8C=eu[14],ez=eu[15],eD=ef*ev-em*ex,ek=ef*eb-e_*ex,eP=ef*ew-eg*ex,eL=em*eb-e_*ev,eR=em*ew-eg*ev,eB=e_*ew-eg*eb,eO=eT*eA-eE*eI,eF=eT*eC-eS*eI,eU=eT*ez-eM*eI,eV=eE*eC-eS*eA,eN=eE*ez-eM*eA,ej=eS*ez-eM*eC,eG=eD*ej-ek*eN+eP*eV+eL*eU-eR*eF+eB*eO;return eG?(x[0]=(ev*ej-eb*eN+ew*eV)*(eG=1/eG),x[1]=(e_*eN-em*ej-eg*eV)*eG,x[2]=(eA*eB-eC*eR+ez*eL)*eG,x[3]=(eS*eR-eE*eB-eM*eL)*eG,x[4]=(eb*eU-ex*ej-ew*eF)*eG,x[5]=(ef*ej-e_*eU+eg*eF)*eG,x[6]=(eC*eP-eI*eB-ez*ek)*eG,x[7]=(eT*eB-eS*eP+eM*ek)*eG,x[8]=(ex*eN-ev*eU+ew*eO)*eG,x[9]=(em*eU-ef*eN-eg*eO)*eG,x[10]=(eI*eR-eA*eP+ez*eD)*eG,x[11]=(eE*eP-eT*eR-eM*eD)*eG,x[12]=(ev*eF-ex*eV-eb*eO)*eG,x[13]=(ef*eV-em*eF+e_*eO)*eG,x[14]=(eA*ek-eI*eL-eC*eD)*eG,x[15]=(eT*eL-eE*ek+eS*eD)*eG,x):null}function Po(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3],ev=eu[4],eb=eu[5],ew=eu[6],eT=eu[7],eE=eu[8],eS=eu[9],eM=eu[10],eI=eu[11],eA=eu[12],eC=eu[13],ez=eu[14],eD=eu[15],ek=ef[0],eP=ef[1],eL=ef[2],eR=ef[3];return x[0]=ek*em+eP*ev+eL*eE+eR*eA,x[1]=ek*e_+eP*eb+eL*eS+eR*eC,x[2]=ek*eg+eP*ew+eL*eM+eR*ez,x[3]=ek*ex+eP*eT+eL*eI+eR*eD,x[4]=(ek=ef[4])*em+(eP=ef[5])*ev+(eL=ef[6])*eE+(eR=ef[7])*eA,x[5]=ek*e_+eP*eb+eL*eS+eR*eC,x[6]=ek*eg+eP*ew+eL*eM+eR*ez,x[7]=ek*ex+eP*eT+eL*eI+eR*eD,x[8]=(ek=ef[8])*em+(eP=ef[9])*ev+(eL=ef[10])*eE+(eR=ef[11])*eA,x[9]=ek*e_+eP*eb+eL*eS+eR*eC,x[10]=ek*eg+eP*ew+eL*eM+eR*ez,x[11]=ek*ex+eP*eT+eL*eI+eR*eD,x[12]=(ek=ef[12])*em+(eP=ef[13])*ev+(eL=ef[14])*eE+(eR=ef[15])*eA,x[13]=ek*e_+eP*eb+eL*eS+eR*eC,x[14]=ek*eg+eP*ew+eL*eM+eR*ez,x[15]=ek*ex+eP*eT+eL*eI+eR*eD,x}function Do(x,eu,ef){var em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA=ef[0],eC=ef[1],ez=ef[2];return eu===x?(x[12]=eu[0]*eA+eu[4]*eC+eu[8]*ez+eu[12],x[13]=eu[1]*eA+eu[5]*eC+eu[9]*ez+eu[13],x[14]=eu[2]*eA+eu[6]*eC+eu[10]*ez+eu[14],x[15]=eu[3]*eA+eu[7]*eC+eu[11]*ez+eu[15]):(e_=eu[1],eg=eu[2],ex=eu[3],ev=eu[4],eb=eu[5],ew=eu[6],eT=eu[7],eE=eu[8],eS=eu[9],eM=eu[10],eI=eu[11],x[0]=em=eu[0],x[1]=e_,x[2]=eg,x[3]=ex,x[4]=ev,x[5]=eb,x[6]=ew,x[7]=eT,x[8]=eE,x[9]=eS,x[10]=eM,x[11]=eI,x[12]=em*eA+ev*eC+eE*ez+eu[12],x[13]=e_*eA+eb*eC+eS*ez+eu[13],x[14]=eg*eA+ew*eC+eM*ez+eu[14],x[15]=ex*eA+eT*eC+eI*ez+eu[15]),x}function Vo(x,eu,ef){var em=ef[0],e_=ef[1],eg=ef[2];return x[0]=eu[0]*em,x[1]=eu[1]*em,x[2]=eu[2]*em,x[3]=eu[3]*em,x[4]=eu[4]*e_,x[5]=eu[5]*e_,x[6]=eu[6]*e_,x[7]=eu[7]*e_,x[8]=eu[8]*eg,x[9]=eu[9]*eg,x[10]=eu[10]*eg,x[11]=eu[11]*eg,x[12]=eu[12],x[13]=eu[13],x[14]=eu[14],x[15]=eu[15],x}function Lo(x,eu,ef){var em=Math.sin(ef),e_=Math.cos(ef),eg=eu[4],ex=eu[5],ev=eu[6],eb=eu[7],ew=eu[8],eT=eu[9],eE=eu[10],eS=eu[11];return eu!==x&&(x[0]=eu[0],x[1]=eu[1],x[2]=eu[2],x[3]=eu[3],x[12]=eu[12],x[13]=eu[13],x[14]=eu[14],x[15]=eu[15]),x[4]=eg*e_+ew*em,x[5]=ex*e_+eT*em,x[6]=ev*e_+eE*em,x[7]=eb*e_+eS*em,x[8]=ew*e_-eg*em,x[9]=eT*e_-ex*em,x[10]=eE*e_-ev*em,x[11]=eS*e_-eb*em,x}function Fo(x,eu,ef){var em=Math.sin(ef),e_=Math.cos(ef),eg=eu[0],ex=eu[1],ev=eu[2],eb=eu[3],ew=eu[8],eT=eu[9],eE=eu[10],eS=eu[11];return eu!==x&&(x[4]=eu[4],x[5]=eu[5],x[6]=eu[6],x[7]=eu[7],x[12]=eu[12],x[13]=eu[13],x[14]=eu[14],x[15]=eu[15]),x[0]=eg*e_-ew*em,x[1]=ex*e_-eT*em,x[2]=ev*e_-eE*em,x[3]=eb*e_-eS*em,x[8]=eg*em+ew*e_,x[9]=ex*em+eT*e_,x[10]=ev*em+eE*e_,x[11]=eb*em+eS*e_,x}function Ro(x,eu){return x[0]=eu[0],x[1]=0,x[2]=0,x[3]=0,x[4]=0,x[5]=eu[1],x[6]=0,x[7]=0,x[8]=0,x[9]=0,x[10]=eu[2],x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x}function jo(x,eu,ef){var em,e_,eg,ex=ef[0],ev=ef[1],eb=ef[2],ew=Math.hypot(ex,ev,eb);return ew<1e-6?null:(ex*=ew=1/ew,ev*=ew,eb*=ew,em=Math.sin(eu),e_=Math.cos(eu),x[0]=ex*ex*(eg=1-e_)+e_,x[1]=ev*ex*eg+eb*em,x[2]=eb*ex*eg-ev*em,x[3]=0,x[4]=ex*ev*eg-eb*em,x[5]=ev*ev*eg+e_,x[6]=eb*ev*eg+ex*em,x[7]=0,x[8]=ex*eb*eg+ev*em,x[9]=ev*eb*eg-ex*em,x[10]=eb*eb*eg+e_,x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x)}function Uo(){var x=new iv(3);return iv!=Float32Array&&(x[0]=0,x[1]=0,x[2]=0),x}function Oo(x){var eu=new iv(3);return eu[0]=x[0],eu[1]=x[1],eu[2]=x[2],eu}function qo(x){return Math.hypot(x[0],x[1],x[2])}function No(x,eu,ef){var em=new iv(3);return em[0]=x,em[1]=eu,em[2]=ef,em}function Go(x,eu,ef){return x[0]=eu[0]+ef[0],x[1]=eu[1]+ef[1],x[2]=eu[2]+ef[2],x}function Zo(x,eu,ef){return x[0]=eu[0]-ef[0],x[1]=eu[1]-ef[1],x[2]=eu[2]-ef[2],x}function Xo(x,eu,ef){return x[0]=eu[0]*ef[0],x[1]=eu[1]*ef[1],x[2]=eu[2]*ef[2],x}function Ko(x,eu,ef){return x[0]=Math.min(eu[0],ef[0]),x[1]=Math.min(eu[1],ef[1]),x[2]=Math.min(eu[2],ef[2]),x}function Yo(x,eu,ef){return x[0]=Math.max(eu[0],ef[0]),x[1]=Math.max(eu[1],ef[1]),x[2]=Math.max(eu[2],ef[2]),x}function Ho(x,eu,ef){return x[0]=eu[0]*ef,x[1]=eu[1]*ef,x[2]=eu[2]*ef,x}function Wo(x,eu,ef,em){return x[0]=eu[0]+ef[0]*em,x[1]=eu[1]+ef[1]*em,x[2]=eu[2]+ef[2]*em,x}function Jo(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=ef*ef+em*em+e_*e_;return eg>0&&(eg=1/Math.sqrt(eg)),x[0]=eu[0]*eg,x[1]=eu[1]*eg,x[2]=eu[2]*eg,x}function Qo(x,eu){return x[0]*eu[0]+x[1]*eu[1]+x[2]*eu[2]}function tl(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2],ex=ef[0],ev=ef[1],eb=ef[2];return x[0]=e_*eb-eg*ev,x[1]=eg*ex-em*eb,x[2]=em*ev-e_*ex,x}function el(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2],ex=ef[3]*em+ef[7]*e_+ef[11]*eg+ef[15];return x[0]=(ef[0]*em+ef[4]*e_+ef[8]*eg+ef[12])/(ex=ex||1),x[1]=(ef[1]*em+ef[5]*e_+ef[9]*eg+ef[13])/ex,x[2]=(ef[2]*em+ef[6]*e_+ef[10]*eg+ef[14])/ex,x}function rl(x,eu,ef){var em=ef[0],e_=ef[1],eg=ef[2],ex=eu[0],ev=eu[1],eb=eu[2],ew=e_*eb-eg*ev,eT=eg*ex-em*eb,eE=em*ev-e_*ex,eS=e_*eE-eg*eT,eM=eg*ew-em*eE,eI=em*eT-e_*e
8w,eA=2*ef[3];return eT*=eA,eE*=eA,eM*=2,eI*=2,x[0]=ex+(ew*=eA)+(eS*=2),x[1]=ev+eT+eM,x[2]=eb+eE+eI,x}function ol(x,eu,ef){return x[0]=eu[0]*ef,x[1]=eu[1]*ef,x[2]=eu[2]*ef,x[3]=eu[3]*ef,x}function ll(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=eu[3],ex=ef*ef+em*em+e_*e_+eg*eg;return ex>0&&(ex=1/Math.sqrt(ex)),x[0]=ef*ex,x[1]=em*ex,x[2]=e_*ex,x[3]=eg*ex,x}function ul(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3];return x[0]=ef[0]*em+ef[4]*e_+ef[8]*eg+ef[12]*ex,x[1]=ef[1]*em+ef[5]*e_+ef[9]*eg+ef[13]*ex,x[2]=ef[2]*em+ef[6]*e_+ef[10]*eg+ef[14]*ex,x[3]=ef[3]*em+ef[7]*e_+ef[11]*eg+ef[15]*ex,x}function cl(){var x=new iv(4);return iv!=Float32Array&&(x[0]=0,x[1]=0,x[2]=0),x[3]=1,x}function hl(x){return x[0]=0,x[1]=0,x[2]=0,x[3]=1,x}function pl(x,eu,ef){ef*=.5;var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3],ev=Math.sin(ef),eb=Math.cos(ef);return x[0]=em*eb+ex*ev,x[1]=e_*eb+eg*ev,x[2]=eg*eb-e_*ev,x[3]=ex*eb-em*ev,x}function fl(x,eu,ef){ef*=.5;var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3],ev=Math.sin(ef),eb=Math.cos(ef);return x[0]=em*eb-eg*ev,x[1]=e_*eb+ex*ev,x[2]=eg*eb+em*ev,x[3]=ex*eb-e_*ev,x}Math.hypot||(Math.hypot=function(){for(var x=0,eu=arguments.length;eu--;)x+=arguments[eu]*arguments[eu];return Math.sqrt(x)}),Uo(),ew=new iv(4),iv!=Float32Array&&(ew[0]=0,ew[1]=0,ew[2]=0,ew[3]=0),Uo(),No(1,0,0),No(0,1,0),cl(),cl(),zo();let ib=na([{type:"Float32",name:"a_globe_pos",components:3},{type:"Float32",name:"a_uv",components:2}]),{members:iw}=ib,iT=na([{name:"a_pos_3",components:3,type:"Int16"}]);var iE=na([{name:"a_pos",type:"Int16",components:2}]);let vl=class vl{constructor(x,eu){this.pos=x,this.dir=eu}intersectsPlane(x,eu,ef){let em=Qo(eu,this.dir);if(1e-6>Math.abs(em))return!1;let e_=((x[0]-this.pos[0])*eu[0]+(x[1]-this.pos[1])*eu[1]+(x[2]-this.pos[2])*eu[2])/em;return ef[0]=this.pos[0]+this.dir[0]*e_,ef[1]=this.pos[1]+this.dir[1]*e_,ef[2]=this.pos[2]+this.dir[2]*e_,!0}closestPointOnSphere(x,eu,ef){var em,e_,eg,ex,ev,eb,ew;if(e_=(em=this.pos)[0],eg=em[1],ex=em[2],ev=x[0],eb=x[1],ew=x[2],Math.abs(e_-ev)<=1e-6*Math.max(1,Math.abs(e_),Math.abs(ev))&&Math.abs(eg-eb)<=1e-6*Math.max(1,Math.abs(eg),Math.abs(eb))&&Math.abs(ex-ew)<=1e-6*Math.max(1,Math.abs(ex),Math.abs(ew))||0===eu)return ef[0]=ef[1]=ef[2]=0,!1;let[eT,eE,eS]=this.dir,eM=this.pos[0]-x[0],eI=this.pos[1]-x[1],eA=this.pos[2]-x[2],eC=eT*eT+eE*eE+eS*eS,ez=2*(eM*eT+eI*eE+eA*eS),eD=ez*ez-4*eC*(eM*eM+eI*eI+eA*eA-eu*eu);if(eD<0){let x=Math.max(-ez/2,0),em=eM+eT*x,e_=eI+eE*x,eg=eA+eS*x,ex=Math.hypot(em,e_,eg);return ef[0]=em*eu/ex,ef[1]=e_*eu/ex,ef[2]=eg*eu/ex,!1}{let x=(-ez-Math.sqrt(eD))/(2*eC);if(x<0){let x=Math.hypot(eM,eI,eA);return ef[0]=eM*eu/x,ef[1]=eI*eu/x,ef[2]=eA*eu/x,!1}return ef[0]=eM+eT*x,ef[1]=eI+eE*x,ef[2]=eA+eS*x,!0}}};let bl=class bl{constructor(x,eu,ef,em,e_){this.TL=x,this.TR=eu,this.BR=ef,this.BL=em,this.horizon=e_}static fromInvProjectionMatrix(x,eu,ef){let em=[-1,1,1],e_=[1,1,1],eg=[1,-1,1],ex=[-1,-1,1],ev=el(em,em,x),eb=el(e_,e_,x),ew=el(eg,eg,x),eT=el(ex,ex,x);return new bl(ev,eb,ew,eT,eu/ef)}};let wl=class wl{constructor(x,eu){this.points=x,this.planes=eu}static fromInvProjectionMatrix(x,eu,ef,em){let e_=Math.pow(2,ef),eg=[[-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(ef=>{var eg;let ex=ul([],ef,x),ev=1/ex[3]/eu*e_;return eg=[ev,ev,em?1/ex[3]:ev,ev],ex[0]=ex[0]*eg[0],ex[1]=ex[1]*eg[1],ex[2]=ex[2]*eg[2],ex[3]=ex[3]*eg[3],ex}),ex=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(x=>{let eu=Jo([],tl([],Zo([],eg[x[0]],eg[x[1]]),Zo([],eg[x[2]],eg[x[1]]))),ef=-Qo(eu,eg[x[1]]);return eu.concat(ef)});return new wl(eg,ex)}};let _l=class _l{static fromPoints(x){let eu=[1/0,1/0,1/0],ef=[-1/0,-1/0,-1/0];for(let em of x)Ko(eu,eu,em),Yo(ef,ef,em);return new _l(eu,ef)}static applyTransform(x,eu){let ef=x.getCorners();for(let x=0;x<ef.length;++x)el(ef[x],ef[x],eu);return _l.fromPoints(ef)}constructor(x,eu){this.min=x,this.max=eu,this.center=Ho([],Go([],this.min,this.max),.5)}quadrant(x){let eu=[x%2==0,x<2],ef=Oo(this.min),em=Oo(this.max);for(let x=0;x<eu.length;x++)ef[x]=eu[x]?this.min[x]:this.center[x],em[x]=eu[x]?this.center[x]:this.max[x];return em[2]=this.max[2],new _l(ef,em)}distanceX(x){return Math.max(Math.min(this.max[0],x[0]),this.min[0])-x[0]}distanceY(x){return Math.max(Math.min(this.max[1],x[1]),this.min[1])-x[1]}distanceZ(x){return Math.max(Math.min(this.max[2],x[2]),this.min[2])-x[2]}getCorners(){let x=this.min,eu=this.max;return[[x[0],x[1],x[2]],[eu[0],x[1],x[2]],[eu[0],eu[1],x[2]],[x[0],eu[1],x[2]],[x[0],x[1],eu[2]],[eu[0],x[1],eu[2]],[eu[0],eu[1],eu[2]],[x[0],eu[1],eu[2]]]}intersects(x){let eu=this.getCorners(),ef=!0;for(let em=0;em<x.planes.length;em++){let e_=x.planes[em],eg=0;for(let x=0;x<eu.length;x++)eg+=Qo(e_,eu[x])+e_[3]>=0;if(0===eg)return 0;eg!==eu.length&&(ef=!1)}if(ef)return 2;for(let eu=0;eu<3;eu++){let ef=Number.MAX_VALUE,em=-Number.MAX_VALUE;for(let e_=0;e_<x.points.length;e_++){let eg=x.points[e_][eu]-this.min[eu];ef=Math.min(ef,eg),em=Math.max(em,eg)}if(em<0||ef>this.max[eu]-this.min[eu])return 0}return 1}};let iS=8192/Math.PI/2,iM=[64,32,16],iI=-iS,iA=[new _l([iI,iI,iI],[iS,iS,iS]),new _l([iI,iI,iI],[0,0,iS]),new _l([0,iI,iI],[iS,0,iS]),new _l([iI,0,iI],[0,iS,iS]),new _l([0,0,iI],[iS,iS,iS])];function zl(x){return x*iS/iP}function Bl(x,eu,ef,em=!0){let e_=Ho([],x._camera.position,x.worldSize),eg=[eu,ef,1,1];ul(eg,eg,x.pixelMatrixInverse),ol(eg,eg,1/eg[3]);let ex=Jo([],Zo([],eg,e_)),ev=x.globeMatrix,eb=[ev[12],ev[13],ev[14]],ew=Zo([],eb,e_),eT=qo(ew),eE=Jo([],ew),eS=x.worldSize/(2*Math.PI),eM=Qo(eE,ex),eI=Math.asin(eS/eT);if(eI<Math.acos(eM)){if(!em)return null;let x=[],eu=[];Ho(x,ex,eT/eM),Jo(eu,Zo(eu,x,ew)),Jo(ex,Go(ex,ew,Ho(ex,eu,Math.tan(eI)*eT)))}let eA=[];new vl(e_,ex).closestPointOnSphere(eb,eS,eA);
8let eC=Jo([],Y(ev,0)),ez=Jo([],Y(ev,1)),eD=Jo([],Y(ev,2)),ek=Qo(eC,eA),eL=Qo(ez,eA),eR=Qo(eD,eA),eB=Math.asin(-eL/eS)*eP,eO=Math.atan2(ek,eR)*eP;eO=x.center.lng+function(x,eu){let ef=(eu-x+180)%360-180;return ef<-180?ef+360:ef}(x.center.lng,eO);let eF=iu(eO),eU=S(su(eB),0,1);return new pu(eF,eU)}let El=class El{constructor(x,eu,ef){this.a=Zo([],x,ef),this.b=Zo([],eu,ef),this.center=ef;let em=Jo([],this.a),e_=Jo([],this.b);this.angle=Math.acos(Qo(em,e_))}};function Cl(x,eu){let ef;return 0===x.angle?null:(ef=0===x.a[eu]?1/x.angle*.5*Math.PI:1/x.angle*Math.atan(x.b[eu]/x.a[eu]/Math.sin(x.angle)-1/Math.tan(x.angle)))<0||ef>1?null:function(x,eu,ef,em){let e_=Math.sin(ef);return x*(Math.sin((1-em)*ef)/e_)+eu*(Math.sin(em*ef)/e_)}(x.a[eu],x.b[eu],x.angle,S(ef,0,1))+x.center[eu]}function Pl(x){if(x.z<=1)return iA[x.z+2*x.y+x.x];let eu=jl(Rl(x));return _l.fromPoints(eu)}function Dl(x,eu,ef){return Ho(x,x,1-ef),Wo(x,x,eu,ef)}function Vl(x,eu){let ef=Kl(eu.zoom);if(0===ef)return Pl(x);let em=Rl(x),e_=jl(em),eg=iu(em.getWest())*eu.worldSize,ex=iu(em.getEast())*eu.worldSize,ev=su(em.getNorth())*eu.worldSize,eb=su(em.getSouth())*eu.worldSize,ew=[eg,ev,0],eT=[ex,ev,0],eE=[eg,eb,0],eS=[ex,eb,0],eM=Co([],eu.globeMatrix);return el(ew,ew,eM),el(eT,eT,eM),el(eE,eE,eM),el(eS,eS,eM),e_[0]=Dl(e_[0],eE,ef),e_[1]=Dl(e_[1],eS,ef),e_[2]=Dl(e_[2],eT,ef),e_[3]=Dl(e_[3],ew,ef),_l.fromPoints(e_)}function Ll(x,eu,ef){for(let em of x)el(em,em,eu),Ho(em,em,ef)}function Rl({x:x,y:eu,z:ef}){let em=1/(1<<ef),e_=new ru(ou(x*em),lu((eu+1)*em)),eg=new ru(ou((x+1)*em),lu(eu*em));return new Io(e_,eg)}function jl(x){let eu=x.getNorth()*ek,ef=x.getSouth()*ek,em=Math.cos(eu),e_=Math.cos(ef),eg=Math.sin(eu),ex=Math.sin(ef),ev=x.getWest(),eb=x.getEast();return[$l(e_,ex,ev),$l(e_,ex,eb),$l(em,eg,eb),$l(em,eg,ev)]}function $l(x,eu,ef,em=iS){return[x*Math.sin(ef*=ek)*em,-eu*em,x*Math.cos(ef)*em]}function Ul(x,eu,ef){return $l(Math.cos(x*ek),Math.sin(x*ek),eu,ef)}function Ol(x,eu,ef,em){let e_=1<<ef.z,eg=(x/8192+ef.x)/e_;return Ul(lu((eu/8192+ef.y)/e_),ou(eg),em)}function ql({min:x,max:eu}){return 16383/Math.max(eu[0]-x[0],eu[1]-x[1],eu[2]-x[2])}let iC=new Float64Array(16);function Gl(x){var eu,ef;let em=ql(x),e_=Ro(iC,[em,em,em]);return Do(e_,e_,((eu=[])[0]=-(ef=x.min)[0],eu[1]=-ef[1],eu[2]=-ef[2],eu))}function Zl(x){var eu;let ef=(eu=x.min,iC[0]=1,iC[1]=0,iC[2]=0,iC[3]=0,iC[4]=0,iC[5]=1,iC[6]=0,iC[7]=0,iC[8]=0,iC[9]=0,iC[10]=1,iC[11]=0,iC[12]=eu[0],iC[13]=eu[1],iC[14]=eu[2],iC[15]=1,iC),em=1/ql(x);return Vo(ef,ef,[em,em,em])}function Xl(x,eu,ef,em,e_){let eg=function(x){let eu=8192/(2*Math.PI);return x/(2*Math.PI)/eu}(ef),ex=[x,eu,-ef/(2*Math.PI)],ev=Eo(new Float64Array(16));return Do(ev,ev,ex),Vo(ev,ev,[eg,eg,eg]),Lo(ev,ev,-e_*ek),Fo(ev,ev,-em*ek),ev}function Kl(x){return k(5,6,x)}function Yl(x,eu){var ef,em,e_,eg,ex,ev,eb,ew;let eT=Ul(eu.lat,eu.lng),eE=function(x){let eu=Ul(x._center.lat,x._center.lng),ef=tl([],No(0,1,0),eu),em=jo([],-x.angle,eu);ef=el(ef,ef,em),jo(em,-x._pitch,ef);let e_=Jo([],eu);return Ho(e_,e_,zl(x.cameraToCenterDistance/x.pixelsPerMeter)),el(e_,e_,em),Go([],eu,e_)}(x);return em=(ef=Zo([],eE,eT))[0],e_=ef[1],eg=ef[2],Math.acos(Math.min(Math.max((ew=Math.sqrt(em*em+e_*e_+eg*eg)*Math.sqrt((ex=eT[0])*ex+(ev=eT[1])*ev+(eb=eT[2])*eb))&&Qo(ef,eT)/ew,-1),1))}function Hl(x,eu){return Yl(x,eu)>Math.PI/2*1.01}let iz=85*ek,iD=Math.cos(iz),ik=Math.sin(iz),iP=6371008.8,iL=2*Math.PI*iP;let ru=class ru{constructor(x,eu){if(isNaN(x)||isNaN(eu))throw Error(`Invalid LngLat object: (${x}, ${eu})`);if(this.lng=+x,this.lat=+eu,this.lat>90||this.lat<-90)throw Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new ru(I(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(x){let eu=Math.PI/180,ef=this.lat*eu,em=x.lat*eu,e_=Math.sin(ef)*Math.sin(em)+Math.cos(ef)*Math.cos(em)*Math.cos((x.lng-this.lng)*eu);return iP*Math.acos(Math.min(e_,1))}toBounds(x=0){let eu=360*x/40075017,ef=eu/Math.cos(Math.PI/180*this.lat);return new Io(new ru(this.lng-ef,this.lat-eu),new ru(this.lng+ef,this.lat+eu))}toEcef(x){let eu=zl(x);return Ul(this.lat,this.lng,iS+eu)}static convert(x){if(x instanceof ru)return x;if(Array.isArray(x)&&(2===x.length||3===x.length))return new ru(Number(x[0]),Number(x[1]));if(!Array.isArray(x)&&"object"==typeof x&&null!==x)return new ru(Number("lng"in x?x.lng:x.lon),Number(x.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}};function nu(x){return iL*Math.cos(x*Math.PI/180)}function iu(x){return(180+x)/360}function su(x){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+x*Math.PI/360)))/360}function ou(x){return 360*x-180}function lu(x){return 360/Math.PI*Math.atan(Math.exp((180-360*x)*Math.PI/180)
8)-90}function hu(x){return 1/Math.cos(x*Math.PI/180)}let pu=class pu{constructor(x,eu,ef=0){this.x=+x,this.y=+eu,this.z=+ef}static fromLngLat(x,eu=0){let ef=ru.convert(x);return new pu(iu(ef.lng),su(ef.lat),eu/nu(ef.lat))}toLngLat(){return new ru(ou(this.x),lu(this.y))}toAltitude(){return this.z*nu(lu(this.y))}meterInMercatorCoordinateUnits(){return 1/iL*hu(lu(this.y))}};function du(x,eu,ef){let em=x[0],e_=em.x,eg=em.y;eu(em);let ex=[em];for(let ev=1;ev<x.length;ev++){let eb=x[ev],{x:ew,y:eT}=eb;eu(eb),function fu(x,eu,ef,em,e_,eg,ex,ev,eb){let ew=(eu+em)/2,eT=(ef+e_)/2,eE=new eD(ew,eT);ev(eE),function(x,eu,ef,em,e_,eg){let ex=ef-e_,ev=em-eg;return Math.abs((em-eu)*ex-(ef-x)*ev)/Math.hypot(ex,ev)}(eE.x,eE.y,eg.x,eg.y,ex.x,ex.y)>=eb?(fu(x,eu,ef,ew,eT,eg,eE,ev,eb),fu(x,ew,eT,em,e_,eE,ex,ev,eb)):x.push(ex)}(ex,e_,eg,ew,eT,em,eb,eu,ef),e_=ew,eg=eT,em=eb}return ex}let iR=-16383-1;function bu(x,eu,ef){let em=x.loadGeometry(),e_=x.extent,eg=8192/e_;if(eu&&ef&&ef.projection.isReprojectedInTileSpace){let eg=1<<eu.z,{scale:ex,x:ev,y:eb,projection:ew}=ef,c=x=>{let ef=ou((eu.x+x.x/e_)/eg),em=lu((eu.y+x.y/e_)/eg),eT=ew.project(ef,em);x.x=(eT.x*ex-ev)*e_,x.y=(eT.y*ex-eb)*e_};for(let eu=0;eu<em.length;eu++)if(1!==x.type)em[eu]=du(em[eu],c,1);else{let x=[];for(let ef of em[eu])ef.x<0||ef.x>=e_||ef.y<0||ef.y>=e_||(c(ef),x.push(ef));em[eu]=x}}for(let x of em)for(let eu of x)!function(x,eu){let ef=Math.round(x.x*eu),em=Math.round(x.y*eu);x.x=S(ef,iR,16383),x.y=S(em,iR,16383),(ef<x.x||ef>x.x+1||em<x.y||em>x.y+1)&&U("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(eu,eg);return em}function wu(x,eu){return{type:x.type,id:x.id,properties:x.properties,geometry:eu?bu(x):[]}}function _u(x,eu,ef,em,e_){x.emplaceBack(2*eu+(em+1)/2,2*ef+(e_+1)/2)}function Au(x,eu,ef){x.emplaceBack(eu.x,eu.y,eu.z,16384*ef[0],16384*ef[1],16384*ef[2])}let Su=class Su{constructor(x){this.zoom=x.zoom,this.overscaling=x.overscaling,this.layers=x.layers,this.layerIds=this.layers.map(x=>x.id),this.index=x.index,this.hasPattern=!1,this.projection=x.projection,this.layoutVertexArray=new sa,this.indexArray=new wa,this.segments=new So,this.programConfigurations=new fo(x.layers,x.zoom),this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id)}populate(x,eu,ef,em){let e_=this.layers[0],eg=[],ex=null;for(let{feature:eu,id:ev,index:eb,sourceLayerIndex:ew}of("circle"===e_.type&&(ex=e_.layout.get("circle-sort-key")),x)){let x=this.layers[0]._featureFilter.needGeometry,e_=wu(eu,x);if(!this.layers[0]._featureFilter.filter(new $s(this.zoom),e_,ef))continue;let eT=ex?ex.evaluate(e_,{},ef):void 0,eE={id:ev,properties:eu.properties,type:eu.type,sourceLayerIndex:ew,index:eb,geometry:x?e_.geometry:bu(eu,ef,em),patterns:{},sortKey:eT};eg.push(eE)}ex&&eg.sort((x,eu)=>x.sortKey-eu.sortKey);let ev=null;for(let e_ of("globe"===em.projection.name&&(this.globeExtVertexArray=new pa,ev=em.projection),eg)){let{geometry:em,index:eg,sourceLayerIndex:ex}=e_,eb=x[eg].feature;this.addFeature(e_,em,eg,eu.availableImages,ef,ev),eu.featureIndex.insert(eb,em,eg,ex,this.index)}}update(x,eu,ef,em){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(x,eu,this.stateDependentLayers,ef,em)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(x){this.uploaded||(this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,ig.members),this.indexBuffer=x.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=x.createVertexBuffer(this.globeExtVertexArray,ix.members))),this.programConfigurations.upload(x),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(x,eu,ef,em,e_,eg){for(let ef of eu)for(let eu of ef){let ef=eu.x,em=eu.y;if(ef<0||ef>=8192||em<0||em>=8192)continue;if(eg){let x=eg.projectTilePoint(ef,em,e_),eu=eg.upVector(e_,ef,em),ex=this.globeExtVertexArray;Au(ex,x,eu),Au(ex,x,eu),Au(ex,x,eu),Au(ex,x,eu)}let ex=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,x.sortKey),ev=ex.vertexLength;_u(this.layoutVertexArray,ef,em,-1,-1),_u(this.layoutVertexArray,ef,em,1,-1),_u(this.layoutVertexArray,ef,em,1,1),_u(this.layoutVertexArray,ef,em,-1,1),this.indexArray.emplaceBack(ev,ev+1,ev+2),this.indexArray.emplaceBack(ev,ev+2,ev+3),ex.vertexLength+=4,ex.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,x,ef,{},em,e_)}};function ku(x,eu){for(let ef=0;ef<x.length;ef++)if(Du(eu,x[ef]))return!0;for(let ef=0;ef<eu.length;ef++)if(Du(x,eu[ef]))return!0;return!!zu(x,eu)}function Mu(x,eu){if(1===x.length)return Pu(eu,x[0]);for(let ef=0;ef<eu.length;ef++){let em=eu[ef];for(let eu=0;eu<em.length;eu++)if(Du(x,em[eu]))return!0}for(let ef=0;ef<x.length;ef++)if(Pu(eu,x[ef]))return!0;for(let ef=0;ef<eu.length;ef++)if(zu(x,eu[ef]))return!0;return!1}function zu(x,eu){if(0===x.length||0===eu.length)return!1;for(let e_=0;e_<x.length-1;e_++){let eg=x[e_],ex=x[e_+1];for(let x=0;x<eu.length-1;x++){var ef,em;if(O(eg,ef=eu[x],em=eu[x+1])!==O(ex,ef,em)&&O(eg,ex,ef)!==O(eg,ex,em))return!0}}return!1}function Eu(x,eu,ef){let em=ef*ef;if(1===eu.length)return x.distSqr(eu[0])<em;for(let ef=1;ef<eu.length;ef++)if(Cu(x,eu[ef-1],eu[ef])<em)return!0;return!1}function Cu(x,eu,ef){let em=eu.distSqr(ef);if(0===em)return x.distSqr(eu);let e_=((x.x-eu.x)*(ef.x-eu.x)+(x.y-eu.y)*(ef.y-eu.y))/em;return x.distSqr(e_<0?eu:e_>1?ef:ef.sub(eu)._mult(e_)._add(eu))}function Pu(x,eu){let ef,em,e_,eg=!1;for(let ex=0;ex<x.length;ex++){ef=x[ex];for(let x=0,ex=ef.length-1;x<ef.length;ex=x++)em=ef[x],e_=ef[ex],em.y>eu.y!=e_.y>
8eu.y&&eu.x<(e_.x-em.x)*(eu.y-em.y)/(e_.y-em.y)+em.x&&(eg=!eg)}return eg}function Du(x,eu){let ef=!1;for(let em=0,e_=x.length-1;em<x.length;e_=em++){let eg=x[em],ex=x[e_];eg.y>eu.y!=ex.y>eu.y&&eu.x<(ex.x-eg.x)*(eu.y-eg.y)/(ex.y-eg.y)+eg.x&&(ef=!ef)}return ef}function Vu(x,eu,ef,em,e_){for(let eg of x)if(eu<=eg.x&&ef<=eg.y&&em>=eg.x&&e_>=eg.y)return!0;let eg=[new eD(eu,ef),new eD(eu,e_),new eD(em,e_),new eD(em,ef)];if(x.length>2){for(let eu of eg)if(Du(x,eu))return!0}for(let eu=0;eu<x.length-1;eu++)if(function(x,eu,ef){let em=ef[0],e_=ef[2];if(x.x<em.x&&eu.x<em.x||x.x>e_.x&&eu.x>e_.x||x.y<em.y&&eu.y<em.y||x.y>e_.y&&eu.y>e_.y)return!1;let eg=O(x,eu,ef[0]);return eg!==O(x,eu,ef[1])||eg!==O(x,eu,ef[2])||eg!==O(x,eu,ef[3])}(x[eu],x[eu+1],eg))return!0;return!1}function Fu(x,eu,ef){let em=eu.paint.get(x).value;return"constant"===em.kind?em.value:ef.programConfigurations.get(eu.id).getMaxValue(x)}function Ru(x){return Math.sqrt(x[0]*x[0]+x[1]*x[1])}function ju(x,eu,ef,em,e_){if(!eu[0]&&!eu[1])return x;let eg=eD.convert(eu)._mult(e_);"viewport"===ef&&eg._rotate(-em);let ex=[];for(let eu=0;eu<x.length;eu++)ex.push(x[eu].sub(eg));return ex}function $u(x,eu,ef,em){let e_=eD.convert(x)._mult(em);return"viewport"===eu&&e_._rotate(-ef),e_}Oi(Su,"CircleBucket",{omit:["layers"]});let iB=new Js({"circle-sort-key":new Hs(e9.layout_circle["circle-sort-key"])});var iO={paint:new Js({"circle-radius":new Hs(e9.paint_circle["circle-radius"]),"circle-color":new Hs(e9.paint_circle["circle-color"]),"circle-blur":new Hs(e9.paint_circle["circle-blur"]),"circle-opacity":new Hs(e9.paint_circle["circle-opacity"]),"circle-translate":new Ys(e9.paint_circle["circle-translate"]),"circle-translate-anchor":new Ys(e9.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new Ys(e9.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new Ys(e9.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Hs(e9.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Hs(e9.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Hs(e9.paint_circle["circle-stroke-opacity"])}),layout:iB};function qu(x,eu,ef,em,e_,eg,ex,ev,eb){if(eg&&x.queryGeometry.isAboveHorizon)return!1;eg&&(eb*=x.pixelToTileUnitsFactor);let ew=x.tileID.canonical,eT=ef.projection.upVectorScale(ew,ef.center.lat,ef.worldSize).metersToTile;for(let eS of eu)for(let eu of eS){var eE;let eS=eu.add(ev),eM=e_&&ef.elevation?ef.elevation.exaggeration()*e_.getElevationAt(eS.x,eS.y,!0):0,eI=ef.projection.projectTilePoint(eS.x,eS.y,ew);if(eM>0){let x=ef.projection.upVector(ew,eS.x,eS.y);eI.x+=x[0]*eT*eM,eI.y+=x[1]*eT*eM,eI.z+=x[2]*eT*eM}let eA=eg?eS:function(x,eu,ef,em){let e_=ul([],[x,eu,ef,1],em);return new eD(e_[0]/e_[3],e_[1]/e_[3])}(eI.x,eI.y,eI.z,em),eC=eg?x.tilespaceRays.map(x=>(function(x,eu){let ef=Uo();return iF[2]=eu,x.intersectsPlane(iF,iU,ef),new eD(ef[0],ef[1])})(x,eM)):x.queryGeometry.screenGeometry,ez=ul([],[eI.x,eI.y,eI.z,1],em);if(!ex&&eg?eb*=ez[3]/ef.cameraToCenterDistance:ex&&!eg&&(eb*=ef.cameraToCenterDistance/ez[3]),eg){let x=lu((eu.y/8192+ew.y)/(1<<ew.z));eb/=ef.projection.pixelsPerMeter(x,1)/(1/nu(x))}if(eE=eb,Du(eC,eA)||Eu(eA,eC,eE))return!0}return!1}let iF=No(0,0,0),iU=No(0,0,1);let Ku=class Ku extends Su{};function Yu(x,{width:eu,height:ef},em,e_){if(e_){if(e_ instanceof Uint8ClampedArray)e_=new Uint8Array(e_.buffer);else if(e_.length!==eu*ef*em)throw RangeError("mismatched image size")}else e_=new Uint8Array(eu*ef*em);return x.width=eu,x.height=ef,x.data=e_,x}function Hu(x,eu,ef){let{width:em,height:e_}=eu;em===x.width&&e_===x.height||(Wu(x,eu,{x:0,y:0},{x:0,y:0},{width:Math.min(x.width,em),height:Math.min(x.height,e_)},ef),x.width=em,x.height=e_,x.data=eu.data)}function Wu(x,eu,ef,em,e_,eg){if(0===e_.width||0===e_.height)return eu;if(e_.width>x.width||e_.height>x.height||ef.x>x.width-e_.width||ef.y>x.height-e_.height)throw RangeError("out of range source coordinates for image copy");if(e_.width>eu.width||e_.height>eu.height||em.x>eu.width-e_.width||em.y>eu.height-e_.height)throw RangeError("out of range destination coordinates for image copy");let ex=x.data,ev=eu.data;for(let eb=0;eb<e_.height;eb++){let ew=((ef.y+eb)*x.width+ef.x)*eg,eT=((em.y+eb)*eu.width+em.x)*eg;for(let x=0;x<e_.width*eg;x++)ev[eT+x]=ex[ew+x]}return eu}Oi(Ku,"HeatmapBucket",{omit:["layers"]});let Ju=class Ju{constructor(x,eu){Yu(this,x,1,eu)}resize(x){Hu(this,new Ju(x),1)}clone(){return new Ju({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(x,eu,ef,em,e_){Wu(x,eu,ef,em,e_,1)}};let Qu=class Qu{constructor(x,eu){Yu(this,x,4,eu)}resize(x){Hu(this,new Qu(x),4)}replace(x,eu){eu?this.data.set(x):this.data=x instanceof Uint8ClampedArray?new Uint8Array(x.buffer):x}clone(){return new Qu({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(x,eu,ef,em,e_){Wu(x,eu,ef,em,e_,4)}};Oi(Ju,"AlphaImage"),Oi(Qu,"RGBAImage");var iV={paint:new Js({"heatmap-radius":new Hs(e9.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Hs(e9.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Ys(e9.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Ws(e9.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Ys(e9.paint_heatmap["heatmap-opacity"])})};function ec(x){let eu={},ef=x.resolution||256,em=x.clips?x.clips.length:1,e_=x.image||new Qu({width:ef,height:em}),s=(ef,em,eg)=>{eu[x.evaluationKey]=eg;let ex=x.expression.evaluate(eu);e_.data[ef+em+0]=Math.floor(255*ex.r/ex.a),e_.data[ef+em+1]=Math.floor(255*ex.g/ex.a),e_.data[ef+em+2]=Math.floor(255*ex.b/ex.a),e_.data[ef+em+3]=Math.floor(255*ex.a)};if(x.clips)for(let eu=0,e_=0;eu<em;++eu,e_+=4*ef)for(let em=0,eg=0;em<ef;em++,eg+=4){let ex=em/(ef-1),{start:ev,end:eb}=x.clips[eu];s(e_,eg,ev*(1-ex)+eb*ex)}else for(let x=0,eu=0;x<ef;x++,eu+=4)s(0,eu,x/(ef-1));return e_}var iN={paint:new Js({"hillshade-illumination-direction":new Ys(e9.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-anchor":new Ys(e9.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new Ys(e9.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new Ys(e9.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new Ys(e9.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new Ys(e9.paint_hillshade["hillshade-accent-color"])})};let ij=na([{name:"a_pos",components:2,type:"Int16"}],4),{members:iG}=ij;var iZ={};function ac(x,eu,ef){ef=ef||2;var em,e_,eg,ex,ev,eb,ew,eT=eu&&eu.length,eE=eT?eu[0]*ef:x.length,eS=oc(x,0,eE,ef,!0),eM=[];if(!eS||eS.next===eS.prev)return eM;if(eT&&(eS=function(x,eu,ef,em){var e_,eg,ex,ev=[];for(e_=0,eg=eu.length;e_<eg;e_++)(ex=oc(x,eu[e_]*em,e_<eg-1?eu[e_+1]*em:x.length,em,!1))===ex.next&&(ex.steiner=!0),ev.push(function(x){var eu=x,ef=x;
8do(eu.x<ef.x||eu.x===ef.x&&eu.y<ef.y)&&(ef=eu),eu=eu.next;while(eu!==x);return ef}(ex));for(ev.sort(dc),e_=0;e_<ev.length;e_++)ef=function(x,eu){var ef=function(x,eu){var ef,em,e_,eg=eu,ex=x.x,ev=x.y,eb=-1/0;do{if(ev<=eg.y&&ev>=eg.next.y&&eg.next.y!==eg.y){var ew=eg.x+(ev-eg.y)*(eg.next.x-eg.x)/(eg.next.y-eg.y);if(ew<=ex&&ew>eb&&(eb=ew,e_=eg.x<eg.next.x?eg:eg.next,ew===ex))return e_}eg=eg.next}while(eg!==eu);if(!e_)return null;var eT,eE=e_,eS=e_.x,eM=e_.y,eI=1/0;eg=e_;do ex>=eg.x&&eg.x>=eS&&ex!==eg.x&&vc(ev<eM?ex:eb,ev,eS,eM,ev<eM?eb:ex,ev,eg.x,eg.y)&&(eT=Math.abs(ev-eg.y)/(ex-eg.x),Ic(eg,x)&&(eT<eI||eT===eI&&(eg.x>e_.x||eg.x===e_.x&&(ef=e_,em=eg,0>wc(ef.prev,ef,em.prev)&&0>wc(em.next,ef,ef.next))))&&(e_=eg,eI=eT)),eg=eg.next;while(eg!==eE);return e_}(x,eu);if(!ef)return eu;var em=Mc(ef,x);return lc(em,em.next),lc(ef,ef.next)}(ev[e_],ef);return ef}(x,eu,eS,ef)),x.length>80*ef){em=eg=x[0],e_=ex=x[1];for(var eI=ef;eI<eE;eI+=ef)(ev=x[eI])<em&&(em=ev),(eb=x[eI+1])<e_&&(e_=eb),ev>eg&&(eg=ev),eb>ex&&(ex=eb);ew=0!==(ew=Math.max(eg-em,ex-e_))?32767/ew:0}return function uc(x,eu,ef,em,e_,eg,ex){if(x){!ex&&eg&&function(x,eu,ef,em){var e_=x;do 0===e_.z&&(e_.z=gc(e_.x,e_.y,eu,ef,em)),e_.prevZ=e_.prev,e_.nextZ=e_.next,e_=e_.next;while(e_!==x);e_.prevZ.nextZ=null,e_.prevZ=null,function(x){var eu,ef,em,e_,eg,ex,ev,eb,ew=1;do{for(ef=x,x=null,eg=null,ex=0;ef;){for(ex++,em=ef,ev=0,eu=0;eu<ew&&(ev++,em=em.nextZ);eu++);for(eb=ew;ev>0||eb>0&&em;)0!==ev&&(0===eb||!em||ef.z<=em.z)?(e_=ef,ef=ef.nextZ,ev--):(e_=em,em=em.nextZ,eb--),eg?eg.nextZ=e_:x=e_,e_.prevZ=eg,eg=e_;ef=em}eg.nextZ=null,ew*=2}while(ex>1)}(e_)}(x,em,e_,eg);for(var ev,eb,ew=x;x.prev!==x.next;)if(ev=x.prev,eb=x.next,eg?function(x,eu,ef,em){var e_=x.prev,eg=x.next;if(wc(e_,x,eg)>=0)return!1;for(var ex=e_.x,ev=x.x,eb=eg.x,ew=e_.y,eT=x.y,eE=eg.y,eS=ex<ev?ex<eb?ex:eb:ev<eb?ev:eb,eM=ew<eT?ew<eE?ew:eE:eT<eE?eT:eE,eI=ex>ev?ex>eb?ex:eb:ev>eb?ev:eb,eA=ew>eT?ew>eE?ew:eE:eT>eE?eT:eE,eC=gc(eS,eM,eu,ef,em),ez=gc(eI,eA,eu,ef,em),eD=x.prevZ,ek=x.nextZ;eD&&eD.z>=eC&&ek&&ek.z<=ez;){if(eD.x>=eS&&eD.x<=eI&&eD.y>=eM&&eD.y<=eA&&eD!==e_&&eD!==eg&&vc(ex,ew,ev,eT,eb,eE,eD.x,eD.y)&&wc(eD.prev,eD,eD.next)>=0||(eD=eD.prevZ,ek.x>=eS&&ek.x<=eI&&ek.y>=eM&&ek.y<=eA&&ek!==e_&&ek!==eg&&vc(ex,ew,ev,eT,eb,eE,ek.x,ek.y)&&wc(ek.prev,ek,ek.next)>=0))return!1;ek=ek.nextZ}for(;eD&&eD.z>=eC;){if(eD.x>=eS&&eD.x<=eI&&eD.y>=eM&&eD.y<=eA&&eD!==e_&&eD!==eg&&vc(ex,ew,ev,eT,eb,eE,eD.x,eD.y)&&wc(eD.prev,eD,eD.next)>=0)return!1;eD=eD.prevZ}for(;ek&&ek.z<=ez;){if(ek.x>=eS&&ek.x<=eI&&ek.y>=eM&&ek.y<=eA&&ek!==e_&&ek!==eg&&vc(ex,ew,ev,eT,eb,eE,ek.x,ek.y)&&wc(ek.prev,ek,ek.next)>=0)return!1;ek=ek.nextZ}return!0}(x,em,e_,eg):function(x){var eu=x.prev,ef=x.next;if(wc(eu,x,ef)>=0)return!1;for(var em=eu.x,e_=x.x,eg=ef.x,ex=eu.y,ev=x.y,eb=ef.y,ew=em<e_?em<eg?em:eg:e_<eg?e_:eg,eT=ex<ev?ex<eb?ex:eb:ev<eb?ev:eb,eE=em>e_?em>eg?em:eg:e_>eg?e_:eg,eS=ex>ev?ex>eb?ex:eb:ev>eb?ev:eb,eM=ef.next;eM!==eu;){if(eM.x>=ew&&eM.x<=eE&&eM.y>=eT&&eM.y<=eS&&vc(em,ex,e_,ev,eg,eb,eM.x,eM.y)&&wc(eM.prev,eM,eM.next)>=0)return!1;eM=eM.next}return!0}(x))eu.push(ev.i/ef|0),eu.push(x.i/ef|0),eu.push(eb.i/ef|0),zc(x),x=eb.next,ew=eb.next;else if((x=eb)===ew){ex?1===ex?uc(x=function(x,eu,ef){var em=x;do{var e_=em.prev,eg=em.next.next;!_c(e_,eg)&&Ac(e_,em,em.next,eg)&&Ic(e_,eg)&&Ic(eg,e_)&&(eu.push(e_.i/ef|0),eu.push(em.i/ef|0),eu.push(eg.i/ef|0),zc(em),zc(em.next),em=x=eg),em=em.next}while(em!==x);return lc(em)}(lc(x),eu,ef),eu,ef,em,e_,eg,2):2===ex&&function(x,eu,ef,em,e_,eg){var ex=x;do{for(var ev,eb,ew=ex.next.next;ew!==ex.prev;){if(ex.i!==ew.i&&(ev=ex,eb=ew,ev.next.i!==eb.i&&ev.prev.i!==eb.i&&!function(x,eu){var ef=x;do{if(ef.i!==x.i&&ef.next.i!==x.i&&ef.i!==eu.i&&ef.next.i!==eu.i&&Ac(ef,ef.next,x,eu))return!0;ef=ef.next}while(ef!==x);return!1}(ev,eb)&&(Ic(ev,eb)&&Ic(eb,ev)&&function(x,eu){var ef=x,em=!1,e_=(x.x+eu.x)/2,eg=(x.y+eu.y)/2;do ef.y>eg!=ef.next.y>eg&&ef.next.y!==ef.y&&e_<(ef.next.x-ef.x)*(eg-ef.y)/(ef.next.y-ef.y)+ef.x&&(em=!em),ef=ef.next;while(ef!==x);return em}(ev,eb)&&(wc(ev.prev,ev,eb.prev)||wc(ev,eb.prev,eb))||_c(ev,eb)&&wc(ev.prev,ev,ev.next)>0&&wc(eb.prev,eb,eb.next)>0))){var eT=Mc(ex,ew);return ex=lc(ex,ex.next),eT=lc(eT,eT.next),uc(ex,eu,ef,em,e_,eg,0),void uc(eT,eu,ef,em,e_,eg,0)}ew=ew.next}ex=ex.next}while(ex!==x)}(x,eu,ef,em,e_,eg):uc(lc(x),eu,ef,em,e_,eg,1);break}}}(eS,eM,ef,em,e_,ew,0),eM}function oc(x,eu,ef,em,e_){var eg,ex;if(e_===Ec(x,eu,ef,em)>0)for(eg=eu;eg<ef;eg+=em)ex=Tc(eg,x[eg],x[eg+1],ex);else for(eg=ef-em;eg>=eu;eg-=em)ex=Tc(eg,x[eg],x[eg+1],ex);return ex&&_c(ex,ex.next)&&(zc(ex),ex=ex.next),ex}function lc(x,eu){if(!x)return x;eu||(eu=x);var ef,em=x;do if(ef=!1,em.steiner||!_c(em,em.next)&&0!==wc(em.prev,em,em.next))em=em.next;else{if(zc(em),(em=eu=em.prev)===em.next)break;ef=!0}while(ef||em!==eu);return eu}function dc(x,eu){return x.x-eu.x}function gc(x,eu,ef,em,e_){return(x=1431655765&((x=858993459&((x=252645135&((x=16711935&((x=(x-ef)*e_|0)|x<<8))|x<<4))|x<<2))|x<<1))|(eu=1431655765&((eu=858993459&((eu=252645135&((eu=16711935&((eu=(eu-em)*e_|0)|eu<<8))|eu<<4))|eu<<2))|eu<<1))<<1}function vc(x,eu,ef,em,e_,eg,ex,ev){return(e_-ex)*(eu-ev)>=(x-ex)*(eg-ev)&&(x-ex)*(em-ev)>=(ef-ex)*(eu-ev)&&(ef-ex)*(eg-ev)>=(e_-ex)*(em-ev)}function wc(x,eu,ef){return(eu.y-x.y)*(ef.x-eu.x)-(eu.x-x.x)*(ef.y-eu.y)}function _c(x,eu){return x.x===eu.x&&x.y===eu.y}function Ac(x,eu,ef,em){var e_=kc(wc(x,eu,ef)),eg=kc(wc(x,eu,em)),ex=kc(wc(ef,em,x)),ev=kc(wc(ef,em,eu));return e_!==eg&&ex!==ev||!(0!==e_||!Sc(x,ef,eu))||!(0!==eg||!Sc(x,em,eu))||!(0!==ex||!Sc(ef,x,em))||!(0!==ev||!Sc(ef,eu,em))}function Sc(x,eu,ef){return eu.x<=Math.max(x.x,ef.x)&&eu.x>=Math.min(x.x,ef.x)&&eu.y<=Math.max(x.y,ef.y)&&eu.y>=Math.min(x.y,ef.y)}function kc(x){return x>0?1:x<0?-1:0}function Ic(x,eu){return 0>wc(x.prev,x,x.next)?wc(x,eu,x.next)>=0&&wc(x,x.prev,eu)>=0:0>wc(x,eu,x.prev)||0>wc(x,x.next,eu)}function Mc(x,eu){var ef=new Bc(x.i,x.x,x.y),em=new Bc(eu.i,eu.x,eu.y),e_=x.next,eg=eu.prev;return x.next=eu,eu.prev=x,ef.next=e_,e_.prev=ef,em.next=ef,ef.prev=em,eg.next=em,em.prev=eg,em}function Tc(x,eu,ef,em){var e_=new Bc(x,eu,ef);return em?(e_.next=em.next,e_.prev=em,em.next.prev=e_,em.next=e_):(e_.prev=e_,e_.next=e_),e_}function zc(x){x.next.prev=x.prev,x.prev.next=x.next,x.prevZ&&(x.prevZ.nextZ=x.nextZ),x.nextZ&&(x.nextZ.prevZ=x.prevZ)}function Bc(x,eu,ef){this.i=x,this.x=eu,this.y=ef,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ec(x,eu,ef,em){for(var e_=0,eg=eu,ex=ef-em;eg<ef;eg+=em)e_+=(x[ex]-x[eg])*(x[eg+1]+x[ex+1]),ex=eg;return e_}function Dc(x,eu,ef){var em=x[eu];x[eu]=x[ef],x[ef]=em}function Vc(x,eu){return x<eu?-1:x>eu?1:0}function Lc(x,eu){let ef,em;let e_=x.length;if(e_<=1)return[x];let eg=[];for(let eu=0;eu<e_;eu++){let e_=function(x){let eu=0;for(let ef,em,e_=0,eg=x.length,ex=eg-1;e_<eg;ex=e_++)ef=x[e_],eu+=((em=x[ex]).x-ef.x)*(ef.y+em.y);return eu}(x[eu]);0!==e_&&(x[eu].area=Math.abs(e_),void 0===em&&(em=e_<0),em===e_<0?(ef&&eg.push(ef),ef=[x[eu]]):ef.push(x[eu]))}if(ef&&eg.push(ef),eu>1)for(let x=0;x<eg.length;x++){var ex;eg[x].length<=eu||(function Pc(x,eu,ef,em,e_){for(;em>ef;){if(em-ef>600){var eg=em-ef+1,ex=eu-ef+1,ev=Math.log(eg),eb=.5*Math.exp(2*ev/3),ew=.5*Math.sqrt(ev*eb*(eg-eb)/eg)*(ex-eg/2<0?-1:1);Pc(x,eu,Math.max(ef,Math.floor(eu-ex*eb/eg+ew)),Math.min(em,Math.floor(eu+(eg-ex)*eb/eg+ew)),e_)}var eT=x[eu],eE=ef,eS=em;for(Dc(x,ef,eu),e_(x[em],eT)>0&&Dc(x,ef,em);eE<eS;){for(Dc(x,eE,eS),eE++,eS--;0>e_(x[eE],eT);)eE++;for(;e_(x[eS],eT)>0;)eS--}0===e_(x[ef],eT)?Dc(x,ef,eS):Dc(x,++eS,em),eS<=eu&&(ef=eS+1),eu<=eS&&(em=eS-1)}}
8(ex=eg[x],eu,1,eg[x].length-1||ex.length-1,Fc||Vc),eg[x]=eg[x].slice(0,eu))}return eg}function Fc(x,eu){return eu.area-x.area}function Rc(x,eu,ef){let em=ef.patternDependencies,e_=!1;for(let ef of eu){let eu=ef.paint.get(`${x}-pattern`);eu.isConstant()||(e_=!0);let eg=eu.constantOr(null);eg&&(e_=!0,em[eg]=!0)}return e_}function jc(x,eu,ef,em,e_){let eg=e_.patternDependencies;for(let ex of eu){let eu=ex.paint.get(`${x}-pattern`).value;if("constant"!==eu.kind){let x=eu.evaluate({zoom:em},ef,{},e_.availableImages);eg[x=x&&x.name?x.name:x]=!0,ef.patterns[ex.id]=x}}return ef}({get exports(){return iZ},set exports(t){iZ=t}}).exports=ac,iZ.default=ac,ac.deviation=function(x,eu,ef,em){var e_=eu&&eu.length,eg=Math.abs(Ec(x,0,e_?eu[0]*ef:x.length,ef));if(e_)for(var ex=0,ev=eu.length;ex<ev;ex++)eg-=Math.abs(Ec(x,eu[ex]*ef,ex<ev-1?eu[ex+1]*ef:x.length,ef));var eb=0;for(ex=0;ex<em.length;ex+=3){var ew=em[ex]*ef,eT=em[ex+1]*ef,eE=em[ex+2]*ef;eb+=Math.abs((x[ew]-x[eE])*(x[eT+1]-x[ew+1])-(x[ew]-x[eT])*(x[eE+1]-x[ew+1]))}return 0===eg&&0===eb?0:Math.abs((eb-eg)/eg)},ac.flatten=function(x){for(var eu=x[0][0].length,ef={vertices:[],holes:[],dimensions:eu},em=0,e_=0;e_<x.length;e_++){for(var eg=0;eg<x[e_].length;eg++)for(var ex=0;ex<eu;ex++)ef.vertices.push(x[e_][eg][ex]);e_>0&&ef.holes.push(em+=x[e_-1].length)}return ef};let $c=class $c{constructor(x){this.zoom=x.zoom,this.overscaling=x.overscaling,this.layers=x.layers,this.layerIds=this.layers.map(x=>x.id),this.index=x.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new sa,this.indexArray=new wa,this.indexArray2=new Ma,this.programConfigurations=new fo(x.layers,x.zoom),this.segments=new So,this.segments2=new So,this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id),this.projection=x.projection}populate(x,eu,ef,em){this.hasPattern=Rc("fill",this.layers,eu);let e_=this.layers[0].layout.get("fill-sort-key"),eg=[];for(let{feature:ex,id:ev,index:eb,sourceLayerIndex:ew}of x){let x=this.layers[0]._featureFilter.needGeometry,eT=wu(ex,x);if(!this.layers[0]._featureFilter.filter(new $s(this.zoom),eT,ef))continue;let eE=e_?e_.evaluate(eT,{},ef,eu.availableImages):void 0,eS={id:ev,properties:ex.properties,type:ex.type,sourceLayerIndex:ew,index:eb,geometry:x?eT.geometry:bu(ex,ef,em),patterns:{},sortKey:eE};eg.push(eS)}for(let em of(e_&&eg.sort((x,eu)=>x.sortKey-eu.sortKey),eg)){let{geometry:e_,index:eg,sourceLayerIndex:ex}=em;if(this.hasPattern){let x=jc("fill",this.layers,em,this.zoom,eu);this.patternFeatures.push(x)}else this.addFeature(em,e_,eg,ef,{},eu.availableImages);eu.featureIndex.insert(x[eg].feature,e_,eg,ex,this.index)}}update(x,eu,ef,em){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(x,eu,this.stateDependentLayers,ef,em)}addFeatures(x,eu,ef,em,e_){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,eu,ef,em)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(x){this.uploaded||(this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,iG),this.indexBuffer=x.createIndexBuffer(this.indexArray),this.indexBuffer2=x.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(x),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(x,eu,ef,em,e_,eg=[]){for(let x of Lc(eu,500)){let eu=0;for(let ef of x)eu+=ef.length;let ef=this.segments.prepareSegment(eu,this.layoutVertexArray,this.indexArray),em=ef.vertexLength,e_=[],eg=[];for(let eu of x){if(0===eu.length)continue;eu!==x[0]&&eg.push(e_.length/2);let ef=this.segments2.prepareSegment(eu.length,this.layoutVertexArray,this.indexArray2),em=ef.vertexLength;this.layoutVertexArray.emplaceBack(eu[0].x,eu[0].y),this.indexArray2.emplaceBack(em+eu.length-1,em),e_.push(eu[0].x),e_.push(eu[0].y);for(let x=1;x<eu.length;x++)this.layoutVertexArray.emplaceBack(eu[x].x,eu[x].y),this.indexArray2.emplaceBack(em+x-1,em+x),e_.push(eu[x].x),e_.push(eu[x].y);ef.vertexLength+=eu.length,ef.primitiveLength+=eu.length}
8let ex=iZ(e_,eg);for(let x=0;x<ex.length;x+=3)this.indexArray.emplaceBack(em+ex[x],em+ex[x+1],em+ex[x+2]);ef.vertexLength+=eu,ef.primitiveLength+=ex.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,x,ef,e_,eg,em)}};Oi($c,"FillBucket",{omit:["layers","patternFeatures"]});let i$=new Js({"fill-sort-key":new Hs(e9.layout_fill["fill-sort-key"])});var iq={paint:new Js({"fill-antialias":new Ys(e9.paint_fill["fill-antialias"]),"fill-opacity":new Hs(e9.paint_fill["fill-opacity"]),"fill-color":new Hs(e9.paint_fill["fill-color"]),"fill-outline-color":new Hs(e9.paint_fill["fill-outline-color"]),"fill-translate":new Ys(e9.paint_fill["fill-translate"]),"fill-translate-anchor":new Ys(e9.paint_fill["fill-translate-anchor"]),"fill-pattern":new Hs(e9.paint_fill["fill-pattern"])}),layout:i$};let iW=na([{name:"a_pos_normal_ed",components:4,type:"Int16"}]),iX=na([{name:"a_centroid_pos",components:2,type:"Uint16"}]),iH=na([{name:"a_pos_3",components:3,type:"Int16"},{name:"a_pos_normal_3",components:3,type:"Int16"}]),{members:iY}=iW;var iJ={};function Hc(x,eu,ef,em,e_){this.properties={},this.extent=ef,this.type=0,this._pbf=x,this._geometry=-1,this._keys=em,this._values=e_,x.readFields(Wc,this,eu)}function Wc(x,eu,ef){1==x?eu.id=ef.readVarint():2==x?function(x,eu){for(var ef=x.readVarint()+x.pos;x.pos<ef;){var em=eu._keys[x.readVarint()],e_=eu._values[x.readVarint()];eu.properties[em]=e_}}(ef,eu):3==x?eu.type=ef.readVarint():4==x&&(eu._geometry=ef.pos)}function eh(x,eu){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=x,this._keys=[],this._values=[],this._features=[],x.readFields(rh,this,eu),this.length=this._features.length}function rh(x,eu,ef){15===x?eu.version=ef.readVarint():1===x?eu.name=ef.readString():5===x?eu.extent=ef.readVarint():2===x?eu._features.push(ef.pos):3===x?eu._keys.push(ef.readString()):4===x&&eu._values.push(function(x){for(var eu=null,ef=x.readVarint()+x.pos;x.pos<ef;){var em=x.readVarint()>>3;eu=1===em?x.readString():2===em?x.readFloat():3===em?x.readDouble():4===em?x.readVarint64():5===em?x.readVarint():6===em?x.readSVarint():7===em?x.readBoolean():null}return eu}(ef))}function ih(x,eu,ef){if(3===x){var em=new eh(ef,ef.readVarint()+ef.pos);em.length&&(eu[em.name]=em)}}Hc.types=["Unknown","Point","LineString","Polygon"],Hc.prototype.loadGeometry=function(){var x=this._pbf;x.pos=this._geometry;for(var eu,ef=x.readVarint()+x.pos,em=1,e_=0,eg=0,ex=0,ev=[];x.pos<ef;){if(e_<=0){var eb=x.readVarint();em=7&eb,e_=eb>>3}if(e_--,1===em||2===em)eg+=x.readSVarint(),ex+=x.readSVarint(),1===em&&(eu&&ev.push(eu),eu=[]),eu.push(new eD(eg,ex));else{if(7!==em)throw Error("unknown command "+em);eu&&eu.push(eu[0].clone())}}return eu&&ev.push(eu),ev},Hc.prototype.bbox=function(){var x=this._pbf;x.pos=this._geometry;for(var eu=x.readVarint()+x.pos,ef=1,em=0,e_=0,eg=0,ex=1/0,ev=-1/0,eb=1/0,ew=-1/0;x.pos<eu;){if(em<=0){var eT=x.readVarint();ef=7&eT,em=eT>>3}if(em--,1===ef||2===ef)(e_+=x.readSVarint())<ex&&(ex=e_),e_>ev&&(ev=e_),(eg+=x.readSVarint())<eb&&(eb=eg),eg>ew&&(ew=eg);else if(7!==ef)throw Error("unknown command "+ef)}return[ex,eb,ev,ew]},Hc.prototype.toGeoJSON=function(x,eu,ef){var em,e_,eg=this.extent*Math.pow(2,ef),ex=this.extent*x,ev=this.extent*eu,eb=this.loadGeometry(),ew=Hc.types[this.type];function c(x){for(var eu=0;eu<x.length;eu++){var ef=x[eu];x[eu]=[360*(ef.x+ex)/eg-180,360/Math.PI*Math.atan(Math.exp((180-360*(ef.y+ev)/eg)*Math.PI/180))-90]}}switch(this.type){case 1:var eT=[];for(em=0;em<eb.length;em++)eT[em]=eb[em][0];c(eb=eT);break;case 2:for(em=0;em<eb.length;em++)c(eb[em]);break;case 3:for(eb=function(x){var eu=x.length;if(eu<=1)return[x];for(var ef,em,e_=[],eg=0;eg<eu;eg++){var ex=function(x){for(var eu,ef,em=0,e_=0,eg=x.length,ex=eg-1;e_<eg;ex=e_++)em+=((ef=x[ex]).x-(eu=x[e_]).x)*(eu.y+ef.y);return em}(x[eg]);0!==ex&&(void 0===em&&(em=ex<0),em===ex<0?(ef&&e_.push(ef),ef=[x[eg]]):ef.push(x[eg]))}return ef&&e_.push(ef),e_}(eb),em=0;em<eb.length;em++)for(e_=0;e_<eb[em].length;e_++)c(eb[em][e_])}1===eb.length?eb=eb[0]:ew="Multi"+ew;var eE={type:"Feature",geometry:{type:ew,coordinates:eb},properties:this.properties};return"id"in this&&(eE.id=this.id),eE},eh.prototype.feature=function(x){if(x<0||x>=this._features.length)throw Error("feature index out of bounds");this._pbf.pos=this._features[x];var eu=this._pbf.readVarint()+this._pbf.pos;return new Hc(this._pbf,eu,this.extent,this._keys,this._values)};var iK=iJ.VectorTile=function(x,eu){this.layers=x.readFields(ih,{},eu)},iQ=iJ.VectorTileFeature=Hc;function oh(x,eu,ef,em){let e_=[],eg=0===em?(x,eu,ef,em,e_,eg)=>{x.push(new eD(eg,ef+(eg-eu)/(em-eu)*(e_-ef)))}:(x,eu,ef,em,e_,eg)=>{x.push(new eD(eu+(eg-ef)/(e_-ef)*(em-eu),eg))};for(let ex of x){let x=[];for(let e_ of ex){if(e_.length<=2)continue;let ex=[];for(let x=0;x<e_.length-1;x++){let ev=e_[x].x,eb=e_[x].y,ew=e_[x+1].x,eT=e_[x+1].y,eE=0===em?ev:eb,eS=0===em?ew:eT;eE<eu?eS>eu&&eg(ex,ev,eb,ew,eT,eu):eE>ef?eS<ef&&eg(ex,ev,eb,ew,eT,ef):ex.push(e_[x]),eS<eu&&eE>=eu&&eg(ex,ev,eb,ew,eT,eu),eS>ef&&eE<=ef&&eg(ex,ev,eb,ew,eT,ef)}let ev=e_[e_.length-1],eb=0===em?ev.x:ev.y;eb>=eu&&eb<=ef&&ex.push(ev),ex.length&&(ev=ex[ex.length-1],ex[0].x===ev.x&&ex[0].y===ev.y||ex.push(ex[0]),x.push(ex))}x.length&&e_.push(x)}return e_}iJ.VectorTileLayer=eh;let i0=iQ.types;function ch(x,eu,ef,em,e_,eg,ex,ev){x.emplaceBack((eu<<1)+ex,(ef<<1)+eg,(Math.floor(8192*em)<<1)+e_,Math.round(ev))}function hh(x,eu,ef){x.emplaceBack(eu.x,eu.y,eu.z,16384*ef[0],16384*ef[1],16384*ef[2])}let ph=class ph{constructor(){this.acc=new eD(0,0),this.polyCount=[]}startRing(x){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new eD(x.x,x.y),this.max=new eD(x.x,x.y))}append(x,eu){this.currentPolyCount.edges++,this.acc._add(x);let ef=this.min,em=this.max;x.x<ef.x?ef.x=x.x:x.x>em.x&&(em.x=x.x),x.y<ef.y?ef.y=x.y:x.y>em.y&&(em.y=x.y),((0===x.x||8192===x.x)&&x.x===eu.x)!=((0===x.y||8192===x.y)&&x.y===eu.y)&&this.processBorderOverlap(x,eu),eu.x<0!=x.x<0&&this.addBorderIntersection(0,Mr(eu.y,x.y,(0-eu.x)/(x.x-eu.x))),eu.x>8192!=x.x>8192&&this.addBorderIntersection(1,Mr(eu.y,x.y,(8192-eu.x)/(x.x-eu.x))),eu.y<0!=x.y<0&&this.addBorderIntersection(2,Mr(eu.x,x.x,(0-eu.y)/(x.y-eu.y))),eu.y>8192!=x.y>8192&&this.addBorderIntersection(3,Mr(eu.x,x.x,(8192-eu.y)/(x.y-eu.y)))}addBorderIntersection(x,eu){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);let ef=this.borders[x];eu<ef[0]&&(ef[0]=eu),eu>ef[1]&&(ef[1]=eu)}processBorderOverlap(x,eu){if(x.x===eu.x){if(x.y===eu.y)return;let ef=0===x.x?0:1;this.addBorderIntersection(ef,eu.y),this.addBorderIntersection(ef,x.y)}else{let ef=0===x.y?2:3;this.addBorderIntersection(ef,eu.x),this.addBorderIntersection(ef,x.x)}}centroid(){let x=this.polyCount.reduce((x,eu)=>x+eu.edges,0);return 0!==x?this.acc.div(x)._round():new eD(0,0)}span(){return new eD(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((x,eu)=>x+ +(eu[0]!==Number.MAX_VALUE),0)}};
8let fh=class fh{constructor(x){this.zoom=x.zoom,this.canonical=x.canonical,this.overscaling=x.overscaling,this.layers=x.layers,this.layerIds=this.layers.map(x=>x.id),this.index=x.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=x.projection,this.layoutVertexArray=new oa,this.centroidVertexArray=new $a,this.indexArray=new wa,this.programConfigurations=new fo(x.layers,x.zoom),this.segments=new So,this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id),this.enableTerrain=x.enableTerrain}populate(x,eu,ef,em){for(let{feature:e_,id:eg,index:ex,sourceLayerIndex:ev}of(this.features=[],this.hasPattern=Rc("fill-extrusion",this.layers,eu),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(x){let eu=Math.exp(Math.PI*(1-x.y/(1<<x.z)*2));return 80150034*eu/(eu*eu+1)/8192/(1<<x.z)}(ef),this.edgeRadius=this.layers[0].layout.get("fill-extrusion-edge-radius")/this.tileToMeter,x)){let x=this.layers[0]._featureFilter.needGeometry,eb=wu(e_,x);if(!this.layers[0]._featureFilter.filter(new $s(this.zoom),eb,ef))continue;let ew={id:eg,sourceLayerIndex:ev,index:ex,geometry:x?eb.geometry:bu(e_,ef,em),properties:e_.properties,type:e_.type,patterns:{}},eT=this.layoutVertexArray.length;this.hasPattern?this.features.push(jc("fill-extrusion",this.layers,ew,this.zoom,eu)):this.addFeature(ew,ew.geometry,ex,ef,{},eu.availableImages,em),eu.featureIndex.insert(e_,ew.geometry,ex,ev,this.index,eT)}this.sortBorders()}addFeatures(x,eu,ef,em,e_){for(let x of this.features){let{geometry:eg}=x;this.addFeature(x,eg,x.index,eu,ef,em,e_)}this.sortBorders()}update(x,eu,ef,em){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(x,eu,this.stateDependentLayers,ef,em)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(x){this.uploaded||(this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,iY),this.indexBuffer=x.createIndexBuffer(this.indexArray),this.layoutVertexExtArray&&(this.layoutVertexExtBuffer=x.createVertexBuffer(this.layoutVertexExtArray,iH.members,!0))),this.programConfigurations.upload(x),this.uploaded=!0}uploadCentroid(x){0!==this.centroidVertexArray.length&&(this.centroidVertexBuffer?this.needsCentroidUpdate&&this.centroidVertexBuffer.updateData(this.centroidVertexArray):this.centroidVertexBuffer=x.createVertexBuffer(this.centroidVertexArray,iX.members,!0),this.needsCentroidUpdate=!1)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.centroidVertexBuffer&&this.centroidVertexBuffer.destroy(),this.layoutVertexExtBuffer&&this.layoutVertexExtBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(x,eu,ef,em,e_,eg,ex){var ev;let eb;let ew=[new eD(0,0),new eD(8192,8192)],eT=ex.projection,eE="globe"===eT.name,eS=this.enableTerrain&&!eE?new ph:null,eM="Polygon"===i0[x.type];eE&&!this.layoutVertexExtArray&&(this.layoutVertexExtArray=new pa);let eI=Lc(eu,500);for(let x=eI.length-1;x>=0;x--){let eu=eI[x];(0===eu.length||(ev=eu[0]).every(x=>x.x<=0)||ev.every(x=>x.x>=8192)||ev.every(x=>x.y<=0)||ev.every(x=>x.y>=8192))&&eI.splice(x,1)}if(eE)eb=wh(eI,ew,em);else for(let x of(eb=[],eI))eb.push({polygon:x,bounds:ew});let eA=eM?this.edgeRadius:0;for(let{polygon:x,bounds:eu}of eb){let ef=0,e_=0;for(let eu of x)eM&&!eu[0].equals(eu[eu.length-1])&&eu.push(eu[0]),e_+=eM?eu.length-1:eu.length;let eg=this.segments.prepareSegment((eM?5:4)*e_,this.layoutVertexArray,this.indexArray);if(eM){let eu=[],e_=[];for(let ex of(ef=eg.vertexLength,x)){let ef,ev;ex.length&&ex!==x[0]&&e_.push(eu.length/2),ef=ex[1].sub(ex[0])._perp()._unit();for(let x=1;x<ex.length;x++){let e_=ex[x],eb=ex[x===ex.length-1?1:x+1],{x:ew,y:eS}=e_;if(eA){ev=eb.sub(e_)._perp()._unit();let x=ef.add(ev)._unit(),eu=eA*Math.min(4,1/(ef.x*x.x+ef.y*x.y));ew+=eu*x.x,eS+=eu*x.y,ef=ev}ch(this.layoutVertexArray,ew,eS,0,0,1,1,0),eg.vertexLength++,eu.push(e_.x,e_.y),eE&&hh(this.layoutVertexExtArray,eT.projectTilePoint(ew,eS,em),eT.upVector(em,ew,eS))}}
8let ex=iZ(eu,e_);for(let x=0;x<ex.length;x+=3)this.indexArray.emplaceBack(ef+ex[x],ef+ex[x+2],ef+ex[x+1]),eg.primitiveLength++}for(let e_ of x){eS&&e_.length&&eS.startRing(e_[0]);let x,ex,ev,eb=e_.length>4&&xh(e_[e_.length-2],e_[0],e_[1]),ew=eA?function(x,eu,ef,em){let e_=eu.sub(x)._perp()._unit(),eg=ef.sub(eu)._perp()._unit();return mh(x,eu,ef,dh(e_,eg),em)}(e_[e_.length-2],e_[0],e_[1],eA):0;ex=e_[1].sub(e_[0])._perp()._unit();let eI=!0;for(let eC=1,ez=0;eC<e_.length;eC++){let eD=e_[eC-1],ek=e_[eC],eP=e_[eC===e_.length-1?1:eC+1];if(eS&&eM&&eS.currentPolyCount.top++,gh(ek,eD,eu)){eA&&(ex=eP.sub(ek)._perp()._unit(),eI=!eI);continue}eS&&eS.append(ek,eD);let eL=ek.sub(eD)._perp(),eR=eL.x/(Math.abs(eL.x)+Math.abs(eL.y)),eB=eL.y>0?1:0,eO=eD.dist(ek);if(ez+eO>32768&&(ez=0),eA){ev=eP.sub(ek)._perp()._unit();let x=mh(eD,ek,eP,dh(ex,ev),eA);isNaN(x)&&(x=0);let eu=ek.sub(eD)._unit();eD=eD.add(eu.mult(ew))._round(),ek=ek.add(eu.mult(-x))._round(),ew=x,ex=ev}let eF=eg.vertexLength,eU=e_.length>4&&xh(eD,ek,eP),eV=vh(ez,eb,eI);if(ch(this.layoutVertexArray,eD.x,eD.y,eR,eB,0,0,eV),ch(this.layoutVertexArray,eD.x,eD.y,eR,eB,0,1,eV),ez+=eO,eV=vh(ez,eU,!eI),eb=eU,ch(this.layoutVertexArray,ek.x,ek.y,eR,eB,0,0,eV),ch(this.layoutVertexArray,ek.x,ek.y,eR,eB,0,1,eV),eg.vertexLength+=4,this.indexArray.emplaceBack(eF+0,eF+1,eF+2),this.indexArray.emplaceBack(eF+1,eF+3,eF+2),eg.primitiveLength+=2,eA){let em=ef+(1===eC?e_.length-2:eC-2),ex=1===eC?ef:em+1;if(this.indexArray.emplaceBack(eF+1,em,eF+3),this.indexArray.emplaceBack(em,ex,eF+3),eg.primitiveLength+=2,void 0===x&&(x=eF),!gh(eP,e_[eC],eu)){let eu=eC===e_.length-1?x:eg.vertexLength;this.indexArray.emplaceBack(eF+2,eF+3,eu),this.indexArray.emplaceBack(eF+3,eu+1,eu),this.indexArray.emplaceBack(eF+3,ex,eu+1),eg.primitiveLength+=3}eI=!eI}if(eE){let x=this.layoutVertexExtArray,eu=eT.projectTilePoint(eD.x,eD.y,em),ef=eT.projectTilePoint(ek.x,ek.y,em),e_=eT.upVector(em,eD.x,eD.y),eg=eT.upVector(em,ek.x,ek.y);hh(x,eu,e_),hh(x,eu,e_),hh(x,ef,eg),hh(x,ef,eg)}}eM&&(ef+=e_.length-1)}}if(eS&&eS.polyCount.length>0){if(eS.borders){eS.vertexArrayOffset=this.centroidVertexArray.length;let x=eS.borders,eu=this.featuresOnBorder.push(eS)-1;for(let ef=0;ef<4;ef++)x[ef][0]!==Number.MAX_VALUE&&this.borders[ef].push(eu)}this.encodeCentroid(eS.borders?void 0:eS.centroid(),eS)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,x,ef,e_,eg,em)}sortBorders(){for(let x=0;x<4;x++)this.borders[x].sort((eu,ef)=>this.featuresOnBorder[eu].borders[x][0]-this.featuresOnBorder[ef].borders[x][0])}encodeCentroid(x,eu,ef=!0){let em,e_;if(x){if(0!==x.y){let ef=eu.span()._mult(this.tileToMeter);em=(Math.max(x.x,1)<<3)+Math.min(7,Math.round(ef.x/10)),e_=(Math.max(x.y,1)<<3)+Math.min(7,Math.round(ef.y/10))}else em=Math.ceil(7*(x.x+450)),e_=0}else em=0,e_=+ef;let eg=ef?this.centroidVertexArray.length:eu.vertexArrayOffset;for(let x of eu.polyCount){ef&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*x.edges+x.top);for(let eu=0;eu<x.top;eu++)this.centroidVertexArray.emplace(eg++,em,e_);for(let eu=0;eu<2*x.edges;eu++)this.centroidVertexArray.emplace(eg++,0,e_),this.centroidVertexArray.emplace(eg++,em,e_)}}};function dh(x,eu){let ef=x.add(eu)._unit();return x.x*ef.x+x.y*ef.y}function mh(x,eu,ef,em,e_){let eg=Math.sqrt(1-em*em);return Math.min(x.dist(eu)/3,eu.dist(ef)/3,e_*eg/em)}function gh(x,eu,ef){return x.x<ef[0].x&&eu.x<ef[0].x||x.x>ef[1].x&&eu.x>ef[1].x||x.y<ef[0].y&&eu.y<ef[0].y||x.y>ef[1].y&&eu.y>ef[1].y}function xh(x,eu,ef){if(x.x<0||x.x>=8192||eu.x<0||eu.x>=8192||ef.x<0||ef.x>=8192)return!1;let em=ef.sub(eu),e_=em.perp(),eg=x.sub(eu);return(em.x*eg.x+em.y*eg.y)/Math.sqrt((em.x*em.x+em.y*em.y)*(eg.x*eg.x+eg.y*eg.y))>-.866&&e_.x*eg.x+e_.y*eg.y<0}function vh(x,eu,ef){let em=eu?2|x:-3&x;return ef?1|em:-2&em}function bh(){let x=Math.PI/32,eu=Math.tan(x);return iP*Math.sqrt(1+2*eu*eu)-iP}function wh(x,eu,ef){let em=1<<ef.z,e_=ou(ef.x/em),eg=ou((ef.x+1)/em),ex=lu(ef.y/em),ev=lu((ef.y+1)/em);return function(x,eu,ef,em,e_=0,eg){let ex=[];if(!x.length||!ef||!em)return ex;let o=(x,eu)=>{for(let ef of x)ex.push({polygon:ef,bounds:eu})},ev=Math.ceil(Math.log2(ef)),eb=Math.ceil(Math.log2(em)),ew=ev-eb,eT=[];for(let x=0;x<Math.abs(ew);x++)eT.push(ew>0?0:1);for(let x=0;x<Math.min(ev,eb);x++)eT.push(0),eT.push(1);let eE=x;if(eE=oh(eE,eu[0].y-e_,eu[1].y+e_,1),!(eE=oh(eE,eu[0].x-e_,eu[1].x+e_,0)).length)return ex;let eS=[];for(eT.length?eS.push({polygons:eE,bounds:eu,depth:0}):o(eE,eu);eS.length;){let x=eS.pop(),eu=x.depth,ef=eT[eu],em=x.bounds[0],ex=x.bounds[1],ev=0===ef?em.x:em.y,eb=0===ef?ex.x:ex.y,ew=eg?eg(ef,ev,eb):.5*(ev+eb),eE=oh(x.polygons,ev-e_,ew+e_,ef),eM=oh(x.polygons,ew-e_,eb+e_,ef);
8if(eE.length){let x=[em,new eD(0===ef?ew:ex.x,1===ef?ew:ex.y)];eT.length>eu+1?eS.push({polygons:eE,bounds:x,depth:eu+1}):o(eE,x)}if(eM.length){let x=[new eD(0===ef?ew:em.x,1===ef?ew:em.y),ex];eT.length>eu+1?eS.push({polygons:eM,bounds:x,depth:eu+1}):o(eM,x)}}return ex}(x,eu,Math.ceil((eg-e_)/11.25),Math.ceil((ex-ev)/11.25),1,(x,eu,e_)=>{if(0===x)return .5*(eu+e_);{let x=lu((ef.y+eu/8192)/em);return(su(.5*(lu((ef.y+e_/8192)/em)+x))*em-ef.y)*8192}})}Oi(fh,"FillExtrusionBucket",{omit:["layers","features"]}),Oi(ph,"PartMetadata");let i1=new Js({"fill-extrusion-edge-radius":new Ys(e9["layout_fill-extrusion"]["fill-extrusion-edge-radius"])});var i2={paint:new Js({"fill-extrusion-opacity":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Hs(e9["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Hs(e9["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Hs(e9["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Hs(e9["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),"fill-extrusion-ambient-occlusion-intensity":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-intensity"]),"fill-extrusion-ambient-occlusion-radius":new Ys(e9["paint_fill-extrusion"]["fill-extrusion-ambient-occlusion-radius"])}),layout:i1};function Sh(x,eu,ef){var em=2*Math.PI*6378137/256/Math.pow(2,ef);return[x*em-2*Math.PI*6378137/2,eu*em-2*Math.PI*6378137/2]}let kh=class kh{constructor(x,eu,ef){this.z=x,this.x=eu,this.y=ef,this.key=Th(0,x,x,eu,ef)}equals(x){return this.z===x.z&&this.x===x.x&&this.y===x.y}url(x,eu){var ef,em,e_,eg,ex;let ev=(ef=this.x,em=this.y,eg=Sh(256*ef,256*(em=Math.pow(2,e_=this.z)-em-1),e_),ex=Sh(256*(ef+1),256*(em+1),e_),eg[0]+","+eg[1]+","+ex[0]+","+ex[1]),eb=function(x,eu,ef){let em,e_="";for(let eg=x;eg>0;eg--)e_+=(eu&(em=1<<eg-1)?1:0)+(ef&em?2:0);return e_}(this.z,this.x,this.y);return x[(this.x+this.y)%x.length].replace("{prefix}",(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("tms"===eu?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",eb).replace("{bbox-epsg-3857}",ev)}toString(){return`${this.z}/${this.x}/${this.y}`}};let Ih=class Ih{constructor(x,eu){this.wrap=x,this.canonical=eu,this.key=Th(x,eu.z,eu.z,eu.x,eu.y)}};let Mh=class Mh{constructor(x,eu,ef,em,e_){this.overscaledZ=x,this.wrap=eu,this.canonical=new kh(ef,+em,+e_),this.key=0===eu&&x===ef?this.canonical.key:Th(eu,x,ef,em,e_)}equals(x){return this.overscaledZ===x.overscaledZ&&this.wrap===x.wrap&&this.canonical.equals(x.canonical)}scaledTo(x){let eu=this.canonical.z-x;return x>this.canonical.z?new Mh(x,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Mh(x,this.wrap,x,this.canonical.x>>eu,this.canonical.y>>eu)}calculateScaledKey(x,eu=!0){if(this.overscaledZ===x&&eu)return this.key;if(x>this.canonical.z)return Th(this.wrap*+eu,x,this.canonical.z,this.canonical.x,this.canonical.y);{let ef=this.canonical.z-x;return Th(this.wrap*+eu,x,x,this.canonical.x>>ef,this.canonical.y>>ef)}}isChildOf(x){if(x.wrap!==this.wrap)return!1;let eu=this.canonical.z-x.canonical.z;return 0===x.overscaledZ||x.overscaledZ<this.overscaledZ&&x.canonical.x===this.canonical.x>>eu&&x.canonical.y===this.canonical.y>>eu}children(x){if(this.overscaledZ>=x)return[new Mh(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let eu=this.canonical.z+1,ef=2*this.canonical.x,em=2*this.canonical.y;return[new Mh(eu,this.wrap,eu,ef,em),new Mh(eu,this.wrap,eu,ef+1,em),new Mh(eu,this.wrap,eu,ef,em+1),new Mh(eu,this.wrap,eu,ef+1,em+1)]}isLessThan(x){return this.wrap<x.wrap||!(this.wrap>x.wrap)&&(this.overscaledZ<x.overscaledZ||!(this.overscaledZ>x.overscaledZ)&&(this.canonical.x<x.canonical.x||!(this.canonical.x>x.canonical.x)&&this.canonical.y<x.canonical.y))}wrapped(){return new Mh(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(x){return new Mh(this.overscaledZ,x,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Ih(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}};function Th(x,eu,ef,em,e_){let eg=1<<Math.min(ef,22),ex=eg*(e_%eg)+em%eg;return x&&ef<22&&(ex+=eg*eg*((x<0?-2*x-1:2*x)%(1<<2*(22-ef)))),16*(32*ex+ef)+(eu-ef)}Oi(kh,"CanonicalTileID"),Oi(Mh,"OverscaledTileID",{omit:["projMatrix"]});let zh=class zh extends eD{constructor(x,eu,ef){super(x,eu),this.z=ef}};function Bh(x,eu){return x.x*eu.x+x.y*eu.y}function Eh(x,eu){if(1===x.length){let ef,em=0,e_=eu[em++];for(;!ef||e_.equals(ef);)if(!(ef=eu[em++]))return 1/0;for(;em<eu.length;em++){let eg=eu[em],ex=x[0],ev=ef.sub(e_),eb=eg.sub(e_),ew=ex.sub(e_),eT=Bh(ev,ev),eE=Bh(ev,eb),eS=Bh(eb,eb),eM=Bh(ew,ev),eI=Bh(ew,eb),eA=eT*eS-eE*eE,eC=(eS*eM-eE*eI)/eA,ez=(eT*eI-eE*eM)/eA,eD=e_.z*(1-eC-ez)+ef.z*eC+eg.z*ez;if(isFinite(eD))return eD}return 1/0}{let x=1/0;for(let ef of eu)x=Math.min(x,ef.z);return x}}function Ch(x,eu,ef,em,e_,eg,ex,ev){let eb=ex*e_.getElevationAt(x,eu,!0,!0),ew=0!==eg[0],eT=ew?0===eg[1]?ex*(eg[0]/7-450):ex*function(x,eu,ef){var em,e_;let eg=Math.floor(eu[0]/8),ex=Math.floor(eu[1]/8),ev=10*(eu[0]-8*eg),eb=10*(eu[1]-8*ex),ew=x.getElevationAt(eg,ex,!0,!0),eT=x.getMeterToDEM(ef),eE=Math.floor(.5*(ev*eT-1)),eS=Math.floor(.5*(eb*eT-1)),eM=x.tileCoordToPixel(eg,ex),eI=2*eE+1,eA=2*eS+1,eC=(em=eM.x-eE,e_=eM.y-eS,[x.getElevationAtPixel(em,e_,!0),x.getElevationAtPixel(em+eA,e_,!0),x.getElevationAtPixel(em,e_+eA,!0),x.getElevationAtPixel(em+eI,e_+eA,!0)]),ez=Math.abs(eC[0]-eC[1]),eD=Math.abs(eC[2]-eC[3]),ek=Math.abs(eC[0]-eC[2])+Math.abs(eC[1]-eC[3]),eP=Math.min(.25,.5*eT*(ez+eD)/eI),eL=Math.min(.25,.5*eT*ek/eA);return ew+Math.max(eP*ev,eL*eb)}(e_,eg,ev):eb;return{base:eb+(0===ef)?-1:ef,top:ew?Math.max(eT+em,eb+ef+2):eb+em}}let i3=na([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"},{name:"a_linesofar",components:1,type:"Float32"}],4),{members:i5}=i3,i4=na([{name:"a_packed",components:4,type:"Float32"}]),{members:i6}
8=i4,i8=iQ.types,i9=Math.cos(Math.PI/180*37.5);let jh=class jh{constructor(x){this.zoom=x.zoom,this.overscaling=x.overscaling,this.layers=x.layers,this.layerIds=this.layers.map(x=>x.id),this.index=x.index,this.projection=x.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(x=>{this.gradients[x.id]={}}),this.layoutVertexArray=new la,this.layoutVertexArray2=new ua,this.indexArray=new wa,this.programConfigurations=new fo(x.layers,x.zoom),this.segments=new So,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id)}populate(x,eu,ef,em){this.hasPattern=Rc("line",this.layers,eu);let e_=this.layers[0].layout.get("line-sort-key"),eg=[];for(let{feature:eu,id:ex,index:ev,sourceLayerIndex:eb}of x){let x=this.layers[0]._featureFilter.needGeometry,ew=wu(eu,x);if(!this.layers[0]._featureFilter.filter(new $s(this.zoom),ew,ef))continue;let eT=e_?e_.evaluate(ew,{},ef):void 0,eE={id:ex,properties:eu.properties,type:eu.type,sourceLayerIndex:eb,index:ev,geometry:x?ew.geometry:bu(eu,ef,em),patterns:{},sortKey:eT};eg.push(eE)}e_&&eg.sort((x,eu)=>x.sortKey-eu.sortKey);let{lineAtlas:ex,featureIndex:ev}=eu,eb=this.addConstantDashes(ex);for(let em of eg){let{geometry:e_,index:eg,sourceLayerIndex:ew}=em;if(eb&&this.addFeatureDashes(em,ex),this.hasPattern){let x=jc("line",this.layers,em,this.zoom,eu);this.patternFeatures.push(x)}else this.addFeature(em,e_,eg,ef,ex.positions,eu.availableImages);ev.insert(x[eg].feature,e_,eg,ew,this.index)}}addConstantDashes(x){let eu=!1;for(let ef of this.layers){let em=ef.paint.get("line-dasharray").value,e_=ef.layout.get("line-cap").value;if("constant"!==em.kind||"constant"!==e_.kind)eu=!0;else{let eu=e_.value,ef=em.value;if(!ef)continue;x.addDash(ef,eu)}}return eu}addFeatureDashes(x,eu){let ef=this.zoom;for(let em of this.layers){let e_,eg;let ex=em.paint.get("line-dasharray").value,ev=em.layout.get("line-cap").value;if("constant"!==ex.kind||"constant"!==ev.kind){if("constant"===ex.kind){if(!(e_=ex.value))continue}else e_=ex.evaluate({zoom:ef},x);eg="constant"===ev.kind?ev.value:ev.evaluate({zoom:ef},x),eu.addDash(e_,eg),x.patterns[em.id]=eu.getKey(e_,eg)}}}update(x,eu,ef,em){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(x,eu,this.stateDependentLayers,ef,em)}addFeatures(x,eu,ef,em,e_){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,eu,ef,em)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(x){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=x.createVertexBuffer(this.layoutVertexArray2,i6)),this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,i5),this.indexBuffer=x.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(x),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(x){if(x.properties&&x.properties.hasOwnProperty("mapbox_clip_start")&&x.properties.hasOwnProperty("mapbox_clip_end"))return{start:+x.properties.mapbox_clip_start,end:+x.properties.mapbox_clip_end}}addFeature(x,eu,ef,em,e_,eg){let ex=this.layers[0].layout,ev=ex.get("line-join").evaluate(x,{}),eb=ex.get("line-cap").evaluate(x,{}),ew=ex.get("line-miter-limit"),eT=ex.get("line-round-limit");for(let ef of(this.lineClips=this.lineFeatureClips(x),eu))this.addLine(ef,x,ev,eb,ew,eT);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,x,ef,e_,eg,em)}addLine(x,eu,ef,em,e_,eg){let ex,ev,eb,ew,eT;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let eu=0;eu<x.length-1;eu++)this.totalDistance+=x[eu].dist(x[eu+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}let eE="Polygon"===i8[eu.type],eS=x.length;for(;eS>=2&&x[eS-1].equals(x[eS-2]);)eS--;let eM=0;for(;eM<eS-1&&x[eM].equals(x[eM+1]);)eM++;if(eS<(eE?3:2))return;"bevel"===ef&&(e_=1.05);let eI=this.overscaling<=16?122880/(512*this.overscaling):0,eA=this.segments.prepareSegment(10*e
8S,this.layoutVertexArray,this.indexArray);this.e1=this.e2=-1,eE&&(ex=x[eS-2],eT=x[eM].sub(ex)._unit()._perp());for(let eu=eM;eu<eS;eu++){if((eb=eu===eS-1?eE?x[eM+1]:void 0:x[eu+1])&&x[eu].equals(eb))continue;eT&&(ew=eT),ex&&(ev=ex),ex=x[eu],eT=eb?eb.sub(ex)._unit()._perp():ew;let eC=(ew=ew||eT).add(eT);0===eC.x&&0===eC.y||eC._unit();let ez=ew.x*eT.x+ew.y*eT.y,eD=eC.x*eT.x+eC.y*eT.y,ek=0!==eD?1/eD:1/0,eP=2*Math.sqrt(2-2*eD),eL=eD<i9&&ev&&eb,eR=ew.x*eT.y-ew.y*eT.x>0;if(eL&&eu>eM){let x=ex.dist(ev);if(x>2*eI){let eu=ex.sub(ex.sub(ev)._mult(eI/x)._round());this.updateDistance(ev,eu),this.addCurrentVertex(eu,ew,0,0,eA),ev=eu}}let eB=ev&&eb,eO=eB?ef:eE?"butt":em;if(eB&&"round"===eO&&(ek<eg?eO="miter":ek<=2&&(eO="fakeround")),"miter"===eO&&ek>e_&&(eO="bevel"),"bevel"===eO&&(ek>2&&(eO="flipbevel"),ek<e_&&(eO="miter")),ev&&this.updateDistance(ev,ex),"miter"===eO)eC._mult(ek),this.addCurrentVertex(ex,eC,0,0,eA);else if("flipbevel"===eO){if(ek>100)eC=eT.mult(-1);else{let x=ek*ew.add(eT).mag()/ew.sub(eT).mag();eC._perp()._mult(x*(eR?-1:1))}this.addCurrentVertex(ex,eC,0,0,eA),this.addCurrentVertex(ex,eC.mult(-1),0,0,eA)}else if("bevel"===eO||"fakeround"===eO){let x=-Math.sqrt(ek*ek-1),eu=eR?x:0,ef=eR?0:x;if(ev&&this.addCurrentVertex(ex,ew,eu,ef,eA),"fakeround"===eO){let x=Math.round(180*eP/Math.PI/20);for(let eu=1;eu<x;eu++){let ef=eu/x;if(.5!==ef){let x=ef-.5;ef+=ef*x*(ef-1)*((1.0904+ez*(ez*(3.55645-1.43519*ez)-3.2452))*x*x+(.848013+ez*(.215638*ez-1.06021)))}let em=eT.sub(ew)._mult(ef)._add(ew)._unit()._mult(eR?-1:1);this.addHalfVertex(ex,em.x,em.y,!1,eR,0,eA)}}eb&&this.addCurrentVertex(ex,eT,-eu,-ef,eA)}else if("butt"===eO)this.addCurrentVertex(ex,eC,0,0,eA);else if("square"===eO){let x=ev?1:-1;ev||this.addCurrentVertex(ex,eC,x,x,eA),this.addCurrentVertex(ex,eC,0,0,eA),ev&&this.addCurrentVertex(ex,eC,x,x,eA)}else"round"===eO&&(ev&&(this.addCurrentVertex(ex,ew,0,0,eA),this.addCurrentVertex(ex,ew,1,1,eA,!0)),eb&&(this.addCurrentVertex(ex,eT,-1,-1,eA,!0),this.addCurrentVertex(ex,eT,0,0,eA)));if(eL&&eu<eS-1){let x=ex.dist(eb);if(x>2*eI){let eu=ex.add(eb.sub(ex)._mult(eI/x)._round());this.updateDistance(ex,eu),this.addCurrentVertex(eu,eT,0,0,eA),ex=eu}}}}addCurrentVertex(x,eu,ef,em,e_,eg=!1){let ex=eu.y*em-eu.x,ev=-eu.y-eu.x*em;this.addHalfVertex(x,eu.x+eu.y*ef,eu.y-eu.x*ef,eg,!1,ef,e_),this.addHalfVertex(x,ex,ev,eg,!0,-em,e_)}addHalfVertex({x:x,y:eu},ef,em,e_,eg,ex,ev){this.layoutVertexArray.emplaceBack((x<<1)+(e_?1:0),(eu<<1)+(eg?1:0),Math.round(63*ef)+128,Math.round(63*em)+128,1+(0===ex?0:ex<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);let eb=ev.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,eb),ev.primitiveLength++),eg?this.e2=eb:this.e1=eb}updateScaledDistance(){if(this.lineClips){let x=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=x*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(x,eu){this.distance+=x.dist(eu),this.updateScaledDistance()}};Oi(jh,"LineBucket",{omit:["layers","patternFeatures"]});let i7=new Js({"line-cap":new Hs(e9.layout_line["line-cap"]),"line-join":new Hs(e9.layout_line["line-join"]),"line-miter-limit":new Ys(e9.layout_line["line-miter-limit"]),"line-round-limit":new Ys(e9.layout_line["line-round-limit"]),"line-sort-key":new Hs(e9.layout_line["line-sort-key"])});var rr={paint:new Js({"line-opacity":new Hs(e9.paint_line["line-opacity"]),"line-color":new Hs(e9.paint_line["line-color"]),"line-translate":new Ys(e9.paint_line["line-translate"]),"line-translate-anchor":new Ys(e9.paint_line["line-translate-anchor"]),"line-width":new Hs(e9.paint_line["line-width"]),"line-gap-width":new Hs(e9.paint_line["line-gap-width"]),"line-offset":new Hs(e9.paint_line["line-offset"]),"line-blur":new Hs(e9.paint_line["line-blur"]),"line-dasharray":new Hs(e9.paint_line["line-dasharray"]),"line-pattern":new Hs(e9.paint_line["line-pattern"]),"line-gradient":new Ws(e9.paint_line["line-gradient"]),"line-trim-offset":new Ys(e9.paint_line["line-trim-offset"])}),layout:i7};let rn=new class extends Hs{possiblyEvaluate(x,eu){return eu=new $s(Math.floor(eu.zoom),{now:eu.now,fadeDuration:eu.fadeDuration,transition:eu.transition}),super.possiblyEvaluate(x,eu)}evaluate(x,eu,ef,em){return eu=z({},eu,{zoom:Math.floor(eu.zoom)}),super.evaluate(x,eu,ef,em)}}(rr.paint.properties["line-width"].specification);rn.useIntegerZoom=!0;let rc=na([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),rp=na([{name:"a_globe_anchor",components:3,type:"Int16"},{name:"a_globe_normal",components:3,type:"Float32"}],4),rf=na([{name:"a_projected_pos",components:4,type:"Float32"}],4);na([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);let rm=na([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),r_=na([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);na([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Int16",name:"tileAnchorX"},{type:"Int16",name:"tileAnchorY"},{type:"Float32",name:"x1"},{type:"Float32",name:"y1"},{type:"Float32",name:"x2"},{type:"Float32",name:"y2"},{type:"Int16",name:"padding"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);let rg=na([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),ry=na([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Qh(x,eu){let{expression:ef}=eu;if("constant"===ef.kind)return{kind:"constant",layoutSize:ef.evaluate(new $s(x+1))};if("source"===ef.kind)return{kind:"source"};{let{zoomStops:eu,interpolationType:em}=ef,e_=0;for(;e_<eu.length&&eu[e_]<=x;)e_++;let eg=e_=Math.max(0,e_-1);for(;eg<eu.length&&eu[eg]<x+1;)eg++;eg=Math.min(eu.length-1,eg);let ex=eu[e_],ev=eu[eg];return"composite"===ef.kind?{kind:"composite",minZoom:ex,maxZoom:ev,interpolationType:em}:{kind:"camera",minZoom:ex,maxZoom:ev,minSize:ef.evaluate(new $s(ex)),maxSize:ef.evaluate(new $s(ev)),interpolationType:em}}}function tp(x,{uSize:eu,uSizeT:ef},{lowerSize:em,upperSize:e_}){return"source"===x.kind?em/128:"composite"===x.kind?Mr(em/128,e_/128,ef):eu}function ep(x,eu){let ef=0,em=0;if("constant"===x.kind)em=x.layoutSize;else if("source"!==x.kind){let{interpolationType:e_,minZoom:eg,maxZoom:ex}=x,ev=e_?S(Zr.interpolationFactor(e_,eu,eg,ex),0,1):0;"camera"===x.kind?em=Mr(x.minSize,x.maxSize,ev):ef=ev}return{uSizeT:ef,uSize:em}}na([{name:"triangle",components:3,type:"Uint16"}]),na([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"},{type:"Uint8",name:"flipState"}]),na([{type:"Int16",name:"projectedAnchorX"},{type:"Int16",name:"projectedAnchorY"},{type:"Int16",name:"projectedAnchorZ"},{type:"Float32",name:"tileAnchorX"},{type:"Float32",name:"tileAnchorY"},{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",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),na([{type:"Float32",name:"offsetX"}]),na([{type:"Int16",name:"x"},{type:"Int16",name:"y"}]);var rx=Object.freeze({__proto__:null,getSizeData:Qh,evaluateSizeForFeature:tp,evaluateSizeForZoom:ep,SIZE_PACK_FACTOR:128});let rv={"!":"ï¸","#":"ï¼",$:"ï¼","%":"ï¼
","&":"ï¼","(":"︵",")":"︶","*":"ï¼","+":"ï¼",",":"ï¸","-":"︲",".":"ã»","/":"ï¼",":":"ï¸",";":"ï¸","<":"︿","=":"ï¼",">":"ï¹","?":"ï¸","@":"ï¼ ","[":"ï¹","\\":"ï¼¼","]":"ï¹","^":"ï¼¾",_:"︳","`":"ï½","{":"︷","|":"â","}":"︸","~":"ï½","\xa2":"ï¿ ","\xa3":"ï¿¡","\xa5":"ï¿¥","\xa6":"¦","\xac":"ï¿¢","\xaf":"ï¿£","â":"︲","â":"︱","â":"ï¹","â":"ï¹","â":"ï¹","â":"ï¹","â¦":"ï¸","â§":"ã»","â©":"₩","ã":"ï¸","ã":"ï¸","ã":"︿","ã":"ï¹","ã":"︽","ã":"︾","ã":"ï¹","ã":"ï¹","ã":"ï¹","ã":"ï¹","ã":"︻","ã":"︼","ã":"︹","ã":"︺","ã":"ï¸","ã":"ï¸","ï¼":"ï¸","ï¼":"︵","ï¼":"︶","ï¼":"ï¸","ï¼":"︲","ï¼":"ã»","ï¼":"ï¸","ï¼":"ï¸","ï¼":"︿","ï¼":"ï¹","ï¼":"ï¸","ï¼»":"ï¹","ï¼½":"ï¹","_":"︳","ï½":"︷","ï½":"â","ï½":"︸","ï½":"︵","ï½ ":"︶","。":"ï¸","ï½¢":"ï¹","ï½£":"ï¹","â":"â","â":"â"};var lp=function(x,eu,ef,em,e_){var eg,ex,ev=8*e_-em-1,eb=(1<<ev)-1,ew=eb>>1,eT=-7,eE=ef?e_-1:0,eS=ef?-1:1,eM=x[eu+eE];for(eE+=eS,eg=eM&(1<<-eT)-1,eM>>=-eT,eT+=ev;eT>0;eg=256*eg+x[eu+eE],eE+=eS,eT-=8);for(ex=eg&(1<<-eT)-1,eg>>=-eT,eT+=em;eT>0;ex=256*ex+x[eu+eE],eE+=eS,eT-=8);if(0===eg)eg=1-ew;else{if(eg===eb)return ex?NaN:1/0*(eM?-1:1);ex+=Math.pow(2,em),eg-=ew}return(eM?-1:1)*ex*Math.pow(2,eg-em)},up=function(x,eu,ef,em,e_,eg){var ex,ev,eb,ew=8*eg-e_-1,eT=(1<<ew)-1,eE=eT>>1,eS=23===e_?5960464477539062e-23:0,eM=em?0:eg-1,eI=em?1:-1,eA=eu<0||0===eu&&1/eu<0?1:0;for(isNaN(eu=Math.abs(eu))||eu===1/0?(ev=isNaN(eu)?1:0,ex=eT):(ex=Math.floor(Math.log(eu)/Math.LN2),eu*(eb=M
8ath.pow(2,-ex))<1&&(ex--,eb*=2),(eu+=ex+eE>=1?eS/eb:eS*Math.pow(2,1-eE))*eb>=2&&(ex++,eb/=2),ex+eE>=eT?(ev=0,ex=eT):ex+eE>=1?(ev=(eu*eb-1)*Math.pow(2,e_),ex+=eE):(ev=eu*Math.pow(2,eE-1)*Math.pow(2,e_),ex=0));e_>=8;x[ef+eM]=255&ev,eM+=eI,ev/=256,e_-=8);for(ex=ex<<e_|ev,ew+=e_;ew>0;x[ef+eM]=255&ex,eM+=eI,ex/=256,ew-=8);x[ef+eM-eI]|=128*eA};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function cp(x){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(x)?x:new Uint8Array(x||0),this.pos=0,this.type=0,this.length=this.buf.length}cp.Varint=0,cp.Fixed64=1,cp.Bytes=2,cp.Fixed32=5;var rb="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function dp(x){return x.type===cp.Bytes?x.readVarint()+x.pos:x.pos+1}function mp(x,eu,ef){var em=eu<=16383?1:eu<=2097151?2:eu<=268435455?3:Math.floor(Math.log(eu)/(7*Math.LN2));ef.realloc(em);for(var e_=ef.pos-1;e_>=x;e_--)ef.buf[e_+em]=ef.buf[e_]}function gp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeVarint(x[ef])}function xp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeSVarint(x[ef])}function vp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeFloat(x[ef])}function bp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeDouble(x[ef])}function wp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeBoolean(x[ef])}function _p(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeFixed32(x[ef])}function Ap(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeSFixed32(x[ef])}function Sp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeFixed64(x[ef])}function kp(x,eu){for(var ef=0;ef<x.length;ef++)eu.writeSFixed64(x[ef])}function Ip(x,eu){return(x[eu]|x[eu+1]<<8|x[eu+2]<<16)+16777216*x[eu+3]}function Mp(x,eu,ef){x[ef]=eu,x[ef+1]=eu>>>8,x[ef+2]=eu>>>16,x[ef+3]=eu>>>24}function Tp(x,eu){return(x[eu]|x[eu+1]<<8|x[eu+2]<<16)+(x[eu+3]<<24)}function zp(x,eu,ef){eu.glyphs=[],1===x&&ef.readMessage(Bp,eu)}function Bp(x,eu,ef){if(3===x){let{id:x,bitmap:em,width:e_,height:eg,left:ex,top:ev,advance:eb}=ef.readMessage(Ep,{});eu.glyphs.push({id:x,bitmap:new Ju({width:e_+6,height:eg+6},em),metrics:{width:e_,height:eg,left:ex,top:ev,advance:eb}})}else 4===x?eu.ascender=ef.readSVarint():5===x&&(eu.descender=ef.readSVarint())}function Ep(x,eu,ef){1===x?eu.id=ef.readVarint():2===x?eu.bitmap=ef.readBytes():3===x?eu.width=ef.readVarint():4===x?eu.height=ef.readVarint():5===x?eu.left=ef.readSVarint():6===x?eu.top=ef.readSVarint():7===x&&(eu.advance=ef.readVarint())}function Cp(x){let eu=0,ef=0;for(let em of x)eu+=em.w*em.h,ef=Math.max(ef,em.w);x.sort((x,eu)=>eu.h-x.h);let em=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(eu/.95)),ef),h:1/0}],e_=0,eg=0;for(let eu of x)for(let x=em.length-1;x>=0;x--){let ef=em[x];if(!(eu.w>ef.w||eu.h>ef.h)){if(eu.x=ef.x,eu.y=ef.y,eg=Math.max(eg,eu.y+eu.h),e_=Math.max(e_,eu.x+eu.w),eu.w===ef.w&&eu.h===ef.h){let eu=em.pop();x<em.length&&(em[x]=eu)}else eu.h===ef.h?(ef.x+=eu.w,ef.w-=eu.w):(eu.w===ef.w||em.push({x:ef.x+eu.w,y:ef.y,w:ef.w-eu.w,h:eu.h}),ef.y+=eu.h,ef.h-=eu.h);break}}return{w:e_,h:eg,fill:eu/(e_*eg)||0}}cp.prototype={destroy:function(){this.buf=null},readFields:function(x,eu,ef){for(ef=ef||this.length;this.pos<ef;){var em=this.readVarint(),e_=em>>3,eg=this.pos;this.type=7&em,x(e_,eu,this),this.pos===eg&&this.skip(em)}return eu},readMessage:function(x,eu){return this.readFields(x,eu,this.readVarint()+this.pos)},readFixed32:function(){var x=Ip(this.buf,this.pos);return this.pos+=4,x},readSFixed32:function(){var x=Tp(this.buf,this.pos);return this.pos+=4,x},readFixed64:function(){var x=Ip(this.buf,this.pos)+4294967296*Ip(this.buf,this.pos+4);return this.pos+=8,x},readSFixed64:function(){var x=Ip(this.buf,this.pos)+4294967296*Tp(this.buf,this.pos+4);return this.pos+=8,x},readFloat:function(){var x=lp(this.buf,this.pos,!0,23,4);return this.pos+=4,x},readDouble:function(){var x=lp(this.buf,this.pos,!0,52,8);return this.pos+=8,x},readVarint:function(x){var eu,ef,em=this.buf;return eu=127&(ef=em[this.pos++]),ef<128?eu:(eu|=(127&(ef=em[this.pos++]))<<7,ef<128?eu:(eu|=(127&(ef=em[this.pos++]))<<14,ef<128?eu:(eu|=(127&(ef=em[this.pos++]))<<21,ef<128?eu:function(x,eu,ef){var em,e_,eg,ex=ef.buf;if(e_=(112&(eg=ex[ef.pos++]))>>4,eg<128||(e_|=(127&(eg=ex[ef.pos++]))<<3,eg<128)||(e_|=(127&(eg=ex[ef.pos++]))<<10,eg<128)||(e_|=(127&(eg=ex[ef.pos++]))<<17,eg<128)||(e_|=(127&(eg=ex[ef.pos++]))<<24,eg<128)||(e_|=(1&(eg=ex[ef.pos++]))<<31,eg<128))return em=e_,eu?4294967296*em+(x>>>0):4294967296*(em>>>0)+(x>>>0);throw Error("Expected varint not more than 10 bytes")}(eu|=(15&(ef=em[this.pos]))<<28,x,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var x=this.readVarint();return x%2==1?-((x+1)/2):x/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var x,eu=this.readVarint()+this.pos,ef=this.pos;return this.pos=eu,eu-ef>=12&&rb?(x=this.buf,rb.decode(x.subarray(ef,eu))):function(x,eu,ef){for(var em="",e_=eu;e_<ef;){var eg,ex,ev,eb=x[e_],ew=null,eT=eb>239?4:eb>223?3:eb>191?2:1;if(e_+eT>ef)break;1===eT?eb<128&&(ew=eb):2===eT?128==(192&(eg=x[e_+1]))&&(ew=(31&eb)<<6|63&eg)<=127&&(ew=null):3===eT?(ex=x[e_+2],128==(192&(eg=x[e_+1]))&&128==(192&ex)&&((ew=(15&eb)<<12|(63&eg)<<6|63&ex)<=2047||ew>=55296&&ew<=57343)&&(ew=null)):4===eT&&(ex=x[e_+2],ev=x[e_+3],128==(192&(eg=x[e_+1]))&&128==(192&ex)&&128==(192&ev)&&((ew=(15&eb)<<18|(63&eg)<<12|(63&ex)<<6|63&ev)<=65535||ew>=1114112)&&(ew=null)),null===ew?(ew=65533,eT=1):ew>65535&&(ew-=65536,em+=String.fromCharCode(ew>>>
vendor: 6,054 bytes, line 8
810&1023|55296),ew=56320|1023&ew),em+=String.fromCharCode(ew),e_+=eT}return em}(this.buf,ef,eu)},readBytes:function(){var x=this.readVarint()+this.pos,eu=this.buf.subarray(this.pos,x);return this.pos=x,eu},readPackedVarint:function(x,eu){if(this.type!==cp.Bytes)return x.push(this.readVarint(eu));var ef=dp(this);for(x=x||[];this.pos<ef;)x.push(this.readVarint(eu));return x},readPackedSVarint:function(x){if(this.type!==cp.Bytes)return x.push(this.readSVarint());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readSVarint());return x},readPackedBoolean:function(x){if(this.type!==cp.Bytes)return x.push(this.readBoolean());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readBoolean());return x},readPackedFloat:function(x){if(this.type!==cp.Bytes)return x.push(this.readFloat());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readFloat());return x},readPackedDouble:function(x){if(this.type!==cp.Bytes)return x.push(this.readDouble());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readDouble());return x},readPackedFixed32:function(x){if(this.type!==cp.Bytes)return x.push(this.readFixed32());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readFixed32());return x},readPackedSFixed32:function(x){if(this.type!==cp.Bytes)return x.push(this.readSFixed32());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readSFixed32());return x},readPackedFixed64:function(x){if(this.type!==cp.Bytes)return x.push(this.readFixed64());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readFixed64());return x},readPackedSFixed64:function(x){if(this.type!==cp.Bytes)return x.push(this.readSFixed64());var eu=dp(this);for(x=x||[];this.pos<eu;)x.push(this.readSFixed64());return x},skip:function(x){var eu=7&x;if(eu===cp.Varint)for(;this.buf[this.pos++]>127;);else if(eu===cp.Bytes)this.pos=this.readVarint()+this.pos;else if(eu===cp.Fixed32)this.pos+=4;else{if(eu!==cp.Fixed64)throw Error("Unimplemented type: "+eu);this.pos+=8}},writeTag:function(x,eu){this.writeVarint(x<<3|eu)},realloc:function(x){for(var eu=this.length||16;eu<this.pos+x;)eu*=2;if(eu!==this.length){var ef=new Uint8Array(eu);ef.set(this.buf),this.buf=ef,this.length=eu}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(x){this.realloc(4),Mp(this.buf,x,this.pos),this.pos+=4},writeSFixed32:function(x){this.realloc(4),Mp(this.buf,x,this.pos),this.pos+=4},writeFixed64:function(x){this.realloc(8),Mp(this.buf,-1&x,this.pos),Mp(this.buf,Math.floor(23283064365386963e-26*x),this.pos+4),this.pos+=8},writeSFixed64:function(x){this.realloc(8),Mp(this.buf,-1&x,this.pos),Mp(this.buf,Math.floor(23283064365386963e-26*x),this.pos+4),this.pos+=8},writeVarint:function(x){(x=+x||0)>268435455||x<0?function(x,eu){var ef,em,e_,eg,ex;if(x>=0?(ef=x%4294967296|0,em=x/4294967296|0):(em=~(-x/4294967296),4294967295^(ef=~(-x%4294967296))?ef=ef+1|0:(ef=0,em=em+1|0)),x>=18446744073709552e3||x<-18446744073709552e3)throw Error("Given varint doesn't fit into 10 bytes");eu.realloc(10),e_=ef,eu.buf[eu.pos++]=127&e_|128,e_>>>=7,eu.buf[eu.pos++]=127&e_|128,e_>>>=7,eu.buf[eu.pos++]=127&e_|128,e_>>>=7,eu.buf[eu.pos++]=127&e_|128,eu.buf[eu.pos]=127&(e_>>>=7),ex=(7&(eg=em))<<4,eu.buf[eu.pos++]|=ex|((eg>>>=3)?128:0),eg&&(eu.buf[eu.pos++]=127&eg|((eg>>>=7)?128:0),eg&&(eu.buf[eu.pos++]=127&eg|((eg>>>=7)?128:0),eg&&(eu.buf[eu.pos++]=127&eg|((eg>>>=7)?128:0),eg&&(eu.buf[eu.pos++]=127&eg|((eg>>>=7)?128:0),eg&&(eu.buf[eu.pos++]=127&eg)))))}(x,this):(this.realloc(4),this.buf[this.pos++]=127&x|(x>127?128:0),x<=127||(this.buf[this.pos++]=127&(x>>>=7)|(x>127?128:0),x<=127||(this.buf[this.pos++]=127&(x>>>=7)|(x>127?128:0),x<=127||(this.buf[this.pos++]=x>>>7&127))))},writeSVarint:function(x){this.writeVarint(x<0?-(2*x)-1:2*x)},writeBoolean:function(x){this.writeVarint(!!x)},writeString:function(x){x=String(x),this.realloc(4*x.length),this.pos++;var eu=this.pos;this.pos=function(x,eu,ef){for(var em,e_,eg=0;eg<eu.length;eg++){if((em=eu.charCodeAt(eg))>55295&&em<57344){if(!e_){em>56319||eg+1===eu.length?(x[ef++]=239,x[ef++]=191,x[ef++]=189):e_=em;continue}if(em<56320){x[ef++]=239,x[ef++]=191,x[ef++]=189,e_=em;continue}em=e_-55296<<10|em-56320|65536,e_=null}else e_&&(x[ef++]=239,x[ef++]=191,x[ef++]=189,e_=null);em<128?x[ef++]=em:(em<2048?x[ef++]=em>>6|192:(em<65536?x[ef++]=em>>12|224:(x[ef++]=em>>18|240,x[ef++]=em>>12&63|128),x[ef++]=em>>6&63|128),x[ef++]=63&em|128)}return ef}(this.buf,x,this.pos);var ef=this.pos-eu;ef>=128&&mp(eu,ef,this),this.pos=eu-1,this.writeVarint(ef),this.pos+=ef},writeFloat:function(x){this.realloc(4),up(this.buf,x,this.pos,!0,23,4),this.pos+=4},writeDouble:function(x){this.realloc(8),up(this.buf,x,this.pos,!0,52,8),this.pos+=8},writeBytes:function(x){var eu=x.length;this.writeVarint(eu),this.realloc(eu);for(var ef=0;ef<eu;ef++)this.buf[this.pos++]=x[ef]},writeRawMessage:function(x,eu){this.pos++;var ef=this.pos;x(eu,this);var em=this.pos-ef;em>=128&&mp(ef,em,this),this.pos=ef-1,this.writeVarint(em),this.pos+=em},writeMessage:function(x,eu,ef){this.writeTag(x,cp.Bytes),this.writeRawMessage(eu,ef)},writePackedVarint:function(x,eu){eu.length&&this.writeMessage(x,gp,eu)},writePackedSVarint:function(x,eu){eu.length&&this.writeMessage(x,xp,eu)},writePackedBoolean:function(x,eu){eu.length&&this.writeMessage(x,wp,eu)},writePackedFloat:function(x,eu){eu.length&&this.writeMessage(x,vp,eu)},writePackedDouble:function(x,eu){eu.length&&this.writeMessage(x,bp,eu)},writePackedFixed32:function(x,eu){eu.length&&this.writeMessage(x,_p,eu)},writePackedSFixed32:function(x,eu){eu.length&&this.writeMessage(x,Ap,eu)},writePackedFixed64:function(x,eu){eu.length&&this.writeMessage(x,Sp,eu)},writePackedSFixed64:function(x,eu){eu.length&&this.writeMessage(x,kp,eu)},writeBytesField:function(x,eu){this.writeTag(x,cp.Bytes),this.writeBytes(eu)},writeFixed32Field:function(x,eu){this.writeTag(x,cp.Fixed32),this.writeFixed32(eu)},writeSFixed32Field:function(x,eu){this.writeTag(x,cp.Fixed32),this.writeSFixed32(eu)},writeFixed64Field:function(x,eu){this.writeTag(x,cp.Fixed64),this.writeFixed64
8(eu)},writeSFixed64Field:function(x,eu){this.writeTag(x,cp.Fixed64),this.writeSFixed64(eu)},writeVarintField:function(x,eu){this.writeTag(x,cp.Varint),this.writeVarint(eu)},writeSVarintField:function(x,eu){this.writeTag(x,cp.Varint),this.writeSVarint(eu)},writeStringField:function(x,eu){this.writeTag(x,cp.Bytes),this.writeString(eu)},writeFloatField:function(x,eu){this.writeTag(x,cp.Fixed32),this.writeFloat(eu)},writeDoubleField:function(x,eu){this.writeTag(x,cp.Fixed64),this.writeDouble(eu)},writeBooleanField:function(x,eu){this.writeVarintField(x,!!eu)}};let Pp=class Pp{constructor(x,{pixelRatio:eu,version:ef,stretchX:em,stretchY:e_,content:eg}){this.paddedRect=x,this.pixelRatio=eu,this.stretchX=em,this.stretchY=e_,this.content=eg,this.version=ef}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}};let Dp=class Dp{constructor(x,eu){let ef={},em={};this.haveRenderCallbacks=[];let e_=[];this.addImages(x,ef,e_),this.addImages(eu,em,e_);let{w:eg,h:ex}=Cp(e_),ev=new Qu({width:eg||1,height:ex||1});for(let eu in x){let em=x[eu],e_=ef[eu].paddedRect;Qu.copy(em.data,ev,{x:0,y:0},{x:e_.x+1,y:e_.y+1},em.data)}for(let x in eu){let ef=eu[x],e_=em[x].paddedRect,eg=e_.x+1,ex=e_.y+1,eb=ef.data.width,ew=ef.data.height;Qu.copy(ef.data,ev,{x:0,y:0},{x:eg,y:ex},ef.data),Qu.copy(ef.data,ev,{x:0,y:ew-1},{x:eg,y:ex-1},{width:eb,height:1}),Qu.copy(ef.data,ev,{x:0,y:0},{x:eg,y:ex+ew},{width:eb,height:1}),Qu.copy(ef.data,ev,{x:eb-1,y:0},{x:eg-1,y:ex},{width:1,height:ew}),Qu.copy(ef.data,ev,{x:0,y:0},{x:eg+eb,y:ex},{width:1,height:ew})}this.image=ev,this.iconPositions=ef,this.patternPositions=em}addImages(x,eu,ef){for(let em in x){let e_=x[em],eg={x:0,y:0,w:e_.data.width+2,h:e_.data.height+2};ef.push(eg),eu[em]=new Pp(eg,e_),e_.hasRenderCallback&&this.haveRenderCallbacks.push(em)}}patchUpdatedImages(x,eu){for(let ef in this.haveRenderCallbacks=this.haveRenderCallbacks.filter(eu=>x.hasImage(eu)),x.dispatchRenderCallbacks(this.haveRenderCallbacks),x.updatedImages)this.patchUpdatedImage(this.iconPositions[ef],x.getImage(ef),eu),this.patchUpdatedImage(this.patternPositions[ef],x.getImage(ef),eu)}patchUpdatedImage(x,eu,ef){if(!x||!eu||x.version===eu.version)return;x.version=eu.version;let[em,e_]=x.tl;ef.update(eu.data,void 0,{x:em,y:e_})}};Oi(Pp,"ImagePosition"),Oi(Dp,"ImageAtlas");let rw={horizontal:1,vertical:2,horizontalOnly:3};let Lp=class Lp{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(x,eu){let ef=new Lp;return ef.scale=x||1,ef.fontStack=eu,ef}static forImage(x){let eu=new Lp;return eu.imageName=x,eu}};let Fp=class Fp{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(x,eu){let ef=new Fp;for(let em=0;em<x.sections.length;em++){let e_=x.sections[em];e_.image?ef.addImageSection(e_):ef.addTextSection(e_,eu)}return ef}length(){return this.text.length}getSection(x){return this.sections[this.sectionIndex[x]]}getSections(){return this.sections}getSectionIndex(x){return this.sectionIndex[x]}getCharCode(x){return this.text.charCodeAt(x)}verticalizePunctuation(x){this.text=function(x,eu){let ef="";for(let em=0;em<x.length;em++){let e_=x.charCodeAt(em+1)||null,eg=x.charCodeAt(em-1)||null;ef+=!eu&&(e_&&Ss(e_)&&!rv[x[em+1]]||eg&&Ss(eg)&&!rv[x[em-1]])||!rv[x[em]]?x[em]:rv[x[em]]}return ef}(this.text,x)}trim(){let x=0;for(let eu=0;eu<this.text.length&&rT[this.text.charCodeAt(eu)];eu++)x++;let eu=this.text.length;for(let ef=this.text.length-1;ef>=0&&ef>=x&&rT[this.text.charCodeAt(ef)];ef--)eu--;this.text=this.text.substring(x,eu),this.sectionIndex=this.sectionIndex.slice(x,eu)}substring(x,eu){let ef=new Fp;return ef.text=this.text.substring(x,eu),ef.sectionIndex=this.sectionIndex.slice(x,eu),ef.sections=this.sections,ef}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((x,eu)=>Math.max(x,this.sections[eu].scale),0)}addTextSection(x,eu){this.text+=x.text,this.sections.push(Lp.forText(x.scale,x.fontStack||eu));let ef=this.sections.length-1;for(let eu=0;eu<x.text.length;++eu)this.sectionIndex.push(ef)}addImageSection(x){let eu=x.image?x.image.name:"";if(0===eu.length)return void U("Can't add FormattedSection with an empty image.");let ef=this.getNextImageSectionCharCode();ef?(this.text+=String.fromCharCode(ef),this.sections.push(Lp.forImage(eu)),this.sectionIndex.push(this.sections.length-1)):U("Reached maximum number of images 6401")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}};function Rp(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI){let eA=Fp.fromFeature(x,e_);eE===rw.vertical&&eA.verticalizePunctuation(eS);let eC=[],ez=function(x,eu,ef,em,e_,eg){if(!x)return[];let ex=[],ev=function(x,eu,ef,em,e_,eg){let ex=0;for(let ef=0;ef<x.length();ef++){let ev=x.getSection(ef);ex+=Up(x.getCharCode(ef),ev,em,e_,eu,eg)}return ex/Math.max(1,Math.ceil(ex/ef))}(x,eu,ef,em,e_,eg),eb=x.text.indexOf("â")>=0,ew=0;for(let ef=0;ef<x.length();ef++){let eT=x.getSection(ef),eE=x.getCharCode(ef);if(rT[eE]||(ew+=Up(eE,eT,em,e_,eu,eg)),ef<x.length()-1){let eu=!(eE<11904||!(ns(eE)||rs(eE)||ms(eE)||fs(eE)||os(eE)||Hi(eE)||is(eE)||Qi(eE)||ls(eE)||us(eE)||as(eE)||vs(eE)||ts(eE)||Ji(eE)||Wi(eE)||ss(eE)||es(eE)||ys(eE)||hs(eE)||cs(eE)));(rE[eE]||eu||eT.imageName)&&ex.push(Np(ef+1,ew,ev,ex,function(x,eu,ef){let em=0;return 10===x&&(em-=1e4),ef&&(em+=150),40!==x&&65288!==x||(em+=50),41!==eu&&65289!==eu||(em+=50),em}(eE,x.getCharCode(ef+1),eu&&eb),!1))}}return function Gp(x){return x?Gp(x.priorBreak).concat(x.index):[]}(Np(x.length(),ew,ev,ex,0,!0))}(eA,ew,eg,eu,em,eM),{processBidirectionalText:eD,processStyledBidirectionalText:ek}=t2;if(eD&&1===eA.sections.length){let x=eD(eA.toString(),ez);for(let eu of x){let x=new Fp;x.text=eu,x.sections=eA.sections;for(let ef=0;ef<eu.length;ef++)x.sectionIndex.push(0);eC.push(x)}}else if(ek){let x=ek(eA.text,eA.sectionIndex,ez);for(let eu of x){let x=new Fp;x.text=eu[0],x.sectionIndex=eu[1],x.sections=eA.sections,eC.push(x)}}else eC=function(x,eu){let ef=[],em=x.text,e_=0;for(let em of eu)ef.push(x.substring(e_,em)),e_=em;
8return e_<em.length&&ef.push(x.substring(e_,em.length)),ef}(eA,ez);let eP=[],eL={positionedLines:eP,text:eA.toString(),top:eT[1],bottom:eT[1],left:eT[0],right:eT[0],writingMode:eE,iconsInText:!1,verticalizable:!1,hasBaseline:!1};return function(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE){let eS=0,eM=0,eI=0,eA="right"===ev?1:"left"===ev?0:.5,eC=!1;for(let x of e_){let ef=x.getSections();for(let x of ef){if(x.imageName)continue;let ef=eu[x.fontStack];if(ef&&!(eC=void 0!==ef.ascender&&void 0!==ef.descender))break}if(!eC)break}let ez=0;for(let ex of e_){ex.trim();let e_=ex.getMaxScale(),ev=(e_-1)*24,eD={positionedGlyphs:[],lineOffset:0};x.positionedLines[ez]=eD;let ek=eD.positionedGlyphs,eP=0;if(!ex.length()){eM+=eg,++ez;continue}let eL=0,eR=0;for(let eg=0;eg<ex.length();eg++){let ev=ex.getSection(eg),eI=ex.getSectionIndex(eg),eA=ex.getCharCode(eg),ez=ev.scale,eD=null,eB=null,eO=null,eF=24,eU=0,eV=!(eb===rw.horizontal||!eT&&!As(eA)||eT&&(rT[eA]||Xi(eA)||Ki(eA)||Yi(eA)||ds(eA)||xs(eA)));if(ev.imageName){let eu=em[ev.imageName];if(!eu)continue;eO=ev.imageName,x.iconsInText=x.iconsInText||!0,eB=eu.paddedRect;let ef=eu.displaySize;ez=24*ez/eE,eD={width:ef[0],height:ef[1],left:1,top:-3,advance:eV?ef[1]:ef[0],localGlyph:!1},eU=eC?-eD.height*ez:24*e_-17-ef[1]*ez,eF=eD.advance;let eg=(eV?ef[0]:ef[1])*ez-24*e_;eg>0&&eg>eP&&(eP=eg)}else{let x=ef[ev.fontStack];if(!x)continue;x[eA]&&(eB=x[eA]);let em=eu[ev.fontStack];if(!em)continue;let eg=em.glyphs[eA];if(!eg)continue;if(eD=eg.metrics,eF=8203!==eA?24:0,eC){let x=void 0!==em.ascender?Math.abs(em.ascender):0,eu=void 0!==em.descender?Math.abs(em.descender):0,ef=(x+eu)*ez;eL<ef&&(eL=ef,eR=(x-eu)/2*ez),eU=-x*ez}else eU=(e_-ez)*24-17}eV?(x.verticalizable=!0,ek.push({glyph:eA,imageName:eO,x:eS,y:eM+eU,vertical:eV,scale:ez,localGlyph:eD.localGlyph,fontStack:ev.fontStack,sectionIndex:eI,metrics:eD,rect:eB}),eS+=eF*ez+ew):(ek.push({glyph:eA,imageName:eO,x:eS,y:eM+eU,vertical:eV,scale:ez,localGlyph:eD.localGlyph,fontStack:ev.fontStack,sectionIndex:eI,metrics:eD,rect:eB}),eS+=eD.advance*ez+ew)}0!==ek.length&&(eI=Math.max(eS-ew,eI),eC?Xp(ek,eA,eP,eR,eg*e_/2):Xp(ek,eA,eP,0,eg/2)),eS=0;let eB=eg*e_+eP;eD.lineOffset=Math.max(eP,ev),eM+=eB,++ez}let eD=eM,{horizontalAlign:ek,verticalAlign:eP}=Zp(ex);(function(x,eu,ef,em,e_,eg){let ex=(eu-ef)*e_,ev=-eg*em;for(let eu of x)for(let x of eu.positionedGlyphs)x.x+=ex,x.y+=ev})(x.positionedLines,eA,ek,eP,eI,eD),x.top+=-eP*eD,x.bottom=x.top+eD,x.left+=-ek*eI,x.right=x.left+eI,x.hasBaseline=eC}(eL,eu,ef,em,eC,ex,ev,eb,eE,ew,eS,eI),!function(x){for(let eu of x)if(0!==eu.positionedGlyphs.length)return!1;return!0}(eP)&&eL}let rT={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},rE={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Up(x,eu,ef,em,e_,eg){if(eu.imageName){let x=em[eu.imageName];return x?x.displaySize[0]*eu.scale*24/eg+e_:0}{let em=ef[eu.fontStack],eg=em&&em.glyphs[x];return eg?eg.metrics.advance*eu.scale+e_:0}}function Op(x,eu,ef,em){let e_=Math.pow(x-eu,2);return em?x<eu?e_/2:2*e_:e_+Math.abs(ef)*ef}function Np(x,eu,ef,em,e_,eg){let ex=null,ev=Op(eu,ef,e_,eg);for(let x of em){let em=Op(eu-x.x,ef,e_,eg)+x.badness;em<=ev&&(ex=x,ev=em)}return{index:x,x:eu,priorBreak:ex,badness:ev}}function Zp(x){let eu=.5,ef=.5;switch(x){case"right":case"top-right":case"bottom-right":eu=1;break;case"left":case"top-left":case"bottom-left":eu=0}switch(x){case"bottom":case"bottom-right":case"bottom-left":ef=1;break;case"top":case"top-right":case"top-left":ef=0}return{horizontalAlign:eu,verticalAlign:ef}}function Xp(x,eu,ef,em,e_){if(!(eu||ef||em||e_))return;let eg=x.length-1,ex=x[eg],ev=(ex.x+ex.metrics.advance*ex.scale)*eu;for(let eu=0;eu<=eg;eu++)x[eu].x-=ev,x[eu].y+=ef+em+e_}function Yp(x,eu,ef,em,e_,eg){let ex,ev,eb,ew,eT;let eE=x.image;if(eE.content){let x=eE.content,eu=eE.pixelRatio||1;ex=[x[0]/eu,x[1]/eu,eE.displaySize[0]-x[2]/eu,eE.displaySize[1]-x[3]/eu]}let eS=eu.left*eg,eM=eu.right*eg;"width"===ef||"both"===ef?(eT=e_[0]+eS-em[3],eb=e_[0]+eM+em[1]):eb=(eT=e_[0]+(eS+eM-eE.displaySize[0])/2)+eE.displaySize[0];let eI=eu.top*eg,eA=eu.bottom*eg;return"height"===ef||"both"===ef?(ev=e_[1]+eI-em[0],ew=e_[1]+eA+em[2]):ew=(ev=e_[1]+(eI+eA-eE.displaySize[1])/2)+eE.displaySize[1],{image:eE,top:ev,right:eb,bottom:ew,left:eT,collisionPadding:ex}}let Hp=class Hp extends eD{constructor(x,eu,ef,em,e_){super(x,eu),this.angle=em,this.z=ef,void 0!==e_&&(this.segment=e_)}clone(){return new Hp(this.x,this.y,this.z,this.angle,this.segment)}};function Wp(x,eu,ef,em,e_){if(void 0===eu.segment)return!0;let eg=eu,ex=eu.segment+1,ev=0;for(;ev>-ef/2;){if(--ex<0)return!1;ev-=x[ex].dist(eg),eg=x[ex]}ev+=x[ex].dist(x[ex+1]),ex++;let eb=[],ew=0;for(;ev<ef/2;){let eu=x[ex],ef=x[ex+1];if(!ef)return!1;let eg=x[ex-1].angleTo(eu)-eu.angleTo(ef);for(eg=Math.abs((eg+3*Math.PI)%(2*Math.PI)-Math.PI),eb.push({distance:ev,angleDelta:eg}),ew+=eg;ev-eb[0].distance>em;)ew-=eb.shift().angleDelta;if(ew>e_)return!1;ex++,ev+=eu.dist(ef)}return!0}function Jp(x){let eu=0;for(let ef=0;ef<x.length-1;ef++)eu+=x[ef].dist(x[ef+1]);return eu}function tf(x,eu){return Math.max(x?x.right-x.left:0,eu?eu.right-eu.left:0)}function sf(x,eu,ef,em,e_){let eg=[];for(let ex=0;ex<x.length;ex++){let ev;let eb=x[ex];for(let x=0;x<eb.length-1;x++){let ex=eb[x],ew=eb[x+1];ex.x<eu&&ew.x<eu||(ex.x<eu?ex=new eD(eu,ex.y+(eu-ex.x)/(ew.x-ex.x)*(ew.y-ex.y))._round():ew.x<eu&&(ew=new eD(eu,ex.y+(eu-ex.x)/(ew.x-ex.x)*(ew.y-ex.y))._round()),ex.y<ef&&ew.y<ef||(ex.y<ef?ex=new eD(ex.x+(ef-ex.y)/(ew.y-ex.y)*(ew.x-ex.x),ef)._round():ew.y<ef&&(ew=new eD(ex.x+(ef-ex.y)/(ew.y-ex.y)*(ew.x-ex.x),ef)._round()),ex.x>=em&&ew.x>=em||(ex.x>=em?ex=new eD(em,ex.y+(em-ex.x)/(ew.x-ex.x)*(ew.y-ex.y))._round():ew.x>=em&&(ew=new eD(em,ex.y+(em-ex.x)/(ew.x-ex.x)*(ew.y-ex.y))._round()),ex.y>=e_&&ew.y>=e_||(ex.y>
8=e_?ex=new eD(ex.x+(e_-ex.y)/(ew.y-ex.y)*(ew.x-ex.x),e_)._round():ew.y>=e_&&(ew=new eD(ex.x+(e_-ex.y)/(ew.y-ex.y)*(ew.x-ex.x),e_)._round()),ev&&ex.equals(ev[ev.length-1])||(ev=[ex],eg.push(ev)),ev.push(ew)))))}}return eg}function of(x,eu,ef,em,e_,eg,ex,ev,eb){for(let ew=eu;ew<eu+em;ew++)lf(x,ef*eg+ew,eg,e_,ex,ev,eb);for(let ew=ef;ew<ef+e_;ew++)lf(x,ew*eg+eu,1,em,ex,ev,eb)}function lf(x,eu,ef,em,e_,eg,ex){eg[0]=0,ex[0]=-1e20,ex[1]=1e20,e_[0]=x[eu];for(let ev=1,eb=0,ew=0;ev<em;ev++){e_[ev]=x[eu+ev*ef];let em=ev*ev;do{let x=eg[eb];ew=(e_[ev]-e_[x]+em-x*x)/(ev-x)/2}while(ew<=ex[eb]&&--eb>-1);eg[++eb]=ev,ex[eb]=ew,ex[eb+1]=1e20}for(let ev=0,eb=0;ev<em;ev++){for(;ex[eb+1]<ev;)eb++;let em=eg[eb],ew=ev-em;x[eu+ev*ef]=e_[em]+ew*ew}}Oi(Hp,"Anchor");let rS={none:0,ideographs:1,all:2};let cf=class cf{constructor(x,eu,ef){this.requestManager=x,this.localGlyphMode=eu,this.localFontFamily=ef,this.entries={},this.localGlyphs={200:{},400:{},500:{},900:{}}}setURL(x){this.url=x}getGlyphs(x,eu){let ef=[];for(let eu in x)for(let em of x[eu])ef.push({stack:eu,id:em});M(ef,({stack:x,id:eu},ef)=>{let em=this.entries[x];em||(em=this.entries[x]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let e_=em.glyphs[eu];if(void 0!==e_)return void ef(null,{stack:x,id:eu,glyph:e_});if(e_=this._tinySDF(em,x,eu))return em.glyphs[eu]=e_,void ef(null,{stack:x,id:eu,glyph:e_});let eg=Math.floor(eu/256);if(256*eg>65535)return void ef(Error("glyphs > 65535 not supported"));if(em.ranges[eg])return void ef(null,{stack:x,id:eu,glyph:e_});let ex=em.requests[eg];ex||(ex=em.requests[eg]=[],cf.loadGlyphRange(x,eg,this.url,this.requestManager,(x,eu)=>{if(eu){for(let x in em.ascender=eu.ascender,em.descender=eu.descender,eu.glyphs)this._doesCharSupportLocalGlyph(+x)||(em.glyphs[+x]=eu.glyphs[+x]);em.ranges[eg]=!0}for(let ef of ex)ef(x,eu);delete em.requests[eg]})),ex.push((em,e_)=>{em?ef(em):e_&&ef(null,{stack:x,id:eu,glyph:e_.glyphs[eu]||null})})},(x,ef)=>{if(x)eu(x);else if(ef){let x={};for(let{stack:eu,id:em,glyph:e_}of ef)void 0===x[eu]&&(x[eu]={}),void 0===x[eu].glyphs&&(x[eu].glyphs={}),x[eu].glyphs[em]=e_&&{id:e_.id,bitmap:e_.bitmap.clone(),metrics:e_.metrics},x[eu].ascender=this.entries[eu].ascender,x[eu].descender=this.entries[eu].descender;eu(null,x)}})}_doesCharSupportLocalGlyph(x){return this.localGlyphMode!==rS.none&&(this.localGlyphMode===rS.all?!!this.localFontFamily:!!this.localFontFamily&&(us(x)||ps(x)||ts(x)||es(x)||Qi(x)))}_tinySDF(x,eu,ef){let em=this.localFontFamily;if(!em||!this._doesCharSupportLocalGlyph(ef))return;let e_=x.tinySDF;if(!e_){let ef="400";/bold/i.test(eu)?ef="900":/medium/i.test(eu)?ef="500":/light/i.test(eu)&&(ef="200"),(e_=x.tinySDF=new cf.TinySDF({fontFamily:em,fontWeight:ef,fontSize:48,buffer:6,radius:16})).fontWeight=ef}if(this.localGlyphs[e_.fontWeight][ef])return this.localGlyphs[e_.fontWeight][ef];let eg=String.fromCharCode(ef),{data:ex,width:ev,height:eb,glyphWidth:ew,glyphHeight:eT,glyphLeft:eE,glyphTop:eS,glyphAdvance:eM}=e_.draw(eg);return this.localGlyphs[e_.fontWeight][ef]={id:ef,bitmap:new Ju({width:ev,height:eb},ex),metrics:{width:ew/2,height:eT/2,left:eE/2,top:eS/2-27,advance:eM/2,localGlyph:!0}}}};function hf(x,eu,ef,em){let e_=[],eg=x.image,ex=eg.pixelRatio,ev=eg.paddedRect.w-2,eb=eg.paddedRect.h-2,ew=x.right-x.left,eT=x.bottom-x.top,eE=eg.stretchX||[[0,ev]],eS=eg.stretchY||[[0,eb]],f=(x,eu)=>x+eu[1]-eu[0],eM=eE.reduce(f,0),eI=eS.reduce(f,0),eA=ev-eM,eC=eb-eI,ez=0,ek=eM,eP=0,eL=eI,eR=0,eB=eA,eO=0,eF=eC;if(eg.content&&em){let x=eg.content;ez=pf(eE,0,x[0]),eP=pf(eS,0,x[1]),ek=pf(eE,x[0],x[2]),eL=pf(eS,x[1],x[3]),eR=x[0]-ez,eO=x[1]-eP,eB=x[2]-x[0]-ek,eF=x[3]-x[1]-eL}let M=(em,e_,ev,eb)=>{var eE,eS,eA,eC,eU,eV,eN,ej,eG,eZ,e$,eq;let eW=(em.stretch-ez)/ek*ew+x.left,eX=(eA=em.fixed-eR,eA-eB*em.stretch/eM),eH=(e_.stretch-eP)/eL*eT+x.top,eY=(eV=e_.fixed-eO,eV-eF*e_.stretch/eI),eJ=(ev.stretch-ez)/ek*ew+x.left,eK=(eG=ev.fixed-eR,eG-eB*ev.stretch/eM),eQ=(eb.stretch-eP)/eL*eT+x.top,e0=(eq=eb.fixed-eO,eq-eF*eb.stretch/eI),e1=new eD(eW,eH),e2=new eD(eJ,eH),e3=new eD(eJ,eQ),e5=new eD(eW,eQ),e4=new eD(eX/ex,eY/ex),e6=new eD(eK/ex,e0/ex),e8=eu*Math.PI/180;if(e8){let x=Math.sin(e8),eu=Math.cos(e8),ef=[eu,-x,x,eu];e1._matMult(ef),e2._matMult(ef),e5._matMult(ef),e3._matMult(ef)}let e9=em.stretch+em.fixed,e7=e_.stretch+e_.fixed;return{tl:e1,tr:e2,bl:e5,br:e3,tex:{x:eg.paddedRect.x+1+e9,y:eg.paddedRect.y+1+e7,w:ev.stretch+ev.fixed-e9,h:eb.stretch+eb.fixed-e7},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:e4,pixelOffsetBR:e6,minFontScaleX:eB/ex/ew,minFontScaleY:eF/ex/eT,isSDF:ef}};if(em&&(eg.stretchX||eg.stretchY)){let x=ff(eE,eA,eM),eu=ff(eS,eC,eI);for(let ef=0;ef<x.length-1;ef++){let em=x[ef],eg=x[ef+1];for(let x=0;x<eu.length-1;x++)e_.push(M(em,eu[x],eg,eu[x+1]))}}else e_.push(M({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:ev+1},{fixed:0,stretch:eb+1}));return e_}function pf(x,eu,ef){let em=0;for(let e_ of x)em+=Math.max(eu,Math.min(ef,e_[1]))-Math.max(eu,Math.min(ef,e_[0]));return em}function ff(x,eu,ef){let em=[{fixed:-1,stretch:0}];for(let[eu,ef]of x){let x=em[em.length-1];em.push({fixed:eu-x.stretch,stretch:x.stretch}),em.push({fixed:eu-x.stretch,stretch:x.stretch+(ef-eu)})}return em.push({fixed:eu+1,stretch:ef}),em}cf.loadGlyphRange=function(x,eu,ef,em,e_){let eg=256*eu,ex=eg+255,ev=em.transformRequest(em.normalizeGlyphsURL(ef).replace("{fontstack}",x).replace("{range}",`${eg}-${ex}`),e$.Glyphs);ut(ev,(x,eu)=>{if(x)e_(x);else if(eu){let x={},ef=new cp(eu).readFields(zp,{});for(let eu of ef.glyphs)x[eu.id]=eu;
8e_(null,{glyphs:x,ascender:ef.ascender,descender:ef.descender})}})},cf.TinySDF=class{constructor({fontSize:x=24,buffer:eu=3,radius:ef=8,cutoff:em=.25,fontFamily:e_="sans-serif",fontWeight:eg="normal",fontStyle:ex="normal"}={}){this.buffer=eu,this.cutoff=em,this.radius=ef;let ev=this.size=x+4*eu,eb=this._createCanvas(ev),ew=this.ctx=eb.getContext("2d",{willReadFrequently:!0});ew.font=`${ex} ${eg} ${x}px ${e_}`,ew.textBaseline="alphabetic",ew.textAlign="left",ew.fillStyle="black",this.gridOuter=new Float64Array(ev*ev),this.gridInner=new Float64Array(ev*ev),this.f=new Float64Array(ev),this.z=new Float64Array(ev+1),this.v=new Uint16Array(ev)}_createCanvas(x){let eu=document.createElement("canvas");return eu.width=eu.height=x,eu}draw(x){let{width:eu,actualBoundingBoxAscent:ef,actualBoundingBoxDescent:em,actualBoundingBoxLeft:e_,actualBoundingBoxRight:eg}=this.ctx.measureText(x),ex=Math.ceil(ef),ev=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(eg-e_))),eb=Math.min(this.size-this.buffer,ex+Math.ceil(em)),ew=ev+2*this.buffer,eT=eb+2*this.buffer,eE=Math.max(ew*eT,0),eS=new Uint8ClampedArray(eE),eM={data:eS,width:ew,height:eT,glyphWidth:ev,glyphHeight:eb,glyphTop:ex,glyphLeft:0,glyphAdvance:eu};if(0===ev||0===eb)return eM;let{ctx:eI,buffer:eA,gridInner:eC,gridOuter:ez}=this;eI.clearRect(eA,eA,ev,eb),eI.fillText(x,eA,eA+ex);let eD=eI.getImageData(eA,eA,ev,eb);ez.fill(1e20,0,eE),eC.fill(0,0,eE);for(let x=0;x<eb;x++)for(let eu=0;eu<ev;eu++){let ef=eD.data[4*(x*ev+eu)+3]/255;if(0===ef)continue;let em=(x+eA)*ew+eu+eA;if(1===ef)ez[em]=0,eC[em]=1e20;else{let x=.5-ef;ez[em]=x>0?x*x:0,eC[em]=x<0?x*x:0}}of(ez,0,0,ew,eT,ew,this.f,this.v,this.z),of(eC,eA,eA,ev,eb,ew,this.f,this.v,this.z);for(let x=0;x<eE;x++){let eu=Math.sqrt(ez[x])-Math.sqrt(eC[x]);eS[x]=Math.round(255-255*(eu/this.radius+this.cutoff))}return eM}};let gf=class gf{constructor(x=[],eu=xf){if(this.data=x,this.length=this.data.length,this.compare=eu,this.length>0)for(let x=(this.length>>1)-1;x>=0;x--)this._down(x)}push(x){this.data.push(x),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;let x=this.data[0],eu=this.data.pop();return this.length--,this.length>0&&(this.data[0]=eu,this._down(0)),x}peek(){return this.data[0]}_up(x){let{data:eu,compare:ef}=this,em=eu[x];for(;x>0;){let e_=x-1>>1,eg=eu[e_];if(ef(em,eg)>=0)break;eu[x]=eg,x=e_}eu[x]=em}_down(x){let{data:eu,compare:ef}=this,em=this.length>>1,e_=eu[x];for(;x<em;){let em=1+(x<<1),eg=eu[em],ex=em+1;if(ex<this.length&&0>ef(eu[ex],eg)&&(em=ex,eg=eu[ex]),ef(eg,e_)>=0)break;eu[x]=eg,x=em}eu[x]=e_}};function xf(x,eu){return x<eu?-1:x>eu?1:0}function bf(x,eu){return eu.max-x.max}let wf=class wf{constructor(x,eu,ef,em){this.p=new eD(x,eu),this.h=ef,this.d=function(x,eu){let ef=!1,em=1/0;for(let e_=0;e_<eu.length;e_++){let eg=eu[e_];for(let eu=0,e_=eg.length,ex=e_-1;eu<e_;ex=eu++){let e_=eg[eu],ev=eg[ex];e_.y>x.y!=ev.y>x.y&&x.x<(ev.x-e_.x)*(x.y-e_.y)/(ev.y-e_.y)+e_.x&&(ef=!ef),em=Math.min(em,Cu(x,e_,ev))}}return(ef?1:-1)*Math.sqrt(em)}(this.p,em),this.max=this.d+this.h*Math.SQRT2}};let rM=Number.POSITIVE_INFINITY,rI=Math.sqrt(2);function Sf(x,[eu,ef]){let em=0,e_=0;if(ef===rM){eu<0&&(eu=0);let ef=eu/rI;switch(x){case"top-right":case"top-left":e_=ef-7;break;case"bottom-right":case"bottom-left":e_=7-ef;break;case"bottom":e_=7-eu;break;case"top":e_=eu-7}switch(x){case"top-right":case"bottom-right":em=-ef;break;case"top-left":case"bottom-left":em=ef;break;case"left":em=eu;break;case"right":em=-eu}}else{switch(eu=Math.abs(eu),ef=Math.abs(ef),x){case"top-right":case"top-left":case"top":e_=ef-7;break;case"bottom-right":case"bottom-left":case"bottom":e_=7-ef}switch(x){case"top-right":case"bottom-right":case"right":em=-eu;break;case"top-left":case"bottom-left":case"left":em=eu}}return[em,e_]}function If(x){switch(x){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function zf(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC){let ez=function(x,eu,ef,em,e_,eg,ex,ev){let eb=[];if(0===eu.positionedLines.length)return eb;let ew=em.layout.get("text-rotate").evaluate(eg,{})*Math.PI/180,eT=function(x){let eu=x[0],ef=x[1],em=eu*ef;return em>0?[eu,-ef]:em<0?[-eu,ef]:0===eu?[ef,eu]:[ef,-eu]}(ef),eE=Math.abs(eu.top-eu.bottom);for(let x of eu.positionedLines)eE-=x.lineOffset;let eS=eu.positionedLines.length,eM=eE/eS,eI=eu.top-ef[1];for(let x=0;x<eS;++x){let em=eu.positionedLines[x];for(let eg of(eI=function(x,eu,ef,em){let e_=eu+x.positionedLines[em].lineOffset;return 0===em?ef+e_/2:ef+(e_+(eu+x.positionedLines[em-1].lineOffset))/2}(eu,eM,eI,x),em.positionedGlyphs)){let x,em,eE,eS;if(!eg.rect)continue;let eM=eg.rect||{},eA=4,eC=!0,ez=1,ek=0;if(eg.imageName){let x=ex[eg.imageName];if(!x)continue;if(x.sdf){U("SDF images are not supported in formatted text and will be ignored.");continue}eC=!1,eA=1/(ez=x.pixelRatio)}let eP=(e_||ev)&&eg.vertical,eL=eg.metrics.advance*eg.scale/2,eR=eg.metrics,eB=eg.rect;if(null===eB)continue;ev&&eu.verticalizable&&(ek=eg.imageName?eL-eg.metrics.width*eg.scale/2:0);let eO=e_?[eg.x+eL,eg.y]:[0,0],eF=[0,0],eU=[0,0],eV=!1;e_||(eP?(eU=[eg.x+eL+eT[0],eg.y+eT[1]-ek],eV=!0):eF=[eg.x+eL+ef[0],eg.y+ef[1]-ek]);let eN=eB.w*eg.scale/(ez*(eg.localGlyph?2:1)),ej=eB.h*eg.scale/(ez*(eg.localGlyph?2:1));if(eP){let eu=eg.y-eI,ef=new eD(-eL,eL-eu),e_=-Math.PI/2,ex=new eD(...eU);
8(x=new eD(-eL+eF[0],eF[1]))._rotateAround(e_,ef)._add(ex),x.x+=-eu+eL,x.y-=(eR.left-eA)*eg.scale;let ev=eg.imageName?eR.advance*eg.scale:24*eg.scale,eb=String.fromCharCode(eg.glyph);"︶"===eb||"ï¹"===eb||"︸"===eb||"ï¹"===eb||"ï¹"===eb||"︾"===eb||"︼"===eb||"︺"===eb||"ï¸"===eb||"ï¹"===eb||"ï¸"===eb||"ï¸"===eb||"ï¸"===eb||"ï½"===eb||"ï¿£"===eb||"ï¸"===eb||"ï¸"===eb?x.x+=(1-eA)*eg.scale:"︵"===eb||"ï¹"===eb||"︷"===eb||"ï¹"===eb||"ï¹"===eb||"︽"===eb||"︻"===eb||"︹"===eb||"ï¸"===eb||"︿"===eb?x.x+=ev-eR.height*eg.scale+(-eA-1)*eg.scale:x.x+=eg.imageName||eR.width+2*eA===eB.w&&eR.height+2*eA===eB.h?(ev-ej)/2:(ev-(eR.height+2*eA)*eg.scale)/2,em=new eD(x.x,x.y-eN),eE=new eD(x.x+ej,x.y),eS=new eD(x.x+ej,x.y-eN)}else{let eu=(eR.left-eA)*eg.scale-eL+eF[0],ef=(-eR.top-eA)*eg.scale+eF[1],e_=eu+eN,ex=ef+ej;x=new eD(eu,ef),em=new eD(e_,ef),eE=new eD(eu,ex),eS=new eD(e_,ex)}if(ew){let eu;eu=e_?new eD(0,0):eV?new eD(eT[0],eT[1]):new eD(ef[0],ef[1]),x._rotateAround(ew,eu),em._rotateAround(ew,eu),eE._rotateAround(ew,eu),eS._rotateAround(ew,eu)}let eG=new eD(0,0),eZ=new eD(0,0);eb.push({tl:x,tr:em,bl:eE,br:eS,tex:eM,writingMode:eu.writingMode,glyphOffset:eO,sectionIndex:eg.sectionIndex,isSDF:eC,pixelOffsetTL:eG,pixelOffsetBR:eZ,minFontScaleX:0,minFontScaleY:0})}}return eb}(0,em,eb,eg,ex,ev,e_,x.allowVerticalPlacement),ek=x.textSizeData,eP=null;for(let em of("source"===ek.kind?(eP=[128*eg.layout.get("text-size").evaluate(ev,{},eC)])[0]>32640&&U(`${x.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===ek.kind&&((eP=[128*eI.compositeTextSizes[0].evaluate(ev,{},eC),128*eI.compositeTextSizes[1].evaluate(ev,{},eC)])[0]>32640||eP[1]>32640)&&U(`${x.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),x.addSymbols(x.text,ez,eP,eb,ex,ev,eT,eu,ef,ew.lineStartIndex,ew.lineLength,eM,eA,eC),eE))eS[em]=x.text.placedSymbolArray.length-1;return 4*ez.length}function Bf(x){for(let eu in x)return x[eu];return null}function Ef(x,eu,ef,em,e_,eg,ex,ev,eb,ew){let eT=ex.top,eE=ex.bottom,eS=ex.left,eM=ex.right,eI=ex.collisionPadding;if(eI&&(eS-=eI[0],eT-=eI[1],eM+=eI[2],eE+=eI[3]),eb){let x=new eD(eS,eT),eu=new eD(eM,eT),ef=new eD(eS,eE),em=new eD(eM,eE),e_=eb*ek,eg=new eD(0,0);ew&&(eg=new eD(ew[0],ew[1])),x._rotateAround(e_,eg),eu._rotateAround(e_,eg),ef._rotateAround(e_,eg),em._rotateAround(e_,eg),eS=Math.min(x.x,eu.x,ef.x,em.x),eM=Math.max(x.x,eu.x,ef.x,em.x),eT=Math.min(x.y,eu.y,ef.y,em.y),eE=Math.max(x.y,eu.y,ef.y,em.y)}return x.emplaceBack(eu.x,eu.y,eu.z,ef.x,ef.y,eS,eT,eM,eE,ev,em,e_,eg),x.length-1}function Cf(x){x.collisionPadding&&(x.top-=x.collisionPadding[1],x.bottom+=x.collisionPadding[3]);let eu=x.bottom-x.top;return eu>0?Math.max(10,eu):null}function Df(x,eu){let ef=x.fovAboveCenter,em=x.elevation?x.elevation.getMinElevationBelowMSL()*eu:0,e_=(x._camera.position[2]*x.worldSize-em)/Math.cos(x._pitch),eg=Math.sin(ef)*e_/Math.sin(Math.max(Math.PI/2-x._pitch-ef,.01)),ex=Math.sin(x._pitch)*eg+e_;return Math.min(1.01*ex,e_*(1/x._horizonShift))}function Vf(x,eu){if(!eu.isReprojectedInTileSpace)return{scale:1<<x.z,x:x.x,y:x.y,x2:x.x+1,y2:x.y+1,projection:eu};let ef=Math.pow(2,-x.z),em=x.x*ef,e_=(x.x+1)*ef,eg=x.y*ef,ex=(x.y+1)*ef,ev=ou(em),eb=ou(e_),ew=lu(eg),eT=lu(ex),eE=eu.project(ev,ew),eS=eu.project(eb,ew),eM=eu.project(eb,eT),eI=eu.project(ev,eT),eA=Math.min(eE.x,eS.x,eM.x,eI.x),eC=Math.min(eE.y,eS.y,eM.y,eI.y),ez=Math.max(eE.x,eS.x,eM.x,eI.x),eD=Math.max(eE.y,eS.y,eM.y,eI.y),ek=ef/16;function b(x,ef,em,e_,eg,ex){let ev=(em+eg)/2,eb=(e_+ex)/2,ew=eu.project(ou(ev),lu(eb)),eT=Math.max(0,eA-ew.x,eC-ew.y,ew.x-ez,ew.y-eD);eA=Math.min(eA,ew.x),ez=Math.max(ez,ew.x),eC=Math.min(eC,ew.y),eD=Math.max(eD,ew.y),eT>ek&&(b(x,ew,em,e_,ev,eb),b(ew,ef,ev,eb,eg,ex))}b(eE,eS,em,eg,e_,eg),b(eS,eM,e_,eg,e_,ex),b(eM,eI,e_,ex,em,ex),b(eI,eE,em,ex,em,eg),eA-=ek,eC-=ek,ez+=ek,eD+=ek;let eP=1/Math.max(ez-eA,eD-eC);return{scale:eP,x:eA*eP,y:eC*eP,x2:ez*eP,y2:eD*eP,projection:eu}}let rA=Eo(new Float32Array(16));let Ff=class Ff{constructor(x){this.spec=x,this.name=x.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit="meters",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=["custom"],this.center=[0,0],this.range=[3.5,7]}project(x,eu){return{x:0,y:0,z:0}}unproject(x,eu){return new ru(0,0)}projectTilePoint(x,eu,ef){return{x:x,y:eu,z:0}}locationPoint(x,eu,ef=!0){return x._coordinatePoint(x.locationCoordinate(eu),ef)}pixelsPerMeter(x,eu){return 1/nu(x)*eu}pixelSpaceConversion(x,eu,ef){return 1}farthestPixelDistance(x){return Df(x,x.pixelsPerMeter)}pointCoordinate(x,eu,ef,em){let e_=x.horizonLineFromTop(!1),eg=new eD(eu,Math.max(e_,ef));return x.rayIntersectionCoordinate(x.pointRayIntersection(eg,em))}pointCoordinate3D(x,eu,ef){let em=new eD(eu,ef);
8if(x.elevation)return x.elevation.pointCoordinate(em);{let eu=this.pointCoordinate(x,em.x,em.y,0);return[eu.x,eu.y,eu.z]}}isPointAboveHorizon(x,eu){if(x.elevation)return!this.pointCoordinate3D(x,eu.x,eu.y);let ef=x.horizonLineFromTop();return eu.y<ef}createInversionMatrix(x,eu){return rA}createTileMatrix(x,eu,ef){let em,e_,eg;let ex=ef.canonical,ev=Eo(new Float64Array(16));if(this.isReprojectedInTileSpace){let eb=Vf(ex,this);em=1,e_=eb.x+ef.wrap*eb.scale,eg=eb.y,Vo(ev,ev,[em/eb.scale,em/eb.scale,x.pixelsPerMeter/eu])}else em=eu/x.zoomScale(ex.z),e_=(ex.x+Math.pow(2,ex.z)*ef.wrap)*em,eg=ex.y*em;return Do(ev,ev,[e_,eg,0]),Vo(ev,ev,[em/8192,em/8192,1]),ev}upVector(x,eu,ef){return[0,0,1]}upVectorScale(x,eu,ef){return{metersToTile:1}}};let Rf=class Rf extends Ff{constructor(x){super(x),this.range=[4,7],this.center=x.center||[-96,37.5];let[eu,ef]=this.parallels=x.parallels||[29.5,45.5],em=Math.sin(eu*ek);this.n=(em+Math.sin(ef*ek))/2,this.c=1+em*(2*this.n-em),this.r0=Math.sqrt(this.c)/this.n}project(x,eu){let{n:ef,c:em,r0:e_}=this,eg=(x-this.center[0])*ek,ex=eu*ek,ev=Math.sqrt(em-2*ef*Math.sin(ex))/ef;return{x:ev*Math.sin(eg*ef),y:ev*Math.cos(eg*ef)-e_,z:0}}unproject(x,eu){let{n:ef,c:em,r0:e_}=this,eg=e_+eu,ex=Math.atan2(x,Math.abs(eg))*Math.sign(eg);eg*ef<0&&(ex-=Math.PI*Math.sign(x)*Math.sign(eg));let ev=this.center[0]*ek*ef;ex=I(ex,-Math.PI-ev,Math.PI-ev);let eb=S(ex/ef*eP+this.center[0],-180,180),ew=Math.asin(S((em-(x*x+eg*eg)*ef*ef)/(2*ef),-1,1)),eT=S(ew*eP,-85.051129,85.051129);return new ru(eb,eT)}};let rC=Math.sqrt(3)/2;let Nf=class Nf extends Ff{project(x,eu){eu=eu/180*Math.PI,x=x/180*Math.PI;let ef=Math.asin(rC*Math.sin(eu)),em=ef*ef,e_=em*em*em;return{x:.5*(x*Math.cos(ef)/(rC*(1.340264+-.24331799999999998*em+e_*(.0062510000000000005+.034164*em)))/Math.PI+.5),y:1-.5*(ef*(1.340264+-.081106*em+e_*(893e-6+.003796*em))/Math.PI+1),z:0}}unproject(x,eu){x=(2*x-.5)*Math.PI;let ef=eu=(2*(1-eu)-1)*Math.PI,em=ef*ef,e_=em*em*em;for(let x,eg,ex=0;ex<12&&(eg=ef*(1.340264+-.081106*em+e_*(893e-6+.003796*em))-eu,e_=(em=(ef=S(ef-(x=eg/(1.340264+-.24331799999999998*em+e_*(.0062510000000000005+.034164*em))),-Math.PI/3,Math.PI/3))*ef)*em*em,!(1e-12>Math.abs(x)));++ex);let eg=rC*x*(1.340264+-.24331799999999998*em+e_*(.0062510000000000005+.034164*em))/Math.cos(ef),ex=Math.asin(Math.sin(ef)/rC),ev=S(180*eg/Math.PI,-180,180),eb=S(180*ex/Math.PI,-85.051129,85.051129);return new ru(ev,eb)}};let Gf=class Gf extends Ff{constructor(x){super(x),this.wrap=!0,this.supportsWorldCopies=!0}project(x,eu){return{x:.5+x/360,y:.5-eu/360,z:0}}unproject(x,eu){let ef=S(360*(.5-eu),-85.051129,85.051129);return new ru(360*(x-.5),ef)}};let rz=Math.PI/2;function Xf(x){return Math.tan((rz+x)/2)}let Kf=class Kf extends Ff{constructor(x){super(x),this.center=x.center||[0,30];let[eu,ef]=this.parallels=x.parallels||[30,30],em=eu*ek,e_=ef*ek;this.southernCenter=em+e_<0,this.southernCenter&&(em=-em,e_=-e_);let eg=Math.cos(em),ex=Xf(em);this.n=em===e_?Math.sin(em):Math.log(eg/Math.cos(e_))/Math.log(Xf(e_)/ex),this.f=eg*Math.pow(Xf(em),this.n)/this.n}project(x,eu){eu*=ek,this.southernCenter&&(eu=-eu),x=(x-this.center[0])*ek;let{n:ef,f:em}=this;em>0?eu<-rz+1e-6&&(eu=-rz+1e-6):eu>rz-1e-6&&(eu=rz-1e-6);let e_=em/Math.pow(Xf(eu),ef),eg=e_*Math.sin(ef*x),ex=em-e_*Math.cos(ef*x);return eg=.5*(eg/Math.PI+.5),ex=.5*(ex/Math.PI+.5),{x:eg,y:this.southernCenter?ex:1-ex,z:0}}unproject(x,eu){x=(2*x-.5)*Math.PI,this.southernCenter&&(eu=1-eu),eu=(2*(1-eu)-.5)*Math.PI;let{n:ef,f:em}=this,e_=em-eu,eg=Math.sign(e_),ex=Math.sign(ef)*Math.sqrt(x*x+e_*e_),ev=Math.atan2(x,Math.abs(e_))*eg;e_*ef<0&&(ev-=Math.PI*Math.sign(x)*eg);let eb=S(ev/ef*eP+this.center[0],-180,180),ew=S((2*Math.atan(Math.pow(em/ex,1/ef))-rz)*eP,-85.051129,85.051129);return new ru(eb,this.southernCenter?-ew:ew)}};let Yf=class Yf extends Ff{constructor(x){super(x),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(x,eu){return{x:iu(x),y:su(eu),z:0}}unproject(x,eu){let ef=ou(x),em=lu(eu);return new ru(ef,em)}};let rD=85.051129*ek;let Wf=class Wf extends Ff{project(x,eu){let ef=(eu*=ek)*eu,em=ef*ef;return{x:.5*((x*=ek)*(.8707-.131979*ef+em*(em*(.003971*ef-.001529*em)-.013791))/Math.PI+.5),y:1-.5*(eu*(1.007226+ef*(.015085+em*(.028874*ef-.044475-.005916*em)))/Math.PI+1),z:0}}unproject(x,eu){x=(2*x-.5)*Math.PI;let ef=eu=(2*(1-eu)-1)*Math.PI,em=25,e_=0,eg=ef*ef;do{eg=ef*ef;let x=eg*eg;e_=(ef*(1.007226+eg*(.015085+x*(.028874*eg-.044475-.005916*x)))-eu)/(1.007226+eg*(.045255+x*(.259866*eg-.311325-.005916*11*x))),ef=S(ef-e_,-rD,rD)}while(Math.abs(e_)>1e-6&&--em>0);eg=ef*ef;let ex=S(x/(.8707+eg*(eg*(eg*eg*eg*(.003971-.001529*eg)-.013791)-.131979))*eP,-180,180),ev=ef*eP;return new ru(ex,ev)}};let rk=85.051129*ek;let Qf=class Qf extends Ff{project(x,eu){eu*=ek,x*=ek;let ef=Math.cos(eu),em=2/Math.PI,e_=Math.acos(ef*Math.cos(x/2)),eg=Math.sin(e_)/e_,ex=.5*(x*em+2*ef*Math.sin(x/2)/eg)||0,ev=.5*(eu+Math.sin(eu)/eg)||0;return{x:.5*(ex/Math.PI+.5),y:1-.5*(ev/Math.PI+1),z:0}}unproject(x,eu){let ef=x=(2*x-.5)*Math.PI,em=eu=(2*(1-eu)-1)*Math.PI,e_=25,eg=0,ex=0;do{let e_=Math.cos(em),ev=Math.sin(em),eb=2*ev*e_,ew=ev*ev,eT=e_*e_,eE=Math.cos(ef/2),eS=Math.sin(ef/2),eM=2*eE*eS,eI=eS*eS,eA=1-eT*eE*eE,eC=eA?1/eA:0,ez=eA?Math.acos(e_*eE)*Math.sqrt(1/eA):0,eD=.5*(2*ez*e_*eS+2*ef/Math.PI)-x,ek=.5*(ez*ev+em)-eu,eP=.5*eC*(eT*eI+ez*e_*eE*ew)+1/Math.PI,eL=eC*(eM*eb/4-ez*ev*eS),eR=.
8125*eC*(eb*eS-ez*ev*eT*eM),eB=.5*eC*(ew*eE+ez*eI*e_)+.5,eO=eL*eR-eB*eP;eg=(ek*eL-eD*eB)/eO,ex=(eD*eR-ek*eP)/eO,ef=S(ef-eg,-Math.PI,Math.PI),em=S(em-ex,-rk,rk)}while((Math.abs(eg)>1e-6||Math.abs(ex)>1e-6)&&--e_>0);return new ru(ef*eP,em*eP)}};let td=class td extends Ff{constructor(x){super(x),this.center=x.center||[0,0],this.parallels=x.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(this.parallels[0]*ek)),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(x,eu){let{scale:ef,cosPhi:em}=this;return{x:x*ek*em*ef+.5,y:-Math.sin(eu*ek)/em*ef+.5,z:0}}unproject(x,eu){let{scale:ef,cosPhi:em}=this,e_=-(eu-.5)/ef,eg=S((x-.5)/ef*eP/em,-180,180),ex=Math.asin(S(e_*em,-1,1)),ev=S(ex*eP,-85.051129,85.051129);return new ru(eg,ev)}};let ed=class ed extends Yf{constructor(x){super(x),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit="pixels",this.unsupportedLayers=["debug"],this.range=[3,5]}projectTilePoint(x,eu,ef){let em=Ol(x,eu,ef);return el(em,em,Gl(Pl(ef))),{x:em[0],y:em[1],z:em[2]}}locationPoint(x,eu){let ef=Ul(eu.lat,eu.lng),em=Jo([],ef),e_=x.elevation?x.elevation.getAtPointOrZero(x.locationCoordinate(eu),x._centerAltitude):x._centerAltitude;Wo(ef,ef,em,1/nu(0)*8192*e_);let eg=Eo(new Float64Array(16));return Po(eg,x.pixelMatrix,x.globeMatrix),el(ef,ef,eg),new eD(ef[0],ef[1])}pixelsPerMeter(x,eu){return 1/nu(0)*eu}pixelSpaceConversion(x,eu,ef){let em=1/nu(x)*eu,e_=Mr(1/nu(45)*eu,em,ef);return this.pixelsPerMeter(x,eu)/e_}createTileMatrix(x,eu,ef){let em=Zl(Pl(ef.canonical));return Po(new Float64Array(16),x.globeMatrix,em)}createInversionMatrix(x,eu){let{center:ef}=x,em=Gl(Pl(eu));return Fo(em,em,ef.lng*ek),Lo(em,em,ef.lat*ek),Vo(em,em,[x._pixelsPerMercatorPixel,x._pixelsPerMercatorPixel,1]),Float32Array.from(em)}pointCoordinate(x,eu,ef,em){return Bl(x,eu,ef,!0)||new pu(0,0)}pointCoordinate3D(x,eu,ef){let em=this.pointCoordinate(x,eu,ef,0);return[em.x,em.y,em.z]}isPointAboveHorizon(x,eu){return!Bl(x,eu.x,eu.y,!1)}farthestPixelDistance(x){let eu=function(x,eu){let ef;let em=x.cameraToCenterDistance,e_=x._centerAltitude*eu,eg=x._camera,ex=x._camera.forward(),ev=Go([],Ho([],ex,-em),[0,0,e_]),eb=x.worldSize/(2*Math.PI),ew=[0,0,-eb],eT=x.width/x.height,eE=Math.tan(x.fovAboveCenter),eS=Ho([],eg.up(),eE),eM=Ho([],eg.right(),eE*eT),eI=Jo([],Go([],Go([],ex,eS),eM)),eA=[];if(new vl(ev,eI).closestPointOnSphere(ew,eb,eA)){let eu=Go([],eA,ew),em=Zo([],eu,ev);ef=Math.cos(x.fovAboveCenter)*qo(em)}else{let x=Zo([],ev,ew),eu=Zo([],ew,ev);Jo(eu,eu);let em=qo(x)-eb;ef=Math.sqrt(em*(em+2*eb));let e_=Math.acos(ef/(eb+em))-Math.acos(Qo(ex,eu));ef*=Math.cos(e_)}return 1.01*ef}(x,this.pixelsPerMeter(x.center.lat,x.worldSize)),ef=Kl(x.zoom);if(ef>0){let em=Df(x,1/nu(x.center.lat)*x.worldSize),e_=x.worldSize/(2*Math.PI),eg=Math.max(x.width,x.height)/x.worldSize*Math.PI;return Mr(eu,em+e_*(1-Math.cos(eg)),Math.pow(ef,10))}return eu}upVector(x,eu,ef){return Ol(eu,ef,x,1)}upVectorScale(x){return{metersToTile:zl(ql(Pl(x)))}}};function rd(x){let eu=x.parallels,ef=!!eu&&.01>Math.abs(eu[0]+eu[1]);switch(x.name){case"mercator":return new Yf(x);case"equirectangular":return new Gf(x);case"naturalEarth":return new Wf(x);case"equalEarth":return new Nf(x);case"winkelTripel":return new Qf(x);case"albers":return ef?new td(x):new Rf(x);case"lambertConformalConic":return ef?new td(x):new Kf(x);case"globe":return new ed(x)}throw Error(`Invalid projection name: ${x.name}`)}let rP=iQ.types,rL=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function sd(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS){let eM=ev?Math.min(32640,Math.round(ev[0])):0,eI=ev?Math.min(32640,Math.round(ev[1])):0;x.emplaceBack(eu,ef,Math.round(32*em),Math.round(32*e_),eg,ex,(eM<<1)+(eb?1:0),eI,16*ew,16*eT,256*eE,256*eS)}function ad(x,eu,ef,em,e_,eg,ex){x.emplaceBack(eu,ef,em,e_,eg,ex)}function od(x,eu,ef,em,e_){x.emplaceBack(eu,ef,em,e_),x.emplaceBack(eu,ef,em,e_),x.emplaceBack(eu,ef,em,e_),x.emplaceBack(eu,ef,em,e_)}let ud=class ud{constructor(x){this.layoutVertexArray=new fa,this.indexArray=new wa,this.programConfigurations=x,this.segments=new So,this.dynamicLayoutVertexArray=new ua,this.opacityVertexArray=new ya,this.placedSymbolArray=new Pa,this.globeExtVertexArray=new da}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(x,eu,ef,em){this.isEmpty()||(ef&&(this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,rc.members),this.indexBuffer=x.createIndexBuffer(this.indexArray,eu),this.dynamicLayoutVertexBuffer=x.createVertexBuffer(this.dynamicLayoutVertexArray,rf.members,!0),this.opacityVertexBuffer=x.createVertexBuffer(this.opacityVertexArray,rL,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=x.createVertexBuffer(this.globeExtVertexArray,rp.members,!0)),this.opacityVertexBuffer.itemSize=1),(ef||em)&&this.programConfigurations.upload(x))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}};Oi(ud,"SymbolBuffers");let cd=class cd{constructor(x,eu,ef){this.layoutVertexArray=new x,this.layoutAttributes=eu,this.indexArray=new ef,this.segments=new So,this.collisionVertexArray=new va,this.collisionVertexArrayExt=new ba}upload(x){this.layoutVertexBuffer=x.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=x.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=x.createVertexBuffer(this.collisionVertexArray,rm.members,!0),this.collisionVertexBufferExt=x.createVertexBuffer(this.collisionVertexArrayExt,r_.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.de
8stroy())}};Oi(cd,"CollisionBuffers");let hd=class hd{constructor(x){this.collisionBoxArray=x.collisionBoxArray,this.zoom=x.zoom,this.overscaling=x.overscaling,this.layers=x.layers,this.layerIds=this.layers.map(x=>x.id),this.index=x.index,this.pixelRatio=x.pixelRatio,this.sourceLayerIndex=x.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Eo([]),this.placementViewportMatrix=Eo([]);let eu=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Qh(this.zoom,eu["text-size"]),this.iconSizeData=Qh(this.zoom,eu["icon-size"]);let ef=this.layers[0].layout,em=ef.get("symbol-sort-key"),e_=ef.get("symbol-z-order");this.canOverlap=ef.get("text-allow-overlap")||ef.get("icon-allow-overlap")||ef.get("text-ignore-placement")||ef.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==e_&&void 0!==em.constantOr(1),this.sortFeaturesByY=("viewport-y"===e_||"auto"===e_&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=ef.get("text-writing-mode").map(x=>rw[x]),this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id),this.sourceID=x.sourceID,this.projection=x.projection}createArrays(){this.text=new ud(new fo(this.layers,this.zoom,x=>/^text/.test(x))),this.icon=new ud(new fo(this.layers,this.zoom,x=>/^icon/.test(x))),this.glyphOffsetArray=new La,this.lineVertexArray=new Fa,this.symbolInstances=new Va}calculateGlyphDependencies(x,eu,ef,em,e_){for(let ef=0;ef<x.length;ef++)if(eu[x.charCodeAt(ef)]=!0,em&&e_){let em=rv[x.charAt(ef)];em&&(eu[em.charCodeAt(0)]=!0)}}populate(x,eu,ef,em){let e_=this.layers[0],eg=e_.layout,ex="globe"===this.projection.name,ev=eg.get("text-font"),eb=eg.get("text-field"),ew=eg.get("icon-image"),eT=("constant"!==eb.value.kind||eb.value.value instanceof Be&&!eb.value.value.isEmpty()||eb.value.value.toString().length>0)&&("constant"!==ev.value.kind||ev.value.value.length>0),eE="constant"!==ew.value.kind||!!ew.value.value||Object.keys(ew.parameters).length>0,eS=eg.get("symbol-sort-key");if(this.features=[],!eT&&!eE)return;let eM=eu.iconDependencies,eI=eu.glyphDependencies,eA=eu.availableImages,eC=new $s(this.zoom);for(let{feature:eu,id:eb,index:ew,sourceLayerIndex:ez}of x){let x,eD;let ek=e_._featureFilter.needGeometry,eP=wu(eu,ek);if(!e_._featureFilter.filter(eC,eP,ef))continue;if(ek||(eP.geometry=bu(eu,ef,em)),ex&&1!==eu.type&&ef.z<=5){let x=eP.geometry,n=(x,eu)=>.98078528056>Qo(Ol(x.x,x.y,ef,1),Ol(eu.x,eu.y,ef,1));for(let eu=0;eu<x.length;eu++)x[eu]=function(x,eu){let ef=x[0],em=[ef];for(let e_=1;e_<x.length;e_++){let eg=x[e_];(function yu(x,eu,ef,em){if(em(eu,ef)){let e_=eu.add(ef)._mult(.5);yu(x,eu,e_,em),yu(x,e_,ef,em)}else x.push(ef)})(em,ef,eg,eu),ef=eg}return em}(x[eu],n)}if(eT){let eu=e_.getValueAndResolveTokens("text-field",eP,ef,eA),em=Be.factory(eu);(function(x){for(let eu of x.sections)if(function(x){for(let eu of x)if(ks(eu.charCodeAt(0)))return!0;return!1}(eu.text))return!0;return!1})(em)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===Fs()||this.hasRTLText&&t2.isParsed())&&(x=function(x,eu,ef){return x.sections.forEach(x=>{x.text=function(x,eu,ef){let em=eu.layout.get("text-transform").evaluate(ef,{});return"uppercase"===em?x=x.toLocaleUpperCase():"lowercase"===em&&(x=x.toLocaleLowerCase()),t2.applyArabicShaping&&(x=t2.applyArabicShaping(x)),x}(x.text,eu,ef)}),x}(em,e_,eP))}if(eE){let x=e_.getValueAndResolveTokens("icon-image",eP,ef,eA);eD=x instanceof Ee?x:Ee.fromString(x)}if(!x&&!eD)continue;let eL=this.sortFeaturesByKey?eS.evaluate(eP,{},ef):void 0;if(this.features.push({id:eb,text:x,icon:eD,index:ew,sourceLayerIndex:ez,geometry:eP.geometry,properties:eu.properties,type:rP[eu.type],sortKey:eL}),eD&&(eM[eD.name]=!0),x){let eu=ev.evaluate(eP,{},ef).join(","),em="map"===eg.get("text-rotation-alignment")&&"point"!==eg.get("symbol-placement");for(let ef of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(rw.vertical)>=0,x.sections))if(ef.image)eM[ef.image.name]=!0;else{let e_=bs(x.toString()),eg=ef.fontStack||eu,ex=eI[eg]=eI[eg]||{};this.calculateGlyphDependencies(ef.text,ex,em,this.allowVerticalPlacement,e_)}}}"line"===eg.get("symbol-placement")&&(this.features=function(x){let eu={},ef={},em=[],e_=0;function s(eu){em.push(x[eu]),e_++}function a(x,eu,e_){let eg=ef[x];return delete ef[x],ef[eu]=eg,em[eg].geometry[0].pop(),em[eg].geometry[0]=em[eg].geometry[0].concat(e_[0]),eg}function o(x,ef,e_){let eg=eu[ef];return delete eu[ef],eu[x]=eg,em[eg].geometry[0].shift(),em[eg].geometry[0]=e_[0].concat(em[eg].geometry[0]),eg}function l(x,eu,ef){let em=ef?eu[0][eu[0].length-1]:eu[0][0];return`${x}:${em.x}:${em.y}`}for(let eg=0;eg<x.length;eg++){let ex=x[eg],ev=ex.geometry,eb=ex.text?ex.text.toString():null;if(!eb){s(eg);continue}let ew=l(eb,ev),eT=l(eb,ev,!0);if(ew in ef&&eT in eu&&ef[ew]!==eu[eT]){let x=o(ew,eT,ev),e_=a(ew,eT,em[x].geometry);delete eu[ew],delete ef[eT],ef[l(eb,em[e_].geometry,!0)]=e_,em[x].geometry=null}else ew in ef?a(ew,eT,ev):eT in eu?o(ew,eT,ev):(s(eg),eu[ew]=e_-1,ef[eT]=e_-1)}return em.filter(x=>x.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((x,eu)=>x.sortKey-eu.sortKey)}update(x,eu,ef,em){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(x,eu,this.layers,ef,em),this.icon.programConfigurations.updatePaintArrays(x,eu,this.layers,ef,em))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(x){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(x),this.iconCollisionBox.upload(x)),this.text.upload(x,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(x,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||(this.projectionInstance=rd(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(x,eu){let ef=this.lineVertexArray.length;if(void 0!==x.segment)for(let{x:x,y:ef}of eu)this.lineVertexArray.emplaceBack(x,ef);return{lineStartIndex:ef,lineLength:this.lineVertexArray.length-ef}}addSymbols(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM){let eI=x.indexArray,eA=x.layoutVertexArray,eC=x.globeExtVertexArray,ez=x.segments.prepareSegment(4*eu.length,eA,eI,this.canOverlap?eg.sort
8Key:void 0),eD=this.glyphOffsetArray.length,ek=ez.vertexLength,eP=this.allowVerticalPlacement&&ex===rw.vertical?Math.PI/2:0,eL=eg.text&&eg.text.sections;for(let em=0;em<eu.length;em++){let{tl:e_,tr:ex,bl:ew,br:eT,tex:eE,pixelOffsetTL:eD,pixelOffsetBR:ek,minFontScaleX:eR,minFontScaleY:eB,glyphOffset:eO,isSDF:eF,sectionIndex:eU}=eu[em],eV=ez.vertexLength,eN=eO[1];if(sd(eA,eb.x,eb.y,e_.x,eN+e_.y,eE.x,eE.y,ef,eF,eD.x,eD.y,eR,eB),sd(eA,eb.x,eb.y,ex.x,eN+ex.y,eE.x+eE.w,eE.y,ef,eF,ek.x,eD.y,eR,eB),sd(eA,eb.x,eb.y,ew.x,eN+ew.y,eE.x,eE.y+eE.h,ef,eF,eD.x,ek.y,eR,eB),sd(eA,eb.x,eb.y,eT.x,eN+eT.y,eE.x+eE.w,eE.y+eE.h,ef,eF,ek.x,ek.y,eR,eB),ev){let{x:eu,y:ef,z:em}=ev.anchor,[e_,eg,ex]=ev.up;ad(eC,eu,ef,em,e_,eg,ex),ad(eC,eu,ef,em,e_,eg,ex),ad(eC,eu,ef,em,e_,eg,ex),ad(eC,eu,ef,em,e_,eg,ex),od(x.dynamicLayoutVertexArray,eu,ef,em,eP)}else od(x.dynamicLayoutVertexArray,eb.x,eb.y,eb.z,eP);eI.emplaceBack(eV,eV+1,eV+2),eI.emplaceBack(eV+1,eV+2,eV+3),ez.vertexLength+=4,ez.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(eO[0]),em!==eu.length-1&&eU===eu[em+1].sectionIndex||x.programConfigurations.populatePaintArrays(eA.length,eg,eg.index,{},eS,eM,eL&&eL[eU])}let eR=ev?ev.anchor:eb;x.placedSymbolArray.emplaceBack(eR.x,eR.y,eR.z,eb.x,eb.y,eD,this.glyphOffsetArray.length-eD,ek,ew,eT,eb.segment,ef?ef[0]:0,ef?ef[1]:0,em[0],em[1],ex,0,!1,0,eE,0)}_commitLayoutVertex(x,eu,ef,em,e_,eg,ex){x.emplaceBack(eu,ef,em,e_,eg,Math.round(ex.x),Math.round(ex.y))}_addCollisionDebugVertices(x,eu,ef,em,e_,eg,ex){let ev=ef.segments.prepareSegment(4,ef.layoutVertexArray,ef.indexArray),eb=ev.vertexLength,ew=ex.tileAnchorX,eT=ex.tileAnchorY;for(let x=0;x<4;x++)ef.collisionVertexArray.emplaceBack(0,0,0,0);ef.collisionVertexArrayExt.emplaceBack(eu,-x.padding,-x.padding),ef.collisionVertexArrayExt.emplaceBack(eu,x.padding,-x.padding),ef.collisionVertexArrayExt.emplaceBack(eu,x.padding,x.padding),ef.collisionVertexArrayExt.emplaceBack(eu,-x.padding,x.padding),this._commitLayoutVertex(ef.layoutVertexArray,em,e_,eg,ew,eT,new eD(x.x1,x.y1)),this._commitLayoutVertex(ef.layoutVertexArray,em,e_,eg,ew,eT,new eD(x.x2,x.y1)),this._commitLayoutVertex(ef.layoutVertexArray,em,e_,eg,ew,eT,new eD(x.x2,x.y2)),this._commitLayoutVertex(ef.layoutVertexArray,em,e_,eg,ew,eT,new eD(x.x1,x.y2)),ev.vertexLength+=4;let eE=ef.indexArray;eE.emplaceBack(eb,eb+1),eE.emplaceBack(eb+1,eb+2),eE.emplaceBack(eb+2,eb+3),eE.emplaceBack(eb+3,eb),ev.primitiveLength+=4}_addTextDebugCollisionBoxes(x,eu,ef,em,e_,eg){for(let ex=em;ex<e_;ex++){let em=ef.get(ex),e_=this.getSymbolInstanceTextSize(x,eg,eu,ex);this._addCollisionDebugVertices(em,e_,this.textCollisionBox,em.projectedAnchorX,em.projectedAnchorY,em.projectedAnchorZ,eg)}}_addIconDebugCollisionBoxes(x,eu,ef,em,e_,eg){for(let ex=em;ex<e_;ex++){let em=ef.get(ex),e_=this.getSymbolInstanceIconSize(x,eu,eg.placedIconSymbolIndex);this._addCollisionDebugVertices(em,e_,this.iconCollisionBox,em.projectedAnchorX,em.projectedAnchorY,em.projectedAnchorZ,eg)}}generateCollisionDebugBuffers(x,eu){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new cd(ga,rg.members,Ma),this.iconCollisionBox=new cd(ga,rg.members,Ma);let ef=ep(this.iconSizeData,x),em=ep(this.textSizeData,x);for(let e_=0;e_<this.symbolInstances.length;e_++){let eg=this.symbolInstances.get(e_);this._addTextDebugCollisionBoxes(em,x,eu,eg.textBoxStartIndex,eg.textBoxEndIndex,eg),this._addTextDebugCollisionBoxes(em,x,eu,eg.verticalTextBoxStartIndex,eg.verticalTextBoxEndIndex,eg),this._addIconDebugCollisionBoxes(ef,x,eu,eg.iconBoxStartIndex,eg.iconBoxEndIndex,eg),this._addIconDebugCollisionBoxes(ef,x,eu,eg.verticalIconBoxStartIndex,eg.verticalIconBoxEndIndex,eg)}}getSymbolInstanceTextSize(x,eu,ef,em){let e_=this.text.placedSymbolArray.get(eu.rightJustifiedTextSymbolIndex>=0?eu.rightJustifiedTextSymbolIndex:eu.centerJustifiedTextSymbolIndex>=0?eu.centerJustifiedTextSymbolIndex:eu.leftJustifiedTextSymbolIndex>=0?eu.leftJustifiedTextSymbolIndex:eu.verticalPlacedTextSymbolIndex>=0?eu.verticalPlacedTextSymbolIndex:em),eg=tp(this.textSizeData,x,e_)/24;return this.tilePixelRatio*eg}getSymbolInstanceIconSize(x,eu,ef){let em=this.icon.placedSymbolArray.get(ef),e_=tp(this.iconSizeData,x,em);return this.tilePixelRatio*e_}_commitDebugCollisionVertexUpdate(x,eu,ef){x.emplaceBack(eu,-ef,-ef),x.emplaceBack(eu,ef,-ef),x.emplaceBack(eu,ef,ef),x.emplaceBack(eu,-ef,ef)}_updateTextDebugCollisionBoxes(x,eu,ef,em,e_,eg){for(let ex=em;ex<e_;ex++){let em=ef.get(ex),e_=this.getSymbolInstanceTextSize(x,eg,eu,ex);this._commitDebugCollisionVertexUpdate(this.textCollisionBox.collisionVertexArrayExt,e_,em.padding)}}_updateIconDebugCollisionBoxes(x,eu,ef,em,e_,eg){for(let ex=em;ex<e_;ex++){let em=ef.get(ex),e_=this.getSymbolInstanceIconSize(x,eu,eg);this._commitDebugCollisionVertexUpdate(this.iconCollisionBox.collisionVertexArrayExt,e_,em.padding)}}updateCollisionDebugBuffers(x,eu){if(!this.hasDebugData())return;this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexArrayExt.clear(),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexArrayExt.clear();let ef=ep(this.iconSizeData,x),em=ep(this.textSizeData,x);for(let e_=0;e_<this.symbolInstances.length;e_++){let eg=this.symbolInstances.get(e_);this._updateTextDebugCollisionBoxes(em,x,eu,eg.textBoxStartIndex,eg.textBoxEndIndex,eg),this._updateTextDebugCollisionBoxes(em,x,eu,eg.verticalTextBoxStartIndex,eg.verticalTextBoxEndIndex,eg),this._updateIconDebugCollisionBoxes(ef,x,eu,eg.iconBoxStartIndex,eg.iconBoxEndIndex,eg.placedIconSymbolIndex),this._updateIconDebugCollisionBoxes(ef,x,eu,eg.verticalIconBoxStartIndex,eg.verticalIconBoxEndIndex,eg.placedIconSymbolIndex)}this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexBufferExt&&this.textCollisionBox.collisionVertexBufferExt.updateData(this.textCollisionBox.collisionVertexArrayExt),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexBufferExt&&this.iconCollisionBox.collisionVertexBufferExt.updateData(this.iconCollisionBox.collisionVertexArrayExt)}_deserializeCollisionBoxesForSymbol(x,eu,ef,em,e_,eg,ex,ev,eb){let ew={};if(eu<ef){let{x1:ef,y1:em,x2:e_,y2:eg,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS,featureIndex:eM}=x.get(eu);ew.textBox={x1:ef,y1:em,x2:e_,y2:eg,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS},ew.textFeatureIndex=eM}if(em<e_){let{x1:eu,y1:ef,x2:e_,y2:eg,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS,featureIndex:eM}=x.get(em);ew.verticalTextBox={x1:eu,y1:ef,x2:e_,y2:eg,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS},ew.verticalTextFeatureIndex=eM}if(eg<ex){let{x1:eu,y1:ef,x2:em,y2:e_,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS,featureIndex:eM}=x.get(eg);ew.iconBox={x1:eu,y1:ef,x2:em,y2:e_,padding:ex,projectedAnchorX:ev,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS},ew.iconFeatureIndex=eM}if(ev<eb){let{x1:eu,y1:ef,x2:em,y2:e_,padding:eg,projectedAnchorX:ex,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS,featureIndex:eM}=x.get(ev);ew.verticalIconBox={x1:eu,y1:ef,x2:em,y2:e_,padding:eg,projectedAnchorX:ex,projectedAnchorY:eb,projectedAnchorZ:eT,tileAnchorX:eE,tileAnchorY:eS},ew.verticalIconFeatureIndex=eM}return ew}deserializeCollisionBoxes(x){this.collisionArrays=[];for(let eu=0;eu<this.symbolInstances.length;eu++){let ef=this.symbolInstances.get(eu);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(x,ef.textBoxStartIndex,ef.textBoxEndIndex,ef.verticalTextBoxStartIndex,ef.verticalTextBoxEndIndex,ef.iconBoxStartIndex,ef.iconBoxEndIndex,ef.verticalIconBoxStartIndex,ef.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(x,eu){let ef=x.placedSymbolArray.get(eu),em=ef.vertexStartIndex+4*ef.numGlyphs;for(let eu=ef.vertexStartIndex;eu<em;eu+=4)x.indexArray.emplaceBack(eu,eu+1,eu+2),x.indexArray.emplaceBack(eu+1,eu+2,eu+3)}
8getSortedSymbolIndexes(x){if(this.sortedAngle===x&&void 0!==this.symbolInstanceIndexes)return this.symbolInstanceIndexes;let eu=Math.sin(x),ef=Math.cos(x),em=[],e_=[],eg=[];for(let x=0;x<this.symbolInstances.length;++x){eg.push(x);let ex=this.symbolInstances.get(x);em.push(0|Math.round(eu*ex.tileAnchorX+ef*ex.tileAnchorY)),e_.push(ex.featureIndex)}return eg.sort((x,eu)=>em[x]-em[eu]||e_[eu]-e_[x]),eg}addToSortKeyRanges(x,eu){let ef=this.sortKeyRanges[this.sortKeyRanges.length-1];ef&&ef.sortKey===eu?ef.symbolInstanceEnd=x+1:this.sortKeyRanges.push({sortKey:eu,symbolInstanceStart:x,symbolInstanceEnd:x+1})}sortFeatures(x){if(this.sortFeaturesByY&&this.sortedAngle!==x&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){for(let eu of(this.symbolInstanceIndexes=this.getSortedSymbolIndexes(x),this.sortedAngle=x,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[],this.symbolInstanceIndexes)){let x=this.symbolInstances.get(eu);this.featureSortOrder.push(x.featureIndex);let{rightJustifiedTextSymbolIndex:ef,centerJustifiedTextSymbolIndex:em,leftJustifiedTextSymbolIndex:e_,verticalPlacedTextSymbolIndex:eg,placedIconSymbolIndex:ex,verticalPlacedIconSymbolIndex:ev}=x;ef>=0&&this.addIndicesForPlacedSymbol(this.text,ef),em>=0&&em!==ef&&this.addIndicesForPlacedSymbol(this.text,em),e_>=0&&e_!==em&&e_!==ef&&this.addIndicesForPlacedSymbol(this.text,e_),eg>=0&&this.addIndicesForPlacedSymbol(this.text,eg),ex>=0&&this.addIndicesForPlacedSymbol(this.icon,ex),ev>=0&&this.addIndicesForPlacedSymbol(this.icon,ev)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}};Oi(hd,"SymbolBucket",{omit:["layers","collisionBoxArray","features","compareText"]}),hd.MAX_GLYPHS=65535,hd.addDynamicAttributes=od;let rR=new Js({"symbol-placement":new Ys(e9.layout_symbol["symbol-placement"]),"symbol-spacing":new Ys(e9.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Ys(e9.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Hs(e9.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Ys(e9.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Ys(e9.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new Ys(e9.layout_symbol["icon-ignore-placement"]),"icon-optional":new Ys(e9.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Ys(e9.layout_symbol["icon-rotation-alignment"]),"icon-size":new Hs(e9.layout_symbol["icon-size"]),"icon-text-fit":new Ys(e9.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Ys(e9.layout_symbol["icon-text-fit-padding"]),"icon-image":new Hs(e9.layout_symbol["icon-image"]),"icon-rotate":new Hs(e9.layout_symbol["icon-rotate"]),"icon-padding":new Ys(e9.layout_symbol["icon-padding"]),"icon-keep-upright":new Ys(e9.layout_symbol["icon-keep-upright"]),"icon-offset":new Hs(e9.layout_symbol["icon-offset"]),"icon-anchor":new Hs(e9.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Ys(e9.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Ys(e9.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Ys(e9.layout_symbol["text-rotation-alignment"]),"text-field":new Hs(e9.layout_symbol["text-field"]),"text-font":new Hs(e9.layout_symbol["text-font"]),"text-size":new Hs(e9.layout_symbol["text-size"]),"text-max-width":new Hs(e9.layout_symbol["text-max-width"]),"text-line-height":new Hs(e9.layout_symbol["text-line-height"]),"text-letter-spacing":new Hs(e9.layout_symbol["text-letter-spacing"]),"text-justify":new Hs(e9.layout_symbol["text-justify"]),"text-radial-offset":new Hs(e9.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Ys(e9.layout_symbol["text-variable-anchor"]),"text-anchor":new Hs(e9.layout_symbol["text-anchor"]),"text-max-angle":new Ys(e9.layout_symbol["text-max-angle"]),"text-writing-mode":new Ys(e9.layout_symbol["text-writing-mode"]),"text-rotate":new Hs(e9.layout_symbol["text-rotate"]),"text-padding":new Ys(e9.layout_symbol["text-padding"]),"text-keep-upright":new Ys(e9.layout_symbol["text-keep-upright"]),"text-transform":new Hs(e9.layout_symbol["text-transform"]),"text-offset":new Hs(e9.layout_symbol["text-offset"]),"text-allow-overlap":new Ys(e9.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new Ys(e9.layout_symbol["text-ignore-placement"]),"text-optional":new Ys(e9.layout_symbol["text-optional"])});var rB={paint:new Js({"icon-opacity":new Hs(e9.paint_symbol["icon-opacity"]),"icon-color":new Hs(e9.paint_symbol["icon-color"]),"icon-halo-color":new Hs(e9.paint_symbol["icon-halo-color"]),"icon-halo-width":new Hs(e9.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Hs(e9.paint_symbol["icon-halo-blur"]),"icon-translate":new Ys(e9.paint_symbol["icon-translate"]),"icon-translate-anchor":new Ys(e9.paint_symbol["icon-translate-anchor"]),"text-opacity":new Hs(e9.paint_symbol["text-opacity"]),"text-color":new Hs(e9.paint_symbol["text-color"],{runtimeType:tu,getOverride:x=>x.textColor,hasOverride:x=>!!x.textColor}),"text-halo-color":new Hs(e9.paint_symbol["text-halo-color"]),"text-halo-width":new Hs(e9.paint_symbol["text-halo-width"]),"text-halo-blur":new Hs(e9.paint_symbol["text-halo-blur"]),"text-translate":new Ys(e9.paint_symbol["text-translate"]),"text-translate-anchor":new Ys(e9.paint_symbol["text-translate-anchor"])}),layout:rR};
8let dd=class dd{constructor(x){this.type=x.property.overrides?x.property.overrides.runtimeType:tt,this.defaultValue=x}evaluate(x){if(x.formattedSection){let eu=this.defaultValue.property.overrides;if(eu&&eu.hasOverride(x.formattedSection))return eu.getOverride(x.formattedSection)}return x.feature&&x.featureState?this.defaultValue.evaluate(x.feature,x.featureState):this.defaultValue.property.specification.default}eachChild(x){this.defaultValue.isConstant()||x(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}};Oi(dd,"FormatSectionOverride",{omit:["defaultValue"]});let yd=class yd extends wo{constructor(x){super(x,rB)}recalculate(x,eu){super.recalculate(x,eu),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment"));let ef=this.layout.get("text-writing-mode");if(ef){let x=[];for(let eu of ef)0>x.indexOf(eu)&&x.push(eu);this.layout._values["text-writing-mode"]=x}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(x,eu,ef,em){var e_;let eg=this.layout.get(x).evaluate(eu,{},ef,em),ex=this._unevaluatedLayout._values[x];return ex.isDataDriven()||Nn(ex.value)||!eg?eg:(e_=eu.properties,eg.replace(/{([^{}]+)}/g,(x,eu)=>eu in e_?String(e_[eu]):""))}createBucket(x){return new hd(x)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(let x of rB.paint.overridableProperties){if(!yd.hasPaintOverride(this.layout,x))continue;let eu=this.paint.get(x),ef=new dd(eu),em=new qn(ef,eu.property.specification),e_=null;e_="constant"===eu.value.kind||"source"===eu.value.kind?new Zn("source",em):new Xn("composite",em,eu.value.zoomStops,eu.value._interpolationType),this.paint._values[x]=new Xs(eu.property,e_,eu.parameters)}}_handleOverridablePaintPropertyUpdate(x,eu,ef){return!(!this.layout||eu.isDataDriven()||ef.isDataDriven())&&yd.hasPaintOverride(this.layout,x)}static hasPaintOverride(x,eu){let ef=x.get("text-field"),em=rB.paint.properties[eu],e_=!1,s=x=>{for(let eu of x)if(em.overrides&&em.overrides.hasOverride(eu))return void(e_=!0)};if("constant"===ef.value.kind&&ef.value.value instanceof Be)s(ef.value.value.sections);else if("source"===ef.value.kind){let t=x=>{e_||(x instanceof Le&&De(x.value)===tg?s(x.value.sections):x instanceof Oe?s(x.sections):x.eachChild(t))},x=ef.value;x._styleExpression&&t(x._styleExpression.expression)}return e_}getProgramConfiguration(x){return new po(this,x)}};var rO={paint:new Js({"background-color":new Ys(e9.paint_background["background-color"]),"background-pattern":new Ys(e9.paint_background["background-pattern"]),"background-opacity":new Ys(e9.paint_background["background-opacity"])})},rF={paint:new Js({"raster-opacity":new Ys(e9.paint_raster["raster-opacity"]),"raster-hue-rotate":new Ys(e9.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Ys(e9.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Ys(e9.paint_raster["raster-brightness-max"]),"raster-saturation":new Ys(e9.paint_raster["raster-saturation"]),"raster-contrast":new Ys(e9.paint_raster["raster-contrast"]),"raster-resampling":new Ys(e9.paint_raster["raster-resampling"]),"raster-fade-duration":new Ys(e9.paint_raster["raster-fade-duration"])})};let xd=class xd extends wo{constructor(x){super(x,{}),this.implementation=x}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}isLayerDraped(){return void 0!==this.implementation.renderToTile}shouldRedrape(){return!!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(x){this.implementation.onAdd&&this.implementation.onAdd(x,x.painter.context.gl)}onRemove(x){this.implementation.onRemove&&this.implementation.onRemove(x,x.painter.context.gl)}};var rU={paint:new Js({"sky-type":new Ys(e9.paint_sky["sky-type"]),"sky-atmosphere-sun":new Ys(e9.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new Ys(e9.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new Ys(e9.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new Ys(e9.paint_sky["sky-gradient-radius"]),"sky-gradient":new Ws(e9.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new Ys(e9.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new Ys(e9.paint_sky["sky-atmosphere-color"]),"sky-opacity":new Ys(e9.paint_sky["sky-opacity"])})};function bd(x,eu,ef){let em=[0,0,1],e_=hl([]);return fl(e_,e_,ef?-(x*ek)+Math.PI:x*ek),pl(e_,e_,-(eu*ek)),rl(em,em,e_),Jo(em,em)}
8let rV={circle:class extends wo{constructor(x){super(x,iO)}createBucket(x){return new Su(x)}queryRadius(x){return Fu("circle-radius",this,x)+Fu("circle-stroke-width",this,x)+Ru(this.paint.get("circle-translate"))}queryIntersectsFeature(x,eu,ef,em,e_,eg,ex,ev){let eb=$u(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),eg.angle,x.pixelToTileUnitsFactor),ew=this.paint.get("circle-radius").evaluate(eu,ef)+this.paint.get("circle-stroke-width").evaluate(eu,ef);return qu(x,em,eg,ex,ev,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),eb,ew)}getProgramIds(){return["circle"]}getProgramConfiguration(x){return new po(this,x)}},heatmap:class extends wo{createBucket(x){return new Ku(x)}constructor(x){super(x,iV),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(x){"heatmap-color"===x&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=ec({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(x){return Fu("heatmap-radius",this,x)}queryIntersectsFeature(x,eu,ef,em,e_,eg,ex,ev){let eb=this.paint.get("heatmap-radius").evaluate(eu,ef);return qu(x,em,eg,ex,ev,!0,!0,new eD(0,0),eb)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(x){return new po(this,x)}},hillshade:class extends wo{constructor(x){super(x,iN)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}},fill:class extends wo{constructor(x){super(x,iq)}getProgramIds(){let x=this.paint.get("fill-pattern"),eu=x&&x.constantOr(1),ef=[eu?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&ef.push(eu&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),ef}getProgramConfiguration(x){return new po(this,x)}recalculate(x,eu){super.recalculate(x,eu);let ef=this.paint._values["fill-outline-color"];"constant"===ef.value.kind&&void 0===ef.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(x){return new $c(x)}queryRadius(){return Ru(this.paint.get("fill-translate"))}queryIntersectsFeature(x,eu,ef,em,e_,eg){return!x.queryGeometry.isAboveHorizon&&Mu(ju(x.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),eg.angle,x.pixelToTileUnitsFactor),em)}isTileClipped(){return!0}},"fill-extrusion":class extends wo{constructor(x){super(x,i2)}createBucket(x){return new fh(x)}queryRadius(){return Ru(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(x){return new po(this,x)}queryIntersectsFeature(x,eu,ef,em,e_,eg,ex,ev,eb){var ew,eT,eE,eS;let eM=$u(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),eg.angle,x.pixelToTileUnitsFactor),eI=this.paint.get("fill-extrusion-height").evaluate(eu,ef),eA=this.paint.get("fill-extrusion-base").evaluate(eu,ef),eC=[0,0],ez=ev&&eg.elevation,ek=eg.elevation?eg.elevation.exaggeration():1,eP=x.tile.getBucket(this);if(ez&&eP instanceof fh){let x=eP.centroidVertexArray,eu=eb+1;eu<x.length&&(eC[0]=x.geta_centroid_pos0(eu),eC[1]=x.geta_centroid_pos1(eu))}if(0===eC[0]&&1===eC[1])return!1;"globe"===eg.projection.name&&(em=wh([em],[new eD(0,0),new eD(8192,8192)],x.tileID.canonical).map(x=>x.polygon).flat());let[eL,eR]=(ew=em,eT=ez?ev:null,eE=eg.center.lat,eS=x.tileID.canonical,"globe"===eg.projection.name?function(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT){let eE=[],eS=[],eM=x.projection.upVectorScale(eT,x.center.lat,x.worldSize).metersToTile,eI=[0,0,0,1],eA=[0,0,0,1],m=(x,eu,ef,em)=>{x[0]=eu,x[1]=ef,x[2]=em,x[3]=1},eC=bh();for(let ez of(ef>0&&(ef+=eC),em+=eC,eu)){let eu=[],eC=[];for(let eE of ez){let eS=eE.x+e_.x,ez=eE.y+e_.y,eD=x.projection.projectTilePoint(eS,ez,eT),ek=x.projection.upVector(eT,eE.x,eE.y),eP=ef,eL=em;if(ex){let x=Ch(eS,ez,ef,em,ex,ev,eb,ew);eP+=x.base,eL+=x.top}0!==ef?m(eI,eD.x+ek[0]*eM*eP,eD.y+ek[1]*eM*eP,eD.z+ek[2]*eM*eP):m(eI,eD.x,eD.y,eD.z),m(eA,eD.x+ek[0]*eM*eL,eD.y+ek[1]*eM*eL,eD.z+ek[2]*eM*eL),el(eI,eI,eg),el(eA,eA,eg),eu.push(new zh(eI[0],eI[1],eI[2])),eC.push(new zh(eA[0],eA[1],eA[2]))}eE.push(eu),eS.push(eC)}return[eE,eS]}(eg,ew,eA,eI,eM,ex,eT,eC,ek,eE,eS):eT?function(x,eu,ef,em,e_,eg,ex,ev,eb){let ew=[],eT=[],eE=[0,0,0,1];for(let eS of x){let x=[],eM=[];for(let ew of eS){let eT=ew.x+em.x,eS=ew.y+em.y,eI=Ch(eT,eS,eu,ef,eg,ex,ev,eb);eE[0]=eT,eE[1]=eS,eE[2]=eI.base,eE[3]=1,ul(eE,eE,e_),eE[3]=Math.max(eE[3],1e-5);let eA=new zh(eE[0]/eE[3],eE[1]/eE[3],eE[2]/eE[3]);eE[0]=eT,eE[1]=eS,eE[2]=eI.top,eE[3]=1,ul(eE,eE,e_),eE[3]=Math.max(eE[3],1e-5);let eC=new zh(eE[0]/eE[3],eE[1]/eE[3],eE[2]/eE[3]);x.push(eA),eM.push(eC)}ew.push(x),eT.push(eM)}return[ew,eT]}(ew,eA,eI,eM,ex,eT,eC,ek,eE):function(x,eu,ef,em,e_){let eg=[],ex=[],ev=e_[8]*eu,eb=e_[9]*eu,ew=e_[10]*eu,eT=e_[11]*eu,eE=e_[8]*ef,eS=e_[9]*ef,eM=e_[10]*ef,eI=e_[11]*ef;for(let eu of x){let x=[],ef=[];for(let eg of eu){let eu=eg.x+em.x,ex=eg.y+em.y,eA=e_[0]*eu+e_[4]*ex+e_[12],eC=e_[1]*eu+e_[5]*ex+e_[13],ez=e_[2]*eu+e_[6]*ex+e_[14],eD=e_[3]*eu+e_[7]*ex+e_[15],ek=eA+ev,eP=eC+eb,eL=ez+ew,eR=Math.max(eD+eT,1e-5),eB=eA+eE,eO=eC+eS,eF=ez+eM,eU=Math.max(eD+eI,1e-5);x.push(new zh(ek/eR,eP/eR,eL/eR)),ef.push(new zh(eB/eU,eO/eU,eF/eU))}eg.push(x),ex.push(ef)}return[eg,ex]}(ew,eA,eI,eM,ex)),eB=x.queryGeometry;return function(x,eu,ef){let em=1/0;Mu(ef,eu)&&(em=Eh(ef,eu[0]));for(let e_=0;e_<eu.length;e_++){let eg=eu[e_],ex=x[e_];for(let x=0;x<eg.length-1;x++){let eu=eg[x],e_=[eu,eg[x+1],ex[x+1],ex[x],eu];ku(ef,e_)&&(em=Math.min(em,Eh(ef,e_)))}}return em!==1/0&&em}(eL,eR,eB.isPointQuery()?eB.screenBounds:eB.screenGeometry)}}
8,line:class extends wo{constructor(x){super(x,rr),this.gradientVersion=0}_handleSpecialPaintPropertyUpdate(x){if("line-gradient"===x){let x=this._transitionablePaint._values["line-gradient"].value.expression;this.stepInterpolant=x._styleExpression&&x._styleExpression.expression instanceof kr,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}widthExpression(){return this._transitionablePaint._values["line-width"].value.expression}recalculate(x,eu){super.recalculate(x,eu),this.paint._values["line-floorwidth"]=rn.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,x)}createBucket(x){return new jh(x)}getProgramIds(){return[this.paint.get("line-pattern").constantOr(1)?"linePattern":"line"]}getProgramConfiguration(x){return new po(this,x)}queryRadius(x){var eu,ef;let em=(eu=Fu("line-width",this,x),(ef=Fu("line-gap-width",this,x))>0?ef+2*eu:eu),e_=Fu("line-offset",this,x);return em/2+Math.abs(e_)+Ru(this.paint.get("line-translate"))}queryIntersectsFeature(x,eu,ef,em,e_,eg){var ex,ev;if(x.queryGeometry.isAboveHorizon)return!1;let eb=ju(x.tilespaceGeometry,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),eg.angle,x.pixelToTileUnitsFactor),ew=x.pixelToTileUnitsFactor/2*(ex=this.paint.get("line-width").evaluate(eu,ef),(ev=this.paint.get("line-gap-width").evaluate(eu,ef))>0?ev+2*ex:ex),eT=this.paint.get("line-offset").evaluate(eu,ef);return eT&&(em=function(x,eu){let ef=[],em=new eD(0,0);for(let e_=0;e_<x.length;e_++){let eg=x[e_],ex=[];for(let x=0;x<eg.length;x++){let ef=eg[x-1],e_=eg[x],ev=eg[x+1],eb=0===x?em:e_.sub(ef)._unit()._perp(),ew=x===eg.length-1?em:ev.sub(e_)._unit()._perp(),eT=eb._add(ew)._unit();eT._mult(1/(eT.x*ew.x+eT.y*ew.y)),ex.push(eT._mult(eu)._add(e_))}ef.push(ex)}return ef}(em,eT*x.pixelToTileUnitsFactor)),function(x,eu,ef){for(let em=0;em<eu.length;em++){let e_=eu[em];if(x.length>=3){for(let eu=0;eu<e_.length;eu++)if(Du(x,e_[eu]))return!0}if(function(x,eu,ef){if(x.length>1){if(zu(x,eu))return!0;for(let em=0;em<eu.length;em++)if(Eu(eu[em],x,ef))return!0}for(let em=0;em<x.length;em++)if(Eu(x[em],eu,ef))return!0;return!1}(x,e_,ef))return!0}return!1}(eb,em,ew)}isTileClipped(){return!0}},symbol:yd,background:class extends wo{constructor(x){super(x,rO)}getProgramIds(){return[this.paint.get("background-pattern")?"backgroundPattern":"background"]}},raster:class extends wo{constructor(x){super(x,rF)}getProgramIds(){return["raster"]}},sky:class extends wo{constructor(x){super(x,rU),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(x){"sky-gradient"===x?this._updateColorRamp():"sky-atmosphere-sun"!==x&&"sky-atmosphere-halo-color"!==x&&"sky-atmosphere-color"!==x&&"sky-atmosphere-sun-intensity"!==x||(this._skyboxInvalidated=!0)}_updateColorRamp(){this.colorRamp=ec({expression:this._transitionablePaint._values["sky-gradient"].value.expression,evaluationKey:"skyRadialProgress"}),this.colorRampTexture&&(this.colorRampTexture.destroy(),this.colorRampTexture=null)}needsSkyboxCapture(x){if(this._skyboxInvalidated||!this.skyboxTexture||!this.skyboxGeometry)return!0;if(!this.paint.get("sky-atmosphere-sun")){let eu=x.style.light.properties.get("position");return this._lightPosition.azimuthal!==eu.azimuthal||this._lightPosition.polar!==eu.polar}return!1}getCenter(x,eu){if("atmosphere"===this.paint.get("sky-type")){let ef=this.paint.get("sky-atmosphere-sun"),em=!ef,e_=x.style.light,eg=e_.properties.get("position");return em&&"viewport"===e_.properties.get("anchor")&&U("The sun direction is attached to a light with viewport anchor, lighting may behave unexpectedly."),em?bd(eg.azimuthal,90-eg.polar,eu):bd(ef[0],90-ef[1],eu)}let ef=this.paint.get("sky-gradient-center");return bd(ef[0],90-ef[1],eu)}is3D(){return!1}isSky(){return!0}markSkyboxValid(x){this._skyboxInvalidated=!1,this._lightPosition=x.style.light.properties.get("position")}hasOffscreenPass(){return!0}getProgramIds(){let x=this.paint.get("sky-type");return"atmosphere"===x?["skyboxCapture","skybox"]:"gradient"===x?["skyboxGradient"]:null}}};let _d=class _d{constructor(x,eu,ef,em){this.context=x,this.format=ef,this.texture=x.gl.createTexture(),this.update(eu,em)}update(x,eu,ef){let{width:em,height:e_}=x,{context:eg}=this,{gl:ex}=eg,{HTMLImageElement:ev,HTMLCanvasElement:eb,HTMLVideoElement:ew,ImageData:eE,ImageBitmap:eS}=eT;if(ex.bindTexture(ex.TEXTURE_2D,this.texture),eg.pixelStoreUnpackFlipY.set(!1),eg.pixelStoreUnpack.set(1),eg.pixelStoreUnpackPremultiplyAlpha.set(this.format===ex.RGBA&&(!eu||!1!==eu.premultiply)),ef||this.size&&this.size[0]===em&&this.size[1]===e_){let{x:eu,y:eg}=ef||{x:0,y:0};x instanceof ev||x instanceof eb||x instanceof ew||x instanceof eE||eS&&x instanceof eS?ex.texSubImage2D(ex.TEXTURE_2D,0,eu,eg,ex.RGBA,ex.UNSIGNED_BYTE,x):ex.texSubImage2D(ex.TEXTURE_2D,0,eu,eg,em,e_,ex.RGBA,ex.UNSIGNED_BYTE,x.data)}else this.size=[em,e_],x instanceof ev||x instanceof eb||x instanceof ew||x instanceof eE||eS&&x instanceof eS?ex.texImage2D(ex.TEXTURE_2D,0,this.format,this.format,ex.UNSIGNED_BYTE,x):ex.texImage2D(ex.TEXTURE_2D,0,this.format,em,e_,0,this.format,ex.UNSIGNED_BYTE,x.data);this.useMipmap=!!(eu&&eu.useMipmap&&this.isSizePowerOfTwo()),this.useMipmap&&ex.generateMipmap(ex.TEXTURE_2D)}bind(x,eu){let{context:ef}=this,{gl:em}=ef;em.bindTexture(em.TEXTURE_2D,this.texture),x!==this.filter&&(em.texParameteri(em.TEXTURE_2D,em.TEXTURE_MAG_FILTER,x),em.texParameteri(em.TEXTURE_2D,em.TEXTURE_MIN_FILTER,this.useMipmap?x===em.NEAREST?em.NEAREST_MIPMAP_NEAREST:em.LINEAR_MIPMAP_NEAREST:x
8),this.filter=x),eu!==this.wrap&&(em.texParameteri(em.TEXTURE_2D,em.TEXTURE_WRAP_S,eu),em.texParameteri(em.TEXTURE_2D,em.TEXTURE_WRAP_T,eu),this.wrap=eu)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:x}=this.context;x.deleteTexture(this.texture),this.texture=null}};let Ad=class Ad{constructor(x){this._callback=x,this._triggered=!1,"undefined"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){this._channel=void 0,this._callback=()=>{}}};let Sd=class Sd{constructor(){this.tasks={},this.taskQueue=[],V(["process"],this),this.invoker=new Ad(this.process),this.nextId=0}add(x,eu){let ef=this.nextId++,em=function({type:x,isSymbolTile:eu,zoom:ef}){return ef=ef||0,"message"===x?0:"maybePrepare"!==x||eu?"parseTile"!==x||eu?"parseTile"===x&&eu?300-ef:"maybePrepare"===x&&eu?400-ef:500:200-ef:100-ef}(eu);return 0===em?(N(),x(),{cancel:()=>{}}):(this.tasks[ef]={fn:x,metadata:eu,priority:em,id:ef},this.taskQueue.push(ef),this.invoker.trigger(),{cancel:()=>{delete this.tasks[ef]}})}process(){N();{if(this.taskQueue=this.taskQueue.filter(x=>!!this.tasks[x]),!this.taskQueue.length)return;let x=this.pick();if(null===x)return;let eu=this.tasks[x];if(delete this.tasks[x],this.taskQueue.length&&this.invoker.trigger(),!eu)return;eu.fn()}}pick(){let x=null,eu=1/0;for(let ef=0;ef<this.taskQueue.length;ef++){let em=this.tasks[this.taskQueue[ef]];em.priority<eu&&(eu=em.priority,x=ef)}if(null===x)return null;let ef=this.taskQueue[x];return this.taskQueue.splice(x,1),ef}remove(){this.invoker.remove()}};let kd=class kd{constructor(x){this._stringToNumber={},this._numberToString=[];for(let eu=0;eu<x.length;eu++){let ef=x[eu];this._stringToNumber[ef]=eu,this._numberToString[eu]=ef}}encode(x){return this._stringToNumber[x]}decode(x){return this._numberToString[x]}};let rN=["tile","layer","source","sourceLayer","state"];let Md=class Md{constructor(x,eu,ef,em,e_){this.type="Feature",this._vectorTileFeature=x,this._z=eu,this._x=ef,this._y=em,this.properties=x.properties,this.id=e_}get geometry(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._x,this._y,this._z).geometry),this._geometry}set geometry(x){this._geometry=x}toJSON(){let x={type:"Feature",state:void 0,geometry:this.geometry,properties:this.properties};for(let eu of(void 0!==this.id&&(x.id=this.id),rN))void 0!==this[eu]&&(x[eu]=this[eu]);return x}};let rj=new Uint16Array(8184);for(let x=0;x<2046;x++){let eu=x+2,ef=0,em=0,e_=0,eg=0,ex=0,ev=0;for(1&eu?e_=eg=ex=32:ef=em=ev=32;(eu>>=1)>1;){let x=ef+e_>>1,eb=em+eg>>1;1&eu?(e_=ef,eg=em,ef=ex,em=ev):(ef=e_,em=eg,e_=ex,eg=ev),ex=x,ev=eb}let eb=4*x;rj[eb+0]=ef,rj[eb+1]=em,rj[eb+2]=e_,rj[eb+3]=eg}let rG=new Uint16Array(2178),rZ=new Uint8Array(1089),r$=new Uint16Array(1089);function Dd(x){return 0===x?-.03125:32===x?.03125:0}var rq=na([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);let rW={type:2,extent:8192,loadGeometry:()=>[[new eD(0,0),new eD(8193,0),new eD(8193,8193),new eD(0,8193),new eD(0,0)]]};let Fd=class Fd{constructor(x,eu,ef,em,e_){this.tileID=x,this.uid=E(),this.uses=0,this.tileSize=eu,this.tileZoom=ef,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=e_,this.expiredRequestCount=0,this.state="loading",em&&em.transform&&(this.projection=em.transform.projection)}registerFadeDuration(x){let eu=x+this.timeAdded;eu<e8.now()||this.fadeEndTime&&eu<this.fadeEndTime||(this.fadeEndTime=eu)}wasRequested(){return"errored"===this.state||"loaded"===this.state||"reloading"===this.state}get tileTransform(){return this._tileTransform||(this._tileTransform=Vf(this.tileID.canonical,this.projection)),this._tileTransform}loadVectorData(x,eu,ef){if(this.unloadVectorData(),this.state="loaded",x){for(let em in x.featureIndex&&(this.latestFeatureIndex=x.featureIndex,x.rawTileData?(this.latestRawTileData=x.rawTileData,this.latestFeatureIndex.rawTileData=x.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=x.collisionBoxArray,this.buckets=function(x,eu){let ef={};if(!eu)return ef;for(let em of x){let x=em.layerIds.map(x=>
8eu.getLayer(x)).filter(Boolean);if(0!==x.length)for(let eu of(em.layers=x,em.stateDependentLayerIds&&(em.stateDependentLayers=em.stateDependentLayerIds.map(eu=>x.filter(x=>x.id===eu)[0])),x))ef[eu.id]=em}return ef}(x.buckets,eu.style),this.hasSymbolBuckets=!1,this.buckets){let x=this.buckets[em];if(x instanceof hd){if(this.hasSymbolBuckets=!0,!ef)break;x.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let x in this.buckets){let eu=this.buckets[x];if(eu instanceof hd&&eu.hasRTLText){this.hasRTLText=!0,t2.isLoading()||t2.isLoaded()||"deferred"!==Fs()||Rs();break}}for(let x in this.queryPadding=0,this.buckets){let ef=this.buckets[x];this.queryPadding=Math.max(this.queryPadding,eu.style.getLayer(x).queryRadius(ef))}x.imageAtlas&&(this.imageAtlas=x.imageAtlas),x.glyphAtlasImage&&(this.glyphAtlasImage=x.glyphAtlasImage),x.lineAtlas&&(this.lineAtlas=x.lineAtlas)}else this.collisionBoxArray=new Ea}unloadVectorData(){if(this.hasData()){for(let x in this.buckets)this.buckets[x].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(x){return this.buckets[x.id]}upload(x){for(let eu in this.buckets){let ef=this.buckets[eu];ef.uploadPending()&&ef.upload(x)}let eu=x.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new _d(x,this.imageAtlas.image,eu.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new _d(x,this.glyphAtlasImage,eu.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new _d(x,this.lineAtlas.image,eu.ALPHA),this.lineAtlas.uploaded=!0)}prepare(x){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(x,this.imageAtlasTexture)}queryRenderedFeatures(x,eu,ef,em,e_,eg,ex,ev){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:em,pixelPosMatrix:ex,transform:eg,params:e_,tileTransform:this.tileTransform},x,eu,ef):{}}querySourceFeatures(x,eu){let ef=this.latestFeatureIndex;if(!ef||!ef.rawTileData)return;let em=ef.loadVTLayers(),e_=eu?eu.sourceLayer:"",eg=em._geojsonTileLayer||em[e_];if(!eg)return;let ex=ai(eu&&eu.filter),{z:ev,x:eb,y:ew}=this.tileID.canonical,eT={z:ev,x:eb,y:ew};for(let eu=0;eu<eg.length;eu++){let em=eg.feature(eu);if(ex.needGeometry){let x=wu(em,!0);if(!ex.filter(new $s(this.tileID.overscaledZ),x,this.tileID.canonical))continue}else if(!ex.filter(new $s(this.tileID.overscaledZ),em))continue;let eE=ef.getId(em,e_),eS=new Md(em,ev,eb,ew,eE);eS.tile=eT,x.push(eS)}}hasData(){return"loaded"===this.state||"reloading"===this.state||"expired"===this.state}patternsLoaded(){return!!this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(x){let eu=this.expirationTime;if(x.cacheControl){let eu=G(x.cacheControl);eu["max-age"]&&(this.expirationTime=Date.now()+1e3*eu["max-age"])}else x.expires&&(this.expirationTime=new Date(x.expires).getTime());if(this.expirationTime){let x=Date.now(),ef=!1;if(this.expirationTime>x)ef=!1;else if(eu){if(this.expirationTime<eu)ef=!0;else{let em=this.expirationTime-eu;em?this.expirationTime=x+Math.max(em,3e4):ef=!0}}else ef=!0;ef?(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(),2147483647)}setFeatureState(x,eu){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||0===Object.keys(x).length||!eu)return;let ef=this.latestFeatureIndex.loadVTLayers(),em=eu.style.listImages();for(let e_ in this.buckets){if(!eu.style.hasLayer(e_))continue;let eg=this.buckets[e_],ex=eg.layers[0].sourceLayer||"_geojsonTileLayer",ev=ef[ex],eb=x[ex];if(!ev||!eb||0===Object.keys(eb).length)continue;if(eg.update(eb,ev,em,this.imageAtlas&&this.imageAtlas.patternPositions||{}),eg instanceof jh||eg instanceof $c){let x=eu.style._getSourceCache(eg.layers[0].source);eu._terrain&&eu._terrain.enabled&&x&&eg.programConfigurations.needsUpload&&eu._terrain._clearRenderCacheForTile(x.id,this.tileID)}let ew=eu&&eu.style&&eu.style.getLayer(e_);ew&&(this.queryPadding=Math.max(this.queryPadding,ew.queryRadius(eg)))}}holdingForFade(){return void 0!==this.symbolFadeHoldUntil}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<e8.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0}setHoldDuration(x){this.symbolFadeHoldUntil=e8.now()+x}setTexture(x,eu){let ef=eu.context,em=ef.gl;this.texture=this.texture||eu.getTileTexture(x.width),this.texture?this.texture.update(x,{useMipmap:!0}):(this.texture=new _d(ef,x,em.RGBA,{useMipmap:!0}),this.texture.bind(em.LINEAR,em.CLAMP_TO_EDGE))}
8setDependencies(x,eu){let ef={};for(let x of eu)ef[x]=!0;this.dependencies[x]=ef}hasDependency(x,eu){for(let ef of x){let x=this.dependencies[ef];if(x){for(let ef of eu)if(x[ef])return!0}}return!1}clearQueryDebugViz(){}_makeDebugTileBoundsBuffers(x,eu){if(!eu||"mercator"===eu.name||this._tileDebugBuffer)return;let ef=bu(rW,this.tileID.canonical,this.tileTransform)[0],em=new sa,e_=new Ta;for(let x=0;x<ef.length;x++){let{x:eu,y:eg}=ef[x];em.emplaceBack(eu,eg),e_.emplaceBack(x)}e_.emplaceBack(0),this._tileDebugIndexBuffer=x.createIndexBuffer(e_),this._tileDebugBuffer=x.createVertexBuffer(em,iE.members),this._tileDebugSegments=So.simpleSegment(0,0,em.length,e_.length)}_makeTileBoundsBuffers(x,eu){let ef,em;if(this._tileBoundsBuffer||!eu||"mercator"===eu.name)return;let e_=bu(rW,this.tileID.canonical,this.tileTransform)[0];if(this.isRaster){let x=function(x,eu){let ef=Vf(x,eu),em=Math.pow(2,x.z);for(let e_=0;e_<33;e_++)for(let eg=0;eg<33;eg++){let ex=ou((x.x+(eg+Dd(eg))/32)/em),ev=lu((x.y+(e_+Dd(e_))/32)/em),eb=eu.project(ex,ev),ew=33*e_+eg;rG[2*ew+0]=Math.round((eb.x*ef.scale-ef.x)*8192),rG[2*ew+1]=Math.round((eb.y*ef.scale-ef.y)*8192)}rZ.fill(0),r$.fill(0);for(let x=2045;x>=0;x--){let eu=4*x,ef=rj[eu+0],em=rj[eu+1],e_=rj[eu+2],eg=rj[eu+3],ex=ef+e_>>1,ev=em+eg>>1,eb=ex+ev-em,ew=ev+ef-ex,eT=33*em+ef,eE=33*eg+e_,eS=33*ev+ex,eM=Math.hypot((rG[2*eT+0]+rG[2*eE+0])/2-rG[2*eS+0],(rG[2*eT+1]+rG[2*eE+1])/2-rG[2*eS+1])>=16;if(rZ[eS]=rZ[eS]||(eM?1:0),x<1022){let x=(em+ew>>1)*33+(ef+eb>>1),eu=(eg+ew>>1)*33+(e_+eb>>1);rZ[eS]=rZ[eS]||rZ[x]||rZ[eu]}}let e_=new oa,eg=new wa,ex=0;function o(x,eu){let ef=33*eu+x;return 0===r$[ef]&&(e_.emplaceBack(rG[2*ef+0],rG[2*ef+1],8192*x/32,8192*eu/32),r$[ef]=++ex),r$[ef]-1}function l(x,eu,ef,em,e_,ex){let ev=x+ef>>1,eb=eu+em>>1;if(Math.abs(x-e_)+Math.abs(eu-ex)>1&&rZ[33*eb+ev])l(e_,ex,x,eu,ev,eb),l(ef,em,e_,ex,ev,eb);else{let ev=o(x,eu),eb=o(ef,em),ew=o(e_,ex);eg.emplaceBack(ev,eb,ew)}}return l(0,0,32,32,32,0),l(32,32,0,0,0,32),{vertices:e_,indices:eg}}(this.tileID.canonical,eu);ef=x.vertices,em=x.indices}else{for(let{x:x,y:eu}of(ef=new oa,em=new wa,e_))ef.emplaceBack(x,eu,0,0);let x=iZ(ef.int16,void 0,4);for(let eu=0;eu<x.length;eu+=3)em.emplaceBack(x[eu],x[eu+1],x[eu+2])}this._tileBoundsBuffer=x.createVertexBuffer(ef,rq.members),this._tileBoundsIndexBuffer=x.createIndexBuffer(em),this._tileBoundsSegments=So.simpleSegment(0,0,ef.length,em.length)}_makeGlobeTileDebugBuffers(x,eu){let ef;let em=eu.projection;if(!em||"globe"!==em.name||eu.freezeTileCoverage)return;let e_=this.tileID.canonical,eg=Gl(Vl(e_,eu)),ex=Kl(eu.zoom);ex>0&&(ef=Co(new Float64Array(16),eu.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(x,e_,eu,eg,ef,ex),this._makeGlobeTileDebugTextBuffer(x,e_,eu,eg,ef,ex)}_globePoint(x,eu,ef,em,e_,eg,ex){let ev=Ol(x,eu,ef);if(eg){let e_=1<<ef.z,eb=iu(em.center.lng),ew=su(em.center.lat),eT=(ef.x+.5)/e_-eb,eE=0;eT>.5?eE=-1:eT<-.5&&(eE=1);let eS=(x/8192+ef.x)/e_+eE,eM=(eu/8192+ef.y)/e_;eS=(eS-eb)*em._pixelsPerMercatorPixel+eb,eM=(eM-ew)*em._pixelsPerMercatorPixel+ew;let eI=[eS*em.worldSize,eM*em.worldSize,0];el(eI,eI,eg),ev=Dl(ev,eI,ex)}return el(ev,ev,e_)}_makeGlobeTileDebugBorderBuffer(x,eu,ef,em,e_,eg){let ex=new sa,ev=new Ta,eb=new aa,u=(x,ew,eT,eE,eS)=>{let eM=(eT-x)/(eS-1),eI=(eE-ew)/(eS-1),eA=ex.length;for(let eT=0;eT<eS;eT++){let eE=x+eT*eM,eS=ew+eT*eI;ex.emplaceBack(eE,eS);let eC=this._globePoint(eE,eS,eu,ef,em,e_,eg);eb.emplaceBack(eC[0],eC[1],eC[2]),ev.emplaceBack(eA+eT)}};u(0,0,8192,0,16),u(8192,0,8192,8192,16),u(8192,8192,0,8192,16),u(0,8192,0,0,16),this._tileDebugIndexBuffer=x.createIndexBuffer(ev),this._tileDebugBuffer=x.createVertexBuffer(ex,iE.members),this._globeTileDebugBorderBuffer=x.createVertexBuffer(eb,iT.members),this._tileDebugSegments=So.simpleSegment(0,0,ex.length,ev.length)}_makeGlobeTileDebugTextBuffer(x,eu,ef,em,e_,eg){let ex=new sa,ev=new wa,eb=new aa;ev.reserve(32),ex.reserve(25),eb.reserve(25);let c=(x,eu)=>25*x+eu;for(let x=0;x<25;x++){let ev=2048*x;for(let x=0;x<25;x++){let ew=2048*x;ex.emplaceBack(ew,ev);let eT=this._globePoint(ew,ev,eu,ef,em,e_,eg);eb.emplaceBack(eT[0],eT[1],eT[2])}}for(let x=0;x<4;x++)for(let eu=0;eu<4;eu++){let ef=c(x,eu),em=c(x,eu+1),e_=c(x+1,eu),eg=c(x+1,eu+1);ev.emplaceBack(ef,em,e_),ev.emplaceBack(e_,em,eg)}this._tileDebugTextIndexBuffer=x.createIndexBuffer(ev),this._tileDebugTextBuffer=x.createVertexBuffer(ex,iE.members),this._globeTileDebugTextBuffer=x.createVertexBuffer(eb,iT.members),this._tileDebugTextSegments=So.simpleSegment(0,0,25,32)}};let Rd=class Rd{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(x,eu,ef){let em=String(eu);if(this.stateChanges[x]=this.stateChanges[x]||{},this.stateChanges[x][em]=this.stateChanges[x][em]||{},z(this.stateChanges[x][em],ef),null===this.deletedStates[x])for(let eu in this.deletedStates[x]={},this.state[x])eu!==em&&(this.deletedStates[x][eu]=null);else if(this.deletedStates[x]&&null===this.deletedStates[x][em])for(let eu in this.deletedStates[x][em]={},this.state[x][em])ef[eu]||(this.deletedStates[x][em][eu]=null);else for(let eu in ef)this.deletedStates[x]&&this.deletedStates[x][em]&&null===this.deletedStates[x][em][eu]&&delete this.deletedStates[x][em][eu]}removeFeatureState(x,eu,ef){if(null===this.deletedStates[x])return;let em=String(eu);if(this.deletedStates[x]=this.deletedStates[x]||{},ef&&void 0!==eu)null!==this.deletedStates[x][em]&&(this.deletedStates[x][em]=this.deletedStates[x][em]||{},this.deletedStates[x][em][ef]=null);else if(void 0!==eu){if(this.stateChanges[x]&&this.stateChanges[x][em])for(ef in this.deletedStates[x][em]={},this.stateChanges[x][em])this.deletedStates[x][em][ef]=null;else this.deletedStates[x][em]=null}else this.deletedStates[x]=null}getState(x,eu){let ef=String(eu),em=z({},(this.state[x]||{})[ef],(this.stateChanges[x]||{})[ef]);if(null===this.deletedStates[x])return{};if(this.deletedStates[x]){let ef=this.deletedStates[x][eu];if(null===ef)return{};for(let x in ef)delete em[x]}return em}initializeTileState(x,eu){x.setFeatureState(this.state,eu)}coalesceChanges(x,eu){let ef={};for(let x in this.stateChanges){this.state[x]=this.state[x]||{};let eu={};for(let ef in this.stateChanges[x])this.state[x][ef]||(this.state[x][ef]={}),z(this.state[x][ef],this.stateChanges[x][ef]),eu[ef]=this.state[x][ef];ef[x]=eu}for(let x in this.deletedStates){this.state[x]=this.state[x]||{};let eu={};if(null===this.deletedStates[x])for(let ef in this.state[x])eu[ef]={},this.state[x][ef]={};else for(let ef in this.deletedStates[x]){if(null===this.deletedStates[x][ef])this.state[x][ef]={};else if(this.state[x][ef])for(let eu of Object.keys(this.deletedStates[x][ef]))delete this.state[x][ef][eu];eu[ef]=this.state[x][ef]}ef[x]=ef[x]||{},z(ef[x],eu)}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(ef).length)for(let em in x)x[em].setFeatureState(ef,eu)}};
8let jd=class jd{constructor(x){this.size=x,this.minimums=[],this.maximums=[],this.leaves=[]}getElevation(x,eu){let ef=this.toIdx(x,eu);return{min:this.minimums[ef],max:this.maximums[ef]}}isLeaf(x,eu){return this.leaves[this.toIdx(x,eu)]}toIdx(x,eu){return eu*this.size+x}};function $d(x,eu,ef,em){let e_=0,eg=Number.MAX_VALUE;for(let ex=0;ex<3;ex++)if(1e-15>Math.abs(em[ex])){if(ef[ex]<x[ex]||ef[ex]>eu[ex])return null}else{let ev=1/em[ex],eb=(x[ex]-ef[ex])*ev,ew=(eu[ex]-ef[ex])*ev;if(eb>ew){let x=eb;eb=ew,ew=x}if(eb>e_&&(e_=eb),ew<eg&&(eg=ew),e_>eg)return null}return e_}function Ud(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT){let eE=em-x,eS=e_-eu,eM=eg-ef,eI=ex-x,eA=ev-eu,eC=eb-ef,ez=eT[1]*eC-eT[2]*eA,eD=eT[2]*eI-eT[0]*eC,ek=eT[0]*eA-eT[1]*eI,eP=eE*ez+eS*eD+eM*ek;if(1e-15>Math.abs(eP))return null;let eL=1/eP,eR=ew[0]-x,eB=ew[1]-eu,eO=ew[2]-ef,eF=(eR*ez+eB*eD+eO*ek)*eL;if(eF<0||eF>1)return null;let eU=eB*eM-eO*eS,eV=eO*eE-eR*eM,eN=eR*eS-eB*eE,ej=(eT[0]*eU+eT[1]*eV+eT[2]*eN)*eL;return ej<0||eF+ej>1?null:(eI*eU+eA*eV+eC*eN)*eL}function qd(x,eu,ef,em,e_,eg,ex,ev,eb){let ew=1<<ef,eT=eg-em,eE=ex-e_;ev[0]=(x+0)/ew*eT+em,ev[1]=(eu+0)/ew*eE+e_,eb[0]=(x+1)/ew*eT+em,eb[1]=(eu+1)/ew*eE+e_}let Nd=class Nd{constructor(x){if(this.maximums=[],this.minimums=[],this.leaves=[],this.childOffsets=[],this.nodeCount=0,this.dem=x,this._siblingOffset=[[0,0],[1,0],[0,1],[1,1]],!this.dem)return;let eu=function(x){let eu=Math.ceil(Math.log2(x.dim/8)),ef=[],em=
8Math.ceil(Math.pow(2,eu)),e_=1/em,s=(x,eu,ef,em,e_)=>{let eg=em?1:0;e_[0]=x*ef,e_[1]=eu*ef,e_[2]=(x+1)*ef-eg,e_[3]=(eu+1)*ef-eg},eg=new jd(em),ex=[];for(let eu=0;eu<em*em;eu++){s(eu%em,Math.floor(eu/em),e_,!1,ex);let ef=Zd(ex[0],ex[1],x),ev=Zd(ex[2],ex[1],x),eb=Zd(ex[2],ex[3],x),ew=Zd(ex[0],ex[3],x);eg.minimums.push(Math.min(ef,ev,eb,ew)),eg.maximums.push(Math.max(ef,ev,eb,ew)),eg.leaves.push(1)}for(ef.push(eg),em/=2;em>=1;em/=2){let x=ef[ef.length-1];eg=new jd(em);for(let eu=0;eu<em*em;eu++){s(eu%em,Math.floor(eu/em),2,!0,ex);let ef=x.getElevation(ex[0],ex[1]),e_=x.getElevation(ex[2],ex[1]),ev=x.getElevation(ex[2],ex[3]),eb=x.getElevation(ex[0],ex[3]),ew=x.isLeaf(ex[0],ex[1]),eT=x.isLeaf(ex[2],ex[1]),eE=x.isLeaf(ex[2],ex[3]),eS=x.isLeaf(ex[0],ex[3]),eM=Math.min(ef.min,e_.min,ev.min,eb.min),eI=Math.max(ef.max,e_.max,ev.max,eb.max),eA=ew&&eT&&eE&&eS;eg.maximums.push(eI),eg.minimums.push(eM),eg.leaves.push(eI-eM<=5&&eA?1:0)}ef.push(eg)}return ef}(this.dem),ef=eu.length-1,em=eu[ef];this._addNode(em.minimums[0],em.maximums[0],em.leaves[0]),this._construct(eu,0,0,ef,0)}raycastRoot(x,eu,ef,em,e_,eg,ex=1){return $d([x,eu,-100],[ef,em,this.maximums[0]*ex],e_,eg)}raycast(x,eu,ef,em,e_,eg,ex=1){if(!this.nodeCount)return null;let ev=this.raycastRoot(x,eu,ef,em,e_,eg,ex);if(null==ev)return null;let eb=[],ew=[],eT=[],eE=[],eS=[{idx:0,t:ev,nodex:0,nodey:0,depth:0}];for(;eS.length>0;){let{idx:ev,t:eA,nodex:eC,nodey:ez,depth:eD}=eS.pop();if(this.leaves[ev]){qd(eC,ez,eD,x,eu,ef,em,eT,eE);let ev=1<<eD,eb=(eC+0)/ev,ew=(eC+1)/ev,eS=(ez+0)/ev,ek=(ez+1)/ev,eP=Zd(eb,eS,this.dem)*ex,eL=Zd(ew,eS,this.dem)*ex,eR=Zd(ew,ek,this.dem)*ex,eB=Zd(eb,ek,this.dem)*ex,eO=Ud(eT[0],eT[1],eP,eE[0],eT[1],eL,eE[0],eE[1],eR,e_,eg),eF=Ud(eE[0],eE[1],eR,eT[0],eE[1],eB,eT[0],eT[1],eP,e_,eg),eU=Math.min(null!==eO?eO:Number.MAX_VALUE,null!==eF?eF:Number.MAX_VALUE);if(eU!==Number.MAX_VALUE)return eU;{var eM,eI;let x=Wo([],e_,eg,eA);if(Gd(eP,eL,eB,eR,(x[0]-(eM=eT[0]))/(eE[0]-eM),(x[1]-(eI=eT[1]))/(eE[1]-eI))>=x[2])return eA}continue}let ek=0;for(let eS=0;eS<this._siblingOffset.length;eS++){qd((eC<<1)+this._siblingOffset[eS][0],(ez<<1)+this._siblingOffset[eS][1],eD+1,x,eu,ef,em,eT,eE),eT[2]=-100,eE[2]=this.maximums[this.childOffsets[ev]+eS]*ex;let eM=$d(eT,eE,e_,eg);if(null!=eM){eb[eS]=eM;let x=!1;for(let eu=0;eu<ek&&!x;eu++)eM>=eb[ew[eu]]&&(ew.splice(eu,0,eS),x=!0);x||(ew[ek]=eS),ek++}}for(let x=0;x<ek;x++){let eu=ew[x];eS.push({idx:this.childOffsets[ev]+eu,t:eb[eu],nodex:(eC<<1)+this._siblingOffset[eu][0],nodey:(ez<<1)+this._siblingOffset[eu][1],depth:eD+1})}}return null}_addNode(x,eu,ef){return this.minimums.push(x),this.maximums.push(eu),this.leaves.push(ef),this.childOffsets.push(0),this.nodeCount++}_construct(x,eu,ef,em,e_){if(1===x[em].isLeaf(eu,ef))return;this.childOffsets[e_]||(this.childOffsets[e_]=this.nodeCount);let eg=em-1,ex=x[eg],ev=0,eb=0;for(let x=0;x<this._siblingOffset.length;x++){let em=2*eu+this._siblingOffset[x][0],e_=2*ef+this._siblingOffset[x][1],eg=ex.getElevation(em,e_),ew=ex.isLeaf(em,e_),eT=this._addNode(eg.min,eg.max,ew);ew&&(ev|=1<<x),eb||(eb=eT)}for(let em=0;em<this._siblingOffset.length;em++)ev&1<<em||this._construct(x,2*eu+this._siblingOffset[em][0],2*ef+this._siblingOffset[em][1],eg,eb+em)}};function Gd(x,eu,ef,em,e_,eg){return Mr(Mr(x,ef,eg),Mr(eu,em,eg),e_)}function Zd(x,eu,ef){let em=ef.dim,e_=S(x*em-.5,0,em-1),eg=S(eu*em-.5,0,em-1),ex=Math.floor(e_),ev=Math.floor(eg),eb=Math.min(ex+1,em-1),ew=Math.min(ev+1,em-1);return Gd(ef.get(ex,ev),ef.get(eb,ev),ef.get(ex,ew),ef.get(eb,ew),e_-ex,eg-ev)}let rX={mapbox:[6553.6,25.6,.1,1e4],terrarium:[256,1,1/256,32768]};let Hd=class Hd{get tree(){return this._tree||this._buildQuadTree(),this._tree}constructor(x,eu,ef,em=!1,e_=!1){if(this.uid=x,eu.height!==eu.width)throw RangeError("DEM tiles must be square");if(ef&&"mapbox"!==ef&&"terrarium"!==ef)return U(`"${ef}" is not a valid encoding type. Valid types include "mapbox" and "terrarium".`);this.stride=eu.height;let eg=this.dim=eu.height-2,ex=new Uint32Array(eu.data.buffer);if(this.pixels=new Uint8Array(eu.data.buffer),this.encoding=ef||"mapbox",this.borderReady=em,!em){for(let x=0;x<eg;x++)ex[this._idx(-1,x)]=ex[this._idx(0,x)],ex[this._idx(eg,x)]=ex[this._idx(eg-1,x)],ex[this._idx(x,-1)]=ex[this._idx(x,0)],ex[this._idx(x,eg)]=ex[this._idx(x,eg-1)];ex[this._idx(-1,-1)]=ex[this._idx(0,0)],ex[this._idx(eg,-1)]=ex[this._idx(eg-1,0)],ex[this._idx(-1,eg)]=ex[this._idx(0,eg-1)],ex[this._idx(eg,eg)]=ex[this._idx(eg-1,eg-1)],e_&&this._buildQuadTree()}}_buildQuadTree(){this._tree=new Nd(this)}get(x,eu,ef=!1){ef&&(x=S(x,-1,this.dim),eu=S(eu,-1,this.dim));let em=4*this._idx(x,eu);return("terrarium"===this.encoding?function(x,eu,ef){return 256*x+eu+ef/256-32768}:function(x,eu,ef){return(256*x*256+256*eu+ef)/10-1e4})(this.pixels[em],this.pixels[em+1],this.pixels[em+2])}static getUnpackVector(x){return rX[x]}get unpackVector(){return rX[this.encoding]}_idx(x,eu){if(x<-1||x>=this.dim+1||eu<-1||eu>=this.dim+1)throw RangeError("out of range source coordinates for DEM data");return(eu+1)*this.stride+(x+1)}static pack(x,eu){let ef=[0,0,0,0],em=Hd.getUnpackVector(eu),e_=Math.floor((x+em[3])/em[2]);return ef[2]=e_%256,e_=Math.floor(e_/256),ef[1]=e_%256,e_=Math.floor(e_/256),ef[0]=e_,ef}getPixels(){return new Qu({width:this.stride,height:this.stride},this.pixels)}backfillBorder(x,eu,ef){if(this.dim!==x.dim)throw Error("dem dimension mismatch");let em=eu*this.dim,e_=eu*this.dim+this.dim,eg=ef*this.dim,ex=ef*this.dim+this.dim;switch(eu){case -1:em=e_-1;break;case 1:e_=em+1}switch(ef){case -1:eg=ex-1;break;case 1:ex=eg+1}let ev=-eu*this.dim,eb=-ef*this.dim;for(let eu=eg;eu<ex;eu++)for(let ef=em;ef<e_;ef++){let em=4*this._idx(ef,eu),e_=4*this._idx(ef+ev,eu+eb);this.pixels[em+0]=x.pixels[e_+0],this.pixels[em+1]=x.pixels[e_+1],this.pixels[em+2]=x.pixels[e_+2],this.pixels[em+3]=x.pixels[e_+3]}}onDeserialize(){this._tree&&(this._tree.dem=this)}};Oi(Hd,"DEMData"),Oi(Nd,"DemMinMaxQuadTree",{omit:["dem"]});let Wd=class Wd{constructor(x,eu){this.max=x,this.onRemove=eu,this.reset()}reset(){for(let x in this.data)for(let eu of this.data[x])eu.timeout&&clearTimeout(eu.timeout),this.onRemove(eu.value);return this.data={},this.order=[],this}add(x,eu,ef){let em=x.wrapped().key;void 0===this.data[em]&&(this.data[em]=[]);let e_={value:eu,timeout:void 0};if(void 0!==ef&&(e_.timeout=setTimeout(()=>{this.remove(x,e_)},ef)),this.data[em].push(e_),this.order.push(em),this.order.length>this.max){let x=this._getAndRemoveByKey(this.order[0]);x&&this.onRemove(x)}return this}has(x){return x.wrapped().key in this.data}getAndRemove(x){return this.has(x)?this._getAndRemoveByKey(x.wrapped().key):null}_getAndRemoveByKey(x){let eu=this.data[x].shift();return eu.timeout&&clearTimeout(eu.timeout),0===this.data[x].length&&delete this.data[x],this.order.splice(this.order.indexOf(x),1),eu.value}getByKey(x){let eu=this.data[x];return eu?eu[0].value:null}get(x){return this.has(x)?this.data[x.wrapped().key][0].value:null}remove(x,eu){if(!this.has(x))return this;let ef=x.wrapped().key,em=void 0===eu?0:this.data[ef].indexOf(eu),e_=this.data[ef][em];return this.data[ef].splice(em,1),e_.timeout&&clearTimeout(e_.timeout),0===this.data[ef].length&&delete this.data[ef],this.onRemove(e_.value),this.order.splice(this.order.indexOf(ef),1),this}setMaxSize(x){for(this.max=x;this.order.length>this.max;){let x=this._getAndRemoveByKey(this.order[0]);x&&this.onRemove(x)}return this}filter(x){let eu=[];for(let ef in this.data)for(let em of this.data[ef])x(em.value)||eu.push(em);for(let x of eu)this.remove(x.value.tileID,x)}};let Jd=class Jd{constructor(x,eu,ef){this.func=x,this.mask=eu,this.range=ef}};Jd.ReadOnly=!1,Jd.ReadWrite=!0,Jd.disabled=new Jd(519,Jd.ReadOnly,[0,1]);let ty=class ty{constructor(x,eu,ef,em,e_,eg){this.test=x,this.ref=eu,this.mask=ef,this.fail=em,this.depthFail=e_,this.pass=eg}};ty.disabled=new ty({func:519,mask:0},0,0,7680,7680,7680);let ey=class ey{constructor(x,eu,ef){this.blendFunction=x,this.blendColor=eu,this.mask=ef}};ey.Replace=[1,0],ey.disabled=new ey(ey.Replace,Ie.transparent,[!1,!1,!1,!1]),ey.unblended=new ey(ey.Replace,Ie.transparent,[!0,!0,!0,!0]),ey.alphaBlended=new ey([1,771],Ie.transparent,[!0,!0,!0,!0]);let iy=class iy{constructor(x,eu,ef){this.enable=x,this.mode=eu,this.frontFace=ef}};iy.disabled=new iy(!1,1029,2305),iy.backCCW=new iy(!0,1029,2305),iy.backCW=new iy(!0,1029,2304),iy.frontCW=new iy(!0,1028,2304),iy.frontCCW=new iy(!0,1028,2305);let sy=class sy extends Yt{constructor(x,eu,ef){super(),this.id=x,this._onlySymbols=ef,eu.on("data",x=>{"source"===x.dataType&&"metadata"===x.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===x.dataType&&"content"===x.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform))}),eu.on("error",()=>{this._sourceErrored=!0}),this._source=eu,this._tiles={},this._cache=new Wd(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={}
8,this._minTileCacheSize=eu.minTileCacheSize,this._maxTileCacheSize=eu.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new Rd,this._isRaster="raster"===this._source.type||"raster-dem"===this._source.type||"custom"===this._source.type&&"raster"===this._source._dataType}onAdd(x){this.map=x,this._minTileCacheSize=void 0===this._minTileCacheSize&&x?x._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=void 0===this._maxTileCacheSize&&x?x._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(let x in this._tiles){let eu=this._tiles[x];if("loaded"!==eu.state&&"errored"!==eu.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let x=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,x&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(x,eu){return x.isSymbolTile=this._onlySymbols,this._source.loadTile(x,eu)}_unloadTile(x){if(this._source.unloadTile)return this._source.unloadTile(x,()=>{})}_abortTile(x){if(this._source.abortTile)return this._source.abortTile(x,()=>{})}serialize(){return this._source.serialize()}prepare(x){for(let eu in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){let ef=this._tiles[eu];ef.upload(x),ef.prepare(this.map.style.imageManager)}}getIds(){return T(this._tiles).map(x=>x.tileID).sort(ay).map(x=>x.key)}getRenderableIds(x){let eu=[];for(let ef in this._tiles)this._isIdRenderable(+ef,x)&&eu.push(this._tiles[ef]);return x?eu.sort((x,eu)=>{let ef=x.tileID,em=eu.tileID,e_=new eD(ef.canonical.x,ef.canonical.y)._rotate(this.transform.angle),eg=new eD(em.canonical.x,em.canonical.y)._rotate(this.transform.angle);return ef.overscaledZ-em.overscaledZ||eg.y-e_.y||eg.x-e_.x}).map(x=>x.tileID.key):eu.map(x=>x.tileID).sort(ay).map(x=>x.key)}hasRenderableParent(x){let eu=this.findLoadedParent(x,0);return!!eu&&this._isIdRenderable(eu.tileID.key)}_isIdRenderable(x,eu){return this._tiles[x]&&this._tiles[x].hasData()&&!this._coveredTiles[x]&&(eu||!this._tiles[x].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else for(let x in this._cache.reset(),this._tiles)"errored"!==this._tiles[x].state&&this._reloadTile(+x,"reloading")}_reloadTile(x,eu){let ef=this._tiles[x];ef&&("loading"!==ef.state&&(ef.state=eu),this._loadTile(ef,this._tileLoaded.bind(this,ef,x,eu)))}_tileLoaded(x,eu,ef,em){if(em){if(x.state="errored",404!==em.status)this._source.fire(new Kt(em,{tile:x}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){let x=this.map.painter.terrain;this.update(this.transform,x.getScaledDemTileSize(),!0),x.resetTileLookupCache(this.id)}else this.update(this.transform)}else x.timeAdded=e8.now(),"expired"===ef&&(x.refreshedUponExpiration=!0),this._setTileReloadTimer(eu,x),"raster-dem"===this._source.type&&x.dem&&this._backfillDEM(x),this._state.initializeTileState(x,this.map?this.map.painter:null),this._source.fire(new Xt("data",{dataType:"source",tile:x,coord:x.tileID,sourceCacheId:this.id}))}_backfillDEM(x){let eu=this.getRenderableIds();for(let ef=0;ef<eu.length;ef++){let em=eu[ef];if(x.neighboringTiles&&x.neighboringTiles[em]){let eu=this.getTileByID(em);r(x,eu),r(eu,x)}}function r(x,eu){if(!x.dem||x.dem.borderReady)return;x.needsHillshadePrepare=!0,x.needsDEMTextureUpload=!0;let ef=eu.tileID.canonical.x-x.tileID.canonical.x,em=eu.tileID.canonical.y-x.tileID.canonical.y,e_=Math.pow(2,x.tileID.canonical.z),eg=eu.tileID.key;0===ef&&0===em||Math.abs(em)>1||(Math.abs(ef)>1&&(1===Math.abs(ef+e_)?ef+=e_:1===Math.abs(ef-e_)&&(ef-=e_)),eu.dem&&x.dem&&(x.dem.backfillBorder(eu.dem,ef,em),x.neighboringTiles&&x.neighboringTiles[eg]&&(x.neighboringTiles[eg].backfilled=!0)))}}getTile(x){return this.getTileByID(x.key)}getTileByID(x){return this._tiles[x]}_retainLoadedChildren(x,eu,ef,em){for(let e_ in this._tiles){let eg=this._tiles[e_];if(em[e_]||!eg.hasData()||eg.tileID.overscaledZ<=eu||eg.tileID.overscaledZ>ef)continue;let ex=eg.tileID;for(;eg&&eg.tileID.overscaledZ>eu+1;){let x=eg.tileID.scaledTo(eg.tileID.overscaledZ-1);(eg=this._tiles[x.key])&&eg.hasData()&&(ex=x)}let ev=ex;for(;ev.overscaledZ>eu;)if(x[(ev=ev.scaledTo(ev.overscaledZ-1)).key]){em[ex.key]=ex;break}}}findLoadedParent(x,eu){if(x.key in this._loadedParentTiles){let ef=this._loadedParentTiles[x.key];return ef&&ef.tileID.overscaledZ>=eu?ef:null}for(let ef=x.overscaledZ-1;ef>=eu;ef--){let eu=x.scaledTo(ef),em=this._getLoadedTile(eu);if(em)return em}}_getLoadedTile(x){let eu=this._tiles[x.key];return eu&&eu.hasData()?eu:this._cache.getByKey(this._source.reparseOverscaled?x.wrapped().key:x.canonical.key)}updateCacheSize(x,eu){eu=eu||this._source.tileSize;let ef=Math.ceil(x.width/eu)+1,em=Math.ceil(x.height/eu)+1,e_=Math.floor(ef*em*5),eg="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,e_):e_,ex="number"==typeof this._maxTileC
8acheSize?Math.min(this._maxTileCacheSize,eg):eg;this._cache.setMaxSize(ex)}handleWrapJump(x){let eu=Math.round((x-(void 0===this._prevLng?x:this._prevLng))/360);if(this._prevLng=x,eu){let x={};for(let ef in this._tiles){let em=this._tiles[ef];em.tileID=em.tileID.unwrapTo(em.tileID.wrap+eu),x[em.tileID.key]=em}for(let eu in this._tiles=x,this._timers)clearTimeout(this._timers[eu]),delete this._timers[eu];for(let x in this._tiles)this._setTileReloadTimer(+x,this._tiles[x])}}update(x,eu,ef){let em;if(this.transform=x,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!ef)return;this.updateCacheSize(x,eu),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?em=x.getVisibleUnwrappedCoordinates(this._source.tileID).map(x=>new Mh(x.canonical.z,x.wrap,x.canonical.z,x.canonical.x,x.canonical.y)):(em=x.coveringTiles({tileSize:eu||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!ef,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(em=em.filter(x=>this._source.hasTile(x)))):em=[];let e_=this._updateRetainedTiles(em);if(oy(this._source.type)&&0!==em.length){let x={},eu={},ef=Object.keys(e_);for(let em of ef){let ef=e_[em],eg=this._tiles[em];if(!eg||eg.fadeEndTime&&eg.fadeEndTime<=e8.now())continue;let ex=this.findLoadedParent(ef,Math.max(ef.overscaledZ-sy.maxOverzooming,this._source.minzoom));ex&&(this._addTile(ex.tileID),x[ex.tileID.key]=ex.tileID),eu[em]=ef}let eg=em[em.length-1].overscaledZ;for(let x in this._tiles){let ef=this._tiles[x];if(e_[x]||!ef.hasData())continue;let em=ef.tileID;for(;em.overscaledZ>eg;){em=em.scaledTo(em.overscaledZ-1);let eg=this._tiles[em.key];if(eg&&eg.hasData()&&eu[em.key]){e_[x]=ef.tileID;break}}}for(let eu in x)e_[eu]||(this._coveredTiles[eu]=!0,e_[eu]=x[eu])}for(let x in e_)this._tiles[x].clearFadeHold();let eg=function(x,eu){let ef=[];for(let em in x)em in eu||ef.push(em);return ef}(this._tiles,e_);for(let x of eg){let eu=this._tiles[x];eu.hasSymbolBuckets&&!eu.holdingForFade()?eu.setHoldDuration(this.map._fadeDuration):eu.hasSymbolBuckets&&!eu.symbolFadeFinished()||this._removeTile(+x)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(let x in this._tiles)this._tiles[x].holdingForFade()&&this._removeTile(+x)}_updateRetainedTiles(x){let eu={};if(0===x.length)return eu;let ef={},em=x.reduce((x,eu)=>Math.min(x,eu.overscaledZ),1/0),e_=x[0].overscaledZ,eg=Math.max(e_-sy.maxOverzooming,this._source.minzoom),ex=Math.max(e_+sy.maxUnderzooming,this._source.minzoom),ev={};for(let ef of x){let x=this._addTile(ef);eu[ef.key]=ef,x.hasData()||em<this._source.maxzoom&&(ev[ef.key]=ef)}for(let e_ of(this._retainLoadedChildren(ev,em,ex,eu),x)){let x=this._tiles[e_.key];if(x.hasData())continue;if(e_.canonical.z>=this._source.maxzoom){let x=e_.children(this._source.maxzoom)[0],ef=this.getTile(x);if(ef&&ef.hasData()){eu[x.key]=x;continue}}else{let x=e_.children(this._source.maxzoom);if(eu[x[0].key]&&eu[x[1].key]&&eu[x[2].key]&&eu[x[3].key])continue}let em=x.wasRequested();for(let ex=e_.overscaledZ-1;ex>=eg;--ex){let eg=e_.scaledTo(ex);if(ef[eg.key]||(ef[eg.key]=!0,(x=this.getTile(eg))||!em||(x=this._addTile(eg)),x&&(eu[eg.key]=eg,em=x.wasRequested(),x.hasData())))break}}return eu}_updateLoadedParentTileCache(){for(let x in this._loadedParentTiles={},this._tiles){let eu=[],ef,em=this._tiles[x].tileID;for(;em.overscaledZ>0;){if(em.key in this._loadedParentTiles){ef=this._loadedParentTiles[em.key];break}eu.push(em.key);let x=em.scaledTo(em.overscaledZ-1);if(ef=this._getLoadedTile(x))break;em=x}for(let x of eu)this._loadedParentTiles[x]=ef}}_addTile(x){let eu=this._tiles[x.key];if(eu)return eu;(eu=this._cache.getAndRemove(x))&&(this._setTileReloadTimer(x.key,eu),eu.tileID=x,this._state.initializeTileState(eu,this.map?this.map.painter:null),this._cacheTimers[x.key]&&(clearTimeout(this._cacheTimers[x.key]),delete this._cacheTimers[x.key],this._setTileReloadTimer(x.key,eu)));let ef=!!eu;if(!ef){let ef=this.map?this.map.painter:null;eu=new Fd(x,this._source.tileSize*x.overscaleFactor(),this.transform.tileZoom,ef,this._isRaster),this._loadTile(eu,this._tileLoaded.bind(this,eu,x.key,eu.state))}return eu?(eu.uses++,this._tiles[x.key]=eu,ef||this._source.fire(new Xt("dataloading",{tile:eu,coord:eu.tileID,dataType:"source"})),eu):null}_setTileReloadTimer(x,eu){x in this._timers&&(clearTimeout(this._timers[x]),delete this._timers[x]);let ef=eu.getExpiryTimeout();ef&&(this._timers[x]=setTimeout(()=>{this._reloadTile(x,"expired"),delete this._timers[x]},ef))}
8_removeTile(x){let eu=this._tiles[x];eu&&(eu.uses--,delete this._tiles[x],this._timers[x]&&(clearTimeout(this._timers[x]),delete this._timers[x]),eu.uses>0||(eu.hasData()&&"reloading"!==eu.state?this._cache.add(eu.tileID,eu,eu.getExpiryTimeout()):(eu.aborted=!0,this._abortTile(eu),this._unloadTile(eu))))}clearTiles(){for(let x in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(+x);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id)}tilesIn(x,eu,ef){let em=[],e_=this.transform;if(!e_)return em;let eg="globe"===e_.projection.name,ex=iu(e_.center.lng);for(let ev in this._tiles){let eb;let ew=this._tiles[ev];if(ef&&ew.clearQueryDebugViz(),!ew.holdingForFade()){if(eg){let x=ew.tileID.canonical;if(0===x.z){let eu=[Math.abs(S(ex,...ly(x,-1))-ex),Math.abs(S(ex,...ly(x,1))-ex)];eb=[0,2*eu.indexOf(Math.min(...eu))-1]}else{let eu=[Math.abs(S(ex,...ly(x,-1))-ex),Math.abs(S(ex,...ly(x,0))-ex),Math.abs(S(ex,...ly(x,1))-ex)];eb=[eu.indexOf(Math.min(...eu))-1]}}else eb=[0];for(let ef of eb){let eg=x.containsTile(ew,e_,eu,ef);eg&&em.push(eg)}}}return em}getVisibleCoordinates(x){let eu=this.getRenderableIds(x).map(x=>this._tiles[x].tileID);for(let x of eu)x.projMatrix=this.transform.calculateProjMatrix(x.toUnwrapped());return eu}hasTransition(){if(this._source.hasTransition())return!0;if(oy(this._source.type))for(let x in this._tiles){let eu=this._tiles[x];if(void 0!==eu.fadeEndTime&&eu.fadeEndTime>=e8.now())return!0}return!1}setFeatureState(x,eu,ef){this._state.updateState(x=x||"_geojsonTileLayer",eu,ef)}removeFeatureState(x,eu,ef){this._state.removeFeatureState(x=x||"_geojsonTileLayer",eu,ef)}getFeatureState(x,eu){return this._state.getState(x=x||"_geojsonTileLayer",eu)}setDependencies(x,eu,ef){let em=this._tiles[x];em&&em.setDependencies(eu,ef)}reloadTilesForDependencies(x,eu){for(let ef in this._tiles)this._tiles[ef].hasDependency(x,eu)&&this._reloadTile(+ef,"reloading");this._cache.filter(ef=>!ef.hasDependency(x,eu))}_preloadTiles(x,eu){let ef=new Map,em=Array.isArray(x)?x:[x],e_=this.map.painter.terrain,eg=this.usedForTerrain&&e_?e_.getScaledDemTileSize():this._source.tileSize;for(let x of em){let eu=x.coveringTiles({tileSize:eg,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(let x of eu)ef.set(x.key,x);this.usedForTerrain&&x.updateElevation(!1)}M(Array.from(ef.values()),(x,eu)=>{let ef=new Fd(x,this._source.tileSize*x.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(ef,x=>{"raster-dem"===this._source.type&&ef.dem&&this._backfillDEM(ef),eu(x,ef)})},eu)}};function ay(x,eu){let ef=Math.abs(2*x.wrap)-+(x.wrap<0),em=Math.abs(2*eu.wrap)-+(eu.wrap<0);return x.overscaledZ-eu.overscaledZ||em-ef||eu.canonical.y-x.canonical.y||eu.canonical.x-x.canonical.x}function oy(x){return"raster"===x||"image"===x||"video"===x||"custom"===x}function ly(x,eu){let ef=1<<x.z;return[x.x/ef+eu,(x.x+1)/ef+eu]}sy.maxOverzooming=10,sy.maxUnderzooming=3;let uy=class uy{constructor(x,eu,ef){this._demTile=x,this._dem=this._demTile.dem,this._scale=eu,this._offset=ef}static create(x,eu,ef){let em=ef||x.findDEMTileFor(eu);if(!em||!em.dem)return;let e_=em.dem,eg=em.tileID,ex=1<<eu.canonical.z-eg.canonical.z;return new uy(em,em.tileSize/8192/ex,[(eu.canonical.x/ex-eg.canonical.x)*e_.dim,(eu.canonical.y/ex-eg.canonical.y)*e_.dim])}tileCoordToPixel(x,eu){let ef=eu*this._scale+this._offset[1],em=Math.floor(x*this._scale+this._offset[0]),e_=Math.floor(ef);return new eD(em,e_)}getElevationAt(x,eu,ef,em){let e_=x*this._scale+this._offset[0],eg=eu*this._scale+this._offset[1],ex=Math.floor(e_),ev=Math.floor(eg),eb=this._dem;return em=!!em,ef?Mr(Mr(eb.get(ex,ev,em),eb.get(ex,ev+1,em),eg-ev),Mr(eb.get(ex+1,ev,em),eb.get(ex+1,ev+1,em),eg-ev),e_-ex):eb.get(ex,ev,em)}getElevationAtPixel(x,eu,ef){return this._dem.get(x,eu,!!ef)}getMeterToDEM(x){return(1<<this._demTile.tileID.canonical.z)*(1/nu(
8x))*this._dem.stride}};let cy=class cy{constructor(x,eu){this.tileID=x,this.x=x.canonical.x,this.y=x.canonical.y,this.z=x.canonical.z,this.grid=new $i(8192,16,0),this.featureIndexArray=new ja,this.promoteId=eu}insert(x,eu,ef,em,e_,eg=0){let ex=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(ef,em,e_,eg);let ev=this.grid;for(let x=0;x<eu.length;x++){let ef=eu[x],em=[1/0,1/0,-1/0,-1/0];for(let x=0;x<ef.length;x++){let eu=ef[x];em[0]=Math.min(em[0],eu.x),em[1]=Math.min(em[1],eu.y),em[2]=Math.max(em[2],eu.x),em[3]=Math.max(em[3],eu.y)}em[0]<8192&&em[1]<8192&&em[2]>=0&&em[3]>=0&&ev.insert(ex,em[0],em[1],em[2],em[3])}}loadVTLayers(){if(!this.vtLayers)for(let x in this.vtLayers=new iK(new cp(this.rawTileData)).layers,this.sourceLayerCoder=new kd(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={},this.vtLayers)this.vtFeatures[x]=[];return this.vtLayers}query(x,eu,ef,em){let e_;this.loadVTLayers();let eg=x.params||{},ex=ai(eg.filter),ev=x.tileResult,eb=x.transform,ew=ev.bufferedTilespaceBounds,eT=this.grid.query(ew.min.x,ew.min.y,ew.max.x,ew.max.y,(x,eu,ef,em)=>Vu(ev.bufferedTilespaceGeometry,x,eu,ef,em));eT.sort(py);let eE=null;eb.elevation&&eT.length>0&&(eE=uy.create(eb.elevation,this.tileID));let eS={};for(let eb=0;eb<eT.length;eb++){let ew=eT[eb];if(ew===e_)continue;e_=ew;let eM=this.featureIndexArray.get(ew),eI=null;this.loadMatchingFeature(eS,eM,ex,eg.layers,eg.availableImages,eu,ef,em,(eu,ef,em,e_=0)=>(eI||(eI=bu(eu,this.tileID.canonical,x.tileTransform)),ef.queryIntersectsFeature(ev,eu,em,eI,this.z,x.transform,x.pixelPosMatrix,eE,e_)))}return eS}loadMatchingFeature(x,eu,ef,em,e_,eg,ex,ev,eb){let{featureIndex:ew,bucketIndex:eT,sourceLayerIndex:eE,layoutVertexArrayOffset:eS}=eu,eM=this.bucketLayerIDs[eT];if(em&&!function(x,eu){for(let ef=0;ef<x.length;ef++)if(eu.indexOf(x[ef])>=0)return!0;return!1}(em,eM))return;let eI=this.sourceLayerCoder.decode(eE),eA=this.vtLayers[eI].feature(ew);if(ef.needGeometry){let x=wu(eA,!0);if(!ef.filter(new $s(this.tileID.overscaledZ),x,this.tileID.canonical))return}else if(!ef.filter(new $s(this.tileID.overscaledZ),eA))return;let eC=this.getId(eA,eI);for(let eu=0;eu<eM.length;eu++){let ef=eM[eu];if(em&&0>em.indexOf(ef))continue;let eT=eg[ef];if(!eT)continue;let eE={};void 0!==eC&&ev&&(eE=ev.getState(eT.sourceLayer||"_geojsonTileLayer",eC));let eI=z({},ex[ef]);eI.paint=hy(eI.paint,eT.paint,eA,eE,e_),eI.layout=hy(eI.layout,eT.layout,eA,eE,e_);let ez=!eb||eb(eA,eT,eE,eS);if(!ez)continue;let eD=new Md(eA,this.z,this.x,this.y,eC);eD.layer=eI;let ek=x[ef];void 0===ek&&(ek=x[ef]=[]),ek.push({featureIndex:ew,feature:eD,intersectionZ:ez})}}lookupSymbolFeatures(x,eu,ef,em,e_,eg,ex,ev){let eb={};this.loadVTLayers();let ew=ai(e_);for(let e_ of x)this.loadMatchingFeature(eb,{bucketIndex:ef,sourceLayerIndex:em,featureIndex:e_,layoutVertexArrayOffset:0},ew,eg,ex,ev,eu);return eb}loadFeature(x){let{featureIndex:eu,sourceLayerIndex:ef}=x;this.loadVTLayers();let em=this.sourceLayerCoder.decode(ef),e_=this.vtFeatures[em];if(e_[eu])return e_[eu];let eg=this.vtLayers[em].feature(eu);return e_[eu]=eg,eg}hasLayer(x){for(let eu of this.bucketLayerIDs)for(let ef of eu)if(x===ef)return!0;return!1}getId(x,eu){let ef=x.id;if(this.promoteId){let em="string"==typeof this.promoteId?this.promoteId:this.promoteId[eu];null!=em&&(ef=x.properties[em]),"boolean"==typeof ef&&(ef=Number(ef))}return ef}};function hy(x,eu,ef,em,e_){return F(x,(x,eg)=>{let ex=eu instanceof Ks?eu.get(eg):null;return ex&&ex.evaluate?ex.evaluate(ef,em,e_):ex})}function py(x,eu){return eu-x}Oi(cy,"FeatureIndex",{omit:["rawTileData","sourceLayerCoder"]});let fy=class fy{constructor(x,eu){this.width=x,this.height=eu,this.nextRow=0,this.image=new Ju({width:x,height:eu}),this.positions={},this.uploaded=!1}getDash(x,eu){let ef=this.getKey(x,eu);return this.positions[ef]}trim(){let x=this.width,eu=this.height=P(this.nextRow);this.image.resize({width:x,height:eu})}getKey(x,eu){return x.join(",")+eu}getDashRanges(x,eu,ef){let em=[],e_=x.length%2==1?-x[x.length-1]*ef:0,eg=x[0]*ef,ex=!0;em.push({left:e_,right:eg,isDash:ex,zeroLength:0===x[0]});let ev=x[0];for(let eu=1;eu<x.length;eu++){ex=!ex;let eb=x[eu];e_=ev*ef,ev+=eb,eg=ev*ef,em.push({left:e_,right:eg,isDash:ex,zeroLength:0===eb})}return em}addRoundDash(x,eu,ef){let em=eu/2;for(let eu=-ef;eu<=ef;eu++){let e_=this.width*(this.nextRow+ef+eu),eg=0,ex=x[0];for(let ev=0;ev<this.width;ev++){let eb;ev/ex.right>1&&(ex=x[++eg]);let ew=Math.abs(ev-ex.left),eT=Math.abs(ev-ex.right),eE=Math.min(ew,eT),eS=eu/ef*(em+1);if(ex.isDash){let x=em-Math.abs(eS);
8eb=Math.sqrt(eE*eE+x*x)}else eb=em-Math.sqrt(eE*eE+eS*eS);this.image.data[e_+ev]=Math.max(0,Math.min(255,eb+128))}}}addRegularDash(x,eu){for(let eu=x.length-1;eu>=0;--eu){let ef=x[eu],em=x[eu+1];ef.zeroLength?x.splice(eu,1):em&&em.isDash===ef.isDash&&(em.left=ef.left,x.splice(eu,1))}let ef=x[0],em=x[x.length-1];ef.isDash===em.isDash&&(ef.left=em.left-this.width,em.right=ef.right+this.width);let e_=this.width*this.nextRow,eg=0,ex=x[0];for(let ef=0;ef<this.width;ef++){ef/ex.right>1&&(ex=x[++eg]);let em=Math.abs(ef-ex.left),ev=Math.abs(ef-ex.right),eb=Math.min(em,ev);this.image.data[e_+ef]=Math.max(0,Math.min(255,(ex.isDash?eb:-eb)+eu+128))}}addDash(x,eu){let ef=this.getKey(x,eu);if(this.positions[ef])return this.positions[ef];let em="round"===eu,e_=em?7:0,eg=2*e_+1;if(this.nextRow+eg>this.height)return U("LineAtlas out of space"),null;0===x.length&&x.push(1);let ex=0;for(let eu=0;eu<x.length;eu++)x[eu]<0&&(U("Negative value is found in line dasharray, replacing values with 0"),x[eu]=0),ex+=x[eu];if(0!==ex){let ef=this.width/ex,eg=this.getDashRanges(x,this.width,ef);em?this.addRoundDash(eg,ef,e_):this.addRegularDash(eg,"square"===eu?.5*ef:0)}let ev=this.nextRow+e_;this.nextRow+=eg;let eb={tl:[ev,e_],br:[ex,0]};return this.positions[ef]=eb,eb}};Oi(fy,"LineAtlas");let dy=class dy{constructor(x){let eu={},ef=[];for(let em in x){let e_=x[em],eg=eu[em]={};for(let x in e_.glyphs){let eu=e_.glyphs[+x];if(!eu||0===eu.bitmap.width||0===eu.bitmap.height)continue;let em=eu.metrics.localGlyph?2:1,ex={x:0,y:0,w:eu.bitmap.width+2*em,h:eu.bitmap.height+2*em};ef.push(ex),eg[x]=ex}}let{w:em,h:e_}=Cp(ef),eg=new Ju({width:em||1,height:e_||1});for(let ef in x){let em=x[ef];for(let x in em.glyphs){let e_=em.glyphs[+x];if(!e_||0===e_.bitmap.width||0===e_.bitmap.height)continue;let ex=eu[ef][x],ev=e_.metrics.localGlyph?2:1;Ju.copy(e_.bitmap,eg,{x:0,y:0},{x:ex.x+ev,y:ex.y+ev},e_.bitmap)}}this.image=eg,this.positions=eu}};Oi(dy,"GlyphAtlas");let yy=class yy{constructor(x){this.tileID=new Mh(x.tileID.overscaledZ,x.tileID.wrap,x.tileID.canonical.z,x.tileID.canonical.x,x.tileID.canonical.y),this.tileZoom=x.tileZoom,this.uid=x.uid,this.zoom=x.zoom,this.canonical=x.tileID.canonical,this.pixelRatio=x.pixelRatio,this.tileSize=x.tileSize,this.source=x.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=x.showCollisionBoxes,this.collectResourceTiming=!!x.collectResourceTiming,this.returnDependencies=!!x.returnDependencies,this.promoteId=x.promoteId,this.enableTerrain=!!x.enableTerrain,this.isSymbolTile=x.isSymbolTile,this.tileTransform=Vf(x.tileID.canonical,x.projection),this.projection=x.projection}parse(x,eu,ef,em,e_){let eg,ex,ev,eb;this.status="parsing",this.data=x,this.collisionBoxArray=new Ea;let ew=new kd(Object.keys(x.layers).sort()),eT=new cy(this.tileID,this.promoteId);eT.bucketLayerIDs=[];let eE={},eS=new fy(256,256),eM={featureIndex:eT,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:eS,availableImages:ef},eI=eu.familiesBySource[this.source];for(let eu in eI){let em=x.layers[eu];if(!em)continue;let e_=!1,eg=!1;for(let x of eI[eu])"symbol"===x[0].type?e_=!0:eg=!0;if(!0===this.isSymbolTile&&!e_||!1===this.isSymbolTile&&!eg)continue;1===em.version&&U(`Vector tile source "${this.source}" layer "${eu}" does not use vector tile spec v2 and therefore may have some rendering errors.`);let ex=ew.encode(eu),ev=[];for(let x=0;x<em.length;x++){let ef=em.feature(x),e_=eT.getId(ef,eu);ev.push({feature:ef,id:e_,index:x,sourceLayerIndex:ex})}for(let x of eI[eu]){let eu=x[0];void 0!==this.isSymbolTile&&"symbol"===eu.type!==this.isSymbolTile||eu.minzoom&&this.zoom<Math.floor(eu.minzoom)||eu.maxzoom&&this.zoom>=eu.maxzoom||"none"!==eu.visibility&&(my(x,this.zoom,ef),(eE[eu.id]=eu.createBucket({index:eT.bucketLayerIDs.length,layers:x,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:ex,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:ef})).populate(ev,eM,this.tileID.canonical,this.tileTransform),eT.bucketLayerIDs.push(x.map(x=>x.id)))}}eS.trim();let eA={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},eC=F(eM.glyphDependencies,x=>Object.keys(x).map(Number));Object.keys(eC).length?em.send("getGlyphs",{uid:this.uid,stacks:eC},(x,eu)=>{eg||(eg=x,ex=eu,v.call(this))},void 0,!1,eA):ex={};let ez=Object.keys(eM.iconDependencies);ez.length?em.send("getImages",{icons:ez,source:this.source,tileID:this.tileID,type:"icons"},(x,eu)=>{eg||(eg=x,ev=eu,v.call(this))},void 0,!1,eA):ev={};let eP=Object.keys(eM.patternDependencies);function v(){if(eg)return e_(eg);if(ex&&ev&&eb){let x=new dy(ex),eu=new Dp(ev,eb);for(let em in eE){let e_=eE[em];e_ instanceof hd?(my(e_.layers,this.zoom,ef),function(x,eu,ef,em,e_,eg,ex,ev,eb,ew){x.createArrays(),x.tilePixelRatio=8192/(512*x.overscaling),x.compareText={},x.iconsNeedLinear=!1;let eT=x.layers[0].layout,eE=x.layers[0]._unevaluatedLayout._values,eS={};
8if("composite"===x.textSizeData.kind){let{minZoom:eu,maxZoom:ef}=x.textSizeData;eS.compositeTextSizes=[eE["text-size"].possiblyEvaluate(new $s(eu),ev),eE["text-size"].possiblyEvaluate(new $s(ef),ev)]}if("composite"===x.iconSizeData.kind){let{minZoom:eu,maxZoom:ef}=x.iconSizeData;eS.compositeIconSizes=[eE["icon-size"].possiblyEvaluate(new $s(eu),ev),eE["icon-size"].possiblyEvaluate(new $s(ef),ev)]}eS.layoutTextSize=eE["text-size"].possiblyEvaluate(new $s(eb+1),ev),eS.layoutIconSize=eE["icon-size"].possiblyEvaluate(new $s(eb+1),ev),eS.textMaxSize=eE["text-size"].possiblyEvaluate(new $s(18),ev);let eM="map"===eT.get("text-rotation-alignment")&&"point"!==eT.get("symbol-placement"),eI=eT.get("text-size");for(let eg of x.features){let eb=eT.get("text-font").evaluate(eg,{},ev).join(","),eE=eI.evaluate(eg,{},ev),eA=eS.layoutTextSize.evaluate(eg,{},ev),eC=(eS.layoutIconSize.evaluate(eg,{},ev),{horizontal:{},vertical:void 0}),ez=eg.text,eP,eL=[0,0];if(ez){let em=ez.toString(),ex=24*eT.get("text-letter-spacing").evaluate(eg,{},ev),ew=24*eT.get("text-line-height").evaluate(eg,{},ev),eS=!function(x){for(let ef of x){var eu;if(Xi(eu=ef.charCodeAt(0))||Ki(eu)||Yi(eu)||ds(eu)||xs(eu))return!1}return!0}(em)?0:ex,eI=eT.get("text-anchor").evaluate(eg,{},ev),eD=eT.get("text-variable-anchor");if(!eD){let x=eT.get("text-radial-offset").evaluate(eg,{},ev);eL=x?Sf(eI,[24*x,rM]):eT.get("text-offset").evaluate(eg,{},ev).map(x=>24*x)}let ek=eM?"center":eT.get("text-justify").evaluate(eg,{},ev),eP="point"===eT.get("symbol-placement"),eR=eP?24*eT.get("text-max-width").evaluate(eg,{},ev):1/0,A=eg=>{x.allowVerticalPlacement&&bs(em)&&(eC.vertical=Rp(ez,eu,ef,e_,eb,eR,ew,eI,eg,eS,eL,rw.vertical,!0,eA,eE))};if(!eM&&eD){let x="auto"===ek?eD.map(x=>If(x)):[ek],em=!1;for(let eg=0;eg<x.length;eg++){let ex=x[eg];if(!eC.horizontal[ex]){if(em)eC.horizontal[ex]=eC.horizontal[0];else{let x=Rp(ez,eu,ef,e_,eb,eR,ew,"center",ex,eS,eL,rw.horizontal,!1,eA,eE);x&&(eC.horizontal[ex]=x,em=1===x.positionedLines.length)}}}A("left")}else{if("auto"===ek&&(ek=If(eI)),eP||eT.get("text-writing-mode").indexOf("horizontal")>=0||!bs(em)){let x=Rp(ez,eu,ef,e_,eb,eR,ew,eI,ek,eS,eL,rw.horizontal,!1,eA,eE);x&&(eC.horizontal[ek]=x)}A(eP?"left":ek)}}let eR=!1;if(eg.icon&&eg.icon.name){let eu=em[eg.icon.name];eu&&(eP=function(x,eu,ef){let{horizontalAlign:em,verticalAlign:e_}=Zp(ef),eg=eu[0]-x.displaySize[0]*em,ex=eu[1]-x.displaySize[1]*e_;return{image:x,top:ex,bottom:ex+x.displaySize[1],left:eg,right:eg+x.displaySize[0]}}(e_[eg.icon.name],eT.get("icon-offset").evaluate(eg,{},ev),eT.get("icon-anchor").evaluate(eg,{},ev)),eR=eu.sdf,void 0===x.sdfIcons?x.sdfIcons=eu.sdf:x.sdfIcons!==eu.sdf&&U("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(eu.pixelRatio!==x.pixelRatio||0!==eT.get("icon-rotate").constantOr(1))&&(x.iconsNeedLinear=!0))}let eB=Bf(eC.horizontal)||eC.vertical;x.iconsInText||(x.iconsInText=!!eB&&eB.iconsInText),(eB||eP)&&function(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS){var eM;let eI,eA=eg.textMaxSize.evaluate(eu,{},eE);void 0===eA&&(eA=ex);let eC=x.layers[0].layout,ez=eC.get("icon-offset").evaluate(eu,{},eE),eP=Bf(ef.horizontal)||ef.vertical,eL="globe"===eS.name,eR=ex/24,eB=x.tilePixelRatio*eA/24,eO=(eM=x.overscaling,x.zoom>18&&eM>2&&(eM>>=1),Math.max(8192/(512*eM),1)*eC.get("symbol-spacing")),eF=eC.get("text-padding")*x.tilePixelRatio,eU=eC.get("icon-padding")*x.tilePixelRatio,eV=eC.get("text-max-angle")*ek,eN="map"===eC.get("text-rotation-alignment")&&"point"!==eC.get("symbol-placement"),ej="map"===eC.get("icon-rotation-alignment")&&"point"!==eC.get("symbol-placement"),eG=eC.get("symbol-placement"),eZ=eO/2,e$=eC.get("icon-text-fit");em&&"none"!==e$&&(x.allowVerticalPlacement&&ef.vertical&&(eI=Yp(em,ef.vertical,e$,eC.get("icon-text-fit-padding"),ez,eR)),eP&&(em=Yp(em,eP,e$,eC.get("icon-text-fit-padding"),ez,eR)));let C=(ex,ev,eM)=>{if(ev.x<0||ev.x>=8192||ev.y<0||ev.y>=8192)return;let eA=null;if(eL){let{x:x,y:eu,z:ef}=eS.projectTilePoint(ev.x,ev.y,eM);eA={anchor:new Hp(x,eu,ef,0,void 0),up:eS.upVector(eM,ev.x,ev.y)}}!function(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek,eP,eL,eR,eB,eO){let eF=x.addToLineVertexArray(eu,em),eU,eV,eN,ej,eG,eZ,e$,eq=0,eW=0,eX=0,eH=0,eY=-1,eJ=-1,eK={},eQ=t6(""),e0=ef?ef.anchor:eu,e1=0,e2=0;if(void 0===eb._unevaluatedLayout.getValue("text-radial-offset")?[e1,e2]=eb.layout.get("text-offset").evaluate(eP,{},eO).map(x=>24*x):(e1=24*eb.layout.get("text-radial-offset").evaluate(eP,{},eO),e2=rM),x.allowVerticalPlacement&&e_.vertical){let x=e_.vertical;if(eI)eZ=Cf(x),ev&&(e$=Cf(ev));else{let ef=eb.layout.get("text-rotate").evaluate(eP,{},eO)+90;eN=Ef(ew,e0,eu,eT,eE,eS,x,eM,ef,eA),ev&&(ej=Ef(ew,e0,eu,eT,eE,eS,ev,ez,ef))}}if(eg){let em=eb.layout.get("icon-rotate").evaluate(eP,{},eO),e_="none"!==eb.layout.get("icon-text-fit"),ex=hf(eg,em,eR,e_),eM=ev?hf(ev,em,eR,e_):void 0;eV=Ef(ew,e0,eu,eT,eE,eS,eg,ez,em),eq=4*ex.length;let eI=x.iconSizeData,eA=null;"source"===eI.kind?(eA=[128*eb.layout.get("icon-size").evaluate(eP,{}
8,eO)])[0]>32640&&U(`${x.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===eI.kind&&((eA=[128*eL.compositeIconSizes[0].evaluate(eP,{},eO),128*eL.compositeIconSizes[1].evaluate(eP,{},eO)])[0]>32640||eA[1]>32640)&&U(`${x.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),x.addSymbols(x.icon,ex,eA,ek,eD,eP,!1,ef,eu,eF.lineStartIndex,eF.lineLength,-1,eB,eO),eY=x.icon.placedSymbolArray.length-1,eM&&(eW=4*eM.length,x.addSymbols(x.icon,eM,eA,ek,eD,eP,rw.vertical,ef,eu,eF.lineStartIndex,eF.lineLength,-1,eB,eO),eJ=x.icon.placedSymbolArray.length-1)}for(let em in e_.horizontal){let eg=e_.horizontal[em];eU||(eQ=t6(eg.text),eI?eG=Cf(eg):eU=Ef(ew,e0,eu,eT,eE,eS,eg,eM,eb.layout.get("text-rotate").evaluate(eP,{},eO),eA));let ev=1===eg.positionedLines.length;if(eX+=zf(x,ef,eu,eg,ex,eb,eI,eP,eA,eF,e_.vertical?rw.horizontal:rw.horizontalOnly,ev?Object.keys(e_.horizontal):[em],eK,eY,eL,eB,eO),ev)break}e_.vertical&&(eH+=zf(x,ef,eu,e_.vertical,ex,eb,eI,eP,eA,eF,rw.vertical,["vertical"],eK,eJ,eL,eB,eO));let e3=-1,Z=(x,eu)=>x?Math.max(x,eu):eu;e3=Z(eG,e3),e3=Z(eZ,e3),e3=Z(e$,e3);let e5=e3>-1?1:0;x.glyphOffsetArray.length>=hd.MAX_GLYPHS&&U("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==eP.sortKey&&x.addToSortKeyRanges(x.symbolInstances.length,eP.sortKey),x.symbolInstances.emplaceBack(e0.x,e0.y,e0.z,eu.x,eu.y,eK.right>=0?eK.right:-1,eK.center>=0?eK.center:-1,eK.left>
8=0?eK.left:-1,eK.vertical>=0?eK.vertical:-1,eY,eJ,eQ,void 0!==eU?eU:x.collisionBoxArray.length,void 0!==eU?eU+1:x.collisionBoxArray.length,void 0!==eN?eN:x.collisionBoxArray.length,void 0!==eN?eN+1:x.collisionBoxArray.length,void 0!==eV?eV:x.collisionBoxArray.length,void 0!==eV?eV+1:x.collisionBoxArray.length,ej||x.collisionBoxArray.length,ej?ej+1:x.collisionBoxArray.length,eT,eX,eH,eq,eW,e5,0,e1,e2,e3)}(x,ev,eA,ex,ef,em,e_,eI,x.layers[0],x.collisionBoxArray,eu.index,eu.sourceLayerIndex,x.index,eF,eN,eb,0,eU,ej,ez,eu,eg,ew,eT,eE)};if("line"===eG)for(let e_ of sf(eu.geometry,0,0,8192,8192)){let eu=function(x,eu,ef,em,e_,eg,ex,ev,eb){let ew=em?.6*eg*ex:0,eT=tf(em,e_),eE=eT*ex,eS=0===x[0].x||x[0].x===eb||0===x[0].y||x[0].y===eb;return eu-eE<eu/4&&(eu=eE+eu/4),function nf(x,eu,ef,em,e_,eg,ex,ev,eb){let ew=eg/2,eT=Jp(x),eE=0,eS=eu-ef,eM=[];for(let eu=0;eu<x.length-1;eu++){let ex=x[eu],ev=x[eu+1],eI=ex.dist(ev),eA=ev.angleTo(ex);for(;eS+ef<eE+eI;){eS+=ef;let eC=(eS-eE)/eI,ez=Mr(ex.x,ev.x,eC),eD=Mr(ex.y,ev.y,eC);if(ez>=0&&ez<eb&&eD>=0&&eD<eb&&eS-ew>=0&&eS+ew<=eT){let ef=new Hp(ez,eD,0,eA,eu);ef._round(),em&&!Wp(x,ef,eg,em,e_)||eM.push(ef)}}eE+=eI}return ev||eM.length||ex||(eM=nf(x,eE/2,ef,em,e_,eg,ex,!0,eb)),eM}(x,eS?eu/2*ev%eu:(eT/2+2*eg)*ex*ev%eu,eu,ew,ef,eE,eS,!1,eb)}(e_,eO,eV,ef.vertical||eP,em,24,eB,x.overscaling,8192);for(let ef of eu)eP&&function(x,eu,ef,em){let e_=x.compareText;if(eu in e_){let x=e_[eu];for(let eu=x.length-1;eu>=0;eu--)if(em.dist(x[eu])<ef)return!0}else e_[eu]=[];return e_[eu].push(em),!1}(x,eP.text,eZ,ef)||C(e_,ef,eE)}else if("line-center"===eG){for(let x of eu.geometry)if(x.length>1){let eu=function(x,eu,ef,em,e_,eg){let ex=ef?.6*24*eg:0,ev=tf(ef,em)*eg,eb=0,ew=Jp(x)/2;for(let ef=0;ef<x.length-1;ef++){let em=x[ef],e_=x[ef+1],eg=em.dist(e_);if(eb+eg>ew){let eT=(ew-eb)/eg,eE=Mr(em.x,e_.x,eT),eS=Mr(em.y,e_.y,eT),eM=new Hp(eE,eS,0,e_.angleTo(em),ef);return!ex||Wp(x,eM,ev,ex,eu)?eM:void 0}eb+=eg}}(x,eV,ef.vertical||eP,em,0,eB);eu&&C(x,eu,eE)}}else if("Polygon"===eu.type)for(let x of Lc(eu.geometry,0)){let eu=function(x,eu=1,ef=!1){let em=1/0,e_=1/0,eg=-1/0,ex=-1/0,ev=x[0];for(let x=0;x<ev.length;x++){let eu=ev[x];(!x||eu.x<em)&&(em=eu.x),(!x||eu.y<e_)&&(e_=eu.y),(!x||eu.x>eg)&&(eg=eu.x),(!x||eu.y>ex)&&(ex=eu.y)}let eb=Math.min(eg-em,ex-e_),ew=eb/2,eT=new gf([],bf);if(0===eb)return new eD(em,e_);for(let eu=em;eu<eg;eu+=eb)for(let ef=e_;ef<ex;ef+=eb)eT.push(new wf(eu+ew,ef+ew,ew,x));let eE=function(x){let eu=0,ef=0,em=0,e_=x[0];for(let x=0,eg=e_.length,ex=eg-1;x<eg;ex=x++){let eg=e_[x],ev=e_[ex],eb=eg.x*ev.y-ev.x*eg.y;ef+=(eg.x+ev.x)*eb,em+=(eg.y+ev.y)*eb,eu+=3*eb}return new wf(ef/eu,em/eu,0,x)}(x),eS=eT.length;for(;eT.length;){let em=eT.pop();(em.d>eE.d||!eE.d)&&(eE=em,ef&&console.log("found best %d after %d probes",Math.round(1e4*em.d)/1e4,eS)),em.max-eE.d<=eu||(ew=em.h/2,eT.push(new wf(em.p.x-ew,em.p.y-ew,ew,x)),eT.push(new wf(em.p.x+ew,em.p.y-ew,ew,x)),eT.push(new wf(em.p.x-ew,em.p.y+ew,ew,x)),eT.push(new wf(em.p.x+ew,em.p.y+ew,ew,x)),eS+=4)}return ef&&(console.log(`num probes: ${eS}`),console.log(`best distance: ${eE.d}`)),eE.p}(x,16);C(x[0],new Hp(eu.x,eu.y,0,0,void 0),eE)}else if("LineString"===eu.type)for(let x of eu.geometry)C(x,new Hp(x[0].x,x[0].y,0,0,void 0),eE);else if("Point"===eu.type)for(let x of eu.geometry)for(let eu of x)C([eu],new Hp(eu.x,eu.y,0,0,void 0),eE)}(x,eg,eC,eP,em,eS,eA,0,eL,eR,ex,ev,ew)}eg&&x.generateCollisionDebugBuffers(eb,x.collisionBoxArray)}(e_,ex,x.positions,ev,eu.iconPositions,this.showCollisionBoxes,ef,this.tileID.canonical,this.tileZoom,this.projection)):e_.hasPattern&&(e_ instanceof jh||e_ instanceof $c||e_ instanceof fh)&&(my(e_.layers,this.zoom,ef),e_.addFeatures(eM,this.tileID.canonical,eu.patternPositions,ef,this.tileTransform))}this.status="done",e_(null,{buckets:T(eE).filter(x=>!x.isEmpty()),featureIndex:eT,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:x.image,lineAtlas:eS,imageAtlas:eu,glyphMap:this.returnDependencies?ex:null,iconMap:this.returnDependencies?ev:null,glyphPositions:this.returnDependencies?x.positions:null})}}eP.length?em.send("getImages",{icons:eP,source:this.source,tileID:this.tileID,type:"patterns"},(x,eu)=>{eg||(eg=x,eb=eu,v.call(this))}
8,void 0,!1,eA):eb={},v.call(this)}};function my(x,eu,ef){let em=new $s(eu);for(let eu of x)eu.recalculate(em,ef)}let gy=class gy{constructor(x){this.entries={},this.scheduler=x}request(x,eu,ef,em){let e_=this.entries[x]=this.entries[x]||{callbacks:[]};if(e_.result){let[x,ef]=e_.result;return this.scheduler?this.scheduler.add(()=>{em(x,ef)},eu):em(x,ef),()=>{}}return e_.callbacks.push(em),e_.cancel||(e_.cancel=ef((ef,em)=>{for(let x of(e_.result=[ef,em],e_.callbacks))this.scheduler?this.scheduler.add(()=>{x(ef,em)},eu):x(ef,em);setTimeout(()=>delete this.entries[x],3e3)})),()=>{e_.result||(e_.callbacks=e_.callbacks.filter(x=>x!==em),e_.callbacks.length||(e_.cancel(),delete this.entries[x]))}}};function xy(x,eu,ef){let em=JSON.stringify(x.request);return x.data&&(this.deduped.entries[em]={result:[null,x.data]}),this.deduped.request(em,{type:"parseTile",isSymbolTile:x.isSymbolTile,zoom:x.tileZoom},eu=>{let em=ut(x.request,(x,em,e_,eg)=>{x?eu(x):em&&eu(null,{vectorTile:ef?void 0:new iK(new cp(em)),rawData:em,cacheControl:e_,expires:eg})});return()=>{em.cancel(),eu()}},eu)}x.ARRAY_TYPE=iv,x.AUTH_ERR_MSG=eX,x.Aabb=_l,x.Actor=class{constructor(x,eu,ef){this.target=x,this.parent=eu,this.mapId=ef,this.callbacks={},this.cancelCallbacks={},V(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=N()?x:eT,this.scheduler=new Sd}send(x,eu,ef,em,e_=!1,eg){let ex=Math.round(1e18*Math.random()).toString(36).substring(0,10);ef&&(ef.metadata=eg,this.callbacks[ex]=ef);let ev=X(this.globalScope)?void 0:[];return this.target.postMessage({id:ex,type:x,hasCallback:!!ef,targetMapId:em,mustQueue:e_,sourceMapId:this.mapId,data:Gi(eu,ev)},ev),{cancel:()=>{ef&&delete this.callbacks[ex],this.target.postMessage({id:ex,type:"<cancel>",targetMapId:em,sourceMapId:this.mapId})}}}receive(x){let eu=x.data,ef=eu.id;if(ef&&(!eu.targetMapId||this.mapId===eu.targetMapId)){if("<cancel>"===eu.type){let x=this.cancelCallbacks[ef];delete this.cancelCallbacks[ef],x&&x.cancel()}else if(eu.mustQueue||N()){let x=this.callbacks[ef];this.cancelCallbacks[ef]=this.scheduler.add(()=>this.processTask(ef,eu),x&&x.metadata||{type:"message"})}else this.processTask(ef,eu)}}processTask(x,eu){if("<response>"===eu.type){let ef=this.callbacks[x];delete this.callbacks[x],ef&&(eu.error?ef(Zi(eu.error)):ef(null,Zi(eu.data)))}else{let ef=X(this.globalScope)?void 0:[],em=eu.hasCallback?(eu,em)=>{delete this.cancelCallbacks[x],this.target.postMessage({id:x,type:"<response>",sourceMapId:this.mapId,error:eu?Gi(eu):null,data:Gi(em,ef)},ef)}:x=>{},e_=Zi(eu.data);if(this.parent[eu.type])this.parent[eu.type](eu.sourceMapId,e_,em);else if(this.parent.getWorkerSource){let x=eu.type.split(".");this.parent.getWorkerSource(eu.sourceMapId,x[0],e_.source)[x[1]](e_,em)}else em(Error(`Could not find function ${eu.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},x.CanonicalTileID=kh,x.Color=Ie,x.ColorMode=ey,x.CullFaceMode=iy,x.DEMData=Hd,x.DataConstantProperty=Ys,x.DedupedRequest=gy,x.DepthMode=Jd,x.EXTENT=8192,x.Elevation=class{isDataAvailableAtPoint(x){let eu=this._source();if(this.isUsingMockSource()||!eu||x.y<0||x.y>1)return!1;let ef=eu.getSource().maxzoom,em=1<<ef,e_=Math.floor(x.x),eg=Math.floor((x.x-e_)*em),ex=Math.floor(x.y*em),ev=this.findDEMTileFor(new Mh(ef,e_,ef,eg,ex));return!(!ev||!ev.dem)}getAtPointOrZero(x,eu=0){return this.getAtPoint(x,eu)||0}getAtPoint(x,eu,ef=!0){if(this.isUsingMockSource())return null;null==eu&&(eu=null);let em=this._source();if(!em||x.y<0||x.y>1)return eu;let e_=em.getSource().maxzoom,eg=1<<e_,ex=Math.floor(x.x),ev=x.x-ex,eb=new Mh(e_,ex,e_,Math.floor(ev*eg),Math.floor(x.y*eg)),ew=this.findDEMTileFor(eb);if(!ew||!ew.dem)return eu;let eT=ew.dem,eE=1<<ew.tileID.canonical.z,eS=(ev*eE-ew.tileID.canonical.x)*eT.dim,eM=(x.y*eE-ew.tileID.canonical.y)*eT.dim,eI=Math.floor(eS),eA=Math.floor(eM);return(ef?this.exaggeration():1)*Mr(Mr(eT.get(eI,eA),eT.get(eI,eA+1),eM-eA),Mr(eT.get(eI+1,eA),eT.get(eI+1,eA+1),eM-eA),eS-eI)}getAtTileOffset(x,eu,ef){let em=1<<x.canonical.z;return this.getAtPointOrZero(new pu(x.wrap+(x.canonical.x+eu/8192)/em,(x.canonical.y+ef/8192)/em))}getAtTileOffsetFunc(x,eu,ef,em){return e_=>{let eg=this.getAtTileOffset(x,e_.x,e_.y),ex=em.upVector(x.canonical,e_.x,e_.y);return Ho(ex,ex,eg*em.upVectorScale(x.canonical,eu,ef).metersToTile),ex}}getForTilePoints(x,eu,ef,em){if(this.isUsingMockSource())return!1;let e_=uy.create(this,x,em);return!!e_&&(eu.forEach(x=>{x[2]=this.exaggeration()*e_.getElevationAt(x[0],x[1],ef)}),!0)}getMinMaxForTile(x){if(this.isUsingMockSource())return null;let eu=this.findDEMTileFor(x);if(!eu||!eu.dem)return null;let ef=eu.dem.tree,em=eu.tileID,e_=1<<x.canonical.z-em.canonical.z,eg=x.canonical.x/e_-em.canonical.x,ex=x.canonical.y/e_-em.canonical.y,ev=0;for(let eu=0;eu<x.canonical.z-em.canonical.z&&!ef.leaves[ev];eu++){eg*=2,ex*=2;let x=2*Math.floor(ex)+Math.floor(eg);ev=ef.childOffsets[ev]+x,eg%=1,ex%=1}return{min:this.exaggeration()*ef.minimums[ev],max:this.exaggeration()*ef.maximums[ev]}}getMinElevationBelowMSL(){throw Error("Pure virtual method called.")}raycast(x,eu,ef){throw Error("Pure virtual method called.")}pointCoordinate(x){throw Error("Pure virtual method called.")}_source(){throw Error("Pure virtual method called.")}isUsingMockSource(){throw Error("Pure virtual method called.")}exaggeration(){throw Error("Pure virtual method called.")}findDEMTileFor(x){throw Error("Pure virtual method called.")}get visibleDemTiles(){throw Error("Getter must be implemented in subclass.")}},x.ErrorEvent=Kt,x.EvaluationParameters=$s,x.Event=Xt,x.Evented=Yt,x.FillExtrusionBucket=fh,x.Frustum=wl,x.FrustumCorners=bl,x.GLOBE_RADIUS=iS,x.GLOBE_SCALE_MATCH_LATITUDE=45,x.GLOBE_ZOOM_THRESHOLD_MAX=6,x.GLOBE_ZOOM_THRESHOLD_MIN=5,x.GlobeSharedBuffers=class{constructor(x
8){this._createGrid(x),this._createPoles(x)}destroy(){for(let x of(this._poleIndexBuffer.destroy(),this._gridBuffer.destroy(),this._gridIndexBuffer.destroy(),this._poleNorthVertexBuffer.destroy(),this._poleSouthVertexBuffer.destroy(),this._poleSegments))x.destroy();for(let x of this._gridSegments)x.withSkirts.destroy(),x.withoutSkirts.destroy();if(this._wireframeIndexBuffer)for(let x of(this._wireframeIndexBuffer.destroy(),this._wireframeSegments))x.destroy()}_fillGridMeshWithLods(x,eu){let ef=new sa,em=new wa,e_=[],eg=x+1+2,ex=eu[0]+1,ev=eu[0]+1+(1+eu.length),l=(x,eu,ef)=>{let em=x===eg-1?x-2:0===x?x:x-1;return[em+=ef?24575:0,eu]};for(let x=0;x<eg;++x)ef.emplaceBack(...l(x,0,!0));for(let x=0;x<ex;++x)for(let eu=0;eu<eg;++eu)ef.emplaceBack(...l(eu,x,0===eu||eu===eg-1));for(let x=0;x<eu.length;++x){let em=eu[x];for(let x=0;x<eg;++x)ef.emplaceBack(...l(x,em,!0))}for(let x=0;x<eu.length;++x){let ex=em.length,eb=eu[x]+1+2,ew=new wa;for(let ef=0;ef<eb-1;ef++){let e_=ef===eb-2,ex=e_?eg*(ev-eu.length+x-ef):eg;for(let x=0;x<eg-1;x++){let eu=ef*eg+x;0===ef||e_||0===x||x===eg-2?(ew.emplaceBack(eu+1,eu,eu+ex),ew.emplaceBack(eu+ex,eu+ex+1,eu+1)):(em.emplaceBack(eu+1,eu,eu+ex),em.emplaceBack(eu+ex,eu+ex+1,eu+1))}}let eT=So.simpleSegment(0,ex,ef.length,em.length-ex);for(let x=0;x<ew.uint16.length;x+=3)em.emplaceBack(ew.uint16[x],ew.uint16[x+1],ew.uint16[x+2]);let eE=So.simpleSegment(0,ex,ef.length,em.length-ex);e_.push({withoutSkirts:eT,withSkirts:eE})}return{vertices:ef,indices:em,segments:e_}}_createGrid(x){let eu=this._fillGridMeshWithLods(64,iM);this._gridSegments=eu.segments,this._gridBuffer=x.createVertexBuffer(eu.vertices,iE.members),this._gridIndexBuffer=x.createIndexBuffer(eu.indices,!0)}_createPoles(x){let eu=new wa;for(let x=0;x<=64;x++)eu.emplaceBack(0,x+1,x+2);this._poleIndexBuffer=x.createIndexBuffer(eu,!0);let ef=new ka,em=new ka;this._poleSegments=[];for(let x=0,eu=0;x<5;x++){let e_=360/(1<<x);ef.emplaceBack(0,-iS,0,.5,0),em.emplaceBack(0,-iS,0,.5,1);for(let x=0;x<=64;x++){let eu=x/64,eg=Mr(0,e_,eu),[ex,ev,eb]=$l(iD,ik,eg,iS);ef.emplaceBack(ex,ev,eb,eu,0),em.emplaceBack(ex,ev,eb,eu,1)}this._poleSegments.push(So.simpleSegment(eu,0,66,64)),eu+=66}this._poleNorthVertexBuffer=x.createVertexBuffer(ef,iw,!1),this._poleSouthVertexBuffer=x.createVertexBuffer(em,iw,!1)}getGridBuffers(x,eu){return[this._gridBuffer,this._gridIndexBuffer,eu?this._gridSegments[x].withSkirts:this._gridSegments[x].withoutSkirts]}getPoleBuffers(x){return[this._poleNorthVertexBuffer,this._poleSouthVertexBuffer,this._poleIndexBuffer,this._poleSegments[x]]}getWirefameBuffers(x,eu){if(!this._wireframeSegments){let eu=new Ma;this._wireframeSegments=[];for(let x=0,ef=0;x<iM.length;x++){let em=iM[x];for(let x=1;x<em+1;x++)for(let ef=1;ef<65;ef++){let em=67*x+ef;eu.emplaceBack(em,em+1),eu.emplaceBack(em,em+67),eu.emplaceBack(em,em+67+1)}let e_=192*em;this._wireframeSegments.push(So.simpleSegment(0,ef,(em+1)*67,e_)),ef+=e_}this._wireframeIndexBuffer=x.createIndexBuffer(eu)}return[this._gridBuffer,this._wireframeIndexBuffer,this._wireframeSegments[eu]]}},x.GlyphManager=cf,x.ImagePosition=Pp,x.LivePerformanceUtils={mark(x){eT.performance.mark(x)},measure(x,eu,ef){eT.performance.measure(x,eu,ef)}},x.LngLat=ru,x.LngLatBounds=Io,x.LocalGlyphMode=rS,x.MAX_MERCATOR_LATITUDE=85.051129,x.MercatorCoordinate=pu,x.ONE_EM=24,x.OverscaledTileID=Mh,x.PerformanceMarkers=e4,x.Properties=Js,x.RGBAImage=Qu,x.Ray=vl,x.RequestManager=class{constructor(x,eu,ef){this._transformRequestFn=x,this._customAccessToken=eu,this._silenceAuthErrors=!!ef,this._createSkuToken()}_createSkuToken(){let x=function(){let x="";for(let eu=0;eu<10;eu++)x+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1","01",x].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=x.token,this._skuTokenExpiresAt=x.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(x,eu){return this._transformRequestFn&&this._transformRequestFn(x,eu)||{url:x}}normalizeStyleURL(x,eu){if(!mt(x))return x;let ef=_t(x);return ef.path=`/styles/v1${ef.path}`,this._makeAPIURL(ef,this._customAccessToken||eu)}normalizeGlyphsURL(x,eu){if(!mt(x))return x;let ef=_t(x);return ef.path=`/fonts/v1${ef.path}`,this._makeAPIURL(ef,this._customAccessToken||eu)}normalizeSourceURL(x,eu,ef,em){if(!mt(x))return x;let e_=_t(x);return e_.path=`/v4/${e_.authority}.json`,e_.params.push("secure"),ef&&e_.params.push(`language=${ef}`),em&&e_.params.push(`worldview=${em}`),this._makeAPIURL(e_,this._customAccessToken||eu)}normalizeSpriteURL(x,eu,ef,em){let e_=_t(x);return mt(x)?(e_.path=`/styles/v1${e_.path}/sprite${eu}${ef}`,this._makeAPIURL(e_,this._customAccessToken||em)):(e_.path+=`${eu}${ef}`,At(e_))}normalizeTileURL(x,eu,ef){if(this._isSkuTokenExpired()&&this._createSkuToken(),x&&!mt(x))return x;let em=_t(x);em.path=em.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${eu||ef&&"raster"!==em.authority&&512===ef?"@2x":""}${eM.supported?".webp":"$1"}`),"raster"===em.authority?em.path=`/${eS.RASTER_URL_PREFIX}${em.path}`:(em.path=em.path.replace(/^.+\/v4\//,"/"),em.path=`/${eS.TILE_URL_VERSION}${em.path}`);let e_=this._customAccessToken||function(x){for(let eu of x){let x=eu.match(/^access_token=(.*)$/);if(x)return x[1]}return null}(em.params)||eS.ACCESS_TOKEN;return eS.REQUIRE_ACCESS_TOKEN&&e_&&this._skuToken&&em.params.push(`sku=${this._skuToken}`),this._makeAPIURL(em,e_)}canonicalizeTileURL(x,eu){let ef=_t(x);if(!ef.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!ef.path.match(/\.[\w]+$/))return x;let em="mapbox://";ef.path.match(/^\/raster\/v1\//)?em+=`raster/${ef.path.replace(`/${eS.RASTER_URL_PREFIX}/`,"")}`:em+=`tiles/${ef.path.replace(`/${eS.TILE_URL_VERSION}/`,"")}`;let e_=ef.params;return eu&&(e_=e_.filter(x=>!x.match(/^access_token=/))),e_.length&&(em+=`?${e_.join("&")}`),em}canonicalizeTileset(x,eu){let ef=!!eu&&mt(eu),em=[];for(let eu of x.tiles||[])gt(eu)?em.push(this.canonicalizeTileURL(eu,ef)):em.push(eu);return em}_makeAPIURL(x,eu){let ef="See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes",em=_t(eS.API_URL);if(x.protocol=em.protocol,x.authority=em.authority,"http"===x.protocol){let eu=x.params.indexOf("secure");eu>=0&&x.params.splice(eu,1)}if("/"!==em.path&&(x.path=`${em.path}${x.path}`),!eS.REQUIRE_ACCESS_TOKEN)return At(x);if(eu=eu||eS.ACCESS_TOKEN,!this._silenceAuthErrors){if(!eu)throw Error(`An API access token is required to use Mapbox GL. ${ef}`);if("s"===eu[0])throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${ef}`)}return x.params=x.params.filter(x=>-1===x.indexOf("access_token")),x.params.push(`access_token=${eu||""}`),At(x)}},x.ResourceType=e$,x.SegmentVector=So,x.SourceCache=sy,x.StencilMode=ty,x.StructArrayLayout1ui2=Ta,x.StructArrayLayout2f1f2i16=xa,x.StructArrayLayout2i4=sa,x.StructArrayLayout2ui4=Ma,x.StructArrayLayout3f12=ba,x.StructArrayLayout3ui6=wa,x.StructArrayLayout4i8=oa,x.StructArrayLayout5f20=ka,x.Texture=_d,x.Tile=Fd,x.Transitionable=qs,x.Uniform1f=to,x.Uniform1i=class extends Qa{constructor(x
8){super(x),this.current=0}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&this.current!==ef&&(this.current=ef,this.gl.uniform1i(this.location,ef))}},x.Uniform2f=class extends Qa{constructor(x){super(x),this.current=[0,0]}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&(ef[0]===this.current[0]&&ef[1]===this.current[1]||(this.current=ef,this.gl.uniform2f(this.location,ef[0],ef[1])))}},x.Uniform3f=class extends Qa{constructor(x){super(x),this.current=[0,0,0]}set(x,eu,ef){this.fetchUniformLocation(x,eu)&&(ef[0]===this.current[0]&&ef[1]===this.current[1]&&ef[2]===this.current[2]||(this.current=ef,this.gl.uniform3f(this.location,ef[0],ef[1],ef[2])))}},x.Uniform4f=eo,x.UniformColor=ro,x.UniformMatrix2f=class extends Qa{constructor(x){super(x),this.current=ic}set(x,eu,ef){if(this.fetchUniformLocation(x,eu)){for(let x=0;x<4;x++)if(ef[x]!==this.current[x]){this.current=ef,this.gl.uniformMatrix2fv(this.location,!1,ef);break}}}},x.UniformMatrix3f=class extends Qa{constructor(x){super(x),this.current=il}set(x,eu,ef){if(this.fetchUniformLocation(x,eu)){for(let x=0;x<9;x++)if(ef[x]!==this.current[x]){this.current=ef,this.gl.uniformMatrix3fv(this.location,!1,ef);break}}}},x.UniformMatrix4f=class extends Qa{constructor(x){super(x),this.current=io}set(x,eu,ef){if(this.fetchUniformLocation(x,eu)){if(ef[12]!==this.current[12]||ef[0]!==this.current[0])return this.current=ef,void this.gl.uniformMatrix4fv(this.location,!1,ef);for(let x=1;x<16;x++)if(ef[x]!==this.current[x]){this.current=ef,this.gl.uniformMatrix4fv(this.location,!1,ef);break}}}},x.UnwrappedTileID=Ih,x.ValidationError=Wn,x.VectorTileFeature=iQ,x.VectorTileWorkerSource=class extends Yt{constructor(x,eu,ef,em,e_){super(),this.actor=x,this.layerIndex=eu,this.availableImages=ef,this.loadVectorData=e_||xy,this.loading={},this.loaded={},this.deduped=new gy(x.scheduler),this.isSpriteLoaded=em,this.scheduler=x.scheduler}loadTile(x,eu){let ef=x.uid,em=x&&x.request,e_=em&&em.collectResourceTiming,eg=this.loading[ef]=new yy(x);eg.abort=this.loadVectorData(x,(ex,ev)=>{let eb=!this.loading[ef];if(delete this.loading[ef],eb||ex||!ev)return eg.status="done",eb||(this.loaded[ef]=eg),eu(ex);let ew=ev.rawData,eT={};ev.expires&&(eT.expires=ev.expires),ev.cacheControl&&(eT.cacheControl=ev.cacheControl),eg.vectorTile=ev.vectorTile||new iK(new cp(ew));let h=()=>{eg.parse(eg.vectorTile,this.layerIndex,this.availableImages,this.actor,(x,ef)=>{if(x||!ef)return eu(x);let eg={};if(e_){let x=jt(em);x.length>0&&(eg.resourceTiming=JSON.parse(JSON.stringify(x)))}eu(null,z({rawTileData:ew.slice(0)},ef,eT,eg))})};this.isSpriteLoaded?h():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(h,{type:"parseTile",isSymbolTile:x.isSymbolTile,zoom:x.tileZoom}):h()}),this.loaded=this.loaded||{},this.loaded[ef]=eg})}reloadTile(x,eu){let ef=this.loaded,em=x.uid,e_=this;if(ef&&ef[em]){let eg=ef[em];eg.showCollisionBoxes=x.showCollisionBoxes,eg.enableTerrain=!!x.enableTerrain,eg.projection=x.projection,eg.tileTransform=Vf(x.tileID.canonical,x.projection);let a=(x,ef)=>{let em=eg.reloadCallback;em&&(delete eg.reloadCallback,eg.parse(eg.vectorTile,e_.layerIndex,this.availableImages,e_.actor,em)),eu(x,ef)};"parsing"===eg.status?eg.reloadCallback=a:"done"===eg.status&&(eg.vectorTile?eg.parse(eg.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a())}}abortTile(x,eu){let ef=x.uid,em=this.loading[ef];em&&(em.abort&&em.abort(),delete this.loading[ef]),eu()}removeTile(x,eu){let ef=this.loaded,em=x.uid;ef&&ef[em]&&delete ef[em],eu()}},x.WritingMode=rw,x.ZoomDependentExpression=Xn,x.add=Go,x.addDynamicAttributes=od,x.adjoint=function(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=eu[3],ex=eu[4],ev=eu[5],eb=eu[6],ew=eu[7],eT=eu[8];return x[0]=ex*eT-ev*ew,x[1]=e_*ew-em*eT,x[2]=em*ev-e_*ex,x[3]=ev*eb-eg*eT,x[4]=ef*eT-e_*eb,x[5]=e_*eg-ef*ev,x[6]=eg*ew-ex*eb,x[7]=em*eb-ef*ew,x[8]=ef*ex-em*eg,x},x.asyncAll=M,x.bezier=_,x.bindAll=V,x.boundsAttributes=rq,x.bufferConvexPolygon=function(x,eu){let ef=[];for(let em=0;em<x.length;em++){let e_=I(em-1,-1,x.length-1),eg=I(em+1,-1,x.length-1),ex=x[em],ev=x[eg],eb=x[e_].sub(ex).unit(),ew=ev.sub(ex).unit(),eT=ew.angleWithSep(eb.x,eb.y),eE=eb.add(ew).unit().mult(-1*eu/Math.sin(eT/2));ef.push(ex.add(eE))}return ef},x.cacheEntryPossiblyAdded=function(x){++eZ>eG&&(x.getActor().send("enforceCacheSizeLimit",ej),eZ=0)},x.calculateGlobeLabelMatrix=function(x,eu){let{x:ef,y:em}=x.point,e_=Xl(ef,em,x.worldSize/x._pixelsPerMercatorPixel,0,0);return Po(e_,e_,Zl(Pl(eu)))},x.calculateGlobeMatrix=function(x){let{x:eu,y:ef}=x.point,{lng:em,lat:e_}=x._center;return Xl(eu,ef,x.worldSize,em,e_)},x.calculateGlobeMercatorMatrix=function(x){let eu=x.pixelsPerMeter,ef=eu/(1/nu(x.center.lat)),em=Eo(new Float64Array(16));return Do(em,em,[x.point.x,x.point.y,0]),Vo(em,em,[ef,ef,eu]),Float32Array.from(em)},x.circumferenceAtLatitude=nu,x.clamp=S,x.clearTileCache=function(x){if(!et())return;let eu=eT.caches.delete(eU);x&&eu.catch(x).then(()=>x())},x.clipLine=sf,x.clone=function(x){var eu=new iv(16);return eu[0]=x[0],eu[1]=x[1],eu[2]=x[2],eu[3]=x[3],eu[4]=x[4],eu[5]=x[5],eu[6]=x[6],eu[7]=x[7],eu[8]=x[8],eu[9]=x[9],eu[10]=x[10],eu[11]=x[11],eu[12]=x[12],eu[13]=x[13],eu[14]=x[14],eu[15]=x[15],eu},x.clone$1=j,x.collisionCircleLayout=ry,x.config=eS,x.conjugate=function(x,eu){return x[0]=-eu[0],x[1]=-eu[1],x[2]=-eu[2],x[3]=eu[3],x},x.create=function(){var x=new iv(16);return iv!=Float32Array&&(x[1]=0,x[2]=0,x[3]=0,x[4]=0,x[6]=0,x[7]=0,x[8]=0,x[9]=0,x[11]=0,x[12]=0,x[13]=0,x[14]=0),x[0]=1,x[5]=1,x[10]=1,x[15]=1,x},x.create$1=zo,x.createExpression=Gn,x.createLayout=na,x.createStyleLayer=function(x){return"custom"===x.type?new xd(x):new rV[x.type](x)},x.cross=tl,x.degToRad=function(x){return x*ek},x.distance=function(x,eu){return Math.hypot(eu[0]-x[0],eu[1]-x[1],eu[2]-x[2])},x.div=function(x,eu,ef){return x[0]=eu[0]/ef[0],x[1]=eu[1]/ef[1],x[2]=eu[2]/ef[2],x},x.dot=Qo,x.earthRadius=iP,x.ease=eR,x.easeCubicInOut=w,x.ecefToLatLng=function([x,eu,ef]){let em=Math.hypot(x,eu,ef),e_=Math.atan2(x,ef),eg=.5*Math.PI-Math.acos(-eu/em);return new ru(e_*eP,eg*eP)},x.emitValidationErrors=Ri,x.endsWith=L,x.enforceCacheSizeLimit=function(x){rt(),eV&&eV.then(eu=>{eu.keys().then(ef=>{for(let em=0;em<ef.length-x;em++)eu.delete(ef[em])})})},x.evaluateSizeForFeature=tp,x.evaluateSizeForZoom=ep,x.evaluateVariableOffset=Sf,x.evented=t1,x.exactEquals=function(x,eu){return x[0]===eu[0]&&x[1]===eu[1]&&x[2]===eu[2]&&x[3]===eu[3]},x.exactEquals$1=function(x,eu){return x[0]===eu[0]&&x[1]===eu[1]&&x[2]===eu[2]},x.exported=e8,x.exported$1=eM,x.extend=z,x.extend$1=Wt,x.fillExtrusionHeightLift=bh,x.filterObject=R,x.fromMat4=function(x,eu){return x[0]=eu[0],x[1]=eu[1],x[2]=eu[2],x[3]=eu[4],x[4]=eu[5],x[5]=eu[6],x[6]=eu[8],x[7]=eu[9],x[8]=eu[10],x},x.fromQuat=function(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=eu[3],ex=ef+ef,ev=em+em,eb=e_+e_,ew=ef*ex,eT=em*ex,eE=em*ev,eS=e_*ex,eM=e_*ev,eI=e_*eb,eA=eg*ex,eC=eg*ev,ez=eg*eb;return x[0]=1-eE-eI,x[1]=eT+ez,x[2]=eS-eC,x[3]=0,x[4]=eT-ez,x[5]=1-ew-eI,x[6]=eM+eA,x[7]=0,x[8]=eS+eC,x[9]=eM-eA,x[10]=1-ew-eE,x[11]=0,x[12]=0,x[13]=0,x[14]=0,x[15]=1,x},x.fromRotation=function(x,eu){var ef=Math.sin(eu),em=Math.cos(eu);return x[0]=em,x[1]=ef,x[2]=0,x[3]=-ef,x[4]=em,x[5]=0,x[6]=0,x[7]=0,x[8]=1,x},x.fromScaling=Ro,x.furthestTileCorner=function(x){let eu=Math.round((x+45+360)%360/90)%4;return eL[eu]},x.getAABBPointSquareDist=function(x,eu,ef){let em=0;for(let e_=0;e_<2;++e_){let eg=ef?ef[e_]:0;x[e_]>eg&&(em+=(x[e_]-eg)*(x[e_]-eg)),eu[e_]<eg&&(em+=(eg-eu[e_])*(eg-eu[e_]))}return em},x.getAnchorAlignment=Zp,x.getAnchorJustification=If,x.getBounds=function(x){let eu=1/0,ef=1/0,em=-1/0,e_=-1/0;for(let eg of x)eu=Math.min(eu,eg.x),ef=Math.min(ef,eg.y),em=Math.max(em,eg.x),e_=Math.max(e_,eg.y);return{min:new eD(eu,ef),max:new eD(em,e_)}},x.getColumn=Y,x.getGridMatrix=function(x,eu,ef,em){let e_=eu.getNorth(),eg=eu.getSouth(),ex=eu.getWest(),ev=eu.getEast(),eb=1<<x.z,ew=ev-ex,eT=e_-eg,eE=e
8w/64,eS=-eT/iM[ef],eM=[0,eE,0,eS,0,0,e_,ex,0];if(x.z>0){let x=180/em;Bo(eM,eM,[x/ew+1,0,0,0,x/eT+1,0,-.5*x/eE,.5*x/eS,1])}return eM[2]=eb,eM[5]=x.x,eM[8]=x.y,eM},x.getImage=dt,x.getJSON=function(x,eu){return lt(z(x,{type:"json"}),eu)},x.getLatitudinalLod=function(x){x=S(x,-80.051129,80.051129)/80.051129*90;let eu=Math.pow(Math.abs(Math.sin(x*ek)),3);return Math.round(eu*(iM.length-1))},x.getMapSessionAPI=e3,x.getPerformanceMeasurement=jt,x.getProjection=rd,x.getRTLTextPluginStatus=Fs,x.getReferrer=eq,x.getTilePoint=function(x,{x:eu,y:ef},em=0){return new eD(((eu-em)*x.scale-x.x)*8192,(ef*x.scale-x.y)*8192)},x.getTileVec3=function(x,eu,ef=0){return No(((eu.x-ef)*x.scale-x.x)*8192,(eu.y*x.scale-x.y)*8192,eu.z*nu(lu(eu.y)))},x.getVideo=function(x,eu){let ef=eT.document.createElement("video");ef.muted=!0,ef.onloadstart=function(){eu(null,ef)};for(let eu=0;eu<x.length;eu++){let em=eT.document.createElement("source");(function(x){let eu=eT.document.createElement("a");return eu.href=x,eu.protocol===eT.document.location.protocol&&eu.host===eT.document.location.host})(x[eu])||(ef.crossOrigin="Anonymous"),em.src=x[eu],ef.appendChild(em)}return{cancel:()=>{}}},x.globeCenterToScreenPoint=function(x){let eu=[0,0,0],ef=Eo(new Float64Array(16));return Po(ef,x.pixelMatrix,x.globeMatrix),el(eu,eu,ef),new eD(eu[0],eu[1])},x.globeDenormalizeECEF=Zl,x.globeECEFOrigin=function(x,eu){let ef=[0,0,0];return el(ef,ef,Gl(Pl(eu.canonical))),el(ef,ef,x),ef},x.globeMetersToEcef=zl,x.globeNormalizeECEF=Gl,x.globePixelsToTileUnits=function(x,eu){return 8192/(512*Math.pow(2,x))*ql(Pl(eu))},x.globePoleMatrixForTile=function(x,eu,ef){let em=Eo(new Float64Array(16)),e_=(eu/(1<<x)-.5)*Math.PI*2;return Fo(em,ef.globeMatrix,e_),Float32Array.from(em)},x.globeTileBounds=Pl,x.globeTiltAtLngLat=Yl,x.globeToMercatorTransition=Kl,x.globeUseCustomAntiAliasing=function(x,eu,ef){let em=Kl(ef.zoom),e_=x.style.map._antialias,eg=!!eu.extStandardDerivatives,ex=eu.extStandardDerivativesForceOff||x.terrain&&x.terrain.exaggeration()>0;return 0===em&&!e_&&!ex&&eg},x.identity=Eo,x.identity$1=hl,x.invert=Co,x.isFullscreen=function(){return!!eT.document.fullscreenElement||!!eT.document.webkitFullscreenElement},x.isLngLatBehindGlobe=Hl,x.isMapAuthenticated=function(x){return e5.has(x)},x.isMapboxURL=mt,x.isSafariWithAntialiasingBug=function(x){let eu=x.navigator?x.navigator.userAgent:null;return!!X(x)&&eu&&(eu.match("Version/15.4")||eu.match("Version/15.5")||eu.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},x.latFromMercatorY=lu,x.latLngToECEF=Ul,x.len=qo,x.length=qo,x.length$1=function(x){return Math.hypot(x[0],x[1],x[2],x[3])},x.lngFromMercatorX=ou,x.loadVectorTile=xy,x.makeRequest=lt,x.mapValue=function(x,eu,ef,em,e_){return S((x-eu)/(ef-eu)*(e_-em)+em,em,e_)},x.mercatorScale=hu,x.mercatorXfromLng=iu,x.mercatorYfromLat=su,x.mercatorZfromAltitude=function(x,eu){return x/nu(eu)},x.mul=Po,x.mul$1=Xo,x.multiply=Po,x.multiply$1=Bo,x.multiply$2=Xo,x.nextPowerOfTwo=P,x.normalize=Jo,x.normalize$1=ll,x.normalize$2=ll,x.number=Mr,x.ortho=function(x,eu,ef,em,e_,eg,ex){var ev=1/(eu-ef),eb=1/(em-e_),ew=1/(eg-ex);return x[0]=-2*ev,x[1]=0,x[2]=0,x[3]=0,x[4]=0,x[5]=-2*eb,x[6]=0,x[7]=0,x[8]=0,x[9]=0,x[10]=2*ew,x[11]=0,x[12]=(eu+ef)*ev,x[13]=(e_+em)*eb,x[14]=(ex+eg)*ew,x[15]=1,x},x.pbf=cp,x.perspective=function(x,eu,ef,em,e_){var eg,ex=1/Math.tan(eu/2);return x[0]=ex/ef,x[1]=0,x[2]=0,x[3]=0,x[4]=0,x[5]=ex,x[6]=0,x[7]=0,x[8]=0,x[9]=0,x[11]=-1,x[12]=0,x[13]=0,x[15]=0,null!=e_&&e_!==1/0?(x[10]=(e_+em)*(eg=1/(em-e_)),x[14]=2*e_*em*eg):(x[10]=-1,x[14]=-2*em),x},x.pick=function(x,eu){let ef={};for(let em=0;em<eu.length;em++){let e_=eu[em];e_ in x&&(ef[e_]=x[e_])}return ef},x.plugin=t2,x.pointGeometry=eD,x.polesInViewport=function(x){let eu=Eo(new Float64Array(16));Po(eu,x.pixelMatrix,x.globeMatrix);let ef=[0,iI,0],em=[0,iS,0];return el(ef,ef,eu),el(em,em,eu),[ef[0]>0&&ef[0]<=x.width&&ef[1]>0&&ef[1]<=x.height&&!Hl(x,new ru(x.center.lat,90)),em[0]>0&&em[0]<=x.width&&em[1]>0&&em[1]<=x.height&&!Hl(x,new ru(x.center.lat,-90))]},x.polygonContainsPoint=Du,x.polygonIntersectsBox=Vu,x.polygonIntersectsPolygon=ku,x.polygonizeBounds=function(x,eu,ef=0,em=!0){let e_=new eD(ef,ef),eg=x.sub(e_),ex=eu.add(e_),ev=[eg,new eD(ex.x,eg.y),ex,new eD(eg.x,ex.y)];return em&&ev.push(eg.clone()),ev},x.posAttributes=iE,x.postMapLoadEvent=eQ,x.postPerformanceEvent=e1,x.postTurnstileEvent=eJ,x.potpack=Cp,x.prevPowerOfTwo=function(x){return x<=1?1:Math.pow(2,Math.floor(Math.log(x)/Math.LN2))},x.radToDeg=function(x){return x*eP},x.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],x.registerForPluginStateChange=function(x){return x({pluginStatus:tQ,pluginURL:t0}),t1.on("pluginStateChange",x),x},x.removeAuthState=function(x){e5.delete(x)},x.renderColorRamp=ec,x.resample=du,x.rotateX=Lo,x.rotateX$1=pl,x.rotateY=Fo,x.rotateY$1=fl,x.rotateZ=function(x,eu,ef){var em=Math.sin(ef),e_=Math.cos(ef),eg=eu[0],ex=eu[1],ev=eu[2],eb=eu[3],ew=eu[4],eT=eu[5],eE=eu[6],eS=eu[7];return eu!==x&&(x[8]=eu[8],x[9]=eu[9],x[10]=eu[10],x[11]=eu[11],x[12]=eu[12],x[13]=eu[13],x[14]=eu[14],x[15]=eu[15]),x[0]=eg*e_+ew*em,x[1]=ex*e_+eT*em,x[2]=ev*e_+eE*em,x[3]=eb*e_+eS*em,x[4]=ew*e_-eg*em,x[5]=eT*e_-ex*em,x[6]=eE*e_-ev*em,x[7]=eS*e_-eb*em,x},x.rotateZ$1=function(x,eu,ef){ef*=.5;var em=eu[0],e_=eu[1],eg=eu[2],ex=eu[3],ev=Math.sin(ef),eb=Math.cos(ef);return x[0]=em*eb+e_*ev,x[1]=e_*eb-em*ev,x[2]=eg*eb+ex*ev,x[3]=ex*eb-eg*ev,x},x.scale=Vo,x.scale$1=ol,x.scale$2=Ho,x.scaleAndAdd=Wo,x.set=function(x,eu,ef,em){return x[0]=eu,x[1]=ef,x[2]=em,x},x.setCacheLimits=function(x,eu){ej=x,eG=eu},x.setColumn=function(x,eu,ef){x[4*eu+0]=ef[0],x[4*eu+1]=ef[1],x[4*eu+2]=ef[2],x[4*eu+3]=ef[3]},x.setRTLTextPlugin=function(x,eu,ef=!1){if(tQ===tH||tQ===tY||tQ===tJ)throw Error("setRTLTextPlugin cannot be called multiple times.");t0=e8.resolveURL(x),tQ=tH,tK=eu,Vs(),ef||Rs()},x.smoothstep=k,x.spec=e9,x.squaredLength=function(x){var eu=x[0],ef=x[1],em=x[2];return eu*eu+ef*ef+em*em},x.storeAuthState=function(x,eu){eu?e5.add(x):e5.delete(x)},x.sub=Zo,x.subtract=Zo,x.symbolSize=rx,x.tileAABB=function(x,eu,ef,em,e_,eg,ex,ev,eb){if("globe"===eb.name)return function(x,eu,ef){let em=eu/x.worldSize,e_=x.globeMatrix;if(ef.z<=1){let x=Pl(ef).getCorners();return Ll(x,e_,em),_l.fromPoints(x)}let eg=Rl(ef),ex=jl(eg);Ll(ex,e_,em);let ev=Number.MAX_VALUE,eb=[-ev,-ev,-ev],ew=[ev,ev,ev];if(eg.contains(x.center)){for(let x of ex)Ko(ew,ew,x),Yo(eb,eb,x);eb[2]=0;let eu=x.point,ef=[eu.x*em,eu.y*em,0];return Ko(ew,ew,ef),Yo(eb,eb,ef),new _l(ew,eb)}let eT=[e_[12]*em,e_[13]*em,e_[14]*em],eE=eg.getCenter(),eS=S(x.center.lat,-85.051129,85.051129),eM=S(eE.lat,-85.051129,85.051129),eI=iu(x.center.lng),eA=su(eS),eC=eI-iu(eE.lng),ez=eA-su(eM);eC>.5?eC-=1:eC<-.5&&(eC+=1);let eD=0;Math.abs(eC)>Math.abs(ez)?eD=eC>=0?1:3:(eD=ez>=0?0:2,Wo(eT,eT,[e_[4]*em,e_[5]*em,e_[6]*em],-Math.sin((ez>=0?eg.getSouth():eg.getNorth())*ek)*iS));let eP=ex[eD],eL=ex[(eD+1)%4],eR=new El(eP,eL,eT),eB=[Cl(eR,0)||eP[0],Cl(eR,1)||eP[1],Cl(eR,2)||eP[2]],eO=Kl(x.zoom);if(eO>0){let em=function({x:x,y:eu,z:ef},em,e_,eg,ex){let ev=1/(1<<ef),eb=x*ev,ew=eb+ev,eT=eu*ev,eE=eT+ev,eS=0,eM=(eb+ew)/2-eg;return eM>
8.5?eS=-1:eM<-.5&&(eS=1),eb=((eb+eS)*em-(eg*=em))*e_+eg,ew=((ew+eS)*em-eg)*e_+eg,eT=(eT*em-(ex*=em))*e_+ex,[[eb,eE=(eE*em-ex)*e_+ex,0],[ew,eE,0],[ew,eT,0],[eb,eT,0]]}(ef,eu,x._pixelsPerMercatorPixel,eI,eA);for(let x=0;x<ex.length;x++)Dl(ex[x],em[x],eO);let e_=Go([],em[eD],em[(eD+1)%4]);Ho(e_,e_,.5),Dl(eB,e_,eO)}for(let x of ex)Ko(ew,ew,x),Yo(eb,eb,x);return ew[2]=Math.min(eP[2],eL[2]),Ko(ew,ew,eB),Yo(eb,eb,eB),new _l(ew,eb)}(x,eu,new kh(ef,em,e_));let ew=Vf({z:ef,x:em,y:e_},eb);return new _l([(eg+ew.x/ew.scale)*eu,eu*(ew.y/ew.scale),ex],[(eg+ew.x2/ew.scale)*eu,eu*(ew.y2/ew.scale),ev])},x.tileCornersToBounds=Rl,x.tileTransform=Vf,x.transformMat3=function(x,eu,ef){var em=eu[0],e_=eu[1],eg=eu[2];return x[0]=em*ef[0]+e_*ef[3]+eg*ef[6],x[1]=em*ef[1]+e_*ef[4]+eg*ef[7],x[2]=em*ef[2]+e_*ef[5]+eg*ef[8],x},x.transformMat4=el,x.transformMat4$1=ul,x.transformQuat=rl,x.transitionTileAABBinECEF=Vl,x.translate=Do,x.transpose=function(x,eu){if(x===eu){var ef=eu[1],em=eu[2],e_=eu[5];x[1]=eu[3],x[2]=eu[6],x[3]=ef,x[5]=eu[7],x[6]=em,x[7]=e_}else x[0]=eu[0],x[1]=eu[3],x[2]=eu[6],x[3]=eu[1],x[4]=eu[4],x[5]=eu[7],x[6]=eu[2],x[7]=eu[5],x[8]=eu[8];return x},x.triggerPluginCompletionEvent=Ds,x.uniqueId=E,x.updateGlobeVertexNormal=function(x,eu,ef,em,e_){let eg=5*eu+2;x.float32[eg+0]=ef,x.float32[eg+1]=em,x.float32[eg+2]=e_},x.validateCustomStyleLayer=function(x){let eu=[],ef=x.id;return void 0===ef&&eu.push({message:`layers.${ef}: missing required property "id"`}),void 0===x.render&&eu.push({message:`layers.${ef}: missing required method "render"`}),x.renderingMode&&"2d"!==x.renderingMode&&"3d"!==x.renderingMode&&eu.push({message:`layers.${ef}: property "renderingMode" must be either "2d" or "3d"`}),eu},x.validateFilter=x=>Fi(xi(x)),x.validateFog=x=>Fi(Bi(x)),x.validateLayer=x=>Fi(Ai(x)),x.validateLight=x=>Fi(Ti(x)),x.validateSource=x=>Fi(Ii(x)),x.validateStyle=Di,x.validateTerrain=x=>Fi(zi(x)),x.values=T,x.vectorTile=iJ,x.version=eE,x.warnOnce=U,x.window=eT,x.wrap=I}),define(["./shared"],function(x){let o=class o{constructor(x){this.keyCache={},x&&this.replace(x)}replace(x){this._layerConfigs={},this._layers={},this.update(x,[])}update(eu,ef){for(let ef of eu)this._layerConfigs[ef.id]=ef,(this._layers[ef.id]=x.createStyleLayer(ef)).compileFilter(),this.keyCache[ef.id]&&delete this.keyCache[ef.id];for(let x of ef)delete this.keyCache[x],delete this._layerConfigs[x],delete this._layers[x];this.familiesBySource={};let em=function(eu,ef){let em={};for(let e_=0;e_<eu.length;e_++){let eg=ef&&ef[eu[e_].id]||function(eu){let ef="";for(let em of x.refProperties)ef+=`/${function t(x){if("number"==typeof x||"boolean"==typeof x||"string"==typeof x||null==x)return JSON.stringify(x);if(Array.isArray(x)){let eu="[";for(let ef of x)eu+=`${t(ef)},`;return`${eu}]`}let eu="{";for(let ef of Object.keys(x).sort())eu+=`${ef}:${t(x[ef])},`;return`${eu}}`}(eu[em])}`;return ef}(eu[e_]);ef&&(ef[eu[e_].id]=eg);let ex=em[eg];ex||(ex=em[eg]=[]),ex.push(eu[e_])}let e_=[];for(let x in em)e_.push(em[x]);return e_}(x.values(this._layerConfigs),this.keyCache);for(let x of em){let eu=x.map(x=>this._layers[x.id]),ef=eu[0];if("none"===ef.visibility)continue;let em=ef.source||"",e_=this.familiesBySource[em];e_||(e_=this.familiesBySource[em]={});let eg=ef.sourceLayer||"_geojsonTileLayer",ex=e_[eg];ex||(ex=e_[eg]=[]),ex.push(eu)}}};let n=class n{loadTile(eu,ef){let{uid:em,encoding:e_,rawImageData:eg,padding:ex,buildQuadTree:ev}=eu,eb=x.window.ImageBitmap&&eg instanceof x.window.ImageBitmap?this.getImageData(eg,ex):eg;ef(null,new x.DEMData(em,eb,e_,ex<1,ev))}getImageData(x,eu){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(x.width,x.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d",{willReadFrequently:!0})),this.offscreenCanvas.width=x.width,this.offscreenCanvas.height=x.height,this.offscreenCanvasContext.drawImage(x,0,0,x.width,x.height);let ef=this.offscreenCanvasContext.getImageData(-eu,-eu,x.width+2*eu,x.height+2*eu);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),ef}};var eu,i=function e(x,eu){var ef,em=x&&x.type;if("FeatureCollection"===em)for(ef=0;ef<x.features.length;ef++)e(x.features[ef],eu);else if("GeometryCollection"===em)for(ef=0;ef<x.geometries.length;ef++)e(x.geometries[ef],eu);else if("Feature"===em)e(x.geometry,eu);else if("Polygon"===em)s(x.coordinates,eu);else if("MultiPolygon"===em)for(ef=0;ef<x.coordinates.length;ef++)s(x.coordinates[ef],eu);return x};function s(x,eu){if(0!==x.length){a(x[0],eu);for(var ef=1;ef<x.length;ef++)a(x[ef],!eu)}}function a(x,eu){for(var ef=0,em=0,e_=0,eg=x.length,ex=eg-1;e_<eg;ex=e_++){var ev=(x[e_][0]-x[ex][0])*(x[ex][1]+x[e_][1]),eb=ef+ev;em+=Math.abs(ef)>=Math.abs(ev)?ef-eb+ev:ev-eb+ef,ef=eb}ef+em>=0!=!!eu&&x.reverse()}let ef=x.VectorTileFeature.prototype.toGeoJSON;let u=class u{constructor(eu){this._feature=eu,this.extent=x.EXTENT,this.type=eu.type,this.properties=eu.tags,"id"in eu&&!isNaN(eu.id)&&
8(this.id=parseInt(eu.id,10))}loadGeometry(){if(1===this._feature.type){let eu=[];for(let ef of this._feature.geometry)eu.push([new x.pointGeometry(ef[0],ef[1])]);return eu}{let eu=[];for(let ef of this._feature.geometry){let em=[];for(let eu of ef)em.push(new x.pointGeometry(eu[0],eu[1]));eu.push(em)}return eu}}toGeoJSON(x,eu,em){return ef.call(this,x,eu,em)}};let h=class h{constructor(eu){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=x.EXTENT,this.length=eu.length,this._features=eu}feature(x){return new u(this._features[x])}};var em={},e_=x.pointGeometry,eg=x.vectorTile.VectorTileFeature;function m(x,eu){this.options=eu||{},this.features=x,this.length=x.length}function y(x,eu){this.id="number"==typeof x.id?x.id:void 0,this.type=x.type,this.rawGeometry=1===x.type?[x.geometry]:x.geometry,this.properties=x.tags,this.extent=eu||4096}m.prototype.feature=function(x){return new y(this.features[x],this.options.extent)},y.prototype.loadGeometry=function(){var x=this.rawGeometry;this.geometry=[];for(var eu=0;eu<x.length;eu++){for(var ef=x[eu],em=[],eg=0;eg<ef.length;eg++)em.push(new e_(ef[eg][0],ef[eg][1]));this.geometry.push(em)}return this.geometry},y.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var x=this.geometry,eu=1/0,ef=-1/0,em=1/0,e_=-1/0,eg=0;eg<x.length;eg++)for(var ex=x[eg],ev=0;ev<ex.length;ev++){var eb=ex[ev];eu=Math.min(eu,eb.x),ef=Math.max(ef,eb.x),em=Math.min(em,eb.y),e_=Math.max(e_,eb.y)}return[eu,em,ef,e_]},y.prototype.toGeoJSON=eg.prototype.toGeoJSON;var ex=x.pbf;function w(x){var eu=new ex;return function(x,eu){for(var ef in x.layers)eu.writeMessage(3,S,x.layers[ef])}(x,eu),eu.finish()}function S(x,eu){eu.writeVarintField(15,x.version||1),eu.writeStringField(1,x.name||""),eu.writeVarintField(5,x.extent||4096);var ef,em={keys:[],values:[],keycache:{},valuecache:{}};for(ef=0;ef<x.length;ef++)em.feature=x.feature(ef),eu.writeMessage(2,M,em);var e_=em.keys;for(ef=0;ef<e_.length;ef++)eu.writeStringField(3,e_[ef]);var eg=em.values;for(ef=0;ef<eg.length;ef++)eu.writeMessage(4,T,eg[ef])}function M(x,eu){var ef=x.feature;void 0!==ef.id&&eu.writeVarintField(1,ef.id),eu.writeMessage(2,P,x),eu.writeVarintField(3,ef.type),eu.writeMessage(4,I,ef)}function P(x,eu){var ef=x.feature,em=x.keys,e_=x.values,eg=x.keycache,ex=x.valuecache;for(var ev in ef.properties){var eb=ef.properties[ev],ew=eg[ev];if(null!==eb){void 0===ew&&(em.push(ev),eg[ev]=ew=em.length-1),eu.writeVarint(ew);var eT=typeof eb;"string"!==eT&&"boolean"!==eT&&"number"!==eT&&(eb=JSON.stringify(eb));var eE=eT+":"+eb,eS=ex[eE];void 0===eS&&(e_.push(eb),ex[eE]=eS=e_.length-1),eu.writeVarint(eS)}}}function I(x,eu){for(var ef=x.loadGeometry(),em=x.type,e_=0,eg=0,ex=ef.length,ev=0;ev<ex;ev++){var eb=ef[ev],ew=1;1===em&&(ew=eb.length),eu.writeVarint((ew<<3)+1);for(var eT=3===em?eb.length-1:eb.length,eE=0;eE<eT;eE++){1===eE&&1!==em&&eu.writeVarint((eT-1<<3)+2);var eS=eb[eE].x-e_,eM=eb[eE].y-eg;eu.writeVarint(eS<<1^eS>>31),eu.writeVarint(eM<<1^eM>>31),e_+=eS,eg+=eM}3===em&&eu.writeVarint(15)}}function T(x,eu){var ef=typeof x;"string"===ef?eu.writeStringField(1,x):"boolean"===ef?eu.writeBooleanField(7,x):"number"===ef&&(x%1!=0?eu.writeDoubleField(3,x):x<0?eu.writeSVarintField(6,x):eu.writeVarintField(5,x))}function C(x,eu,ef,em){O(x,ef,em),O(eu,2*ef,2*em),O(eu,2*ef+1,2*em+1)}function O(x,eu,ef){let em=x[eu];x[eu]=x[ef],x[ef]=em}function z(x,eu,ef,em){let e_=x-ef,eg=eu-em;return e_*e_+eg*eg}({get exports(){return em},set exports(e){em=e}}).exports=w,em.fromVectorTileJs=w,em.fromGeojsonVt=function(x,eu){eu=eu||{};var ef={};for(var em in x)ef[em]=new m(x[em].features,eu),ef[em].name=em,ef[em].version=eu.version,ef[em].extent=eu.extent;return w({layers:ef})},em.GeoJSONWrapper=m;let E=x=>x[0],F=x=>x[1];let N=class N{constructor(x,eu=E,ef=F,em=64,e_=Float64Array){this.nodeSize=em,this.points=x;let eg=x.length<65536?Uint16Array:Uint32Array,ex=this.ids=new eg(x.length),ev=this.coords=new e_(2*x.length);for(let em=0;em<x.length;em++)ex[em]=em,ev[2*em]=eu(x[em]),ev[2*em+1]=ef(x[em]);!function _(x,eu,ef,em,e_,eg){if(e_-em<=ef)return;let ex=em+e_>>1;(function L(x,eu,ef,em,e_,eg){for(;e_>em;){if(e_-em>600){let ex=e_-em+1,ev=ef-em+1,eb=Math.log(ex),ew=.5*Math.exp(2*eb/3),eT=.5*Math.sqrt(eb*ew*(ex-ew)/ex)*(ev-ex/2<0?-1:1);L(x,eu,ef,Math.max(em,Math.floor(ef-ev*ew/ex+eT)),Math.min(e_,Math.floor(ef+(ex-ev)*ew/ex+eT)),eg)}let ex=eu[2*ef+eg],ev=em,eb=e_;for(C(x,eu,em,ef),eu[2*e_+eg]>ex&&C(x,eu,em,e_);ev<eb;){for(C(x,eu,ev,eb),ev++,eb--;eu[2*ev+eg]<ex;)ev++;for(;eu[2*eb+eg]>ex;)eb--}eu[2*em+eg]===ex?C(x,eu,em,eb):C(x,eu,++eb,e_),eb<=ef&&(em=eb+1),ef<=eb&&(e_=eb-1)}})(x,eu,ex,em,e_,eg%2),_(x,eu,ef,em,ex-1,eg+1),_(x,eu,ef,ex+1,e_,eg+1)}(ex,ev,em,0,ex.length-1,0)}range(x,eu,ef,em){return function(x,eu,ef,em,e_,eg,ex){let ev,eb;let ew=[0,x.length-1,0],eT=[];for(;ew.length;
8){let eE=ew.pop(),eS=ew.pop(),eM=ew.pop();if(eS-eM<=ex){for(let ex=eM;ex<=eS;ex++)ev=eu[2*ex],eb=eu[2*ex+1],ev>=ef&&ev<=e_&&eb>=em&&eb<=eg&&eT.push(x[ex]);continue}let eI=Math.floor((eM+eS)/2);ev=eu[2*eI],eb=eu[2*eI+1],ev>=ef&&ev<=e_&&eb>=em&&eb<=eg&&eT.push(x[eI]);let eA=(eE+1)%2;(0===eE?ef<=ev:em<=eb)&&(ew.push(eM),ew.push(eI-1),ew.push(eA)),(0===eE?e_>=ev:eg>=eb)&&(ew.push(eI+1),ew.push(eS),ew.push(eA))}return eT}(this.ids,this.coords,x,eu,ef,em,this.nodeSize)}within(x,eu,ef){return function(x,eu,ef,em,e_,eg){let ex=[0,x.length-1,0],ev=[],eb=e_*e_;for(;ex.length;){let ew=ex.pop(),eT=ex.pop(),eE=ex.pop();if(eT-eE<=eg){for(let e_=eE;e_<=eT;e_++)z(eu[2*e_],eu[2*e_+1],ef,em)<=eb&&ev.push(x[e_]);continue}let eS=Math.floor((eE+eT)/2),eM=eu[2*eS],eI=eu[2*eS+1];z(eM,eI,ef,em)<=eb&&ev.push(x[eS]);let eA=(ew+1)%2;(0===ew?ef-e_<=eM:em-e_<=eI)&&(ex.push(eE),ex.push(eS-1),ex.push(eA)),(0===ew?ef+e_>=eM:em+e_>=eI)&&(ex.push(eS+1),ex.push(eT),ex.push(eA))}return ev}(this.ids,this.coords,x,eu,ef,this.nodeSize)}};let ev={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:x=>x},eb=Math.fround||(eu=new Float32Array(1),x=>(eu[0]=+x,eu[0]));let J=class J{constructor(x){this.options=B(Object.create(ev),x),this.trees=Array(this.options.maxZoom+1)}load(x){let{log:eu,minZoom:ef,maxZoom:em,nodeSize:e_}=this.options;eu&&console.time("total time");let eg=`prepare ${x.length} points`;eu&&console.time(eg),this.points=x;let ex=[];for(let eu=0;eu<x.length;eu++)x[eu].geometry&&ex.push(function(x,eu){let[ef,em]=x.geometry.coordinates;return{x:eb(A(ef)),y:eb(D(em)),zoom:1/0,index:eu,parentId:-1}}(x[eu],eu));this.trees[em+1]=new N(ex,R,q,e_,Float32Array),eu&&console.timeEnd(eg);for(let x=em;x>=ef;x--){let ef=+Date.now();ex=this._cluster(ex,x),this.trees[x]=new N(ex,R,q,e_,Float32Array),eu&&console.log("z%d: %d clusters in %dms",x,ex.length,+Date.now()-ef)}return eu&&console.timeEnd("total time"),this}getClusters(x,eu){let ef=((x[0]+180)%360+360)%360-180,em=Math.max(-90,Math.min(90,x[1])),e_=180===x[2]?180:((x[2]+180)%360+360)%360-180,eg=Math.max(-90,Math.min(90,x[3]));if(x[2]-x[0]>=360)ef=-180,e_=180;else if(ef>e_){let x=this.getClusters([ef,em,180,eg],eu),ex=this.getClusters([-180,em,e_,eg],eu);return x.concat(ex)}let ex=this.trees[this._limitZoom(eu)],ev=ex.range(A(ef),D(eg),A(e_),D(em)),eb=[];for(let x of ev){let eu=ex.points[x];eb.push(eu.numPoints?X(eu):this.points[eu.index])}return eb}getChildren(x){let eu=this._getOriginId(x),ef=this._getOriginZoom(x),em="No cluster with the specified id.",e_=this.trees[ef];if(!e_)throw Error(em);let eg=e_.points[eu];if(!eg)throw Error(em);let ex=this.options.radius/(this.options.extent*Math.pow(2,ef-1)),ev=e_.within(eg.x,eg.y,ex),eb=[];for(let eu of ev){let ef=e_.points[eu];ef.parentId===x&&eb.push(ef.numPoints?X(ef):this.points[ef.index])}if(0===eb.length)throw Error(em);return eb}getLeaves(x,eu,ef){let em=[];return this._appendLeaves(em,x,eu=eu||10,ef=ef||0,0),em}getTile(x,eu,ef){let em=this.trees[this._limitZoom(x)],e_=Math.pow(2,x),{extent:eg,radius:ex}=this.options,ev=ex/eg,eb=(ef-ev)/e_,ew=(ef+1+ev)/e_,eT={features:[]};return this._addTileFeatures(em.range((eu-ev)/e_,eb,(eu+1+ev)/e_,ew),em.points,eu,ef,e_,eT),0===eu&&this._addTileFeatures(em.range(1-ev/e_,eb,1,ew),em.points,e_,ef,e_,eT),eu===e_-1&&this._addTileFeatures(em.range(0,eb,ev/e_,ew),em.points,-1,ef,e_,eT),eT.features.length?eT:null}getClusterExpansionZoom(x){let eu=this._getOriginZoom(x)-1;for(;eu<=this.options.maxZoom;){let ef=this.getChildren(x);if(eu++,1!==ef.length)break;x=ef[0].properties.cluster_id}return eu}_appendLeaves(x,eu,ef,em,e_){let eg=this.getChildren(eu);for(let eu of eg){let eg=eu.properties;if(eg&&eg.cluster?e_+eg.point_count<=em?e_+=eg.point_count:e_=this._appendLeaves(x,eg.cluster_id,ef,em,e_):e_<em?e_++:x.push(eu),x.length===ef)break}return e_}_addTileFeatures(x,eu,ef,em,e_,eg){for(let ex of x){let x,ev,eb,ew;let eT=eu[ex],eE=eT.numPoints;if(eE)x=V(eT),ev=eT.x,eb=eT.y;else{let eu=this.points[eT.index];x=eu.properties,ev=A(eu.geometry.coordinates[0]),eb=D(eu.geometry.coordinates[1])}let eS={type:1,geometry:[[Math.round(this.options.extent*(ev*e_-ef)),Math.round(this.options.extent*(eb*e_-em))]],tags:x};eE?ew=eT.id:this.options.generateId?ew=eT.index:this.points[eT.index].id&&(ew=this.points[eT.index].id),void 0!==ew&&(eS.id=ew),eg.features.push(eS)}}_limitZoom(x){return Math.max(this.options.minZoom,Math.min(Math.floor(+x),this.options.maxZoom+1))}_cluster(x,eu){let ef=[],{radius:em,extent:e_,reduce:eg,minPoints:ex}=this.options,ev=em/(e_*Math.pow(2,eu));for(let em=0;em<x.length;em++){let e_=x[em];if(e_.zoom<=eu)continue;e_.zoom=eu;let eM=this.trees[eu+1],eI=eM.within(e_.x,e_.y,ev),eA=e_.numPoints||1,eC=eA;for(let x of eI){let ef=eM.points[x];ef.zoom>eu&&(eC+=ef.numPoints||1)}if(eC>eA&&eC>=ex){var ew,eT,eE,eS;let x=e_.x*eA,ex=e_.y*eA,ev=eg&&eA>
81?this._map(e_,!0):null,ez=(em<<5)+(eu+1)+this.points.length;for(let ef of eI){let em=eM.points[ef];if(em.zoom<=eu)continue;em.zoom=eu;let eb=em.numPoints||1;x+=em.x*eb,ex+=em.y*eb,em.parentId=ez,eg&&(ev||(ev=this._map(e_,!0)),eg(ev,this._map(em)))}e_.parentId=ez,ef.push((ew=x/eC,eT=ex/eC,eE=eC,eS=ev,{x:eb(ew),y:eb(eT),zoom:1/0,id:ez,parentId:-1,numPoints:eE,properties:eS}))}else if(ef.push(e_),eC>1)for(let x of eI){let em=eM.points[x];em.zoom<=eu||(em.zoom=eu,ef.push(em))}}return ef}_getOriginId(x){return x-this.points.length>>5}_getOriginZoom(x){return(x-this.points.length)%32}_map(x,eu){if(x.numPoints)return eu?B({},x.properties):x.properties;let ef=this.points[x.index].properties,em=this.options.map(ef);return eu&&em===ef?B({},em):em}};function X(x){return{type:"Feature",id:x.id,properties:V(x),geometry:{type:"Point",coordinates:[360*(x.x-.5),function(x){let eu=(180-360*x)*Math.PI/180;return 360*Math.atan(Math.exp(eu))/Math.PI-90}(x.y)]}}}function V(x){let eu=x.numPoints,ef=eu>=1e4?`${Math.round(eu/1e3)}k`:eu>=1e3?Math.round(eu/100)/10+"k":eu;return B(B({},x.properties),{cluster:!0,cluster_id:x.id,point_count:eu,point_count_abbreviated:ef})}function A(x){return x/360+.5}function D(x){let eu=Math.sin(x*Math.PI/180),ef=.5-.25*Math.log((1+eu)/(1-eu))/Math.PI;return ef<0?0:ef>1?1:ef}function B(x,eu){for(let ef in eu)x[ef]=eu[ef];return x}function R(x){return x.x}function q(x){return x.y}function H(x,eu,ef,em){var e_={id:void 0===x?null:x,type:eu,geometry:ef,tags:em,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(x){var eu=x.geometry,ef=x.type;if("Point"===ef||"MultiPoint"===ef||"LineString"===ef)K(x,eu);else if("Polygon"===ef||"MultiLineString"===ef)for(var em=0;em<eu.length;em++)K(x,eu[em]);else if("MultiPolygon"===ef)for(em=0;em<eu.length;em++)for(var e_=0;e_<eu[em].length;e_++)K(x,eu[em][e_])}(e_),e_}function K(x,eu){for(var ef=0;ef<eu.length;ef+=3)x.minX=Math.min(x.minX,eu[ef]),x.minY=Math.min(x.minY,eu[ef+1]),x.maxX=Math.max(x.maxX,eu[ef]),x.maxY=Math.max(x.maxY,eu[ef+1])}function ee(x,eu,ef,em){if(eu.geometry){var e_=eu.geometry.coordinates,eg=eu.geometry.type,ex=Math.pow(ef.tolerance/((1<<ef.maxZoom)*ef.extent),2),ev=[],eb=eu.id;if(ef.promoteId?eb=eu.properties[ef.promoteId]:ef.generateId&&(eb=em||0),"Point"===eg)te(e_,ev);else if("MultiPoint"===eg)for(var ew=0;ew<e_.length;ew++)te(e_[ew],ev);else if("LineString"===eg)re(e_,ev,ex,!1);else if("MultiLineString"===eg){if(ef.lineMetrics){for(ew=0;ew<e_.length;ew++)re(e_[ew],ev=[],ex,!1),x.push(H(eb,"LineString",ev,eu.properties));return}oe(e_,ev,ex,!1)}else if("Polygon"===eg)oe(e_,ev,ex,!0);else{if("MultiPolygon"!==eg){if("GeometryCollection"===eg){for(ew=0;ew<eu.geometry.geometries.length;ew++)ee(x,{id:eb,geometry:eu.geometry.geometries[ew],properties:eu.properties},ef,em);return}throw Error("Input data is not a valid GeoJSON object.")}for(ew=0;ew<e_.length;ew++){var eT=[];oe(e_[ew],eT,ex,!0),ev.push(eT)}}x.push(H(eb,eg,ev,eu.properties))}}function te(x,eu){var ef;eu.push(x[0]/360+.5),eu.push(ie(x[1])),eu.push(0)}function re(x,eu,ef,em){for(var e_,eg,ex=0,ev=0;ev<x.length;ev++){var eb,ew=x[ev][0]/360+.5,eT=ie(x[ev][1]);eu.push(ew),eu.push(eT),eu.push(0),ev>0&&(ex+=em?(e_*eT-ew*eg)/2:Math.sqrt(Math.pow(ew-e_,2)+Math.pow(eT-eg,2))),e_=ew,eg=eT}var eE=eu.length-3;eu[2]=1,function U(x,eu,ef,em){for(var e_,eg=em,ex=ef-eu>>1,ev=ef-eu,eb=x[eu],ew=x[eu+1],eT=x[ef],eE=x[ef+1],eS=eu+3;eS<ef;eS+=3){var eM=function(x,eu,ef,em,e_,eg){var ex=e_-ef,ev=eg-em;if(0!==ex||0!==ev){var eb=((x-ef)*ex+(eu-em)*ev)/(ex*ex+ev*ev);eb>1?(ef=e_,em=eg):eb>0&&(ef+=ex*eb,em+=ev*eb)}return(ex=x-ef)*ex+(ev=eu-em)*ev}(x[eS],x[eS+1],eb,ew,eT,eE);if(eM>eg)e_=eS,eg=eM;else if(eM===eg){var eI=Math.abs(eS-ex);eI<ev&&(e_=eS,ev=eI)}}eg>em&&(e_-eu>3&&U(x,eu,e_,em),x[e_+2]=eg,ef-e_>3&&U(x,e_,ef,em))}(eu,0,eE,ef),eu[eE+2]=1,eu.size=Math.abs(ex),eu.start=0,eu.end=eu.size}function oe(x,eu,ef,em){for(var e_=0;e_<x.length;e_++){var eg=[];re(x[e_],eg,ef,em),eu.push(eg)}}function ie(x){var eu=Math.sin(x*Math.PI/180),ef=.5-.25*Math.log((1+eu)/(1-eu))/Math.PI;return ef<0?0:ef>1?1:ef}function se(x,eu,ef,em,e_,eg,ex,ev){if(em/=eu,eg>=(ef/=eu)&&ex<em)return x;if(ex<ef||eg>=em)return null;for(var eb=[],ew=0;ew<x.length;ew++){var eT=x[ew],eE=eT.geometry,eS=eT.type,eM=0===e_?eT.minX:eT.minY,eI=0===e_?eT.maxX:eT.maxY;if(eM>=ef&&eI<em)eb.push(eT);else if(!(eI<ef||eM>=em)){var eA=[];
vendor: 4,430 bytes, line 8
8if("Point"===eS||"MultiPoint"===eS)(function(x,eu,ef,em,e_){for(var eg=0;eg<x.length;eg+=3){var ex=x[eg+e_];ex>=ef&&ex<=em&&(eu.push(x[eg]),eu.push(x[eg+1]),eu.push(x[eg+2]))}})(eE,eA,ef,em,e_);else if("LineString"===eS)le(eE,eA,ef,em,e_,!1,ev.lineMetrics);else if("MultiLineString"===eS)he(eE,eA,ef,em,e_,!1);else if("Polygon"===eS)he(eE,eA,ef,em,e_,!0);else if("MultiPolygon"===eS)for(var eC=0;eC<eE.length;eC++){var ez=[];he(eE[eC],ez,ef,em,e_,!0),ez.length&&eA.push(ez)}if(eA.length){if(ev.lineMetrics&&"LineString"===eS){for(eC=0;eC<eA.length;eC++)eb.push(H(eT.id,eS,eA[eC],eT.tags));continue}"LineString"!==eS&&"MultiLineString"!==eS||(1===eA.length?(eS="LineString",eA=eA[0]):eS="MultiLineString"),"Point"!==eS&&"MultiPoint"!==eS||(eS=3===eA.length?"Point":"MultiPoint"),eb.push(H(eT.id,eS,eA,eT.tags))}}}return eb.length?eb:null}function le(x,eu,ef,em,e_,eg,ex){for(var ev,eb,ew=ue(x),eT=0===e_?fe:pe,eE=x.start,eS=0;eS<x.length-3;eS+=3){var eM=x[eS],eI=x[eS+1],eA=x[eS+2],eC=x[eS+3],ez=x[eS+4],eD=0===e_?eM:eI,ek=0===e_?eC:ez,eP=!1;ex&&(ev=Math.sqrt(Math.pow(eM-eC,2)+Math.pow(eI-ez,2))),eD<ef?ek>ef&&(eb=eT(ew,eM,eI,eC,ez,ef),ex&&(ew.start=eE+ev*eb)):eD>em?ek<em&&(eb=eT(ew,eM,eI,eC,ez,em),ex&&(ew.start=eE+ev*eb)):ce(ew,eM,eI,eA),ek<ef&&eD>=ef&&(eb=eT(ew,eM,eI,eC,ez,ef),eP=!0),ek>em&&eD<=em&&(eb=eT(ew,eM,eI,eC,ez,em),eP=!0),!eg&&eP&&(ex&&(ew.end=eE+ev*eb),eu.push(ew),ew=ue(x)),ex&&(eE+=ev)}var eL=x.length-3;eM=x[eL],eI=x[eL+1],eA=x[eL+2],(eD=0===e_?eM:eI)>=ef&&eD<=em&&ce(ew,eM,eI,eA),eL=ew.length-3,eg&&eL>=3&&(ew[eL]!==ew[0]||ew[eL+1]!==ew[1])&&ce(ew,ew[0],ew[1],ew[2]),ew.length&&eu.push(ew)}function ue(x){var eu=[];return eu.size=x.size,eu.start=x.start,eu.end=x.end,eu}function he(x,eu,ef,em,e_,eg){for(var ex=0;ex<x.length;ex++)le(x[ex],eu,ef,em,e_,eg,!1)}function ce(x,eu,ef,em){x.push(eu),x.push(ef),x.push(em)}function fe(x,eu,ef,em,e_,eg){var ex=(eg-eu)/(em-eu);return x.push(eg),x.push(ef+(e_-ef)*ex),x.push(1),ex}function pe(x,eu,ef,em,e_,eg){var ex=(eg-ef)/(e_-ef);return x.push(eu+(em-eu)*ex),x.push(eg),x.push(1),ex}function ge(x,eu){for(var ef=[],em=0;em<x.length;em++){var e_,eg=x[em],ex=eg.type;if("Point"===ex||"MultiPoint"===ex||"LineString"===ex)e_=de(eg.geometry,eu);else if("MultiLineString"===ex||"Polygon"===ex){e_=[];for(var ev=0;ev<eg.geometry.length;ev++)e_.push(de(eg.geometry[ev],eu))}else if("MultiPolygon"===ex)for(e_=[],ev=0;ev<eg.geometry.length;ev++){for(var eb=[],ew=0;ew<eg.geometry[ev].length;ew++)eb.push(de(eg.geometry[ev][ew],eu));e_.push(eb)}ef.push(H(eg.id,ex,e_,eg.tags))}return ef}function de(x,eu){var ef=[];ef.size=x.size,void 0!==x.start&&(ef.start=x.start,ef.end=x.end);for(var em=0;em<x.length;em+=3)ef.push(x[em]+eu,x[em+1],x[em+2]);return ef}function me(x,eu){if(x.transformed)return x;var ef,em,e_,eg=1<<x.z,ex=x.x,ev=x.y;for(ef=0;ef<x.features.length;ef++){var eb=x.features[ef],ew=eb.geometry,eT=eb.type;if(eb.geometry=[],1===eT)for(em=0;em<ew.length;em+=2)eb.geometry.push(ye(ew[em],ew[em+1],eu,eg,ex,ev));else for(em=0;em<ew.length;em++){var eE=[];for(e_=0;e_<ew[em].length;e_+=2)eE.push(ye(ew[em][e_],ew[em][e_+1],eu,eg,ex,ev));eb.geometry.push(eE)}}return x.transformed=!0,x}function ye(x,eu,ef,em,e_,eg){return[Math.round(ef*(x*em-e_)),Math.round(ef*(eu*em-eg))]}function we(x,eu,ef,em,e_,eg){var ex=em*em;if(em>0&&eu.size<(e_?ex:em))ef.numPoints+=eu.length/3;else{for(var ev=[],eb=0;eb<eu.length;eb+=3)(0===em||eu[eb+2]>ex)&&(ef.numSimplified++,ev.push(eu[eb]),ev.push(eu[eb+1])),ef.numPoints++;e_&&function(x,eu){for(var ef=0,em=0,e_=x.length,eg=e_-2;em<e_;eg=em,em+=2)ef+=(x[em]-x[eg])*(x[em+1]+x[eg+1]);if(ef>0===eu)for(em=0,e_=x.length;em<e_/2;em+=2){var ex=x[em],ev=x[em+1];x[em]=x[e_-2-em],x[em+1]=x[e_-1-em],x[e_-2-em]=ex,x[e_-1-em]=ev}}(ev,eg),x.push(ev)}}function Se(x,eu){var ef,em,e_,eg,ex,ev,eb=(eu=this.options=function(x,eu){for(var ef in eu)x[ef]=eu[ef];return x}(Object.create(this.options),eu)).debug;if(eb&&console.time("preprocess data"),eu.maxZoom<0||eu.maxZoom>24)throw Error("maxZoom should be in the 0-24 range");if(eu.promoteId&&eu.generateId)throw Error("promoteId and generateId cannot be used together.");var ew=function(x,eu){var ef=[];if("FeatureCollection"===x.type)for(var em=0;em<x.features.length;em++)ee(ef,x.features[em],eu,em);else ee(ef,"Feature"===x.type?x:{geometry:x},eu);return ef}(x,eu);this.tiles={},this.tileCoords=[],eb&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",eu.
vendor: 4,588 bytes, line 8
8indexMaxZoom,eu.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),ef=ew,e_=(em=eu).buffer/em.extent,eg=ef,ex=se(ef,1,-1-e_,e_,0,-1,2,em),ev=se(ef,1,1-e_,2+e_,0,-1,2,em),(ex||ev)&&(eg=se(ef,1,-e_,1+e_,0,-1,2,em)||[],ex&&(eg=ge(ex,1).concat(eg)),ev&&(eg=eg.concat(ge(ev,-1)))),(ew=eg).length&&this.splitTile(ew,0,0,0),eb&&(ew.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)))}function Me(x,eu,ef){return 32*((1<<x)*ef+eu)+x}function Pe(x,eu){let ef=x.tileID.canonical;if(!this._geoJSONIndex)return eu(null,null);let e_=this._geoJSONIndex.getTile(ef.z,ef.x,ef.y);if(!e_)return eu(null,null);let eg=new h(e_.features),ex=em(eg);0===ex.byteOffset&&ex.byteLength===ex.buffer.byteLength||(ex=new Uint8Array(ex)),eu(null,{vectorTile:eg,rawData:ex.buffer})}Se.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Se.prototype.splitTile=function(x,eu,ef,em,e_,eg,ex){for(var ev=[x,eu,ef,em],eb=this.options,ew=eb.debug;ev.length;){em=ev.pop(),ef=ev.pop(),eu=ev.pop(),x=ev.pop();var eT=1<<eu,eE=Me(eu,ef,em),eS=this.tiles[eE];if(!eS&&(ew>1&&console.time("creation"),eS=this.tiles[eE]=function(x,eu,ef,em,e_){for(var eg=eu===e_.maxZoom?0:e_.tolerance/((1<<eu)*e_.extent),ex={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:ef,y:em,z:eu,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},ev=0;ev<x.length;ev++){ex.numFeatures++,function(x,eu,ef,em){var e_=eu.geometry,eg=eu.type,ex=[];if("Point"===eg||"MultiPoint"===eg)for(var ev=0;ev<e_.length;ev+=3)ex.push(e_[ev]),ex.push(e_[ev+1]),x.numPoints++,x.numSimplified++;else if("LineString"===eg)we(ex,e_,x,ef,!1,!1);else if("MultiLineString"===eg||"Polygon"===eg)for(ev=0;ev<e_.length;ev++)we(ex,e_[ev],x,ef,"Polygon"===eg,0===ev);else if("MultiPolygon"===eg)for(var eb=0;eb<e_.length;eb++){var ew=e_[eb];for(ev=0;ev<ew.length;ev++)we(ex,ew[ev],x,ef,!0,0===ev)}if(ex.length){var eT=eu.tags||null;if("LineString"===eg&&em.lineMetrics){for(var eE in eT={},eu.tags)eT[eE]=eu.tags[eE];eT.mapbox_clip_start=e_.start/e_.size,eT.mapbox_clip_end=e_.end/e_.size}var eS={geometry:ex,type:"Polygon"===eg||"MultiPolygon"===eg?3:"LineString"===eg||"MultiLineString"===eg?2:1,tags:eT};null!==eu.id&&(eS.id=eu.id),x.features.push(eS)}}(ex,x[ev],eg,e_);var eb=x[ev].minX,ew=x[ev].minY,eT=x[ev].maxX,eE=x[ev].maxY;eb<ex.minX&&(ex.minX=eb),ew<ex.minY&&(ex.minY=ew),eT>ex.maxX&&(ex.maxX=eT),eE>ex.maxY&&(ex.maxY=eE)}return ex}(x,eu,ef,em,eb),this.tileCoords.push({z:eu,x:ef,y:em}),ew)){ew>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",eu,ef,em,eS.numFeatures,eS.numPoints,eS.numSimplified),console.timeEnd("creation"));var eM="z"+eu;this.stats[eM]=(this.stats[eM]||0)+1,this.total++}if(eS.source=x,e_){if(eu===eb.maxZoom||eu===e_)continue;var eI=1<<e_-eu;if(ef!==Math.floor(eg/eI)||em!==Math.floor(ex/eI))continue}else if(eu===eb.indexMaxZoom||eS.numPoints<=eb.indexMaxPoints)continue;if(eS.source=null,0!==x.length){ew>1&&console.time("clipping");var eA,eC,ez,eD,ek,eP,eL=.5*eb.buffer/eb.extent,eR=.5-eL,eB=.5+eL,eO=1+eL;eA=eC=ez=eD=null,ek=se(x,eT,ef-eL,ef+eB,0,eS.minX,eS.maxX,eb),eP=se(x,eT,ef+eR,ef+eO,0,eS.minX,eS.maxX,eb),x=null,ek&&(eA=se(ek,eT,em-eL,em+eB,1,eS.minY,eS.maxY,eb),eC=se(ek,eT,em+eR,em+eO,1,eS.minY,eS.maxY,eb),ek=null),eP&&(ez=se(eP,eT,em-eL,em+eB,1,eS.minY,eS.maxY,eb),eD=se(eP,eT,em+eR,em+eO,1,eS.minY,eS.maxY,eb),eP=null),ew>1&&console.timeEnd("clipping"),ev.push(eA||[],eu+1,2*ef,2*em),ev.push(eC||[],eu+1,2*ef,2*em+1),ev.push(ez||[],eu+1,2*ef+1,2*em),ev.push(eD||[],eu+1,2*ef+1,2*em+1)}}},Se.prototype.getTile=function(x,eu,ef){var em=this.options,e_=em.extent,eg=em.debug;if(x<0||x>24)return null;var ex=1<<x,ev=Me(x,eu=(eu%ex+ex)%ex,ef);if(this.tiles[ev])return me(this.tiles[ev],e_);eg>1&&console.log("drilling down to z%d-%d-%d",x,eu,ef);for(var eb,ew=x,eT=eu,eE=ef;!eb&&ew>0;)ew--,eT=Math.floor(eT/2),eE=Math.floor(eE/2),eb=this.tiles[Me(ew,eT,eE)];return eb&&eb.source?(eg>1&&console.log("found parent tile z%d-%d-%d",ew,eT,eE),eg>1&&console.time("drilling down"),this.splitTile(eb.source,ew,eT,eE,x,eu,ef),eg>1&&console.timeEnd("drilling down"),this.tiles[ev]?me(this.tiles[ev],e_):null):null};let be=class be extends x.VectorTileWorkerSource{constructor(x,eu,ef,em,e_){super(x,eu,ef,em,Pe),e_&&(this.loadGeoJSON=e_)}loadData(eu,ef){let em=eu&&eu.request,e_=em&&em.collectResourceTiming;this.loadGeoJSON(eu,(eg,ex)=>
8{if(eg||!ex)return ef(eg);if("object"!=typeof ex)return ef(Error(`Input data given to '${eu.source}' is not a valid GeoJSON object.`));{i(ex,!0);try{var ev,eb;if(eu.filter){let ef=x.createExpression(eu.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===ef.result)throw Error(ef.value.map(x=>`${x.key}: ${x.message}`).join(", "));let em=ex.features.filter(x=>ef.value.evaluate({zoom:0},x));ex={type:"FeatureCollection",features:em}}this._geoJSONIndex=eu.cluster?new J(function({superclusterOptions:eu,clusterProperties:ef}){if(!ef||!eu)return eu;let em={},e_={},eg={accumulated:null,zoom:0},ex={properties:null},ev=Object.keys(ef);for(let eu of ev){let[eg,ex]=ef[eu],ev=x.createExpression(ex),eb=x.createExpression("string"==typeof eg?[eg,["accumulated"],["get",eu]]:eg);em[eu]=ev.value,e_[eu]=eb.value}return eu.map=x=>{ex.properties=x;let eu={};for(let x of ev)eu[x]=em[x].evaluate(eg,ex);return eu},eu.reduce=(x,eu)=>{for(let ef of(ex.properties=eu,ev))eg.accumulated=x[ef],x[ef]=e_[ef].evaluate(eg,ex)},eu}(eu)).load(ex.features):(ev=ex,eb=eu.geojsonVtOptions,new Se(ev,eb))}catch(x){return ef(x)}this.loaded={};let eg={};if(e_){let ef=x.getPerformanceMeasurement(em);ef&&(eg.resourceTiming={},eg.resourceTiming[eu.source]=JSON.parse(JSON.stringify(ef)))}ef(null,eg)}})}reloadTile(x,eu){let ef=this.loaded;return ef&&ef[x.uid]?super.reloadTile(x,eu):this.loadTile(x,eu)}loadGeoJSON(eu,ef){if(eu.request)x.getJSON(eu.request,ef);else{if("string"!=typeof eu.data)return ef(Error(`Input data given to '${eu.source}' is not a valid GeoJSON object.`));try{return ef(null,JSON.parse(eu.data))}catch(x){return ef(Error(`Input data given to '${eu.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(x,eu){try{eu(null,this._geoJSONIndex.getClusterExpansionZoom(x.clusterId))}catch(x){eu(x)}}getClusterChildren(x,eu){try{eu(null,this._geoJSONIndex.getChildren(x.clusterId))}catch(x){eu(x)}}getClusterLeaves(x,eu){try{eu(null,this._geoJSONIndex.getLeaves(x.clusterId,x.limit,x.offset))}catch(x){eu(x)}}};let ke=class ke{constructor(eu){this.self=eu,this.actor=new x.Actor(eu,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=x.getProjection({name:"mercator"}),this.workerSourceTypes={vector:x.VectorTileWorkerSource,geojson:be},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(x,eu)=>{if(this.workerSourceTypes[x])throw Error(`Worker source with name "${x}" already registered.`);this.workerSourceTypes[x]=eu},this.self.registerRTLTextPlugin=eu=>{if(x.plugin.isParsed())throw Error("RTL text plugin already registered.");x.plugin.applyArabicShaping=eu.applyArabicShaping,x.plugin.processBidirectionalText=eu.processBidirectionalText,x.plugin.processStyledBidirectionalText=eu.processStyledBidirectionalText}}clearCaches(x,eu,ef){delete this.layerIndexes[x],delete this.availableImages[x],delete this.workerSources[x],delete this.demWorkerSources[x],ef()}checkIfReady(x,eu,ef){ef()}setReferrer(x,eu){this.referrer=eu}spriteLoaded(eu,ef){for(let em in this.isSpriteLoaded[eu]=ef,this.workerSources[eu]){let e_=this.workerSources[eu][em];for(let eu in e_)e_[eu]instanceof x.VectorTileWorkerSource&&(e_[eu].isSpriteLoaded=ef,e_[eu].fire(new x.Event("isSpriteLoaded")))}}setImages(x,eu,ef){for(let ef in this.availableImages[x]=eu,this.workerSources[x]){let em=this.workerSources[x][ef];for(let x in em)em[x].availableImages=eu}ef()}enableTerrain(x,eu,ef){this.terrain=eu,ef()}setProjection(eu,ef){this.projections[eu]=x.getProjection(ef)}setLayers(x,eu,ef){this.getLayerIndex(x).replace(eu),ef()}updateLayers(x,eu,ef){this.getLayerIndex(x).update(eu.layers,eu.removedIds),ef()}loadTile(eu,ef,em){let e_=this.enableTerrain?x.extend({enableTerrain:this.terrain},ef):ef;e_.projection=this.projections[eu]||this.defaultProjection,this.getWorkerSource(eu,ef.type,ef.source).loadTile(e_,em)}loadDEMTile(eu,ef,em){let e_=this.enableTerrain?x.extend({buildQuadTree:this.terrain},ef):ef;this.getDEMWorkerSource(eu,ef.source).loadTile(e_,em)}reloadTile(eu,ef,em){let e_=this.enableTerrain?x.extend({enableTerrain:this.terrain},ef):ef;e_.projection=this.projections[eu]||this.defaultProjection,this.getWorkerSource(eu,ef.type,ef.source).reloadTile(e_,em)}abortTile(x,eu,ef){this.getWorkerSource(x,eu.type,eu.source).abortTile(eu,ef)}removeTile(x,eu,ef){this.getWorkerSource(x,eu.type,eu.source).removeTile(eu,ef)}removeSource(x,eu,ef){if(!this.workerSources[x]||!this.workerSources[x][eu.type]||!this.workerSources[x][eu.type][eu.source])return;let em=this.workerSources[x][eu.type][eu.source];delete this.workerSources[x][eu.type][eu.source],void 0!==em.removeSource?em.removeSource(eu,ef):ef()}loadWorkerSource(x,eu,ef){try{this.self.importScripts(eu.url),ef()}catch(x){ef(x.toString())}}syncRTLPluginState(eu,ef,em){try{x.plugin.setState(ef);let eu=x.plugin.getPluginURL();if(x.plugin.isLoaded()&&!x.plugin.isParsed()&&null!=eu){this.self.importScripts(eu);let ef=x.plugin.isParsed();em(ef?void 0:Error(`RTL Text Plugin failed to import scripts from ${eu}`),ef)}}catch(x){em(x.toString())}}getAvailableImages(x){let eu=this.availableImages[x];return eu||(eu=[]),eu}getLayerIndex(x){let eu=this.layerIndexes[x];return eu||(eu=this.layerIndexes[x]=new o),eu}getWorkerSource(x,eu,ef){if(this.workerSources[x]||(this.workerSources[x]={}),this.workerSources[x][eu]||(this.workerSources[x][eu]={}),!this.workerSources[x][eu][ef]){let em={send:(eu,ef,em,e_,eg,ex)=>{this.actor.send(eu,ef,em,x,eg,ex)},scheduler:this.actor.scheduler};this.workerSources[x][eu][ef]=new this.workerSourceTypes[eu](em,this.getLayerIndex(x),this.getAvailableImages(x),this.isSpriteLoaded[x])}return this.workerSources[x][eu][ef]}getDEMWorkerSource(x,eu){return this.demWorkerSources[x]||(this.demWorkerSources[x]={}),this.demWorkerSources[x][eu]||(this.demWorkerSources[x][eu]=new n),this.demWorkerSources[x][eu]}enforceCacheSizeLimit(eu,ef){x.enforceCacheSizeLimit(ef)}getWorkerPerformanceMetrics(x,eu,ef){ef(void 0,void 0)}};return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new ke(self)),ke}),define(["./shared"],function(x){let eu,ef,em,e_;function t(x,eu){if(Array.isArray(x)){if(!Array.isArray(eu)||x.length!==eu.length)return!1;for(let ef=0;ef<x.length;ef++)if(!t(x[ef],eu[ef]))return!1;return!0}if("object"==typeof x&&null!==x&&null!==eu){if("object"!=typeof eu||Object.keys(x).length!==Object.keys(eu).length)return!1;for(let ef in x)if(!t(x[ef],eu[ef]))return!1;return!0}return x===eu}function o(x){var eu;return"undefined"!=typeof window&&"undefined"!=typeof document&&!!Array.prototype&&!!Array.prototype.every&&!!Array.prototype.filter&&!!Array.prototype.forEach&&!!Array.prototype.indexOf&&!!Array.prototype.lastIndexOf&&!!Array.prototype.map&&!!Array.prototype.some&&!!Array.prototype.reduce&&!!Array.prototype.reduceRight&&!!Array.isArray&&!!Function.prototype&&!!Function.prototype.bind&&!!Object.keys&&!!Object.create&&!!Object.getPrototypeOf&&!!Object.getOwnPropertyNames&&!!Object.isSealed&&!!Object.isFrozen&&!!Object.isExtensible&&!!Object.getOwnPropertyDescriptor&&!!Object.defineProperty&&!!Object.defineProperties&&!!Object.
8seal&&!!Object.freeze&&!!Object.preventExtensions&&!!("JSON"in window&&"parse"in JSON&&"stringify"in JSON)&&!!function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var x,eu,ef=new Blob([""],{type:"text/javascript"}),em=URL.createObjectURL(ef);try{eu=new Worker(em),x=!0}catch(eu){x=!1}return eu&&eu.terminate(),URL.revokeObjectURL(em),x}()&&"Uint8ClampedArray"in window&&!!ArrayBuffer.isView&&!!function(){var x=document.createElement("canvas");x.width=x.height=1;var eu=x.getContext("2d");if(!eu)return!1;var ef=eu.getImageData(0,0,1,1);return ef&&ef.width===x.width}()&&(void 0===eg[eu=x&&x.failIfMajorPerformanceCaveat]&&(eg[eu]=function(x){var eu,ef,em,e_=(eu=document.createElement("canvas"),(ef=Object.create(o.webGLContextAttributes)).failIfMajorPerformanceCaveat=x,eu.getContext("webgl",ef)||eu.getContext("experimental-webgl",ef));if(!e_)return!1;try{em=e_.createShader(e_.VERTEX_SHADER)}catch(x){return!1}return!(!em||e_.isContextLost())&&(e_.shaderSource(em,"void main() {}"),e_.compileShader(em),!0===e_.getShaderParameter(em,e_.COMPILE_STATUS))}(eu)),!!eg[eu]&&!document.documentMode)}var eg={};function n(eu,ef,em){let e_=x.window.document.createElement(eu);return void 0!==ef&&(e_.className=ef),em&&em.appendChild(e_),e_}function s(eu,ef,em){let e_=x.window.document.createElementNS("http://www.w3.org/2000/svg",eu);for(let x of Object.keys(ef))e_.setAttributeNS(null,x,ef[x]);
8return em&&em.appendChild(e_),e_}o.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};let ex=x.window.document&&x.window.document.documentElement.style,ev=ex&&void 0!==ex.userSelect?"userSelect":"WebkitUserSelect";function h(){ex&&ev&&(eu=ex[ev],ex[ev]="none")}function u(){ex&&ev&&(ex[ev]=eu)}function _(eu){eu.preventDefault(),eu.stopPropagation(),x.window.removeEventListener("click",_,!0)}function d(){x.window.addEventListener("click",_,!0),x.window.setTimeout(()=>{x.window.removeEventListener("click",_,!0)},0)}function p(x,eu){let ef=x.getBoundingClientRect();return g(x,ef,eu)}function m(x,eu){let ef=x.getBoundingClientRect(),em=[];for(let e_=0;e_<eu.length;e_++)em.push(g(x,ef,eu[e_]));return em}function f(eu){return void 0!==x.window.InstallTrigger&&2===eu.button&&eu.ctrlKey&&x.window.navigator.platform.toUpperCase().indexOf("MAC")>=0?0:eu.button}function g(eu,ef,em){let e_=eu.offsetWidth===ef.width?1:eu.offsetWidth/ef.width;return new x.pointGeometry((em.clientX-ef.left)*e_,(em.clientY-ef.top)*e_)}function v(x,eu){var ef=eu[0],em=eu[1],e_=eu[2],eg=eu[3],ex=ef*eg-e_*em;return ex?(x[0]=eg*(ex=1/ex),x[1]=-em*ex,x[2]=-e_*ex,x[3]=ef*ex,x):null}let y=class y extends x.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new x.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(x){if(this.loaded!==x&&(this.loaded=x,x)){for(let{ids:x,callback:eu}of this.requestors)this._notify(x,eu);this.requestors=[]}}hasImage(x){return!!this.getImage(x)}getImage(x){return this.images[x]}addImage(x,eu){this._validate(x,eu)&&(this.images[x]=eu)}_validate(eu,ef){let em=!0;return this._validateStretch(ef.stretchX,ef.data&&ef.data.width)||(this.fire(new x.ErrorEvent(Error(`Image "${eu}" has invalid "stretchX" value`))),em=!1),this._validateStretch(ef.stretchY,ef.data&&ef.data.height)||(this.fire(new x.ErrorEvent(Error(`Image "${eu}" has invalid "stretchY" value`))),em=!1),this._validateContent(ef.content,ef)||(this.fire(new x.ErrorEvent(Error(`Image "${eu}" has invalid "content" value`))),em=!1),em}_validateStretch(x,eu){if(!x)return!0;let ef=0;for(let em of x){if(em[0]<ef||em[1]<em[0]||eu<em[1])return!1;ef=em[1]}return!0}_validateContent(x,eu){return!(x&&(4!==x.length||x[0]<0||eu.data.width<x[0]||x[1]<0||eu.data.height<x[1]||x[2]<0||eu.data.width<x[2]||x[3]<0||eu.data.height<x[3]||x[2]<x[0]||x[3]<x[1]))}updateImage(x,eu){eu.version=this.images[x].version+1,this.images[x]=eu,this.updatedImages[x]=!0}removeImage(x){let eu=this.images[x];delete this.images[x],delete this.patterns[x],eu.userImage&&eu.userImage.onRemove&&eu.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(x,eu){let ef=!0;if(!this.isLoaded())for(let eu of x)this.images[eu]||(ef=!1);this.isLoaded()||ef?this._notify(x,eu):this.requestors.push({ids:x,callback:eu})}_notify(eu,ef){let em={};for(let ef of eu){this.images[ef]||this.fire(new x.Event("styleimagemissing",{id:ef}));let eu=this.images[ef];eu?em[ef]={data:eu.data.clone(),pixelRatio:eu.pixelRatio,sdf:eu.sdf,version:eu.version,stretchX:eu.stretchX,stretchY:eu.stretchY,content:eu.content,hasRenderCallback:!!(eu.userImage&&eu.userImage.render)}:x.warnOnce(`Image "${ef}" 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.`)}ef(null,em)}getPixelSize(){let{width:x,height:eu}=this.atlasImage;return{width:x,height:eu}}getPattern(eu){let ef=this.patterns[eu],em=this.getImage(eu);if(!em)return null;if(ef&&ef.position.version===em.version)return ef.position;if(ef)ef.position.version=em.version;else{let ef={w:em.data.width+2,h:em.data.height+2,x:0,y:0},e_=new x.ImagePosition(ef,em);this.patterns[eu]={bin:ef,position:e_}}return this._updatePatternAtlas(),this.patterns[eu].position}bind(eu){let ef=eu.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new x.Texture(eu,this.atlasImage,ef.RGBA),this.atlasTexture&&this.atlasTexture.bind(ef.LINEAR,ef.CLAMP_TO_EDGE)}_updatePatternAtlas(){let eu=[];for(let x in this.patterns)eu.push(this.patterns[x].bin);let{w:ef,h:em}=x.potpack(eu),e_=this.atlasImage;for(let eu in e_.resize({width:ef||1,height:em||1}),this.patterns){let{bin:ef}=this.patterns[eu],em=ef.x+1,eg=ef.y+1,ex=this.images[eu].data,ev=ex.width,eb=ex.height;x.RGBAImage.copy(ex,e_,{x:0,y:0},{x:em,y:eg},{width:ev,height:eb}),x.RGBAImage.copy(ex,e_,{x:0,y:eb-1},{x:em,y:eg-1},{width:ev,height:1}),x.RGBAImage.copy(ex,e_,{x:0,y:0},{x:em,y:eg+eb},{width:ev,height:1}),x.RGBAImage.copy(ex,e_,{x:ev-1,y:0},{x:em-1,y:eg},{width:1,height:eb}),x.RGBAImage.copy(ex,e_,{x:0,y:0},{x:em+ev,y:eg},{width:1,height:eb})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}
8dispatchRenderCallbacks(x){for(let eu of x){if(this.callbackDispatchedThisFrame[eu])continue;this.callbackDispatchedThisFrame[eu]=!0;let x=this.images[eu];(function(x){let{userImage:eu}=x;return!!(eu&&eu.render&&eu.render())&&(x.data.replace(new Uint8Array(eu.data.buffer)),!0)})(x)&&this.updateImage(eu,x)}}};let eb=new x.Properties({anchor:new x.DataConstantProperty(x.spec.light.anchor),position:new class{constructor(){this.specification=x.spec.light.position}possiblyEvaluate(eu,ef){return function([eu,ef,em]){let e_=x.degToRad(ef+90),eg=x.degToRad(em);return{x:eu*Math.cos(e_)*Math.sin(eg),y:eu*Math.sin(e_)*Math.sin(eg),z:eu*Math.cos(eg),azimuthal:ef,polar:em}}(eu.expression.evaluate(ef))}interpolate(eu,ef,em){return{x:x.number(eu.x,ef.x,em),y:x.number(eu.y,ef.y,em),z:x.number(eu.z,ef.z,em),azimuthal:x.number(eu.azimuthal,ef.azimuthal,em),polar:x.number(eu.polar,ef.polar,em)}}},color:new x.DataConstantProperty(x.spec.light.color),intensity:new x.DataConstantProperty(x.spec.light.intensity)}),ew="-transition";let T=class T extends x.Evented{constructor(eu){super(),this._transitionable=new x.Transitionable(eb),this.setLight(eu),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(eu,ef={}){if(!this._validate(x.validateLight,eu,ef))for(let ef in eu){let em=eu[ef];x.endsWith(ef,ew)?this._transitionable.setTransition(ef.slice(0,-ew.length),em):this._transitionable.setValue(ef,em)}}updateTransitions(x){this._transitioning=this._transitionable.transitioned(x,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(x){this.properties=this._transitioning.possiblyEvaluate(x)}_validate(eu,ef,em){return(!em||!1!==em.validate)&&x.emitValidationErrors(this,eu.call(x.validateStyle,x.extend({value:ef,style:{glyphs:!0,sprite:!0},styleSpec:x.spec})))}};let eT=new x.Properties({source:new x.DataConstantProperty(x.spec.terrain.source),exaggeration:new x.DataConstantProperty(x.spec.terrain.exaggeration)}),eE="-transition";let M=class M extends x.Evented{constructor(eu,ef){super(),this._transitionable=new x.Transitionable(eT),this.set(eu),this._transitioning=this._transitionable.untransitioned(),this.drapeRenderMode=ef}get(){return this._transitionable.serialize()}set(eu){for(let ef in eu){let em=eu[ef];x.endsWith(ef,eE)?this._transitionable.setTransition(ef.slice(0,-eE.length),em):this._transitionable.setValue(ef,em)}}updateTransitions(x){this._transitioning=this._transitionable.transitioned(x,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(x){this.properties=this._transitioning.possiblyEvaluate(x)}};function I(eu,ef,em,e_){let eg=x.smoothstep(45,65,em),[ex,ev]=S(eu,e_),eb=x.length(ef),ew=1-Math.min(1,Math.exp(-((eb-ex)/(ev-ex)*6)));return ew*=ew*ew,(ew=Math.min(1,1.00747*ew))*eg*eu.alpha}function S(x,eu){let ef=.5/Math.tan(.5*eu);return[x.range[0]+ef,x.range[1]+ef]}let eS=new x.Properties({range:new x.DataConstantProperty(x.spec.fog.range),color:new x.DataConstantProperty(x.spec.fog.color),"high-color":new x.DataConstantProperty(x.spec.fog["high-color"]),"space-color":new x.DataConstantProperty(x.spec.fog["space-color"]),"horizon-blend":new x.DataConstantProperty(x.spec.fog["horizon-blend"]),"star-intensity":new x.DataConstantProperty(x.spec.fog["star-intensity"])}),eM="-transition";let A=class A extends x.Evented{constructor(eu,ef){super(),this._transitionable=new x.Transitionable(eS),this.set(eu),this._transitioning=this._transitionable.untransitioned(),this._transform=ef}get state(){let eu=this._transform,ef="globe"===eu.projection.name,em=x.globeToMercatorTransition(eu.zoom),e_=this.properties.get("range");return{range:ef?[x.number(.5,e_[0],em),x.number(3,e_[1],em)]:e_,horizonBlend:this.properties.get("horizon-blend"),alpha:this.properties.get("color").a}}get(){return this._transitionable.serialize()}set(eu,ef={}){if(!this._validate(x.validateFog,eu,ef)){for(let ef of Object.keys(x.spec.fog))eu&&void 0===eu[ef]&&(eu[ef]=x.spec.fog[ef].default);for(let ef in eu){let em=eu[ef];x.endsWith(ef,eM)?this._transitionable.setTransition(ef.slice(0,-eM.length),em):this._transitionable.setValue(ef,em)}}}getOpacity(eu){if(!this._transform.projection.supportsFog)return 0;let ef=this.properties&&this.properties.get("color")||1;return("globe"===this._transform.projection.name?1:x.smoothstep(45,65,eu))*ef.a}getOpacityAtLatLng(eu,ef){return this._transform.projection.supportsFog?function(eu,ef,em){let e_=x.MercatorCoordinate.fromLngLat(ef),eg=em.elevation?em.elevation.getAtPointOrZero(e_):0,ex=[e_.x,e_.y,eg];return x.transformMat4(ex,ex,em.mercatorFogMatrix),I(eu,ex,em.pitch,em._fov)}(this.state,eu,ef):0}getFovAdjustedRange(x){return this._transform.projection.supportsFog?S(this.state,x):[0,1]}updateTransitions(x){this._transitioning=this._transitionable.transitioned(x,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(x){this.properties=this._transitioning.possiblyEvaluate(x)}_validate(eu,ef,em){return(!em||!1!==em.validate)&&x.emitValidationErrors(this,eu.call(x.validateStyle,x.extend({value:ef,style:{glyphs:!0,sprite:!0},styleSpec:x.spec})))}};let z=class z{constructor(eu,ef){this.workerPool=eu,this.actors=[],this.currentActor=0,this.id=x.uniqueId();
8let em=this.workerPool.acquire(this.id);for(let x=0;x<em.length;x++){let eu=new z.Actor(em[x],ef,this.id);eu.name=`Worker ${x}`,this.actors.push(eu)}this.ready=!1,this.broadcast("checkIfReady",null,()=>{this.ready=!0})}broadcast(eu,ef,em){x.asyncAll(this.actors,(x,em)=>{x.send(eu,ef,em)},em=em||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(x=>{x.remove()}),this.actors=[],this.workerPool.release(this.id)}};function P(eu,ef,em){return ef*(x.EXTENT/(eu.tileSize*Math.pow(2,em-eu.tileID.overscaledZ)))}z.Actor=x.Actor;let R=class R{constructor(x,eu,ef,em){this.screenBounds=x,this.cameraPoint=eu,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=ef,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,em)}static createFromScreenPoints(eu,ef){let em,e_;if(eu instanceof x.pointGeometry||"number"==typeof eu[0]){let eg=x.pointGeometry.convert(eu);em=[eg],e_=ef.isPointAboveHorizon(eg)}else{let eg=x.pointGeometry.convert(eu[0]),ex=x.pointGeometry.convert(eu[1]);em=[eg,ex],e_=x.polygonizeBounds(eg,ex).every(x=>ef.isPointAboveHorizon(x))}return new R(em,ef.getCameraPoint(),e_,ef)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(eu){return x.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],eu)}bufferedCameraGeometry(eu){let ef=this.screenBounds[0],em=1===this.screenBounds.length?this.screenBounds[0].add(new x.pointGeometry(1,1)):this.screenBounds[1],e_=x.polygonizeBounds(ef,em,0,!1);return this.cameraPoint.y>em.y&&(this.cameraPoint.x>ef.x&&this.cameraPoint.x<em.x?e_.splice(3,0,this.cameraPoint):this.cameraPoint.x>=em.x?e_[2]=this.cameraPoint:this.cameraPoint.x<=ef.x&&(e_[3]=this.cameraPoint)),x.bufferConvexPolygon(e_,eu)}bufferedCameraGeometryGlobe(eu){let ef=this.screenBounds[0],em=1===this.screenBounds.length?this.screenBounds[0].add(new x.pointGeometry(1,1)):this.screenBounds[1],e_=x.polygonizeBounds(ef,em,eu),eg=this.cameraPoint.clone();switch(3*((eg.y>ef.y)+(eg.y>em.y))+((eg.x>ef.x)+(eg.x>em.x))){case 0:e_[0]=eg,e_[4]=eg.clone();break;case 1:e_.splice(1,0,eg);break;case 2:e_[1]=eg;break;case 3:e_.splice(4,0,eg);break;case 5:e_.splice(2,0,eg);break;case 6:e_[3]=eg;break;case 7:e_.splice(3,0,eg);break;case 8:e_[2]=eg}return e_}containsTile(eu,ef,em,e_=0){var eg;let ex=eu.queryPadding/ef._pixelsPerMercatorPixel+1,ev=em?this._bufferedCameraMercator(ex,ef):this._bufferedScreenMercator(ex,ef),eb=eu.tileID.wrap+(ev.unwrapped?e_:0),ew=ev.polygon.map(ef=>x.getTilePoint(eu.tileTransform,ef,eb));if(!x.polygonIntersectsBox(ew,0,0,x.EXTENT,x.EXTENT))return;eb=eu.tileID.wrap+(this.screenGeometryMercator.unwrapped?e_:0);let eT=this.screenGeometryMercator.polygon.map(ef=>x.getTileVec3(eu.tileTransform,ef,eb)),eE=eT.map(eu=>new x.pointGeometry(eu[0],eu[1])),eS=ef.getFreeCameraOptions().position||new x.MercatorCoordinate(0,0,0),eM=x.getTileVec3(eu.tileTransform,eS,eb),eI=eT.map(eu=>{let ef=x.sub(eu,eu,eM);return x.normalize(ef,ef),new x.Ray(eM,ef)}),eA=P(eu,1,ef.zoom)*ef._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:eE,tilespaceRays:eI,bufferedTilespaceGeometry:ew,bufferedTilespaceBounds:((eg=x.getBounds(ew)).min.x=x.clamp(eg.min.x,0,x.EXTENT),eg.min.y=x.clamp(eg.min.y,0,x.EXTENT),eg.max.x=x.clamp(eg.max.x,0,x.EXTENT),eg.max.y=x.clamp(eg.max.y,0,x.EXTENT),eg),tile:eu,tileID:eu.tileID,pixelToTileUnitsFactor:eA}}_bufferedScreenMercator(x,eu){let ef=100*x|0;if(this._screenRaycastCache[ef])return this._screenRaycastCache[ef];{let em;return em="globe"===eu.projection.name?this._projectAndResample(this.bufferedScreenGeometry(x),eu):{polygon:this.bufferedScreenGeometry(x).map(x=>eu.pointCoordinate3D(x)),unwrapped:!0},this._screenRaycastCache[ef]=em,em}}_bufferedCameraMercator(x,eu){let ef=100*x|0;if(this._cameraRaycastCache[ef])return this._cameraRaycastCache[ef];{let em;return em="globe"===eu.projection.name?this._projectAndResample(this.bufferedCameraGeometryGlobe(x),eu):{polygon:this.bufferedCameraGeometry(x).map(x=>eu.pointCoordinate3D(x)),unwrapped:!0},this._cameraRaycastCache[ef]=em,em}}_projectAndResample(eu,ef){let em=function(eu,ef){let em=x.multiply([],ef.pixelMatrix,ef.globeMatrix),e_=[0,-x.GLOBE_RADIUS,0,1],eg=[0,x.GLOBE_RADIUS,0,1],ex=[0,0,0,1];x.transformMat4$1(e_,e_,em),x.transformMat4$1(eg,eg,em),x.transformMat4$1(ex,ex,em);let ev=new x.pointGeometry(e_[0]/e_[3],e_[1]/e_[3]),eb=new x.pointGeometry(eg[0]/eg[3],eg[1]/eg[3]),ew=x.polygonContainsPoint(eu,ev)&&e_[3]<ex[3],eT=x.polygonContainsPoint(eu,eb)&&eg[3]<ex[3];if(!ew&&!eT)return null;let eE=function(x,eu,ef){for(let em=1;em<x.length;em++){let e_=B(eu.pointCoordinate3D(x[em-1]).x),eg=B(eu.pointCoordinate3D(x[em]).x);if(ef<0){if(e_<eg)return{idx:em,t:-e_/(eg-1-e_)}}else if(eg<e_)return{idx:em,t:(1-e_)/(eg+1-e_)}}return null}(eu,ef,ew?-1:1);if(!eE)return null;let{idx:eS,t:eM}=eE,eI=eS>1?O(eu.slice(0,eS),ef):[],eA=eS<eu.length?O(eu.slice(eS),ef):[];eI=eI.map(eu=>new x.pointGeometry(B(eu.x),eu.y)),eA=eA.map(eu=>new x.pointGeometry(B(eu.x),eu.y));let eC=[...eI];0===eC.length&&eC.push(eA[eA.length-1]);let ez=x.number(eC[eC.length-1].y,(0===eA.length?eI[0]:eA[0]).y,eM);return eC.push(...ew?[new x.pointGeometry(0,ez),new x.pointGeometry(0,0),new x.pointGeometry(1,0),new x.pointGeometry(1,ez)]:[new x.pointGeometry(1,ez),new x.pointGeometry(1,1),new x.pointGeometry(0,1),new x.pointGeometry(0,ez)]),0===eA.length?eC.push(eI[0]):eC.push(...eA),{polygon:eC.map(eu=>new x.MercatorCoordinate(eu.x,eu.y)),unwrapped:!1}}(eu,ef);
8if(em)return em;let e_=function(eu,ef){let em=!1,e_=-1/0,eg=0;for(let x=0;x<eu.length-1;x++)eu[x].x>e_&&(e_=eu[x].x,eg=x);for(let x=0;x<eu.length-1;x++){let ef=(eg+x)%(eu.length-1),e_=eu[ef],ex=eu[ef+1];Math.abs(e_.x-ex.x)>.5&&(e_.x<ex.x?(e_.x+=1,0===ef&&(eu[eu.length-1].x+=1)):(ex.x+=1,ef+1===eu.length-1&&(eu[0].x+=1)),em=!0)}let ex=x.mercatorXfromLng(ef.center.lng);return em&&ex<Math.abs(ex-1)&&eu.forEach(x=>{x.x-=1}),{polygon:eu,unwrapped:em}}(O(eu,ef).map(eu=>new x.pointGeometry(B(eu.x),eu.y)),ef);return{polygon:e_.polygon.map(eu=>new x.MercatorCoordinate(eu.x,eu.y)),unwrapped:e_.unwrapped}}};function O(eu,ef){return x.resample(eu,x=>{let eu=ef.pointCoordinate3D(x);x.x=eu.x,x.y=eu.y},1/256)}function B(x){return x<0?1+x%1:x%1}function F(eu,ef,em,e_,eg){let s=function(em,e_){if(em)return eg(em);if(e_){eu.url&&e_.tiles&&eu.tiles&&delete eu.tiles;let em=x.pick(x.extend(e_,eu),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);e_.vector_layers&&(em.vectorLayers=e_.vector_layers,em.vectorLayerIds=em.vectorLayers.map(x=>x.id)),em.tiles=ef.canonicalizeTileset(em,eu.url),eg(null,em)}};return eu.url?x.getJSON(ef.transformRequest(ef.normalizeSourceURL(eu.url,null,em,e_),x.ResourceType.Source),s):x.exported.frame(()=>s(null,eu))}let U=class U{constructor(eu,ef,em){this.bounds=x.LngLatBounds.convert(this.validateBounds(eu)),this.minzoom=ef||0,this.maxzoom=em||24}validateBounds(x){return Array.isArray(x)&&4===x.length?[Math.max(-180,x[0]),Math.max(-90,x[1]),Math.min(180,x[2]),Math.min(90,x[3])]:[-180,-90,180,90]}contains(eu){let ef=Math.pow(2,eu.z),em=Math.floor(x.mercatorXfromLng(this.bounds.getWest())*ef),e_=Math.floor(x.mercatorYfromLat(this.bounds.getNorth())*ef),eg=Math.ceil(x.mercatorXfromLng(this.bounds.getEast())*ef),ex=Math.ceil(x.mercatorYfromLat(this.bounds.getSouth())*ef);return eu.x>=em&&eu.x<eg&&eu.y>=e_&&eu.y<ex}};let N=class N{constructor(x,eu,ef){this.context=x;let em=x.gl;this.buffer=em.createBuffer(),this.dynamicDraw=!!ef,this.context.unbindVAO(),x.bindElementBuffer.set(this.buffer),em.bufferData(em.ELEMENT_ARRAY_BUFFER,eu.arrayBuffer,this.dynamicDraw?em.DYNAMIC_DRAW:em.STATIC_DRAW),this.dynamicDraw||eu.destroy()}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(x){let eu=this.context.gl;this.context.unbindVAO(),this.bind(),eu.bufferSubData(eu.ELEMENT_ARRAY_BUFFER,0,x.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}};let eI={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};let j=class j{constructor(x,eu,ef,em){this.length=eu.length,this.attributes=ef,this.itemSize=eu.bytesPerElement,this.dynamicDraw=em,this.context=x;let e_=x.gl;this.buffer=e_.createBuffer(),x.bindVertexBuffer.set(this.buffer),e_.bufferData(e_.ARRAY_BUFFER,eu.arrayBuffer,this.dynamicDraw?e_.DYNAMIC_DRAW:e_.STATIC_DRAW),this.dynamicDraw||eu.destroy()}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(x){let eu=this.context.gl;this.bind(),eu.bufferSubData(eu.ARRAY_BUFFER,0,x.arrayBuffer)}enableAttributes(x,eu){for(let ef=0;ef<this.attributes.length;ef++){let em=eu.attributes[this.attributes[ef].name];void 0!==em&&x.enableVertexAttribArray(em)}}setVertexAttribPointers(x,eu,ef){for(let em=0;em<this.attributes.length;em++){let e_=this.attributes[em],eg=eu.attributes[e_.name];void 0!==eg&&x.vertexAttribPointer(eg,e_.components,x[eI[e_.type]],!1,this.itemSize,e_.offset+this.itemSize*(ef||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}};let Z=class Z{constructor(x){this.gl=x.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(x){}getDefault(){return this.default}setDefault(){this.set(this.default)}};let V=class V extends Z{getDefault(){return x.Color.transparent}set(x){let eu=this.current;(x.r!==eu.r||x.g!==eu.g||x.b!==eu.b||x.a!==eu.a||this.dirty)&&(this.gl.clearColor(x.r,x.g,x.b,x.a),this.current=x,this.dirty=!1)}};let W=class W extends Z{getDefault(){return 1}set(x){(x!==this.current||this.dirty)&&(this.gl.clearDepth(x),this.current=x,this.dirty=!1)}};let X=class X extends Z{getDefault(){return 0}set(x){(x!==this.current||this.dirty)&&(this.gl.clearStencil(x),this.current=x,this.dirty=!1)}};
8let q=class q extends Z{getDefault(){return[!0,!0,!0,!0]}set(x){let eu=this.current;(x[0]!==eu[0]||x[1]!==eu[1]||x[2]!==eu[2]||x[3]!==eu[3]||this.dirty)&&(this.gl.colorMask(x[0],x[1],x[2],x[3]),this.current=x,this.dirty=!1)}};let $=class $ extends Z{getDefault(){return!0}set(x){(x!==this.current||this.dirty)&&(this.gl.depthMask(x),this.current=x,this.dirty=!1)}};let H=class H extends Z{getDefault(){return 255}set(x){(x!==this.current||this.dirty)&&(this.gl.stencilMask(x),this.current=x,this.dirty=!1)}};let Y=class Y extends Z{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(x){let eu=this.current;(x.func!==eu.func||x.ref!==eu.ref||x.mask!==eu.mask||this.dirty)&&(this.gl.stencilFunc(x.func,x.ref,x.mask),this.current=x,this.dirty=!1)}};let K=class K extends Z{getDefault(){let x=this.gl;return[x.KEEP,x.KEEP,x.KEEP]}set(x){let eu=this.current;(x[0]!==eu[0]||x[1]!==eu[1]||x[2]!==eu[2]||this.dirty)&&(this.gl.stencilOp(x[0],x[1],x[2]),this.current=x,this.dirty=!1)}};let J=class J extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;x?eu.enable(eu.STENCIL_TEST):eu.disable(eu.STENCIL_TEST),this.current=x,this.dirty=!1}};let Q=class Q extends Z{getDefault(){return[0,1]}set(x){let eu=this.current;(x[0]!==eu[0]||x[1]!==eu[1]||this.dirty)&&(this.gl.depthRange(x[0],x[1]),this.current=x,this.dirty=!1)}};let ee=class ee extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;x?eu.enable(eu.DEPTH_TEST):eu.disable(eu.DEPTH_TEST),this.current=x,this.dirty=!1}};let te=class te extends Z{getDefault(){return this.gl.LESS}set(x){(x!==this.current||this.dirty)&&(this.gl.depthFunc(x),this.current=x,this.dirty=!1)}};let ie=class ie extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;x?eu.enable(eu.BLEND):eu.disable(eu.BLEND),this.current=x,this.dirty=!1}};let oe=class oe extends Z{getDefault(){let x=this.gl;return[x.ONE,x.ZERO]}set(x){let eu=this.current;(x[0]!==eu[0]||x[1]!==eu[1]||this.dirty)&&(this.gl.blendFunc(x[0],x[1]),this.current=x,this.dirty=!1)}};let re=class re extends Z{getDefault(){return x.Color.transparent}set(x){let eu=this.current;(x.r!==eu.r||x.g!==eu.g||x.b!==eu.b||x.a!==eu.a||this.dirty)&&(this.gl.blendColor(x.r,x.g,x.b,x.a),this.current=x,this.dirty=!1)}};let ne=class ne extends Z{getDefault(){return this.gl.FUNC_ADD}set(x){(x!==this.current||this.dirty)&&(this.gl.blendEquation(x),this.current=x,this.dirty=!1)}};let se=class se extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;x?eu.enable(eu.CULL_FACE):eu.disable(eu.CULL_FACE),this.current=x,this.dirty=!1}};let ae=class ae extends Z{getDefault(){return this.gl.BACK}set(x){(x!==this.current||this.dirty)&&(this.gl.cullFace(x),this.current=x,this.dirty=!1)}};let le=class le extends Z{getDefault(){return this.gl.CCW}set(x){(x!==this.current||this.dirty)&&(this.gl.frontFace(x),this.current=x,this.dirty=!1)}};let ce=class ce extends Z{getDefault(){return null}set(x){(x!==this.current||this.dirty)&&(this.gl.useProgram(x),this.current=x,this.dirty=!1)}};let he=class he extends Z{getDefault(){return this.gl.TEXTURE0}set(x){(x!==this.current||this.dirty)&&(this.gl.activeTexture(x),this.current=x,this.dirty=!1)}};let ue=class ue extends Z{getDefault(){let x=this.gl;return[0,0,x.drawingBufferWidth,x.drawingBufferHeight]}set(x){let eu=this.current;(x[0]!==eu[0]||x[1]!==eu[1]||x[2]!==eu[2]||x[3]!==eu[3]||this.dirty)&&(this.gl.viewport(x[0],x[1],x[2],x[3]),this.current=x,this.dirty=!1)}};let _e=class _e extends Z{getDefault(){return null}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.bindFramebuffer(eu.FRAMEBUFFER,x),this.current=x,this.dirty=!1}};let de=class de extends Z{getDefault(){return null}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.bindRenderbuffer(eu.RENDERBUFFER,x),this.current=x,this.dirty=!1}};let pe=class pe extends Z{getDefault(){return null}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.bindTexture(eu.TEXTURE_2D,x),this.current=x,this.dirty=!1}};let me=class me extends Z{getDefault(){return null}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.bindBuffer(eu.ARRAY_BUFFER,x),this.current=x,this.dirty=!1}};let fe=class fe extends Z{getDefault(){return null}set(x){let eu=this.gl;eu.bindBuffer(eu.ELEMENT_ARRAY_BUFFER,x),this.current=x,this.dirty=!1}};
8let ge=class ge extends Z{constructor(x){super(x),this.vao=x.extVertexArrayObject}getDefault(){return null}set(x){this.vao&&(x!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(x),this.current=x,this.dirty=!1)}};let ve=class ve extends Z{getDefault(){return 4}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.pixelStorei(eu.UNPACK_ALIGNMENT,x),this.current=x,this.dirty=!1}};let xe=class xe extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.pixelStorei(eu.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),this.current=x,this.dirty=!1}};let ye=class ye extends Z{getDefault(){return!1}set(x){if(x===this.current&&!this.dirty)return;let eu=this.gl;eu.pixelStorei(eu.UNPACK_FLIP_Y_WEBGL,x),this.current=x,this.dirty=!1}};let be=class be extends Z{constructor(x,eu){super(x),this.context=x,this.parent=eu}getDefault(){return null}};let we=class we extends be{setDirty(){this.dirty=!0}set(x){if(x===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let eu=this.gl;eu.framebufferTexture2D(eu.FRAMEBUFFER,eu.COLOR_ATTACHMENT0,eu.TEXTURE_2D,x,0),this.current=x,this.dirty=!1}};let Te=class Te extends be{attachment(){return this.gl.DEPTH_ATTACHMENT}set(x){if(x===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let eu=this.gl;eu.framebufferRenderbuffer(eu.FRAMEBUFFER,this.attachment(),eu.RENDERBUFFER,x),this.current=x,this.dirty=!1}};let Ee=class Ee extends Te{attachment(){return this.gl.DEPTH_STENCIL_ATTACHMENT}};let Ce=class Ce{constructor(x,eu,ef,em){this.context=x,this.width=eu,this.height=ef;let e_=this.framebuffer=x.gl.createFramebuffer();this.colorAttachment=new we(x,e_),em&&(this.depthAttachment=new Te(x,e_))}destroy(){let x=this.context.gl,eu=this.colorAttachment.get();if(eu&&x.deleteTexture(eu),this.depthAttachment){let eu=this.depthAttachment.get();eu&&x.deleteRenderbuffer(eu)}x.deleteFramebuffer(this.framebuffer)}};let Me=class Me{constructor(x,eu=!1){this.gl=x,this.isWebGL2=eu,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),eu&&(this.extVertexArrayObject={createVertexArrayOES:x.createVertexArray.bind(x),deleteVertexArrayOES:x.deleteVertexArray.bind(x),bindVertexArrayOES:x.bindVertexArray.bind(x)}),this.clearColor=new V(this),this.clearDepth=new W(this),this.clearStencil=new X(this),this.colorMask=new q(this),this.depthMask=new $(this),this.stencilMask=new H(this),this.stencilFunc=new Y(this),this.stencilOp=new K(this),this.stencilTest=new J(this),this.depthRange=new Q(this),this.depthTest=new ee(this),this.depthFunc=new te(this),this.blend=new ie(this),this.blendFunc=new oe(this),this.blendColor=new re(this),this.blendEquation=new ne(this),this.cullFace=new se(this),this.cullFaceSide=new ae(this),this.frontFace=new le(this),this.program=new ce(this),this.activeTexture=new he(this),this.viewport=new ue(this),this.bindFramebuffer=new _e(this),this.bindRenderbuffer=new de(this),this.bindTexture=new pe(this),this.bindVertexBuffer=new me(this),this.bindElementBuffer=new fe(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new ge(this),this.pixelStoreUnpack=new ve(this),this.pixelStoreUnpackPremultiplyAlpha=new xe(this),this.pixelStoreUnpackFlipY=new ye(this),this.extTextureFilterAnisotropic=x.getExtension("EXT_texture_filter_anisotropic")||x.getExtension("MOZ_EXT_texture_filter_anisotropic")||x.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=x.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureFilterAnisotropicForceOff=!1,this.extStandardDerivativesForceOff=!1,this.extDebugRendererInfo=x.getExtension("WEBGL_debug_renderer_info"),this.extDebugRendererInfo&&(this.renderer=x.getParameter(this.extDebugRendererInfo.UNMASKED_RENDERER_WEBGL),this.vendor=x.getParameter(this.extDebugRendererInfo.UNMASKED_VENDOR_WEBGL)),eu||(this.extTextureHalfFloat=x.getExtension("OES_texture_half_float")),(eu||this.extTextureHalfFloat&&x.getExtension("OES_texture_half_float_linear"))&&(this.extRenderToTextureHalfFloat=x.getExtension("EXT_color_buffer_half_float")),this.extStandardDerivatives=eu||x.getExtension("OES_standard_derivatives"),this.extTimerQuery=x.getExtension("EXT_disjoint_timer_query"),this.maxTextureSize=x.getParameter(x.MAX_TEXTURE_SIZE)}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.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(x,eu){return new N(this,x,eu)}createVertexBuffer(x,eu,ef){return new j(this,x,eu,ef)}createRenderbuffer(x,eu,ef){let em=this.gl,e_=em.createRenderbuffer();return this.bindRenderbuffer.set(e_),em.renderbufferStorage(em.RENDERBUFFER,x,eu,ef),this.bindRenderbuffer.set(null),e_}createFramebuffer(x,eu,ef){return new Ce(this,x,eu,ef)}clear({color:x,depth:eu,stencil:ef}){let em=this.gl,e_=0;x&&(e_|=em.COLOR_BUFFER_BIT,this.clearColor.set(x),this.colorMask.set([!0,!0,!0,!0])),void 0!==eu&&(e_|=em.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(eu),this.depthMask.set(!0)),void 0!==ef&&(e_|=em.STENCIL_BUFFER_BIT,this.clearStencil.set(ef),this.stencilMask.set(255)),em.clear(e_)}setCullFace(x){!1===x.enable?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(x.mode),this.frontFace.set(x.frontFace))}setDepthMode(x){x.func!==this.gl.ALWAYS||x.mask?(this.depthTest.set(!0),this.depthFunc.set(x.func),this.depthMask.set(x.mask),this.depthRange.set(x.range)):this.depthTest.set(!1)}setStencilMode(x){x.test.func!==this.gl.ALWAYS||x.mask?(this.stencilTest.set(!0),this.stencilMask.set(x.mask),this.stencilOp.set([x.fail,x.depthFail,x.pass]),this.stencilFunc.set({func:x.test.func,ref:x.ref,mask:x.test.mask})):this.stencilTest.set(!1)}setColorMode(eu){t(eu.blendFunction,x.ColorMode.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(eu.blendFunction),this.blendColor.set(eu.blendColor)),this.colorMask.set(eu.mask)}unbindVAO(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)}};let Ie=class Ie extends x.Evented{constructor(eu,ef,em,e_){if(super(),this.id=eu,this.dispatcher=em,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,x.extend(this,x.pick(ef,["url","scheme","tileSize","promoteId"])),this._options=x.extend({type:"vector"},ef),this._collectResourceTiming=ef.collectResourceTiming,512!==this.tileSize)throw Error("vector tile sources must have a tileSize of 512");this.setEventedParent(e_),this._tileWorkers={},this._deduped=new x.DedupedRequest}load(eu){this._loaded=!1,this.fire(new x.Event("dataloading",{dataType:"source"}));let ef=Array.isArray(this.map._language)?this.map._language.join():this.map._language,em=this.map._worldview;this._tileJSONRequest=F(this._options,this.map._requestManager,ef,em,(e_,eg)=>{this._tileJSONRequest=null,this._loaded=!0,e_?(ef&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${ef}`),em&&2!==em.length&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${em}`),this.fire(new x.ErrorEvent(e_))):eg&&(x.extend(this,eg),eg.bounds&&(this.tileBounds=new U(eg.bounds,this.minzoom,this.maxzoom)),x.postTurnstileEvent(eg.tiles,this.map._requestManager._customAccessToken),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"content"}))),eu&&eu(e_)})}loaded(){return this._loaded}hasTile(x){return!this.tileBounds||this.tileBounds.contains(x.canonical)}onAdd(x){this.map=x,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>
8this.map.style._clearSource(this.id))}setTiles(x){return this._options.tiles=x,this.reload(),this}setUrl(x){return this.url=x,this._options.url=x,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return x.extend({},this._options)}loadTile(eu,ef){let em=this.map._requestManager.normalizeTileURL(eu.tileID.canonical.url(this.tiles,this.scheme)),e_={request:this.map._requestManager.transformRequest(em,x.ResourceType.Tile),data:void 0,uid:eu.uid,tileID:eu.tileID,tileZoom:eu.tileZoom,zoom:eu.tileID.overscaledZ,tileSize:this.tileSize*eu.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:x.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:eu.isSymbolTile};if(e_.request.collectResourceTiming=this._collectResourceTiming,eu.actor&&"expired"!==eu.state)"loading"===eu.state?eu.reloadCallback=ef:eu.request=eu.actor.send("reloadTile",e_,n.bind(this));else if(eu.actor=this._tileWorkers[em]=this._tileWorkers[em]||this.dispatcher.getActor(),this.dispatcher.ready)eu.request=eu.actor.send("loadTile",e_,n.bind(this),void 0,!0);else{let ef=x.loadVectorTile.call({deduped:this._deduped},e_,(x,ef)=>{x||!ef?n.call(this,x):(e_.data={cacheControl:ef.cacheControl,expires:ef.expires,rawData:ef.rawData.slice(0)},eu.actor&&eu.actor.send("loadTile",e_,n.bind(this),void 0,!0))},!0);eu.request={cancel:ef}}function n(em,e_){return delete eu.request,eu.aborted?ef(null):em&&404!==em.status?ef(em):(e_&&e_.resourceTiming&&(eu.resourceTiming=e_.resourceTiming),this.map._refreshExpiredTiles&&e_&&eu.setExpiryData(e_),eu.loadVectorData(e_,this.map.painter),x.cacheEntryPossiblyAdded(this.dispatcher),ef(null),void(eu.reloadCallback&&(this.loadTile(eu,eu.reloadCallback),eu.reloadCallback=null)))}}abortTile(x){x.request&&(x.request.cancel(),delete x.request),x.actor&&x.actor.send("abortTile",{uid:x.uid,type:this.t
8ype,source:this.id})}unloadTile(x){x.unloadVectorData(),x.actor&&x.actor.send("removeTile",{uid:x.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}};let Se=class Se extends x.Evented{constructor(eu,ef,em,e_){super(),this.id=eu,this.dispatcher=em,this.setEventedParent(e_),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=x.extend({type:"raster"},ef),x.extend(this,x.pick(ef,["url","scheme","tileSize"]))}load(eu){this._loaded=!1,this.fire(new x.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=F(this._options,this.map._requestManager,null,null,(ef,em)=>{this._tileJSONRequest=null,this._loaded=!0,ef?this.fire(new x.ErrorEvent(ef)):em&&(x.extend(this,em),em.bounds&&(this.tileBounds=new U(em.bounds,this.minzoom,this.maxzoom)),x.postTurnstileEvent(em.tiles),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"content"}))),eu&&eu(ef)})}loaded(){return this._loaded}onAdd(x){this.map=x,this.load()}reload(){this.cancelTileJSONRequest(),this.load(()=>this.map.style._clearSource(this.id))}setTiles(x){return this._options.tiles=x,this.reload(),this}setUrl(x){return this.url=x,this._options.url=x,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return x.extend({},this._options)}hasTile(x){return!this.tileBounds||this.tileBounds.contains(x.canonical)}loadTile(eu,ef){let em=x.exported.devicePixelRatio>=2,e_=this.map._requestManager.normalizeTileURL(eu.tileID.canonical.url(this.tiles,this.scheme),em,this.tileSize);eu.request=x.getImage(this.map._requestManager.transformRequest(e_,x.ResourceType.Tile),(em,e_,eg,ex)=>(delete eu.request,eu.aborted?(eu.state="unloaded",ef(null)):em?(eu.state="errored",ef(em)):e_?(this.map._refreshExpiredTiles&&eu.setExpiryData({cacheControl:eg,expires:ex}),eu.setTexture(e_,this.map.painter),eu.state="loaded",x.cacheEntryPossiblyAdded(this.dispatcher),void ef(null)):ef(null)))}static loadTileData(x,eu,ef){x.setTexture(eu,ef)}static unloadTileData(x,eu){x.texture&&eu.saveTileTexture(x.texture)}abortTile(x,eu){x.request&&(x.request.cancel(),delete x.request),eu()}unloadTile(x,eu){x.texture&&this.map.painter.saveTileTexture(x.texture),eu()}hasTransition(){return!1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}};function Le(eu,ef,em,e_,eg,ex,ev,eb){let ew=[eu,em,eg,ef,e_,ex,1,1,1],eT=[ev,eb,1],eE=x.adjoint([],ew),[eS,eM,eI]=x.transformMat3(eT,eT,x.transpose(eE,eE));return x.multiply$1(ew,[eS,0,0,0,eM,0,0,0,eI],ew)}let Ae=class Ae extends x.Evented{constructor(x,eu,ef,em){super(),this.id=x,this.dispatcher=ef,this.coordinates=eu.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(em),this.options=eu,this._dirty=!1}load(eu,ef){this._loaded=ef||!1,this.fire(new x.Event("dataloading",{dataType:"source"})),this.url=this.options.url,this._imageRequest=x.getImage(this.map._requestManager.transformRequest(this.url,x.ResourceType.Image),(ef,em)=>{if(this._imageRequest=null,this._loaded=!0,ef)this.fire(new x.ErrorEvent(ef));else if(em){let{HTMLImageElement:ef}=x.window;this.image=em instanceof ef?x.exported.getImageData(em):em,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,eu&&(this.coordinates=eu),this._finishLoading()}})}loaded(){return this._loaded}updateImage(x){return this.image&&x.url&&(this._imageRequest&&x.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=x.url,this.load(x.coordinates,this._loaded)),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(x){this.map=x,this.load()}onRemove(){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),this.texture&&this.texture.destroy()}setCoordinates(eu){this.coordinates=eu,this._boundsArray=void 0;let ef=eu.map(x.MercatorCoordinate.fromLngLat);return this.tileID=function(eu){let ef=1/0,em=1/0,e_=-1/0,eg=-1/0;for(let x of eu)ef=Math.min(ef,x.x),em=Math.min(em,x.y),e_=Math.max(e_,x.x),eg=Math.max(eg,x.y);let ex=Math.max(e_-ef,eg-em),ev=Math.max(0,Math.floor(-Math.log(ex)/Math.LN2)),eb=Math.pow(2,ev);return new x.CanonicalTileID(ev,Math.floor((ef+e_)/2*eb),Math.floor((em+eg)/2*eb))}(ef),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new x.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){this._boundsArray=void 0}_prepareData(eu){for(let x in this.tiles){let eu=this.tiles[x];"loaded"!==eu.state&&(eu.state="loaded",eu.texture=this.texture)}if(this._boundsArray)return;let ef=x.tileTransform(this.tileID,this.map.transform.projection),[em,e_,eg,ex]=this.coordinates.map(eu=>{let em=ef.projection.project(eu[0],eu[1]);
8return x.getTilePoint(ef,em)._round()});this.perspectiveTransform=function(eu,ef,em,e_,eg,ex,ev,eb,ew,eT){let eE=Le(0,0,eu,0,0,ef,eu,ef),eS=Le(em,e_,eg,ex,ev,eb,ew,eT);return x.multiply$1(eS,x.adjoint(eE,eE),eS),[eS[6]/eS[8]*eu/x.EXTENT,eS[7]/eS[8]*ef/x.EXTENT]}(this.width,this.height,em.x,em.y,e_.x,e_.y,ex.x,ex.y,eg.x,eg.y);let ev=this._boundsArray=new x.StructArrayLayout4i8;ev.emplaceBack(em.x,em.y,0,0),ev.emplaceBack(e_.x,e_.y,x.EXTENT,0),ev.emplaceBack(ex.x,ex.y,0,x.EXTENT),ev.emplaceBack(eg.x,eg.y,x.EXTENT,x.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=eu.createVertexBuffer(ev,x.boundsAttributes.members),this.boundsSegments=x.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;let eu=this.map.painter.context,ef=eu.gl;this._dirty&&(this.texture?this.texture.update(this.image):(this.texture=new x.Texture(eu,this.image,ef.RGBA),this.texture.bind(ef.LINEAR,ef.CLAMP_TO_EDGE)),this._dirty=!1),this._prepareData(eu)}loadTile(x,eu){this.tileID&&this.tileID.equals(x.tileID.canonical)?(this.tiles[String(x.tileID.wrap)]=x,x.buckets={}):x.state="errored",eu(null)}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}};let eA={vector:Ie,raster:Se,"raster-dem":class extends Se{constructor(eu,ef,em,e_){super(eu,ef,em,e_),this.type="raster-dem",this.maxzoom=22,this._options=x.extend({type:"raster-dem"},ef),this.encoding=ef.encoding||"mapbox"}loadTile(eu,em){let e_=this.map._requestManager.normalizeTileURL(eu.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function r(x,ef){x&&(eu.state="errored",em(x)),ef&&(eu.dem=ef,eu.dem.onDeserialize(),eu.needsHillshadePrepare=!0,eu.needsDEMTextureUpload=!0,eu.state="loaded",em(null))}eu.request=x.getImage(this.map._requestManager.transformRequest(e_,x.ResourceType.Tile),(function(e_,eg,ex,ev){if(delete eu.request,eu.aborted)eu.state="unloaded",em(null);else if(e_)eu.state="errored",em(e_);else if(eg){this.map._refreshExpiredTiles&&eu.setExpiryData({cacheControl:ex,expires:ev});let em=x.window.ImageBitmap&&eg instanceof x.window.ImageBitmap&&(null==ef&&(ef=x.window.OffscreenCanvas&&new x.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof x.window.createImageBitmap),ef),e_=1-(eg.width-x.prevPowerOfTwo(eg.width))/2;e_<1||eu.neighboringTiles||(eu.neighboringTiles=this._getNeighboringTiles(eu.tileID));let eb=em?eg:x.exported.getImageData(eg,e_),ew={uid:eu.uid,coord:eu.tileID,source:this.id,rawImageData:eb,encoding:this.encoding,padding:e_};eu.actor&&"expired"!==eu.state||(eu.actor=this.dispatcher.getActor(),eu.actor.send("loadDEMTile",ew,r.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(eu){let ef=eu.canonical,em=Math.pow(2,ef.z),e_=(ef.x-1+em)%em,eg=0===ef.x?eu.wrap-1:eu.wrap,ex=(ef.x+1+em)%em,ev=ef.x+1===em?eu.wrap+1:eu.wrap,eb={};return eb[new x.OverscaledTileID(eu.overscaledZ,eg,ef.z,e_,ef.y).key]={backfilled:!1},eb[new x.OverscaledTileID(eu.overscaledZ,ev,ef.z,ex,ef.y).key]={backfilled:!1},ef.y>0&&(eb[new x.OverscaledTileID(eu.overscaledZ,eg,ef.z,e_,ef.y-1).key]={backfilled:!1},eb[new x.OverscaledTileID(eu.overscaledZ,eu.wrap,ef.z,ef.x,ef.y-1).key]={backfilled:!1},eb[new x.OverscaledTileID(eu.overscaledZ,ev,ef.z,ex,ef.y-1).key]={backfilled:!1}),ef.y+1<em&&(eb[new x.OverscaledTileID(eu.overscaledZ,eg,ef.z,e_,ef.y+1).key]={backfilled:!1},eb[new x.OverscaledTileID(eu.overscaledZ,eu.wrap,ef.z,ef.x,ef.y+1).key]={backfilled:!1},eb[new x.OverscaledTileID(eu.overscaledZ,ev,ef.z,ex,ef.y+1).key]={backfilled:!1}),eb}unloadTile(x){x.demTexture&&this.map.painter.saveTileTexture(x.demTexture),x.fbo&&(x.fbo.destroy(),delete x.fbo),x.dem&&delete x.dem,delete x.neighboringTiles,x.state="unloaded"}},geojson:class extends x.Evented{constructor(eu,ef,em,e_){super(),this.id=eu,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._loaded=!1,this.actor=em.getActor(),this.setEventedParent(e_),this._data=ef.data,this._options=x.extend({},ef),this._collectResourceTiming=ef.collectResourceTiming,void 0!==ef.maxzoom&&(this.maxzoom=ef.maxzoom),ef.type&&(this.t
8ype=ef.type),ef.attribution&&(this.attribution=ef.attribution),this.promoteId=ef.promoteId;let eg=x.EXTENT/this.tileSize;this.workerOptions=x.extend({source:this.id,cluster:ef.cluster||!1,geojsonVtOptions:{buffer:(void 0!==ef.buffer?ef.buffer:128)*eg,tolerance:(void 0!==ef.tolerance?ef.tolerance:.375)*eg,extent:x.EXTENT,maxZoom:this.maxzoom,lineMetrics:ef.lineMetrics||!1,generateId:ef.generateId||!1},superclusterOptions:{maxZoom:void 0!==ef.clusterMaxZoom?ef.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,ef.clusterMinPoints||2),extent:x.EXTENT,radius:(void 0!==ef.clusterRadius?ef.clusterRadius:50)*eg,log:!1,generateId:ef.generateId||!1},clusterProperties:ef.clusterProperties,filter:ef.filter},ef.workerOptions)}onAdd(x){this.map=x,this.setData(this._data)}setData(x){return this._data=x,this._updateWorkerData(),this}getClusterExpansionZoom(x,eu){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:x,source:this.id},eu),this}getClusterChildren(x,eu){return this.actor.send("geojson.getClusterChildren",{clusterId:x,source:this.id},eu),this}getClusterLeaves(x,eu,ef,em){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:x,limit:eu,offset:ef},em),this}_updateWorkerData(){if(this._pendingLoad)return void(this._coalesce=!0);this.fire(new x.Event("dataloading",{dataType:"source"})),this._loaded=!1;let eu=x.extend({},this.workerOptions),ef=this._data;"string"==typeof ef?(eu.request=this.map._requestManager.transformRequest(x.exported.resolveURL(ef),x.ResourceType.Source),eu.request.collectResourceTiming=this._collectResourceTiming):eu.data=JSON.stringify(ef),this._pendingLoad=this.actor.send(`${this.type}.loadData`,eu,(eu,ef)=>{if(this._loaded=!0,this._pendingLoad=null,eu)this.fire(new x.ErrorEvent(eu));else{let eu={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&ef&&ef.resourceTiming&&ef.resourceTiming[this.id]&&(eu.resourceTiming=ef.resourceTiming[this.id]),this.fire(new x.Event("data",eu)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(eu,ef){let em=eu.actor?"reloadTile":"loadTile";
8eu.actor=this.actor,eu.request=this.actor.send(em,{type:this.type,uid:eu.uid,tileID:eu.tileID,tileZoom:eu.tileZoom,zoom:eu.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:x.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(x,e_)=>(delete eu.request,eu.unloadVectorData(),eu.aborted?ef(null):x?ef(x):(eu.loadVectorData(e_,this.map.painter,"reloadTile"===em),ef(null))),void 0,"loadTile"===em)}abortTile(x){x.request&&(x.request.cancel(),delete x.request),x.aborted=!0}unloadTile(x){x.unloadVectorData(),this.actor.send("removeTile",{uid:x.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return x.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends Ae{constructor(x,eu,ef,em){super(x,eu,ef,em),this.roundZoom=!0,this.type="video",this.options=eu}load(){this._loaded=!1;let eu=this.options;for(let ef of(this.urls=[],eu.urls))this.urls.push(this.map._requestManager.transformRequest(ef,x.ResourceType.Source).url);x.getVideo(this.urls,(eu,ef)=>{this._loaded=!0,eu?this.fire(new x.ErrorEvent(eu)):ef&&(this.video=ef,this.video.loop=!0,this.video.setAttribute("playsinline",""),this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(eu){if(this.video){let ef=this.video.seekable;eu<ef.start(0)||eu>ef.end(0)?this.fire(new x.ErrorEvent(new x.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${ef.start(0)} and ${ef.end(0)}-second mark.`))):this.video.currentTime=eu}}getVideo(){return this.video}
8onAdd(x){this.map||(this.map=x,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;let eu=this.map.painter.context,ef=eu.gl;this.texture?this.video.paused||(this.texture.bind(ef.LINEAR,ef.CLAMP_TO_EDGE),ef.texSubImage2D(ef.TEXTURE_2D,0,0,0,ef.RGBA,ef.UNSIGNED_BYTE,this.video)):(this.texture=new x.Texture(eu,this.video,ef.RGBA),this.texture.bind(ef.LINEAR,ef.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(eu)}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Ae,canvas:class extends Ae{constructor(eu,ef,em,e_){super(eu,ef,em,e_),ef.coordinates?Array.isArray(ef.coordinates)&&4===ef.coordinates.length&&!ef.coordinates.some(x=>!Array.isArray(x)||2!==x.length||x.some(x=>"number"!=typeof x))||this.fire(new x.ErrorEvent(new x.ValidationError(`sources.${eu}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new x.ErrorEvent(new x.ValidationError(`sources.${eu}`,null,'missing required property "coordinates"'))),ef.animate&&"boolean"!=typeof ef.animate&&this.fire(new x.ErrorEvent(new x.ValidationError(`sources.${eu}`,null,'optional "animate" property must be a boolean value'))),ef.canvas?"string"==typeof ef.canvas||ef.canvas instanceof x.window.HTMLCanvasElement||this.fire(new x.ErrorEvent(new x.ValidationError(`sources.${eu}`,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 x.ErrorEvent(new x.ValidationError(`sources.${eu}`,null,'missing required property "canvas"'))),this.options=ef,this.animate=void 0===ef.animate||ef.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof x.window.HTMLCanvasElement?this.options.canvas:x.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new x.ErrorEvent(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(x){this.map=x,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let eu=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,eu=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,eu=!0),this._hasInvalidDimensions()||0===Object.keys(this.tiles).length)return;let ef=this.map.painter.context;this.texture?(eu||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new x.Texture(ef,this.canvas,ef.gl.RGBA,{premultiply:!0}),this._prepareData(ef)}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let x of[this.canvas.width,this.canvas.height])if(isNaN(x)||x<=0)return!0;return!1}},custom:class extends x.Evented{constructor(eu,ef,em,e_){super(),this.id=eu,this.type="custom",this._dataType="raster",this._dispatcher=em,this._implementation=ef,this.setEventedParent(e_),this.scheme="xyz",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new x.ErrorEvent(Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new x.ErrorEvent(Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new U(this._implementation.bounds,this.minzoom,this.maxzoom)),ef.update=this._update.bind(this),ef.clearTiles=this._clearTiles.bind(this),ef.coveringTiles=this._coveringTiles.bind(this),x.extend(this,x.pick(ef,["dataType","scheme","minzoom","maxzoom","tileSize","attribution","minTileCacheSize","maxTileCacheSize"]))}serialize(){return x.pick(this,["type","scheme","minzoom","maxzoom","tileSize","attribution"])}load(){this._loaded=!0,this.fire(new x.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new x.Event("data",{dataType:"source",sourceDataType:"content"}))}loaded(){return this._loaded}onAdd(eu){this._map=eu,this._loaded=!1,this.fire(new x.Event("dataloading",{dataType:"source"})),this._implementation.onAdd&&this._implementation.onAdd(eu),this.load()}onRemove(x){this._implementation.onRemove&&this._implementation.onRemove(x)}hasTile(x){if(this._implementation.hasTile){let{x:eu,y:ef,z:em}=x.canonical;return this._implementation.hasTile({x:eu,y:ef,z:em})}return!this.tileBounds||this.tileBounds.contains(x.canonical)}loadTile(eu,ef){let{x:em,y:e_,z:eg}=eu.tileID.canonical,ex=new x.window.AbortController;eu.request=Promise.resolve(this._implementation.loadTile({x:em,y:e_,z:eg},{signal:ex.signal})).then((function(em){return delete eu.request,eu.aborted?(eu.state="unloaded",ef(null)):void 0===em?(eu.state="errored",ef(null)):null===em?(this.loadTileData(eu,{width:this.tileSize,height:this.tileSize,data:null}),eu.state="loaded",ef(null)):em instanceof x.window.ImageData||em instanceof x.window.HTMLCanvasElement||em instanceof x.window.ImageBitmap||em instanceof x.window.HTMLImageElement?(this.loadTileData(eu,em),eu.state="loaded",void ef(null)):(eu.state="errored",ef(Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}).bind(this)).catch(x=>{20!==x.code&&(eu.state="errored",ef(x))}),eu.request.cancel=()=>ex.abort()}loadTileData(x,eu){Se.loadTileData(x,eu,this._map.painter)}unloadTileData(x){Se.unloadTileData(x,this._map.painter)}unloadTile(x,eu){if(this.unloadTileData(x),this._implementation.unloadTile){let{x:eu,y:ef,z:em}=x.tileID.canonical;this._implementation.unloadTile({x:eu,y:ef,z:em})}eu()}abortTile(x,eu){x.request&&x.request.cancel&&(x.request.cancel(),delete x.request),eu()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map(x=>({x:x.canonical.x,y:x.canonical.y,z:x.canonical.z}))}
8_clearTiles(){this._map.style._clearSource(this.id)}_update(){this.fire(new x.Event("data",{dataType:"source",sourceDataType:"content"}))}}},Pe=function(eu,ef,em,e_){let eg=new eA[ef.type](eu,ef,em,e_);if(eg.id!==eu)throw Error(`Expected Source id to be ${eu} instead of ${eg.id}`);return x.bindAll(["load","abort","unload","serialize","prepare"],eg),eg};function ke(x,eu){let ef=x.tileID,em=eu.tileID;return ef.overscaledZ-em.overscaledZ||ef.canonical.y-em.canonical.y||ef.wrap-em.wrap||ef.canonical.x-em.canonical.x}function Fe(){return null!=tI.workerClass?new tI.workerClass:new x.window.Worker(tI.workerUrl)}let eC="mapboxgl_preloaded_worker_pool";let Ne=class Ne{constructor(){this.active={}}acquire(x){if(!this.workers)for(this.workers=[];this.workers.length<Ne.workerCount;)this.workers.push(new Fe);return this.active[x]=!0,this.workers.slice()}release(x){delete this.active[x],0===this.numActive()&&(this.workers.forEach(x=>{x.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eC]}numActive(){return Object.keys(this.active).length}};function je(){return em||(em=new Ne),em}function Ve(eu){eu=eu.slice();let ef=Object.create(null);for(let x=0;x<eu.length;x++)ef[eu[x].id]=eu[x];for(let em=0;em<eu.length;em++)"ref"in eu[em]&&(eu[em]=function(eu,ef){let em={};for(let x in eu)"ref"!==x&&(em[x]=eu[x]);return x.refProperties.forEach(x=>{x in ef&&(em[x]=ef[x])}),em}(eu[em],ef[eu[em].ref]));return eu}Ne.workerCount=2;let ez={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight",setTerrain:"setTerrain",setFog:"setFog",setProjection:"setProjection"};function Xe(x,eu,ef){ef.push({command:ez.addSource,args:[x,eu[x]]})}function qe(x,eu,ef){eu.push({command:ez.removeSource,args:[x]}),ef[x]=!0}function Ye(x,eu,ef,em,e_,eg){let ex;for(ex in eu=eu||{},x=x||{})x.hasOwnProperty(ex)&&(t(x[ex],eu[ex])||ef.push({command:eg,args:[em,ex,eu[ex],e_]}));for(ex in eu)eu.hasOwnProperty(ex)&&!x.hasOwnProperty(ex)&&(t(x[ex],eu[ex])||ef.push({command:eg,args:[em,ex,eu[ex],e_]}))}function Ke(x){return x.id}function Je(x,eu){return x[eu.id]=eu,x}let Qe=class Qe{constructor(x,eu){this.reset(x,eu)}reset(x,eu){this.points=x||[],this._distances=[0];for(let x=1;x<this.points.length;x++)this._distances[x]=this._distances[x-1]+this.points[x].dist(this.points[x-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(eu||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(eu){if(1===this.points.length)return this.points[0];eu=x.clamp(eu,0,1);let ef=1,em=this._distances[ef],e_=eu*this.paddedLength+this.padding;for(;em<e_&&ef<this._distances.length;)em=this._distances[++ef];let eg=ef-1,ex=this._distances[eg],ev=em-ex,eb=ev>0?(e_-ex)/ev:0;return this.points[eg].mult(1-eb).add(this.points[ef].mult(eb))}};let et=class et{constructor(x,eu,ef){let em=this.boxCells=[],e_=this.circleCells=[];this.xCellCount=Math.ceil(x/ef),this.yCellCount=Math.ceil(eu/ef);for(let x=0;x<this.xCellCount*this.yCellCount;x++)em.push([]),e_.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=x,this.height=eu,this.xScale=this.xCellCount/x,this.yScale=this.yCellCount/eu,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(x,eu,ef,em,e_){this._forEachCell(eu,ef,em,e_,this._insertBoxCell,this.boxUid++),this.boxKeys.push(x),this.bboxes.push(eu),this.bboxes.push(ef),this.bboxes.push(em),this.bboxes.push(e_)}
8insertCircle(x,eu,ef,em){this._forEachCell(eu-em,ef-em,eu+em,ef+em,this._insertCircleCell,this.circleUid++),this.circleKeys.push(x),this.circles.push(eu),this.circles.push(ef),this.circles.push(em)}_insertBoxCell(x,eu,ef,em,e_,eg){this.boxCells[e_].push(eg)}_insertCircleCell(x,eu,ef,em,e_,eg){this.circleCells[e_].push(eg)}_query(x,eu,ef,em,e_,eg){if(ef<0||x>this.width||em<0||eu>this.height)return!e_&&[];let ex=[];if(x<=0&&eu<=0&&this.width<=ef&&this.height<=em){if(e_)return!0;for(let x=0;x<this.boxKeys.length;x++)ex.push({key:this.boxKeys[x],x1:this.bboxes[4*x],y1:this.bboxes[4*x+1],x2:this.bboxes[4*x+2],y2:this.bboxes[4*x+3]});for(let x=0;x<this.circleKeys.length;x++){let eu=this.circles[3*x],ef=this.circles[3*x+1],em=this.circles[3*x+2];ex.push({key:this.circleKeys[x],x1:eu-em,y1:ef-em,x2:eu+em,y2:ef+em})}return eg?ex.filter(eg):ex}return this._forEachCell(x,eu,ef,em,this._queryCell,ex,{hitTest:e_,seenUids:{box:{},circle:{}}},eg),e_?ex.length>0:ex}_queryCircle(x,eu,ef,em,e_){let eg=x-ef,ex=x+ef,ev=eu-ef,eb=eu+ef;if(ex<0||eg>this.width||eb<0||ev>this.height)return!em&&[];let ew=[];return this._forEachCell(eg,ev,ex,eb,this._queryCellCircle,ew,{hitTest:em,circle:{x:x,y:eu,radius:ef},seenUids:{box:{},circle:{}}},e_),em?ew.length>0:ew}query(x,eu,ef,em,e_){return this._query(x,eu,ef,em,!1,e_)}hitTest(x,eu,ef,em,e_){return this._query(x,eu,ef,em,!0,e_)}hitTestCircle(x,eu,ef,em){return this._queryCircle(x,eu,ef,!0,em)}_queryCell(x,eu,ef,em,e_,eg,ex,ev){let eb=ex.seenUids,ew=this.boxCells[e_];if(null!==ew){let e_=this.bboxes;for(let eT of ew)if(!eb.box[eT]){eb.box[eT]=!0;let ew=4*eT;if(x<=e_[ew+2]&&eu<=e_[ew+3]&&ef>=e_[ew+0]&&em>=e_[ew+1]&&(!ev||ev(this.boxKeys[eT]))){if(ex.hitTest)return eg.push(!0),!0;eg.push({key:this.boxKeys[eT],x1:e_[ew],y1:e_[ew+1],x2:e_[ew+2],y2:e_[ew+3]})}}}let eT=this.circleCells[e_];if(null!==eT){let e_=this.circles;for(let ew of eT)if(!eb.circle[ew]){eb.circle[ew]=!0;let eT=3*ew;if(this._circleAndRectCollide(e_[eT],e_[eT+1],e_[eT+2],x,eu,ef,em)&&(!ev||ev(this.circleKeys[ew]))){if(ex.hitTest)return eg.push(!0),!0;{let x=e_[eT],eu=e_[eT+1],ef=e_[eT+2];eg.push({key:this.circleKeys[ew],x1:x-ef,y1:eu-ef,x2:x+ef,y2:eu+ef})}}}}}_queryCellCircle(x,eu,ef,em,e_,eg,ex,ev){let eb=ex.circle,ew=ex.seenUids,eT=this.boxCells[e_];if(null!==eT){let x=this.bboxes;for(let eu of eT)if(!ew.box[eu]){ew.box[eu]=!0;let ef=4*eu;if(this._circleAndRectCollide(eb.x,eb.y,eb.radius,x[ef+0],x[ef+1],x[ef+2],x[ef+3])&&(!ev||ev(this.boxKeys[eu])))return eg.push(!0),!0}}let eE=this.circleCells[e_];if(null!==eE){let x=this.circles;for(let eu of eE)if(!ew.circle[eu]){ew.circle[eu]=!0;let ef=3*eu;if(this._circlesCollide(x[ef],x[ef+1],x[ef+2],eb.x,eb.y,eb.radius)&&(!ev||ev(this.circleKeys[eu])))return eg.push(!0),!0}}}_forEachCell(x,eu,ef,em,e_,eg,ex,ev){let eb=this._convertToXCellCoord(x),ew=this._convertToYCellCoord(eu),eT=this._convertToXCellCoord(ef),eE=this._convertToYCellCoord(em);for(let eS=eb;eS<=eT;eS++)for(let eb=ew;eb<=eE;eb++)if(e_.call(this,x,eu,ef,em,this.xCellCount*eb+eS,eg,ex,ev))return}_convertToXCellCoord(x){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(x*this.xScale)))}_convertToYCellCoord(x){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(x*this.yScale)))}_circlesCollide(x,eu,ef,em,e_,eg){let ex=em-x,ev=e_-eu,eb=ef+eg;return eb*eb>ex*ex+ev*ev}_circleAndRectCollide(x,eu,ef,em,e_,eg,ex){let ev=(eg-em)/2,eb=Math.abs(x-(em+ev));if(eb>ev+ef)return!1;let ew=(ex-e_)/2,eT=Math.abs(eu-(e_+ew));if(eT>ew+ef)return!1;if(eb<=ev||eT<=ew)return!0;let eE=eb-ev,eS=eT-ew;return eE*eE+eS*eS<=ef*ef}};let eD=Math.tan(85*Math.PI/180);function it(eu,ef,em,e_,eg,ex,ev){let eb=x.create();if(em){if("globe"===ex.name){let eu=x.calculateGlobeLabelMatrix(eg,ef);x.multiply(eb,eb,eu)}else{let eu=v([],ev);eb[0]=eu[0],eb[1]=eu[1],eb[4]=eu[2],eb[5]=eu[3],e_||x.rotateZ(eb,eb,eg.angle)}}else x.multiply(eb,eg.labelPlaneMatrix,eu);return eb}function ot(x,eu,ef,em,e_,eg,ex){let ev=it(x,eu,ef,em,e_,eg,ex);return"globe"===eg.name&&ef||(ev[2]=ev[6]=ev[10]=ev[14]=0),ev}function rt(eu,ef,em,e_,eg,ex,ev){if(em){if("globe"===ex.name){let eb=it(eu,ef,em,e_,eg,ex,ev);return x.invert(eb,eb),x.multiply(eb,eu,eb),eb}{let ef=x.clone(eu),em=x.identity([]);return em[0]=ev[0],em[1]=ev[1],em[4]=ev[2],em[5]=ev[3],x.multiply(ef,ef,em),e_||x.rotateZ(ef,ef,-eg.angle),ef}}return eg.glCoordMatrix}function nt(eu,ef,em,e_){let eg=[eu,ef,em,1];em?x.transformMat4$1(eg,eg,e_):ft(eg,eg,e_);let ex=eg[3];return eg[0]/=ex,eg[1]/=ex,eg[2]/=ex,eg}function st(x,eu){return Math.min(.5+x/eu*.5,1.5)}function ct(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA){let{lineStartIndex:eC,glyphStartIndex:ez,segment:eD}=ev,ek=ez+ev.numGlyphs,eP=eC+ev.lineLength,eL=eu.getoffsetX(ez),eR=eu.getoffsetX(ek-1),eB=pt(x*eL,ef,em,e_,eg,ex,eD,eC,eP,eb,ew,eT,eE,eS,!0,eM,eI,eA);if(!eB)return null;let eO=pt(x*eR,ef,em,e_,eg,ex,eD,eC,eP,eb,ew,eT,eE,eS,!0,eM,eI,eA);return eO?{first:eB,last:eO}:null}function ht(eu,ef,em,e_){return eu===x.WritingMode.horizontal&&Math.abs(e_)>Math.abs(em)?{useVertical:!0}:eu===x.WritingMode.vertical?e_>0?{needsFlipping:!0}:null:0!==ef&&(0===em||Math.abs(e_/em)>eD)?1===ef?{needsFlipping:!0}:null:em<0?{needsFlipping:!0}:null}function ut(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD,ek){let eP=ef/24,eL=eu.lineOffsetX*eP,eR=eu.lineOffsetY*eP,{lineStartIndex:eB,glyphStartIndex:eO,numGlyphs:eF,segment:eU,writingMode:eV,flipState:eN}=eu,ej=eB+eu.lineLength,L=eu=>
8{if(eE){let[ef,em,e_]=eu.up,eg=eT.length;x.updateGlobeVertexNormal(eE,eg+0,ef,em,e_),x.updateGlobeVertexNormal(eE,eg+1,ef,em,e_),x.updateGlobeVertexNormal(eE,eg+2,ef,em,e_),x.updateGlobeVertexNormal(eE,eg+3,ef,em,e_)}let[ef,em,e_]=eu.point;x.addDynamicAttributes(eT,ef,em,e_,eu.angle)};if(eF>1){let x=ct(eP,eb,eL,eR,em,eS,eM,eu,ew,ex,eI,eC,!1,ez,eD,ek);if(!x)return{notEnoughRoom:!0};if(e_&&!em){let[ef,em,e_]=x.first.point,[eg,ex,eb]=x.last.point;[ef,em]=nt(ef,em,e_,ev),[eg,ex]=nt(eg,ex,eb,ev);let ew=ht(eV,eN,(eg-ef)*eA,ex-em);if(eu.flipState=ew&&ew.needsFlipping?1:2,ew)return ew}L(x.first);for(let x=eO+1;x<eO+eF-1;x++){let eu=pt(eP*eb.getoffsetX(x),eL,eR,em,eS,eM,eU,eB,ej,ew,ex,eI,eC,!1,!1,ez,eD,ek);if(!eu)return eT.length-=4*(x-eO),{notEnoughRoom:!0};L(eu)}L(x.last)}else{if(e_&&!em){let ef=nt(eM.x,eM.y,0,eg),em=eB+eU+1,e_=new x.pointGeometry(ew.getx(em),ew.gety(em)),ex=nt(e_.x,e_.y,0,eg),ev=ex[3]>0?ex:dt(eM,e_,ef,1,eg,void 0,ez,eD.canonical),eb=ht(eV,eN,(ev[0]-ef[0])*eA,ev[1]-ef[1]);if(eu.flipState=eb&&eb.needsFlipping?1:2,eb)return eb}let ef=pt(eP*eb.getoffsetX(eO),eL,eR,em,eS,eM,eU,eB,ej,ew,ex,eI,eC,!1,!1,ez,eD,ek);if(!ef)return{notEnoughRoom:!0};L(ef)}return{}}function _t(x,eu,ef,em,e_){let{x:eg,y:ex,z:ev}=em.projectTilePoint(x.x,x.y,eu);if(!e_)return nt(eg,ex,ev,ef);let[eb,ew,eT]=e_(x);return nt(eg+eb,ex+ew,ev+eT,ef)}function dt(eu,ef,em,e_,eg,ex,ev,eb){let ew=_t(eu.sub(ef)._unit()._add(eu),eb,eg,ev,ex);return x.sub(ew,em,ew),x.normalize(ew,ew),x.scaleAndAdd(ew,em,ew,e_)}function pt(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez,eD){let ek=e_?eu-ef:eu+ef,eP=ek>0?1:-1,eL=0;e_&&(eP*=-1,eL=Math.PI),eP<0&&(eL+=Math.PI);let eR=eb+ev+(eP>0?0:1)|0,eB=eg,eO=eg,eF=0,eU=0,eV=Math.abs(ek),eN=[],ej=[],eG=ex,eZ=eG,z=()=>dt(eZ,eG,eO,eV-eF+1,eE,eM,eC,ez.canonical);for(;eF+eU<=eV;){if((eR+=eP)<eb||eR>=ew)return null;if(eO=eB,eZ=eG,eN.push(eO),eI&&ej.push(eZ),eG=new x.pointGeometry(eT.getx(eR),eT.gety(eR)),!(eB=eS[eR])){let x=_t(eG,ez.canonical,eE,eC,eM);eB=x[3]>0?eS[eR]=x:z()}eF+=eU,eU=x.distance(eO,eB)}eA&&eM&&(eS[eR]&&(eB=z(),eU=x.distance(eO,eB)),eS[eR]=eB);let e$=(eV-eF)/eU,eq=eG.sub(eZ)._mult(e$)._add(eZ),eW=x.sub([],eB,eO),eX=x.scaleAndAdd([],eO,eW,e$),eH=[0,0,1],eY=eW[0],eJ=eW[1];if(eD&&(0!==(eH=eC.upVector(ez.canonical,eq.x,eq.y))[0]||0!==eH[1]||1!==eH[2])){let eu=[eH[2],0,-eH[0]],ef=x.cross([],eH,eu);x.normalize(eu,eu),x.normalize(ef,ef),eY=x.dot(eW,eu),eJ=x.dot(eW,ef)}if(em){let eu=x.cross([],eH,eW);x.normalize(eu,eu),x.scaleAndAdd(eX,eX,eu,em*eP)}let eK=eL+Math.atan2(eJ,eY);return eN.push(eX),eI&&ej.push(eq),{point:eX,angle:eK,path:eN,tilePath:ej,up:eH}}function mt(x,eu){let ef=eu.length,em=ef+4*x;eu.resize(em),eu.float32.fill(-1/0,4*ef,4*em)}function ft(x,eu,ef){let em=eu[0],e_=eu[1];return x[0]=ef[0]*em+ef[4]*e_+ef[12],x[1]=ef[1]*em+ef[5]*e_+ef[13],x[3]=ef[3]*em+ef[7]*e_+ef[15],x}let vt=class vt{constructor(x,eu,ef=new et(x.width+200,x.height+200,25),em=new et(x.width+200,x.height+200,25)){this.transform=x,this.grid=ef,this.ignoredGrid=em,this.pitchfactor=Math.cos(x._pitch)*x.cameraToCenterDistance,this.screenRightBoundary=x.width+100,this.screenBottomBoundary=x.height+100,this.gridRightBoundary=x.width+200,this.gridBottomBoundary=x.height+200,this.fogState=eu}placeCollisionBox(x,eu,ef,em,e_,eg,ex,ev){let eb=ef.projectedAnchorX,ew=ef.projectedAnchorY,eT=ef.projectedAnchorZ,eE=ef.elevation,eS=ef.tileID,eM=x.getProjection();if(eE&&eS){let[x,eu,em]=eM.upVector(eS.canonical,ef.tileAnchorX,ef.tileAnchorY),e_=eM.upVectorScale(eS.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;eb+=x*eE*e_,ew+=eu*eE*e_,eT+=em*eE*e_}let eI=this.projectAndGetPerspectiveRatio(ex,eb,ew,eT,ef.tileID,"globe"===eM.name||!!eE||this.transform.pitch>0,eM),eA=eg*eI.perspectiveRatio,eC=(ef.x1*eu+em.x-ef.padding)*eA+eI.point.x,ez=(ef.y1*eu+em.y-ef.padding)*eA+eI.point.y,eD=(ef.x2*eu+em.x+ef.padding)*eA+eI.point.x,ek=(ef.y2*eu+em.y+ef.padding)*eA+eI.point.y,eP=eI.perspectiveRatio<=.55||eI.occluded;return!this.isInsideGrid(eC,ez,eD,ek)||!e_&&this.grid.hitTest(eC,ez,eD,ek,ev)||eP?{box:[],offscreen:!1,occluded:eI.occluded}:{box:[eC,ez,eD,ek],offscreen:this.isOffscreen(eC,ez,eD,ek),occluded:!1}}placeCollisionCircles(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA){let eC=[],ez=this.transform.elevation,eD=eu.getProjection(),ek=ez?ez.getAtTileOffsetFunc(eA,this.transform.center.lat,this.transform.worldSize,eD):null,eP=new x.pointGeometry(em.tileAnchorX,em.tileAnchorY),{x:eL,y:eR,z:eB}=eD.projectTilePoint(eP.x,eP.y,eA.canonical);if(ek){let[x,eu,ef]=ek(eP);eL+=x,eR+=eu,eB+=ef}let eO="globe"===eD.name,eF=this.projectAndGetPerspectiveRatio(ev,eL,eR,eB,eA,eO||!!ez||this.transform.pitch>0,eD),{perspectiveRatio:eU}=eF,eV=(eE?ex/eU:ex*eU)/x.ONE_EM,eN=nt(eL,eR,eB,eb),ej=eF.signedDistanceFromCamera>0?ct(eV,eg,em.lineOffsetX*eV,em.lineOffsetY*eV,!1,eN,eP,em,e_,eb,{}
8,ez&&!eE?ek:null,eE&&!!ez,eD,eA,eE):null,eG=!1,eZ=!1,e$=!0;if(ej&&!eF.occluded){let eu=.5*eM*eU+eI,em=new x.pointGeometry(-100,-100),e_=new x.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),eg=new Qe,{first:ex,last:ev}=ej,eb=ex.path.length,eE=[];for(let x=eb-1;x>=1;x--)eE.push(ex.path[x]);for(let x=1;x<ev.path.length;x++)eE.push(ev.path[x]);let eA=2.5*eu;ew&&(eE=eE.map(([x,eu,ef],em)=>(ek&&!eO&&(ef=ek(em<eb-1?ex.tilePath[eb-1-em]:ev.tilePath[em-eb+2])[2]),nt(x,eu,ef,ew)))).some(x=>x[3]<=0)&&(eE=[]);let ez=[];if(eE.length>0){let eu=1/0,ef=-1/0,eg=1/0,ex=-1/0;for(let x of eE)eu=Math.min(eu,x[0]),eg=Math.min(eg,x[1]),ef=Math.max(ef,x[0]),ex=Math.max(ex,x[1]);ef>=em.x&&eu<=e_.x&&ex>=em.y&&eg<=e_.y&&(ez=[eE.map(eu=>new x.pointGeometry(eu[0],eu[1]))],(eu<em.x||ef>e_.x||eg<em.y||ex>e_.y)&&(ez=x.clipLine(ez,em.x,em.y,e_.x,e_.y)))}for(let x of ez){eg.reset(x,.25*eu);let em=0;em=eg.length<=.5*eu?1:Math.ceil(eg.paddedLength/eA)+1;for(let x=0;x<em;x++){let e_=x/Math.max(em-1,1),ex=eg.lerp(e_),ev=ex.x+100,eb=ex.y+100;eC.push(ev,eb,eu,0);let ew=ev-eu,eE=eb-eu,eM=ev+eu,eI=eb+eu;if(e$=e$&&this.isOffscreen(ew,eE,eM,eI),eZ=eZ||this.isInsideGrid(ew,eE,eM,eI),!ef&&this.grid.hitTestCircle(ev,eb,eu,eS)&&(eG=!0,!eT))return{circles:[],offscreen:!1,collisionDetected:eG,occluded:!1}}}}return{circles:(eT||!eG)&&eZ?eC:[],offscreen:e$,collisionDetected:eG,occluded:eF.occluded}}queryRenderedSymbols(eu){if(0===eu.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return{};let ef=[],em=1/0,e_=1/0,eg=-1/0,ex=-1/0;for(let ev of eu){let eu=new x.pointGeometry(ev.x+100,ev.y+100);em=Math.min(em,eu.x),e_=Math.min(e_,eu.y),eg=Math.max(eg,eu.x),ex=Math.max(ex,eu.y),ef.push(eu)}let ev=this.grid.query(em,e_,eg,ex).concat(this.ignoredGrid.query(em,e_,eg,ex)),eb={},ew={};for(let eu of ev){let em=eu.key;if(void 0===eb[em.bucketInstanceId]&&(eb[em.bucketInstanceId]={}),eb[em.bucketInstanceId][em.featureIndex])continue;let e_=[new x.pointGeometry(eu.x1,eu.y1),new x.pointGeometry(eu.x2,eu.y1),new x.pointGeometry(eu.x2,eu.y2),new x.pointGeometry(eu.x1,eu.y2)];x.polygonIntersectsPolygon(ef,e_)&&(eb[em.bucketInstanceId][em.featureIndex]=!0,void 0===ew[em.bucketInstanceId]&&(ew[em.bucketInstanceId]=[]),ew[em.bucketInstanceId].push(em.featureIndex))}return ew}insertCollisionBox(x,eu,ef,em,e_){(eu?this.ignoredGrid:this.grid).insert({bucketInstanceId:ef,featureIndex:em,collisionGroupID:e_},x[0],x[1],x[2],x[3])}insertCollisionCircles(x,eu,ef,em,e_){let eg=eu?this.ignoredGrid:this.grid,ex={bucketInstanceId:ef,featureIndex:em,collisionGroupID:e_};for(let eu=0;eu<x.length;eu+=4)eg.insertCircle(ex,x[eu],x[eu+1],x[eu+2])}projectAndGetPerspectiveRatio(eu,ef,em,e_,eg,ex,ev){let eb=[ef,em,e_,1],ew=!1;if(e_||this.transform.pitch>0){x.transformMat4$1(eb,eb,eu);let ex="globe"===ev.name;if(this.fogState&&eg&&!ex){let eu=function(eu,ef,em,e_,eg,ex){let ev=ex.calculateFogTileMatrix(eg),eb=[ef,em,e_];return x.transformMat4(eb,eb,ev),I(eu,eb,ex.pitch,ex._fov)}(this.fogState,ef,em,e_,eg.toUnwrapped(),this.transform);ew=eu>.9}}else ft(eb,eb,eu);let eT=eb[3];return{point:new x.pointGeometry((eb[0]/eT+1)/2*this.transform.width+100,(-eb[1]/eT+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(ev)/eT*.5,1.5),signedDistanceFromCamera:eT,occluded:ex&&eb[2]>eT||ew}}isOffscreen(x,eu,ef,em){return ef<100||x>=this.screenRightBoundary||em<100||eu>this.screenBottomBoundary}isInsideGrid(x,eu,ef,em){return ef>=0&&x<this.gridRightBoundary&&em>=0&&eu<this.gridBottomBoundary}getViewportMatrix(){let eu=x.identity([]);return x.translate(eu,eu,[-100,-100,0]),eu}};function xt(eu,ef,em){let e_=ef.createTileMatrix(eu,eu.worldSize,em.toUnwrapped());return x.multiply(new Float32Array(16),eu.projMatrix,e_)}function bt(x,eu,ef){return eu.name===ef.projection.name?x.projMatrix:xt(ef,eu,x)}let wt=class wt{constructor(x,eu,ef,em){this.opacity=x?Math.max(0,Math.min(1,x.opacity+(x.placed?eu:-eu))):em&&ef?1:0,this.placed=ef}isHidden(){return 0===this.opacity&&!this.placed}};let Tt=class Tt{constructor(x,eu,ef,em,e_,eg=!1){this.text=new wt(x?x.text:null,eu,ef,e_),this.icon=new wt(x?x.icon:null,eu,em,e_),this.clipped=eg}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}};let Et=class Et{constructor(x,eu,ef,em=!1){this.text=x,this.icon=eu,this.skipFade=ef,this.clipped=em}};let Ct=class Ct{constructor(){this.invProjMatrix=x.create(),this.viewportMatrix=x.create(),this.circles=[]}};let Mt=class Mt{constructor(x,eu,ef,em,e_){this.bucketInstanceId=x,this.featureIndex=eu,this.sourceLayerIndex=ef,this.bucketIndex=em,this.tileID=e_}};
8let It=class It{constructor(x){this.crossSourceCollisions=x,this.maxGroupID=0,this.collisionGroups={}}get(x){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[x]){let eu=++this.maxGroupID;this.collisionGroups[x]={ID:eu,predicate:x=>x.collisionGroupID===eu}}return this.collisionGroups[x]}};function St(eu,ef,em,e_,eg){let{horizontalAlign:ex,verticalAlign:ev}=x.getAnchorAlignment(eu),eb=x.evaluateVariableOffset(eu,e_);return new x.pointGeometry(-(ex-.5)*ef+eb[0]*eg,-(ev-.5)*em+eb[1]*eg)}function Dt(eu,ef,em,e_,eg){let ex=new x.pointGeometry(eu,ef);return em&&ex._rotate(e_?eg:-eg),ex}let Lt=class Lt{constructor(x,eu,ef,em,e_){this.transform=x.clone(),this.projection=x.projection.name,this.collisionIndex=new vt(this.transform,e_),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=eu,this.retainedQueryData={},this.collisionGroups=new It(ef),this.collisionCircleArrays={},this.prevPlacement=em,em&&(em.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(eu,ef,em,e_){var eg,ex,ev;let eb=em.getBucket(ef),ew=em.latestFeatureIndex;if(!eb||!ew||ef.id!==eb.layerIds[0])return;let eT=eb.layers[0].layout,eE=em.collisionBoxArray,eS=Math.pow(2,this.transform.zoom-em.tileID.overscaledZ),eM=em.tileSize/x.EXTENT,eI=em.tileID.toUnwrapped();this.transform.setProjection(eb.projection);let eA=(eg=em.tileID,ex=eb.getProjection(),ev=this.transform,ex.name===this.projection?ev.calculateProjMatrix(eg.toUnwrapped()):xt(ev,ex,eg)),eC="map"===eT.get("text-pitch-alignment"),ez="map"===eT.get("text-rotation-alignment");ef.compileFilter();let eD=ef.dynamicFilter(),ek=ef.dynamicFilterNeedsFeature(),eP=this.transform.calculatePixelsToTileUnitsMatrix(em),eL=ot(eA,em.tileID.canonical,eC,ez,this.transform,eb.getProjection(),eP),eR=null;if(eC){let eu=rt(eA,em.tileID.canonical,eC,ez,this.transform,eb.getProjection(),eP);eR=x.multiply([],this.transform.labelPlaneMatrix,eu)}let eB=null;eD&&em.latestFeatureIndex&&(eB={unwrappedTileID:eI,dynamicFilter:eD,dynamicFilterNeedsFeature:ek,featureIndex:em.latestFeatureIndex}),this.retainedQueryData[eb.bucketInstanceId]=new Mt(eb.bucketInstanceId,ew,eb.sourceLayerIndex,eb.index,em.tileID);let eO={bucket:eb,layout:eT,posMatrix:eA,textLabelPlaneMatrix:eL,labelToScreenMatrix:eR,clippingData:eB,scale:eS,textPixelRatio:eM,holdingForFade:em.holdingForFade(),collisionBoxArray:eE,partiallyEvaluatedTextSize:x.evaluateSizeForZoom(eb.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:x.evaluateSizeForZoom(eb.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(eb.sourceID)};if(e_)for(let x of eb.sortKeyRanges){let{sortKey:ef,symbolInstanceStart:em,symbolInstanceEnd:e_}=x;eu.push({sortKey:ef,symbolInstanceStart:em,symbolInstanceEnd:e_,parameters:eO})}else eu.push({symbolInstanceStart:0,symbolInstanceEnd:eb.symbolInstances.length,parameters:eO})}attemptAnchorPlacement(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez){let{textOffset0:eD,textOffset1:ek,crossTileID:eP}=eE,eL=[eD,ek],eR=St(x,ef,em,eL,e_),eB=this.collisionIndex.placeCollisionBox(eM,e_,eu,Dt(eR.x,eR.y,eg,ex,this.transform.angle),eT,ev,eb,ew.predicate);if(eA){let x=eM.getSymbolInstanceIconSize(ez,this.transform.zoom,eE.placedIconSymbolIndex);if(0===this.collisionIndex.placeCollisionBox(eM,x,eA,Dt(eR.x,eR.y,eg,ex,this.transform.angle),eT,ev,eb,ew.predicate).box.length)return}if(eB.box.length>0){let eu;return this.prevPlacement&&this.prevPlacement.variableOffsets[eP]&&this.prevPlacement.placements[eP]&&this.prevPlacement.placements[eP].text&&(eu=this.prevPlacement.variableOffsets[eP].anchor),this.variableOffsets[eP]={textOffset:eL,width:ef,height:em,anchor:x,textScale:e_,prevAnchor:eu},this.markUsedJustification(eM,x,eE,eI),eM.allowVerticalPlacement&&(this.markUsedOrientation(eM,eI,eE),this.placedOrientations[eP]=eI),{shift:eR,placedGlyphBoxes:eB}}}placeLayerBucketPart(eu,ef,em,e_){let{bucket:eg,layout:ex,posMatrix:ev,textLabelPlaneMatrix:eb,labelToScreenMatrix:ew,clippingData:eT,textPixelRatio:eE,holdingForFade:eS,collisionBoxArray:eM,partiallyEvaluatedTextSize:eI,partiallyEvaluatedIconSize:eA,collisionGroup:eC}=eu.parameters,ez=ex.get("text-optional"),eD=ex.get("icon-optional"),ek=ex.get("text-allow-overlap"),eP=ex.get("icon-allow-overlap"),eL="map"===ex.get("text-rotation-alignment"),eR="map"===ex.get("text-pitch-alignment"),eB="none"!==ex.get("icon-text-fit"),eO="viewport-y"===ex.get("symbol-z-order");this.transform.setProjection(eg.projection);let eF=ek&&(eP||!eg.hasIconData()||eD),eU=eP&&(ek||!eg.hasTextData()||ez);!eg.collisionArrays&&eM&&eg.deserializeCollisionBoxes(eM),em&&e_&&eg.updateCollisionDebugBuffers(this.transform.zoom,eM);let I=(eu,e_,eM)=>{let{crossTileID:eO,numVerticalGlyphVertices:eV}=eu;if(eT){let em={zoom:this.transform.zoom,pitch:this.transform.pitch},e_=null;if(eT.dynamicFilterNeedsFeature){let x=this.retainedQueryData[eg.bucketInstanceId];e_=eT.featureIndex.loadFeature({featureIndex:eu.featureIndex,bucketIndex:x.bucketIndex,sourceLayerIndex:x.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,eT.dynamicFilter)(em,e_,this.retainedQueryData[eg.bucketInstanceId].tileID.canonical,new x.pointGeometry(eu.tileAnchorX,eu.tileAnchorY),this.transform.calculateDistanceTileData(eT.unwrappedTileID)))return this.placements[eO]=new Et(!1,!1,!1,!0),void(ef[eO]=!0)}if(ef[eO])return;if(eS)return void(this.placements[eO]=new Et(!1,!1,!1));let eN=!1,ej=!1,eG=!0,eZ=!1,e$=!1,eq=null,eW={box:null,offscreen:null,occluded:null},eX={box:null,offscreen:null,occluded:null},eH=null,eY=null,eJ=null,eK=0,eQ=0,e0=0;eM.textFeatureIndex?eK=eM.textFeatureIndex:eu.useRuntimeCollisionCircles&&(eK=eu.featureIndex),eM.verticalTextFeatureIndex&&(eQ=eM.verticalTextFeatureIndex);let j=x=>{x.tileID=this.retainedQueryData[eg.bucketInstanceId].tileID;let eu=this.transform.elevation;(eu||x.elevation)&&(x.elevation=eu?eu.getAtTileOffset(x.tileID,x.tileAnchorX,x.tileAnchorY):0)},e1=eM.textBox;if(e1){j(e1);let i=ef=>{let em=x.WritingMode.horizontal;if(eg.allowVerticalPlacement&&!ef&&this.prevPlacement){let x=this.prevPlacement.placedOrientations[eO];x&&(this.placedOrientations[eO]=x,em=x,this.markUsedOrientation(eg,em,eu))}return em},o=(eu,ef)=>{if(eg.allowVerticalPlacement&&eV>0&&eM.verticalTextBox){for(let em of eg.writingModes)if(em===x.WritingMode.vertical?eX=eW=ef():eW=eu(),eW&&eW.box&&eW.box.length)break}else eW=eu()};if(ex.get("text-variable-anchor")){let ef=ex.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[eO]){let x=this.prevPlacement.variableOffsets[eO];ef.indexOf(x.anchor)>
80&&(ef=ef.filter(eu=>eu!==x.anchor)).unshift(x.anchor)}let c=(x,em,ex)=>{let eb=eg.getSymbolInstanceTextSize(eI,eu,this.transform.zoom,e_),ew=(x.x2-x.x1)*eb+2*x.padding,eT=(x.y2-x.y1)*eb+2*x.padding,eS=eB&&!eP?em:null;eS&&j(eS);let eM={box:[],offscreen:!1,occluded:!1},ez=ek?2*ef.length:ef.length;for(let em=0;em<ez;++em){let ez=this.attemptAnchorPlacement(ef[em%ef.length],x,ew,eT,eb,eL,eR,eE,ev,eC,em>=ef.length,eu,e_,eg,ex,eS,eI,eA);if(ez&&(eM=ez.placedGlyphBoxes)&&eM.box&&eM.box.length){eN=!0,eq=ez.shift;break}}return eM};o(()=>c(e1,eM.iconBox,x.WritingMode.horizontal),()=>{let eu=eM.verticalTextBox;return eu&&j(eu),eg.allowVerticalPlacement&&!(eW&&eW.box&&eW.box.length)&&eV>0&&eu?c(eu,eM.verticalIconBox,x.WritingMode.vertical):{box:null,offscreen:null,occluded:null}}),eW&&(eN=eW.box,eG=eW.offscreen,eZ=eW.occluded);let em=i(eW&&eW.box);if(!eN&&this.prevPlacement){let x=this.prevPlacement.variableOffsets[eO];x&&(this.variableOffsets[eO]=x,this.markUsedJustification(eg,x.anchor,eu,em))}}else{let s=(ef,em)=>{let ex=eg.getSymbolInstanceTextSize(eI,eu,this.transform.zoom,e_),eb=this.collisionIndex.placeCollisionBox(eg,ex,ef,new x.pointGeometry(0,0),ek,eE,ev,eC.predicate);return eb&&eb.box&&eb.box.length&&(this.markUsedOrientation(eg,em,eu),this.placedOrientations[eO]=em),eb};o(()=>s(e1,x.WritingMode.horizontal),()=>{let eu=eM.verticalTextBox;return eg.allowVerticalPlacement&&eV>0&&eu?(j(eu),s(eu,x.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}}),i(eW&&eW.box&&eW.box.length)}}if(eN=(eH=eW)&&eH.box&&eH.box.length>0,eG=eH&&eH.offscreen,eZ=eH&&eH.occluded,eu.useRuntimeCollisionCircles){let ef=eg.text.placedSymbolArray.get(eu.centerJustifiedTextSymbolIndex>=0?eu.centerJustifiedTextSymbolIndex:eu.verticalPlacedTextSymbolIndex),e_=x.evaluateSizeForFeature(eg.textSizeData,eI,ef),eT=ex.get("text-padding");eY=this.collisionIndex.placeCollisionCircles(eg,ek,ef,eg.lineVertexArray,eg.glyphOffsetArray,e_,ev,eb,ew,em,eR,eC.predicate,eu.collisionCircleDiameter*e_/x.ONE_EM,eT,this.retainedQueryData[eg.bucketInstanceId].tileID),eN=ek||eY.circles.length>0&&!eY.collisionDetected,eG=eG&&eY.offscreen,eZ=eY.occluded}if(eM.iconFeatureIndex&&(e0=eM.iconFeatureIndex),eM.iconBox){let i=ef=>{j(ef);let em=eB&&eq?Dt(eq.x,eq.y,eL,eR,this.transform.angle):new x.pointGeometry(0,0),e_=eg.getSymbolInstanceIconSize(eA,this.transform.zoom,eu.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(eg,e_,ef,em,eP,eE,ev,eC.predicate)};ej=eX&&eX.box&&eX.box.length&&eM.verticalIconBox?(eJ=i(eM.verticalIconBox)).box.length>0:(eJ=i(eM.iconBox)).box.length>0,eG=eG&&eJ.offscreen,e$=eJ.occluded}let e2=ez||0===eu.numHorizontalGlyphVertices&&0===eV,e3=eD||0===eu.numIconVertices;if(e2||e3?e3?e2||(ej=ej&&eN):eN=ej&&eN:ej=eN=ej&&eN,eN&&eH&&eH.box&&this.collisionIndex.insertCollisionBox(eH.box,ex.get("text-ignore-placement"),eg.bucketInstanceId,eX&&eX.box&&eQ?eQ:eK,eC.ID),ej&&eJ&&this.collisionIndex.insertCollisionBox(eJ.box,ex.get("icon-ignore-placement"),eg.bucketInstanceId,e0,eC.ID),eY&&(eN&&this.collisionIndex.insertCollisionCircles(eY.circles,ex.get("text-ignore-placement"),eg.bucketInstanceId,eK,eC.ID),em)){let x=eg.bucketInstanceId,eu=this.collisionCircleArrays[x];void 0===eu&&(eu=this.collisionCircleArrays[x]=new Ct);for(let x=0;x<eY.circles.length;x+=4)eu.circles.push(eY.circles[x+0]),eu.circles.push(eY.circles[x+1]),eu.circles.push(eY.circles[x+2]),eu.circles.push(eY.collisionDetected?1:0)}let e5="globe"!==eg.projection.name;eF=eF&&(e5||!eZ),eU=eU&&(e5||!e$),this.placements[eO]=new Et(eN||eF,ej||eU,eG||eg.justReloaded),ef[eO]=!0};if(eO){let x=eg.getSortedSymbolIndexes(this.transform.angle);for(let eu=x.length-1;eu>=0;--eu){let ef=x[eu];I(eg.symbolInstances.get(ef),ef,eg.collisionArrays[ef])}}else for(let x=eu.symbolInstanceStart;x<eu.symbolInstanceEnd;x++)I(eg.symbolInstances.get(x),x,eg.collisionArrays[x]);if(em&&eg.bucketInstanceId in this.collisionCircleArrays){let eu=this.collisionCircleArrays[eg.bucketInstanceId];x.invert(eu.invProjMatrix,ev),eu.viewportMatrix=this.collisionIndex.getViewportMatrix()}eg.justReloaded=!1}markUsedJustification(eu,ef,em,e_){let{leftJustifiedTextSymbolIndex:eg,centerJustifiedTextSymbolIndex:ex,r
8ightJustifiedTextSymbolIndex:ev,verticalPlacedTextSymbolIndex:eb,crossTileID:ew}=em,eT=x.getAnchorJustification(ef),eE=e_===x.WritingMode.vertical?eb:"left"===eT?eg:"center"===eT?ex:"right"===eT?ev:-1;eg>=0&&(eu.text.placedSymbolArray.get(eg).crossTileID=eE>=0&&eg!==eE?0:ew),ex>=0&&(eu.text.placedSymbolArray.get(ex).crossTileID=eE>=0&&ex!==eE?0:ew),ev>=0&&(eu.text.placedSymbolArray.get(ev).crossTileID=eE>=0&&ev!==eE?0:ew),eb>=0&&(eu.text.placedSymbolArray.get(eb).crossTileID=eE>=0&&eb!==eE?0:ew)}markUsedOrientation(eu,ef,em){let e_=ef===x.WritingMode.horizontal||ef===x.WritingMode.horizontalOnly?ef:0,eg=ef===x.WritingMode.vertical?ef:0,{leftJustifiedTextSymbolIndex:ex,centerJustifiedTextSymbolIndex:ev,rightJustifiedTextSymbolIndex:eb,verticalPlacedTextSymbolIndex:ew}=em,eT=eu.text.placedSymbolArray;ex>=0&&(eT.get(ex).placedOrientation=e_),ev>=0&&(eT.get(ev).placedOrientation=e_),eb>=0&&(eT.get(eb).placedOrientation=e_),ew>=0&&(eT.get(ew).placedOrientation=eg)}commit(x){this.commitTime=x,this.zoomAtLastRecencyCheck=this.transform.zoom;let eu=this.prevPlacement,ef=!1;this.prevZoomAdjustment=eu?eu.zoomAdjustment(this.transform.zoom):0;let em=eu?eu.symbolFadeChange(x):1,e_=eu?eu.opacities:{},eg=eu?eu.variableOffsets:{},ex=eu?eu.placedOrientations:{};for(let x in this.placements){let eu=this.placements[x],eg=e_[x];eg?(this.opacities[x]=new Tt(eg,em,eu.text,eu.icon,null,eu.clipped),ef=ef||eu.text!==eg.text.placed||eu.icon!==eg.icon.placed):(this.opacities[x]=new Tt(null,em,eu.text,eu.icon,eu.skipFade,eu.clipped),ef=ef||eu.text||eu.icon)}for(let x in e_){let eu=e_[x];if(!this.opacities[x]){let e_=new Tt(eu,em,!1,!1);e_.isHidden()||(this.opacities[x]=e_,ef=ef||eu.text.placed||eu.icon.placed)}}for(let x in eg)this.variableOffsets[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.variableOffsets[x]=eg[x]);for(let x in ex)this.placedOrientations[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.placedOrientations[x]=ex[x]);ef?this.lastPlacementChangeTime=x:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=eu?eu.lastPlacementChangeTime:x)}updateLayerOpacities(x,eu){let ef={};for(let em of eu){let eu=em.getBucket(x);eu&&em.latestFeatureIndex&&x.id===eu.layerIds[0]&&this.updateBucketOpacities(eu,ef,em.collisionBoxArray)}}updateBucketOpacities(eu,ef,em){eu.hasTextData()&&eu.text.opacityVertexArray.clear(),eu.hasIconData()&&eu.icon.opacityVertexArray.clear(),eu.hasIconCollisionBoxData()&&eu.iconCollisionBox.collisionVertexArray.clear(),eu.hasTextCollisionBoxData()&&eu.textCollisionBox.collisionVertexArray.clear();let e_=eu.layers[0].layout,eg=!!eu.layers[0].dynamicFilter(),ex=new Tt(null,0,!1,!1,!0),ev=e_.get("text-allow-overlap"),eb=e_.get("icon-allow-overlap"),ew=e_.get("text-variable-anchor"),eT="map"===e_.get("text-rotation-alignment"),eE="map"===e_.get("text-pitch-alignment"),eS="none"!==e_.get("icon-text-fit"),eM=new Tt(null,0,ev&&(eb||!eu.hasIconData()||e_.get("icon-optional")),eb&&(ev||!eu.hasTextData()||e_.get("text-optional")),!0);!eu.collisionArrays&&em&&(eu.hasIconCollisionBoxData()||eu.hasTextCollisionBoxData())&&eu.deserializeCollisionBoxes(em);let p=(x,eu,ef)=>{for(let em=0;em<eu/4;em++)x.opacityVertexArray.emplaceBack(ef)},eI=0;for(let em=0;em<eu.symbolInstances.length;em++){let e_=eu.symbolInstances.get(em),{numHorizontalGlyphVertices:ev,numVerticalGlyphVertices:eb,crossTileID:eA,numIconVertices:eC}=e_,ez=this.opacities[eA];ef[eA]?ez=ex:ez||(ez=eM,this.opacities[eA]=ez),ef[eA]=!0;let eD=ev>0||eb>0,eP=eC>0,eL=this.placedOrientations[eA],eR=eL===x.WritingMode.vertical,eB=eL===x.WritingMode.horizontal||eL===x.WritingMode.horizontalOnly;if(!eD&&!eP||ez.isHidden()||eI++,eD){let x=Ut(ez.text);p(eu.text,ev,eR?ek:x),p(eu.text,eb,eB?ek:x);let ef=ez.text.isHidden(),{leftJustifiedTextSymbolIndex:em,centerJustifiedTextSymbolIndex:eg,rightJustifiedTextSymbolIndex:ex,verticalPlacedTextSymbolIndex:ew}=e_,eT=eu.text.placedSymbolArray,eE=ef||eR?1:0;em>=0&&(eT.get(em).hidden=eE),eg>=0&&(eT.get(eg).hidden=eE),ex>=0&&(eT.get(ex).hidden=eE),ew>=0&&(eT.get(ew).hidden=ef||eB?1:0);let eS=this.variableOffsets[eA];eS&&this.markUsedJustification(eu,eS.anchor,e_,eL);let eM=this.placedOrientations[eA];eM&&(this.markUsedJustification(eu,"left",e_,eM),this.markUsedOrientation(eu,eM,e_))}if(eP){let x=Ut(ez.icon),{placedIconSymbolIndex:ef,verticalPlacedIconSymbolIndex:em}=e_,eg=eu.icon.placedSymbolArray,ex=ez.icon.isHidden()?1:0;ef>=0&&(p(eu.icon,eC,eR?ek:x),eg.get(ef).hidden=ex),em>=0&&(p(eu.icon,e_.numVerticalIconVertices,eB?ek:x),eg.get(em).hidden=ex)}if(eu.hasIconCollisionBoxData()||eu.hasTextCollisionBoxData()){let ef=eu.collisionArrays[em];if(ef){let em=new x.pointGeometry(0,0),e_=!0;if(ef.textBox||ef.verticalTextBox){if(ew){let x=this.variableOffsets[eA];x?(em=St(x.anchor,x.width,x.height,x.textOffset,x.textScale),eT&&em._rotate(eE?this.transform.angle:-this.transform.angle)):e_=!1}eg&&(e_=!ez.clipped),ef.textBox&&At(eu.textCollisionBox.collisionVertexArray,ez.text.placed,!e_||eR,em.x,em.y),ef.verticalTextBox&&At(eu.textCollisionBox.collisionVertexArray,ez.text.placed,!e_||eB,em.x,em.y)}let ex=e_&&!!(!eB&&ef.verticalIconBox);ef.iconBox&&At(eu.iconCollisionBox.collisionVertexArray,ez.icon.placed,ex,eS?em.x:0,eS?em.y:0),ef.verticalIconBox&&At(eu.iconCollisionBox.collisionVertexArray,ez.icon.placed,!ex,eS?em.x:0,eS?em.y:0)}}}if(eu.fullyClipped=0===eI,eu.sortFeatures(this.transform.angle),this.retainedQueryData[eu.bucketInstanceId]&&(this.retainedQueryData[eu.bucketInstanceId].featureSortOrder=eu.featureSortOrder),eu.hasTextData()&&eu.text.opacityVertexBuffer&&eu.text.opacityVertexBuffer.updateData(eu.text.opacityVertexArray),eu.hasIconData()&&eu.icon.opacityVertexBuffer&&eu.icon.opacityVertexBuffer.updateData(eu.icon.opacityVertexArray),eu.hasIconCollisionBoxData()&&eu.iconCollisionBox.collisionVertexBuffer&&eu.iconCollisionBox.collisionVertexBuffer.updateData(eu.iconCollisionBox.collisionVertexArray),eu.hasTextCollisionBoxData()&&eu.textCollisionBox.collisionVertexBuffer&&eu.textCollisionBox.collisionVertexBuffer.updateData(eu.textCollisionBox.collisionVertexArray),eu.bucketInstanceId in this.collisionCircleArrays){let x=this.collisionCircleArrays[eu.bucketInstanceId];eu.placementInvProjMatrix=x.invProjMatrix,eu.placementViewportMatrix=x.viewportMatrix,eu.collisionCircleArray=x.circles,delete this.collisionCircleArrays[eu.bucketInstanceId]}}symbolFadeChange(x){return 0===this.fadeDuration?1:(x-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(x){return Math.max(0,(this.transform.zoom-x)/1.5)}hasTransitions(x){return this.stale||x-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(x,eu){let ef=this.zoomAtLastRecencyCheck===eu?1-this.zoomAdjustment(eu):1;return this.zoomAtLastRecencyCheck=eu,this.commitTime+this.fadeDuration*ef>x}setStale(){this.stale=!0}};function At(x,eu,ef,em,e_){x.emplaceBack(eu?1:0,ef?1:0,em||0,e_||0),x.emplaceBack(eu?1:0,ef?1:0,em||0,e_||0),x.emplaceBack(eu?1:0,ef?1:0,em||0,e_||0),x.emplaceBack(eu?1:0,ef?1:0,em||0,e_||0)}function Ut(x){if(0===x.opacity&&!x.placed)return 0;if(1===x.opacity&&x.placed)return 4294967295;let eu=x.placed?1:0,ef=Math.floor(127*x.opacity);return 33554432*ef+16777216*eu+131072*ef+65536*eu+512*ef+256*eu+2*ef+eu}let ek=0;
8let Gt=class Gt{constructor(x){this._sortAcrossTiles="viewport-y"!==x.layout.get("symbol-z-order")&&void 0!==x.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(x,eu,ef,em,e_){let eg=this._bucketParts;for(;this._currentTileIndex<x.length;)if(eu.getBucketParts(eg,em,x[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,e_())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,eg.sort((x,eu)=>x.sortKey-eu.sortKey));this._currentPartIndex<eg.length;){let x=eg[this._currentPartIndex];if(eu.placeLayerBucketPart(x,this._seenCrossTileIDs,ef,0===x.symbolInstanceStart),this._currentPartIndex++,e_())return!0}return!1}};let jt=class jt{constructor(x,eu,ef,em,e_,eg,ex,ev){this.placement=new Lt(x,e_,eg,ex,ev),this._currentPlacementIndex=eu.length-1,this._forceFullPlacement=ef,this._showCollisionBoxes=em,this._done=!1}isDone(){return this._done}continuePlacement(eu,ef,em){let e_=x.exported.now(),n=()=>{let eu=x.exported.now()-e_;return!this._forceFullPlacement&&eu>2};for(;this._currentPlacementIndex>=0;){let x=ef[eu[this._currentPlacementIndex]],e_=this.placement.collisionIndex.transform.zoom;if("symbol"===x.type&&(!x.minzoom||x.minzoom<=e_)&&(!x.maxzoom||x.maxzoom>e_)){if(this._inProgressLayer||(this._inProgressLayer=new Gt(x)),this._inProgressLayer.continuePlacement(em[x.source],this.placement,this._showCollisionBoxes,x,n))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(x){return this.placement.commit(x),this.placement}};let eP=512/x.EXTENT/2;let Vt=class Vt{constructor(x,eu,ef){this.tileID=x,this.indexedSymbolInstances={},this.bucketInstanceId=ef;for(let ef=0;ef<eu.length;ef++){let em=eu.get(ef),e_=em.key;this.indexedSymbolInstances[e_]||(this.indexedSymbolInstances[e_]=[]),this.indexedSymbolInstances[e_].push({crossTileID:em.crossTileID,coord:this.getScaledCoordinates(em,x)})}}getScaledCoordinates(eu,ef){let em=eP/Math.pow(2,ef.canonical.z-this.tileID.canonical.z);return{x:Math.floor((ef.canonical.x*x.EXTENT+eu.tileAnchorX)*em),y:Math.floor((ef.canonical.y*x.EXTENT+eu.tileAnchorY)*em)}}findMatches(x,eu,ef){let em=this.tileID.canonical.z<eu.canonical.z?1:Math.pow(2,this.tileID.canonical.z-eu.canonical.z);for(let e_=0;e_<x.length;e_++){let eg=x.get(e_);if(eg.crossTileID)continue;let ex=this.indexedSymbolInstances[eg.key];if(!ex)continue;let ev=this.getScaledCoordinates(eg,eu);for(let x of ex)if(Math.abs(x.coord.x-ev.x)<=em&&Math.abs(x.coord.y-ev.y)<=em&&!ef[x.crossTileID]){ef[x.crossTileID]=!0,eg.crossTileID=x.crossTileID;break}}}};let Wt=class Wt{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}};let Xt=class Xt{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(x){let eu=Math.round((x-this.lng)/360);if(0!==eu)for(let x in this.indexes){let ef=this.indexes[x],em={};for(let x in ef){let e_=ef[x];e_.tileID=e_.tileID.unwrapTo(e_.tileID.wrap+eu),em[e_.tileID.key]=e_}this.indexes[x]=em}this.lng=x}addBucket(x,eu,ef){if(this.indexes[x.overscaledZ]&&this.indexes[x.overscaledZ][x.key]){if(this.indexes[x.overscaledZ][x.key].bucketInstanceId===eu.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(x.overscaledZ,this.indexes[x.overscaledZ][x.key])}for(let x=0;x<eu.symbolInstances.length;x++)eu.symbolInstances.get(x).crossTileID=0;this.usedCrossTileIDs[x.overscaledZ]||(this.usedCrossTileIDs[x.overscaledZ]={});let em=this.usedCrossTileIDs[x.overscaledZ];for(let ef in this.indexes){let e_=this.indexes[ef];if(Number(ef)>x.overscaledZ)for(let ef in e_){let eg=e_[ef];eg.tileID.isChildOf(x)&&eg.findMatches(eu.symbolInstances,x,em)}else{let eg=e_[x.scaledTo(Number(ef)).key];eg&&eg.findMatches(eu.symbolInstances,x,em)}}for(let x=0;x<eu.symbolInstances.length;x++){let e_=eu.symbolInstances.get(x);e_.crossTileID||(e_.crossTileID=ef.generate(),em[e_.crossTileID]=!0)}return void 0===this.indexes[x.overscaledZ]&&(this.indexes[x.overscaledZ]={}),this.indexes[x.overscaledZ][x.key]=new Vt(x,eu.symbolInstances,eu.bucketInstanceId),!0}removeBucketCrossTileIDs(x,eu){for(let ef in eu.indexedSymbolInstances)for(let em of eu.indexedSymbolInstances[ef])delete this.usedCrossTileIDs[x][em.crossTileID]}removeStaleBuckets(x){let eu=!1;for(let ef in this.indexes){let em=this.indexes[ef];for(let e_ in em)x[em[e_].bucketInstanceId]||(this.removeBucketCrossTileIDs(ef,em[e_]),delete em[e_],eu=!0)}return eu}};let qt=class qt{constructor(){this.layerIndexes={},this.crossTileIDs=new Wt,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(x,eu,ef,em){let e_=this.layerIndexes[x.id];void 0===e_&&(e_=this.layerIndexes[x.id]=new Xt);let eg=!1,ex={};for(let ev of("globe"!==em.name&&e_.handleWrapJump(ef),eu)){let eu=ev.getBucket(x);eu&&x.id===eu.layerIds[0]&&(eu.bucketInstanceId||(eu.bucketInstanceId=++this.maxBucketInstanceId),e_.addBucket(ev.tileID,eu,this.crossTileIDs)&&(eg=!0),ex[eu.bucketInstanceId]=!0)}return e_.removeStaleBuckets(ex)&&(eg=!0),eg}pruneUnusedLayers(x){let eu={};for(let ef in x.forEach(x=>{eu[x]=!0}),this.layerIndexes)eu[ef]||delete this.layerIndexes[ef]}};let $t=(eu,ef)=>x.emitValidationErrors(eu,ef&&ef.filter(x=>"source.canvas"!==x.identifier)),eL=x.pick(ez,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),eR=x.pick(ez,["setCenter","setZoom","setBearing","setP
8itch"]),eB={version:8,layers:[],sources:{}},eO={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};let Qt=class Qt extends x.Evented{constructor(eu,ef={}){super(),this.map=eu,this.dispatcher=new z(je(),this),this.imageManager=new y,this.imageManager.setEventedParent(this),this.glyphManager=new x.GlyphManager(eu._requestManager,ef.localFontFamily?x.LocalGlyphMode.all:ef.localIdeographFontFamily?x.LocalGlyphMode.ideographs:x.LocalGlyphMode.none,ef.localFontFamily||ef.localIdeographFontFamily),this.crossTileSymbolIndex=new qt,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",x.getReferrer());let em=this;this._rtlTextPluginCallback=Qt.registerForPluginStateChange(eu=>{em.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:eu.pluginStatus,pluginURL:eu.pluginURL},(eu,ef)=>{if(x.triggerPluginCompletionEvent(eu),ef&&ef.every(x=>x))for(let x in em._sourceCaches){let eu=em._sourceCaches[x],ef=eu.getSource().type;"vector"!==ef&&"geojson"!==ef||eu.reload()}})}),this.on("data",x=>{if("source"!==x.dataType||"metadata"!==x.sourceDataType)return;let eu=this.getSource(x.sourceId);if(eu&&eu.vectorLayerIds)for(let x in this._layers){let ef=this._layers[x];ef.source===eu.id&&this._validateLayer(ef)}})}loadURL(eu,ef={}){this.fire(new x.Event("dataloading",{dataType:"style"}));let em="boolean"==typeof ef.validate?ef.validate:!x.isMapboxURL(eu);eu=this.map._requestManager.normalizeStyleURL(eu,ef.accessToken);let e_=this.map._requestManager.transformRequest(eu,x.ResourceType.Style);this._request=x.getJSON(e_,(eu,ef)=>{this._request=null,eu?this.fire(new x.ErrorEvent(eu)):ef&&this._load(ef,em)})}loadJSON(eu,ef={}){this.fire(new x.Event("dataloading",{dataType:"style"})),this._request=x.exported.frame(()=>{this._request=null,this._load(eu,!1!==ef.validate)})}loadEmpty(){this.fire(new x.Event("dataloading",{dataType:"style"})),this._load(eB,!1)}_updateLayerCount(x,eu){let ef=eu?1:-1;x.is3D()&&(this._num3DLayers+=ef),"circle"===x.type&&(this._numCircleLayers+=ef),"symbol"===x.type&&(this._numSymbolLayers+=ef)}_load(eu,ef){if(ef&&$t(this,x.validateStyle(eu)))return;for(let ef in this._loaded=!0,this.stylesheet=x.clone$1(eu),this._updateMapProjection(),eu.sources)this.addSource(ef,eu.sources[ef],{validate:!1});this._changed=!1,eu.sprite?this._loadSprite(eu.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(eu.glyphs);let em=Ve(this.stylesheet.layers);for(let eu of(this._order=em.map(x=>x.id),this._layers={},this._serializedLayers={},em)){let ef=x.createStyleLayer(eu);ef.setEventedParent(this,{layer:{id:ef.id}}),this._layers[ef.id]=ef,this._serializedLayers[ef.id]=ef.serialize(),this._updateLayerCount(ef,!0)}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new T(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new x.Event("data",{dataType:"style"})),this.fire(new x.Event("style.load"))}terrainSetForDrapingOnly(){return!!this.terrain&&0===this.terrain.drapeRenderMode}setProjection(x){x?this.stylesheet.projection=x:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(eu){this._spriteRequest=function(eu,ef,em){let e_,eg,ex;let ev=x.exported.devicePixelRatio>1?"@2x":"",eb=x.getJSON(ef.transformRequest(ef.normalizeSpriteURL(eu,ev,".json"),x.ResourceType.SpriteJSON),(x,eu)=>{eb=null,ex||(ex=x,e_=eu,h())}),ew=x.getImage(ef.transformRequest(ef.normalizeSpriteURL(eu,ev,".png"),x.ResourceType.SpriteImage),(x,eu)=>{ew=null,ex||(ex=x,eg=eu,h())});function h(){if(ex)em(ex);else if(e_&&eg){let eu=x.exported.getImageData(eg),ef={};for(let em in e_){let{width:eg,height:ex,x:ev,y:eb,sdf:ew,pixelRatio:eT,stretchX:eE,stretchY:eS,content:eM}=e_[em],eI=new x.RGBAImage({width:eg,height:ex});x.RGBAImage.copy(eu,eI,{x:ev,y:eb},{x:0,y:0},{width:eg,height:ex}
8),ef[em]={data:eI,pixelRatio:eT,sdf:ew,stretchX:eE,stretchY:eS,content:eM}}em(null,ef)}}return{cancel(){eb&&(eb.cancel(),eb=null),ew&&(ew.cancel(),ew=null)}}}(eu,this.map._requestManager,(eu,ef)=>{if(this._spriteRequest=null,eu)this.fire(new x.ErrorEvent(eu));else if(ef)for(let x in ef)this.imageManager.addImage(x,ef[x]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new x.Event("data",{dataType:"style"}))})}_validateLayer(eu){let ef=this.getSource(eu.source);if(!ef)return;let em=eu.sourceLayer;em&&("geojson"===ef.type||ef.vectorLayerIds&&-1===ef.vectorLayerIds.indexOf(em))&&this.fire(new x.ErrorEvent(Error(`Source layer "${em}" does not exist on source "${ef.id}" as specified by style layer "${eu.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let x in this._sourceCaches)if(!this._sourceCaches[x].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(x){let eu=[];for(let ef of x){let x=this._layers[ef];"custom"!==x.type&&eu.push(x.serialize())}return eu}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(let x in this._sourceCaches)if(this._sourceCaches[x].hasTransition())return!0;for(let x in this._layers)if(this._layers[x].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(x){return!!this.terrain&&("function"==typeof x.isLayerDraped?x.isLayerDraped():eO[x.type])}_checkLoaded(){if(!this._loaded)throw Error("Style is not done loading")}update(eu){if(!this._loaded)return;let ef=this._changed;if(this._changed){let x=Object.keys(this._updatedLayers),ef=Object.keys(this._removedLayers);for(let eu in(x.length||ef.length)&&this._updateWorkerLayers(x,ef),this._updatedSources){let x=this._updatedSources[eu];"reload"===x?this._reloadSource(eu):"clear"===x&&this._clearSource(eu)}for(let x in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[x].updateTransitions(eu);this.light.updateTransitions(eu),this.fog&&this.fog.updateTransitions(eu),this._resetUpdates()}let em={};for(let x in this._sourceCaches){let eu=this._sourceCaches[x];em[x]=eu.used,eu.used=!1}for(let x of this._order){let ef=this._layers[x];if(ef.recalculate(eu,this._availableImages),!ef.isHidden(eu.zoom)){let x=this._getLayerSourceCache(ef);x&&(x.used=!0)}let em=this.map.painter;if(em){let x=ef.getProgramIds();if(!x)continue;let e_=ef.getProgramConfiguration(eu.zoom);for(let eu of x)em.useProgram(eu,e_)}}for(let eu in em){let ef=this._sourceCaches[eu];em[eu]!==ef.used&&ef.getSource().fire(new x.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:ef.getSource().id}))}this.light.recalculate(eu),this.terrain&&this.terrain.recalculate(eu),this.fog&&this.fog.recalculate(eu),this.z=eu.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),ef&&this.fire(new x.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){let x=Object.keys(this._changedImages);if(x.length){for(let eu in this._sourceCaches)this._sourceCaches[eu].reloadTilesForDependencies(["icons","patterns"],x);this._changedImages={}}}_updateWorkerLayers(x,eu){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(x),removedIds:eu})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(eu){if(this._checkLoaded(),$t(this,x.validateStyle(eu)))return!1;(eu=x.clone$1(eu)).layers=Ve(eu.layers);let ef=(function(x,eu){if(!x)return[{command:ez.setStyle,args:[eu]}];let ef=[];try{if(!t(x.version,eu.version))return[{command:ez.setStyle,args:[eu]}];t(x.center,eu.center)||ef.push({command:ez.setCenter,args:[eu.center]}),t(x.zoom,eu.zoom)||ef.push({command:ez.setZoom,args:[eu.zoom]}),t(x.bearing,eu.bearing)||ef.push({command:ez.setBearing,args:[eu.bearing]}),t(x.pitch,eu.pitch)||ef.push({command:ez.setPitch,args:[eu.pitch]}
8),t(x.sprite,eu.sprite)||ef.push({command:ez.setSprite,args:[eu.sprite]}),t(x.glyphs,eu.glyphs)||ef.push({command:ez.setGlyphs,args:[eu.glyphs]}),t(x.transition,eu.transition)||ef.push({command:ez.setTransition,args:[eu.transition]}),t(x.light,eu.light)||ef.push({command:ez.setLight,args:[eu.light]}),t(x.fog,eu.fog)||ef.push({command:ez.setFog,args:[eu.fog]}),t(x.projection,eu.projection)||ef.push({command:ez.setProjection,args:[eu.projection]});let em={},e_=[];!function(x,eu,ef,em){let e_;for(e_ in eu=eu||{},x=x||{})x.hasOwnProperty(e_)&&(eu.hasOwnProperty(e_)||qe(e_,ef,em));for(e_ in eu){var eg,ex;if(!eu.hasOwnProperty(e_))continue;let ev=eu[e_];x.hasOwnProperty(e_)?t(x[e_],ev)||("geojson"===x[e_].type&&"geojson"===ev.type&&function(x,eu,ef){let em;for(em in x[ef])if(x[ef].hasOwnProperty(em)&&"data"!==em&&!t(x[ef][em],eu[ef][em]))return!1;for(em in eu[ef])if(eu[ef].hasOwnProperty(em)&&"data"!==em&&!t(x[ef][em],eu[ef][em]))return!1;return!0}(x,eu,e_)?ef.push({command:ez.setGeoJSONSourceData,args:[e_,ev.data]}):(eg=e_,ex=eu,qe(eg,ef,em),Xe(eg,ex,ef))):Xe(e_,eu,ef)}}(x.sources,eu.sources,e_,em);let eg=[];x.layers&&x.layers.forEach(x=>{x.source&&em[x.source]?ef.push({command:ez.removeLayer,args:[x.id]}):eg.push(x)});let ex=x.terrain;ex&&em[ex.source]&&(ef.push({command:ez.setTerrain,args:[void 0]}),ex=void 0),ef=ef.concat(e_),t(ex,eu.terrain)||ef.push({command:ez.setTerrain,args:[eu.terrain]}),function(x,eu,ef){let em,e_,eg,ex,ev,eb,ew;eu=eu||[];let eT=(x=x||[]).map(Ke),eE=eu.map(Ke),eS=x.reduce(Je,{}),eM=eu.reduce(Je,{}),eI=eT.slice(),eA=Object.create(null);for(em=0,e_=0;em<eT.length;em++)eg=eT[em],eM.hasOwnProperty(eg)?e_++:(ef.push({command:ez.removeLayer,args:[eg]}),eI.splice(eI.indexOf(eg,e_),1));for(em=0,e_=0;em<eE.length;em++)eg=eE[eE.length-1-em],eI[eI.length-1-em]!==eg&&(eS.hasOwnProperty(eg)?(ef.push({command:ez.removeLayer,args:[eg]}),eI.splice(eI.lastIndexOf(eg,eI.length-e_),1)):e_++,eb=eI[eI.length-em],ef.push({command:ez.addLayer,args:[eM[eg],eb]}),eI.splice(eI.length-em,0,eg),eA[eg]=!0);for(em=0;em<eE.length;em++)if(ex=eS[eg=eE[em]],ev=eM[eg],!eA[eg]&&!t(ex,ev)){if(t(ex.source,ev.source)&&t(ex["source-layer"],ev["source-layer"])&&t(ex.type,ev.type)){for(ew in Ye(ex.layout,ev.layout,ef,eg,null,ez.setLayoutProperty),Ye(ex.paint,ev.paint,ef,eg,null,ez.setPaintProperty),t(ex.filter,ev.filter)||ef.push({command:ez.setFilter,args:[eg,ev.filter]}),t(ex.minzoom,ev.minzoom)&&t(ex.maxzoom,ev.maxzoom)||ef.push({command:ez.setLayerZoomRange,args:[eg,ev.minzoom,ev.maxzoom]}),ex)ex.hasOwnProperty(ew)&&"layout"!==ew&&"paint"!==ew&&"filter"!==ew&&"metadata"!==ew&&"minzoom"!==ew&&"maxzoom"!==ew&&(0===ew.indexOf("paint.")?Ye(ex[ew],ev[ew],ef,eg,ew.slice(6),ez.setPaintProperty):t(ex[ew],ev[ew])||ef.push({command:ez.setLayerProperty,args:[eg,ew,ev[ew]]}));for(ew in ev)ev.hasOwnProperty(ew)&&!ex.hasOwnProperty(ew)&&"layout"!==ew&&"paint"!==ew&&"filter"!==ew&&"metadata"!==ew&&"minzoom"!==ew&&"maxzoom"!==ew&&(0===ew.indexOf("paint.")?Ye(ex[ew],ev[ew],ef,eg,ew.slice(6),ez.setPaintProperty):t(ex[ew],ev[ew])||ef.push({command:ez.setLayerProperty,args:[eg,ew,ev[ew]]}))}else ef.push({command:ez.removeLayer,args:[eg]}),eb=eI[eI.lastIndexOf(eg)+1],ef.push({command:ez.addLayer,args:[ev,eb]})}}(eg,eu.layers,ef)}catch(x){console.warn("Unable to compute style diff:",x),ef=[{command:ez.setStyle,args:[eu]}]}return ef})(this.serialize(),eu).filter(x=>!(x.command in eR));if(0===ef.length)return!1;let em=ef.filter(x=>!(x.command in eL));if(em.length>0)throw Error(`Unimplemented: ${em.map(x=>x.command).join(", ")}.`);return ef.forEach(x=>{"setTransition"!==x.command&&"setProjection"!==x.command&&this[x.command].apply(this,x.args)}),this.stylesheet=eu,this._updateMapProjection(),!0}addImage(eu,ef){return this.getImage(eu)?this.fire(new x.ErrorEvent(Error("An image with this name already exists."))):(this.imageManager.addImage(eu,ef),this._afterImageUpdated(eu),this)}updateImage(x,eu){this.imageManager.updateImage(x,eu)}getImage(x){return this.imageManager.getImage(x)}removeImage(eu){return this.getImage(eu)?(this.imageManager.removeImage(eu),this._afterImageUpdated(eu),this):this.fire(new x.ErrorEvent(Error("No image with this name exists.")))}_afterImageUpdated(eu){this._availableImages=this.imageManager.listImages(),this._changedImages[eu]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new x.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(eu,ef,em={}){if(this._checkLoaded(),void 0!==this.getSource(eu))throw Error("There is already a source with this ID");if(!ef.type)throw Error(`The type property must be defined, but only the following properties were given: ${Ob
8ject.keys(ef).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(ef.type)>=0&&this._validate(x.validateSource,`sources.${eu}`,ef,null,em))return;this.map&&this.map._collectResourceTiming&&(ef.collectResourceTiming=!0);let e_=Pe(eu,ef,this.dispatcher,this);e_.setEventedParent(this,()=>({isSourceLoaded:this._isSourceCacheLoaded(eu),source:e_.serialize(),sourceId:eu}));let n=ef=>{let em=(ef?"symbol:":"other:")+eu,eg=this._sourceCaches[em]=new x.SourceCache(em,e_,ef);(ef?this._symbolSourceCaches:this._otherSourceCaches)[eu]=eg,eg.style=this,eg.onAdd(this.map)};n(!1),"vector"!==ef.type&&"geojson"!==ef.type||n(!0),e_.onAdd&&e_.onAdd(this.map),this._changed=!0}removeSource(eu){this._checkLoaded();let ef=this.getSource(eu);if(!ef)throw Error("There is no source with this ID");for(let ef in this._layers)if(this._layers[ef].source===eu)return this.fire(new x.ErrorEvent(Error(`Source "${eu}" cannot be removed while layer "${ef}" is using it.`)));if(this.terrain&&this.terrain.get().source===eu)return this.fire(new x.ErrorEvent(Error(`Source "${eu}" cannot be removed while terrain is using it.`)));let em=this._getSourceCaches(eu);for(let eu of em)delete this._sourceCaches[eu.id],delete this._updatedSources[eu.id],eu.fire(new x.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:eu.getSource().id})),eu.setEventedParent(null),eu.clearTiles();return delete this._otherSourceCaches[eu],delete this._symbolSourceCaches[eu],ef.setEventedParent(null),ef.onRemove&&ef.onRemove(this.map),this._changed=!0,this}
8setGeoJSONSourceData(x,eu){this._checkLoaded(),this.getSource(x).setData(eu),this._changed=!0}getSource(x){let eu=this._getSourceCache(x);return eu&&eu.getSource()}_getSources(){let x=[];for(let eu in this._otherSourceCaches){let ef=this._getSourceCache(eu);ef&&x.push(ef.getSource())}return x}addLayer(eu,ef,em={}){let e_;this._checkLoaded();let eg=eu.id;if(this.getLayer(eg))return void this.fire(new x.ErrorEvent(Error(`Layer with id "${eg}" already exists on this map`)));if("custom"===eu.type){if($t(this,x.validateCustomStyleLayer(eu)))return;e_=x.createStyleLayer(eu)}else{if("object"==typeof eu.source&&(this.addSource(eg,eu.source),eu=x.clone$1(eu),eu=x.extend(eu,{source:eg})),this._validate(x.validateLayer,`layers.${eg}`,eu,{arrayIndex:-1},em))return;e_=x.createStyleLayer(eu),this._validateLayer(e_),e_.setEventedParent(this,{layer:{id:eg}}),this._serializedLayers[e_.id]=e_.serialize(),this._updateLayerCount(e_,!0)}let ex=ef?this._order.indexOf(ef):this._order.length;if(ef&&-1===ex)return void this.fire(new x.ErrorEvent(Error(`Layer with i
8d "${ef}" does not exist on this map.`)));this._order.splice(ex,0,eg),this._layerOrderChanged=!0,this._layers[eg]=e_;let ev=this._getLayerSourceCache(e_);if(this._removedLayers[eg]&&e_.source&&ev&&"custom"!==e_.type){let x=this._removedLayers[eg];delete this._removedLayers[eg],x.type!==e_.type?this._updatedSources[e_.source]="clear":(this._updatedSources[e_.source]="reload",ev.pause())}this._updateLayer(e_),e_.onAdd&&e_.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(eu,ef){if(this._checkLoaded(),this._changed=!0,!this._layers[eu])return void this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be moved.`)));if(eu===ef)return;let em=this._order.indexOf(eu);this._order.splice(em,1);let e_=ef?this._order.indexOf(ef):this._order.length;ef&&-1===e_?this.fire(new x.ErrorEvent(Error(`Layer with id "${ef}" does not exist on this map.`))):(this._order.splice(e_,0,eu),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(eu){this._checkLoaded();let ef=this._layers[eu];if(!ef)return void this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be removed.`)));ef.setEventedParent(null),this._updateLayerCount(ef,!1);let em=this._order.indexOf(eu);this._order.splice(em,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[eu]=ef,delete this._layers[eu],delete this._serializedLayers[eu],delete this._updatedLayers[eu],delete this._updatedPaintProps[eu],ef.onRemove&&ef.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(x){return this._layers[x]}hasLayer(x){return x in this._layers}hasLayerType(x){for(let eu in this._layers)if(this._layers[eu].type===x)return!0;return!1}setLayerZoomRange(eu,ef,em){this._checkLoaded();let e_=this.getLayer(eu);e_?e_.minzoom===ef&&e_.maxzoom===em||(null!=ef&&(e_.minzoom=ef),null!=em&&(e_.maxzoom=em),this._updateLayer(e_)):this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(eu,ef,em={}){this._checkLoaded();let e_=this.getLayer(eu);if(e_){if(!t(e_.filter,ef))return null==ef?(e_.filter=void 0,void this._updateLayer(e_)):void(this._validate(x.validateFilter,`layers.${e_.id}.filter`,ef,{layerType:e_.type},em)||(e_.filter=x.clone$1(ef),this._updateLayer(e_)))}else this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be filtered.`)))}getFilter(eu){let ef=this.getLayer(eu);return ef&&x.clone$1(ef.filter)}setLayoutProperty(eu,ef,em,e_={}){this._checkLoaded();let eg=this.getLayer(eu);eg?t(eg.getLayoutProperty(ef),em)||(eg.setLayoutProperty(ef,em,e_),this._updateLayer(eg)):this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(eu,ef){let em=this.getLayer(eu);if(em)return em.getLayoutProperty(ef);this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style.`)))}setPaintProperty(eu,ef,em,e_={}){this._checkLoaded();let eg=this.getLayer(eu);eg?t(eg.getPaintProperty(ef),em)||(eg.setPaintProperty(ef,em,e_)&&this._updateLayer(eg),this._changed=!0,this._updatedPaintProps[eu]=!0):this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(x,eu){let ef=this.getLayer(x);return ef&&ef.getPaintProperty(eu)}setFeatureState(eu,ef){this._checkLoaded();let em=eu.source,e_=eu.sourceLayer,eg=this.getSource(em);if(!eg)return void this.fire(new x.ErrorEvent(Error(`The source '${em}' does not exist in the map's style.`)));let ex=eg.type;if("geojson"===ex&&e_)return void this.fire(new x.ErrorEvent(Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===ex&&!e_)return void this.fire(new x.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));void 0===eu.id&&this.fire(new x.ErrorEvent(Error("The feature id parameter must be provided.")));let ev=this._getSourceCaches(em);for(let x of ev)x.setFeatureState(e_,eu.id,ef)}removeFeatureState(eu,ef){this._checkLoaded();let em=eu.source,e_=this.getSource(em);if(!e_)return void this.fire(new x.ErrorEvent(Error(`The source '${em}' does not exist in the map's style.`)));let eg=e_.type,ex="vector"===eg?eu.sourceLayer:void 0;if("vector"===eg&&!ex)return void this.fire(new x.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));if(ef&&"string"!=typeof eu.id&&"number"!=typeof eu.id)return void this.fire(new x.ErrorEvent(Error("A feature id is required to remove its specific state property.")));let ev=this._getSourceCaches(em);for(let x of ev)x.removeFeatureState(ex,eu.id,ef)}getFeatureState(eu){this._checkLoaded();let ef=eu.source,em=eu.sourceLayer,e_=this.getSource(ef);if(e_){if("vector"!==e_.type||em)return void 0===eu.id&&this.fire(new x.ErrorEvent(Error("The feature id parameter must be provided."))),this._getSourceCaches(ef)[0].getFeatureState(em,eu.id);this.fire(new x.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new x.ErrorEvent(Error(`The source '${ef}' does not exist in the map's style.`)))}getTransition(){return x.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){let eu={};for(let x in this._sourceCaches){let ef=this._sourceCaches[x].getSource();eu[ef.id]||(eu[ef.id]=ef.serialize())}return x.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:eu,layers:this._serializeLayers(this._order)},x=>void 0!==x)}_updateLayer(x){this._updatedLayers[x.id]=!0;let eu=this._getLayerSourceCache(x);x.source&&!this._updatedSources[x.source]&&eu&&"raster"!==eu.getSource().type&&(this._updatedSources[x.source]="reload",eu.pause()),this._changed=!0,x.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(x){let t=x=>"fill-extrusion"===this._layers[x].type,eu={},ef=[];for(let em=this._order.length-1;em>=0;em--){let e_=this._order[em];if(t(e_))for(let eg of(eu[e_]=em,x)){let x=eg[e_];if(x)for(let eu of x)ef.push(eu)}}ef.sort((x,eu)=>eu.intersectionZ-x.intersectionZ);let em=[];for(let e_=this._order.length-1;e_>=0;e_--){let eg=this._order[e_];if(t(eg))for(let x=ef.length-1;x>=0;x--){let eg=ef[x].feature;if(eu[eg.layer.id]<e_)break;em.push(eg),ef.pop()}else for(let eu of x){let x=eu[eg];if(x)for(let eu of x)em.push(eu.feature)}}return em}
8queryRenderedFeatures(eu,ef,em){ef&&ef.filter&&this._validate(x.validateFilter,"queryRenderedFeatures.filter",ef.filter,null,ef);let e_={};if(ef&&ef.layers){if(!Array.isArray(ef.layers))return this.fire(new x.ErrorEvent(Error("parameters.layers must be an Array."))),[];for(let eu of ef.layers){let ef=this._layers[eu];if(!ef)return this.fire(new x.ErrorEvent(Error(`The layer '${eu}' does not exist in the map's style and cannot be queried for features.`))),[];e_[ef.source]=!0}}let eg=[];ef.availableImages=this._availableImages;let ex=ef&&ef.layers?ef.layers.some(x=>{let eu=this.getLayer(x);return eu&&eu.is3D()}):this.has3DLayers(),ev=R.createFromScreenPoints(eu,em);for(let eu in this._sourceCaches){let eb=this._sourceCaches[eu].getSource().id;ef.layers&&!e_[eb]||eg.push(function(eu,ef,em,e_,eg,ex,ev,eb=!1){let ew=eu.tilesIn(e_,ev,eb);ew.sort(ke);let eT=[];for(let e_ of ew)eT.push({wrappedTileID:e_.tile.tileID.wrapped().key,queryResults:e_.tile.queryRenderedFeatures(ef,em,eu._state,e_,eg,ex,function(eu,ef){let em=x.identity([]);return x.scale(em,em,[.5*eu.width,-(.5*eu.height),1]),x.translate(em,em,[1,-1,0]),x.multiply(em,em,eu.calculateProjMatrix(ef.toUnwrapped())),Float32Array.from(em)}(eu.transform,e_.tile.tileID),eb)});let eE=function(x){let eu={},ef={};for(let em of x){let x=em.queryResults,e_=em.wrappedTileID,eg=ef[e_]=ef[e_]||{};for(let ef in x){let em=x[ef],e_=eg[ef]=eg[ef]||{},ex=eu[ef]=eu[ef]||[];for(let x of em)e_[x.featureIndex]||(e_[x.featureIndex]=!0,ex.push(x))}}return eu}(eT);for(let x in eE)eE[x].forEach(x=>{let ef=x.feature,em=ef.layer;em&&"background"!==em.type&&"sky"!==em.type&&(ef.source=em.source,em["source-layer"]&&(ef.sourceLayer=em["source-layer"]),ef.state=void 0!==ef.id?eu.getFeatureState(em["source-layer"],ef.id):{})});return eE}(this._sourceCaches[eu],this._layers,this._serializedLayers,ev,ef,em,ex,!!this.map._showQueryGeometry))}return this.placement&&eg.push(function(x,eu,ef,em,e_,eg,ex){let ev={},eb=eg.queryRenderedSymbols(em),ew=[];for(let x of Object.keys(eb).map(Number))ew.push(ex[x]);for(let ef of(ew.sort(ke),ew)){let em=ef.featureIndex.lookupSymbolFeatures(eb[ef.bucketInstanceId],eu,ef.bucketIndex,ef.sourceLayerIndex,e_.filter,e_.layers,e_.availableImages,x);for(let x in em){let eu=ev[x]=ev[x]||[],e_=em[x];for(let x of(e_.sort((x,eu)=>{let em=ef.featureSortOrder;if(em){let ef=em.indexOf(x.featureIndex);return em.indexOf(eu.featureIndex)-ef}return eu.featureIndex-x.featureIndex}),e_))eu.push(x)}}for(let eu in ev)ev[eu].forEach(em=>{let e_=em.feature,eg=ef(x[eu]);if(!eg)return;let ex=eg.getFeatureState(e_.layer["source-layer"],e_.id);e_.source=e_.layer.source,e_.layer["source-layer"]&&(e_.sourceLayer=e_.layer["source-layer"]),e_.state=ex});return ev}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),ev.screenGeometry,ef,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(eg)}querySourceFeatures(eu,ef){ef&&ef.filter&&this._validate(x.validateFilter,"querySourceFeatures.filter",ef.filter,null,ef);let em=this._getSourceCaches(eu),e_=[];for(let x of em)e_=e_.concat(function(x,eu){let ef=x.getRenderableIds().map(eu=>x.getTileByID(eu)),em=[],e_={};for(let x=0;x<ef.length;x++){let eg=ef[x],ex=eg.tileID.canonical.key;e_[ex]||(e_[ex]=!0,eg.querySourceFeatures(em,eu))}return em}(x,ef));return e_}addSourceType(x,eu,ef){return Qt.getSourceType(x)?ef(Error(`A source type called "${x}" already exists.`)):(Qt.setSourceType(x,eu),eu.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:x,url:eu.workerSourceURL},ef):ef(null,null))}getLight(){return this.light.getLight()}setLight(x,eu={}){this._checkLoaded();let ef=this.light.getLight(),em=!1;for(let eu in x)if(!t(x[eu],ef[eu])){em=!0;break}if(!em)return;let e_=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(x,eu),this.light.updateTransitions(e_)}getTerrain(){return this.terrain&&1===this.terrain.drapeRenderMode?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:"",exaggeration:0},0)}setTerrain(eu,ef=1){if(this._checkLoaded(),!eu)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast("enableTerrain",!1),this._force3DLayerUpdate(),void(this._markersNeedU
8pdate=!0);let em=eu;if(1===ef){if("object"==typeof em.source){let eu="terrain-dem-src";this.addSource(eu,em.source),em=x.clone$1(em),em=x.extend(em,{source:eu})}if(this._validate(x.validateTerrain,"terrain",em))return}if(!this.terrain||this.terrain&&ef!==this.terrain.drapeRenderMode){if(!em)return;this._createTerrain(em,ef)}else{let eu=this.terrain,ef=eu.get();for(let eu of Object.keys(x.spec.terrain))!em.hasOwnProperty(eu)&&x.spec.terrain[eu].default&&(em[eu]=x.spec.terrain[eu].default);for(let x in em)if(!t(em[x],ef[x])){eu.set(em),this.stylesheet.terrain=em;let x=this._setTransitionParameters({duration:0});eu.updateTransitions(x);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(x){let eu=this.fog=new A(x,this.map.transform);this.stylesheet.fog=x;let ef=this._setTransitionParameters({duration:0});eu.updateTransitions(ef)}_updateMarkersOpacity(){0!==this.map._markers.length&&this.map._requestDomTask(()=>{for(let x of this.map._markers)x._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(x){if(this._checkLoaded(),!x)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){let eu=this.fog,ef=eu.get();for(let em in 0===Object.keys(x).length&&eu.set(x),x)if(!t(x[em],ef[em])){eu.set(x),this.stylesheet.fog=x;let ef=this._setTransitionParameters({duration:0});eu.updateTransitions(ef);break}}else this._createFog(x);this._markersNeedUpdate=!0}_setTransitionParameters(eu){return{now:x.exported.now(),transition:x.extend(eu,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;let x=this._order.filter(x=>this.isLayerDraped(this._layers[x])),eu=this._order.filter(x=>!this.isLayerDraped(this._layers[x]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...x),this._drapedFirstOrder.push(...eu)}_createTerrain(x,eu){let ef=this.terrain=new M(x,eu);this.stylesheet.terrain=x,this.dispatcher.broadcast("enableTerrain",!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();let em=this._setTransitionParameters({duration:0});ef.updateTransitions(em)}_force3DLayerUpdate(){for(let x in this._layers){let eu=this._layers[x];"fill-extrusion"===eu.type&&this._updateLayer(eu)}}_forceSymbolLayerUpdate(){for(let x in this._layers){let eu=this._layers[x];"symbol"===eu.type&&this._updateLayer(eu)}}_validate(eu,ef,em,e_,eg={}){return(!eg||!1!==eg.validate)&&$t(this,eu.call(x.validateStyle,x.extend({key:ef,style:this.serialize(),value:em,styleSpec:x.spec},e_)))}_remove(){for(let eu in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),x.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[eu].setEventedParent(null);for(let x in this._sourceCaches)this._sourceCaches[x].clearTiles(),this._sourceCaches[x].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(x){let eu=this._getSourceCaches(x);for(let x of eu)x.clearTiles()}_reloadSource(x){let eu=this._getSourceCaches(x);for(let x of eu)x.resume(),x.reload()}_reloadSources(){for(let x of this._getSources())x.reload&&x.reload()}_updateSources(x){for(let eu in this._sourceCaches)this._sourceCaches[eu].update(x)}_generateCollisionBoxes(){for(let x in this._sourceCaches){let eu=this._sourceCaches[x];eu.resume(),eu.reload()}}_updatePlacement(eu,ef,em,e_,eg=!1){let ex=!1,ev=!1,eb={};for(let x of this._order){let ef=this._layers[x];if("symbol"!==ef.type)continue;if(!eb[ef.source]){let x=this._getLayerSourceCache(ef);if(!x)continue;eb[ef.source]=x.getRenderableIds(!0).map(eu=>x.getTileByID(eu)).sort((x,eu)=>eu.tileID.overscaledZ-x.tileID.overscaledZ||(x.tileID.isLessThan(eu.tileID)?-1:1))}let em=this.crossTileSymbolIndex.addLayer(ef,eb[ef.source],eu.center.lng,eu.projection);ex=ex||em}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),eg=eg||this._layerOrderChanged||0===em,this._layerOrderChanged&&this.fire(new x.Event("neworder")),(eg||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(x.exported.now(),eu.zoom))&&(this.pauseablePlacement=new jt(eu,this._order,eg,ef,em,e_,this.placement,this.fog&&eu.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,eb),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(x.exported.now()),ev=!0),ex&&this.pauseablePlacement.placement.setStale()),ev||ex)for(let x of this._order){let eu=this._layers[x];"symbol"===eu.type&&this.placement.updateLayerOpacities(eu,eb[eu.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(x.exported.now())}_releaseSymbolFadeTiles(){for(let x in this._sourceCaches)this._sourceCaches[x].releaseSymbolFadeTiles()}getImages(x,eu,ef){this.imageManager.getImages(eu.icons,ef),this._updateTilesForChangedImages();let o=x=>{x&&x.setDependencies(eu.tileID.key,eu.type,eu.icons)};o(this._otherSourceCaches[eu.source]),o(this._symbolSourceCaches[eu.source])}getGlyphs(x,eu,ef){this.glyphManager.getGlyphs(eu.stacks,ef)}
8getResource(eu,ef,em){return x.makeRequest(ef,em)}_getSourceCache(x){return this._otherSourceCaches[x]}_getLayerSourceCache(x){return"symbol"===x.type?this._symbolSourceCaches[x.source]:this._otherSourceCaches[x.source]}_getSourceCaches(x){let eu=[];return this._otherSourceCaches[x]&&eu.push(this._otherSourceCaches[x]),this._symbolSourceCaches[x]&&eu.push(this._symbolSourceCaches[x]),eu}_isSourceCacheLoaded(eu){let ef=this._getSourceCaches(eu);return 0===ef.length?(this.fire(new x.ErrorEvent(Error(`There is no source with ID '${eu}'`))),!1):ef.every(x=>x.loaded())}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}};Qt.getSourceType=function(x){return eA[x]},Qt.setSourceType=function(x,eu){eA[x]=eu},Qt.registerForPluginStateChange=x.registerForPluginStateChange;var eF="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#define HALF_PI PI/2.0\n#define QUARTER_PI PI/4.0\n#define RAD_TO_DEG 180.0/PI\n#define DEG_TO_RAD PI/180.0\n#define GLOBE_RADIUS EXTENT/PI/2.0",eU="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}",eV="\n#define ELEVATION_SCALE 7.0\n#define ELEVATION_OFFSET 450.0\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\n#else\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\n#endif\nconst float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt)\n{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);}\n#ifdef TERRAIN\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}float prevElevation(vec2 apos) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a;\n#else\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\n#endif\n}
8\n#ifdef TERRAIN_VERTEX_MORPHING\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nfloat nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {\n#ifdef ZERO_EXAGGERATION\nreturn 0.0;\n#endif\nreturn currentElevation(apos);}\n#endif\nhighp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\n#else\nfloat elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",eN="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\n#endif",ej="#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;
8highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif";let eG={},eZ={},e$=[];_i(eF,e$),_i(eV,e$),_i(eN,e$),_i(ej,e$),eG=di("",eV),eZ=di(ej,eN);let eq=di("\n#if __VERSION__ >=300\n#define varying in\n#define gl_FragColor glFragColor\n#define texture2D texture\n#define textureCube texture\nout vec4 glFragColor;\n#endif\nhighp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth)\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}","\n#if __VERSION__ >=300\n#define attribute in\n#define varying out\n#define texture2D texture\n#endif\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#ifndef PROJECTED_POS_ON_VIEWPORT\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\n#else\nreturn vec3(0.0);\n#endif\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\n#endif\nvec2 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(\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}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);
8return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered."),eW="\n#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif";var eX={background:di("uniform vec4 u_color;uniform float u_opacity;\n#ifdef LIGHTING_3D_MODE\nvarying vec4 v_color;\n#endif\nvoid main() {vec4 out_color;\n#ifdef LIGHTING_3D_MODE\nout_color=v_color;\n#else\nout_color=u_color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#ifdef LIGHTING_3D_MODE\nuniform vec4 u_color;varying vec4 v_color;\n#endif\nvoid main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(u_color);\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:di("uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:di("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","#define NUM_VISIBILITY_RINGS 2\n#define INV_SQRT2 0.70710678\n#define ELEVATION_BIAS 0.0001\n#define NUM_SAMPLES_PER_RING 16\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*v
8iew_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\n#if defined(TERRAIN)\nreturn elevation(pos)+ELEVATION_BIAS;\n#else\nreturn 0.0;\n#endif\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\n#ifdef PITCH_WITH_MAP\n#ifdef PROJECTION_GLOBE_VIEW\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\n#else\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\n#endif\n#else\nreturn projected_center+vec4(sample_offset,0,0);\n#endif\n}float get_sample_step() {\n#ifdef PITCH_WITH_MAP\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\n#else\nreturn PI/float(NUM_SAMPLES_PER_RING);\n#endif\n}void main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1);\n#else \nsurface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1);\n#endif\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\n#ifdef PITCH_WITH_MAP\n#ifdef SCALE_WITH_MAP\nview_scale=1.0;\n#else\nview_scale=projected_center.w/u_camera_to_center_distance;\n#endif\n#else\n#ifdef SCALE_WITH_MAP\nview_scale=u_camera_to_center_distance;\n#else\nview_scale=projected_center.w;\n#endif\n#endif\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\n#ifdef TERRAIN\nfloat step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center;\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nocclusion_world_center=world_center;occlusion_projected_center=projected_center;\n#endif\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\n#else\nvisibility=1.0;\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nvisibility=1.0;\n#endif\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\n#ifdef FOG\nv_fog_pos=fog_position(world_center.xyz);\n#endif\n}"),clippingMask:di("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:di("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\nif (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);}\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\n#endif\nvarying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.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 tilePos=floor(a_pos*0.5);vec3 pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\npos=vec3(tilePos+extrude,elevation(tilePos));\n#endif\ngl_Position=u_matrix*vec4(pos,1);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),heatmapTexture:di("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:di("varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:di("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:di("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\n#ifdef PROJECTION_GLOBE_VIEW\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1
8);\n#else\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\n#endif\n}"),fill:di("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:di("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:di("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:di("uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:di("varying vec4 v_color;\n#ifdef RENDER_SHADOWS\nvarying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\nvoid main() {\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvec3 normal=v_normal;\n#endif\nfloat z;vec4 color;\n#ifdef ZERO_ROOF_RADIUS\nz=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z);\n#else\ncolor=v_color;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0
8),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;\n#ifdef ZERO_ROOF_RADIUS\nconcave*=(1.0-z);\n#endif\nfloat x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade;\n#endif\n#ifdef RENDER_SHADOWS\n#ifdef ZERO_ROOF_RADIUS\nnormal=mix(normal,vec3(0.0,0.0,1.0),z);\n#endif\ncolor.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec4 v_color;\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth;\n#endif\n#ifdef ZERO_ROOF_RADIUS\nvarying vec4 v_roof_color;\n#endif\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nvarying highp vec3 v_normal;\n#endif\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS)\nv_normal=normal;\n#endif\nbase=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=0.0;float c_ele;vec3 pos;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h);\n#else\nh=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);\n#ifdef RENDER_SHADOWS\nv_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w;\n#endif\nfloat NdotL=0.0;float colorvalue=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\ncolorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);
8\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_color=apply_lighting(color,NdotL);\n#else\nv_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_color*=u_opacity;\n#ifdef ZERO_ROOF_RADIUS\nv_roof_color=vec4(0.0,0.0,0.0,1.0);\n#ifdef LIGHTING_3D_MODE\nv_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0)));\n#else\nfloat roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));\n#endif\nv_roof_color*=u_opacity;\n#endif\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:di("uniform vec2 u_texsize;uniform sampler2D u_image;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color,v_NdotL)*u_opacity;\n#else\nout_color=out_color*v_lighting;\n#endif\n#ifdef FAUX_AO\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\n#endif\nvarying vec2 v_pos;varying vec4 v_lighting;\n#ifdef FAUX_AO\nuniform lowp vec2 u_ao;varying vec3 v_ao;\n#endif\n#ifdef LIGHTING_3D_MODE\nvarying float v_NdotL;\n#endif\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;
8base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\n#if defined(HAS_CENTROID) || defined(TERRAIN)\ncentroid_pos=a_centroid_pos;\n#endif\nfloat ele=0.0;float h=z;vec3 p;float c_ele;\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h);\n#else\np=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#endif\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\n? pos_nx.xy\n: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0;\n#ifdef LIGHTING_3D_MODE\nNdotL=calculate_NdotL(normal);\n#else\nNdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL);\n#endif\nif (normal.y !=0.0) {float r=0.84;\n#ifndef LIGHTING_3D_MODE\nr=mix(0.7,0.98,1.0-u_lightintensity);\n#endif\nNdotL*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}\n#ifdef FAUX_AO\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\n#ifdef TERRAIN\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(ce
8ntroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\n#endif\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\n#ifdef PROJECTION_GLOBE_VIEW\ntop_height+=u_height_lift;\n#endif\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\n#endif\n#ifdef LIGHTING_3D_MODE\nv_NdotL=NdotL;\n#else\nv_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#endif \n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:di("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));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(\n(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:di("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef LIGHTING_3D_MODE\ngl_FragColor=apply_lighting(gl_FragColor);\n#endif\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),line:di("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;\n#endif\nuniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;}\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nfloat linearstep(float edge0,float edge1,float x) {return
8clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat 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);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\nhighp vec4 out_color;\n#ifdef RENDER_LINE_GRADIENT\nout_color=texture2D(u_gradient_image,v_uv.xy);\n#else\nout_color=color;\n#endif\nfloat trimmed=1.0;\n#ifdef RENDER_LINE_TRIM_OFFSET\nhighp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);trimmed=0.0;}}\n#endif\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\n#ifdef RENDER_LINE_BORDER\nfloat edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2);\n#ifdef RENDER_LINE_BORDER_AUTO\nfloat Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);}\n#else\nout_color.rgb=mix(u_border_color.rgb*u_border_color.a*trimmed,out_color.rgb,smoothAlpha);\n#endif\n}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nattribute highp vec4 a_packed;\n#endif\n#ifdef RENDER_LINE_DASH\nattribute float a_linesofar;\n#endif\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat 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;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*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3];\n#ifdef RENDER_LINE_GRADIENT\nhighp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end);\n#else\nv_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end);\n#endif\n#endif\n#ifdef RENDER_LINE_DASH\nfloat scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y);\n#endif\nv_width2=vec2(outset,inset);\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),linePattern:di("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.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=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos);\n#ifdef LIGHTING_3D_MODE\ncolor=apply_lighting(color);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern\n#pragma mapbox: define lowp float pixel_ratio\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern\n#pragma mapbox: initialize lowp float pixel_ratio\nfloat 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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\n#ifndef RENDER_TO_TEXTURE\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:di("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\ndot(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);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\n#ifdef LIGHTING_3D_MODE\nout_color=apply_lighting(out_color);\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:di("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform 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 bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:di("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;u
8niform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform 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 vec3 u_up_vector;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1);\n#else\noffsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);\n#endif\nvec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:di("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;
8gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_globe_anchor;attribute vec3 a_globe_normal;\n#endif\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform 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 vec3 u_up_vector;uniform vec2 u_texsize_icon;\n#ifdef PROJECTION_GLOBE_VIEW\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\n#endif\nvarying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\n#else\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\n#endif\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\n#else\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\n#endif\nhighp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale);\n#ifdef TERRAIN\n#ifdef PITCH_WITH_MAP_TERRAIN\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\n#endif\n#endif\nfloat occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade;\n#ifdef PROJECTION_GLOBE_VIEW\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#else\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0));\n#endif\nfloat gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0;\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\n#endif\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_s
8df);}"),terrainRaster:di("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nvarying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef RENDER_SHADOWS\ncolor.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth);\n#endif\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#else\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\n#ifdef RENDER_SHADOWS\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth;\n#endif\nconst float wireframeOffset=0.00015;void main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=wireframeOffset;\n#endif\nv_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\n#ifdef ZERO_EXAGGERATION\nv_fog_pos=fog_position(decodedPos);\n#else\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n#endif\n#ifdef RENDER_SHADOWS\nvec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w;\n#endif\n}"),terrainDepth:di("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;varying float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:di("\nvarying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(e
8nd-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb;\n#ifdef FOG\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\n#endif\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",eU),skyboxGradient:di("varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5));\n#ifdef FOG\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\n#endif\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",eU),skyboxCapture:d
vendor: 3,852 bytes, line 8
8i("\nvarying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;\n#ifdef GL_ES\nprecision highp float;\n#endif\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\n#define BETA_M vec3(21e-6,21e-6,21e-6)\n#define MIE_G 0.76\n#define DENSITY_HEIGHT_SCALE_R 8000.0\n#define DENSITY_HEIGHT_SCALE_M 1200.0\n#define PLANET_RADIUS 6360e3\n#define ATMOSPHERE_RADIUS 6420e3\n#define SAMPLE_STEPS 10\n#define DENSITY_STEPS 4\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}"),globeRaster:
8di("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifndef FOG\nuniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport;\n#endif\nvoid main() {vec4 color;\n#ifdef CUSTOM_ANTIALIASING\nvec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias);\n#else\ncolor=texture2D(u_image0,v_pos0);\n#endif\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height;\n#ifdef GLOBE_POLES\nattribute vec3 a_globe_pos;attribute vec2 a_uv;\n#else\nattribute vec2 a_pos;\n#endif\nvarying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() {\n#ifdef GLOBE_POLES\nvec3 globe_pos=a_globe_pos;vec2 uv=a_uv;\n#else\nfloat tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY);\n#endif\nv_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale;\n#ifdef GLOBE_POLES\nvec3 up_vector=globe_derived_up_vector;\n#else\nvec3 up_vector=elevationVector(tile_pos);\n#endif\nfloat height=elevation(tile_pos);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nglobe_pos+=up_vector*height;\n#ifndef GLOBE_POLES\nglobe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z;\n#endif\n#ifdef GLOBE_POLES\nvec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0);\n#else\nvec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0);\n#endif\ngl_Position=u_proj_matrix*interpolated_pos;\n#ifdef FOG\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\n#endif\n}"),globeAtmosphere:di("uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;
8highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir;\n#ifdef PROJECTION_GLOBE_VIEW\nglobe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;}\n#endif\nhighp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ?\n0.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle;\n#ifdef PROJECTION_GLOBE_VIEW\nhighp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ?\nPI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t);\n#else\nhorizon_angle=horizon_angle_mercator;\n#endif\nhorizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x:\n(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y:\nuv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}","attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix(\nmix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix(\nmix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}")};function _i(x,eu){let ef=x.replace(/\s*\/\/[^\n]*\n/g,"\n").split("\n");for(let x of ef)if("#"===(x=x.trim())[0]&&x.includes("if")&&!x.includes("endif")){x=x.replace("#","").replace(/ifdef|ifndef|elif|if/g,"").replace(/!|defined|\(|\)|\|\||&&/g,"").replace(/\s+/g," ").trim();let ef=x.split(" ");for(let x of ef)eu.includes(x)||eu.push(x)}}function di(x,eu){let ef=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,em=eu.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),e_={},eg=[...e$];return _i(x,eg),_i(eu,eg),{fragmentSource:x=x.replace(ef,(x,eu,ef,em,eg)=>(e_[eg]=!0,"define"===eu?` 9#ifndef HAS_UNIFORM_u_${eg} 10varying ${ef} ${em} ${eg}; 11#else 12uniform ${ef} ${em} u_${eg}; 13#endif 14`:` 15#ifdef HAS_UNIFORM_u_${eg} 16 ${ef} ${em} ${eg} = u_${eg}; 17#endif 18`)),vertexSource:eu=eu.replace(ef,(x,eu,ef,em,eg)=>{let ex="float"===em?"vec2":"vec4",ev=eg.match(/color/)?"color":ex;return e_[eg]?"define"===eu?` 19#ifndef HAS_UNIFORM_u_${eg} 20uniform lowp float u_${eg}_t; 21attribute ${ef} ${ex} a_${eg}; 22varying ${ef} ${em} ${eg}; 23#else 24uniform ${ef} ${em} u_${eg}; 25#endif 26`:"vec4"===ev?` 27#ifndef HAS_UNIFORM_u_${eg} 28 ${eg} = a_${eg}; 29#else 30 ${ef} ${em} ${eg} = u_${eg}; 31#endif 32`:` 33#ifndef HAS_UNIFORM_u_${eg} 34 ${eg} = unpack_mix_${ev}(a_${eg}, u_${eg}_t); 35#else 36 ${ef} ${em} ${eg} = u_${eg}; 37#endif 38`:"define"===eu?` 39#ifndef HAS_UNIFORM_u_${eg} 40uniform lowp float u_${eg}_t; 41attribute ${ef} ${ex} a_${eg}; 42#else 43uniform ${ef} ${em} u_${eg}; 44#endif 45`:"vec4"===ev?` 46#ifndef HAS_UNIFORM_u_${eg} 47 ${ef} ${em} ${eg} = a_${eg}; 48#else 49 ${ef} ${em} ${eg} = u_${eg}; 50#endif 51`:` 52#ifndef HAS_UNIFORM_u_${eg} 53 ${ef} ${em} ${eg} = unpack_mix_${ev}(a_${eg}, u_${eg}_t); 54#else 55 ${ef} ${em} ${eg} = u_${eg}; 56#endif 57`}),staticAttributes:em,usedDefines:eg}}let pi=class pi{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(x,eu,ef,em,e_,eg,ex){this.context=x;let ev=this.boundPaintVertexBuffers.length!==em.length;for(let x=0;!ev&&x<em.length;x++)this.boundPaintVertexBuffers[x]!==em[x]&&(ev=!0);let eb=this.boundDynamicVertexBuffers.length!==ex.length;for(let x=0;!eb&&x<ex.length;x++)this.boundDynamicVertexBuffers[x]!==ex[x]&&(eb=!0);if(!x.extVertexArrayObject||!this.vao||this.boundProgram!==eu||this.boundLayoutVertexBuffer!==ef||ev||eb||this.boundIndexBuffer!==e_||this.boundVertexOffset!==eg)this.freshBind(eu,ef,em,e_,eg,ex);else{for(let eu of(x.bindVertexArrayOES.set(this.vao),ex))eu&&eu.bind();e_&&e_.dynamicDraw&&e_.bind()}}freshBind(x,eu,ef,em,e_,eg){let ex;let ev=x.numAttributes,eb=this.context,ew=eb.gl;if(eb.extVertexArrayObject)this.vao&&this.destroy(),this.vao=eb.extVertexArrayObject.createVertexArrayOES(),eb.bindVertexArrayOES.set(this.vao),ex=0,this.boundProgram=x,this.boundLayoutVertexBuffer=eu,this.boundPaintVertexBuffers=ef,this.boundIndexBuffer=em,this.boundVertexOffset=e_,this.boundDynamicVertexBuffers=eg;else{ex=eb.currentNumAttributes||0;for(let x=ev;x<ex;x++)ew.disableVertexAttribArray(x)}for(let em of(eu.enableAttributes(ew,x),eu.bind(),eu.setVertexAttribPointers(ew,x,e_),ef))em.enableAttributes(ew,x),em.bind(),em.setVertexAttribPointers(ew,x,e_);for(let eu of eg)eu&&(eu.enableAttributes(ew,x),eu.bind(),eu.setVertexAttribPointers(ew,x,e_));em&&em.bind(),eb.currentNumAttributes=ev}destroy(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)}};function gi(eu,ef,em){if(!ef.needsDEMTextureUpload)return;let e_=eu.context,eg=e_.gl;e_.pixelStoreUnpackPremultiplyAlpha.set(!1),ef.demTexture=ef.demTexture||eu.getTileTexture(em.stride);let ex=em.getPixels();ef.demTexture?ef.demTexture.update(ex,{premultiply:!1}):ef.demTexture=new x.Texture(e_,ex,eg.RGBA,{premultiply:!1}),ef.needsDEMTextureUpload=!1}let xi=eu=>({u_matrix:new x.UniformMatrix4f(eu),u_image0:new x.Uniform1i(eu),u_skirt_height:new x.Uniform1f(eu)}),yi=(x,eu)=>({u_matrix:x,u_image0:0,u_skirt_height:eu}),bi=(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI)=>({u_proj_matrix:Float32Array.from(x),u_globe_matrix:eu,u_normalize_matrix:Float32Array.from(em),u_merc_matrix:ef,u_zoom_transition:e_,u_merc_center:eg,u_image0:0,u_frustum_tl:ex,u_frustum_tr:ev,u_frustum_br:eb,u_frustum_bl:ew,u_globe_pos:eT,u_globe_radius:eE,u_viewport:eS,u_grid_matrix:eI?Float32Array.from(eI):new Float32Array(9),u_skirt_height:eM});function wi(x,eu){return null!=x&&null!=eu&&!(!x.hasData()||!eu.hasData())&&null!=x.demTexture&&null!=eu.demTexture&&x.tileID.key!==eu.tileID.key}let eH=new class{constructor(){this.operations={}}newMorphing(x,eu,ef,em,e_){if(x in this.operations){let eu=this.operations[x];eu.to.tileID.key!==ef.tileID.key&&(eu.queued=ef)}else this.operations[x]={startTime:em,phase:0,duration:e_,from:eu,to:ef,queued:null}}getMorphValuesForProxy(x){if(!(x in this.operations))return null;let eu=this.operations[x];return{from:eu.from,to:eu.to,phase:eu.phase}}update(x){for(let eu in this.operations){let ef=this.operations[eu];for(ef.phase=(x-ef.startTime)/ef.duration;ef.phase>
57=1||!this._validOp(ef);)if(!this._nextOp(ef,x)){delete this.operations[eu];break}}}_nextOp(x,eu){return!!x.queued&&(x.from=x.to,x.to=x.queued,x.queued=null,x.phase=0,x.startTime=eu,!0)}_validOp(x){return x.from.hasData()&&x.to.hasData()}},eY={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"};function Ci(x){return 6*Math.pow(1.5,22-x)}let Ii=x=>({u_matrix:x});function Si(eu,ef,em,e_,eg){if(eg>0){let ex=x.exported.now(),ev=(ex-eu.timeAdded)/eg,eb=ef?(ex-ef.timeAdded)/eg:-1,ew=em.getSource(),eT=e_.coveringZoomLevel({tileSize:ew.tileSize,roundZoom:ew.roundZoom}),eE=!ef||Math.abs(ef.tileID.overscaledZ-eT)>Math.abs(eu.tileID.overscaledZ-eT),eS=eE&&eu.refreshedUponExpiration?1:x.clamp(eE?ev:1-eb,0,1);return eu.refreshedUponExpiration&&ev>=1&&(eu.refreshedUponExpiration=!1),ef?{opacity:1,mix:1-eS}:{opacity:eS,mix:0}}return{opacity:1,mix:0}}let Di=class Di extends x.SourceCache{constructor(x){let eu={type:"raster-dem",maxzoom:x.transform.maxZoom},ef=new z(je(),null),em=Pe("mock-dem",eu,ef,x.style);super("mock-dem",em,!1),em.setEventedParent(this),this._sourceLoaded=!0}_loadTile(x,eu){x.state="loaded",eu(null)}};let Li=class Li extends x.SourceCache{constructor(x){let eu=Pe("proxy",{type:"geojson",maxzoom:x.transform.maxZoom},new z(je(),null),x.style);super("proxy",eu,!1),eu.setEventedParent(this),this.map=this.getSource().map=x,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(eu,ef,em){if(eu.freezeTileCoverage)return;this.transform=eu;let e_=eu.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((ef,em)=>{if(ef[em.key]="",!this._tiles[em.key]){let ef=new x.Tile(em,this._source.tileSize*em.overscaleFactor(),eu.tileZoom);ef.state="loaded",this._tiles[em.key]=ef}return ef},{});for(let x in this._tiles)x in e_||(this.freeFBO(x),this._tiles[x].unloadVectorData(),delete this._tiles[x])}freeFBO(x){let eu=this.proxyCachedFBO[x];if(void 0!==eu){let ef=Object.values(eu);this.renderCachePool.push(...ef),delete this.proxyCachedFBO[x]}}deallocRenderCache(){this.renderCache.forEach(x=>x.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}};let Ai=class Ai extends x.OverscaledTileID{constructor(x,eu,ef){super(x.overscaledZ,x.wrap,x.canonical.z,x.canonical.x,x.canonical.y),this.proxyTileKey=eu,this.projMatrix=ef}};let zi=class zi extends x.Elevation{constructor(eu,ef){super(),this.painter=eu,this.terrainTileForTile={},this.prevTerrainTileForTile={};let[em,e_,eg]=function(eu){let ef=new x.StructArrayLayout2i4,em=new x.StructArrayLayout3ui6;ef.reserve(17161),em.reserve(33800);let e_=x.EXTENT/128,eg=x.EXTENT+e_/2,ex=eg+e_;for(let eu=-e_;eu<ex;eu+=e_)for(let em=-e_;em<ex;em+=e_){let e_=em<0||em>eg||eu<0||eu>eg?24575:0,ex=x.clamp(Math.round(em),0,x.EXTENT),ev=x.clamp(Math.round(eu),0,x.EXTENT);ef.emplaceBack(ex+e_,ev)}let l=(x,eu)=>{let ef=131*eu+x;em.emplaceBack(ef+1,ef,ef+131),em.emplaceBack(ef+131,ef+131+1,ef+1)};for(let x=1;x<129;x++)for(let eu=1;eu<129;eu++)l(eu,x);return[0,129].forEach(x=>{for(let eu=0;eu<130;eu++)l(eu,x),l(x,eu)}),[ef,em,32768]}(),ex=eu.context;this.gridBuffer=ex.createVertexBuffer(em,x.posAttributes.members),this.gridIndexBuffer=ex.createIndexBuffer(e_),this.gridSegments=x.SegmentVector.simpleSegment(0,0,em.length,e_.length),this.gridNoSkirtSegments=x.SegmentVector.simpleSegment(0,0,em.length,eg),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new Li(ef.map),this.orthoMatrix=x.create(),x.ortho(this.orthoMatrix,"globe"===this.painter.transform.projection.name?.015:0,x.EXTENT,0,x.EXTENT,0,1);let ev=ex.gl;this._overlapStencilMode=new x.StencilMode({func:ev.GEQUAL,mask:255},0,255,ev.KEEP,ev.KEEP,ev.REPLACE),this._previousZoom=eu.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=ef,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new Di(ef.map)}
57set style(x){x.on("data",this._onStyleDataEvent.bind(this)),x.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=x,this._checkRenderCacheEfficiency(),this._style.map.on("moveend",()=>{this._clearLineLayersFromRenderCache()})}update(eu,ef,em){if(eu&&eu.terrain){this._style!==eu&&(this.style=eu),this.enabled=!0;let e_=eu.terrain.properties;this.sourceCache=0===eu.terrain.drapeRenderMode?this._mockSourceCache:eu._getSourceCache(e_.get("source")),this._exaggeration=e_.get("exaggeration");let n=()=>{this.sourceCache.used&&x.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. 58This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);let eu=this.getScaledDemTileSize();this.sourceCache.update(ef,eu,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,n(),this._initializing=!0),n(),ef.updateElevation(!0,em),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(ef),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(x){this._findCoveringTileCache[x]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){let eu=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||100!==eu.efficiency&&x.warnOnce(`Terrain render cache efficiency is not optimal (${eu.efficiency}%) and performance 59 may be affected negatively, consider placing all background, fill and line layers before layer 60 with id '${eu.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(x){x.coord&&"source"===x.dataType?this._clearRenderCacheForTile(x.sourceCacheId,x.coord):"style"===x.dataType&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(let x in this._style._sourceCaches)this._style._sourceCaches[x].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(x=>x.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){let x=2*this.proxySourceCache.getSource().tileSize;return[x,x]}set useVertexMorphing(x){this._useVertexMorphing=x}updateTileBinding(eu){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;let ef=this.proxySourceCache,em=this.painter.transform;this._initializing&&(this._initializing=0===em._centerAltitude&&-1===this.getAtPointOrZero(x.MercatorCoordinate.fromLngLat(em.center),-1),this._emptyDEMTextureDirty=!this._initializing);let e_=this.proxyCoords=ef.getIds().map(x=>{let eu=ef.getTileByID(x).tileID;return eu.projMatrix=em.calculateProjMatrix(eu.toUnwrapped()),eu});(function(eu,ef){let em=ef.transform.pointCoordinate(ef.transform.getCameraPoint()),e_=new x.pointGeometry(em.x,em.y);eu.sort((eu,ef)=>{if(ef.overscaledZ-eu.overscaledZ)return ef.overscaledZ-eu.overscaledZ;let em=new x.pointGeometry(eu.canonical.x+(1<<eu.canonical.z)*eu.wrap,eu.canonical.y),eg=new x.pointGeometry(ef.canonical.x+(1<<ef.canonical.z)*ef.wrap,ef.canonical.y),ex=e_.mult(1<<eu.canonical.z);return ex.x-=.5,ex.y-=.5,ex.distSqr(em)-ex.distSqr(eg)})})(e_,this.painter),this._previousZoom=em.zoom;let eg=this.proxyToSource||{};this.proxyToSource={},e_.forEach(x=>{this.proxyToSource[x.key]={}}),this.terrainTileForTile={};let ex=this._style._sourceCaches;for(let x in ex){let ef=ex[x];if(!ef.used||(ef!==this.sourceCache&&this.resetTileLookupCache(ef.id),this._setupProxiedCoordsForOrtho(ef,eu[x],eg),ef.usedForTerrain))continue;let em=eu[x];ef.getSource().reparseOverscaled&&this._assignTerrainTiles(em)}
60this.proxiedCoords[ef.id]=e_.map(x=>new Ai(x,x.key,this.orthoMatrix)),this._assignTerrainTiles(e_),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(eg),this.renderingToTexture=!1,this._updateTimestamp=x.exported.now();let ev={};for(let x of(this._visibleDemTiles=[],this.proxyCoords)){let eu=this.terrainTileForTile[x.key];if(!eu)continue;let ef=eu.tileID.key;ef in ev||(this._visibleDemTiles.push(eu),ev[ef]=ef)}}_assignTerrainTiles(x){this._initializing||x.forEach(x=>{if(this.terrainTileForTile[x.key])return;let eu=this._findTileCoveringTileID(x,this.sourceCache);eu&&(this.terrainTileForTile[x.key]=eu)})}_prepareDEMTextures(){let x=this.painter.context,eu=x.gl;for(let ef in this.terrainTileForTile){let em=this.terrainTileForTile[ef],e_=em.dem;e_&&(!em.demTexture||em.needsDEMTextureUpload)&&(x.activeTexture.set(eu.TEXTURE1),gi(this.painter,em,e_))}}_prepareDemTileUniforms(x,eu,ef,em){if(!eu||null==eu.demTexture)return!1;let e_=x.tileID.canonical,eg=Math.pow(2,eu.tileID.canonical.z-e_.z),ex=em||"";return ef[`u_dem_tl${ex}`]=[e_.x*eg%1,e_.y*eg%1],ef[`u_dem_scale${ex}`]=eg,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){let eu=this.painter.context,ef=eu.gl;if(!this._emptyDepthBufferTexture){let em=new x.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new x.Texture(eu,em,ef.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let x=0,eu=this._visibleDemTiles.reduce((eu,ef)=>{if(!ef.dem)return eu;let em=ef.dem.tree.minimums[0];return em>0&&x++,eu+em},0);return x?eu/x:0}_updateEmptyDEMTexture(){let eu=this.painter.context,ef=eu.gl;eu.activeTexture.set(ef.TEXTURE2);let em=this._getLoadedAreaMinimum(),e_=new x.RGBAImage({width:1,height:1},new Uint8Array(x.DEMData.pack(em,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let eg=this._emptyDEMTexture;return eg?eg.update(e_,{premultiply:!1}):eg=this._emptyDEMTexture=new x.Texture(eu,e_,ef.RGBA,{premultiply:!1}),eg}setupElevationDraw(eu,ef,em){var e_;let eg=this.painter.context,ex=eg.gl,ev=(e_=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:x.DEMData.getUnpackVector(e_),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});ev.u_dem_size=this.sourceCache.getSource().tileSize,ev.u_exaggeration=this.exaggeration();let eb=null,ew=null,eT=1;if(em&&em.morphing&&this._useVertexMorphing){let x=em.morphing.srcDemTile,ef=em.morphing.dstDemTile;eT=em.morphing.phase,x&&ef&&(this._prepareDemTileUniforms(eu,x,ev,"_prev")&&(ew=x),this._prepareDemTileUniforms(eu,ef,ev)&&(eb=ef))}if(ew&&eb?(eg.activeTexture.set(ex.TEXTURE2),eb.demTexture.bind(ex.NEAREST,ex.CLAMP_TO_EDGE,ex.NEAREST),eg.activeTexture.set(ex.TEXTURE4),ew.demTexture.bind(ex.NEAREST,ex.CLAMP_TO_EDGE,ex.NEAREST),ev.u_dem_lerp=eT):(eb=this.terrainTileForTile[eu.tileID.key],eg.activeTexture.set(ex.TEXTURE2),(this._prepareDemTileUniforms(eu,eb,ev)?eb.demTexture:this.emptyDEMTexture).bind(ex.NEAREST,ex.CLAMP_TO_EDGE)),eg.activeTexture.set(ex.TEXTURE3),em&&em.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(ex.NEAREST,ex.CLAMP_TO_EDGE),this._depthFBO&&(ev.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(ex.NEAREST,ex.CLAMP_TO_EDGE),ev.u_depth_size_inv=[1,1]),em&&em.useMeterToDem&&eb){let eu=(1<<eb.tileID.canonical.z)*x.mercatorZfromAltitude(1,this.painter.transform.center.lat)*this.sourceCache.getSource().tileSize;ev.u_meter_to_dem=eu}if(em&&em.labelPlaneMatrixInv&&(ev.u_label_plane_matrix_inv=em.labelPlaneMatrixInv),ef.setTerrainUniformValues(eg,ev),"globe"===this.painter.transform.projection.name){let x=this.globeUniformValues(this.painter.transform,eu.tileID.canonical,em&&em.useDenormalizedUpVectorScale);ef.setGlobeUniformValues(eg,x)}}globeUniformValues(eu,ef,em){let e_=eu.projection;return{u_tile_tl_up:e_.upVector(ef,0,0),u_tile_tr_up:e_.upVector(ef,x.EXTENT,0),u_tile_br_up:e_.upVector(ef,x.EXTENT,x.EXTENT),u_tile_bl_up:e_.upVector(ef,0,x.EXTENT),u_tile_up_scale:em?x.globeMetersToEcef(1):e_.upVectorScale(ef,eu.center.lat,eu.worldSize).metersToTile}}renderToBackBuffer(eu){let ef=this.painter,em=this.painter.context;0!==eu.length&&(em.bindFramebuffer.set(null),em.viewport.set([0,0,ef.width,ef.height]),ef.gpuTimingDeferredRenderStart(),this.renderingToTexture=!1,function(eu,ef,em,e_,eg){if("globe"===eu.transform.projection.name)!function(eu,ef,em,e_,eg){let ex,ev;let eb=eu.context,ew=eb.gl,eT=eu.options.showTerrainWireframe?2:0,eE=eu.transform,eS=x.globeUseCustomAntiAliasing(eu,eb,eE),d=(x,ef)=>{if(ev===x)return;let em=[eY[x],"PROJECTION_GLOBE_VIEW"];eS&&em.push("CUSTOM_ANTIALIASING"),ef&&em.push(eY[eT]),ex=eu.useProgram("globeRaster",null,em),ev=x},eM=eu.colorModeForRenderPass(),eI=new x.DepthMode(ew.LEQUAL,x.DepthMode.ReadWrite,eu.depthRangeFor3D);eH.update(eg);let eA=x.calculateGlobeMercatorMatrix(eE),eC=[x.mercatorXfromLng(eE.center.lng),x.mercatorYfromLat(eE.center.lat)],ez=eu.globeSharedBuffers,eD=[eE.width*x.exported.devicePixelRatio,eE.height*x.exported.devicePixelRatio],ek=Float32Array.from(eE.globeMatrix),eP={useDenormalizedUpVectorScale:!0};
60if((eT?[!1,!0]:[!1]).forEach(eT=>{let eE=eu.transform,eS=Ci(eE.zoom)*ef.exaggeration();ev=-1;let eL=eT?ew.LINES:ew.TRIANGLES;for(let ev of e_){let e_=em.getTile(ev),eR=x.StencilMode.disabled,eB=ef.prevTerrainTileForTile[ev.key],eO=ef.terrainTileForTile[ev.key];wi(eB,eO)&&eH.newMorphing(ev.key,eB,eO,eg,250),eb.activeTexture.set(ew.TEXTURE0),e_.texture.bind(ew.LINEAR,ew.CLAMP_TO_EDGE);let eF=eH.getMorphValuesForProxy(ev.key),eU=eF?1:0;eF&&x.extend$1(eP,{morphing:{srcDemTile:eF.from,dstDemTile:eF.to,phase:x.easeCubicInOut(eF.phase)}});let eV=x.tileCornersToBounds(ev.canonical),eN=x.getLatitudinalLod(eV.getCenter().lat),ej=x.getGridMatrix(ev.canonical,eV,eN,eE.worldSize/eE._pixelsPerMercatorPixel),eG=x.globeNormalizeECEF(x.globeTileBounds(ev.canonical)),eZ=bi(eE.projMatrix,ek,eA,eG,x.globeToMercatorTransition(eE.zoom),eC,eE.frustumCorners.TL,eE.frustumCorners.TR,eE.frustumCorners.BR,eE.frustumCorners.BL,eE.globeCenterInViewSpace,eE.globeRadius,eD,eS,ej);if(d(eU,eT),ef.setupElevationDraw(e_,ex,eP),eu.prepareDrawProgram(eb,ex,ev.toUnwrapped()),ez){let[ef,em,e_]=eT?ez.getWirefameBuffers(eu.context,eN):ez.getGridBuffers(eN,0!==eS);ex.draw(eb,eL,eI,eR,eM,x.CullFaceMode.backCCW,eZ,"globe_raster",ef,em,e_)}}}),ez){let eg=["GLOBE_POLES","PROJECTION_GLOBE_VIEW"];for(let ev of(eS&&eg.push("CUSTOM_ANTIALIASING"),ex=eu.useProgram("globeRaster",null,eg),e_)){let{x:e_,y:eg,z:eT}=ev.canonical,eS=0===eg,eA=eg===(1<<eT)-1,[ek,eL,eR,eB]=ez.getPoleBuffers(eT);if(eB&&(eS||eA)){let eg=em.getTile(ev);eb.activeTexture.set(ew.TEXTURE0),eg.texture.bind(ew.LINEAR,ew.CLAMP_TO_EDGE);let ez=x.globePoleMatrixForTile(eT,e_,eE),eO=x.globeNormalizeECEF(x.globeTileBounds(ev.canonical)),C=(eu,ef)=>eu.draw(eb,ew.TRIANGLES,eI,x.StencilMode.disabled,eM,x.CullFaceMode.disabled,bi(eE.projMatrix,ez,ez,eO,0,eC,eE.frustumCorners.TL,eE.frustumCorners.TR,eE.frustumCorners.BR,eE.frustumCorners.BL,eE.globeCenterInViewSpace,eE.globeRadius,eD,0),"globe_pole_raster",ef,eR,eB);ef.setupElevationDraw(eg,ex,eP),eu.prepareDrawProgram(eb,ex,ev.toUnwrapped()),eS&&C(ex,ek),eA&&(ez=x.scale(x.create(),ez,[1,-1,1]),C(ex,eL))}}}}(eu,ef,em,e_,eg);else{let ex,ev;let eb=eu.context,ew=eb.gl,eT=eu.options.showTerrainWireframe?2:0,u=(x,ef)=>{if(ev===x)return;let em=[eY[x]];ef&&em.push(eY[eT]),ex=eu.useProgram("terrainRaster",null,em),ev=x},eE=eu.colorModeForRenderPass(),eS=new x.DepthMode(ew.LEQUAL,x.DepthMode.ReadWrite,eu.depthRangeFor3D);eH.update(eg);let eM=eu.transform,eI=Ci(eM.zoom)*ef.exaggeration();(eT?[!1,!0]:[!1]).forEach(eT=>{ev=-1;let eA=eT?ew.LINES:ew.TRIANGLES,[eC,ez]=eT?ef.getWirefameBuffer():[ef.gridIndexBuffer,ef.gridSegments];for(let ev of e_){let e_;let eD=em.getTile(ev),ek=x.StencilMode.disabled,eP=ef.prevTerrainTileForTile[ev.key],eL=ef.terrainTileForTile[ev.key];wi(eP,eL)&&eH.newMorphing(ev.key,eP,eL,eg,250),eb.activeTexture.set(ew.TEXTURE0),eD.texture.bind(ew.LINEAR,ew.CLAMP_TO_EDGE,ew.LINEAR_MIPMAP_NEAREST);let eR=eH.getMorphValuesForProxy(ev.key),eB=eR?1:0;eR&&(e_={morphing:{srcDemTile:eR.from,dstDemTile:eR.to,phase:x.easeCubicInOut(eR.phase)}});let eO=yi(ev.projMatrix,!function(x,eu){let ef=1<<x.z;return!eu&&(0===x.x||x.x===ef-1)||0===x.y||x.y===ef-1}(ev.canonical,eM.renderWorldCopies)?eI:eI/10);u(eB,eT),ef.setupElevationDraw(eD,ex,e_),eu.prepareDrawProgram(eb,ex,ev.toUnwrapped()),ex.draw(eb,eA,eS,ek,eE,x.CullFaceMode.backCCW,eO,"terrain_raster",ef.gridBuffer,eC,ez)}})}}(ef,this,this.proxySourceCache,eu,this._updateTimestamp),this.renderingToTexture=!0,ef.gpuTimingDeferredRenderEnd(),eu.splice(0,eu.length))}renderBatch(eu){if(0===this._drapedRenderBatches.length)return eu+1;this.renderingToTexture=!0;let ef=this.painter,em=this.painter.context,e_=this.proxySourceCache,eg=this.proxiedCoords[e_.id],ex=this._drapedRenderBatches.shift(),ev=[],eb=ef.style.order,ew=0;for(let eT of eg){let eg;let eE=e_.getTileByID(eT.proxyTileKey),eS=e_.proxyCachedFBO[eT.key]?e_.proxyCachedFBO[eT.key][eu]:void 0,eM=void 0!==eS?e_.renderCache[eS]:this.pool[ew++],eI=void 0!==eS;if(eE.texture=eM.tex,eI&&!eM.dirty){ev.push(eE.tileID);continue}em.bindFramebuffer.set(eM.fb.framebuffer),this.renderedToTile=!1,eM.dirty&&(em.clear({color:x.Color.transparent,stencil:0}),eM.dirty=!1);for(let x=ex.start;x<=ex.end;++x){let eu=ef.style._layers[eb[x]];if(eu.isHidden(ef.transform.zoom))continue;let e_=ef.style._getLayerSourceCache(eu),ex=e_?this.proxyToSource[eT.key][e_.id]:[eT];ex&&(em.viewport.set([0,0,eM.fb.width,eM.fb.height]),eg!==(e_?e_.id:null)&&(this._setupStencil(eM,ex,eu,e_),eg=e_?e_.id:null),ef.renderLayer(ef,e_,eu,ex))}this.renderedToTile?(eM.dirty=!0,ev.push(eE.tileID)):eI||--ew,5===ew&&(ew=0,this.renderToBackBuffer(ev))}return this.renderToBackBuffer(ev),this.renderingToTexture=!1,em.bindFramebuffer.set(null),em.viewport.set([0,0,ef.width,ef.height]),ex.end+1}postRender(){}renderCacheEfficiency(x){let eu=x.order.length;
60if(0===eu)return{efficiency:100};let ef,em=0,e_=0,eg=!1;for(let ex=0;ex<eu;++ex){let eu=x._layers[x.order[ex]];this._style.isLayerDraped(eu)?(eg&&++em,++e_):eg||(eg=!0,ef=eu.id)}return 0===e_?{efficiency:100}:{efficiency:100*(1-em/e_),firstUndrapedLayer:ef}}getMinElevationBelowMSL(){let x=0;return this._visibleDemTiles.filter(x=>x.dem).forEach(eu=>{x=Math.min(x,eu.dem.tree.minimums[0])}),0===x?x:(x-30)*this._exaggeration}raycast(x,eu,ef){if(!this._visibleDemTiles)return null;let em=this._visibleDemTiles.filter(x=>x.dem).map(em=>{let e_=em.tileID,eg=1<<e_.overscaledZ,{x:ex,y:ev}=e_.canonical,eb=ex/eg,ew=(ex+1)/eg,eT=ev/eg,eE=(ev+1)/eg;return{minx:eb,miny:eT,maxx:ew,maxy:eE,t:em.dem.tree.raycastRoot(eb,eT,ew,eE,x,eu,ef),tile:em}});for(let e_ of(em.sort((x,eu)=>(null!==x.t?x.t:Number.MAX_VALUE)-(null!==eu.t?eu.t:Number.MAX_VALUE)),em)){if(null==e_.t)break;let em=e_.tile.dem.tree.raycast(e_.minx,e_.miny,e_.maxx,e_.maxy,x,eu,ef);if(null!=em)return em}return null}_createFBO(){let eu=this.painter.context,ef=eu.gl,em=this.drapeBufferSize;eu.activeTexture.set(ef.TEXTURE0);let e_=new x.Texture(eu,{width:em[0],height:em[1],data:null},ef.RGBA);e_.bind(ef.LINEAR,ef.CLAMP_TO_EDGE);let eg=eu.createFramebuffer(em[0],em[1],!1);return eg.colorAttachment.set(e_.texture),eg.depthAttachment=new Ee(eu,eg.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=eu.createRenderbuffer(eu.gl.DEPTH_STENCIL,em[0],em[1]),this._stencilRef=0,eg.depthAttachment.set(this._sharedDepthStencil),eu.clear({stencil:0})):eg.depthAttachment.set(this._sharedDepthStencil),eu.extTextureFilterAnisotropic&&!eu.extTextureFilterAnisotropicForceOff&&ef.texParameterf(ef.TEXTURE_2D,eu.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,eu.extTextureFilterAnisotropicMax),{fb:eg,tex:e_,dirty:!1}}_initFBOPool(){for(;this.pool.length<Math.min(5,this.proxyCoords.length);)this.pool.push(this._createFBO())}_shouldDisableRenderCache(){if(this._style.light&&this._style.light.hasTransition())return!0;for(let x in this._style._sourceCaches)if(this._style._sourceCaches[x].hasTransition())return!0;return this._style.order.some(x=>{let eu=this._style._layers[x],ef=eu.isHidden(this.painter.transform.zoom);return"custom"===eu.type?!ef&&eu.shouldRedrape():!ef&&eu.hasTransition()})}_clearLineLayersFromRenderCache(){let eu=!1;for(let x of this._style._getSources())if(x instanceof Ie){eu=!0;break}if(!eu)return;let ef={};for(let eu=0;eu<this._style.order.length;++eu){let em=this._style._layers[this._style.order[eu]],e_=this._style._getLayerSourceCache(em);if(e_&&!ef[e_.id]&&!em.isHidden(this.painter.transform.zoom)&&"line"===em.type&&em.widthExpression() instanceof x.ZoomDependentExpression)for(let x of(ef[e_.id]=!0,this.proxyCoords)){let eu=this.proxyToSource[x.key][e_.id];if(eu)for(let x of eu)this._clearRenderCacheForTile(e_.id,x)}}}_clearRasterLayersFromRenderCache(){let x=!1;for(let eu in this._style._sourceCaches)if(this._style._sourceCaches[eu]._source instanceof Se){x=!0;break}if(!x)return;let eu={};for(let x=0;x<this._style.order.length;++x){let ef=this._style._layers[this._style.order[x]],em=this._style._getLayerSourceCache(ef);if(!em||eu[em.id]||ef.isHidden(this.painter.transform.zoom)||"raster"!==ef.type)continue;let e_=ef.paint.get("raster-fade-duration");for(let x of this.proxyCoords){let eu=this.proxyToSource[x.key][em.id];if(eu)for(let x of eu){let eu=Si(em.getTile(x),em.findLoadedParent(x,0),em,this.painter.transform,e_);(1!==eu.opacity||0!==eu.mix)&&this._clearRenderCacheForTile(em.id,x)}}}}_setupDrapedRenderBatches(){let x=this._style.order,eu=x.length;if(0===eu)return;let ef=[],em,e_=0,eg=this._style._layers[x[e_]];for(;!this._style.isLayerDraped(eg)&&eg.isHidden(this.painter.transform.zoom)&&++e_<eu;)eg=this._style._layers[x[e_]];for(;e_<eu;++e_){let eu=this._style._layers[x[e_]];eu.isHidden(this.painter.transform.zoom)||(this._style.isLayerDraped(eu)?void 0===em&&(em=e_):void 0!==em&&(ef.push({start:em,end:e_-1}),em=void 0))}void 0!==em&&ef.push({start:em,end:e_-1}),this._drapedRenderBatches=ef}_setupRenderCache(x){let eu=this.proxySourceCache;if(this._shouldDisableRenderCache()||this._invalidateRenderCache){if(this._invalidateRenderCache=!1,eu.renderCache.length>eu.renderCachePool.length){let x=Object.values(eu.proxyCachedFBO);eu.proxyCachedFBO={};for(let ef=0;ef<x.length;++ef){let em=Object.values(x[ef]);eu.renderCachePool.push(...em)}}return}this._clearRasterLayersFromRenderCache();let ef=this.proxyCoords,em=this._tilesDirty;for(let e_=ef.length-1;e_>=0;e_--){let eg=ef[e_];
60if(eu.getTileByID(eg.key),void 0!==eu.proxyCachedFBO[eg.key]){let ef=x[eg.key],e_=this.proxyToSource[eg.key],ex=0;for(let x in e_){let eu=e_[x],eg=ef[x];if(!eg||eg.length!==eu.length||eu.some((eu,ef)=>eu!==eg[ef]||em[x]&&em[x].hasOwnProperty(eu.key))){ex=-1;break}++ex}for(let x in eu.proxyCachedFBO[eg.key])eu.renderCache[eu.proxyCachedFBO[eg.key][x]].dirty=ex<0||ex!==Object.values(ef).length}}let e_=[...this._drapedRenderBatches];for(let x of(e_.sort((x,eu)=>eu.end-eu.start-(x.end-x.start)),e_))for(let em of ef){if(eu.proxyCachedFBO[em.key])continue;let ef=eu.renderCachePool.pop();void 0===ef&&eu.renderCache.length<50&&(ef=eu.renderCache.length,eu.renderCache.push(this._createFBO())),void 0!==ef&&(eu.proxyCachedFBO[em.key]={},eu.proxyCachedFBO[em.key][x.start]=ef,eu.renderCache[ef].dirty=!0)}this._tilesDirty={}}_setupStencil(x,eu,ef,em){let e_;if(!em||!this._sourceTilesOverlap[em.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));let eg=this.painter.context,ex=eg.gl;if(eu.length<=1)return void(this._overlapStencilType=!1);if(ef.isTileClipped())e_=eu.length,this._overlapStencilMode.test={func:ex.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(eu[0].overscaledZ>eu[eu.length-1].overscaledZ))return void(this._overlapStencilType=!1);e_=1,this._overlapStencilMode.test={func:ex.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+e_>255&&(eg.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=e_,this._overlapStencilMode.ref=this._stencilRef,ef.isTileClipped()&&this._renderTileClippingMasks(eu,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return"Clip"===this._overlapStencilType||"Mask"===this._overlapStencilType}stencilModeForRTTOverlap(eu){return this.renderingToTexture&&this._overlapStencilType?("Clip"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[eu.key]),this._overlapStencilMode):x.StencilMode.disabled}_renderTileClippingMasks(eu,ef){let em=this.painter,e_=this.painter.context,eg=e_.gl;em._tileClippingMaskIDs={},e_.setColorMode(x.ColorMode.disabled),e_.setDepthMode(x.DepthMode.disabled);let ex=em.useProgram("clippingMask");for(let ev of eu){let eu=em._tileClippingMaskIDs[ev.key]=--ef;ex.draw(e_,eg.TRIANGLES,x.DepthMode.disabled,new x.StencilMode({func:eg.ALWAYS,mask:0},eu,255,eg.KEEP,eg.KEEP,eg.REPLACE),x.ColorMode.disabled,x.CullFaceMode.disabled,Ii(ev.projMatrix),"$clipping",em.tileExtentBuffer,em.quadTriangleIndexBuffer,em.tileExtentSegments)}}pointCoordinate(eu){let ef=this.painter.transform;if(eu.x<0||eu.x>ef.width||eu.y<0||eu.y>ef.height)return null;let em=[eu.x,eu.y,1,1];x.transformMat4$1(em,em,ef.pixelMatrixInverse),x.scale$1(em,em,1/em[3]),em[0]/=ef.worldSize,em[1]/=ef.worldSize;let e_=ef._camera.position,eg=x.mercatorZfromAltitude(1,ef.center.lat),ex=[e_[0],e_[1],e_[2]/eg,0],ev=x.subtract([],em.slice(0,3),ex);x.normalize(ev,ev);let eb=this.raycast(ex,ev,this._exaggeration);return null!==eb&&eb?(x.scaleAndAdd(ex,ex,ev,eb),ex[3]=ex[2],ex[2]*=eg,ex):null}drawDepth(){let eu=this.painter,ef=eu.context,em=this.proxySourceCache,e_=Math.ceil(eu.width),eg=Math.ceil(eu.height);if(this._depthFBO&&(this._depthFBO.width!==e_||this._depthFBO.height!==eg)&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){let eu=ef.gl,em=ef.createFramebuffer(e_,eg,!0);ef.activeTexture.set(eu.TEXTURE0);let ex=new x.Texture(ef,{width:e_,height:eg,data:null},eu.RGBA);ex.bind(eu.NEAREST,eu.CLAMP_TO_EDGE),em.colorAttachment.set(ex.texture);let ev=ef.createRenderbuffer(ef.gl.DEPTH_COMPONENT16,e_,eg);em.depthAttachment.set(ev),this._depthFBO=em,this._depthTexture=ex}ef.bindFramebuffer.set(this._depthFBO.framebuffer),ef.viewport.set([0,0,e_,eg]),function(eu,ef,em,e_){if("globe"===eu.transform.projection.name)return;let eg=eu.context,ex=eg.gl;eg.clear({depth:1});let ev=eu.useProgram("terrainDepth"),eb=new x.DepthMode(ex.LESS,x.DepthMode.ReadWrite,eu.depthRangeFor3D);for(let eu of e_){let e_=em.getTile(eu),ew=yi(eu.projMatrix,0);ef.setupElevationDraw(e_,ev),ev.draw(eg,ex.TRIANGLES,eb,x.StencilMode.disabled,x.ColorMode.unblended,x.CullFaceMode.backCCW,ew,"terrain_depth",ef.gridBuffer,ef.gridIndexBuffer,ef.gridNoSkirtSegments)}}(eu,this,em,this.proxyCoords)}_setupProxiedCoordsForOrtho(x,eu,ef){if(x.getSource() instanceof Ae)return this._setupProxiedCoordsForImageSource(x,eu,ef);this._findCoveringTileCache[x.id]=this._findCoveringTileCache[x.id]||{};let em=this.proxiedCoords[x.id]=[],e_=this.proxyCoords;for(let eu=0;eu<e_.length;eu++){let eg=e_[eu],ex=this._findTileCoveringTileID(eg,x);if(ex){let eu=this._createProxiedId(eg,ex,ef[eg.key]&&ef[eg.key][x.id]);em.push(eu),this.proxyToSource[eg.key][x.id]=[eu]}}let eg=!1;for(let e_=0;e_<eu.length;e_++){let ex=x.getTile(eu[e_]);if(!ex||!ex.hasData())continue;let ev=this._findTileCoveringTileID(ex.tileID,this.proxySourceCache);
60if(ev&&ev.tileID.canonical.z!==ex.tileID.canonical.z){let eu=this.proxyToSource[ev.tileID.key][x.id],e_=this._createProxiedId(ev.tileID,ex,ef[ev.tileID.key]&&ef[ev.tileID.key][x.id]);eu?eu.splice(eu.length-1,0,e_):this.proxyToSource[ev.tileID.key][x.id]=[e_],em.push(e_),eg=!0}}this._sourceTilesOverlap[x.id]=eg}_setupProxiedCoordsForImageSource(eu,ef,em){if(!eu.getSource().loaded())return;let e_=this.proxiedCoords[eu.id]=[],eg=this.proxyCoords,ex=eu.getSource(),ev=new x.pointGeometry(ex.tileID.x,ex.tileID.y)._div(1<<ex.tileID.z),eb=ex.coordinates.map(x.MercatorCoordinate.fromLngLat).reduce((x,eu)=>(x.min.x=Math.min(x.min.x,eu.x-ev.x),x.min.y=Math.min(x.min.y,eu.y-ev.y),x.max.x=Math.max(x.max.x,eu.x-ev.x),x.max.y=Math.max(x.max.y,eu.y-ev.y),x),{min:new x.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE),max:new x.pointGeometry(-Number.MAX_VALUE,-Number.MAX_VALUE)}),c=(eu,ef)=>{let em=eu.wrap+eu.canonical.x/(1<<eu.canonical.z),e_=eu.canonical.y/(1<<eu.canonical.z),eg=x.EXTENT/(1<<eu.canonical.z),ex=ef.wrap+ef.canonical.x/(1<<ef.canonical.z),ev=ef.canonical.y/(1<<ef.canonical.z);return em+eg<ex+eb.min.x||em>ex+eb.max.x||e_+eg<ev+eb.min.y||e_>ev+eb.max.y};for(let x=0;x<eg.length;x++){let ex=eg[x];for(let x=0;x<ef.length;x++){let eg=eu.getTile(ef[x]);if(!eg||!eg.hasData()||c(ex,eg.tileID))continue;let ev=this._createProxiedId(ex,eg,em[ex.key]&&em[ex.key][eu.id]),eb=this.proxyToSource[ex.key][eu.id];eb?eb.push(ev):this.proxyToSource[ex.key][eu.id]=[ev],e_.push(ev)}}}_createProxiedId(eu,ef,em){let e_=this.orthoMatrix;if(em){let x=em.find(x=>x.key===ef.tileID.key);if(x)return x}if(ef.tileID.key!==eu.key){let em,eg,ex;let ev=eu.canonical.z-ef.tileID.canonical.z;e_=x.create();let eb=ef.tileID.wrap-eu.wrap<<eu.overscaledZ;ev>0?(eg=(em=x.EXTENT>>ev)*((ef.tileID.canonical.x<<ev)-eu.canonical.x+eb),ex=em*((ef.tileID.canonical.y<<ev)-eu.canonical.y)):(em=x.EXTENT<<-ev,eg=x.EXTENT*(ef.tileID.canonical.x-(eu.canonical.x+eb<<-ev)),ex=x.EXTENT*(ef.tileID.canonical.y-(eu.canonical.y<<-ev))),x.ortho(e_,0,em,0,em,0,1),x.translate(e_,e_,[eg,ex,0])}return new Ai(ef.tileID,eu.key,e_)}_findTileCoveringTileID(eu,ef){let em=ef.getTile(eu);if(em&&em.hasData())return em;let e_=this._findCoveringTileCache[ef.id],eg=e_[eu.key];if((em=eg?ef.getTileByID(eg):null)&&em.hasData()||null===eg)return em;let ex=em?em.tileID:eu,ev=ex.overscaledZ,eb=ef.getSource().minzoom,ew=[];if(!eg){let e_=ef.getSource().maxzoom;if(eu.canonical.z>=e_){let em=eu.canonical.z-e_;ef.getSource().reparseOverscaled?(ev=Math.max(eu.canonical.z+2,ef.transform.tileZoom),ex=new x.OverscaledTileID(ev,eu.wrap,e_,eu.canonical.x>>em,eu.canonical.y>>em)):0!==em&&(ev=e_,ex=new x.OverscaledTileID(ev,eu.wrap,e_,eu.canonical.x>>em,eu.canonical.y>>em))}ex.key!==eu.key&&(ew.push(ex.key),em=ef.getTile(ex))}let h=x=>{ew.forEach(eu=>{e_[eu]=x}),ew.length=0};for(ev-=1;ev>=eb&&(!em||!em.hasData());ev--){em&&h(em.tileID.key);let x=ex.calculateScaledKey(ev);if((em=ef.getTileByID(x))&&em.hasData())break;let eu=e_[x];if(null===eu)break;void 0===eu?ew.push(x):em=ef.getTileByID(eu)}return h(em?em.tileID.key:null),em&&em.hasData()?em:null}findDEMTileFor(x){return this.enabled?this._findTileCoveringTileID(x,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(x,eu){let ef=this._tilesDirty[x];ef||(ef=this._tilesDirty[x]={}),ef[eu.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){let eu=function(eu){let ef=0,em=new x.StructArrayLayout2ui4;for(let x=1;x<129;x++){for(let eu=1;eu<129;eu++)ef=131*x+eu,em.emplaceBack(ef,ef+1),em.emplaceBack(ef,ef+131),em.emplaceBack(ef+1,ef+131),128===x&&em.emplaceBack(ef+131,ef+131+1);em.emplaceBack(ef+1,ef+1+131)}return em}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(eu),this.wireframeSegments=x.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,eu.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}};let Pi=class Pi{static cacheKey(x,eu,ef,em){let e_=`${eu}${em?em.cacheKey:""}`;for(let eu of ef)x.usedDefines.includes(eu)&&(e_+=`/${eu}`);return e_}constructor(eu,ef,em,e_,eg,ex){let ev=eu.gl;this.program=ev.createProgram();let eb=function(x){let eu=[];for(let ef=0;ef<x.length;ef++){if(null===x[ef])continue;let em=x[ef].split(" ");eu.push(em.pop())}return eu}(em.staticAttributes),ew=e_?e_.getBinderAttributes():[],eT=eb.concat(ew),eE=e_?e_.defines():[];eE=eE.concat(ex.map(x=>`#define ${x}`));let eS=eu.isWebGL2?"#version 300 es\n":"",eM=eS+eE.concat(eu.extStandardDerivatives&&0===eS.length?"#extension GL_OES_standard_derivatives : enable\n".concat(eW):eW,eW,eF,eq.fragmentSource,eZ.fragmentSource,em.fragmentSource).join("\n"),eI=eS+eE.concat("\n#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",eF,eq.vertexSource,eZ.vertexSource,eG.vertexSource,em.vertexSource).join("\n"),eA=ev.createShader(ev.FRAGMENT_SHADER);if(ev.isContextLost())return void(this.failedToCreate=!0);ev.shaderSource(eA,eM),ev.compileShader(eA),ev.attachShader(this.program,eA);let eC=ev.createShader(ev.VERTEX_SHADER);if(ev.isContextLost())this.failedToCreate=!0;else{ev.shaderSource(eC,eI),ev.compileShader(eC),ev.attachShader(this.program,eC),this.attributes={},this.numAttributes=eT.length;for(let x=0;x<this.numAttributes;x++)eT[x]&&(ev.bindAttribLocation(this.program,x,eT[x]),this.attributes[eT[x]]=x);ev.linkProgram(this.program),ev.deleteShader(eC),ev.deleteShader(eA),this.fixedUniforms=eg(eu),this.binderUniforms=e_?e_.getUniforms(eu):[],ex.includes("TERRAIN")&&(this.terrainUniforms={u_dem:new x.Uniform1i(eu),u_dem_prev:new x.Uniform1i(eu),u_dem_unpack:new x.Uniform4f(eu),u_dem_tl:new x.Uniform2f(eu),u_dem_scale:new x.Uniform1f(eu),u_dem_tl_prev:new x.Uniform2f(eu),u_dem_scale_prev:new x.Uniform1f(eu),u_dem_size:new x.Uniform1f(eu),u_dem_lerp:new x.Uniform1f(eu),u_exaggeration:new x.Uniform1f(eu),u_depth:new x.Uniform1i(eu),u_depth_size_inv:new x.Uniform2f(eu),u_meter_to_dem:new x.Uniform1f(eu),u_label_plane_matrix_inv:new x.UniformMatrix4f(eu)}),ex.includes("GLOBE")&&(this.globeUniforms={u_tile_tl_up:new x.Uniform3f(eu),u_tile_tr_up:new x.Uniform3f(eu),u_tile_br_up:new x.Uniform3f(eu),u_tile_bl_up:new x.Uniform3f(eu),u_tile_up_scale:new x.Uniform1f(eu)}),ex.includes("FOG")&&(this.fogUniforms={u_fog_matrix:new x.UniformMatrix4f(eu),u_fog_range:new x.Uniform2f(eu),u_fog_color:new x.Uniform4f(eu),u_fog_horizon_blend:new x.Uniform1f(eu),u_fog_temporal_offset:new x.Uniform1f(eu),u_frustum_tl:new x.Uniform3f(eu),u_frustum_tr:new x.Uniform3f(eu),u_frustum_br:new x.Uniform3f(eu),u_frustum_bl:new x.Uniform3f(eu),u_globe_pos:new x.Uniform3f(eu),u_globe_radius:new x.Uniform1f(eu),u_globe_transition:new x.Uniform1f(eu),u_is_globe:new x.Uniform1i(eu),u_viewport:new x.Uniform2f(eu)})}}setTerrainUniformValues(x,eu){if(!this.terrainUniforms)return;let ef=this.terrainUniforms;if(!this.failedToCreate)for(let em in x.program.set(this.program),eu)ef[em]&&ef[em].set(this.program,em,eu[em])}setGlobeUniformValues(x,eu){if(!this.globeUniforms)return;let ef=this.globeUniforms;if(!this.failedToCreate)for(let em in x.program.set(this.program),eu)ef[em]&&ef[em].set(this.program,em,eu[em])}setFogUniformValues(x,eu){if(!this.fogUniforms)return;let ef=this.fogUniforms;if(!this.failedToCreate)for(let em in x.program.set(this.program),eu)ef[em].set(this.program,em,eu[em])}draw(x,eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI){let eA=x.gl;if(this.failedToCreate)return;for(let eu of(x.program.set(this.program),x.setDepthMode(ef),x.setStencilMode(em),x.setColorMode(e_),x.setCullFace(eg),Object.keys(this.fixedUniforms)))this.fixedUniforms[eu].set(this.program,eu,ex[eu]);eM&&eM.setUniforms(this.program,x,this.binderUniforms,eE,{zoom:eS});let eC={[eA.LINES]:2,[eA.TRIANGLES]:3,[eA.LINE_STRIP]:1}[eu];for(let ef of eT.get()){let em=ef.vaos||(ef.vaos={});(em[ev]||(em[ev]=new pi)).bind(x,this,eb,eM?eM.getPaintVertexBuffers():[],ew,ef.vertexOffset,eI||[]),eA.drawElements(eu,ef.primitiveLength*eC,eA.UNSIGNED_SHORT,ef.primitiveOffset*eC*2)}}};
60function Ri(x,eu){let ef=Math.pow(2,eu.tileID.overscaledZ),em=eu.tileSize*Math.pow(2,x.transform.tileZoom)/ef,e_=em*(eu.tileID.canonical.x+eu.tileID.wrap*ef),eg=em*eu.tileID.canonical.y;return{u_image:0,u_texsize:eu.imageAtlasTexture.size,u_tile_units_to_pixels:1/P(eu,1,x.transform.tileZoom),u_pixel_coord_upper:[e_>>16,eg>>16],u_pixel_coord_lower:[65535&e_,65535&eg]}}let eJ=x.create(),Bi=(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE)=>{let eS=ef.style.light,eM=eS.properties.get("position"),eI=[eM.x,eM.y,eM.z],eA=x.create$1();"viewport"===eS.properties.get("anchor")&&(x.fromRotation(eA,-ef.transform.angle),x.transformMat3(eI,eI,eA));let eC=eS.properties.get("color"),ez=ef.transform,eD={u_matrix:eu,u_lightpos:eI,u_lightintensity:eS.properties.get("intensity"),u_lightcolor:[eC.r,eC.g,eC.b],u_vertical_gradient:+em,u_opacity:e_,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:eJ,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:eg,u_edge_radius:ex};return"globe"===ez.projection.name&&(eD.u_tile_id=[ev.canonical.x,ev.canonical.y,1<<ev.canonical.z],eD.u_zoom_transition=ew,eD.u_inv_rot_matrix=eE,eD.u_merc_center=eT,eD.u_up_dir=ez.projection.upVector(new x.CanonicalTileID(0,0,0),eT[0]*x.EXTENT,eT[1]*x.EXTENT),eD.u_height_lift=eb),eD},ki=(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS)=>{let eM=Bi(eu,ef,em,e_,eg,ex,ev,ew,eT,eE,eS),eI={u_height_factor:-Math.pow(2,ev.overscaledZ)/eb.tileSize/8};return x.extend(eM,Ri(ef,eb),eI)},Fi=x=>({u_matrix:x}),Ui=(eu,ef,em)=>x.extend(Fi(eu),Ri(ef,em)),Ni=(x,eu)=>({u_matrix:x,u_world:eu}),Gi=(eu,ef,em,e_)=>x.extend(Ui(eu,ef,em),{u_world:e_}),eK=x.create(),Zi=(eu,ef,em,e_,eg,ex)=>{let ev;let eb=eu.transform,ew="globe"===eb.projection.name;if("map"===ex.paint.get("circle-pitch-alignment")){if(ew){let eu=x.globePixelsToTileUnits(eb.zoom,ef.canonical)*eb._pixelsPerMercatorPixel;ev=Float32Array.from([eu,0,0,eu])}else ev=eb.calculatePixelsToTileUnitsMatrix(em)}else ev=new Float32Array([eb.pixelsToGLUnits[0],0,0,eb.pixelsToGLUnits[1]]);let eT={u_camera_to_center_distance:eb.cameraToCenterDistance,u_matrix:eu.translatePosMatrix(ef.projMatrix,em,ex.paint.get("circle-translate"),ex.paint.get("circle-translate-anchor")),u_device_pixel_ratio:x.exported.devicePixelRatio,u_extrude_scale:ev,u_inv_rot_matrix:eK,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(ew){eT.u_inv_rot_matrix=e_,eT.u_merc_center=eg,eT.u_tile_id=[ef.canonical.x,ef.canonical.y,1<<ef.canonical.z],eT.u_zoom_transition=x.globeToMercatorTransition(eb.zoom);let eu=eg[0]*x.EXTENT,em=eg[1]*x.EXTENT;eT.u_up_dir=eb.projection.upVector(new x.CanonicalTileID(0,0,0),eu,em)}return eT},Vi=x=>{let eu=[];return"map"===x.paint.get("circle-pitch-alignment")&&eu.push("PITCH_WITH_MAP"),"map"===x.paint.get("circle-pitch-scale")&&eu.push("SCALE_WITH_MAP"),eu},Wi=(eu,ef,em,e_)=>{let eg=x.EXTENT/em.tileSize;return{u_matrix:eu,u_camera_to_center_distance:ef.getCameraToCenterDistance(e_),u_extrude_scale:[ef.pixelsToGLUnits[0]/eg,ef.pixelsToGLUnits[1]/eg]}},Xi=(x,eu,ef=1)=>({u_matrix:x,u_color:eu,u_overlay:0,u_overlay_scale:ef}),eQ=x.create(),$i=(eu,ef,em,e_,eg,ex,ev)=>{let eb=eu.transform,ew="globe"===eb.projection.name,eT=ew?x.globePixelsToTileUnits(eb.zoom,ef.canonical)*eb._pixelsPerMercatorPixel:P(em,1,ex),eE={u_matrix:ef.projMatrix,u_extrude_scale:eT,u_intensity:ev,u_inv_rot_matrix:eQ,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(ew){eE.u_inv_rot_matrix=e_,eE.u_merc_center=eg,eE.u_tile_id=[ef.canonical.x,ef.canonical.y,1<<ef.canonical.z],eE.u_zoom_transition=x.globeToMercatorTransition(eb.zoom);let eu=eg[0]*x.EXTENT,em=eg[1]*x.EXTENT;eE.u_up_dir=eb.projection.upVector(new x.CanonicalTileID(0,0,0),eu,em)}return eE},Hi=(x,eu,ef,em,e_,eg,ex)=>{let ev=x.transform,eb=ev.calculatePixelsToTileUnitsMatrix(eu);return{u_matrix:Ji(x,eu,ef,em),u_pixels_to_tile_units:eb,u_device_pixel_ratio:eg,u_units_to_pixels:[1/ev.pixelsToGLUnits[0],1/ev.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:e_,u_texsize:Qi(ef)?eu.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Ki(eu,x.transform),u_alpha_discard_threshold:0,u_trim_offset:ex}},Yi=(x,eu,ef,em,e_)=>{let eg=x.transform;return{u_matrix:Ji(x,eu,ef,em),u_texsize:eu.imageAtlasTexture.size,u_pixels_to_tile_units:eg.calculatePixelsToTileUnitsMatrix(eu),u_device_pixel_ratio:e_,u_image:0,u_tile_units_to_pixels:Ki(eu,eg),u_units_to_pixels:[1/eg.pixelsToGLUnits[0],1/eg.pixelsToGLUnits[1]],u_alph
60a_discard_threshold:0}};function Ki(x,eu){return 1/P(x,1,eu.tileZoom)}function Ji(x,eu,ef,em){return x.translatePosMatrix(em||eu.tileID.projMatrix,eu,ef.paint.get("line-translate"),ef.paint.get("line-translate-anchor"))}function Qi(x){let eu=x.paint.get("line-dasharray").value;return eu.value||"constant"!==eu.kind}let eo=(x,eu,ef,em,e_,eg)=>{var ex,ev;return{u_matrix:x,u_tl_parent:eu,u_scale_parent:ef,u_fade_t:em.mix,u_opacity:em.opacity*e_.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:e_.paint.get("raster-brightness-min"),u_brightness_high:e_.paint.get("raster-brightness-max"),u_saturation_factor:(ev=e_.paint.get("raster-saturation"))>0?1-1/(1.001-ev):-ev,u_contrast_factor:(ex=e_.paint.get("raster-contrast"))>0?1/(1-ex):1+ex,u_spin_weights:function(x){x*=Math.PI/180;let eu=Math.sin(x),ef=Math.cos(x);return[(2*ef+1)/3,(-Math.sqrt(3)*eu-ef+1)/3,(Math.sqrt(3)*eu-ef+1)/3]}(e_.paint.get("raster-hue-rotate")),u_perspective_transform:eg}},e0=x.create(),oo=(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC)=>{let ez=eg.transform,eD={u_is_size_zoom_constant:+("constant"===eu||"source"===eu),u_is_size_feature_constant:+("constant"===eu||"camera"===eu),u_size_t:ef?ef.uSizeT:0,u_size:ef?ef.uSize:0,u_camera_to_center_distance:ez.cameraToCenterDistance,u_rotate_symbol:+em,u_aspect_ratio:ez.width/ez.height,u_fade_change:eg.options.fadeDuration?eg.symbolFadeChange:1,u_matrix:ex,u_label_plane_matrix:ev,u_coord_matrix:eb,u_is_text:+ew,u_pitch_with_map:+e_,u_texsize:eT,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:e0,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:e0,u_up_vector:[0,-1,0]};return"globe"===eC.name&&(eD.u_tile_id=[eE.canonical.x,eE.canonical.y,1<<eE.canonical.z],eD.u_zoom_transition=eS,eD.u_inv_rot_matrix=eI,eD.u_merc_center=eM,eD.u_camera_forward=ez._camera.forward(),eD.u_ecef_origin=x.globeECEFOrigin(ez.globeMatrix,eE.toUnwrapped()),eD.u_tile_matrix=Float32Array.from(ez.globeMatrix),eD.u_up_vector=eA),eD},ro=(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC,ez)=>x.extend(oo(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eS,eM,eI,eA,eC,ez),{u_gamma_scale:e_?eg.transform.cameraToCenterDistance*Math.cos(eg.terrain?0:eg.transform._pitch):1,u_device_pixel_ratio:x.exported.devicePixelRatio,u_is_halo:+eE}),no=(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS,eM,eI,eA,eC)=>x.extend(ro(eu,ef,em,e_,eg,ex,ev,eb,!0,ew,!0,eE,eS,eM,eI,eA,eC),{u_texsize_icon:eT,u_texture_icon:1}),so=(x,eu,ef)=>({u_matrix:x,u_opacity:eu,u_color:ef}),ao=(eu,ef,em,e_,eg)=>x.extend(function(x,eu,ef){let em=eu.imageManager.getPattern(x.toString()),{width:e_,height:eg}=eu.imageManager.getPixelSize(),ex=Math.pow(2,ef.tileID.overscaledZ),ev=ef.tileSize*Math.pow(2,eu.transform.tileZoom)/ex,eb=ev*(ef.tileID.canonical.x+ef.tileID.wrap*ex),ew=ev*ef.tileID.canonical.y;return{u_image:0,u_pattern_tl:em.tl,u_pattern_br:em.br,u_texsize:[e_,eg],u_pattern_size:em.displaySize,u_tile_units_to_pixels:1/P(ef,1,eu.transform.tileZoom),u_pixel_coord_upper:[eb>>16,ew>>16],u_pixel_coord_lower:[65535&eb,65535&ew]}}(e_,em,eg),{u_matrix:eu,u_opacity:ef}),e1={fillExtrusion:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_lightpos:new x.Uniform3f(eu),u_lightintensity:new x.Uniform1f(eu),u_lightcolor:new x.Uniform3f(eu),u_vertical_gradient:new x.Uniform1f(eu),u_opacity:new x.Uniform1f(eu),u_edge_radius:new x.Uniform1f(eu),u_ao:new x.Uniform2f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_up_dir:new x.Uniform3f(eu),u_height_lift:new x.Uniform1f(eu)}),fillExtrusionPattern:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_lightpos:new x.Uniform3f(eu),u_lightintensity:new x.Uniform1f(eu),u_lightcolor:new x.Uniform3f(eu),u_vertical_gradient:new x.Uniform1f(eu),u_height_factor:new x.Uniform1f(eu),u_edge_radius:new x.Uniform1f(eu),u_ao:new x.Uniform2f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_up_dir:new x.Uniform3f(eu),u_height_lift:new x.Uniform1f(eu),u_image:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_pixel_coord_upper:new x.Uniform2f(eu),u_pixel_coord_lower:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu),u_opacity:new x.Uniform1f(eu)}),fill:eu=>({u_matrix:new x.UniformMatrix4f(eu)}),fillPattern:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_image:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_pixel_coord_upper:new x.Uniform2f(eu),u_pixel_coord_lower:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu)}),fillOutline:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_world:new x.Uniform2f(eu)}),fillOutlinePattern:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_world:new x.Uniform2f(eu),u_image:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_pixel_coord_upper:new x.Uniform2f(eu),u_pixel_coord_lower:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu)}),circle:eu=>({u_camera_to_center_distance:new x.Uniform1f(eu),u_extrude_scale:new x.UniformMatrix2f(eu),u_device_pixel_ratio:new x.Uniform1f(eu),u_matrix:new x.UniformMatrix4f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_up_dir:new x.Uniform3f(eu)}),collisionBox:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_camera_to_center_distance:new x.Uniform1f(eu),u_extrude_scale:new x.Uniform2f(eu)}),collisionCircle:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_inv_matrix:new x.UniformMatrix4f(eu),u_camera_to_center_distance:new x.Uniform1f(eu),u_viewport_size:new x.Uniform2f(eu)}),debug:eu=>
60({u_color:new x.UniformColor(eu),u_matrix:new x.UniformMatrix4f(eu),u_overlay:new x.Uniform1i(eu),u_overlay_scale:new x.Uniform1f(eu)}),clippingMask:eu=>({u_matrix:new x.UniformMatrix4f(eu)}),heatmap:eu=>({u_extrude_scale:new x.Uniform1f(eu),u_intensity:new x.Uniform1f(eu),u_matrix:new x.UniformMatrix4f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_up_dir:new x.Uniform3f(eu)}),heatmapTexture:eu=>({u_image:new x.Uniform1i(eu),u_color_ramp:new x.Uniform1i(eu),u_opacity:new x.Uniform1f(eu)}),hillshade:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_image:new x.Uniform1i(eu),u_latrange:new x.Uniform2f(eu),u_light:new x.Uniform2f(eu),u_shadow:new x.UniformColor(eu),u_highlight:new x.UniformColor(eu),u_accent:new x.UniformColor(eu)}),hillshadePrepare:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_image:new x.Uniform1i(eu),u_dimension:new x.Uniform2f(eu),u_zoom:new x.Uniform1f(eu),u_unpack:new x.Uniform4f(eu)}),line:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_pixels_to_tile_units:new x.UniformMatrix2f(eu),u_device_pixel_ratio:new x.Uniform1f(eu),u_units_to_pixels:new x.Uniform2f(eu),u_dash_image:new x.Uniform1i(eu),u_gradient_image:new x.Uniform1i(eu),u_image_height:new x.Uniform1f(eu),u_texsize:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu),u_alpha_discard_threshold:new x.Uniform1f(eu),u_trim_offset:new x.Uniform2f(eu)}),linePattern:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_texsize:new x.Uniform2f(eu),u_pixels_to_tile_units:new x.UniformMatrix2f(eu),u_device_pixel_ratio:new x.Uniform1f(eu),u_image:new x.Uniform1i(eu),u_units_to_pixels:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu),u_alpha_discard_threshold:new x.Uniform1f(eu)}),raster:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_tl_parent:new x.Uniform2f(eu),u_scale_parent:new x.Uniform1f(eu),u_fade_t:new x.Uniform1f(eu),u_opacity:new x.Uniform1f(eu),u_image0:new x.Uniform1i(eu),u_image1:new x.Uniform1i(eu),u_brightness_low:new x.Uniform1f(eu),u_brightness_high:new x.Uniform1f(eu),u_saturation_factor:new x.Uniform1f(eu),u_contrast_factor:new x.Uniform1f(eu),u_spin_weights:new x.Uniform3f(eu),u_perspective_transform:new x.Uniform2f(eu)}),symbolIcon:eu=>({u_is_size_zoom_constant:new x.Uniform1i(eu),u_is_size_feature_constant:new x.Uniform1i(eu),u_size_t:new x.Uniform1f(eu),u_size:new x.Uniform1f(eu),u_camera_to_center_distance:new x.Uniform1f(eu),u_rotate_symbol:new x.Uniform1i(eu),u_aspect_ratio:new x.Uniform1f(eu),u_fade_change:new x.Uniform1f(eu),u_matrix:new x.UniformMatrix4f(eu),u_label_plane_matrix:new x.UniformMatrix4f(eu),u_coord_matrix:new x.UniformMatrix4f(eu),u_is_text:new x.Uniform1i(eu),u_pitch_with_map:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_camera_forward:new x.Uniform3f(eu),u_tile_matrix:new x.UniformMatrix4f(eu),u_up_vector:new x.Uniform3f(eu),u_ecef_origin:new x.Uniform3f(eu),u_texture:new x.Uniform1i(eu)}),symbolSDF:eu=>({u_is_size_zoom_constant:new x.Uniform1i(eu),u_is_size_feature_constant:new x.Uniform1i(eu),u_size_t:new x.Uniform1f(eu),u_size:new x.Uniform1f(eu),u_camera_to_center_distance:new x.Uniform1f(eu),u_rotate_symbol:new x.Uniform1i(eu),u_aspect_ratio:new x.Uniform1f(eu),u_fade_change:new x.Uniform1f(eu),u_matrix:new x.UniformMatrix4f(eu),u_label_plane_matrix:new x.UniformMatrix4f(eu),u_coord_matrix:new x.UniformMatrix4f(eu),u_is_text:new x.Uniform1i(eu),u_pitch_with_map:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_texture:new x.Uniform1i(eu),u_gamma_scale:new x.Uniform1f(eu),u_device_pixel_ratio:new x.Uniform1f(eu),u_tile_id:new x.Uniform3f(eu),u_zoom_transition:new x.Uniform1f(eu),u_inv_rot_matrix:new x.UniformMatrix4f(eu),u_merc_center:new x.Uniform2f(eu),u_camera_forward:new x.Uniform3f(eu),u_tile_matrix:new x.UniformMatrix4f(eu),u_up_vector:new x.Uniform3f(eu),u_ecef_origin:new x.Uniform3f(eu),u_is_halo:new x.Uniform1i(eu)}),symbolTextAndIcon:eu=>({u_is_size_zoom_constant:new x.Uniform1i(eu),u_is_size_feature_constant:new x.Uniform1i(eu),u_size_t:new x.Uniform1f(eu),u_size:new x.Uniform1f(eu),u_camera_to_center_distance:new x.Uniform1f(eu),u_rotate_symbol:new x.Uniform1i(eu),u_aspect_ratio:new x.Uniform1f(eu),u_fade_change:new x.Uniform1f(eu),u_matrix:new x.UniformMatrix4f(eu),u_label_plane_matrix:new x.UniformMatrix4f(eu),u_coord_matrix:new x.UniformMatrix4f(eu),u_is_text:new x.Uniform1i(eu),u_pitch_with_map:new x.Uniform1i(eu),u_texsize:new x.Uniform2f(eu),u_texsize_icon:new x.Uniform2f(eu),u_texture:new x.Uniform1i(eu),u_texture_icon:new x.Uniform1i(eu),u_gamma_scale:new x.Uniform1f(eu),u_device_pixel_ratio:new x.Uniform1f(eu),u_is_halo:new x.Uniform1i(eu)}
60),background:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_opacity:new x.Uniform1f(eu),u_color:new x.UniformColor(eu)}),backgroundPattern:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_opacity:new x.Uniform1f(eu),u_image:new x.Uniform1i(eu),u_pattern_tl:new x.Uniform2f(eu),u_pattern_br:new x.Uniform2f(eu),u_texsize:new x.Uniform2f(eu),u_pattern_size:new x.Uniform2f(eu),u_pixel_coord_upper:new x.Uniform2f(eu),u_pixel_coord_lower:new x.Uniform2f(eu),u_tile_units_to_pixels:new x.Uniform1f(eu)}),terrainRaster:xi,terrainDepth:xi,skybox:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_sun_direction:new x.Uniform3f(eu),u_cubemap:new x.Uniform1i(eu),u_opacity:new x.Uniform1f(eu),u_temporal_offset:new x.Uniform1f(eu)}),skyboxGradient:eu=>({u_matrix:new x.UniformMatrix4f(eu),u_color_ramp:new x.Uniform1i(eu),u_center_direction:new x.Uniform3f(eu),u_radius:new x.Uniform1f(eu),u_opacity:new x.Uniform1f(eu),u_temporal_offset:new x.Uniform1f(eu)}),skyboxCapture:eu=>({u_matrix_3f:new x.UniformMatrix3f(eu),u_sun_direction:new x.Uniform3f(eu),u_sun_intensity:new x.Uniform1f(eu),u_color_tint_r:new x.Uniform4f(eu),u_color_tint_m:new x.Uniform4f(eu),u_luminance:new x.Uniform1f(eu)}),globeRaster:eu=>({u_proj_matrix:new x.UniformMatrix4f(eu),u_globe_matrix:new x.UniformMatrix4f(eu),u_normalize_matrix:new x.UniformMatrix4f(eu),u_merc_matrix:new x.UniformMatrix4f(eu),u_zoom_transition:new x.Uniform1f(eu),u_merc_center:new x.Uniform2f(eu),u_image0:new x.Uniform1i(eu),u_grid_matrix:new x.UniformMatrix3f(eu),u_skirt_height:new x.Uniform1f(eu),u_frustum_tl:new x.Uniform3f(eu),u_frustum_tr:new x.Uniform3f(eu),u_frustum_br:new x.Uniform3f(eu),u_frustum_bl:new x.Uniform3f(eu),u_globe_pos:new x.Uniform3f(eu),u_globe_radius:new x.Uniform1f(eu),u_viewport:new x.Uniform2f(eu)}),globeAtmosphere:eu=>({u_frustum_tl:new x.Uniform3f(eu),u_frustum_tr:new x.Uniform3f(eu),u_frustum_br:new x.Uniform3f(eu),u_frustum_bl:new x.Uniform3f(eu),u_horizon:new x.Uniform1f(eu),u_transition:new x.Uniform1f(eu),u_fadeout_range:new x.Uniform1f(eu),u_color:new x.Uniform4f(eu),u_high_color:new x.Uniform4f(eu),u_space_color:new x.Uniform4f(eu),u_star_intensity:new x.Uniform1f(eu),u_star_density:new x.Uniform1f(eu),u_star_size:new x.Uniform1f(eu),u_temporal_offset:new x.Uniform1f(eu),u_horizon_angle:new x.Uniform1f(eu),u_rotation_matrix:new x.UniformMatrix4f(eu)})};function ho(eu,ef,em,eg,ex,ev,eb){let ew=eu.context,eT=ew.gl,eE=eu.transform,eS=eu.useProgram("collisionBox"),eM=[],eI=0,eA=0;for(let e_=0;e_<eg.length;e_++){let eC=eg[e_],ez=ef.getTile(eC),eD=ez.getBucket(em);if(!eD)continue;let ek=function(x,eu,ef){if(eu.projection.name===ef.projection.name)return x.projMatrix;let em=ef.clone();return em.setProjection(eu.projection),xt(em,eu.getProjection(),x)}(eC,eD,eE),eP=ek;0===ex[0]&&0===ex[1]||(eP=eu.translatePosMatrix(ek,ez,ex,ev));let eL=eb?eD.textCollisionBox:eD.iconCollisionBox,eR=eD.collisionCircleArray;if(eR.length>0){let eu=x.create(),ef=eP;x.mul(eu,eD.placementInvProjMatrix,eE.glCoordMatrix),x.mul(eu,eu,eD.placementViewportMatrix),eM.push({circleArray:eR,circleOffset:eA,transform:ef,invTransform:eu,projection:eD.getProjection()}),eI+=eR.length/4,eA=eI}eL&&(eu.terrain&&eu.terrain.setupElevationDraw(ez,eS),eS.draw(ew,eT.LINES,x.DepthMode.disabled,x.StencilMode.disabled,eu.colorModeForRenderPass(),x.CullFaceMode.disabled,Wi(eP,eE,ez,eD.getProjection()),em.id,eL.layoutVertexBuffer,eL.indexBuffer,eL.segments,null,eE.zoom,null,[eL.collisionVertexBuffer,eL.collisionVertexBufferExt]))}if(!eb||!eM.length)return;let eC=eu.useProgram("collisionCircle"),ez=new x.StructArrayLayout2f1f2i16;ez.resize(4*eI),ez._trim();let eD=0;for(let x of eM)for(let eu=0;eu<x.circleArray.length/4;eu++){let ef=4*eu,em=x.circleArray[ef+0],e_=x.circleArray[ef+1],eg=x.circleArray[ef+2],ex=x.circleArray[ef+3];ez.emplace(eD++,em,e_,eg,ex,0),ez.emplace(eD++,em,e_,eg,ex,1),ez.emplace(eD++,em,e_,eg,ex,2),ez.emplace(eD++,em,e_,eg,ex,3)}(!e_||e_.length<2*eI)&&(e_=function(eu){let ef=2*eu,em=new x.StructArrayLayout3ui6;em.resize(ef),em._trim();for(let x=0;x<ef;x++){let eu=6*x;em.uint16[eu+0]=4*x+0,em.uint16[eu+1]=4*x+1,em.uint16[eu+2]=4*x+2,em.uint16[eu+3]=4*x+2,em.uint16[eu+4]=4*x+3,em.uint16[eu+5]=4*x+0}return em}(eI));let ek=ew.createIndexBuffer(e_,!0),eP=ew.createVertexBuffer(ez,x.collisionCircleLayout.members,!0);for(let ef of eM){let e_={u_matrix:ef.transform,u_inv_matrix:ef.invTransform,u_camera_to_center_distance:eE.getCameraToCenterDistance(ef.projection),u_viewport_size:[eE.width,eE.height]};eC.draw(ew,eT.TRIANGLES,x.DepthMode.disabled,x.StencilMode.disabled,eu.colorModeForRenderPass(),x.CullFaceMode.disabled,e_,em.id,eP,ek,x.SegmentVector.simpleSegment(0,2*ef.circleOffset,ef.cir
60cleArray.length,ef.circleArray.length/2),null,eE.zoom)}eP.destroy(),ek.destroy()}let e2=x.create();function fo(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE,eS){let eM=eu.context,eI=eM.gl,eA=eu.transform,eC="map"===eb,ez="map"===ew,eD=eC&&"point"!==em.layout.get("symbol-placement"),ek=eC&&!ez&&!eD,eP=void 0!==em.layout.get("symbol-sort-key").constantOr(1),eL=!1,eR=eu.depthModeForSublayer(0,x.DepthMode.ReadOnly),eB=[x.mercatorXfromLng(eA.center.lng),x.mercatorYfromLat(eA.center.lat)],eO=em.layout.get("text-variable-anchor"),eF="globe"===eA.projection.name,eU=[],eV=[0,-1,0],eN=eV;for(let eb of((eF||eA.mercatorFromTransition)&&!eC&&(eN=function(eu){let ef=eu._camera.getWorldToCamera(eu.worldSize,1),em=x.multiply([],ef,eu.globeMatrix);x.invert(em,em);let e_=[0,0,0],eg=[0,1,0,0];return x.transformMat4$1(eg,eg,em),e_[0]=eg[0],e_[1]=eg[1],e_[2]=eg[2],x.normalize(e_,e_),e_}(eA)),e_)){let e_;let ew=ef.getTile(eb),eE=ew.getBucket(em);if(!eE||"mercator"===eE.projection.name&&eF)continue;let eS=eg?eE.text:eE.icon;if(!eS||eE.fullyClipped||!eS.segments.get().length)continue;let eM=eS.programConfigurations.get(em.id),eR=eg||eE.sdfIcons,ej=eg?eE.textSizeData:eE.iconSizeData,eG=ez||0!==eA.pitch,eZ=x.evaluateSizeForZoom(ej,eA.zoom),e$,eq,eW,eX,eH=[0,0],eY=null;if(eg){if(eq=ew.glyphAtlasTexture,eW=eI.LINEAR,e$=ew.glyphAtlasTexture.size,eE.iconsInText){eH=ew.imageAtlasTexture.size,eY=ew.imageAtlasTexture;let x="composite"===ej.kind||"camera"===ej.kind;eX=eG||eu.options.rotating||eu.options.zooming||x?eI.LINEAR:eI.NEAREST}}else{let x=1!==em.layout.get("icon-size").constantOr(0)||eE.iconsNeedLinear;eq=ew.imageAtlasTexture,eW=eR||eu.options.rotating||eu.options.zooming||x||eG?eI.LINEAR:eI.NEAREST,e$=ew.imageAtlasTexture.size}let eJ="globe"===eE.projection.name,eK=eJ?eN:eV,eQ=eJ?x.globeToMercatorTransition(eA.zoom):0,e0=bt(eb,eE.getProjection(),eA),e1=eA.calculatePixelsToTileUnitsMatrix(ew),e3=it(e0,ew.tileID.canonical,ez,eC,eA,eE.getProjection(),e1),e5=eu.terrain&&ez&&eD?x.invert(x.create(),e3):e2,e4=rt(e0,ew.tileID.canonical,ez,eC,eA,eE.getProjection(),e1),e6=eO&&eE.hasTextData(),e8="none"!==em.layout.get("icon-text-fit")&&e6&&eE.hasIconData();if(eD){let ef=eA.elevation,em=ef?ef.getAtTileOffsetFunc(eb,eA.center.lat,eA.worldSize,eE.getProjection()):null,e_=ot(e0,ew.tileID.canonical,ez,eC,eA,eE.getProjection(),e1);!function(eu,ef,em,e_,eg,ex,ev,eb,ew,eT){let eE=em.transform,eS=e_?eu.textSizeData:eu.iconSizeData,eM=x.evaluateSizeForZoom(eS,em.transform.zoom),eI="globe"===eE.projection.name,eA=[256/em.width*2+1,256/em.height*2+1],eC=e_?eu.text.dynamicLayoutVertexArray:eu.icon.dynamicLayoutVertexArray;eC.clear();let ez=null;eI&&(ez=e_?eu.text.globeExtVertexArray:eu.icon.globeExtVertexArray);let eD=eu.lineVertexArray,ek=e_?eu.text.placedSymbolArray:eu.icon.placedSymbolArray,eP=em.transform.width/em.transform.height,eL,eR=!1;for(let e_=0;e_<ek.length;e_++){let eI=ek.get(e_),{numGlyphs:eB,writingMode:eO}=eI;if(eO!==x.WritingMode.vertical||eR||eL===x.WritingMode.horizontal||(eR=!0),eL=eO,(eI.hidden||eO===x.WritingMode.vertical)&&!eR){mt(eB,eC);continue}eR=!1;let eF=new x.pointGeometry(eI.tileAnchorX,eI.tileAnchorY),{x:eU,y:eV,z:eN}=eE.projection.projectTilePoint(eF.x,eF.y,eT.canonical);if(ew){let[x,eu,ef]=ew(eF);eU+=x,eV+=eu,eN+=ef}let ej=[eU,eV,eN,1];if(x.transformMat4$1(ej,ej,ef),!function(x,eu){let ef=x[0]/x[3],em=x[1]/x[3];return ef>=-eu[0]&&ef<=eu[0]&&em>=-eu[1]&&em<=eu[1]}(ej,eA)){mt(eB,eC);continue}let eG=st(em.transform.cameraToCenterDistance,ej[3]),eZ=x.evaluateSizeForFeature(eS,eM,eI),e$=ev?eZ/eG:eZ*eG,eq=nt(eU,eV,eN,eg);if(eq[3]<=0){mt(eB,eC);continue}let eW={},eX=ev?null:ew,eH=ut(eI,e$,!1,eb,ef,eg,ex,eu.glyphOffsetArray,eD,eC,ez,eq,eF,eW,eP,eX,eE.projection,eT,ev);eR=eH.useVertical,eX&&eH.needsFlipping&&(eW={}),(eH.notEnoughRoom||eR||eH.needsFlipping&&ut(eI,e$,!0,eb,ef,eg,ex,eu.glyphOffsetArray,eD,eC,ez,eq,eF,eW,eP,eX,eE.projection,eT,ev).notEnoughRoom)&&mt(eB,eC)}e_?(eu.text.dynamicLayoutVertexBuffer.updateData(eC),ez&&eu.text.globeExtVertexBuffer.updateData(ez)):(eu.icon.dynamicLayoutVertexBuffer.updateData(eC),ez&&eu.icon.globeExtVertexBuffer.updateData(ez))}(eE,e0,eu,eg,e_,e4,ez,eT,em,eb)}let e9=eD||eg&&eO||e8,e7=eu.translatePosMatrix(e0,ew,ex,ev),tt=e9?e2:e3,tn=eu.translatePosMatrix(e4,ew,ex,ev,!0),ta=eE.getProjection().createInversionMatrix(eA,eb.canonical),th=[];eu.terrainRenderModeElevated()&&ez&&th.push("PITCH_WITH_MAP_TERRAIN"),eJ&&th.push("PROJECTION_GLOBE_VIEW"),e9&&th.push("PROJECTED_POS_ON_VIEWPORT");let tu=eR&&0!==em.paint.get(eg?"text-halo-width":"icon-halo-width").constantOr(1);e_=eR?eE.iconsInText?no(ej.kind,eZ,ek,ez,eu,e7,tt,tn,e$,eH,eb,eQ,eB,ta,eK,eE.getProjection()):ro(ej.kind,eZ,ek,ez,eu,e7,tt,tn,eg,e$,!0,eb,eQ,eB,ta,eK,eE.getProjection()):oo(e
60j.kind,eZ,ek,ez,eu,e7,tt,tn,eg,e$,eb,eQ,eB,ta,eK,eE.getProjection());let tc={program:eu.useProgram(eE.iconsInText&&eg?"symbolTextAndIcon":eR?"symbolSDF":"symbolIcon",eM,th),buffers:eS,uniformValues:e_,atlasTexture:eq,atlasTextureIcon:eY,atlasInterpolation:eW,atlasInterpolationIcon:eX,isSDF:eR,hasHalo:tu,tile:ew,labelPlaneMatrixInv:e5};if(eP&&eE.canOverlap){eL=!0;let eu=eS.segments.get();for(let ef of eu)eU.push({segments:new x.SegmentVector([ef]),sortKey:ef.sortKey,state:tc})}else eU.push({segments:eS.segments,sortKey:0,state:tc})}for(let x of(eL&&eU.sort((x,eu)=>x.sortKey-eu.sortKey),eU)){let ef=x.state;if(eu.terrain&&eu.terrain.setupElevationDraw(ef.tile,ef.program,{useDepthForOcclusion:!eF,labelPlaneMatrixInv:ef.labelPlaneMatrixInv}),eM.activeTexture.set(eI.TEXTURE0),ef.atlasTexture.bind(ef.atlasInterpolation,eI.CLAMP_TO_EDGE),ef.atlasTextureIcon&&(eM.activeTexture.set(eI.TEXTURE1),ef.atlasTextureIcon&&ef.atlasTextureIcon.bind(ef.atlasInterpolationIcon,eI.CLAMP_TO_EDGE)),ef.isSDF){let e_=ef.uniformValues;ef.hasHalo&&(e_.u_is_halo=1,go(ef.buffers,x.segments,em,eu,ef.program,eR,eE,eS,e_)),e_.u_is_halo=0}go(ef.buffers,x.segments,em,eu,ef.program,eR,eE,eS,ef.uniformValues)}}function go(eu,ef,em,e_,eg,ex,ev,eb,ew){let eT=e_.context,eE=[eu.dynamicLayoutVertexBuffer,eu.opacityVertexBuffer,eu.globeExtVertexBuffer];eg.draw(eT,eT.gl.TRIANGLES,ex,ev,eb,x.CullFaceMode.disabled,ew,em.id,eu.layoutVertexBuffer,eu.indexBuffer,ef,em.paint,e_.transform.zoom,eu.programConfigurations.get(em.id),eE)}function vo(eu,ef,em,e_,eg,ex,ev){let eb,ew,eT,eE,eS;let eM=eu.context.gl,eI=em.paint.get("fill-pattern"),eA=eI&&eI.constantOr(1);for(let eC of(ev?(ew=eA&&!em.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",eb=eM.LINES):(ew=eA?"fillPattern":"fill",eb=eM.TRIANGLES),e_)){let e_=ef.getTile(eC);if(eA&&!e_.patternsLoaded())continue;let ez=e_.getBucket(em);if(!ez)continue;eu.prepareDrawTile();let eD=ez.programConfigurations.get(em.id),ek=eu.useProgram(ew,eD);eA&&(eu.context.activeTexture.set(eM.TEXTURE0),e_.imageAtlasTexture.bind(eM.LINEAR,eM.CLAMP_TO_EDGE),eD.updatePaintBuffers());let eP=eI.constantOr(null);if(eP&&e_.imageAtlas){let x=e_.imageAtlas.patternPositions[eP.toString()];x&&eD.setConstantPatternPositions(x)}let eL=eu.translatePosMatrix(eC.projMatrix,e_,em.paint.get("fill-translate"),em.paint.get("fill-translate-anchor"));if(ev){eE=ez.indexBuffer2,eS=ez.segments2;let x=eu.terrain&&eu.terrain.renderingToTexture?eu.terrain.drapeBufferSize:[eM.drawingBufferWidth,eM.drawingBufferHeight];eT="fillOutlinePattern"===ew&&eA?Gi(eL,eu,e_,x):Ni(eL,x)}else eE=ez.indexBuffer,eS=ez.segments,eT=eA?Ui(eL,eu,e_):Fi(eL);eu.prepareDrawProgram(eu.context,ek,eC.toUnwrapped()),ek.draw(eu.context,eb,eg,eu.stencilModeForClipping(eC),ex,x.CullFaceMode.disabled,eT,em.id,ez.layoutVertexBuffer,eE,eS,em.paint,eu.transform.zoom,eD)}}function xo(eu,ef,em,e_,eg,ex,ev){let eb=eu.context,ew=eb.gl,eT=eu.transform,eE=em.paint.get("fill-extrusion-pattern"),eS=eE.constantOr(1),eM=em.paint.get("fill-extrusion-opacity"),eI=[em.paint.get("fill-extrusion-ambient-occlusion-intensity"),em.paint.get("fill-extrusion-ambient-occlusion-radius")],eA=em.layout.get("fill-extrusion-edge-radius"),eC="globe"===eT.projection.name?x.fillExtrusionHeightLift():0,ez="globe"===eT.projection.name,eD=ez?x.globeToMercatorTransition(eT.zoom):0,ek=[x.mercatorXfromLng(eT.center.lng),x.mercatorYfromLat(eT.center.lat)],eP=[];for(let eL of(ez&&eP.push("PROJECTION_GLOBE_VIEW"),eI[0]>0&&eP.push("FAUX_AO"),e_)){let e_=ef.getTile(eL),eR=e_.getBucket(em);if(!eR||eR.projection.name!==eT.projection.name)continue;let eB=eR.programConfigurations.get(em.id),eO=eu.useProgram(eS?"fillExtrusionPattern":"fillExtrusion",eB,eP);if(eu.terrain){let eg=eu.terrain;if(eu.style.terrainSetForDrapingOnly())eg.setupElevationDraw(e_,eO,{useMeterToDem:!0});else{if(!eR.enableTerrain)continue;if(eg.setupElevationDraw(e_,eO,{useMeterToDem:!0}),function(eu,ef,em,e_,eg,ex){let ev,eb,ew;let eT=[eu=>{let ef=eu.canonical.x-1,em=eu.wrap;return ef<0&&(ef=(1<<eu.canonical.z)-1,em--),new x.OverscaledTileID(eu.overscaledZ,em,eu.canonical.z,ef,eu.canonical.y)},eu=>{let ef=eu.canonical.x+1,em=eu.wrap;return ef===1<<eu.canonical.z&&(ef=0,em++),new x.OverscaledTileID(eu.overscaledZ,em,eu.canonical.z,ef,eu.canonical.y)},eu=>new x.OverscaledTileID(eu.overscaledZ,eu.wrap,eu.canonical.z,eu.canonical.x,(0===eu.canonical.y?1<<eu.canonical.z:eu.canonical.y)-1),eu=>new x.OverscaledTileID(eu.overscaledZ,eu.wrap,eu.canonical.z,eu.canonical.x,eu.canonical.y===(1<<eu.canonical.z)-1?0:eu.canonical.y+1)],l=x=>{let eu=ef.getSource().minzoom,o=x=>{let eu=ef.getTileByID(x);if(eu&&eu.hasData())return eu.getBucket(eg)};
60for(let ef of[0,-1,1]){if(x.overscaledZ+ef<eu)continue;let em=o(x.calculateScaledKey(x.overscaledZ+ef));if(em)return em}},eE=[0,0,0],h=(eu,ef)=>(eE[0]=Math.min(eu.min.y,ef.min.y),eE[1]=Math.max(eu.max.y,ef.max.y),eE[2]=x.EXTENT-ef.min.x>eu.max.x?ef.min.x-x.EXTENT:eu.max.x,eE),u=(eu,ef)=>(eE[0]=Math.min(eu.min.x,ef.min.x),eE[1]=Math.max(eu.max.x,ef.max.x),eE[2]=x.EXTENT-ef.min.y>eu.max.y?ef.min.y-x.EXTENT:eu.max.y,eE),eS=[(x,eu)=>h(x,eu),(x,eu)=>h(eu,x),(x,eu)=>u(x,eu),(x,eu)=>u(eu,x)],eM=new x.pointGeometry(0,0),g=(eu,ef,e_,eg,eT)=>{let eE=[[eg?e_:eu,eg?eu:e_,0],[eg?e_:ef,eg?ef:e_,0]],eS=eT<0?x.EXTENT+eT:eT,eM=[eg?eS:(eu+ef)/2,eg?(eu+ef)/2:eS,0];return 0===e_&&eT<0||0!==e_&&eT>0?ex.getForTilePoints(ew,[eM],!0,eb):eE.push(eM),ex.getForTilePoints(em,eE,!0,ev),Math.max(eE[0][2],eE[1][2],eM[2])/ex.exaggeration()};for(let eu=0;eu<4;eu++){let ef=(eu<2?1:5)-eu,eg=e_.borders[eu];if(0===eg.length)continue;let eE=ew=eT[eu](em),eI=l(eE);if(!(eI&&eI instanceof x.FillExtrusionBucket&&eI.enableTerrain)||e_.borderDoneWithNeighborZ[eu]===eI.canonical.z&&eI.borderDoneWithNeighborZ[ef]===e_.canonical.z||!(eb=ex.findDEMTileFor(eE))||!eb.dem)continue;if(!ev){let x=ex.findDEMTileFor(em);if(!x||!x.dem)return;ev=x}let eA=eI.borders[ef],eC=0,ez=eI.borderDoneWithNeighborZ[ef]!==e_.canonical.z;if(e_.canonical.z===eI.canonical.z){for(let em=0;em<eg.length;em++){let ex;let ev=e_.featuresOnBorder[eg[em]],eb=ev.borders[eu];for(;eC<eA.length&&!((ex=eI.featuresOnBorder[eA[eC]]).borders[ef][1]>eb[0]+3);)ez&&eI.encodeCentroid(void 0,ex,!1),eC++;if(ex&&eC<eA.length){let em=eC,eg=0;for(;!(ex.borders[ef][0]>eb[1]-3)&&(eg++,++eC!==eA.length);)ex=eI.featuresOnBorder[eA[eC]];if(ex=eI.featuresOnBorder[eA[em]],ev.intersectsCount()>1||ex.intersectsCount()>1||1!==eg){1!==eg&&(eC=em),e_.encodeCentroid(void 0,ev,!1),ez&&eI.encodeCentroid(void 0,ex,!1);continue}let ew=eS[eu](ev,ex),eT=eu%2?x.EXTENT-1:0;eM.x=g(ew[0],Math.min(x.EXTENT-1,ew[1]),eT,eu<2,ew[2]),eM.y=0,e_.encodeCentroid(eM,ev,!1),ez&&eI.encodeCentroid(eM,ex,!1)}else e_.encodeCentroid(void 0,ev,!1)}e_.borderDoneWithNeighborZ[eu]=eI.canonical.z,e_.needsCentroidUpdate=!0,ez&&(eI.borderDoneWithNeighborZ[ef]=e_.canonical.z,eI.needsCentroidUpdate=!0)}else{for(let x of eg)e_.encodeCentroid(void 0,e_.featuresOnBorder[x],!1);if(ez){for(let x of eA)eI.encodeCentroid(void 0,eI.featuresOnBorder[x],!1);eI.borderDoneWithNeighborZ[ef]=e_.canonical.z,eI.needsCentroidUpdate=!0}e_.borderDoneWithNeighborZ[eu]=eI.canonical.z,e_.needsCentroidUpdate=!0}}(e_.needsCentroidUpdate||!e_.centroidVertexBuffer&&0!==e_.centroidVertexArray.length)&&e_.uploadCentroid(eu)}(eb,ef,eL,eR,em,eg),!eR.centroidVertexBuffer){let x=eO.attributes.a_centroid_pos;void 0!==x&&ew.vertexAttrib2f(x,0,0)}}}eS&&(eu.context.activeTexture.set(ew.TEXTURE0),e_.imageAtlasTexture.bind(ew.LINEAR,ew.CLAMP_TO_EDGE),eB.updatePaintBuffers());let eF=eE.constantOr(null);if(eF&&e_.imageAtlas){let x=e_.imageAtlas.patternPositions[eF.toString()];x&&eB.setConstantPatternPositions(x)}let eU=eu.translatePosMatrix(eL.projMatrix,e_,em.paint.get("fill-extrusion-translate"),em.paint.get("fill-extrusion-translate-anchor")),eV=eT.projection.createInversionMatrix(eT,eL.canonical),eN=em.paint.get("fill-extrusion-vertical-gradient"),ej=eS?ki(eU,eu,eN,eM,eI,eA,eL,e_,eC,eD,ek,eV):Bi(eU,eu,eN,eM,eI,eA,eL,eC,eD,ek,eV);eu.prepareDrawProgram(eb,eO,eL.toUnwrapped());let eG=[];eu.terrain&&eG.push(eR.centroidVertexBuffer),ez&&eG.push(eR.layoutVertexExtBuffer),eO.draw(eb,eb.gl.TRIANGLES,eg,ex,ev,x.CullFaceMode.backCCW,ej,em.id,eR.layoutVertexBuffer,eR.indexBuffer,eR.segments,em.paint,eu.transform.zoom,eB,eG)}}let e3=new x.Color(1,0,0,1),e5=new x.Color(0,1,0,1),e4=new x.Color(0,0,1,1),e6=new x.Color(1,0,1,1),e8=new x.Color(0,1,1,1);function Io(x,eu,ef,em){Do(x,0,eu+ef/2,x.transform.width,ef,em)}function So(x,eu,ef,em){Do(x,eu-ef/2,0,ef,x.transform.height,em)}function Do(eu,ef,em,e_,eg,ex){let ev=eu.context,eb=ev.gl;eb.enable(eb.SCISSOR_TEST),eb.scissor(ef*x.exported.devicePixelRatio,em*x.exported.devicePixelRatio,e_*x.exported.devicePixelRatio,eg*x.exported.devicePixelRatio),ev.clear({color:ex}),eb.disable(eb.SCISSOR_TEST)}let e9=x.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:e7}=e9;function zo(x,eu,ef,em){x.emplaceBack(eu,ef,em)}let Po=class Po{constructor(eu){this.vertexArray=new x.StructArrayLayout3f12,this.indices=new x.StructArrayLayout3ui6,zo(this.vertexArray,-1,-1,1),zo(this.vertexArray,1,-1,1),zo(this.vertexArray,-1,1,1),zo(this.vertexArray,1,1,1),zo(this.vertexArray,-1,-1,-1),zo(this.vertexArray,1,-1,-1),zo(this.vertexArray,-1,1,-1),zo(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=eu.createVertexBuffer(this.vertexArray,e7),this.indexBuffer=eu.createIndexBuffer(this.indices),this.segment=x.SegmentVector.simpleSegment(0,0,36,12)}};function Ro(eu,ef,em,e_,eg,ex){let ev=eu.gl,eb=ef.paint.get("sky-atmosphere-color"),ew=ef.paint.get("sky-atmosphere-halo-color"),eT=ef.paint.get("sky-atmosphere-sun-intensity"),eE={u_matrix_3f:x.fromMat4(x.create$1(),e_),u_sun_direction:eg,u_sun_intensity:eT,u_color_tint_r:[eb.r,eb.g,eb.b,eb.a
60],u_color_tint_m:[ew.r,ew.g,ew.b,ew.a],u_luminance:5e-5};ev.framebufferTexture2D(ev.FRAMEBUFFER,ev.COLOR_ATTACHMENT0,ev.TEXTURE_CUBE_MAP_POSITIVE_X+ex,ef.skyboxTexture,0),em.draw(eu,ev.TRIANGLES,x.DepthMode.disabled,x.StencilMode.disabled,x.ColorMode.unblended,x.CullFaceMode.frontCW,eE,"skyboxCapture",ef.skyboxGeometry.vertexBuffer,ef.skyboxGeometry.indexBuffer,ef.skyboxGeometry.segment)}let tt=x.createLayout([{type:"Float32",name:"a_pos",components:3},{type:"Float32",name:"a_uv",components:2}]);let Bo=class Bo{constructor(eu){let ef=new x.StructArrayLayout5f20;ef.emplaceBack(-1,1,1,0,0),ef.emplaceBack(1,1,1,1,0),ef.emplaceBack(1,-1,1,1,1),ef.emplaceBack(-1,-1,1,0,1);let em=new x.StructArrayLayout3ui6;em.emplaceBack(0,1,2),em.emplaceBack(2,3,0),this.vertexBuffer=eu.createVertexBuffer(ef,tt.members),this.indexBuffer=eu.createIndexBuffer(em),this.segments=x.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}};let tn={symbol:function(eu,ef,em,e_,eg){if("translucent"!==eu.renderPass)return;let ex=x.StencilMode.disabled,ev=eu.colorModeForRenderPass();em.layout.get("text-variable-anchor")&&function(eu,ef,em,e_,eg,ex,ev){let eb=ef.transform,ew="map"===eg,eT="map"===ex;for(let ef of eu){let eu=e_.getTile(ef),eg=eu.getBucket(em);if(!eg||!eg.text||!eg.text.segments.get().length)continue;let ex=x.evaluateSizeForZoom(eg.textSizeData,eb.zoom),eE=bt(ef,eg.getProjection(),eb),eS=eb.calculatePixelsToTileUnitsMatrix(eu),eM=it(eE,eu.tileID.canonical,eT,ew,eb,eg.getProjection(),eS),eI="none"!==em.layout.get("icon-text-fit")&&eg.hasIconData();if(ex){let em=Math.pow(2,eb.zoom-eu.tileID.overscaledZ);(function(eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE){let eS=eu.text.placedSymbolArray,eM=eu.text.dynamicLayoutVertexArray,eI=eu.icon.dynamicLayoutVertexArray,eA={},eC=eu.getProjection(),ez=bt(eb,eC,ex),eD=ex.elevation,ek=eC.upVectorScale(eb.canonical,ex.center.lat,ex.worldSize).metersToTile;eM.clear();for(let eI=0;eI<eS.length;eI++){let eP=eS.get(eI),{tileAnchorX:eL,tileAnchorY:eR,numGlyphs:eB}=eP,eO=eu.allowVerticalPlacement&&!eP.placedOrientation,eF=eP.hidden||!eP.crossTileID||eO?null:e_[eP.crossTileID];if(eF){let e_=0,eS=0,eI=0;if(eD){let x=eD?eD.getAtTileOffset(eb,eL,eR):0,[eu,ef,em]=eC.upVector(eb.canonical,eL,eR);e_=x*eu*ek,eS=x*ef*ek,eI=x*em*ek}let[eO,eU,eV,eN]=nt(eP.projectedAnchorX+e_,eP.projectedAnchorY+eS,eP.projectedAnchorZ+eI,em?ez:ev),ej=st(ex.getCameraToCenterDistance(eC),eN),eG=eg.evaluateSizeForFeature(eu.textSizeData,eT,eP)*ej/x.ONE_EM;em&&(eG*=eu.tilePixelRatio/ew);let eZ=function({width:eu,height:ef,anchor:em,textOffset:e_,textScale:eg},ex){let{horizontalAlign:ev,verticalAlign:eb}=x.getAnchorAlignment(em),ew=x.evaluateVariableOffset(em,e_);return new x.pointGeometry((-(ev-.5)*eu/eg+ew[0])*ex,(-(eb-.5)*ef/eg+ew[1])*ex)}(eF,eG);em?({x:eO,y:eU,z:eV}=eC.projectTilePoint(eL+eZ.x,eR+eZ.y,eb.canonical),[eO,eU,eV]=nt(eO+e_,eU+eS,eV+eI,ev)):(ef&&eZ._rotate(-ex.angle),eO+=eZ.x,eU+=eZ.y,eV=0);let e$=eu.allowVerticalPlacement&&eP.placedOrientation===x.WritingMode.vertical?Math.PI/2:0;for(let eu=0;eu<eB;eu++)x.addDynamicAttributes(eM,eO,eU,eV,e$);eE&&eP.associatedIconIndex>=0&&(eA[eP.associatedIconIndex]={x:eO,y:eU,z:eV,angle:e$})}else mt(eB,eM)}if(eE){eI.clear();let ef=eu.icon.placedSymbolArray;for(let eu=0;eu<ef.length;eu++){let em=ef.get(eu),{numGlyphs:e_}=em,eg=eA[eu];if(em.hidden||!eg)mt(e_,eI);else{let{x:eu,y:ef,z:em,angle:ex}=eg;for(let eg=0;eg<e_;eg++)x.addDynamicAttributes(eI,eu,ef,em,ex)}}eu.icon.dynamicLayoutVertexBuffer.updateData(eI)}eu.text.dynamicLayoutVertexBuffer.updateData(eM)})(eg,ew,eT,ev,x.symbolSize,eb,eM,ef,em,ex,eI)}}}(e_,eu,em,ef,em.layout.get("text-rotation-alignment"),em.layout.get("text-pitch-alignment"),eg),0!==em.paint.get("icon-opacity").constantOr(1)&&fo(eu,ef,em,e_,!1,em.paint.get("icon-translate"),em.paint.get("icon-translate-anchor"),em.layout.get("icon-rotation-alignment"),em.layout.get("icon-pitch-alignment"),em.layout.get("icon-keep-upright"),ex,ev),0!==em.paint.get("text-opacity").constantOr(1)&&fo(eu,ef,em,e_,!0,em.paint.get("text-translate"),em.paint.get("text-translate-anchor"),em.layout.get("text-rotation-alignment"),em.layout.get("text-pitch-alignment"),em.layout.get("text-keep-upright"),ex,ev),ef.map.showCollisionBoxes&&(ho(eu,ef,em,e_,em.paint.get("text-translate"),em.paint.get("text-translate-anchor"),!0),ho(eu,ef,em,e_,em.paint.get("icon-translate"),em.paint.get("icon-translate-anchor"),!1))},circle:function(eu,ef,em,e_){if("translucent"!==eu.renderPass)return;let eg=em.paint.get("circle-opacity"),ex=em.paint.get("circle-stroke-width"),ev=em.paint.get("circle-stroke-opacity"),eb=void 0!==em.layout.get("
60circle-sort-key").constantOr(1);if(0===eg.constantOr(1)&&(0===ex.constantOr(1)||0===ev.constantOr(1)))return;let ew=eu.context,eT=ew.gl,eE=eu.transform,eS=eu.depthModeForSublayer(0,x.DepthMode.ReadOnly),eM=x.StencilMode.disabled,eI=eu.colorModeForRenderPass(),eA="globe"===eE.projection.name,eC=[x.mercatorXfromLng(eE.center.lng),x.mercatorYfromLat(eE.center.lat)],ez=[];for(let eg=0;eg<e_.length;eg++){let ex=e_[eg],ev=ef.getTile(ex),ew=ev.getBucket(em);if(!ew||ew.projection.name!==eE.projection.name)continue;let eT=ew.programConfigurations.get(em.id),eS=Vi(em);eA&&eS.push("PROJECTION_GLOBE_VIEW");let eM=eu.useProgram("circle",eT,eS),eI=ew.layoutVertexBuffer,eD=ew.globeExtVertexBuffer,ek=ew.indexBuffer,eP=eE.projection.createInversionMatrix(eE,ex.canonical),eL={programConfiguration:eT,program:eM,layoutVertexBuffer:eI,globeExtVertexBuffer:eD,indexBuffer:ek,uniformValues:Zi(eu,ex,ev,eP,eC,em),tile:ev};if(eb){let eu=ew.segments.get();for(let ef of eu)ez.push({segments:new x.SegmentVector([ef]),sortKey:ef.sortKey,state:eL})}else ez.push({segments:ew.segments,sortKey:0,state:eL})}eb&&ez.sort((x,eu)=>x.sortKey-eu.sortKey);let eD={useDepthForOcclusion:!eA};for(let ef of ez){let{programConfiguration:e_,program:eg,layoutVertexBuffer:ex,globeExtVertexBuffer:ev,indexBuffer:eb,uniformValues:eA,tile:eC}=ef.state,ez=ef.segments;eu.terrain&&eu.terrain.setupElevationDraw(eC,eg,eD),eu.prepareDrawProgram(ew,eg,eC.tileID.toUnwrapped()),eg.draw(ew,eT.TRIANGLES,eS,eM,eI,x.CullFaceMode.disabled,eA,em.id,ex,eb,ez,em.paint,eE.zoom,e_,[ev])}},heatmap:function(eu,ef,em,e_){if(0!==em.paint.get("heatmap-opacity")){if("offscreen"===eu.renderPass){let eg=eu.context,ex=eg.gl,ev=x.StencilMode.disabled,eb=new x.ColorMode([ex.ONE,ex.ONE],x.Color.transparent,[!0,!0,!0,!0]);(function(x,eu,ef,em){let e_=x.gl,eg=eu.width*em,ex=eu.height*em;x.activeTexture.set(e_.TEXTURE1),x.viewport.set([0,0,eg,ex]);let ev=ef.heatmapFbo;if(!ev||ev&&(ev.width!==eg||ev.height!==ex)){ev&&ev.destroy();let eu=e_.createTexture();e_.bindTexture(e_.TEXTURE_2D,eu),e_.texParameteri(e_.TEXTURE_2D,e_.TEXTURE_WRAP_S,e_.CLAMP_TO_EDGE),e_.texParameteri(e_.TEXTURE_2D,e_.TEXTURE_WRAP_T,e_.CLAMP_TO_EDGE),e_.texParameteri(e_.TEXTURE_2D,e_.TEXTURE_MIN_FILTER,e_.LINEAR),e_.texParameteri(e_.TEXTURE_2D,e_.TEXTURE_MAG_FILTER,e_.LINEAR),ev=ef.heatmapFbo=x.createFramebuffer(eg,ex,!1),function(x,eu,ef,em,e_,eg){let ex=x.gl;ex.texImage2D(ex.TEXTURE_2D,0,x.isWebGL2&&x.extRenderToTextureHalfFloat?ex.RGBA16F:ex.RGBA,e_,eg,0,ex.RGBA,x.extRenderToTextureHalfFloat?x.isWebG
60L2?ex.HALF_FLOAT:x.extTextureHalfFloat.HALF_FLOAT_OES:ex.UNSIGNED_BYTE,null),em.colorAttachment.set(ef)}(x,0,eu,ev,eg,ex)}else e_.bindTexture(e_.TEXTURE_2D,ev.colorAttachment.get()),x.bindFramebuffer.set(ev.framebuffer)})(eg,eu,em,"globe"===eu.transform.projection.name?.5:.25),eg.clear({color:x.Color.transparent});let ew=eu.transform,eT="globe"===ew.projection.name,eE=eT?["PROJECTION_GLOBE_VIEW"]:null,eS=eT?x.CullFaceMode.frontCCW:x.CullFaceMode.disabled,eM=[x.mercatorXfromLng(ew.center.lng),x.mercatorYfromLat(ew.center.lat)];for(let eI=0;eI<e_.length;eI++){let eA=e_[eI];if(ef.hasRenderableParent(eA))continue;let eC=ef.getTile(eA),ez=eC.getBucket(em);if(!ez||ez.projection.name!==ew.projection.name)continue;let eD=ez.programConfigurations.get(em.id),ek=eu.useProgram("heatmap",eD,eE),{zoom:eP}=eu.transform;eu.terrain&&eu.terrain.setupElevationDraw(eC,ek),eu.prepareDrawProgram(eg,ek,eA.toUnwrapped());let eL=ew.projection.createInversionMatrix(ew,eA.canonical);ek.draw(eg,ex.TRIANGLES,x.DepthMode.disabled,ev,eb,eS,$i(eu,eA,eC,eL,eM,eP,em.paint.get("heatmap-intensity")),em.id,ez.layoutVertexBuffer,ez.indexBuffer,ez.segments,em.paint,eu.transform.zoom,eD,eT?[ez.globeExtVertexBuffer]:null)}eg.viewport.set([0,0,eu.width,eu.height])}else"translucent"===eu.renderPass&&(eu.context.setColorMode(eu.colorModeForRenderPass()),function(eu,ef){let em=eu.context,e_=em.gl,eg=ef.heatmapFbo;if(!eg)return;em.activeTexture.set(e_.TEXTURE0),e_.bindTexture(e_.TEXTURE_2D,eg.colorAttachment.get()),em.activeTexture.set(e_.TEXTURE1);let ex=ef.colorRampTexture;ex||(ex=ef.colorRampTexture=new x.Texture(em,ef.colorRamp,e_.RGBA)),ex.bind(e_.LINEAR,e_.CLAMP_TO_EDGE),eu.useProgram("heatmapTexture").draw(em,e_.TRIANGLES,x.DepthMode.disabled,x.StencilMode.disabled,eu.colorModeForRenderPass(),x.CullFaceMode.disabled,{u_image:0,u_color_ramp:1,u_opacity:ef.paint.get("heatmap-opacity")},ef.id,eu.viewportBuffer,eu.quadTriangleIndexBuffer,eu.viewportSegments,ef.paint,eu.transform.zoom)}(eu,em))}},line:function(eu,ef,em,e_){if("translucent"!==eu.renderPass)return;let eg=em.paint.get("line-opacity"),ex=em.paint.get("line-width");if(0===eg.constantOr(1)||0===ex.constantOr(1))return;let ev=eu.depthModeForSublayer(0,x.DepthMode.ReadOnly),eb=eu.colorModeForRenderPass(),ew=eu.terrain&&eu.terrain.renderingToTexture?1:x.exported.devicePixelRatio,eT=em.paint.get("line-dasharray"),eE=eT.constantOr(1),eS=em.layout.get("line-cap"),eM=em.paint.get("line-pattern"),eI=eM.constantOr(1),eA=em.paint.get("line-gradient"),eC=eI?"linePattern":"line",ez=eu.context,eD=ez.gl,ek=(x=>{let eu=[];Qi(x)&&eu.push("RENDER_LINE_DASH"),x.paint.get("line-gradient")&&eu.push("RENDER_LINE_GRADIENT");let ef=x.paint.get("line-trim-offset");0===ef[0]&&0===ef[1]||eu.push("RENDER_LINE_TRIM_OFFSET");let em=x.paint.get("line-pattern").constantOr(1),e_=1!==x.paint.get("line-opacity").constantOr(1);return!em&&e_&&eu.push("RENDER_LINE_ALPHA_DISCARD"),eu})(em),eP=ek.includes("RENDER_LINE_ALPHA_DISCARD");for(let eg of(eu.terrain&&eu.terrain.clipOrMaskOverlapStencilType()&&(eP=!1),e_)){let e_=ef.getTile(eg);if(eI&&!e_.patternsLoaded())continue;let ex=e_.getBucket(em);if(!ex)continue;eu.prepareDrawTile();let eL=ex.programConfigurations.get(em.id),eR=eu.useProgram(eC,eL,ek),eB=eM.constantOr(null);if(eB&&e_.imageAtlas){let x=e_.imageAtlas.patternPositions[eB.toString()];x&&eL.setConstantPatternPositions(x)}let eO=eT.constantOr(null),eF=eS.constantOr(null);if(!eI&&eO&&eF&&e_.lineAtlas){let x=e_.lineAtlas.getDash(eO,eF);x&&eL.setConstantPatternPositions(x)}let[eU,eV]=em.paint.get("line-trim-offset");("round"===eF||"square"===eF)&&eU!==eV&&(0===eU&&(eU-=1),1===eV&&(eV+=1));let eN=eu.terrain?eg.projMatrix:null,ej=eI?Yi(eu,e_,em,eN,ew):Hi(eu,e_,em,eN,ex.lineClipsArray.length,ew,[eU,eV]);if(eA){let e_=ex.gradients[em.id],ev=e_.texture;if(em.gradientVersion!==e_.version){let eb=256;if(em.stepInterpolant){let em=ef.getSource().maxzoom,e_=eg.canonical.z===em?Math.ceil(1<<eu.transform.maxZoom-eg.canonical.z):1;eb=x.clamp(x.nextPowerOfTwo(ex.maxLineLength/x.EXTENT*1024*e_),256,ez.maxTextureSize)}e_.gradient=x.renderColorRamp({expression:em.gradientExpression(),evaluationKey:"lineProgress",resolution:eb,image:e_.gradient||void 0,clips:ex.lineClipsArray}),e_.texture?e_.texture.update(e_.gradient):e_.texture=new x.Texture(ez,e_.gradient,eD.RGBA),e_.version=em.gradientVersion,ev=e_.texture}ez.activeTexture.set(eD.TEXTURE1),ev.bind(em.stepInterpolant?eD.NEAREST:eD.LINEAR,eD.CLAMP_TO_EDGE)}eE&&(ez.activeTexture.set(eD.TEXTURE0),e_.lineAtlasTexture.bind(eD.LINEAR,eD.REPEAT),eL.updatePaintBuffers()),eI&&(ez.activeTexture.set(eD.TEXTURE0),e_.imageAtlasTexture.bind(eD.LINEAR,eD.CLAMP_TO_EDGE),eL.updatePaintBuffers()),eu.prepareDrawProgram(ez,eR,eg.toUnwrapped());let L=ef=>{eR.draw(ez,eD.TRIANGLES,ev,ef,eb,x.CullFaceMode.disabled,ej,em.id,ex.layoutVertexBuffer,ex.indexBuffer,ex.segments,em.paint,eu.transform.zoom,eL,[ex.layoutVertexBuffer2])};if(eP){let ef=eu.stencilModeForClipping(eg).ref;0===ef&&eu.terrain&&ez.clear({stencil:0});let em={func:eD.EQUAL,mask:255};
60ej.u_alpha_discard_threshold=.8,L(new x.StencilMode(em,ef,255,eD.KEEP,eD.KEEP,eD.INVERT)),ej.u_alpha_discard_threshold=0,L(new x.StencilMode(em,ef,255,eD.KEEP,eD.KEEP,eD.KEEP))}else L(eu.stencilModeForClipping(eg))}eP&&(eu.resetStencilClippingMasks(),eu.terrain&&ez.clear({stencil:0}))},fill:function(eu,ef,em,e_){let eg=em.paint.get("fill-color"),ex=em.paint.get("fill-opacity");if(0===ex.constantOr(1))return;let ev=eu.colorModeForRenderPass(),eb=em.paint.get("fill-pattern"),ew=eu.opaquePassEnabledForLayer()&&!eb.constantOr(1)&&1===eg.constantOr(x.Color.transparent).a&&1===ex.constantOr(0)?"opaque":"translucent";if(eu.renderPass===ew){let eg=eu.depthModeForSublayer(1,"opaque"===eu.renderPass?x.DepthMode.ReadWrite:x.DepthMode.ReadOnly);vo(eu,ef,em,e_,eg,ev,!1)}if("translucent"===eu.renderPass&&em.paint.get("fill-antialias")){let eg=eu.depthModeForSublayer(em.getPaintProperty("fill-outline-color")?2:0,x.DepthMode.ReadOnly);vo(eu,ef,em,e_,eg,ev,!0)}},"fill-extrusion":function(eu,ef,em,e_){let eg=em.paint.get("fill-extrusion-opacity");if(0!==eg&&"translucent"===eu.renderPass){let ex=new x.DepthMode(eu.context.gl.LEQUAL,x.DepthMode.ReadWrite,eu.depthRangeFor3D);if(1!==eg||em.paint.get("fill-extrusion-pattern").constantOr(1))xo(eu,ef,em,e_,ex,x.StencilMode.disabled,x.ColorMode.disabled),xo(eu,ef,em,e_,ex,eu.stencilModeFor3D(),eu.colorModeForRenderPass()),eu.resetStencilClippingMasks();else{let eg=eu.colorModeForRenderPass();xo(eu,ef,em,e_,ex,x.StencilMode.disabled,eg)}}},hillshade:function(eu,ef,em,e_){if("offscreen"!==eu.renderPass&&"translucent"!==eu.renderPass)return;let eg=eu.context,ex=eu.depthModeForSublayer(0,x.DepthMode.ReadOnly),ev=eu.colorModeForRenderPass(),eb=eu.terrain&&eu.terrain.renderingToTexture,[ew,eT]="translucent"!==eu.renderPass||eb?[{},e_]:eu.stencilConfigForOverlap(e_);for(let e_ of eT){let eg=ef.getTile(e_);if(eg.needsHillshadePrepare&&"offscreen"===eu.renderPass)!function(eu,ef,em,e_,eg,ex){let ev=eu.context,eb=ev.gl;if(!ef.dem)return;let ew=ef.dem;if(ev.activeTexture.set(eb.TEXTURE1),gi(eu,ef,ew),!ef.demTexture)return;ef.demTexture.bind(eb.NEAREST,eb.CLAMP_TO_EDGE);let eT=ew.dim;ev.activeTexture.set(eb.TEXTURE0);let eE=ef.fbo;if(!eE){let eu=new x.Texture(ev,{width:eT,height:eT,data:null},eb.RGBA);eu.bind(eb.LINEAR,eb.CLAMP_TO_EDGE),(eE=ef.fbo=ev.createFramebuffer(eT,eT,!0)).colorAttachment.set(eu.texture)}ev.bindFramebuffer.set(eE.framebuffer),ev.viewport.set([0,0,eT,eT]);let{tileBoundsBuffer:eS,tileBoundsIndexBuffer:eM,tileBoundsSegments:eI}=eu.getMercatorTileBoundsBuffers();eu.useProgram("hillshadePrepare").draw(ev,eb.TRIANGLES,e_,eg,ex,x.CullFaceMode.disabled,((eu,ef)=>{let em=ef.stride,e_=x.create();return x.ortho(e_,0,x.EXTENT,-x.EXTENT,0,0,1),x.translate(e_,e_,[0,-x.EXTENT,0]),{u_matrix:e_,u_image:1,u_dimension:[em,em],u_zoom:eu.overscaledZ,u_unpack:ef.unpackVector}})(ef.tileID,ew),em.id,eS,eM,eI),ef.needsHillshadePrepare=!1}(eu,eg,em,ex,x.StencilMode.disabled,ev);else if("translucent"===eu.renderPass){let ef=eb&&eu.terrain?eu.terrain.stencilModeForRTTOverlap(e_):ew[e_.overscaledZ];!function(eu,ef,em,e_,eg,ex,ev){let eb=eu.context,ew=eb.gl,eT=em.fbo;if(!eT)return;eu.prepareDrawTile();let eE=eu.useProgram("hillshade");eb.activeTexture.set(ew.TEXTURE0),ew.bindTexture(ew.TEXTURE_2D,eT.colorAttachment.get());let eS=((eu,ef,em,e_)=>{let eg=em.paint.get("hillshade-shadow-color"),ex=em.paint.get("hillshade-highlight-color"),ev=em.paint.get("hillshade-accent-color"),eb=em.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===em.paint.get("hillshade-illumination-anchor")&&(eb-=eu.transform.angle);let ew=!eu.options.moving;return{u_matrix:e_||eu.transform.calculateProjMatrix(ef.tileID.toUnwrapped(),ew),u_image:0,u_latrange:function(eu,ef){let em=Math.pow(2,ef.canonical.z),e_=ef.canonical.y;return[new x.MercatorCoordinate(0,e_/em).toLngLat().lat,new x.MercatorCoordinate(0,(e_+1)/em).toLngLat().lat]}(0,ef.tileID),u_light:[em.paint.get("hillshade-exaggeration"),eb],u_shadow:eg,u_highlight:ex,u_accent:ev}})(eu,em,e_,eu.terrain?ef.projMatrix:null);eu.prepareDrawProgram(eb,eE,ef.toUnwrapped());let{tileBoundsBuffer:eM,tileBoundsIndexBuffer:eI,tileBoundsSegments:eA}=eu.getTileBoundsBuffers(em);eE.draw(eb,ew.TRIANGLES,eg,ex,ev,x.CullFaceMode.disabled,eS,e_.id,eM,eI,eA)}(eu,e_,eg,em,ex,ef,ev)}}eg.viewport.set([0,0,eu.width,eu.height]),eu.resetStencilClippingMasks()},raster:function(eu,ef,em,e_,eg,ex){if("translucent"!==eu.renderPass||0===em.paint.get("raster-opacity")||!e_.length)return;let ev=eu.context,eb=ev.gl,ew=ef.getSource(),eT=eu.useProgram("raster"),eE=eu.colorModeForRenderPass(),eS=eu.terrain&&eu.terrain.renderingToTexture,[eM,eI]=ew instanceof Ae||eS?[{},e_]:eu.stencilConfigForOverlap(e_),eA=eI[eI.length-1].overscaledZ,eC=!eu.options.moving;for(let e_ of eI){let eg,eI;let ez=eS?x.DepthMode.disabled:eu.depthModeForSublayer(e_.overscaledZ-eA,1===em.paint.get("raster-opacity")?x.DepthMode.ReadWrite:x.DepthMode.ReadOnly,eb.LESS),eD=e_.toUnwrapped(),ek=ef.getTile(e_);if(eS&&(!ek||!ek.hasData()))continue;let eP=eS?e_.projMatrix:eu.transform.calculateProjMatrix(eD,eC),eL=eu.terrain&&eS?eu.terrain.stencilModeForRTTOverlap(e_):eM[e_.overscaledZ],eR=ex?0:em.paint.get("raster-fade-duration");ek.registerFadeDuration(eR);let eB=ef.findLoadedParent(e_,0),eO=Si(ek,eB,ef,eu.transform,eR);eu.terrain&&eu.terrain.prepareDrawTile();let eF="nearest"===em.paint.get("raster-resampling")?eb.NEAREST:eb.LINEAR;ev.activeTexture.set(eb.TEXTURE0),ek.texture.bind(eF,eb.CLAMP_TO_EDGE),ev.activeTexture.set(eb.TEXTURE1),eB?(eB.texture.bind(eF,eb.CLAMP_TO_EDGE),eg=Math.pow(2,eB.tileID.overscaledZ-ek.tileID.overscaledZ
60),eI=[ek.tileID.canonical.x*eg%1,ek.tileID.canonical.y*eg%1]):ek.texture.bind(eF,eb.CLAMP_TO_EDGE),ek.texture.useMipmap&&ev.extTextureFilterAnisotropic&&eu.transform.pitch>20&&eb.texParameterf(eb.TEXTURE_2D,ev.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,ev.extTextureFilterAnisotropicMax);let eU=eo(eP,eI||[0,0],eg||1,eO,em,ew instanceof Ae?ew.perspectiveTransform:[0,0]);if(eu.prepareDrawProgram(ev,eT,eD),ew instanceof Ae)ew.boundsBuffer&&ew.boundsSegments&&eT.draw(ev,eb.TRIANGLES,ez,x.StencilMode.disabled,eE,x.CullFaceMode.disabled,eU,em.id,ew.boundsBuffer,eu.quadTriangleIndexBuffer,ew.boundsSegments);else{let{tileBoundsBuffer:ef,tileBoundsIndexBuffer:e_,tileBoundsSegments:eg}=eu.getTileBoundsBuffers(ek);eT.draw(ev,eb.TRIANGLES,ez,eL,eE,x.CullFaceMode.disabled,eU,em.id,ef,e_,eg)}}eu.resetStencilClippingMasks()},background:function(eu,ef,em,e_){let eg=em.paint.get("background-color"),ex=em.paint.get("background-opacity");if(0===ex)return;let ev=eu.context,eb=ev.gl,ew=eu.transform,eT=ew.tileSize,eE=em.paint.get("background-pattern");if(eu.isPatternMissing(eE))return;let eS=!eE&&1===eg.a&&1===ex&&eu.opaquePassEnabledForLayer()?"opaque":"translucent";if(eu.renderPass!==eS)return;let eM=x.StencilMode.disabled,eI=eu.depthModeForSublayer(0,"opaque"===eS?x.DepthMode.ReadWrite:x.DepthMode.ReadOnly),eA=eu.colorModeForRenderPass(),eC=eu.useProgram(eE?"backgroundPattern":"background"),ez,eD=e_;for(let eS of(eD||(eD=Object.values(ez=eu.getBackgroundTiles()).map(x=>x.tileID)),eE&&(ev.activeTexture.set(eb.TEXTURE0),eu.imageManager.bind(eu.context)),eD)){let eD=eS.toUnwrapped(),ek=e_?eS.projMatrix:eu.transform.calculateProjMatrix(eD);eu.prepareDrawTile();let eP=ef?ef.getTile(eS):ez?ez[eS.key]:new x.Tile(eS,eT,ew.zoom,eu),eL=eE?ao(ek,ex,eu,eE,{tileID:eS,tileSize:eT}):so(ek,ex,eg);eu.prepareDrawProgram(ev,eC,eD);let{tileBoundsBuffer:eR,tileBoundsIndexBuffer:eB,tileBoundsSegments:eO}=eu.getTileBoundsBuffers(eP);eC.draw(ev,eb.TRIANGLES,eI,eM,eA,x.CullFaceMode.disabled,eL,em.id,eR,eB,eO)}},sky:function(eu,ef,em){let e_=eu.transform,eg="mercator"===e_.projection.name||"globe"===e_.projection.name?1:x.smoothstep(7,8,e_.zoom),ex=em.paint.get("sky-opacity")*eg;if(0===ex)return;let ev=eu.context,eb=em.paint.get("sky-type"),ew=new x.DepthMode(ev.gl.LEQUAL,x.DepthMode.ReadOnly,[0,1]),eT=eu.frameCounter/1e3%1;"atmosphere"===eb?"offscreen"===eu.renderPass?em.needsSkyboxCapture(eu)&&(function(eu,ef,em,e_){let eg=eu.context,ex=eg.gl,ev=ef.skyboxFbo;if(!ev){ev=ef.skyboxFbo=eg.createFramebuffer(32,32,!1),ef.skyboxGeometry=new Po(eg),ef.skyboxTexture=eg.gl.createTexture(),ex.bindTexture(ex.TEXTURE_CUBE_MAP,ef.skyboxTexture),ex.texParameteri(ex.TEXTURE_CUBE_MAP,ex.TEXTURE_WRAP_S,ex.CLAMP_TO_EDGE),ex.texParameteri(ex.TEXTURE_CUBE_MAP,ex.TEXTURE_WRAP_T,ex.CLAMP_TO_EDGE),ex.texParameteri(ex.TEXTURE_CUBE_MAP,ex.TEXTURE_MIN_FILTER,ex.LINEAR),ex.texParameteri(ex.TEXTURE_CUBE_MAP,ex.TEXTURE_MAG_FILTER,ex.LINEAR);for(let x=0;x<6;++x)ex.texImage2D(ex.TEXTURE_CUBE_MAP_POSITIVE_X+x,0,ex.RGBA,32,32,0,ex.RGBA,ex.UNSIGNED_BYTE,null)}eg.bindFramebuffer.set(ev.framebuffer),eg.viewport.set([0,0,32,32]);let eb=ef.getCenter(eu,!0),ew=eu.useProgram("skyboxCapture"),eT=new Float64Array(16);x.identity(eT),x.rotateY(eT,eT,-(.5*Math.PI)),Ro(eg,ef,ew,eT,eb,0),x.identity(eT),x.rotateY(eT,eT,.5*Math.PI),Ro(eg,ef,ew,eT,eb,1),x.identity(eT),x.rotateX(eT,eT,-(.5*Math.PI)),Ro(eg,ef,ew,eT,eb,2),x.identity(eT),x.rotateX(eT,eT,.5*Math.PI),Ro(eg,ef,ew,eT,eb,3),x.identity(eT),Ro(eg,ef,ew,eT,eb,4),x.identity(eT),x.rotateY(eT,eT,Math.PI),Ro(eg,ef,ew,eT,eb,5),eg.viewport.set([0,0,eu.width,eu.height])}(eu,em),em.markSkyboxValid(eu)):"sky"===eu.renderPass&&function(eu,ef,em,e_,eg){let ex=eu.context,ev=ex.gl,eb=eu.transform,ew=eu.useProgram("skybox");ex.activeTexture.set(ev.TEXTURE0),ev.bindTexture(ev.TEXTURE_CUBE_MAP,ef.skyboxTexture);let eT={u_matrix:eb.skyboxMatrix,u_sun_direction:ef.getCenter(eu,!1),u_cubemap:0,u_opacity:e_,u_temporal_offset:eg};eu.prepareDrawProgram(ex,ew),ew.draw(ex,ev.TRIANGLES,em,x.StencilMode.disabled,eu.colorModeForRenderPass(),x.CullFaceMode.backCW,eT,"skybox",ef.skyboxGeometry.vertexBuffer,ef.skyboxGeometry.indexBuffer,ef.skyboxGeometry.segment)}(eu,em,ew,ex,eT):"gradient"===eb&&"sky"===eu.renderPass&&function(eu,ef,em,e_,eg){var ex,ev,eb;let ew=eu.context,eT=ew.gl,eE=eu.transform,eS=eu.useProgram("skyboxGradient");ef.skyboxGeometry||(ef.skyboxGeometry=new Po(ew)),ew.activeTexture.set(eT.TEXTURE0);let eM=ef.colorRampTexture;eM||(eM=ef.colorRampTexture=new x.Texture(ew,ef.colorRamp,eT.RGBA)),eM.bind(eT.LINEAR,eT.CLAMP_TO_EDGE);let eI=(ex=eE.skyboxMatrix,ev=ef.getCenter(eu,!1),eb=ef.paint.get("sky-gradient-radius"),{u_matrix:ex,u_color_ramp:0,u_center_direction:ev,u_radius:x.degToRad(eb),u_opacity:e_,u_temporal_offset:eg});eu.prepareDrawProgram(ew,eS),eS.draw(ew,eT.TRIANGLES,em,x.StencilMode.disabled,eu.colorModeForRenderPass(),x.CullFaceMode.backCW,eI,"skyboxGradient",ef.skyboxGeometry.vertexBuffer,ef.skyboxGeometry.indexBuffer,ef.skyboxGeometry.segment)}(eu,em,ew,ex,eT)},debug:function(eu,ef,em){for(let e_=0;e_<em.length;e_++)!function(eu,ef,em){let e_=eu.context,eg=eu.transform,ex=e_.gl,ev="globe"===eg.projection.name,eb=em.projMatrix;if(ev&&x.globeToMercatorTransition(eg.zoom)>0){let eu=x.transitionTileAABBinECEF(em.canonical,eg),ef=x.globeDenormalizeECEF(eu);eb=x.multiply(new Float32Array(16),eg.globeMatrix,ef),x.multiply(eb,eg.projMatrix,eb)}let ew=eu.useProgram("debug",null,ev?["PROJECTION_GLOBE_VIEW"]:null),eT=ef.getTileByID(em.key);eu.terrain&&eu.terrain.setupElevationDraw(eT,ew);let eE=x.DepthMode.disabled,eS=x.StencilMode.disabled,eM=eu.colorModeForRenderPass(),eI="$debug";e_.activeTexture.set(ex.TEXTURE0),eu.emptyTexture.bind(ex.LINEAR,ex.CLAMP_TO_EDGE),ev?eT._makeGlobeTileDebugBuffers(eu.context,eg):eT._makeDebugTileBoundsBuffers(eu.context,eg.projection);let eA=eT._tileDebugBuffer||eu.debugBuffer,eC=eT._tileDebugIndexBuffer||eu.debugIndexBuffer,ez=eT._tileDebugSegments||eu.debugSegments;ew.draw(e_,ex.LINE_STRIP,eE,eS,eM,x.CullFaceMode.disabled,Xi(eb,x.Color.red),eI,eA,eC,ez,null,null,null,[eT._globeTileDebugBorderBuffer]);let eD=eT.latestRawTileData,ek=Math.floor((eD&&eD.byteLength||0)/1024),eP=ef.getTile(em).tileSize,eL=512/Math.min(eP,512)*(em.overscaledZ/eg.zoom)*.5,eR=em.canonical.toString();em.overscaledZ!==em.canonical.z&&(eR+=` => ${em.overscaledZ}`),function(x,eu){x.initDebugOverlayCanvas();let ef=x.debugOverlayCanvas,em=x.context.gl,e_=x.debugOverlayCanvas.getContext("2d");e_.clearRect(0,0,ef.width,ef.height),e_.shadowColor="white",e_.shadowBlur=2,e_.lineWidth=1.5,e_.strokeStyle="white",e_.textBaseline="top",e_.font="bold 36px Open Sans, sans-serif",e_.fillText(eu,5,5),e_.strokeText(eu,5,5),x.debugOverlayTexture.update(ef),x.debugOverlayTexture.bind(em.LINEAR,em.CLAMP_TO_EDGE)}(eu,eR+=` ${ek}kb`);let eB=eT._tileDebugTextBuffer||eu.debugBuffer,eO=eT._tileDebugTextIndexBuffer||eu.quadTriangleIndexBuffer,eF=eT._tileDebugTextSegments||eu.debugSegments;ew.draw(e_,ex.TRIANGLES,eE,eS,x.ColorMode.alphaBlended,x.CullFaceMode.disabled,Xi(eb,x.Color.transparent,eL),eI,eB,eO,eF,null,null,null,[eT._globeTileDebugTextBuffer])}(eu,ef,em[e_])},custom:function(eu,ef,em,e_){let eg=eu.context,ex=em.implementation;if(!eu.transform.projection.unsupportedLayers||!eu.transform.projection.unsupportedLayers.includes("custom")||eu.terrain&&(eu.terrain.renderingToTexture||"offscreen"===eu.renderPass)&&em.isLayerDraped()){if("offscreen"===eu.renderPass){let ef=ex.prerender;
60if(ef){if(eu.setCustomLayerDefaults(),eg.setColorMode(eu.colorModeForRenderPass()),"globe"===eu.transform.projection.name){let em=eu.transform.pointMerc;ef.call(ex,eg.gl,eu.transform.customLayerMatrix(),eu.transform.getProjection(),eu.transform.globeToMercatorMatrix(),x.globeToMercatorTransition(eu.transform.zoom),[em.x,em.y],eu.transform.pixelsPerMeterRatio)}else ef.call(ex,eg.gl,eu.transform.customLayerMatrix());eg.setDirty(),eu.setBaseState()}}else if("translucent"===eu.renderPass){if(eu.terrain&&eu.terrain.renderingToTexture){let ef=ex.renderToTile;if(ef){let em=e_[0].canonical,ev=new x.MercatorCoordinate(em.x+e_[0].wrap*(1<<em.z),em.y,em.z);eg.setDepthMode(x.DepthMode.disabled),eg.setStencilMode(x.StencilMode.disabled),eg.setColorMode(eu.colorModeForRenderPass()),eu.setCustomLayerDefaults(),ef.call(ex,eg.gl,ev),eg.setDirty(),eu.setBaseState()}return}eu.setCustomLayerDefaults(),eg.setColorMode(eu.colorModeForRenderPass()),eg.setStencilMode(x.StencilMode.disabled);let ef="3d"===ex.renderingMode?new x.DepthMode(eu.context.gl.LEQUAL,x.DepthMode.ReadWrite,eu.depthRangeFor3D):eu.depthModeForSublayer(0,x.DepthMode.ReadOnly);if(eg.setDepthMode(ef),"globe"===eu.transform.projection.name){let ef=eu.transform.pointMerc;ex.render(eg.gl,eu.transform.customLayerMatrix(),eu.transform.getProjection(),eu.transform.globeToMercatorMatrix(),x.globeToMercatorTransition(eu.transform.zoom),[ef.x,ef.y],eu.transform.pixelsPerMeterRatio)}else ex.render(eg.gl,eu.transform.customLayerMatrix());eg.setDirty(),eu.setBaseState(),eg.bindFramebuffer.set(null)}}else x.warnOnce("Custom layers are not yet supported with this projection. Use mercator or globe to enable usage of custom layers.")}};let Fo=class Fo{constructor(eu,ef,em=!1){this.context=new Me(eu,em),this.transform=ef,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this.setup(),this.numSublayers=x.SourceCache.maxUnderzooming+x.SourceCache.maxOverzooming+1,this.depthEpsilon=1/65536,this.crossTileSymbolIndex=new qt,this.deferredRenderGpuTimeQueries=[],this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={}}updateTerrain(x,eu){let ef=!!x&&!!x.terrain&&this.transform.projection.supportsTerrain;if(!(ef||this._terrain&&this._terrain.enabled))return;this._terrain||(this._terrain=new zi(this,x));let em=this._terrain;this.transform.elevation=ef?em:null,em.update(x,this.transform,eu)}_updateFog(x){let eu=x.fog;if(!eu||"globe"===this.transform.projection.name||1>eu.getOpacity(this.transform.pitch)||.03>eu.properties.get("horizon-blend"))return void(this.transform.fogCullDistSq=null);let[ef,em]=eu.getFovAdjustedRange(this.transform._fov);if(ef>em)return void(this.transform.fogCullDistSq=null);let e_=ef+.78*(em-ef);this.transform.fogCullDistSq=e_*e_}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(eu,ef){if(this.width=eu*x.exported.devicePixelRatio,this.height=ef*x.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let x of this.style.order)this.style._layers[x].resize()}setup(){let eu=this.context,ef=new x.StructArrayLayout2i4;ef.emplaceBack(0,0),ef.emplaceBack(x.EXTENT,0),ef.emplaceBack(0,x.EXTENT),ef.emplaceBack(x.EXTENT,x.EXTENT),this.tileExtentBuffer=eu.createVertexBuffer(ef,x.posAttributes.members),this.tileExtentSegments=x.SegmentVector.simpleSegment(0,0,4,2);let em=new x.StructArrayLayout2i4;em.emplaceBack(0,0),em.emplaceBack(x.EXTENT,0),em.emplaceBack(0,x.EXTENT),em.emplaceBack(x.EXTENT,x.EXTENT),this.debugBuffer=eu.createVertexBuffer(em,x.posAttributes.members),this.debugSegments=x.SegmentVector.simpleSegment(0,0,4,5);let e_=new x.StructArrayLayout2i4;e_.emplaceBack(-1,-1),e_.emplaceBack(1,-1),e_.emplaceBack(-1,1),e_.emplaceBack(1,1),this.viewportBuffer=eu.createVertexBuffer(e_,x.posAttributes.members),this.viewportSegments=x.SegmentVector.simpleSegment(0,0,4,2);let eg=new x.StructArrayLayout4i8;eg.emplaceBack(0,0,0,0),eg.emplaceBack(x.EXTENT,0,x.EXTENT,0),eg.emplaceBack(0,x.EXTENT,0,x.EXTENT),eg.emplaceBack(x.EXTENT,x.EXTENT,x.EXTENT,x.EXTENT),this.mercatorBoundsBuffer=eu.createVertexBuffer(eg,x.boundsAttributes.members),this.mercatorBoundsSegments=x.SegmentVector.simpleSegment(0,0,4,2);let ex=new x.StructArrayLayout3ui6;ex.emplaceBack(0,1,2),ex.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=eu.createIndexBuffer(ex);let ev=new x.StructArrayLayout1ui2;for(let x of[0,1,3,2,0])ev.emplaceBack(x);this.debugIndexBuffer=eu.createIndexBuffer(ev),this.emptyTexture=new x.Texture(eu,new x.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),eu.gl.RGBA),this.identityMat=x.create();let eb=this.context.gl;this.stencilClearMode=new x.StencilMode({func:eb.ALWAYS,mask:0},0,255,eb.ZERO,eb.ZERO,eb.ZERO),this.loadTimeStamps.push(x.window.performance.now()),this.atmosphereBuffer=new Bo(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(x){return x._makeTileBoundsBuffers(this.context,this.transform.projection),x._tileBoundsBuffer?{tileBoundsBuffer:x._tileBoundsBuffer,tileBoundsIndexBuffer:x._tileBoundsIndexBuffer,tileBoundsSegments:x._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){let eu=this.context,ef=eu.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(eu,ef.TRIANGLES,x.DepthMode.disabled,this.stencilClearMode,x.ColorMode.disabled,x.CullFaceMode.disabled,Ii(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(eu,ef,em){if(!ef||this.currentStencilSource===ef.id||!eu.isTileClipped()||!em||0===em.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let x=!1;for(let eu of em)if(void 0===this._tileClippingMaskIDs[eu.key]){x=!0;break}if(!x)return}this.currentStencilSource=ef.id;let e_=this.context,eg=e_.gl;this.nextStencilID+em.length>256&&this.clearStencil(),e_.setColorMode(x.ColorMode.disabled),e_.setDepthMode(x.DepthMode.disabled);let ex=this.useProgram("clippingMask");for(let eu of(this._tileClippingMaskIDs={},em)){let em=ef.getTile(eu),ev=this._tileClippingMaskIDs[eu.key]=this.nextStencilID++,{tileBoundsBuffer:eb,tileBoundsIndexBuffer:ew,tileBoundsSegments:eT}=this.getTileBoundsBuffers(em);ex.draw(e_,eg.TRIANGLES,x.DepthMode.disabled,new x.StencilMode({func:eg.ALWAYS,mask:0},ev,255,eg.KEEP,eg.KEEP,eg.REPLACE),x.ColorMode.disabled,x.CullFaceMode.disabled,Ii(eu.projMatrix),"$clipping",eb,ew,eT)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let eu=this.nextStencilID++,ef=this.context.gl;return new x.StencilMode({func:ef.NOTEQUAL,mask:255},eu,255,ef.KEEP,ef.KEEP,ef.REPLACE)}stencilModeForClipping(eu){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(eu);let ef=this.context.gl;return new x.StencilMode({func:ef.EQUAL,mask:255},this._tileClippingMaskIDs[eu.key],0,ef.KEEP,ef.KEEP,ef.REPLACE)}stencilConfigForOverlap(eu){let ef=this.context.gl,em=eu.sort((x,eu)=>
60eu.overscaledZ-x.overscaledZ),e_=em[em.length-1].overscaledZ,eg=em[0].overscaledZ-e_+1;if(eg>1){this.currentStencilSource=void 0,this.nextStencilID+eg>256&&this.clearStencil();let eu={};for(let em=0;em<eg;em++)eu[em+e_]=new x.StencilMode({func:ef.GEQUAL,mask:255},em+this.nextStencilID,255,ef.KEEP,ef.KEEP,ef.REPLACE);return this.nextStencilID+=eg,[eu,em]}return[{[e_]:x.StencilMode.disabled},em]}colorModeForRenderPass(){let eu=this.context.gl;if(this._showOverdrawInspector){let ef=1/8;return new x.ColorMode([eu.CONSTANT_COLOR,eu.ONE],new x.Color(ef,ef,ef,0),[!0,!0,!0,!0])}return"opaque"===this.renderPass?x.ColorMode.unblended:x.ColorMode.alphaBlended}depthModeForSublayer(eu,ef,em){if(!this.opaquePassEnabledForLayer())return x.DepthMode.disabled;let e_=1-((1+this.currentLayer)*this.numSublayers+eu)*this.depthEpsilon;return new x.DepthMode(em||this.context.gl.LEQUAL,ef,[e_,e_])}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(eu,ef){this.style=eu,this.options=ef,this.imageManager=eu.imageManager,this.glyphManager=eu.glyphManager,this.symbolFadeChange=eu.placement.symbolFadeChange(x.exported.now()),this.imageManager.beginFrame();let em=this.style.order,e_=this.style._sourceCaches;for(let x in e_){let eu=e_[x];eu.used&&eu.prepare(this.context)}let eg={},ex={},ev={};for(let x in e_){let eu=e_[x];eg[x]=eu.getVisibleCoordinates(),ex[x]=eg[x].slice().reverse(),ev[x]=eu.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let x=0;x<em.length;x++)if(this.style._layers[em[x]].is3D()){this.opaquePassCutoff=x;break}if(this.terrain&&(this.terrain.updateTileBinding(ev),this.opaquePassCutoff=0),"globe"!==this.transform.projection.name||this.globeSharedBuffers||(this.globeSharedBuffers=new x.GlobeSharedBuffers(this.context)),!x.isMapAuthenticated(this.context.gl))return;for(let x of(this.renderPass="offscreen",em)){let ef=this.style._layers[x],em=eu._getLayerSourceCache(ef);if(!ef.hasOffscreenPass()||ef.isHidden(this.transform.zoom))continue;let e_=em?ex[em.id]:void 0;("custom"===ef.type||ef.isSky()||e_&&e_.length)&&this.renderLayer(this,em,ef,e_)}this.depthRangeFor3D=[0,1-(eu.order.length+2)*this.numSublayers*this.depthEpsilon];let eb=this.terrain;if(eb&&(this.style.hasSymbolLayers()||this.style.hasCircleLayers())&&eb.drawDepth(),this.context.bindFramebuffer.set(null),this.context.viewport.set([0,0,this.width,this.height]),this.context.clear({color:ef.showOverdrawInspector?x.Color.black:x.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=ef.showOverdrawInspector,this.renderPass="opaque",!this.terrain)for(this.currentLayer=em.length-1;this.currentLayer>=0;this.currentLayer--){let x=this.style._layers[em[this.currentLayer]],ef=eu._getLayerSourceCache(x);if(x.isSky())continue;let e_=ef?ex[ef.id]:void 0;this._renderTileClippingMasks(x,ef,e_),this.renderLayer(this,ef,x,e_)}if(this.style.fog&&this.transform.projection.supportsFog&&function(eu,ef){var em,e_,eg;let ex=eu.context,ev=ex.gl,eb=eu.transform,ew=new x.DepthMode(ev.LEQUAL,x.DepthMode.ReadOnly,[0,1]),eT=eu.useProgram("globeAtmosphere",null,"globe"===eb.projection.name?["PROJECTION_GLOBE_VIEW","FOG"]:["FOG"]),eE=x.globeToMercatorTransition(eb.zoom),eS=ef.properties.get("color").toArray01(),eM=ef.properties.get("high-color").toArray01(),eI=ef.properties.get("space-color").toArray01PremultipliedAlpha(),eA=x.identity$1([]);x.rotateY$1(eA,eA,-x.degToRad(eb._center.lng)),x.rotateX$1(eA,eA,x.degToRad(eb._center.lat)),x.rotateZ$1(eA,eA,eb.angle),x.rotateX$1(eA,eA,-eb._pitch);let eC=x.fromQuat(new Float32Array(16),eA),ez=x.mapValue(ef.properties.get("star-intensity"),0,1,0,.25),eD=x.mapValue(ef.properties.get("horizon-blend"),0,1,5e-4,.25),ek=x.globeUseCustomAntiAliasing(eu,ex,eb)&&5e-4===eD?eb.worldSize/(2*Math.PI*1.025)-1:eb.globeRadius,eP=eu.frameCounter/1e3%1,eL=x.length(eb.globeCenterInViewSpace),eR=Math.sqrt(Math.pow(eL,2)-Math.pow(ek,2)),eB=Math.acos(eR/eL),eO=(em=eb.frustumCorners.TL,e_=eb.frustumCorners.TR,eg=eb.frustumCorners.BR,{u_frustum_tl:em,u_frustum_tr:e_,u_frustum_br:eg,u_frustum_bl:eb.frustumCorners.BL,u_horizon:eb.frustumCorners.horizon,u_transition:eE,u_fadeout_range:eD,u_color:eS,u_high_color:eM,u_space_color:eI,u_star_intensity:ez,u_star_size:5*x.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:eP,u_horizon_angle:eB,u_rotation_matrix:eC});eu.prepareDrawProgram(ex,eT);let eF=eu.atmosphereBuffer;eF&&eT.draw(ex,ev.TRIANGLES,ew,x.StencilMode.disabled,x.ColorMode.alphaBlended,x.CullFaceMode.backCW,eO,"skybox",eF.vertexBuffer,eF.indexBuffer,eF.segments)}(this,this.style.fog),this.renderPass="sky",(x.globeToMercatorTransition(this.transform.zoom)>0||"globe"!==this.transform.projection.name)&&this.transform.isH
60orizonVisible())for(this.currentLayer=0;this.currentLayer<em.length;this.currentLayer++){let x=this.style._layers[em[this.currentLayer]],ef=eu._getLayerSourceCache(x);x.isSky()&&this.renderLayer(this,ef,x,ef?ex[ef.id]:void 0)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<em.length;){let x=this.style._layers[em[this.currentLayer]],ef=eu._getLayerSourceCache(x);if(x.isSky()){++this.currentLayer;continue}if(this.terrain&&this.style.isLayerDraped(x)){if(x.isHidden(this.transform.zoom)){++this.currentLayer;continue}this.currentLayer=this.terrain.renderBatch(this.currentLayer);continue}let e_=ef?("symbol"===x.type?ev:ex)[ef.id]:void 0;this._renderTileClippingMasks(x,ef,ef?eg[ef.id]:void 0),this.renderLayer(this,ef,x,e_),++this.currentLayer}if(this.terrain&&this.terrain.postRender(),this.options.showTileBoundaries||this.options.showQueryGeometry||this.options.showTileAABBs){let ef=null;x.values(this.style._layers).forEach(x=>{let em=eu._getLayerSourceCache(x);em&&!x.isHidden(this.transform.zoom)&&(!ef||ef.getSource().maxzoom<em.getSource().maxzoom)&&(ef=em)}),ef&&this.options.showTileBoundaries&&tn.debug(this,ef,ef.getVisibleCoordinates())}this.options.showPadding&&function(x){var eu,ef;let em=x.transform.padding;Io(x,x.transform.height-(em.top||0),3,e3),Io(x,em.bottom||0,3,e5),So(x,em.left||0,3,e4),So(x,x.transform.width-(em.right||0),3,e6);let e_=x.transform.centerPoint;eu=e_.x,ef=x.transform.height-e_.y,Do(x,eu-1,ef-10,2,20,e8),Do(x,eu-10,ef-1,20,2,e8)}(this),this.context.setDefault(),this.frameCounter=(this.frameCounter+1)%Number.MAX_SAFE_INTEGER,this.tileLoaded&&this.options.speedIndexTiming&&(this.loadTimeStamps.push(x.window.performance.now()),this.saveC
60anvasCopy())}renderLayer(x,eu,ef,em){ef.isHidden(this.transform.zoom)||("background"===ef.type||"sky"===ef.type||"custom"===ef.type||em&&em.length)&&(this.id=ef.id,this.gpuTimingStart(ef),x.transform.projection.unsupportedLayers&&x.transform.projection.unsupportedLayers.includes(ef.type)&&(!x.terrain||"custom"!==ef.type)||tn[ef.type](x,eu,ef,em,this.style.placement.variableOffsets,this.options.isInitialLoad),this.gpuTimingEnd())}gpuTimingStart(x){if(!this.options.gpuTiming)return;let eu=this.context.extTimerQuery,ef=this.gpuTimers[x.id];ef||(ef=this.gpuTimers[x.id]={calls:0,cpuTime:0,query:eu.createQueryEXT()}),ef.calls++,eu.beginQueryEXT(eu.TIME_ELAPSED_EXT,ef.query)}gpuTimingDeferredRenderStart(){if(this.options.gpuTimingDeferredRender){let x=this.context.extTimerQuery,eu=x.createQueryEXT();this.deferredRenderGpuTimeQueries.push(eu),x.beginQueryEXT(x.TIME_ELAPSED_EXT,eu)}}gpuTimingDeferredRenderEnd(){if(!this.options.gpuTimingDeferredRender)return;let x=this.context.extTimerQuery;x.endQueryEXT(x.TIME_ELAPSED_EXT)}gpuTimingEnd(){if(!this.options.gpuTiming)return;let x=this.context.extTimerQuery;x.endQueryEXT(x.TIME_ELAPSED_EXT)}collectGpuTimers(){let x=this.gpuTimers;return this.gpuTimers={},x}collectDeferredRenderGpuQueries(){let x=this.deferredRenderGpuTimeQueries;return this.deferredRenderGpuTimeQueries=[],x}queryGpuTimers(x){let eu={};for(let ef in x){let em=x[ef],e_=this.context.extTimerQuery,eg=e_.getQueryObjectEXT(em.query,e_.QUERY_RESULT_EXT)/1e6;e_.deleteQueryEXT(em.query),eu[ef]=eg}return eu}queryGpuTimeDeferredRender(x){if(!this.options.gpuTimingDeferredRender)return 0;let eu=this.context.extTimerQuery,ef=0;for(let em of x)ef+=eu.getQueryObjectEXT(em,eu.QUERY_RESULT_EXT)/1e6,eu.deleteQueryEXT(em);return ef}translatePosMatrix(eu,ef,em,e_,eg){if(!em[0]&&!em[1])return eu;let ex=eg?"map"===e_?this.transform.angle:0:"viewport"===e_?-this.transform.angle:0;if(ex){let x=Math.sin(ex),eu=Math.cos(ex);em=[em[0]*eu-em[1]*x,em[0]*x+em[1]*eu]}let ev=[eg?em[0]:P(ef,em[0],this.transform.zoom),eg?em[1]:P(ef,em[1],this.transform.zoom),0],eb=new Float32Array(16);return x.translate(eb,eu,ev),eb}saveTileTexture(x){let eu=this._tileTextures[x.size[0]];eu?eu.push(x):this._tileTextures[x.size[0]]=[x]}getTileTexture(x){let eu=this._tileTextures[x];return eu&&eu.length>0?eu.pop():null}isPatternMissing(x){return null===x||void 0!==x&&!this.imageManager.getPattern(x.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){let x=this.terrain&&this.terrain.renderingToTexture,eu=this.terrain&&0===this.terrain.exaggeration(),ef=this.style&&this.style.fog,em=[];return this.terrainRenderModeElevated()&&em.push("TERRAIN"),"globe"===this.transform.projection.name&&em.push("GLOBE"),eu&&em.push("ZERO_EXAGGERATION"),ef&&!x&&0!==ef.getOpacity(this.transform.pitch)&&em.push("FOG"),x&&em.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&em.push("OVERDRAW_INSPECTOR"),em}useProgram(x,eu,ef){this.cache=this.cache||{};let em=this.currentGlobalDefines().concat(ef||[]),e_=Pi.cacheKey(eX[x],x,em,eu);return this.cache[e_]||(this.cache[e_]=new Pi(this.context,x,eX[x],eu,e1[x],em)),this.cache[e_]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let x=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(x.FUNC_ADD)}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=x.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new x.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(eu,ef,em){if(this.terrain&&this.terrain.renderingToTexture)return;let e_=this.style.fog;if(e_){let eg=e_.getOpacity(this.transform.pitch),ex=((eu,ef,em,e_,eg,ex,ev,eb,ew,eT,eE)=>{let eS=eu.transform,eM=ef.properties.get("color").toArray01();eM[3]=e_;let eI=eu.frameCounter/1e3%1;return{u_fog_matrix:em?eS.calculateFogTileMatrix(em):eu.identityMat,u_fog_range:ef.getFovAdjustedRange(eS._fov),u_fog_color:eM,u_fog_horizon_blend:ef.properties.get("horizon-blend"),u_fog_temporal_offset:eI,u_frustum_tl:eg,u_frustum_tr:ex,u_frustum_br:ev,u_frustum_bl:eb,u_globe_pos:ew,u_globe_radius:eT,u_viewport:eE,u_globe_transition:x.globeToMercatorTransition(eS.zoom),u_is_globe:+("globe"===eS.projection.name)}})(this,e_,em,eg,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*x.exported.devicePixelRatio,this.transform.height*x.exported.devicePixelRatio]);ef.setFogUniformValues(eu,ex)}}setTileLoadedFlag(x){this.tileLoaded=x}saveCanvasCopy(){let x=this.canvasCopy();x&&(this.frameCopies.push(x),this.tileLoaded=!1)}canvasCopy(){let x=this.context.gl,eu=x.createTexture();return x.bindTexture(x.TEXTURE_2D,eu),x.copyTexImage2D(x.TEXTURE_2D,0,x.RGBA,0,0,x.drawingBufferWidth,x.drawingBufferHeight,0),eu}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;let x=this.style&&this.style.fog;return!!x&&0!==x.getOpacity(this.transform.pitch)}
60getBackgroundTiles(){let eu=this._backgroundTiles,ef=this._backgroundTiles={},em=this.transform.coveringTiles({tileSize:512});for(let e_ of em)ef[e_.key]=eu[e_.key]||new x.Tile(e_,512,this.transform.tileZoom,this);return ef}clearBackgroundTiles(){this._backgroundTiles={}}};let Uo=class Uo{constructor(x=0,eu=0,ef=0,em=0){if(isNaN(x)||x<0||isNaN(eu)||eu<0||isNaN(ef)||ef<0||isNaN(em)||em<0)throw Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=x,this.bottom=eu,this.left=ef,this.right=em}interpolate(eu,ef,em){return null!=ef.top&&null!=eu.top&&(this.top=x.number(eu.top,ef.top,em)),null!=ef.bottom&&null!=eu.bottom&&(this.bottom=x.number(eu.bottom,ef.bottom,em)),null!=ef.left&&null!=eu.left&&(this.left=x.number(eu.left,ef.left,em)),null!=ef.right&&null!=eu.right&&(this.right=x.number(eu.right,ef.right,em)),this}getCenter(eu,ef){let em=x.clamp((this.left+eu-this.right)/2,0,eu),e_=x.clamp((this.top+ef-this.bottom)/2,0,ef);return new x.pointGeometry(em,e_)}equals(x){return this.top===x.top&&this.bottom===x.bottom&&this.left===x.left&&this.right===x.right}clone(){return new Uo(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}};function No(eu,ef){let em=x.getColumn(eu,3);x.fromQuat(eu,ef),x.setColumn(eu,3,em)}function Go(eu,ef){let em=x.identity$1([]);return x.rotateZ$1(em,em,-ef),x.rotateX$1(em,em,-eu),em}function jo(eu,ef){let em=[eu[0],eu[1],0],e_=[ef[0],ef[1],0];if(x.length(em)>=1e-15){let eu=x.normalize([],em);x.scale$2(e_,eu,x.dot(e_,eu)),ef[0]=e_[0],ef[1]=e_[1]}let eg=x.cross([],ef,eu);if(1e-15>x.len(eg))return null;let ex=Math.atan2(-eg[1],eg[0]);return Go(Math.atan2(Math.sqrt(eu[0]*eu[0]+eu[1]*eu[1]),-eu[2]),ex)}let Zo=class Zo{constructor(x,eu){this.position=x,this.orientation=eu}get position(){return this._position}set position(eu){if(eu){let ef=eu instanceof x.MercatorCoordinate?eu:new x.MercatorCoordinate(eu[0],eu[1],eu[2]);
60this._renderWorldCopies&&(ef.x=x.wrap(ef.x,0,1)),this._position=ef}else this._position=null}lookAtPoint(eu,ef){if(this.orientation=null,!this.position)return;let em=this.position,e_=this._elevation?this._elevation.getAtPointOrZero(x.MercatorCoordinate.fromLngLat(eu)):0,eg=x.MercatorCoordinate.fromLngLat(eu,e_),ex=[eg.x-em.x,eg.y-em.y,eg.z-em.z];ef||(ef=[0,0,1]),ef[2]=Math.abs(ef[2]),this.orientation=jo(ex,ef)}setPitchBearing(eu,ef){this.orientation=Go(x.degToRad(eu),x.degToRad(-ef))}};let Vo=class Vo{constructor(eu,ef){this._transform=x.identity([]),this.orientation=ef,this.position=eu}get mercatorPosition(){let eu=this.position;return new x.MercatorCoordinate(eu[0],eu[1],eu[2])}get position(){let eu=x.getColumn(this._transform,3);return[eu[0],eu[1],eu[2]]}set position(eu){eu&&x.setColumn(this._transform,3,[eu[0],eu[1],eu[2],1])}get orientation(){return this._orientation}set orientation(eu){this._orientation=eu||x.identity$1([]),eu&&No(this._transform,this._orientation)}getPitchBearing(){let x=this.forward(),eu=this.right();return{bearing:Math.atan2(-eu[1],eu[0]),pitch:Math.atan2(Math.sqrt(x[0]*x[0]+x[1]*x[1]),-x[2])}}setPitchBearing(x,eu){this._orientation=Go(x,eu),No(this._transform,this._orientation)}forward(){let eu=x.getColumn(this._transform,2);return[-eu[0],-eu[1],-eu[2]]}up(){let eu=x.getColumn(this._transform,1);return[-eu[0],-eu[1],-eu[2]]}right(){let eu=x.getColumn(this._transform,0);return[eu[0],eu[1],eu[2]]}getCameraToWorld(eu,ef){let em=new Float64Array(16);return x.invert(em,this.getWorldToCamera(eu,ef)),em}getWorldToCameraPosition(eu,ef,em){let e_=this.position;x.scale$2(e_,e_,-eu);let eg=new Float64Array(16);return x.fromScaling(eg,[em,em,em]),x.translate(eg,eg,e_),eg[10]*=ef,eg}getWorldToCamera(eu,ef){let em=new Float64Array(16),e_=new Float64Array(4),eg=this.position;return x.conjugate(e_,this._orientation),x.scale$2(eg,eg,-eu),x.fromQuat(em,e_),x.translate(em,em,eg),em[1]*=-1,em[5]*=-1,em[9]*=-1,em[13]*=-1,em[8]*=ef,em[9]*=ef,em[10]*=ef,em[11]*=ef,em}getCameraToClipPerspective(eu,ef,em,e_){let eg=new Float64Array(16);return x.perspective(eg,eu,ef,em,e_),eg}getDistanceToElevation(eu,ef=!1){let em=0===eu?0:x.mercatorZfromAltitude(eu,ef?x.latFromMercatorY(this.position[1]):this.position[1]),e_=this.forward();return(em-this.position[2])/e_[2]}clone(){return new Vo([...this.position],[...this.orientation])}};function Wo(eu,ef){let em=qo(eu.projection,eu.zoom,eu.width,eu.height),e_=function(eu,ef,em,e_,eg){let ex=new x.LngLat(em.lng-180*ta,em.lat),ev=new x.LngLat(em.lng+180*ta,em.lat),eb=eu.project(ex.lng,ex.lat),ew=eu.project(ev.lng,ev.lat),eT=-Math.atan2(ew.y-eb.y,ew.x-eb.x),eE=x.MercatorCoordinate.fromLngLat(em);eE.y=x.clamp(eE.y,-.999975,.999975);let eS=eE.toLngLat(),eM=eu.project(eS.lng,eS.lat),eI=x.MercatorCoordinate.fromLngLat(eS);eI.x+=ta;let eA=eI.toLngLat(),eC=eu.project(eA.lng,eA.lat),ez=Yo(eC.x-eM.x,eC.y-eM.y,eT),eD=x.MercatorCoordinate.fromLngLat(eS);eD.y+=ta;let ek=eD.toLngLat(),eP=eu.project(ek.lng,ek.lat),eL=Yo(eP.x-eM.x,eP.y-eM.y,eT),eR=Math.abs(ez.x)/Math.abs(eL.y),eB=x.identity([]);x.rotateZ(eB,eB,-eT*(1-(eg?0:e_)));let eO=x.identity([]);return x.scale(eO,eO,[1,1-(1-eR)*e_,1]),eO[4]=-eL.x/eL.y*e_,x.rotateZ(eO,eO,eT),x.multiply(eO,eB,eO),eO}(eu.projection,0,eu.center,em,ef),eg=Xo(eu);return x.scale(e_,e_,[eg,eg,1]),e_}function Xo(eu){let ef=eu.projection,em=qo(eu.projection,eu.zoom,eu.width,eu.height),e_=Ho(ef,eu.center),eg=Ho(ef,x.LngLat.convert(ef.center));return Math.pow(2,e_*em+(1-em)*eg)}function qo(eu,ef,em,e_,eg=1/0){let ex=eu.range;if(!ex)return 0;let ev=Math.min(eg,Math.max(em,e_)),eb=Math.log(ev/1024)/Math.LN2;return x.smoothstep(ex[0]+eb,ex[1]+eb,ef)}let ta=1/4e4;function Ho(eu,ef){let em=x.clamp(ef.lat,-x.MAX_MERCATOR_LATITUDE,x.MAX_MERCATOR_LATITUDE),e_=new x.LngLat(ef.lng-180*ta,em),eg=new x.LngLat(ef.lng+180*ta,em),ex=eu.project(e_.lng,em),ev=eu.project(eg.lng,em),eb=x.MercatorCoordinate.fromLngLat(e_),ew=x.MercatorCoordinate.fromLngLat(eg),eT=ev.x-ex.x,eE=ev.y-ex.y,eS=ew.x-eb.x,eM=ew.y-eb.y,eI=Math.sqrt((eS*eS+eM*eM)/(eT*eT+eE*eE));return Math.log(eI)/Math.LN2}function Yo(x,eu,ef){let em=Math.cos(ef),e_=Math.sin(ef);return{x:x*em-eu*e_,y:x*e_+eu*em}}let Ko=class Ko{constructor(eu,ef,em,e_,eg,ex,ev){this.tileSize=512,this._renderWorldCopies=void 0===eg||eg,this._minZoom=eu||0,this._maxZoom=ef||22,this._minPitch=null==em?0:em,this._maxPitch=null==e_?60:e_,this.setProjection(ex),this.setMaxBounds(ev),this.width=0,this.height=0,this._center=new x.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new Uo,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Vo,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){let x=new Ko(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return x._elevation=this._elevation,x._centerAltitude=this._centerAltitude,x._centerAltitudeValidForE
60xaggeration=this._centerAltitudeValidForExaggeration,x.tileSize=this.tileSize,x.mercatorFromTransition=this.mercatorFromTransition,x.width=this.width,x.height=this.height,x.cameraElevationReference=this.cameraElevationReference,x._center=this._center,x._setZoom(this.zoom),x._seaLevelZoom=this._seaLevelZoom,x.angle=this.angle,x._fov=this._fov,x._pitch=this._pitch,x._nearZ=this._nearZ,x._farZ=this._farZ,x._averageElevation=this._averageElevation,x._unmodified=this._unmodified,x._edgeInsets=this._edgeInsets.clone(),x._camera=this._camera.clone(),x._calcMatrices(),x.freezeTileCoverage=this.freezeTileCoverage,x.frustumCorners=this.frustumCorners,x}get elevation(){return this._elevation}set elevation(x){this._elevation!==x&&(this._elevation=x,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(x,eu=!1){let ef=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(null==this._seaLevelZoom||ef)&&this._updateCameraOnTerrain(),(x||ef)&&this._constrainCamera(eu),this._calcMatrices()}getProjection(){return x.pick(this.projection,["name","center","parallels"])}setProjection(eu){this.projectionOptions=eu||{name:"mercator"};let ef=this.projection?this.getProjection():void 0;this.projection=x.getProjection(this.projectionOptions);let em=!t(ef,this.getProjection());return em&&this._calcMatrices(),this.mercatorFromTransition=!1,em}setMercatorFromTransition(){let eu=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:"mercator"},this.projection=x.getProjection({name:"mercator"});let ef=eu!==this.projection.name;return ef&&this._calcMatrices(),ef}get minZoom(){return this._minZoom}set minZoom(x){this._minZoom!==x&&(this._minZoom=x,this.zoom=Math.max(this.zoom,x))}get maxZoom(){return this._maxZoom}set maxZoom(x){this._maxZoom!==x&&(this._maxZoom=x,this.zoom=Math.min(this.zoom,x))}get minPitch(){return this._minPitch}set minPitch(x){this._minPitch!==x&&(this._minPitch=x,this.pitch=Math.max(this.pitch,x))}get maxPitch(){return this._maxPitch}set maxPitch(x){this._maxPitch!==x&&(this._maxPitch=x,this.pitch=Math.min(this.pitch,x))}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(x){void 0===x?x=!0:null===x&&(x=!1),this._renderWorldCopies=x}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){let x=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(x))}get cameraWorldSize(){let x=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(x))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return x.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new x.pointGeometry(this.width,this.height)}get bearing(){return x.wrap(this.rotation,-180,180)}set bearing(x){this.rotation=x}get rotation(){return-this.angle/Math.PI*180}set rotation(eu){var ef,em,e_,eg,ex,ev,eb,ew,eT,eE;let eS=-eu*Math.PI/180;this.angle!==eS&&(this._unmodified=!1,this.angle=eS,this._calcMatrices(),this.rotationMatrix=(ef=new x.ARRAY_TYPE(4),x.ARRAY_TYPE!=Float32Array&&(ef[1]=0,ef[2]=0),ef[0]=1,ef[3]=1,ef),em=this.rotationMatrix,e_=this.rotationMatrix,eg=this.angle,ex=e_[0],ev=e_[1],eb=e_[2],ew=e_[3],eT=Math.sin(eg),eE=Math.cos(eg),em[0]=ex*eE+eb*eT,em[1]=ev*eE+ew*eT,em[2]=-(ex*eT)+eb*eE,em[3]=-(ev*eT)+ew*eE)}get pitch(){return this._pitch/Math.PI*180}set pitch(eu){let ef=x.clamp(eu,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==ef&&(this._unmodified=!1,this._pitch=ef,this._calcMatrices())}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){let x=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/x)}set fov(eu){eu=Math.max(.01,Math.min(60,eu)),this._fov!==eu&&(this._unmodified=!1,this._fov=x.degToRad(eu),this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(x){this._averageElevation=x,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(x){let eu=Math.min(Math.max(x,this.minZoom),this.maxZoom);this._zoom!==eu&&(this._unmodified=!1,this._setZoom(eu),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}
60_setZoom(x){this._zoom=x,this.scale=this.zoomScale(x),this.tileZoom=Math.floor(x),this.zoomFraction=x-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);let x=this._elevation;this._centerAltitude=x.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=x.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){void 0!==this._centerAltitudeValidForExaggeration&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;let eu=this._elevation,ef=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],em=this.horizonLineFromTop(),e_=0,eg=0;for(let ex=0;ex<ef.length;ex++){let ev=new x.pointGeometry(ef[ex][0]*this.width,em+ef[ex][1]*(this.height-em)),eb=eu.pointCoordinate(ev);if(!eb)continue;let ew=1/Math.hypot(eb[0]-this._camera.position[0],eb[1]-this._camera.position[1]);e_+=eb[3]*ew,eg+=ew}return 0===eg?NaN:e_/eg}get center(){return this._center}set center(x){x.lat===this._center.lat&&x.lng===this._center.lng||(this._unmodified=!1,this._center=x,this._terrainEnabled()&&("ground"===this.cameraElevationReference?this._updateCameraOnTerrain():this._updateZoomFromElevation()),this._constrain(),this._calcMatrices())}_updateZoomFromElevation(){if(null==this._seaLevelZoom||!this._elevation)return;let x=this._seaLevelZoom,eu=this._elevation.getAtPointOrZero(this.locationCoordinate(this.center)),ef=this.pixelsPerMeter/this.worldSize*eu,em=this._mercatorZfromZoom(x),e_=this._mercatorZfromZoom(this._maxZoom),eg=Math.max(em-ef,e_);this._setZoom(this._zoomFromMercatorZ(eg))}get padding(){return this._edgeInsets.toJSON()}set padding(x){this._edgeInsets.equals(x)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,x,1),this._calcMatrices())}computeZoomRelativeTo(eu){let ef;let em=this.rayIntersectionCoordinate(this.pointRayIntersection(this.centerPoint,eu.toAltitude()));ef=eu.z<this._camera.position[2]?[em.x,em.y,em.z]:[eu.x,eu.y,eu.z];let e_=x.length(x.sub([],this._camera.position,ef));return x.clamp(this._zoomFromMercatorZ(e_),this._minZoom,this._maxZoom)}setFreeCameraOptions(eu){if(!this.height||!eu.position&&!eu.orientation)return;this._updateCameraState();let ef=!1;if(eu.orientation&&!x.exactEquals(eu.orientation,this._camera.orientation)&&(ef=this._setCameraOrientation(eu.orientation)),eu.position){let em=[eu.position.x,eu.position.y,eu.position.z];x.exactEquals$1(em,this._camera.position)||(this._setCameraPosition(em),ef=!0)}ef&&(this._updateStateFromCamera(),this.recenterOnTerrain())}getFreeCameraOptions(){this._updateCameraState();let eu=this._camera.position,ef=new Zo;return ef.position=new x.MercatorCoordinate(eu[0],eu[1],eu[2]),ef.orientation=this._camera.orientation,ef._elevation=this.elevation,ef._renderWorldCopies=this.renderWorldCopies,ef}_setCameraOrientation(eu){if(!x.length$1(eu))return!1;x.normalize$1(eu,eu);let ef=x.transformQuat([],[0,0,-1],eu),em=x.transformQuat([],[0,-1,0],eu);if(em[2]<0)return!1;let e_=jo(ef,em);return!!e_&&(this._camera.orientation=e_,!0)}_setCameraPosition(eu){let ef=this.zoomScale(this.minZoom)*this.tileSize,em=this.zoomScale(this.maxZoom)*this.tileSize,e_=this.cameraToCenterDistance;eu[2]=x.clamp(eu[2],e_/em,e_/ef),this._camera.position=eu}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}get fovAboveCenter(){return this._fov*(.5+this.centerOffset.y/this.height)}isPaddingEqual(x){return this._edgeInsets.equals(x)}interpolatePadding(x,eu,ef){this._unmodified=!1,this._edgeInsets.interpolate(x,eu,ef),this._constrain(),this._calcMatrices()}coveringZoomLevel(x){let eu=(x.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/x.tileSize));return Math.max(0,eu)}getVisibleUnwrappedCoordinates(eu){let ef=[new x.UnwrappedTileID(0,eu)];if(this.renderWorldCopies){let em=this.pointCoordinate(new x.pointGeometry(0,0)),e_=this.pointCoordinate(new x.pointGeometry(this.width,0)),eg=this.pointCoordinate(new x.pointGeometry(this.width,this.height)),ex=this.pointCoordinate(new x.pointGeometry(0,this.height)),ev=Math.floor(Math.min(em.x,e_.x,eg.x,ex.x)),eb=Math.floor(Math.max(em.x,e_.x,eg.x,ex.x));for(let em=ev-1;em<=eb+1;em++)0!==em&&ef.push(new x.UnwrappedTileID(em,eu))}return ef}coveringTiles(eu){let ef=this.coveringZoomLevel(eu),em=ef,e_=this.elevation&&!eu.isTerrainDEM,eg="mercator"===this.projection.name;if(void 0!==eu.minzoom&&ef<eu.minzoom)return[];void 0!==eu.maxzoom&&ef>eu.maxzoom&&(ef=eu.maxzoom);let ex=this.locationCoordinate(this.center),ev=this.center.lat,eb=1<<ef,ew=[eb*ex.x,eb*ex.y,0],eT="globe"===this.projection.name,eE=!eT,eS=x.Frustum.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,ef,eE),eM=eT?this._camera.mercatorPosition:this.pointCoordinate(this.getCameraPoint()),eI=eb*x.mercatorZfromAltitude(1,this.center.lat),eA=this._camera.position[2]/x.mercatorZfromAltitude(1,this.center.lat),eC=[eb*eM.x,eb*eM.y,eA*(eE?1:eI)],ez=this.cameraToCenterDistance/eu.tileSize*(eu.roundZoom?1:.502),eD=this.pitch<=60&&this._edgeInsets.top<=this._edgeInsets.bottom&&!this._elevation&&!this.projection.isReprojectedInTileSpace?ef:0,ek=eu.isTerrainDEM&&this._elevation?1e4*this._elevation.exaggeration():this._centerAltitude,eP=eu.isTerrainDEM?-ek:this._elevation?this._elevation.getMinElevationBelowMSL():0,eL=this.projection.isReprojectedInTileSpace?Xo(this):1,w=eu=>{let ef=1/4e4,em=new x.MercatorCoordinate(eu.x+ef,eu.y,eu.z),e_=new x.MercatorCoordinate(eu.x,eu.y+ef,eu.z),eg=eu.toLngLat(),ex=em.toLngLat(),ev=e_.toLngLat(),eb=this.locationCoordinate(eg),ew=this.locationCoordinate(ex),eT=this.locationCoordinate(ev),eE=Math.hypot(ew.x-eb.x,ew.y-eb.y),eS=Math.hypot(eT.x-eb.x,eT.y-eb.
60y);return Math.sqrt(eE*eS)*eL/ef},T=eu=>({aabb:x.tileAABB(this,eb,0,0,0,eu,eP,ek,this.projection),zoom:0,x:0,y:0,minZ:eP,maxZ:ek,wrap:eu,fullyVisible:!1}),eR=[],eB=[],eO=ef,eF=eu.reparseOverscaled?em:ef,S=x=>x*x,eU=S((eA-this._centerAltitude)*eI),L=x=>{if(!this._elevation||!x.tileID||!eg)return;let eu=this._elevation.getMinMaxForTile(x.tileID),ef=x.aabb;eu?(ef.min[2]=eu.min,ef.max[2]=eu.max,ef.center[2]=(ef.min[2]+ef.max[2])/2):(x.shouldSplit=A(x),x.shouldSplit||(ef.min[2]=ef.max[2]=ef.center[2]=this._centerAltitude))},A=eu=>{if(eu.zoom<eD)return!0;if(eu.zoom===eO)return!1;if(null!=eu.shouldSplit)return eu.shouldSplit;let ef=eu.aabb.distanceX(eC),eg=eu.aabb.distanceY(eC),ex=eU,eb=1;if(eT){ex=S(eu.aabb.distanceZ(eC));let ef=Math.pow(2,eu.zoom),em=x.latFromMercatorY((eu.y+1)/ef),e_=x.latFromMercatorY(eu.y/ef),eg=Math.min(Math.max(ev,em),e_),ew=x.circumferenceAtLatitude(eg)/x.circumferenceAtLatitude(ev);if(eb=eg===ev?1/Math.max(1,this._mercatorScaleRatio-.3):Math.min(1,ew/this._mercatorScaleRatio),this.zoom<=x.GLOBE_ZOOM_THRESHOLD_MIN&&eu.zoom===eO-1&&ew>=.9)return!0}else if(e_&&(ex=S(eu.aabb.distanceZ(eC)*eI)),this.projection.isReprojectedInTileSpace&&em<=5){let ef=Math.pow(2,eu.zoom),em=w(new x.MercatorCoordinate((eu.x+.5)/ef,(eu.y+.5)/ef));eb=em>.85?1:em}let ew=ef*ef+eg*eg+ex,eE=S((1<<eO-eu.zoom)*ez*eb*((x,eu)=>{if(eu*S(.707)<x)return 1;let ef=Math.sqrt(eu/x);return ef/(1.4144271570014144+(Math.pow(1.1,ef-1.4144271570014144+1)-1)/(1.1-1)-1)})(Math.max(ex,eU),ew));return ew<eE};if(this.renderWorldCopies)for(let x=1;x<=3;x++)eR.push(T(-x)),eR.push(T(x));for(eR.push(T(0));eR.length>0;){let em=eR.pop(),ex=em.x,ev=em.y,eE=em.fullyVisible;if(!eE){let x=em.aabb.intersects(eS);if(0===x)continue;eE=2===x}if(em.zoom!==eO&&A(em))for(let eu=0;eu<4;eu++){let ef=(ex<<1)+eu%2,ew=(ev<<1)+(eu>>1),eS={aabb:eg?em.aabb.quadrant(eu):x.tileAABB(this,eb,em.zoom+1,ef,ew,em.wrap,em.minZ,em.maxZ,this.projection),zoom:em.zoom+1,x:ef,y:ew,wrap:em.wrap,fullyVisible:eE,tileID:void 0,shouldSplit:void 0,minZ:em.minZ,maxZ:em.maxZ};e_&&!eT&&(eS.tileID=new x.OverscaledTileID(em.zoom+1===eO?eF:em.zoom+1,em.wrap,em.zoom+1,ef,ew),L(eS)),eR.push(eS)}else{let e_=em.zoom===eO?eF:em.zoom;if(eu.minzoom&&eu.minzoom>e_)continue;let eg=ew[0]-(.5+ex+(em.wrap<<em.zoom))*(1<<ef-em.zoom),eb=ew[1]-.5-ev,eT=em.tileID?em.tileID:new x.OverscaledTileID(e_,em.wrap,em.zoom,ex,ev);eB.push({tileID:eT,distanceSq:eg*eg+eb*eb})}}if(this.fogCullDistSq){let ef=this.fogCullDistSq,em=this.horizonLineFromTop();eB=eB.filter(e_=>{let eg=[0,0,0,1],ex=[x.EXTENT,x.EXTENT,0,1],ev=this.calculateFogTileMatrix(e_.tileID.toUnwrapped());x.transformMat4$1(eg,eg,ev),x.transformMat4$1(ex,ex,ev);let eb=x.getAABBPointSquareDist(eg,ex);if(0===eb)return!0;let ew=!1,eT=this._elevation;if(eT&&eb>ef&&0!==em){let ef;let eg=this.calculateProjMatrix(e_.tileID.toUnwrapped());eu.isTerrainDEM||(ef=eT.getMinMaxForTile(e_.tileID)),ef||(ef={min:eP,max:ek});let ex=x.furthestTileCorner(this.rotation),ev=[ex[0]*x.EXTENT,ex[1]*x.EXTENT,ef.max];x.transformMat4(ev,ev,eg),ew=(1-ev[1])*this.height*.5<em}return eb<ef||ew})}return eB.sort((x,eu)=>x.distanceSq-eu.distanceSq).map(x=>x.tileID)}resize(x,eu){this.width=x,this.height=eu,this.pixelsToGLUnits=[2/x,-2/eu],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(x){return Math.pow(2,x)}scaleZoom(x){return Math.log(x)/Math.LN2}project(eu){let ef=x.clamp(eu.lat,-x.MAX_MERCATOR_LATITUDE,x.MAX_MERCATOR_LATITUDE),em=this.projection.project(eu.lng,ef);return new x.pointGeometry(em.x*this.worldSize,em.y*this.worldSize)}unproject(x){return this.projection.unproject(x.x/this.worldSize,x.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/x.mercatorZfromAltitude(1,this.center.lat)/this.worldSize}setLocationAtPoint(eu,ef){let em,e_;let eg=this.centerPoint;if("globe"===this.projection.name){let x=this.worldSize;em=(ef.x-eg.x)/x,e_=(ef.y-eg.y)/x}else{let x=this.pointCoordinate(ef),eu=this.pointCoordinate(eg);em=x.x-eu.x,e_=x.y-eu.y}let ex=this.locationCoordinate(eu);this.setLocation(new x.MercatorCoordinate(ex.x-em,ex.y-e_))}setLocation(x){this.center=this.coordinateLocation(x),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(x){return this.projection.locationPoint(this,x)}locationPoint3D(x){return this.projection.locationPoint(this,x,!0)}pointLocation(x){return this.coordinateLocation(this.pointCoordinate(x))}pointLocation3D(x){return this.coordinateLocation(this.pointCoordinate3D(x))}locationCoordinate(eu,ef){let em=ef?x.mercatorZfromAltitude(ef,eu.lat):void 0,e_=this.projection.project(eu.lng,eu.lat);return new x.MercatorCoordinate(e_.x,e_.y,em)}coordinateLocation(x){return this.projection.unproject(x.x,x.y)}pointRayIntersection(eu,ef){let em=null!=ef?ef:this._centerAltitude,e_=[eu.x,eu.y,0,1],eg=[eu.x,eu.y,1,1];x.transformMat4$1(e_,e_,this.pixelMatrixInverse),x.transformMat4$1(eg,eg,this.pixelMatrixInverse);let ex=eg[3];x.scale$1(e_,e_,1/e_[3]),x.scale$1(eg,eg,1/ex);let ev=e_[2],eb=eg[2];return{p0:e_,p1:eg,t:ev===eb?0:(em-ev)/(eb-ev)}}screenPointToMercatorRay(eu){let ef=[eu.x,eu.y,0,1],em=[eu.x,eu.y,1,1];return x.transformMat4$1(ef,ef,this.pixelMatrixInverse),x.transformMat4$1(em,em,this.pixelMatrixInverse),x.scale$1(ef,ef,1/ef[3]),x.scale$1(em,em,1/em[3]),ef[2]=x.mercatorZfromAltitude(ef[2],this._center.lat)*this.worldSize,em[2]=x.mercatorZfromAltitude(em[2],this._center.lat)*this.worldSize,x.scale$1(ef,ef,1/this.worldSize),x.scale$1(em,em,1/this.worldSize),new x.Ray([ef[0],ef[1],ef[2]],x.normalize([],x.sub([],em,ef)))}rayIntersectionCoordinate(eu){let{p0:ef,p1:em,t:e_}=eu,eg=x.mercatorZfromAltitude(ef[2],this._center.lat),ex=x.mercatorZfromAltitude(em[2],this._center.lat);return new x.MercatorCoordinate(x.number(ef[0],em[0],e_)/this.worldSize,x.number(ef[1],em[1],e_)/this.worldSize,x.number(eg,ex,e_))}pointCoordinate(x,eu=this._centerAltitude){return this.projection.pointCoordinate(this,x.x,x.y,eu)}
60pointCoordinate3D(eu){if(!this.elevation)return this.pointCoordinate(eu);let ef=this.projection.pointCoordinate3D(this,eu.x,eu.y);if(ef)return new x.MercatorCoordinate(ef[0],ef[1],ef[2]);let em=0,e_=this.horizonLineFromTop();if(eu.y>e_)return this.pointCoordinate(eu);let eg=.02*e_,ex=eu.clone();for(let eu=0;eu<10&&e_-em>eg;eu++){ex.y=x.number(em,e_,.66);let eu=this.projection.pointCoordinate3D(this,ex.x,ex.y);eu?(e_=ex.y,ef=eu):em=ex.y}return ef?new x.MercatorCoordinate(ef[0],ef[1],ef[2]):this.pointCoordinate(eu)}isPointAboveHorizon(x){return this.projection.isPointAboveHorizon(this,x)}_coordinatePoint(eu,ef){let em=ef&&this.elevation?this.elevation.getAtPointOrZero(eu,this._centerAltitude):this._centerAltitude,e_=[eu.x*this.worldSize,eu.y*this.worldSize,em+eu.toAltitude(),1];return x.transformMat4$1(e_,e_,this.pixelMatrix),e_[3]>0?new x.pointGeometry(e_[0]/e_[3],e_[1]/e_[3]):new x.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){let{top:eu,left:ef}=this._edgeInsets,em=this.height-this._edgeInsets.bottom,e_=this.width-this._edgeInsets.right,eg=this.pointLocation3D(new x.pointGeometry(ef,eu)),ex=this.pointLocation3D(new x.pointGeometry(e_,eu)),ev=this.pointLocation3D(new x.pointGeometry(e_,em)),eb=this.pointLocation3D(new x.pointGeometry(ef,em)),ew=Math.min(eg.lng,ex.lng,ev.lng,eb.lng),eT=Math.max(eg.lng,ex.lng,ev.lng,eb.lng),eE=Math.min(eg.lat,ex.lat,ev.lat,eb.lat),eS=Math.max(eg.lat,ex.lat,ev.lat,eb.lat),eM=Math.pow(2,-this.zoom)/16*270,eI="globe"===this.projection.name?1:4,m=(eu,ef,em,e_,eg)=>{let ex=(eu+em)/2,ev=(ef+e_)/2,eb=new x.pointGeometry(ex,ev),{lng:eA,lat:eC}=this.pointLocation3D(eb),ez=Math.max(0,ew-eA,eE-eC,eA-eT,eC-eS);ew=Math.min(ew,eA),eT=Math.max(eT,eA),eE=Math.min(eE,eC),eS=Math.max(eS,eC),(eg<eI||ez>eM)&&(m(eu,ef,ex,ev,eg+1),m(ex,ev,em,e_,eg+1))};if(m(ef,eu,e_,eu,1),m(e_,eu,e_,em,1),m(e_,em,ef,em,1),m(ef,em,ef,eu,1),"globe"===this.projection.name){let[eu,ef]=x.polesInViewport(this);eu?(eS=90,eT=180,ew=-180):ef&&(eE=-90,eT=180,ew=-180)}return new x.LngLatBounds(new x.LngLat(ew,eE),new x.LngLat(eT,eS))}_getBoundsRectangular(eu,ef){let{top:em,left:e_}=this._edgeInsets,eg=this.height-this._edgeInsets.bottom,ex=this.width-this._edgeInsets.right,ev=new x.pointGeometry(e_,em),eb=new x.pointGeometry(ex,em),ew=new x.pointGeometry(ex,eg),eT=new x.pointGeometry(e_,eg),eE=this.pointCoordinate(ev,eu),eS=this.pointCoordinate(eb,eu),eM=this.pointCoordinate(ew,ef),eI=this.pointCoordinate(eT,ef),m=(x,eu)=>(eu.y-x.y)/(eu.x-x.x);return eE.y>1&&eS.y>=0?eE=new x.MercatorCoordinate((1-eI.y)/m(eI,eE)+eI.x,1):eE.y<0&&eS.y<=1&&(eE=new x.MercatorCoordinate(-eI.y/m(eI,eE)+eI.x,0)),eS.y>1&&eE.y>=0?eS=new x.MercatorCoordinate((1-eM.y)/m(eM,eS)+eM.x,1):eS.y<0&&eE.y<=1&&(eS=new x.MercatorCoordinate(-eM.y/m(eM,eS)+eM.x,0)),(new x.LngLatBounds).extend(this.coordinateLocation(eE)).extend(this.coordinateLocation(eS)).extend(this.coordinateLocation(eI)).extend(this.coordinateLocation(eM))}_getBoundsRectangularTerrain(){let x=this.elevation;if(!x.visibleDemTiles.length||x.isUsingMockSource())return this._getBoundsRectangular(0,0);let eu=x.visibleDemTiles.reduce((x,eu)=>{if(eu.dem){let ef=eu.dem.tree;x.min=Math.min(x.min,ef.minimums[0]),x.max=Math.max(x.max,ef.maximums[0])}return x},{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(eu.min*x.exaggeration(),eu.max*x.exaggeration())}getBounds(){return"mercator"===this.projection.name||"equirectangular"===this.projection.name?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(x=!0){let eu=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,ef=this.height/2-eu*(1-this._horizonShift);return x?Math.max(0,ef):ef}getMaxBounds(){return this.maxBounds}setMaxBounds(eu){this.maxBounds=eu,this.minLat=-x.MAX_MERCATOR_LATITUDE,this.maxLat=x.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,eu&&(this.minLat=eu.getSouth(),this.maxLat=eu.getNorth(),this.minLng=eu.getWest(),this.maxLng=eu.getEast(),this.maxLng<this.minLng&&(this.maxLng+=360)),this.worldMinX=x.mercatorXfromLng(this.minLng)*this.tileSize,this.worldMaxX=x.mercatorXfromLng(this.maxLng)*this.tileSize,this.worldMinY=x.mercatorYfromLat(this.maxLat)*this.tileSize,this.worldMaxY=x.mercatorYfromLat(this.minLat)*this.tileSize,this._constrain()}calculatePosMatrix(x,eu){return this.projection.createTileMatrix(this,eu,x)}calculateDistanceTileData(eu){let ef=eu.key,em=this._distanceTileDataCache;if(em[ef])return em[ef];let e_=eu.canonical,eg=1/this.height,ex=this.cameraWorldSize,ev=ex/this.zoomScale(e_.z),eb=(e_.x+Math.pow(2,e_.z)*eu.wrap)*ev,ew=e_.y*ev,eT=this.point;eT.x*=ex/this.worldSize,eT.y*=ex/this.worldSize;let eE=this.angle,eS=Math.sin(-eE),eM=-Math.cos(-eE);return em[ef]={bearing:[eS,eM],center:[(eT.x-eb)*eg,(eT.y-ew)*eg],scale:ev/x.EXTENT*eg},em[ef]}calculateFogTileMatrix(eu){let ef=eu.key,em=this._fogTileMatrixCache;if(em[ef])return em[ef];let e_=this.projection.createTileMatrix(this,this.cameraWorldSizeForFog,eu);return x.multiply(e_,this.worldToFogMatrix,e_),em[ef]=new Float32Array(e_),em[ef]}calculateProjMatrix(eu,ef=!1){let em=eu.key,e_=ef?this._alignedProjMatrixCache:this._projMatrixCache;if(e_[em])return e_[em];let eg=this.calculatePosMatrix(eu,this.worldSize);return x.multiply(eg,this.projection.isReprojectedInTileSpace?this.mercatorMatrix:ef?this.alignedProjMatrix:this.projMatrix,eg),e_[em]=new Float32Array(eg),e_[em]}calculatePixelsToTileUnitsMatrix(eu){let ef=eu.tileID.key,em=this._pixelsToTileUnitsCache;if(em[ef])return em[ef];let e_=function(eu,ef){var em,e_,eg,ex,ev,eb,ew,eT;let{scale:eE}=eu.tileTransform,eS=eE*x.EXTENT/(eu.tileSize*Math.pow(2,ef.zoom-eu.tileID.overscaledZ+eu.tileID.canonical.z));return em=new Float32Array(4),ex=(e_=ef.inverseAdjustmentMatrix)[1],ev=e_[2],eb=e_[3],eT=(eg=[eS,eS])[1],em[0]=e_[0]*(ew=eg[0]),em[1]=ex*ew,em[2]=ev*eT,em[3]=eb*eT,em}(eu,this);return em[ef]=e_,em[ef]}customLayerMatrix(){return this.mercatorMatrix.slice()}globeToMercatorMatrix(){if("globe"===this.projection.name){let eu=1/this.worldSize,ef=x.fromScaling([],[eu,eu,eu]);return x.multiply(ef,ef,this.globeMatrix),ef}}recenterOnTerrain(){if(!this._elevation||"globe"===this.projection.name)return;let eu=this._elevation;this._updateCameraState();let ef=x.mercatorZfromAltitude(1,this._center.lat)*this.worldSize,em=this._computeCameraPosition(ef),e_=this._camera.forward(),eg=x.mercatorZfromAltitude(1,this._center.lat);em[2]/=eg,e_[2]/=eg,x.normalize(e_,e_);let ex=eu.raycast(em,e_,eu.exaggeration());if(ex){let eu=x.scaleAndAdd([],em,e_,ex),ef=new x.MercatorCoordinate(eu[0],eu[1],x.mercatorZfromAltitude(eu[2],x.latFromMercatorY(eu[1])
60)),ev=(ef.z+x.length([ef.x-em[0],ef.y-em[1],ef.z-em[2]*eg]))*this._pixelsPerMercatorPixel;this._seaLevelZoom=this._zoomFromMercatorZ(ev),this._centerAltitude=ef.toAltitude(),this._center=this.coordinateLocation(ef),this._updateZoomFromElevation(),this._constrain(),this._calcMatrices()}}_constrainCamera(eu=!1){if(!this._elevation)return;let ef=this._elevation,em=x.mercatorZfromAltitude(1,this._center.lat)*this.worldSize,e_=this._computeCameraPosition(em),eg=ef.getAtPointOrZero(new x.MercatorCoordinate(...e_)),ex=this.pixelsPerMeter/this.worldSize*eg,ev=this._minimumHeightOverTerrain(),eb=e_[2]-ex;if(eb<=ev){if(eb<0||eu){let eu=this.locationCoordinate(this._center,this._centerAltitude),ef=[e_[0],e_[1],eu.z-e_[2]],em=x.length(ef);ef[2]-=(ev-eb)/this._pixelsPerMercatorPixel;let eg=x.length(ef);if(0===eg)return;x.scale$2(ef,ef,em/eg*this._pixelsPerMercatorPixel),this._camera.position=[e_[0],e_[1],eu.z*this._pixelsPerMercatorPixel-ef[2]],this._updateStateFromCamera()}else this._isCameraConstrained=!0}}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let eu="globe"===this.projection.name||this.mercatorFromTransition;if(this.projection.isReprojectedInTileSpace||eu){let ef=this.center;return ef.lat=x.clamp(ef.lat,this.minLat,this.maxLat),!this.maxBounds&&(this.renderWorldCopies||eu)||(ef.lng=x.clamp(ef.lng,this.minLng,this.maxLng)),this.center=ef,void(this._constraining=!1)}let ef=this._unmodified,{x:em,y:e_}=this.point,eg=0,ex=em,ev=e_,eb=this.width/2,ew=this.height/2,eT=this.worldMinY*this.scale,eE=this.worldMaxY*this.scale;if(e_-ew<eT&&(ev=eT+ew),e_+ew>eE&&(ev=eE-ew),eE-eT<this.height&&(eg=Math.max(eg,this.height/(eE-eT)),ev=(eE+eT)/2),this.maxBounds||!this._renderWorldCopies||!this.projection.wrap){let x=this.worldMinX*this.scale,eu=this.worldMaxX*this.scale,ef=this.worldSize/2-(x+eu)/2;(ex=(em+ef+this.worldSize)%this.worldSize-ef)-eb<x&&(ex=x+eb),ex+eb>eu&&(ex=eu-eb),eu-x<this.width&&(eg=Math.max(eg,this.width/(eu-x)),ex=(eu+x)/2)}ex===em&&ev===e_||(this.center=this.unproject(new x.pointGeometry(ex,ev))),eg&&(this.zoom+=this.scaleZoom(eg)),this._constrainCamera(),this._unmodified=ef,this._constraining=!1}_minZoomForBounds(){let x=Math.max(0,this.scaleZoom(this.height/(this.worldMaxY-this.worldMinY)));return this.maxBounds&&(x=Math.max(x,this.scaleZoom(this.width/(this.worldMaxX-this.worldMinX)))),x}_maxCameraBoundsDistance(){return this._mercatorZfromZoom(this._minZoomForBounds())}_calcMatrices(){if(!this.height)return;let eu=this.centerOffset,ef=this.pixelsPerMeter;"globe"===this.projection.name&&(this._mercatorScaleRatio=x.mercatorZfromAltitude(1,this.center.lat)/x.mercatorZfromAltitude(1,x.GLOBE_SCALE_MATCH_LATITUDE));let em=qo(this.projection,this.zoom,this.width,this.height,1024);this._pixelsPerMercatorPixel=this.projection.pixelSpaceConversion(this.center.lat,this.worldSize,em),this.cameraToCenterDistance=.5/Math.tan(.5*this._fov)*this.height*this._pixelsPerMercatorPixel,this._updateCameraState(),this._farZ=this.projection.farthestPixelDistance(this),this._nearZ=this.height/50;let e_="meters"===this.projection.zAxisUnit?ef:1,eg=this._camera.getWorldToCamera(this.worldSize,e_),ex=this._camera.getCameraToClipPerspective(this._fov,this.width/this.height,this._nearZ,this._farZ);ex[8]=-(2*eu.x)/this.width,ex[9]=2*eu.y/this.height;let ev=x.mul([],ex,eg);if(this.projection.isReprojectedInTileSpace){let eu=this.locationCoordinate(this.center),ef=x.identity([]);x.translate(ef,ef,[eu.x*this.worldSize,eu.y*this.worldSize,0]),x.multiply(ef,ef,Wo(this)),x.translate(ef,ef,[-eu.x*this.worldSize,-eu.y*this.worldSize,0]),x.multiply(ev,ev,ef),this.inverseAdjustmentMatrix=function(x){let eu=Wo(x,!0);return v([],[eu[0],eu[1],eu[4],eu[5]])}(this)}else this.inverseAdjustmentMatrix=[1,0,0,1];this.mercatorMatrix=x.scale([],ev,[this.worldSize,this.worldSize,this.worldSize/e_,1]),this.projMatrix=ev,this.invProjMatrix=x.invert(new Float64Array(16),this.projMatrix);let eb=x.invert([],ex);this.frustumCorners=x.FrustumCorners.fromInvProjectionMatrix(eb,this.horizonLineFromTop(),this.height);let ew=new Float32Array(16);x.identity(ew),x.scale(ew,ew,[1,-1,1]),x.rotateX(ew,ew,this._pitch),x.rotateZ(ew,ew,this.angle);let eT=x.perspective(new Float32Array(16),this._fov,this.width/this.height,this._nearZ,this._farZ),eE=(Math.PI/2-this._pitch)*(this.height/this._fov)*this._horizonShift;eT[8]=-(2*eu.x)/this.width,eT[9]=2*(eu.y+eE)/this.height,this.skyboxMatrix=x.multiply(ew,eT,ew);let eS=this.point,eM=eS.x,eI=eS.y,eA=this.width%2/2,eC=this.height%2/2,ez=Math.cos(this.angle),eD=Math.sin(this.angle),ek=eM-Math.round(eM)+ez*eA+eD*eC,eP=eI-Math.round(eI)+ez*eC+eD*eA,eL=new Float64Array(ev);if(x.translate(eL,eL,[ek>.5?ek-1:ek,eP>.5?eP-1:eP,0]),this.alignedProjMatrix=eL,ev=x.create(),x.scale(ev,ev,[this.width/2,-this.height/2,1]),x.translate(ev,ev,[1,-1,0]),this.labelPlaneMatr
60ix=ev,ev=x.create(),x.scale(ev,ev,[1,-1,1]),x.translate(ev,ev,[-1,-1,0]),x.scale(ev,ev,[2/this.width,2/this.height,1]),this.glCoordMatrix=ev,this.pixelMatrix=x.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},!(ev=x.invert(new Float64Array(16),this.pixelMatrix)))throw Error("failed to invert matrix");if(this.pixelMatrixInverse=ev,"globe"===this.projection.name||this.mercatorFromTransition){this.globeMatrix=x.calculateGlobeMatrix(this);let eu=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=x.transformMat4(eu,eu,eg),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=ev;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};let eu=this.cameraWorldSizeForFog,ef=this.cameraPixelsPerMeter,em=this._camera.position,e_=1/this.height/this._pixelsPerMercatorPixel,eg=[eu,eu,ef];x.scale$2(eg,eg,e_),x.scale$2(em,em,-1),x.multiply$2(em,em,eg);let ex=x.create();x.translate(ex,ex,em),x.scale(ex,ex,eg),this.mercatorFogMatrix=ex,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(eu,ef,e_)}_computeCameraPosition(x){let eu=(x=x||this.pixelsPerMeter)/this.pixelsPerMeter,ef=this._camera.forward(),em=this.point,e_=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*eu-x/this.worldSize*this._centerAltitude;return[em.x/this.worldSize-ef[0]*e_,em.y/this.worldSize-ef[1]*e_,x/this.worldSize*this._centerAltitude-ef[2]*e_]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(eu){let ef=this._maxCameraBoundsDistance()*Math.cos(this._pitch),em=this._camera.position[2],e_=eu[2],eg=1;this.projection.wrap&&(this.center=this.center.wrap()),e_>0&&(eg=Math.min((ef-em)/e_,1)),this._camera.position=x.scaleAndAdd([],this._camera.position,eu,eg),this._updateStateFromCamera()}_updateStateFromCamera(){let eu=this._camera.position,ef=this._camera.forward(),{pitch:em,bearing:e_}=this._camera.getPitchBearing(),eg=x.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,ex=this._mercatorZfromZoom(this._maxZoom)*Math.cos(x.degToRad(this._maxPitch)),ev=Math.max((eu[2]-eg)/Math.cos(em),ex),eb=this._zoomFromMercatorZ(ev);x.scaleAndAdd(eu,eu,ef,ev),this._pitch=x.clamp(em,x.degToRad(this.minPitch),x.degToRad(this.maxPitch)),this.angle=x.wrap(e_,-Math.PI,Math.PI),this._setZoom(x.clamp(eb,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new x.MercatorCoordinate(eu[0],eu[1],eu[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(x){return Math.pow(2,x)*this.tileSize}_mercatorZfromZoom(x){return this.cameraToCenterDistance/this._worldSizeFromZoom(x)}_minimumHeightOverTerrain(){let x=Math.min((null!=this._seaLevelZoom?this._seaLevelZoom:this._zoom)+4,this._maxZoom);return this._mercatorZfromZoom(x)}_zoomFromMercatorZ(x){return this.scaleZoom(this.cameraToCenterDistance/(x*this.tileSize))}zoomFromMercatorZAdjusted(eu){let ef=0,em=x.GLOBE_ZOOM_THRESHOLD_MAX,e_=0,eg=1/0;for(;em-ef>1e-6&&em>ef;){let x=ef+.5*(em-ef),ex=this.tileSize*Math.pow(2,x),ev=this.getCameraToCenterDistance(this.projection,x,ex),eb=this.scaleZoom(ev/(eu*this.tileSize)),ew=Math.abs(x-eb);ew<eg&&(eg=ew,e_=x),x<eb?ef=x:em=x}return e_}_terrainEnabled(){return!(!this._elevation||!this.projection.supportsTerrain&&(x.warnOnce("Terrain is not yet supported with alternate projections. Use mercator or globe to enable terrain."),1))}anyCornerOffEdge(eu,ef){let em=Math.min(eu.x,ef.x),e_=Math.max(eu.x,ef.x),eg=Math.min(eu.y,ef.y),ex=Math.max(eu.y,ef.y);if(eg<this.horizonLineFromTop(!1))return!0;if("mercator"!==this.projection.name)return!1;let ev=[new x.pointGeometry(em,eg),new x.pointGeometry(e_,ex),new x.pointGeometry(em,ex),new x.pointGeometry(e_,eg)],eb=this.renderWorldCopies?-3:0,ew=this.renderWorldCopies?4:1;for(let x of ev){let eu=this.pointRayIntersection(x);if(eu.t<0)return!0;let ef=this.rayIntersectionCoordinate(eu);if(ef.x<eb||ef.y<0||ef.x>ew||ef.y>1)return!0}return!1}
60isHorizonVisible(){return this.pitch+x.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new x.pointGeometry(0,0),new x.pointGeometry(this.width,this.height))}zoomDeltaToMovement(eu,ef){let em=x.length(x.sub([],this._camera.position,eu)),e_=this._zoomFromMercatorZ(em)+ef;return em-this._mercatorZfromZoom(e_)}getCameraPoint(){if("globe"===this.projection.name){let eu=function([eu,ef,em],e_){let eg=[eu,ef,em,1];x.transformMat4$1(eg,eg,e_);let ex=eg[3]=Math.max(eg[3],1e-6);return eg[0]/=ex,eg[1]/=ex,eg[2]/=ex,eg}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new x.pointGeometry(eu[0],eu[1])}{let eu=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new x.pointGeometry(0,eu))}}getCameraToCenterDistance(x,eu=this.zoom,ef=this.worldSize){let em=qo(x,eu,this.width,this.height,1024),e_=x.pixelSpaceConversion(this.center.lat,ef,em);return .5/Math.tan(.5*this._fov)*this.height*e_}getWorldToCameraMatrix(){let eu=this._camera.getWorldToCamera(this.worldSize,"meters"===this.projection.zAxisUnit?this.pixelsPerMeter:1);return"globe"===this.projection.name&&x.multiply(eu,eu,this.globeMatrix),eu}};function Jo(x,eu){let ef=!1,em=null,r=()=>{em=null,ef&&(x(),em=setTimeout(r,eu),ef=!1)};return()=>(ef=!0,em||r(),em)}let Qo=class Qo{constructor(eu){this._hashName=eu&&encodeURIComponent(eu),x.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=Jo(this._updateHashUnthrottled.bind(this),300)}addTo(eu){return this._map=eu,x.window.addEventListener("hashchange",this._onHashChange,!1),eu.on("moveend",this._updateHash),this}remove(){return this._map&&(this._map.off("moveend",this._updateHash),x.window.removeEventListener("hashchange",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0),this}getHashString(){let eu=this._map;if(!eu)return"";let ef=er(eu);if(this._hashName){let eu=this._hashName,em=!1,e_=x.window.location.hash.slice(1).split("&").map(x=>{let e_=x.split("=")[0];return e_===eu?(em=!0,`${e_}=${ef}`):x}).filter(x=>x);return em||e_.push(`${eu}=${ef}`),`#${e_.join("&")}`}return`#${ef}`}_getCurrentHash(){let eu=x.window.location.hash.replace("#","");if(this._hashName){let x;return eu.split("&").map(x=>x.split("=")).forEach(eu=>{eu[0]===this._hashName&&(x=eu)}),(x&&x[1]||"").split("/")}return eu.split("/")}_onHashChange(){let x=this._map;if(!x)return!1;let eu=this._getCurrentHash();if(eu.length>=3&&!eu.some(x=>isNaN(x))){let ef=x.dragRotate.isEnabled()&&x.touchZoomRotate.isEnabled()?+(eu[3]||0):x.getBearing();return x.jumpTo({center:[+eu[2],+eu[1]],zoom:+eu[0],bearing:ef,pitch:+(eu[4]||0)}),!0}return!1}_updateHashUnthrottled(){let eu=x.window.location.href.replace(/(#.+)?$/,this.getHashString());x.window.history.replaceState(x.window.history.state,null,eu)}};function er(x,eu){let ef=x.getCenter(),em=Math.round(100*x.getZoom())/100,e_=Math.ceil((em*Math.LN2+Math.log(512/360/.5))/Math.LN10),eg=Math.pow(10,e_),ex=Math.round(ef.lng*eg)/eg,ev=Math.round(ef.lat*eg)/eg,eb=x.getBearing(),ew=x.getPitch(),eT=eu?`/${ex}/${ev}/${em}`:`${em}/${ev}/${ex}`;return(eb||ew)&&(eT+="/"+Math.round(10*eb)/10),ew&&(eT+=`/${Math.round(ew)}`),eT}let th={linearity:.3,easing:x.bezier(0,0,.3,1)},tu=x.extend({deceleration:2500,maxSpeed:1400},th),tc=x.extend({deceleration:20,maxSpeed:1400},th),tm=x.extend({deceleration:1e3,maxSpeed:360},th),t_=x.extend({deceleration:1e3,maxSpeed:90},th);let sr=class sr{constructor(x){this._map=x,this.clear()}clear(){this._inertiaBuffer=[]}record(eu){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:x.exported.now(),settings:eu})}_drainInertiaBuffer(){let eu=this._inertiaBuffer,ef=x.exported.now();for(;eu.length>0&&ef-eu[0].time>160;)eu.shift()}_onMoveEnd(eu){if(x.exported.prefersReducedMotion||(this._drainInertiaBuffer(),this._inertiaBuffer.length<2))return;let ef={zoom:0,bearing:0,pitch:0,pan:new x.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(let{settings:x}of this._inertiaBuffer)ef.zoom+=x.zoomDelta||0,ef.bearing+=x.bearingDelta||0,ef.pitch+=x.pitchDelta||0,x.panDelta&&ef.pan._add(x.panDelta),x.around&&(ef.around=x.around),x.pinchAround&&(ef.pinchAround=x.pinchAround);let em=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,e_={};if(ef.pan.mag()){let eg=lr(ef.pan.mag(),em,x.extend({},tu,eu||{}));e_.offset=ef.pan.mult(eg.amount/ef.pan.mag()),e_.center=this._map.transform.center,ar(e_,eg)}if(ef.zoom){let x=lr(ef.zoom,em,tc);e_.zoom=this._map.transform.zoom+x.amount,ar(e_,x)}if(ef.bearing){let eu=lr(ef.bearing,em,tm);
60e_.bearing=this._map.transform.bearing+x.clamp(eu.amount,-179,179),ar(e_,eu)}if(ef.pitch){let x=lr(ef.pitch,em,t_);e_.pitch=this._map.transform.pitch+x.amount,ar(e_,x)}if(e_.zoom||e_.bearing){let x=void 0===ef.pinchAround?ef.around:ef.pinchAround;e_.around=x?this._map.unproject(x):this._map.getCenter()}return this.clear(),e_.noMoveStart=!0,e_}};function ar(x,eu){(!x.duration||x.duration<eu.duration)&&(x.duration=eu.duration,x.easing=eu.easing)}function lr(eu,ef,em){let{maxSpeed:e_,linearity:eg,deceleration:ex}=em,ev=x.clamp(eu*eg/(ef/1e3),-e_,e_),eb=Math.abs(ev)/(ex*eg);return{easing:em.easing,duration:1e3*eb,amount:ev*(eb/2)}}let cr=class cr extends x.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(eu,ef,em,e_={}){let eg=p(ef.getCanvasContainer(),em),ex=ef.unproject(eg);super(eu,x.extend({point:eg,lngLat:ex,originalEvent:em},e_)),this._defaultPrevented=!1,this.target=ef}};let hr=class hr extends x.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(eu,ef,em){let e_="touchend"===eu?em.changedTouches:em.touches,eg=m(ef.getCanvasContainer(),e_),ex=eg.map(x=>ef.unproject(x)),ev=eg.reduce((x,eu,ef,em)=>x.add(eu.div(em.length)),new x.pointGeometry(0,0));super(eu,{points:eg,point:ev,lngLats:ex,lngLat:ef.unproject(ev),originalEvent:em}),this._defaultPrevented=!1}};let ur=class ur extends x.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(x,eu,ef){super(x,{originalEvent:ef}),this._defaultPrevented=!1}};let _r=class _r{constructor(x,eu){this._map=x,this._clickTolerance=eu.clickTolerance}reset(){this._mousedownPos=void 0}wheel(x){return this._firePreventable(new ur(x.type,this._map,x))}mousedown(x,eu){return this._mousedownPos=eu,this._firePreventable(new cr(x.type,this._map,x))}mouseup(x){this._map.fire(new cr(x.type,this._map,x))}preclick(eu){let ef=x.extend({},eu);ef.type="preclick",this._map.fire(new cr(ef.type,this._map,ef))}click(x,eu){this._mousedownPos&&this._mousedownPos.dist(eu)>=this._clickTolerance||(this.preclick(x),this._map.fire(new cr(x.type,this._map,x)))}dblclick(x){return this._firePreventable(new cr(x.type,this._map,x))}mouseover(x){this._map.fire(new cr(x.type,this._map,x))}mouseout(x){this._map.fire(new cr(x.type,this._map,x))}touchstart(x){return this._firePreventable(new hr(x.type,this._map,x))}touchmove(x){this._map.fire(new hr(x.type,this._map,x))}touchend(x){this._map.fire(new hr(x.type,this._map,x))}touchcancel(x){this._map.fire(new hr(x.type,this._map,x))}_firePreventable(x){if(this._map.fire(x),x.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}};let dr=class dr{constructor(x){this._map=x}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(x){this._map.fire(new cr(x.type,this._map,x))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new cr("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(x){this._delayContextMenu?this._contextMenuEvent=x:this._map.fire(new cr(x.type,this._map,x)),this._map.listens("contextmenu")&&x.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}};let pr=class pr{constructor(x,eu){this._map=x,this._el=x.getCanvasContainer(),this._container=x.getContainer(),this._clickTolerance=eu.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(x,eu){this.isEnabled()&&x.shiftKey&&0===x.button&&(h(),this._startPos=this._lastPos=eu,this._active=!0)}mousemoveWindow(x,eu){if(!this._active)return;let ef=this._startPos,em=this._lastPos;if(!ef||!em||em.equals(eu)||!this._box&&eu.dist(ef)<this._clickTolerance)return;this._lastPos=eu,this._box||(this._box=n("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",x));let e_=Math.min(ef.x,eu.x),eg=Math.max(ef.x,eu.x),ex=Math.min(ef.y,eu.y),ev=Math.max(ef.y,eu.y);this._map._requestDomTask(()=>{this._box&&(this._box.style.transform=`translate(${e_}px,${ex}px)`,this._box.style.width=eg-e_+"px",this._box.style.height=ev-ex+"px")})}mouseupWindow(eu,ef){if(!this._active)return;let em=this._startPos;if(em&&0===eu.button){if(this.reset(),d(),em.x!==ef.x||em.y!==ef.y)return this._map.fire(new x.Event("boxzoomend",{originalEvent:eu})),{cameraAnimation:x=>x.fitScreenCoordinates(em,ef,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",eu)}}keydown(x){this._active&&27===x.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",x))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),u(),delete this._startPos,delete this._lastPos}_fireEvent(eu,ef){return this._map.fire(new x.Event(eu,{originalEvent:ef}))}};function mr(x,eu){let ef={};for(let em=0;em<x.length;em++)ef[x[em].identifier]=eu[em];return ef}
60let fr=class fr{constructor(x){this.reset(),this.numTouches=x.numTouches}reset(){this.centroid=void 0,this.startTime=0,this.touches={},this.aborted=!1}touchstart(eu,ef,em){(this.centroid||em.length>this.numTouches)&&(this.aborted=!0),this.aborted||(0===this.startTime&&(this.startTime=eu.timeStamp),em.length===this.numTouches&&(this.centroid=function(eu){let ef=new x.pointGeometry(0,0);for(let x of eu)ef._add(x);return ef.div(eu.length)}(ef),this.touches=mr(em,ef)))}touchmove(x,eu,ef){if(this.aborted||!this.centroid)return;let em=mr(ef,eu);for(let x in this.touches){let eu=this.touches[x],ef=em[x];(!ef||ef.dist(eu)>30)&&(this.aborted=!0)}}touchend(x,eu,ef){if((!this.centroid||x.timeStamp-this.startTime>500)&&(this.aborted=!0),0===ef.length){let x=!this.aborted&&this.centroid;if(this.reset(),x)return x}}};let gr=class gr{constructor(x){this.singleTap=new fr(x),this.numTaps=x.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(x,eu,ef){this.singleTap.touchstart(x,eu,ef)}touchmove(x,eu,ef){this.singleTap.touchmove(x,eu,ef)}touchend(x,eu,ef){let em=this.singleTap.touchend(x,eu,ef);if(em){let eu=x.timeStamp-this.lastTime<500,ef=!this.lastTap||30>this.lastTap.dist(em);if(eu&&ef||this.reset(),this.count++,this.lastTime=x.timeStamp,this.lastTap=em,this.count===this.numTaps)return this.reset(),em}}};let vr=class vr{constructor(){this._zoomIn=new gr({numTouches:1,numTaps:2}),this._zoomOut=new gr({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(x,eu,ef){this._zoomIn.touchstart(x,eu,ef),this._zoomOut.touchstart(x,eu,ef)}touchmove(x,eu,ef){this._zoomIn.touchmove(x,eu,ef),this._zoomOut.touchmove(x,eu,ef)}touchend(x,eu,ef){let em=this._zoomIn.touchend(x,eu,ef),e_=this._zoomOut.touchend(x,eu,ef);return em?(this._active=!0,x.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:eu=>eu.easeTo({duration:300,zoom:eu.getZoom()+1,around:eu.unproject(em)},{originalEvent:x})}):e_?(this._active=!0,x.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:eu=>eu.easeTo({duration:300,zoom:eu.getZoom()-1,around:eu.unproject(e_)},{originalEvent:x})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}};let tg={0:1,2:2};let yr=class yr{constructor(x){this.reset(),this._clickTolerance=x.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(x,eu){return!1}_move(x,eu){return{}}mousedown(x,eu){if(this._lastPoint)return;let ef=f(x);this._correctButton(x,ef)&&(this._lastPoint=eu,this._eventButton=ef)}mousemoveWindow(x,eu){let ef=this._lastPoint;if(ef){if(x.preventDefault(),null!=this._eventButton&&function(x,eu){let ef=tg[eu];return void 0===x.buttons||(x.buttons&ef)!==ef}(x,this._eventButton))this.reset();else if(this._moved||!(eu.dist(ef)<this._clickTolerance))return this._moved=!0,this._lastPoint=eu,this._move(ef,eu)}}mouseupWindow(x){this._lastPoint&&f(x)===this._eventButton&&(this._moved&&d(),this.reset())}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}};let br=class br extends yr{mousedown(x,eu){super.mousedown(x,eu),this._lastPoint&&(this._active=!0)}_correctButton(x,eu){return 0===eu&&!x.ctrlKey}_move(x,eu){return{around:eu,panDelta:eu.sub(x)}}};let wr=class wr extends yr{_correctButton(x,eu){return 0===eu&&x.ctrlKey||2===eu}_move(x,eu){let ef=.8*(eu.x-x.x);if(ef)return this._active=!0,{bearingDelta:ef}}contextmenu(x){x.preventDefault()}};let Tr=class Tr extends yr{_correctButton(x,eu){return 0===eu&&x.ctrlKey||2===eu}_move(x,eu){let ef=-.5*(eu.y-x.y);if(ef)return this._active=!0,{pitchDelta:ef}}contextmenu(x){x.preventDefault()}};let Er=class Er{constructor(eu,ef){this._map=eu,this._el=eu.getCanvasContainer(),this._minTouches=1,this._clickTolerance=ef.clickTolerance||1,this.reset(),x.bindAll(["_addTouchPanBlocker","_showTouchPanBlockerAlert"],this)}reset(){this._active=!1,this._touches={},this._sum=new x.pointGeometry(0,0)}touchstart(x,eu,ef){return this._calculateTransform(x,eu,ef)}touchmove(eu,ef,em){if(this._active&&!(em.length<this._minTouches)){if(this._map._cooperativeGestures&&!this._map.isMoving()){if(1===em.length&&!x.isFullscreen())return void this._showTouchPanBlockerAlert();
60"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}return eu.cancelable&&eu.preventDefault(),this._calculateTransform(eu,ef,em)}}touchend(x,eu,ef){this._calculateTransform(x,eu,ef),this._active&&ef.length<this._minTouches&&this.reset()}touchcancel(){this.reset()}_calculateTransform(eu,ef,em){em.length>0&&(this._active=!0);let e_=mr(em,ef),eg=new x.pointGeometry(0,0),ex=new x.pointGeometry(0,0),ev=0;for(let x in e_){let eu=e_[x],ef=this._touches[x];ef&&(eg._add(eu),ex._add(eu.sub(ef)),ev++,e_[x]=eu)}if(this._touches=e_,ev<this._minTouches||!ex.mag())return;let eb=ex.div(ev);return this._sum._add(eb),this._sum.mag()<this._clickTolerance?void 0:{around:eg.div(ev),panDelta:eb}}enable(){this._enabled=!0,this._map._cooperativeGestures&&(this._addTouchPanBlocker(),this._el.classList.add("mapboxgl-touch-pan-blocker-override","mapboxgl-scrollable-page"))}disable(){this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove(),this._el.classList.remove("mapboxgl-touch-pan-blocker-override","mapboxgl-scrollable-page")),this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}_addTouchPanBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=n("div","mapboxgl-touch-pan-blocker",this._map._container),this._alertContainer.textContent=this._map._getUIString("TouchPanBlocker.Message"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showTouchPanBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show"),this._alertContainer.setAttribute("role","null")},500)}};let Cr=class Cr{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(x){}_move(x,eu,ef){return{}}touchstart(x,eu,ef){this._firstTwoTouches||ef.length<2||(this._firstTwoTouches=[ef[0].identifier,ef[1].identifier],this._start([eu[0],eu[1]]))}touchmove(x,eu,ef){let em=this._firstTwoTouches;if(!em)return;x.preventDefault();let[e_,eg]=em,ex=Mr(ef,eu,e_),ev=Mr(ef,eu,eg);if(!ex||!ev)return;let eb=this._aroundCenter?null:ex.add(ev).div(2);return this._move([ex,ev],eb,x)}touchend(x,eu,ef){if(!this._firstTwoTouches)return;let[em,e_]=this._firstTwoTouches,eg=Mr(ef,eu,em),ex=Mr(ef,eu,e_);eg&&ex||(this._active&&d(),this.reset())}touchcancel(){this.reset()}enable(x){this._enabled=!0,this._aroundCenter=!!x&&"center"===x.around}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}};function Mr(x,eu,ef){for(let em=0;em<x.length;em++)if(x[em].identifier===ef)return eu[em]}function Ir(x,eu){return Math.log(x/eu)/Math.LN2}let Sr=class Sr extends Cr{reset(){super.reset(),this._distance=0,this._startDistance=0}_start(x){this._startDistance=this._distance=x[0].dist(x[1])}_move(x,eu){let ef=this._distance;if(this._distance=x[0].dist(x[1]),this._active||!(.1>Math.abs(Ir(this._distance,this._startDistance))))return this._active=!0,{zoomDelta:Ir(this._distance,ef),pinchAround:eu}}};function Dr(x,eu){return 180*x.angleWith(eu)/Math.PI}let Lr=class Lr extends Cr{reset(){super.reset(),this._minDiameter=0,this._startVector=void 0,this._vector=void 0}_start(x){this._startVector=this._vector=x[0].sub(x[1]),this._minDiameter=x[0].dist(x[1])}_move(x,eu){let ef=this._vector;if(this._vector=x[0].sub(x[1]),ef&&(this._active||!this._isBelowThreshold(this._vector)))return this._active=!0,{bearingDelta:Dr(this._vector,ef),pinchAround:eu}}_isBelowThreshold(x){this._minDiameter=Math.min(this._minDiameter,x.mag());let eu=25/(Math.PI*this._minDiameter)*360,ef=this._startVector;if(!ef)return!1;let em=Dr(x,ef);return Math.abs(em)<eu}};function Ar(x){return Math.abs(x.y)>Math.abs(x.x)}let zr=class zr extends Cr{constructor(x){super(),this._map=x}
60reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(x){this._lastPoints=x,Ar(x[0].sub(x[1]))&&(this._valid=!1)}_move(eu,ef,em){let e_=this._lastPoints;if(!e_)return;let eg=eu[0].sub(e_[0]),ex=eu[1].sub(e_[1]);return this._map._cooperativeGestures&&!x.isFullscreen()&&em.touches.length<3||(this._valid=this.gestureBeginsVertically(eg,ex,em.timeStamp),!this._valid)?void 0:(this._lastPoints=eu,this._active=!0,{pitchDelta:-((eg.y+ex.y)/2*.5)})}gestureBeginsVertically(x,eu,ef){if(void 0!==this._valid)return this._valid;let em=x.mag()>=2,e_=eu.mag()>=2;if(!em&&!e_)return;if(!em||!e_)return null==this._firstMove&&(this._firstMove=ef),ef-this._firstMove<100&&void 0;let eg=x.y>0==eu.y>0;return Ar(x)&&Ar(eu)&&eg}};let Rr=class Rr{constructor(){this._panStep=100,this._bearingStep=15,this._pitchStep=10,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(x){if(x.altKey||x.ctrlKey||x.metaKey)return;let eu=0,ef=0,em=0,e_=0,eg=0;switch(x.keyCode){case 61:case 107:case 171:case 187:eu=1;break;case 189:case 109:case 173:eu=-1;break;case 37:x.shiftKey?ef=-1:(x.preventDefault(),e_=-1);break;case 39:x.shiftKey?ef=1:(x.preventDefault(),e_=1);break;case 38:x.shiftKey?em=1:(x.preventDefault(),eg=-1);break;case 40:x.shiftKey?em=-1:(x.preventDefault(),eg=1);break;default:return}return this._rotationDisabled&&(ef=0,em=0),{cameraAnimation:ex=>{let ev=ex.getZoom();ex.easeTo({duration:300,easeId:"keyboardHandler",easing:Or,zoom:eu?Math.round(ev)+eu*(x.shiftKey?2:1):ev,bearing:ex.getBearing()+ef*this._bearingStep,pitch:ex.getPitch()+em*this._pitchStep,offset:[-e_*this._panStep,-eg*this._panStep],center:ex.getCenter()},{originalEvent:x})}}}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 Or(x){return x*(2-x)}let kr=class kr{constructor(eu,ef){this._map=eu,this._el=eu.getCanvasContainer(),this._handler=ef,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,x.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert"],this)}setZoomRate(x){this._defaultZoomRate=x}setWheelZoomRate(x){this._wheelZoomRate=x}isEnabled(){return!!this._enabled}isActive(){return this._active||void 0!==this._finishTimeout}isZooming(){return!!this._zooming}enable(x){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!x&&"center"===x.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(eu){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(eu.ctrlKey||eu.metaKey||this.isZooming()||x.isFullscreen()))return void this._showBlockerAlert();"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let ef=eu.deltaMode===x.window.WheelEvent.DOM_DELTA_LINE?40*eu.deltaY:eu.deltaY,em=x.exported.now(),e_=em-(this._lastWheelEventTime||0);this._lastWheelEventTime=em,0!==ef&&ef%4.000244140625==0?this._type="wheel":0!==ef&&4>Math.abs(ef)?this._type="trackpad":e_>400?(this._type=null,this._lastValue=ef,this._timeout=setTimeout(this._onTimeout,40,eu)):this._type||(this._type=200>Math.abs(e_*ef)?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,ef+=this._lastValue)),eu.shiftKey&&ef&&(ef/=4),this._type&&(this._lastWheelEvent=eu,this._delta-=ef,this._active||this._start(eu)),eu.preventDefault()}_onTimeout(x){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(x)}_start(x){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);let eu=p(this._el,x);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:eu,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRe
60nderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let eu=this._map.transform;"wheel"===this._type&&eu.projection.wrap&&(eu._center.lng>=180||eu._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);let i=()=>eu._terrainEnabled()&&this._aroundCoord?eu.computeZoomRelativeTo(this._aroundCoord):eu.zoom;if(0!==this._delta){let x="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,ef=2/(1+Math.exp(-Math.abs(this._delta*x)));this._delta<0&&0!==ef&&(ef=1/ef);let em=i(),e_=Math.pow(2,em),eg="number"==typeof this._targetZoom?eu.zoomScale(this._targetZoom):e_;this._targetZoom=Math.min(eu.maxZoom,Math.max(eu.minZoom,eu.scaleZoom(eg*ef))),"wheel"===this._type&&(this._startZoom=em,this._easing=this._smoothOutEasing(200)),this._delta=0}let ef="number"==typeof this._targetZoom?this._targetZoom:i(),em=this._startZoom,e_=this._easing,eg,ex=!1;if("wheel"===this._type&&em&&e_){let eu=Math.min((x.exported.now()-this._lastWheelEventTime)/200,1),ev=e_(eu);eg=x.number(em,ef,ev),eu<1?this._frameId||(this._frameId=!0):ex=!0}else eg=ef,ex=!0;return this._active=!0,ex&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!ex,zoomDelta:eg-i(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(eu){let ef=x.ease;if(this._prevEase){let eu=this._prevEase,em=(x.exported.now()-eu.start)/eu.duration,e_=eu.easing(em+.01)-eu.easing(em),eg=.27/Math.sqrt(e_*e_+1e-4)*.01,ex=Math.sqrt(.0729-eg*eg);ef=x.bezier(eg,ex,.25,1)}return this._prevEase={start:x.exported.now(),duration:eu,easing:ef},ef}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=n("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(x.window.navigator.userAgent)?this._map._getUIString("ScrollZoomBlocker.CmdMessage"):this._map._getUIString("ScrollZoomBlocker.CtrlMessage"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility="visible",this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","alert"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show"),this._alertContainer.setAttribute("role","null")},200)}};let Fr=class Fr{constructor(x,eu){this._clickZoom=x,this._tapZoom=eu}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()}};let Ur=class Ur{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(x,eu){return x.preventDefault(),{cameraAnimation:ef=>{ef.easeTo({duration:300,zoom:ef.getZoom()+(x.shiftKey?-1:1),around:ef.unproject(eu)},{originalEvent:x})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}};let Nr=class Nr{constructor(){this._tap=new gr({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(x,eu,ef){this._swipePoint||(this._tapTime&&x.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?ef.length>0&&(this._swipePoint=eu[0],this._swipeTouch=ef[0].identifier):this._tap.touchstart(x,eu,ef))}touchmove(x,eu,ef){if(this._tapTime){if(this._swipePoint){if(ef[0].identifier!==this._swipeTouch)return;let em=eu[0],e_=em.y-this._swipePoint.y;return this._swipePoint=em,x.preventDefault(),this._active=!0,{zoomDelta:e_/128}}}else this._tap.touchmove(x,eu,ef)}touchend(x,eu,ef){this._tapTime?this._swipePoint&&0===ef.length&&this.reset():this._tap.touchend(x,eu,ef)&&(this._tapTime=x.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}};let Gr=class Gr{constructor(x,eu,ef){this._el=x,this._mousePan=eu,this._touchPan=ef}enable(x){this._inertiaOptions=x||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}};let jr=class jr{constructor(x,eu,ef){this._pitchWithRotate=x.pitchWithRotate,this._mouseRotate=eu,this._mousePitch=ef}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}};let Zr=class Zr{constructor(x,eu,ef,em){this._el=x,this._touchZoom=eu,this._touchRotate=ef,this._tapDragZoom=em,this._rotationDisabled=!1,this._enabled=!0}enable(x){this._touchZoom.enable(x),this._rotationDisabled||this._touchRotate.enable(x),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-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()}};let Vr=x=>x.zoom||x.drag||x.pitch||x.rotate;let Wr=class Wr extends x.Event{};let Xr=class Xr{constructor(){this.constants=[1,1,.01],this.radius=0}setup(eu,ef){let em=x.sub([],ef,eu);this.radius=x.length(em[2]<0?x.div([],em,this.constants):[em[0],em[1],0])}projectRay(eu){x.div(eu,eu,this.constants),x.normalize(eu,eu),x.mul$1(eu,eu,this.constants);let ef=x.scale$2([],eu,this.radius);if(ef[2]>0){let eu=x.scale$2([],[0,0,1],x.dot(ef,[0,0,1])),em=x.scale$2([],x.normalize([],[ef[0],ef[1],0]),this.radius),e_=x.add([],ef,x.scale$2([],x.sub([],x.add([],em,eu),ef),2));ef[0]=e_[0],ef[1]=e_[1]}return ef}}
60;function qr(x){return x.panDelta&&x.panDelta.mag()||x.zoomDelta||x.bearingDelta||x.pitchDelta}let $r=class $r{constructor(eu,ef){this._map=eu,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new sr(eu),this._bearingSnap=ef.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new Xr,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(ef),x.bindAll(["handleEvent","handleWindowEvent"],this);let em=this._el;for(let[eu,ef,e_]of(this._listeners=[[em,"touchstart",{passive:!0}],[em,"touchmove",{passive:!1}],[em,"touchend",void 0],[em,"touchcancel",void 0],[em,"mousedown",void 0],[em,"mousemove",void 0],[em,"mouseup",void 0],[x.window.document,"mousemove",{capture:!0}],[x.window.document,"mouseup",void 0],[em,"mouseover",void 0],[em,"mouseout",void 0],[em,"dblclick",void 0],[em,"click",void 0],[em,"keydown",{capture:!1}],[em,"keyup",void 0],[em,"wheel",{passive:!1}],[em,"contextmenu",void 0],[x.window,"blur",void 0]],this._listeners))eu.addEventListener(ef,eu===x.window.document?this.handleWindowEvent:this.handleEvent,e_)}destroy(){for(let[eu,ef,em]of this._listeners)eu.removeEventListener(ef,eu===x.window.document?this.handleWindowEvent:this.handleEvent,em)}_addDefaultHandlers(x){let eu=this._map,ef=eu.getCanvasContainer();this._add("mapEvent",new _r(eu,x));let em=eu.boxZoom=new pr(eu,x);this._add("boxZoom",em);let e_=new vr,eg=new Ur;eu.doubleClickZoom=new Fr(eg,e_),this._add("tapZoom",e_),this._add("clickZoom",eg);let ex=new Nr;this._add("tapDragZoom",ex);let ev=eu.touchPitch=new zr(eu);this._add("touchPitch",ev);let eb=new wr(x),ew=new Tr(x);eu.dragRotate=new jr(x,eb,ew),this._add("mouseRotate",eb,["mousePitch"]),this._add("mousePitch",ew,["mouseRotate"]);let eT=new br(x),eE=new Er(eu,x);eu.dragPan=new Gr(ef,eT,eE),this._add("mousePan",eT),this._add("touchPan",eE,["touchZoom","touchRotate"]);let eS=new Lr,eM=new Sr;eu.touchZoomRotate=new Zr(ef,eM,eS,ex),this._add("touchRotate",eS,["touchPan","touchZoom"]),this._add("touchZoom",eM,["touchPan","touchRotate"]),this._add("blockableMapEvent",new dr(eu));let eI=eu.scrollZoom=new kr(eu,this);this._add("scrollZoom",eI,["mousePan"]);let eA=eu.keyboard=new Rr;for(let ef of(this._add("keyboard",eA),["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"]))x.interactive&&x[ef]&&eu[ef].enable(x[ef])}_add(x,eu,ef){this._handlers.push({handlerName:x,handler:eu,allowed:ef}),this._handlersById[x]=eu}stop(x){if(!this._updatingCamera){for(let{handler:x}of this._handlers)x.reset();this._inertia.clear(),this._fireEvents({},{},x),this._changes=[]}}isActive(){for(let{handler:x}of this._handlers)if(x.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Vr(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(x,eu,ef){for(let em in x)if(em!==ef&&(!eu||0>eu.indexOf(em)))return!0;return!1}handleWindowEvent(x){this.handleEvent(x,`${x.type}Window`)}_getMapTouches(x){let eu=[];for(let ef of x)this._el.contains(ef.target)&&eu.push(ef);return eu}handleEvent(x,eu){this._updatingCamera=!0;let ef="renderFrame"===x.type,em=ef?void 0:x,e_={needsRenderFrame:!1},eg={},ex={},ev=x.touches?this._getMapTouches(x.touches):void 0,eb=ev?m(this._el,ev):ef?void 0:p(this._el,x);for(let{handlerName:ef,handler:ew,allowed:eT}of this._handlers){let eE;ew.isEnabled()&&(this._blockedByActive(ex,eT,ef)?ew.reset():ew[eu||x.type]&&(eE=ew[eu||x.type](x,eb,ev),this.mergeHandlerResult(e_,eg,eE,ef,em),eE&&eE.needsRenderFrame&&this._triggerRenderFrame()),(eE||ew.isActive())&&(ex[ef]=ew))}let ew={};for(let x in this._previousActiveHandlers)ex[x]||(ew[x]=em);this._previousActiveHandlers=ex,(Object.keys(ew).length||qr(e_))&&(this._changes.push([e_,eg,ew]),this._triggerRenderFrame()),(Object.keys(ex).length||qr(e_))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:eT}=e_;eT&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],eT(this._map))}mergeHandlerResult(eu,ef,em,e_,eg){if(!em)return;x.extend(eu,em);let ex={handlerName:e_,originalEvent:em.originalEvent||eg};void 0!==em.zoomDelta&&(ef.zoom=ex),void 0!==em.panDelta&&(ef.drag=ex),void 0!==em.pitchDelta&&(ef.pitch=ex),void 0!==em.bearingDelta&&(ef.rotate=ex)}_applyChanges(){let eu={},ef={},em={};for(let[e_,eg,ex]of this._changes)e_.panDelta&&(eu.panDelta=(eu.panDelta||new x.pointGeometry(0,0))._add(e_.panDelta)),e_.zoomDelta&&(eu.zoomDelta=(eu.zoomDelta||0)+e_.zoomDelta),e_.bearingDelta&&(eu.bearingDelta=(eu.bearingDelta||0)+e_.bearingDelta),e_.pitchDelta&&(eu.pitchDelta=(eu.pitchDelta||0)+e_.pitchDelta),void 0!==e_.around&&(eu.around=e_.around),void 0!==e_.aroundCoord&&(eu.aroundCoord=e_.aroundCoord),void 0!==e_.pinchAround&&(eu.pinchAround=e_.pinchAround),e_.noInertia&&(eu.noInertia=e_.noInertia),x.extend(ef,eg),x.extend(em,ex);this._updateMapTransform(eu,ef,em),this._changes=[]}_updateMapTransform(eu,ef,em){let e_=this._map,eg=e_.transform,s=x=>[x.x,x.y,x.z];if((x=>{let eu=this._eventsInProgress.drag;return eu&&!this._handlersById[eu.handlerName].isActive()})()&&!qr(eu)){let x=eg.zoom;eg.cameraElevationReference="sea",eg.recenterOnTerrain(),eg.cameraElevationReference="ground",x!==eg.zoom&&this._map._update(!0)}if(eg._isCameraConstrained&&e_._stop(!0),!qr(eu))return void this._fireEvents(ef,em,!0);let{panDelta:ex,zoomDelta:ev,bearingDelta:eb,pitchDelta:ew,around:eT,aroundCoord:eE,pinchAround:eS}=eu;eg._isCameraConstrained&&(ev>0&&(ev=0),eg._isCameraConstrained=!1),void 0!==eS&&(eT=eS),(ev||ef.drag&&!this._eventsInProgress.drag)&&eT&&(this._dragOrigin=s(eg.pointCoordinate3D(eT)),this._trackingEllipsoid.setup(eg._camera.position,this._dragOrigin)),eg.cameraElevationReference="sea",e_._stop(!0),eT=eT||e_.transform.centerPoint,eb&&(eg.bearing+=eb),ew&&(eg.pitch+=ew),eg._updateCameraState();let eM=[0,0,0];if(ex){if("mercator"===eg.projection.name){let x=this._trackingEllipsoid.projectRay(eg.screenPointToMercatorRay(eT).dir),eu=this._trackingEllipsoid.projectRay(eg.screenPointToMercatorRay(eT.sub(ex)).dir);eM[0]=eu[0]-x[0],eM[1]=eu[1]-x[1]}else{let eu=eg.pointCoordinate(eT);if("globe"===eg.projection.name){ex=ex.rotate(-eg.angle);let ef=eg._pixelsPerMercatorPixel/eg.worldSize;eM[0]=-ex.x*x.mercatorScale(x.latFromMercatorY(eu.y))*ef,eM[1]=-ex.y*x.mercatorScale(eg.center.lat)*ef}else{let x=eg.pointCoordinate(eT.sub(ex));eu&&x&&(eM[0]=x.x-eu.x,eM[1]=x.y-eu.y)}}}let eI=eg.zoom,eA=[0,0,0];if(ev){let eu=s(eE||eg.pointCoordinate3D(eT)),ef={dir:x.normalize([],x.sub([],eu,eg._camera.position))};if(ef.dir[2]<0){let em=eg.zoomDeltaToMovement(eu,ev);x.scale$2(eA,ef.dir,em)}}let eC=x.add(eM,eM,eA);eg._translateCameraConstrained(eC),ev&&Math.abs(eg.zoom-eI)>1e-4&&eg.recenterOnTerrain(),eg.cameraElevationReference="ground",this._map._update(),eu.noInertia||this._inertia.record(eu),this._fireEvents(ef,em,!0)}_fireEvents(eu,ef,em){let e_;let eg=Vr(this._eventsInProgress),ex=Vr(eu),ev={};for(let x in eu){let{originalEvent:ef}=eu[x];this._eventsInProgress[x]||(ev[`${x}start`]=ef),this._eventsInProgress[x]=eu[x]}for(let x in!eg&&ex&&this._fireEvent("movestart",ex.originalEvent),ev)this._fireEvent(x,ev[x]);for(let x in ex&&this._fireEvent("move",ex.originalEvent),eu){let{originalEvent:ef}=eu[x];this._fireEvent(x,ef)}let eb={};for(let x in this._eventsInProgress){let{handlerName:eu,originalEvent:em}=this._eventsInProgress[x];this._handlersById[eu].isActive()||(delete this._eventsInProgress[x],e_=ef[eu]||em,eb[`${x}end`]=e_)}for(let x in eb)this._fireEvent(x,eb[x]);let ew=Vr(this._eventsInProgress);if(em&&(eg||ex)&&!ew){var eT,eE;this._updatingCamera=!0;let eu=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions);eu?(0!==(eT=eu.bearing||this._map.getBearing())&&-this._bearingSnap<eT&&eT<this._bearingSnap&&(eu.bearing=0),this._map.easeTo(eu,{originalEvent:e_})):(this._map.fire(new x.Event("moveend",{originalEvent:e_})),0!==(eE=this._map.getBearing())&&-this._bearingSnap<eE&&eE<this._bearingSnap&&this._map.resetNorth()),this._updatingCamera=!1}}_fireEvent(eu,ef){this._map.fire(new x.Event(eu,ef?{originalEvent:ef}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(x=>{this._frameId=void 0,this.handleEvent(new Wr("renderFrame",{timeStamp:x})),this._applyChanges()})}
60_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame())}};let tx="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";let Yr=class Yr extends x.Evented{constructor(eu,ef){super(),this._moving=!1,this._zooming=!1,this.transform=eu,this._bearingSnap=ef.bearingSnap,x.bindAll(["_renderFrameCallback"],this)}getCenter(){return new x.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(x,eu){return this.jumpTo({center:x},eu)}panBy(eu,ef,em){return eu=x.pointGeometry.convert(eu).mult(-1),this.panTo(this.transform.center,x.extend({offset:eu},ef),em)}panTo(eu,ef,em){return this.easeTo(x.extend({center:eu},ef),em)}getZoom(){return this.transform.zoom}setZoom(x,eu){return this.jumpTo({zoom:x},eu),this}zoomTo(eu,ef,em){return this.easeTo(x.extend({zoom:eu},ef),em)}zoomIn(x,eu){return this.zoomTo(this.getZoom()+1,x,eu),this}zoomOut(x,eu){return this.zoomTo(this.getZoom()-1,x,eu),this}getBearing(){return this.transform.bearing}setBearing(x,eu){return this.jumpTo({bearing:x},eu),this}getPadding(){return this.transform.padding}setPadding(x,eu){return this.jumpTo({padding:x},eu),this}rotateTo(eu,ef,em){return this.easeTo(x.extend({bearing:eu},ef),em)}resetNorth(eu,ef){return this.rotateTo(0,x.extend({duration:1e3},eu),ef),this}resetNorthPitch(eu,ef){return this.easeTo(x.extend({bearing:0,pitch:0,duration:1e3},eu),ef),this}snapToNorth(x,eu){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(x,eu):this}getPitch(){return this.transform.pitch}setPitch(x,eu){return this.jumpTo({pitch:x},eu),this}cameraForBounds(eu,ef){eu=x.LngLatBounds.convert(eu);let em=ef&&ef.bearing||0,e_=ef&&ef.pitch||0,eg=eu.getNorthWest(),ex=eu.getSouthEast();return this._cameraForBounds(this.transform,eg,ex,em,e_,ef)}_extendCameraOptions(eu){let ef={top:0,bottom:0,right:0,left:0};if("number"==typeof(eu=x.extend({padding:ef,offset:[0,0],maxZoom:this.transform.maxZoom},eu)).padding){let x=eu.padding;eu.padding={top:x,bottom:x,right:x,left:x}}return eu.padding=x.extend(ef,eu.padding),eu}_minimumAABBFrustumDistance(x,eu){let ef=eu.max[0]-eu.min[0],em=eu.max[1]-eu.min[1];return ef/em>x.aspect?ef/(2*Math.tan(.5*x.fovX)*x.aspect):em/(2*Math.tan(.5*x.fovY)*x.aspect)}_cameraForBoundsOnGlobe(eu,ef,em,e_,eg,ex){let ev=eu.clone(),eb=this._extendCameraOptions(ex);ev.bearing=e_,ev.pitch=eg;let ew=x.LngLat.convert(ef),eT=x.LngLat.convert(em),eE=.5*(ew.lat
60+eT.lat),eS=.5*(ew.lng+eT.lng),eM=x.latLngToECEF(eE,eS),eI=x.normalize([],eM),eA=x.normalize([],x.cross([],eI,[0,1,0])),eC=x.cross([],eA,eI),ez=[eA[0],eA[1],eA[2],0,eC[0],eC[1],eC[2],0,eI[0],eI[1],eI[2],0,0,0,0,1],eD=[eM,x.latLngToECEF(ew.lat,ew.lng),x.latLngToECEF(eT.lat,ew.lng),x.latLngToECEF(eT.lat,eT.lng),x.latLngToECEF(ew.lat,eT.lng),x.latLngToECEF(eE,ew.lng),x.latLngToECEF(eE,eT.lng),x.latLngToECEF(ew.lat,eS),x.latLngToECEF(eT.lat,eS)],ek=x.Aabb.fromPoints(eD.map(eu=>[x.dot(eA,eu),x.dot(eC,eu),x.dot(eI,eu)])),eP=x.transformMat4([],ek.center,ez);0===x.squaredLength(eP)&&x.set(eP,0,0,1),x.normalize(eP,eP),x.scale$2(eP,eP,x.GLOBE_RADIUS),ev.center=x.ecefToLatLng(eP);let eL=ev.getWorldToCameraMatrix(),eR=x.invert(new Float64Array(16),eL);ek=x.Aabb.applyTransform(ek,x.multiply([],eL,ez)),x.transformMat4(eP,eP,eL);let eB=.5*(ek.max[2]-ek.min[2]),eO=this._minimumAABBFrustumDistance(ev,ek),eF=x.scale$2([],[0,0,1],eB),eU=x.add(eF,eP,eF),eV=eO+(0===ev.pitch?0:x.distance(eP,eU)),eN=ev.globeCenterInViewSpace,ej=x.sub([],eP,[eN[0],eN[1],eN[2]]);x.normalize(ej,ej),x.scale$2(ej,ej,eV);let eG=x.add([],eP,ej);x.transformMat4(eG,eG,eR);let eZ=x.earthRadius/x.GLOBE_RADIUS,e$=x.length(eG),eq=x.mercatorZfromAltitude(Math.max(e$*eZ-x.earthRadius,Number.EPSILON),0),eW=Math.min(ev.zoomFromMercatorZAdjusted(eq),eb.maxZoom);return eW>.5*(x.GLOBE_ZOOM_THRESHOLD_MIN+x.GLOBE_ZOOM_THRESHOLD_MAX)?(ev.setProjection({name:"mercator"}),ev.zoom=eW,this._cameraForBounds(ev,ef,em,e_,eg,ex)):{center:ev.center,zoom:eW,bearing:e_,pitch:eg}}queryTerrainElevation(eu,ef){let em=this.transform.elevation;return em?(ef=x.extend({},{exaggerated:!0},ef),em.getAtPoint(x.MercatorCoordinate.fromLngLat(eu),null,ef.exaggerated)):null}_cameraForBounds(eu,ef,em,e_,eg,ex){if("globe"===eu.projection.name)return this._cameraForBoundsOnGlobe(eu,ef,em,e_,eg,ex);let ev=eu.clone(),eb=this._extendCameraOptions(ex),ew=ev.padding;ev.bearing=e_,ev.pitch=eg;let eT=x.LngLat.convert(ef),eE=x.LngLat.convert(em),eS=new x.LngLat(eT.lng,eE.lat),eM=new x.LngLat(eE.lng,eT.lat),eI=ev.project(eT),eA=ev.project(eE),eC=this.queryTerrainElevation(eT),ez=this.queryTerrainElevation(eE),eD=this.queryTerrainElevation(eS),ek=this.queryTerrainElevation(eM),eP=[[eI.x,eI.y,Math.min(eC||0,ez||0,eD||0,ek||0)],[eA.x,eA.y,Math.max(eC||0,ez||0,eD||0,ek||0)]],eL=x.Aabb.fromPoints(eP),eR=ev.getWorldToCameraMatrix(),eB=x.invert(new Float64Array(16),eR);eL=x.Aabb.applyTransform(eL,eR);let eO=x.sub([],eL.max,eL.min),eF=ew.left||0,eU=ew.right||0,eV=ew.bottom||0,eN=ew.top||0,{left:ej,right:eG,top:eZ,bottom:e$}=eb.padding,eq=.5*(eF+eU),eW=.5*(eN+eV),eX=Math.min(ev.scaleZoom(ev.scale*Math.min((ev.width-(eF+eU+ej+eG))/eO[0],(ev.height-(eV+eN+e$+eZ))/eO[1])),eb.maxZoom),eH=ev.scale/ev.zoomScale(eX);eL=new x.Aabb([eL.min[0]-(ej+eq)*eH,eL.min[1]-(e$+eW)*eH,eL.min[2]],[eL.max[0]+(eG+eq)*eH,eL.max[1]+(eZ+eW)*eH,eL.max[2]]);let eY=.5*eO[2],eJ=this._minimumAABBFrustumDistance(ev,eL),eK=[0,0,1,0];x.transformMat4$1(eK,eK,eR),x.normalize$2(eK,eK);let eQ=x.scale$2([],eK,eJ+eY),e0=x.add([],eL.center,eQ),e1=("number"==typeof eb.offset.x&&"number"==typeof eb.offset.y?new x.pointGeometry(eb.offset.x,eb.offset.y):x.pointGeometry.convert(eb.offset)).rotate(-x.degToRad(e_));eL.center[0]-=e1.x*eH,eL.center[1]+=e1.y*eH,x.transformMat4(eL.center,eL.center,eB),x.transformMat4(e0,e0,eB);let e2=[eL.center[0],eL.center[1],e0[2]*ev.pixelsPerMeter];x.scale$2(e2,e2,1/ev.worldSize);let e3=x.lngFromMercatorX(e2[0]),e5=x.latFromMercatorY(e2[1]),e4=Math.min(ev._zoomFromMercatorZ(e2[2]),eb.maxZoom),e6=new x.LngLat(e3,e5);return ev.mercatorFromTransition&&e4<.5*(x.GLOBE_ZOOM_THRESHOLD_MIN+x.GLOBE_ZOOM_THRESHOLD_MAX)?(ev.setProjection({name:"globe"}),ev.zoom=e4,this._cameraForBounds(ev,ef,em,e_,eg,ex)):{center:e6,zoom:e4,bearing:e_,pitch:eg}}fitBounds(x,eu,ef){let em=this.cameraForBounds(x,eu);return this._fitInternal(em,eu,ef)}fitScreenCoordinates(eu,ef,em,e_,eg){let ex=x.pointGeometry.convert(eu),ev=x.pointGeometry.convert(ef),eb=new x.pointGeometry(Math.min(ex.x,ev.x),Math.min(ex.y,ev.y)),ew=new x.pointGeometry(Math.max(ex.x,ev.x),Math.max(ex.y,ev.y));if("mercator"===this.transform.projection.name&&this.transform.anyCornerOffEdge(ex,ev))return this;let eT=this.transform.pointLocation3D(eb),eE=this.transform.pointLocation3D(ew),eS=this.transform.pointLocation3D(new x.pointGeometry(eb.x,ew.y)),eM=this.transform.pointLocation3D(new x.pointGeometry(ew.x,eb.y)),eI=[Math.min(eT.lng,eE.lng,eS.lng,eM.lng),Math.min(eT.lat,eE.lat,eS.lat,eM.lat)],eA=[Math.max(eT.lng,eE.lng,eS.lng,eM.lng),Math.max(eT.lat,eE.lat,eS.lat,eM.lat)],eC=e_&&e_.pitch?e_.pitch:this.getPitch(),ez=this._cameraForBounds(this.transform,eI,eA,em,eC,e_);return this._fitInternal(ez,e_,eg)}_fitInternal(eu,ef,em){return eu?(delete(ef=x.extend(eu,ef)).padding,ef.linear?this.easeTo(ef,em):this.flyTo(ef,em)):this}jumpTo(eu,ef){this.stop();let em=eu.preloadOnly?this.transform.clone():this.transform,e_=!1,eg=!1,ex=!1;return"zoom"in eu&&em.zoom!==+eu.zoom&&(e_=!0,em.zoom=+eu.zoom),void 0!==eu.center&&(em.center=x.LngLat.convert(eu.center)),"bearing"in eu&&em.bearing!==+eu.bearing&&(eg=!0,em.bearing=+eu.bearing),"pitch"in eu&&em.pitch!==+eu.pitch&&(ex=!0,em.pitch=+eu.pitch),null==eu.padding||em.isPaddingEqual(eu.padding)||(em.padding=eu.padding),eu.preloadOnly?(this._preloadTiles(em),this):(this.fire(new x.Event("movestart",ef)).fire(new x.Event("move",ef)),e_&&this.fire(new x.Event("zoomstart",ef)).fire(new x.Event("zoom",ef)).fire(new x.Event("zoomend",ef)),eg&&this.fire(new x.Event("rotatestart",ef)).fire(new x.Event("rotate",ef)).fire(new x.Event("rotateend",ef)),ex&&this.fire(new x.Event("pitchstart",ef)).fire(new x.Event("pitch",ef)).fire(new x.Event("pitchend",ef)),this.fire(new x.Event("moveend",ef)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||x.warnOnce(tx),this.transform.getFreeCameraOptions()}setFreeCameraOptions(eu,ef){let em=this.transform;if(!em.projection.supportsFreeCamera)return x.warnOnce(tx),this;this.stop();let e_=em.zoom,eg=em.pitch,ex=em.bearing;em.setFreeCameraOptions(eu);let ev=e_!==em.zoom,eb=eg!==em.pitch,ew=ex!==em.bearing;return this.fire(new x.Event("movestart",ef)).fire(new x.Event("move",ef)),ev&&this.fire(new x.Event("zoomstart",ef)).fire(new x.Event("zoom",ef)).fire(new x.Event("zoomend",ef)),ew&&this.fire(new x.Event("rotatestart",ef)).fire(new x.Event("rotate",ef)).fire(new x.Event("rotateend",ef)),eb&&this.fire(new x.Event("pitchstart",ef)).fire(new x.Event("pitch",ef)).fire(new x.Event("pitchend",ef)),this.fire(new x.Event("moveend",ef)),this}easeTo(eu,ef){let em,e_,eg,ex,ev;this._stop(!1,eu.easeId),(!1===(eu=x.extend({offset:[0,0],duration:500,easing:x.ease},eu)).animate||!eu.essential&&x.exported.prefersReducedMotion)&&(eu.duration=0);let eb=this.transform,ew=this.getZoom(),eT=this.getBearing(),eE=this.getPitch(),eS=this.getPadding(),eM="zoom"in eu?
60+eu.zoom:ew,eI="bearing"in eu?this._normalizeBearing(eu.bearing,eT):eT,eA="pitch"in eu?+eu.pitch:eE,eC="padding"in eu?eu.padding:eb.padding,ez=x.pointGeometry.convert(eu.offset);if("globe"===eb.projection.name){let ef=x.MercatorCoordinate.fromLngLat(eb.center),ex=ez.rotate(-eb.angle);ef.x+=ex.x/eb.worldSize,ef.y+=ex.y/eb.worldSize;let ev=ef.toLngLat(),ew=x.LngLat.convert(eu.center||ev);this._normalizeCenter(ew),em=eb.centerPoint.add(ex),e_=new x.pointGeometry(ef.x,ef.y).mult(eb.worldSize),eg=new x.pointGeometry(x.mercatorXfromLng(ew.lng),x.mercatorYfromLat(ew.lat)).mult(eb.worldSize).sub(e_)}else{em=eb.centerPoint.add(ez);let ef=eb.pointLocation(em),ex=x.LngLat.convert(eu.center||ef);this._normalizeCenter(ex),e_=eb.project(ef),eg=eb.project(ex).sub(e_)}let eD=eb.zoomScale(eM-ew);eu.around&&(ex=x.LngLat.convert(eu.around),ev=eb.locationPoint(ex));let ek=this._zooming||eM!==ew,eP=this._rotating||eT!==eI,eL=this._pitching||eA!==eE,eR=!eb.isPaddingEqual(eC),T=eb=>eB=>{if(ek&&(eb.zoom=x.number(ew,eM,eB)),eP&&(eb.bearing=x.number(eT,eI,eB)),eL&&(eb.pitch=x.number(eE,eA,eB)),eR&&(eb.interpolatePadding(eS,eC,eB),em=eb.centerPoint.add(ez)),ex)eb.setLocationAtPoint(ex,ev);else{let x=eb.zoomScale(eb.zoom-ew),eu=eM>ew?Math.min(2,eD):Math.max(.5,eD),ef=Math.pow(eu,1-eB),ex=eb.unproject(e_.add(eg.mult(eB*ef)).mult(x));eb.setLocationAtPoint(eb.renderWorldCopies?ex.wrap():ex,em)}return eu.preloadOnly||this._fireMoveEvents(ef),eb};if(eu.preloadOnly){let x=this._emulate(T,eu.duration,eb);return this._preloadTiles(x),this}let eB={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=ek,this._rotating=eP,this._pitching=eL,this._padding=eR,this._easeId=eu.easeId,this._prepareEase(ef,eu.noMoveStart,eB),this._ease(T(eb),x=>{eb.recenterOnTerrain(),this._afterEase(ef,x)},eu),this}_prepareEase(eu,ef,em={}){this._moving=!0,this.transform.cameraElevationReference="sea",ef||em.moving||this.fire(new x.Event("movestart",eu)),this._zooming&&!em.zooming&&this.fire(new x.Event("zoomstart",eu)),this._rotating&&!em.rotating&&this.fire(new x.Event("rotatestart",eu)),this._pitching&&!em.pitching&&this.fire(new x.Event("pitchstart",eu))}_fireMoveEvents(eu){this.fire(new x.Event("move",eu)),this._zooming&&this.fire(new x.Event("zoom",eu)),this._rotating&&this.fire(new x.Event("rotate",eu)),this._pitching&&this.fire(new x.Event("pitch",eu))}_afterEase(eu,ef){if(this._easeId&&ef&&this._easeId===ef)return;this._easeId=void 0,this.transform.cameraElevationReference="ground";let em=this._zooming,e_=this._rotating,eg=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,em&&this.fire(new x.Event("zoomend",eu)),e_&&this.fire(new x.Event("rotateend",eu)),eg&&this.fire(new x.Event("pitchend",eu)),this.fire(new x.Event("moveend",eu))}flyTo(eu,ef){if(!eu.essential&&x.exported.prefersReducedMotion){let em=x.pick(eu,["center","zoom","bearing","pitch","around"]);return this.jumpTo(em,ef)}this.stop(),eu=x.extend({offset:[0,0],speed:1.2,curve:1.42,easing:x.ease},eu);let em=this.transform,e_=this.getZoom(),eg=this.getBearing(),ex=this.getPitch(),ev=this.getPadding(),eb="zoom"in eu?x.clamp(+eu.zoom,em.minZoom,em.maxZoom):e_,ew="bearing"in eu?this._normalizeBearing(eu.bearing,eg):eg,eT="pitch"in eu?+eu.pitch:ex,eE="padding"in eu?eu.padding:em.padding,eS=em.zoomScale(eb-e_),eM=x.pointGeometry.convert(eu.offset),eI=em.centerPoint.add(eM),eA=em.pointLocation(eI),eC=x.LngLat.convert(eu.center||eA);this._normalizeCenter(eC);let ez=em.project(eA),eD=em.project(eC).sub(ez),ek=eu.curve,eP=Math.max(em.width,em.height),eL=eP/eS,eR=eD.mag();if("minZoom"in eu){let ef=x.clamp(Math.min(eu.minZoom,e_,eb),em.minZoom,em.maxZoom),eg=eP/em.zoomScale(ef-e_);ek=Math.sqrt(eg/eR*2)}let eB=ek*ek;function E(x){let eu=(eL*eL-eP*eP+(x?-1:1)*eB*eB*eR*eR)/(2*(x?eL:eP)*eB*eR);return Math.log(Math.sqrt(eu*eu+1)-eu)}function C(x){return(Math.exp(x)-Math.exp(-x))/2}function M(x){return(Math.exp(x)+Math.exp(-x))/2}let eO=E(0),S=function(x){return M(eO)/M(eO+ek*x)},D=function(x){var eu;return eP*((M(eO)*(C(eu=eO+ek*x)/M(eu))-C(eO))/eB)/eR},eF=(E(1)-eO)/ek;if(1e-6>
60Math.abs(eR)||!isFinite(eF)){if(1e-6>Math.abs(eP-eL))return this.easeTo(eu,ef);let x=eL<eP?-1:1;eF=Math.abs(Math.log(eL/eP))/ek,D=function(){return 0},S=function(eu){return Math.exp(x*ek*eu)}}eu.duration="duration"in eu?+eu.duration:1e3*eF/("screenSpeed"in eu?+eu.screenSpeed/ek:+eu.speed),eu.maxDuration&&eu.duration>eu.maxDuration&&(eu.duration=0);let eU=eg!==ew,eV=eT!==ex,eN=!em.isPaddingEqual(eE),R=em=>eS=>{let eA=eS*eF,ek=1/S(eA);em.zoom=1===eS?eb:e_+em.scaleZoom(ek),eU&&(em.bearing=x.number(eg,ew,eS)),eV&&(em.pitch=x.number(ex,eT,eS)),eN&&(em.interpolatePadding(ev,eE,eS),eI=em.centerPoint.add(eM));let eP=1===eS?eC:em.unproject(ez.add(eD.mult(D(eA))).mult(ek));return em.setLocationAtPoint(em.renderWorldCopies?eP.wrap():eP,eI),em._updateCameraOnTerrain(),eu.preloadOnly||this._fireMoveEvents(ef),em};if(eu.preloadOnly){let x=this._emulate(R,eu.duration,em);return this._preloadTiles(x),this}return this._zooming=!0,this._rotating=eU,this._pitching=eV,this._padding=eN,this._prepareEase(ef,!1),this._ease(R(em),()=>this._afterEase(ef),eu),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(x,eu){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){let x=this._onEaseEnd;this._onEaseEnd=void 0,x.call(this,eu)}if(!x){let x=this.handlers;x&&x.stop(!1)}return this}_ease(eu,ef,em){!1===em.animate||0===em.duration?(eu(1),ef()):(this._easeStart=x.exported.now(),this._easeOptions=em,this._onEaseFrame=eu,this._onEaseEnd=ef,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){let eu=Math.min((x.exported.now()-this._easeStart)/this._easeOptions.duration,1),ef=this._onEaseFrame;ef&&ef(this._easeOptions.easing(eu)),eu<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(eu,ef){eu=x.wrap(eu,-180,180);let em=Math.abs(eu-ef);return Math.abs(eu-360-ef)<em&&(eu-=360),Math.abs(eu+360-ef)<em&&(eu+=360),eu}_normalizeCenter(x){let eu=this.transform;if(!eu.renderWorldCopies||eu.maxBounds)return;let ef=x.lng-eu.center.lng;x.lng+=ef>180?-360:ef<-180?360:0}_emulate(x,eu,ef){let em=Math.ceil(15*eu/1e3),e_=[],eg=x(ef.clone());for(let x=0;x<=em;x++){let eu=eg(x/em);e_.push(eu.clone())}return e_}};let Kr=class Kr{constructor(eu={}){this.options=eu,x.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(x){let eu=this.options&&this.options.compact;return this._map=x,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=n("button","mapboxgl-ctrl-attrib-button",this._container),n("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden","true"),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=n("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),eu&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===eu&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(x,eu){let ef=this._map._getUIString(`AttributionControl.${eu}`);x.setAttribute("aria-label",ef),x.removeAttribute("title"),x.firstElementChild&&x.firstElementChild.setAttribute("title",ef)}_toggleAttribution(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-expanded","true"))}_updateEditLink(){let eu=this._editLink;eu||(eu=this._editLink=this._container.querySelector(".mapbox-improve-map"));let ef=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||x.config.ACCESS_TOKEN}];if(eu){let em=ef.reduce((x,eu,em)=>(eu.value&&(x+=`${eu.key}=${eu.value}${em<ef.length-1?"&":""}`),x),"?");eu.href=`${x.config.FEEDBACK_URL}/${em}#${er(this._map,!0)}`,eu.rel="noopener nofollow",this._setElementTitle(eu,"MapFeedback")}}_updateData(x){x&&("metadata"===x.sourceDataType||"visibility"===x.sourceDataType||"style"===x.dataType)&&(this._updateAttributions(),this._updateEditLink())}_updateAttributions(){if(!this._map.style)return;let x=[];if(this._map.style.stylesheet){let x=this._map.style.stylesheet;this.styleOwner=x.owner,this.styleId=x.id}let eu=this._map.style._sourceCaches;for(let ef in eu){let em=eu[ef];if(em.used){let eu=em.getSource();eu.attribution&&0>x.indexOf(eu.attribution)&&x.push(eu.attribution)}}x.sort((x,eu)=>x.length-eu.length),x=x.filter((eu,ef)=>{for(let em=ef+1;em<x.length;em++)if(x[em].indexOf(eu)>=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?x=[...this.options.customAttribution,...x]:x.unshift(this.options.customAttribution));let ef=x.join(" | ");ef!==this._attribHTML&&(this._attribHTML=ef,x.length?(this._innerContainer.innerHTML=ef,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")}};let Jr=class Jr{constructor(){x.bindAll(["_updateLogo","_updateCompact"],this)}onAdd(x){this._map=x,this._container=n("div","mapboxgl-ctrl");let eu=n("a","mapboxgl-ctrl-logo");return eu.target="_blank",eu.rel="noopener nofollow",eu.href="https://www.mapbox.com/",eu.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),eu.setAttribute("rel","noopener nofollow"),this._container.appendChild(eu),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)}getDefaultPosition(){return"bottom-left"}_updateLogo(x){x&&"metadata"!==x.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;let x=this._map.style._sourceCaches;if(0===Object.entries(x).length)return!0;for(let eu in x){let ef=x[eu].getSource();if(ef.hasOwnProperty("mapbox_logo")&&!ef.mapbox_logo)return!1}return!0}_updateCompact(){let x=this._container.children;if(x.length){let eu=x[0];this._map.getCanvasContainer().offsetWidth<250?eu.classList.add("mapboxgl-compact"):eu.classList.remove("mapboxgl-compact")}}};let Qr=class Qr{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(x){let eu=++this._id;return this._queue.push({callback:x,id:eu,cancelled:!1}),eu}remove(x){let eu=this._currentlyRunning,ef=eu?this._queue.concat(eu):this._queue;
60for(let eu of ef)if(eu.id===x)return void(eu.cancelled=!0)}run(x=0){let eu=this._currentlyRunning=this._queue;for(let ef of(this._queue=[],eu))if(!ef.cancelled&&(ef.callback(x),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}};function en(eu,ef,em){if(eu=new x.LngLat(eu.lng,eu.lat),ef){let e_=new x.LngLat(eu.lng-360,eu.lat),eg=new x.LngLat(eu.lng+360,eu.lat),ex=360*Math.ceil(Math.abs(eu.lng-em.center.lng)/360),ev=em.locationPoint(eu).distSqr(ef),eb=ef.x<0||ef.y<0||ef.x>em.width||ef.y>em.height;em.locationPoint(e_).distSqr(ef)<ev&&(eb||Math.abs(e_.lng-em.center.lng)<ex)?eu=e_:em.locationPoint(eg).distSqr(ef)<ev&&(eb||Math.abs(eg.lng-em.center.lng)<ex)&&(eu=eg)}for(;Math.abs(eu.lng-em.center.lng)>180;){let x=em.locationPoint(eu);if(x.x>=0&&x.y>=0&&x.x<=em.width&&x.y<=em.height)break;eu.lng>em.center.lng?eu.lng-=360:eu.lng+=360}return eu}let tv={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%)"};let on=class on extends x.Evented{constructor(eu,ef){if(super(),(eu instanceof x.window.HTMLElement||ef)&&(eu=x.extend({element:eu},ef)),x.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=eu&&eu.anchor||"center",this._color=eu&&eu.color||"#3FB1CE",this._scale=eu&&eu.scale||1,this._draggable=eu&&eu.draggable||!1,this._clickTolerance=eu&&eu.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=eu&&eu.rotation||0,this._rotationAlignment=eu&&eu.rotationAlignment||"auto",this._pitchAlignment=eu&&eu.pitchAlignment&&eu.pitchAlignment||"auto",this._updateMoving=()=>this._update(!0),this._occludedOpacity=eu&&eu.occludedOpacity||.2,eu&&eu.element)this._element=eu.element,this._offset=x.pointGeometry.convert(eu&&eu.offset||[0,0]);else{this._defaultMarker=!0,this._element=n("div");let ef=s("svg",{display:"block",height:41*this._scale+"px",width:27*this._scale+"px",viewBox:"0 0 27 41"},this._element),em=s("radialGradient",{id:"shadowGradient"},s("defs",{},ef));s("stop",{offset:"10%","stop-opacity":.4},em),s("stop",{offset:"100%","stop-opacity":.05},em),s("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},ef),s("path",{fill:this._color,d:"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z"},ef),s("path",{opacity:.25,d:"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z"},ef),s("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},ef),this._offset=x.pointGeometry.convert(eu&&eu.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",x=>{x.preventDefault()}),this._element.addEventListener("mousedown",x=>{x.preventDefault()});let em=this._element.classList;for(let x in tv)em.remove(`mapboxgl-marker-anchor-${x}`);em.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(x){return x===this._map||(this.remove(),this._map=x,x.getCanvasContainer().appendChild(this._element),x.on("move",this._updateMoving),x.on("moveend",this._update),x.on("remove",this._clearFadeTimer),x._addMarker(this),this.setDraggable(this._draggable),this._update(),x.on("click",this._onMapClick)),this}remove(){let x=this._map;return x&&(x.off("click",this._onMapClick),x.off("move",this._updateMoving),x.off("moveend",this._update),x.off("mousedown",this._addDragHandler),x.off("touchstart",this._addDragHandler),x.off("mouseup",this._onUp),x.off("touchend",this._onUp),x.off("mousemove",this._onMove),x.off("touchmove",this._onMove),x.off("remove",this._clearFadeTimer),x._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(eu){return this._lngLat=x.LngLat.convert(eu),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(x){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute("role"),this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),x){if(!("offset"in x.options)){let eu=Math.sqrt(91.125);x.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[
600,-38.1],"bottom-left":[eu,-1*(24.6+eu)],"bottom-right":[-eu,-1*(24.6+eu)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=x,x._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute("role","button"),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress),this._element.setAttribute("aria-expanded","false")}return this}_onKeyPress(x){let eu=x.code,ef=x.charCode||x.keyCode;"Space"!==eu&&"Enter"!==eu&&32!==ef&&13!==ef||this.togglePopup()}_onMapClick(x){let eu=x.originalEvent.target,ef=this._element;this._popup&&(eu===ef||ef.contains(eu))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){let x=this._popup;return x&&(x.isOpen()?(x.remove(),this._element.setAttribute("aria-expanded","false")):this._map&&(x.addTo(this._map),this._element.setAttribute("aria-expanded","true"))),this}_behindTerrain(){let x=this._map,eu=this._pos;if(!x||!eu)return!1;let ef=x.unproject(eu),em=x.getFreeCameraOptions();if(!em.position)return!1;let e_=em.position.toLngLat();return e_.distanceTo(ef)<.9*e_.distanceTo(this._lngLat)}_evaluateOpacity(){let eu;let ef=this._map;if(!ef)return;let em=this._pos;if(!em||em.x<0||em.x>ef.transform.width||em.y<0||em.y>ef.transform.height)return void this._clearFadeTimer();let e_=ef.unproject(em);ef._showingGlobe()&&x.isLngLatBehindGlobe(ef.transform,this._lngLat)?eu=0:(eu=1-ef._queryFogOpacity(e_),ef.transform._terrainEnabled()&&ef.getTerrain()&&this._behindTerrain()&&(eu*=this._occludedOpacity)),this._element.style.opacity=`${eu}`,this._element.style.pointerEvents=eu>0?"auto":"none",this._popup&&this._popup._setOpacity(eu),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_updateDOM(){let x=this._pos;if(!x||!this._map)return;let eu=this._offset.mult(this._scale);this._element.style.transform=` 61 translate(${x.x}px,${x.y}px) 62 ${tv[this._anchor]} 63 ${this._calculateXYTransform()} ${this._calculateZTransform()} 64 translate(${eu.x}px,${eu.y}px) 65 `}_calculateXYTransform(){let eu=this._pos,ef=this._map,em=this.getPitchAlignment();if(!ef||!eu||"map"!==em)return"";if(!ef._showingGlobe()){let x=ef.getPitch();return x?`rotateX(${x}deg)`:""}let e_=x.radToDeg(x.globeTiltAtLngLat(ef.transform,this._lngLat)),eg=eu.sub(x.globeCenterToScreenPoint(ef.transform)),ex=Math.abs(eg.x)+Math.abs(eg.y);if(0===ex)return"";let ev=e_/ex;return`rotateX(${-eg.y*ev}deg) rotateY(${eg.x*ev}deg)`}_calculateZTransform(){let eu=this._pos,ef=this._map;if(!ef||!eu)return"";let em=0,e_=this.getRotationAlignment();if("map"===e_){if(ef._showingGlobe()){let eu=ef.project(new x.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),e_=ef.project(new x.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(eu);em=x.radToDeg(Math.atan2(e_.y,e_.x))-90}else em=-ef.getBearing()}else if("horizon"===e_){let e_=x.smoothstep(4,6,ef.getZoom()),eg=x.globeCenterToScreenPoint(ef.transform);eg.y+=e_*ef.transform.height;let ex=eu.sub(eg),ev=x.radToDeg(Math.atan2(ex.y,ex.x));em=(ev>90?ev-270:ev+90)*(1-e_)}return(em+=this._rotation)?`rotateZ(${em}deg)`:""}_update(eu){x.window.cancelAnimationFrame(this._updateFrameId);let ef=this._map;
65ef&&(ef.transform.renderWorldCopies&&(this._lngLat=en(this._lngLat,this._pos,ef.transform)),this._pos=ef.project(this._lngLat),!0===eu?this._updateFrameId=x.window.requestAnimationFrame(()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),ef._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(ef._showingGlobe()||ef.getTerrain()||ef.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}getOffset(){return this._offset}setOffset(eu){return this._offset=x.pointGeometry.convert(eu),this._update(),this}_onMove(eu){let ef=this._map;if(!ef)return;let em=this._pointerdownPos,e_=this._positionDelta;if(em&&e_){if(!this._isDragging){let x=this._clickTolerance||ef._clickTolerance;if(eu.point.dist(em)<x)return;this._isDragging=!0}this._pos=eu.point.sub(e_),this._lngLat=ef.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new x.Event("dragstart"))),this.fire(new x.Event("drag"))}}_onUp(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1;let eu=this._map;eu&&(eu.off("mousemove",this._onMove),eu.off("touchmove",this._onMove)),"active"===this._state&&this.fire(new x.Event("dragend")),this._state="inactive"}_addDragHandler(x){let eu=this._map,ef=this._pos;eu&&ef&&this._element.contains(x.originalEvent.target)&&(x.preventDefault(),this._positionDelta=x.point.sub(ef),this._pointerdownPos=x.point,this._state="pending",eu.on("mousemove",this._onMove),eu.on("touchmove",this._onMove),eu.once("mouseup",this._onUp),eu.once("touchend",this._onUp))}setDraggable(x){this._draggable=!!x;let eu=this._map;return eu&&(x?(eu.on("mousedown",this._addDragHandler),eu.on("touchstart",this._addDragHandler)):(eu.off("mousedown",this._addDragHandler),eu.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(x){return this._rotation=x||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(x){return this._rotationAlignment=x||"auto",this._update(),this}getRotationAlignment(){return"auto"===this._rotationAlignment||"horizon"===this._rotationAlignment&&this._map&&!this._map._showingGlobe()?"viewport":this._rotationAlignment}setPitchAlignment(x){return this._pitchAlignment=x||"auto",this._update(),this}getPitchAlignment(){return"auto"===this._pitchAlignment?this.getRotationAlignment():this._pitchAlignment}setOccludedOpacity(x){return this._occludedOpacity=x||.2,this._update(),this}getOccludedOpacity(){return this._occludedOpacity}};let tb={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"};function sn(eu=new x.pointGeometry(0,0),ef="bottom"){if("number"==typeof eu){let em=Math.round(Math.sqrt(.5*Math.pow(eu,2)));switch(ef){case"top":return new x.pointGeometry(0,eu);case"top-left":return new x.pointGeometry(em,em);case"top-right":return new x.pointGeometry(-em,em);case"bottom":return new x.pointGeometry(0,-eu);case"bottom-left":return new x.pointGeometry(em,-em);case"bottom-right":return new x.pointGeometry(-em,-em);case"left":return new x.pointGeometry(eu,0);case"right":return new x.pointGeometry(-eu,0)}return new x.pointGeometry(0,0)}return eu instanceof x.pointGeometry||Array.isArray(eu)?x.pointGeometry.convert(eu):x.pointGeometry.convert(eu[ef]||[0,0])}let an=class an{constructor(x){this.jumpTo(x)}getValue(eu){if(eu<=this._startTime)return this._start;if(eu>=this._endTime)return this._end;let ef=x.easeCubicInOut((eu-this._startTime)/(this._endTime-this._startTime));return this._start*(1-ef)+this._end*ef}isEasing(x){return x>=this._startTime&&x<=this._endTime}jumpTo(x){this._startTime=-1/0,this._endTime=-1/0,this._start=x,this._end=x}easeTo(x,eu,ef){this._start=this.getValue(eu),this._end=x,this._startTime=eu,this._endTime=eu+ef}};let tw={"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":"Mapbox logo","Map.Title":"Map","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScrollZoomBlocker.CtrlMessage":"Use ctrl + scroll to zoom the map","ScrollZoomBlocker.CmdMessage":"Use â + scroll to zoom the map","TouchPanBlocker.Message":"Use two fingers to move the map"},tT={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileC
65acheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},tE={showCompass:!0,showZoom:!0,visualizePitch:!1};let un=class un{constructor(eu,ef,em=!1){this._clickTolerance=10,this.element=ef,this.mouseRotate=new wr({clickTolerance:eu.dragRotate._mouseRotate._clickTolerance}),this.map=eu,em&&(this.mousePitch=new Tr({clickTolerance:eu.dragRotate._mousePitch._clickTolerance})),x.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),ef.addEventListener("mousedown",this.mousedown),ef.addEventListener("touchstart",this.touchstart,{passive:!1}),ef.addEventListener("touchmove",this.touchmove),ef.addEventListener("touchend",this.touchend),ef.addEventListener("touchcancel",this.reset)}down(x,eu){this.mouseRotate.mousedown(x,eu),this.mousePitch&&this.mousePitch.mousedown(x,eu),h()}move(x,eu){let ef=this.map,em=this.mouseRotate.mousemoveWindow(x,eu),e_=em&&em.bearingDelta;if(e_&&ef.setBearing(ef.getBearing()+e_),this.mousePitch){let em=this.mousePitch.mousemoveWindow(x,eu),e_=em&&em.pitchDelta;e_&&ef.setPitch(ef.getPitch()+e_)}}off(){let x=this.element;x.removeEventListener("mousedown",this.mousedown),x.removeEventListener("touchstart",this.touchstart,{passive:!1}),x.removeEventListener("touchmove",this.touchmove),x.removeEventListener("touchend",this.touchend),x.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){u(),x.window.removeEventListener("mousemove",this.mousemove),x.window.removeEventListener("mouseup",this.mouseup)}mousedown(eu){this.down(x.extend({},eu,{ctrlKey:!0,preventDefault:()=>eu.preventDefault()}),p(this.element,eu)),x.window.addEventListener("mousemove",this.mousemove),x.window.addEventListener("mouseup",this.mouseup)}mousemove(x){this.move(x,p(this.element,x))}mouseup(x){this.mouseRotate.mouseupWindow(x),this.mousePitch&&this.mousePitch.mouseupWindow(x),this.offTemp()}touchstart(x){1!==x.targetTouches.length?this.reset():(this._startPos=this._lastPos=m(this.element,x.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>x.preventDefault()},this._startPos))}touchmove(x){1!==x.targetTouches.length?this.reset():(this._lastPos=m(this.element,x.targetTouches)[0],this.move({preventDefault:()=>x.preventDefault()},this._lastPos))}touchend(x){0===x.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()}reset(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()}};let tS={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0,showUserHeading:!1},tM={maxWidth:100,unit:"metric"};function pn(x,eu,ef){let em=mn(eu),e_=em/eu,eg={kilometer:"km",meter:"m",mile:"mi",foot:"ft","nautical-mile":"nm"}[ef];this._map._requestDomTask(()=>{this._container.style.width=x*e_+"px",this._container.innerHTML=`${em} ${eg}`})}function mn(x){let eu=Math.pow(10,`${Math.floor(x)}`.length-1),ef=x/eu;return eu*(ef=ef>=10?10:ef>=5?5:ef>=3?3:ef>=2?2:ef>=1?1:function(x){let eu=Math.pow(10,Math.ceil(-Math.log(x)/Math.LN10));return Math.round(x*eu)/eu}(ef))}let tI={version:x.version,supported:o,setRTLTextPlugin:x.setRTLTextPlugin,getRTLTextPluginStatus:x.getRTLTextPluginStatus,Map:class extends Yr{constructor(eu){if(x.LivePerformanceUtils.mark(x.PerformanceMarkers.create),null!=(eu=x.extend({},tT,eu)).minZoom&&null!=eu.maxZoom&&eu.minZoom>eu.maxZoom)throw Error("maxZoom must be greater than or equal to minZoom");if(null!=eu.minPitch&&null!=eu.maxPitch&&eu.minPitch>eu.maxPitch)throw Error("maxPitch must be greater than or equal to minPitch");if(null!=eu.minPitch&&eu.minPitch<0)throw Error("minPitch must be greater than or equal to 0");if(null!=eu.maxPitch&&eu.maxPitch>85)throw Error("maxPitch must be less than or equal to 85");if(eu.antialias&&x.isSafariWithAntialiasingBug(x.window)&&(eu.antialias=!1,x.warnOnce("Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609")),super(new Ko(eu.minZoom,eu.maxZoom,eu.minPitch,eu.maxPitch,eu.renderWorldCopies),eu),this._interactive=eu.interactive,this._minTileCacheSize=eu.minTileCacheSize,this._maxTileC
65acheSize=eu.maxTileCacheSize,this._failIfMajorPerformanceCaveat=eu.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=eu.preserveDrawingBuffer,this._antialias=eu.antialias,this._useWebGL2=eu.useWebGL2,this._trackResize=eu.trackResize,this._bearingSnap=eu.bearingSnap,this._refreshExpiredTiles=eu.refreshExpiredTiles,this._fadeDuration=eu.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=eu.crossSourceCollisions,this._collectResourceTiming=eu.collectResourceTiming,this._optimizeForTerrain=eu.optimizeForTerrain,this._language=this._parseLanguage(eu.language),this._worldview=eu.worldview,this._renderTaskQueue=new Qr,this._domRenderTaskQueue=new Qr,this._controls=[],this._markers=[],this._popups=[],this._mapId=x.uniqueId(),this._locale=x.extend({},tw,eu.locale),this._clickTolerance=eu.clickTolerance,this._cooperativeGestures=eu.cooperativeGestures,this._performanceMetricsCollection=eu.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new an(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new x.RequestManager(eu.transformRequest,eu.accessToken,eu.testMode),this._silenceAuthErrors=!!eu.testMode,"string"==typeof eu.container){if(this._container=x.window.document.getElementById(eu.container),!this._container)throw Error(`Container '${eu.container}' not found.`)}else{if(!(eu.container instanceof x.window.HTMLElement))throw Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=eu.container}if(this._container.childNodes.length>0&&x.warnOnce("The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead."),eu.maxBounds&&this.setMaxBounds(eu.maxBounds),x.bindAll(["_onWindowOnline","_onWindowResize","_onVisibilityChange","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),void 0!==x.window&&(x.window.addEventListener("online",this._onWindowOnline,!1),x.window.addEventListener("resize",this._onWindowResize,!1),x.window.addEventListener("orientationchange",this._onWindowResize,!1),x.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1),x.window.addEventListener("visibilitychange",this._onVisibilityChange,!1)),this.handlers=new $r(this,eu),this._localFontFamily=eu.localFontFamily,this._localIdeographFontFamily=eu.localIdeographFontFamily,eu.style&&this.setStyle(eu.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),eu.projection&&this.setProjection(eu.projection),this._hash=eu.hash&&new Qo("string"==typeof eu.hash&&eu.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:eu.center,zoom:eu.zoom,bearing:eu.bearing,pitch:eu.pitch}),eu.bounds&&(this.resize(),this.fitBounds(eu.bounds,x.extend({},eu.fitBoundsOptions,{duration:0})))),this.resize(),eu.attributionControl&&this.addControl(new Kr({customAttribution:eu.customAttribution})),this._logoControl=new Jr,this.addControl(this._logoControl,eu.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",eu=>{this._update("style"===eu.dataType),this.fire(new x.Event(`${eu.dataType}data`,eu))}),this.on("dataloading",eu=>{this.fire(new x.Event(`${eu.dataType}dataloading`,eu))})}_getMapId(){return this._mapId}addControl(eu,ef){if(void 0===ef&&(ef=eu.getDefaultPosition?eu.getDefaultPosition():"top-right"),!eu||!eu.onAdd)return this.fire(new x.ErrorEvent(Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));let em=eu.onAdd(this);this._controls.push(eu);let e_=this._controlPositions[ef];return -1!==ef.indexOf("bottom")?e_.insertBefore(em,e_.firstChild):e_.appendChild(em),this}
65removeControl(eu){if(!eu||!eu.onRemove)return this.fire(new x.ErrorEvent(Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));let ef=this._controls.indexOf(eu);return ef>-1&&this._controls.splice(ef,1),eu.onRemove(this),this}hasControl(x){return this._controls.indexOf(x)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(eu){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));let ef=!this._moving;return ef&&this.fire(new x.Event("movestart",eu)).fire(new x.Event("move",eu)),this.fire(new x.Event("resize",eu)),ef&&this.fire(new x.Event("moveend",eu)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(eu){return this.transform.setMaxBounds(x.LngLatBounds.convert(eu)),this._update()}setMinZoom(eu){if((eu=null==eu?-2:eu)>=-2&&eu<=this.transform.maxZoom)return this.transform.minZoom=eu,this._update(),this.getZoom()<eu?this.setZoom(eu):this.fire(new x.Event("zoomstart")).fire(new x.Event("zoom")).fire(new x.Event("zoomend")),this;throw Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(eu){if((eu=null==eu?22:eu)>=this.transform.minZoom)return this.transform.maxZoom=eu,this._update(),this.getZoom()>eu?this.setZoom(eu):this.fire(new x.Event("zoomstart")).fire(new x.Event("zoom")).fire(new x.Event("zoomend")),this;throw Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(eu){if((eu=null==eu?0:eu)<0)throw Error("minPitch must be greater than or equal to 0");if(eu>=0&&eu<=this.transform.maxPitch)return this.transform.minPitch=eu,this._update(),this.getPitch()<eu?this.setPitch(eu):this.fire(new x.Event("pitchstart")).fire(new x.Event("pitch")).fire(new x.Event("pitchend")),this;throw Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(eu){if((eu=null==eu?85:eu)>85)throw Error("maxPitch must be less than or equal to 85");if(eu>=this.transform.minPitch)return this.transform.maxPitch=eu,this._update(),this.getPitch()>eu?this.setPitch(eu):this.fire(new x.Event("pitchstart")).fire(new x.Event("pitch")).fire(new x.Event("pitchend")),this;throw Error("maxPitch must be greater than or equal to minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(x){return this.transform.renderWorldCopies=x,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(eu){return"auto"===eu?x.window.navigator.language:Array.isArray(eu)?0===eu.length?void 0:eu.map(eu=>"auto"===eu?x.window.navigator.language:eu):eu}setLanguage(x){let eu=this._parseLanguage(x);if(!this.style||eu===this._language)return this;for(let x of(this._language=eu,this.style._reloadSources(),this._controls))x._setLanguage&&x._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(x){return this.style&&x!==this._worldview&&(this._worldview=x,this.style._reloadSources()),this}getProjection(){return this.transform.mercatorFromTransition?{name:"globe",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return"globe"===this.transform.projection.name}setProjection(x){return this._lazyInitEmptyStyle(),x?"string"==typeof x&&(x={name:x}):x=null,this._useExplicitProjection=!!x,this._prioritizeAndUpdateProjection(x,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){let eu;if("globe"!==this.getProjection().name)return;let ef=this.transform,em=ef.projection.name;"globe"===em&&ef.zoom>=x.GLOBE_ZOOM_THRESHOLD_MAX?(ef.setMercatorFromTransition(),eu=!0):"mercator"===em&&ef.zoom<x.GLOBE_ZOOM_THRESHOLD_MAX&&(ef.setProjection({name:"globe"}),eu=!0),eu&&(this.style.applyProjectionUpdate(),this.style._forceSymbolLayer
65Update())}_prioritizeAndUpdateProjection(x,eu){return this._updateProjection(x||eu||{name:"mercator"})}_updateProjection(eu){let ef;if(ef="globe"===eu.name&&this.transform.zoom>=x.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(eu),this.style.applyProjectionUpdate(),ef){for(let x in this.painter.clearBackgroundTiles(),this.style._sourceCaches)this.style._sourceCaches[x].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0)}return this}project(eu){return this.transform.locationPoint3D(x.LngLat.convert(eu))}unproject(eu){return this.transform.pointLocation3D(x.pointGeometry.convert(eu))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(x,eu,ef){if("mouseenter"===x||"mouseover"===x){let em=!1;return{layers:new Set(eu),listener:ef,delegates:{mousemove:e_=>{let eg=eu.filter(x=>this.getLayer(x)),ex=eg.length?this.queryRenderedFeatures(e_.point,{layers:eg}):[];ex.length?em||(em=!0,ef.call(this,new cr(x,this,e_.originalEvent,{features:ex}))):em=!1},mouseout:()=>{em=!1}}}}if("mouseleave"===x||"mouseout"===x){let em=!1;return{layers:new Set(eu),listener:ef,delegates:{mousemove:e_=>{let eg=eu.filter(x=>this.getLayer(x));(eg.length?this.queryRenderedFeatures(e_.point,{layers:eg}):[]).length?em=!0:em&&(em=!1,ef.call(this,new cr(x,this,e_.originalEvent)))},mouseout:eu=>{em&&(em=!1,ef.call(this,new cr(x,this,eu.originalEvent)))}}}}return{layers:new Set(eu),listener:ef,delegates:{[x]:x=>{let em=eu.filter(x=>this.getLayer(x)),e_=em.length?this.queryRenderedFeatures(x.point,{layers:em}):[];e_.length&&(x.features=e_,ef.call(this,x),delete x.features)}}}}on(x,eu,ef){if(void 0===ef)return super.on(x,eu);Array.isArray(eu)||(eu=[eu]);let em=this._createDelegatedListener(x,eu,ef);for(let eu in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[x]=this._delegatedListeners[x]||[],this._delegatedListeners[x].push(em),em.delegates)this.on(eu,em.delegates[eu]);return this}once(x,eu,ef){if(void 0===ef)return super.once(x,eu);Array.isArray(eu)||(eu=[eu]);let em=this._createDelegatedListener(x,eu,ef);for(let x in em.delegates)this.once(x,em.delegates[x]);return this}off(x,eu,ef){if(void 0===ef)return super.off(x,eu);eu=new Set(Array.isArray(eu)?eu:[eu]);let o=(x,eu)=>{if(x.size!==eu.size)return!1;for(let ef of x)if(!eu.has(ef))return!1;return!0},em=this._delegatedListeners?this._delegatedListeners[x]:void 0;return em&&(x=>{for(let em=0;em<x.length;em++){let e_=x[em];if(e_.listener===ef&&o(e_.layers,eu)){for(let x in e_.delegates)this.off(x,e_.delegates[x]);return x.splice(em,1),this}}})(em),this}queryRenderedFeatures(eu,ef){return this.style?(void 0!==ef||void 0===eu||eu instanceof x.pointGeometry||Array.isArray(eu)||(ef=eu,eu=void 0),this.style.queryRenderedFeatures(eu=eu||[[0,0],[this.transform.width,this.transform.height]],ef=ef||{},this.transform)):[]}querySourceFeatures(x,eu){return this.style.querySourceFeatures(x,eu)}setStyle(eu,ef){return!1!==(ef=x.extend({},{localIdeographFontFamily:this._localIdeographFontFamily,localFontFamily:this._localFontFamily},ef)).diff&&ef.localIdeographFontFamily===this._localIdeographFontFamily&&ef.localFontFamily===this._localFontFamily&&this.style&&eu?(this._diffStyle(eu,ef),this):(this._localIdeographFontFamily=ef.localIdeographFontFamily,this._localFontFamily=ef.localFontFamily,this._updateStyle(eu,ef))}_getUIString(x){let eu=this._locale[x];if(null==eu)throw Error(`Missing UI string '${x}'`);return eu}_updateStyle(x,eu){return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.style=void 0),x&&(this.style=new Qt(this,eu||{}),this.style.setEventedParent(this,{style:this.style}),"string"==typeof x?this.style.loadURL(x):this.style.loadJSON(x)),this._updateTerrain(),this}_lazyInitEmptyStyle(){this.style||(this.style=new Qt(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(eu,ef){if("string"==typeof eu){let em=this._requestManager.normalizeStyleURL(eu),e_=this._requestManager.transformRequest(em,x.ResourceType.Style);x.getJSON(e_,(eu,em)=>{eu?this.fire(new x.ErrorEvent(eu)):em&&this._updateDiff(em,ef)})}else"object"==typeof eu&&this._updateDiff(eu,ef)}_updateDiff(eu,ef){try{this.style.setState(eu)&&this._update(!0)}catch(em){x.warnOnce(`Unable to perform style diff: ${em.message||em.error||em}. Rebuilding the style from scratch.`),this._updateStyle(eu,ef)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(x.warnOnce("There is no style added to the map."),!1)}addSource(x,eu){return this._lazyInitEmptyStyle(),this.style.addSource(x,eu),this._update(!0)}isSourceLoaded(x){return!!this.style&&this.style._isSourceCacheLoaded(x)}areTilesLoaded(){let x=this.style&&this.style._sourceCaches;for(let eu in x){let ef=x[eu]._tiles;for(let x in ef){let eu=ef[x];if("loaded"!==eu.state&&"errored"!==eu.state)return!1}}return!0}addSourceType(x,eu,ef){this._lazyInitEmptyStyle(),this.style.addSourceType(x,eu,ef)}removeSource(x){return this.style.removeSource(x),this._updateTerrain(),this._update(!0)}getSource(x){return this.style.getSource(x)}addImage(eu,ef,{pixelRatio:em=1,sdf:e_=!1,stretchX:eg,stretchY:ex,content:ev}={}){if(this._lazyInitEmptyStyle(),ef instanceof x.window.HTMLImageElement||x.window.ImageBitmap&&ef instanceof x.window.ImageBitmap){let{width:eb,height:ew,data:eT}=x.exported.getImageData(ef);this.style.addImage(eu,{data:new x.RGBAImage({width:eb,height:ew},eT),pixelRatio:em,stretchX:eg,stretchY:ex,content:ev,sdf:e_,version:0})}else if(void 0===ef.width||void 0===ef.height)this.fire(new x.ErrorEvent(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`")));else{let{width:eb,height:ew}=ef;this.style.addImage(eu,{data:new x.RGBAImage({width:eb,height:ew},new Uint8Array(ef.data)),pixelRatio:em,stretchX:eg,stretchY:ex,content:ev,sdf:e_,version:0,userImage:ef}),ef.onAdd&&ef.onAdd(this,eu)}}updateImage(eu,ef){let em=this.style.getImage(eu);if(!em)return void this.fire(new x.ErrorEvent(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));let e_=ef instanceof x.window.HTMLImageElement||x.window.ImageBitmap&&ef instanceof x.window.ImageBitmap?x.exported.getImageData(ef):ef,{width:eg,height:ex}=e_;void 0!==eg&&void 0!==ex?eg===em.data.width&&ex===em.data.height?(em.data.replace(e_.data,!(ef instanceof x.window.HTMLImageElement||x.window.ImageBitmap&&ef instanceof x.window.ImageBitmap)),this.style.updateImage(eu,em)):this.fire(new x.ErrorEvent(Error(`The width and height of the updated image (${eg}, ${ex}) 66 must be that same as the previous version of the image 67 (${em.data.width}, ${em.data.height})`))):this.fire(new x.ErrorEvent(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`")))}hasImage(eu){return eu?!!this.style.getImage(eu):(this.fire(new x.ErrorEvent(Error("Missing required image id"))),!1)}removeImage(x){this.style.removeImage(x)}loadImage(eu,ef){x.getImage(this._requestManager.transformRequest(eu,x.ResourceType.Image),(eu,em)=>{ef(eu,em instanceof x.window.HTMLImageElement?x.exported.getImageData(em):em)})}listImages(){return this.style.listImages()}addLayer(x,eu){return this._lazyInitEmptyStyle(),this.style.addLayer(x,eu),this._update(!0)}moveLayer(x,eu){return this.style.moveLayer(x,eu),this._update(!0)}removeLayer(x){return this.style.removeLayer(x),this._update(!0)}getLayer(x){return this.style.getLayer(x)}setLayerZoomRange(x,eu,ef){return this.style.setLayerZoomRange(x,eu,ef),this._update(!0)}setFilter(x,eu,ef={}){return this.style.setFilter(x,eu,ef),this._update(!0)}getFilter(x){return this.style.getFilter(x)}setPaintProperty(x,eu,ef,em={}){return this.style.setPaintProperty(x,eu,ef,em),this._update(!0)}getPaintProperty(x,eu){return this.style.getPaintProperty(x,eu)}setLayoutProperty(x,eu,ef,em={}){return this.style.setLayoutProperty(x,eu,ef,em),this._update(!0)}getLayoutProperty(x,eu){return this.style.getLayoutProperty(x,eu)}setLight(x,eu={}){return this._lazyInitEmptyStyle(),this.style.setLight(x,eu),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(x){return this._lazyInitEmptyStyle(),!x&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(x),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(x){return this._lazyInitEmptyStyle(),this.style.setFog(x),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(eu){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(x.LngLat.convert(eu),this.transform):0}setFeatureState(x,eu){return this.style.setFeatureState(x,eu),this._update()}removeFeatureState(x,eu){return this.style.removeFeatureState(x,eu),this._update()}getFeatureState(x){return this.style.getFeatureState(x)}_updateContainerDimensions(){if(!this._container)return;let eu=this._container.getBoundingClientRect().width||400,ef=this._container.getBoundingClientRect().height||300,em,e_,eg,ex=this._container;for(;ex&&(!e_||!eg);){let eu=x.window.getComputedStyle(ex).transform;eu&&"none"!==eu&&((em=eu.match(/matrix.*\((.+)\)/)[1].split(", "))[0]&&"0"!==em[0]&&"1"!==em[0]&&(e_=em[0]),em[3]&&"0"!==em[3]&&"1"!==em[3]&&(eg=em[3])),ex=ex.parentElement}this._containerWidth=e_?Math.abs(eu/e_):eu,this._containerHeight=eg?Math.abs(ef/eg):ef}_detectMissingCSS(){"rgb(250, 128, 114)"!==x.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&x.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described
67in https://www.mapbox.com/mapbox-gl-js/api/.")}_setupContainer(){let x=this._container;x.classList.add("mapboxgl-map"),(this._missingCSSCanary=n("div","mapboxgl-canary",x)).style.visibility="hidden",this._detectMissingCSS();let eu=this._canvasContainer=n("div","mapboxgl-canvas-container",x);this._interactive&&eu.classList.add("mapboxgl-interactive"),this._canvas=n("canvas","mapboxgl-canvas",eu),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);let ef=this._controlContainer=n("div","mapboxgl-control-container",x),em=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(x=>{em[x]=n("div",`mapboxgl-ctrl-${x}`,ef)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(eu,ef){let em=x.exported.devicePixelRatio||1;this._canvas.width=em*Math.ceil(eu),this._canvas.height=em*Math.ceil(ef),this._canvas.style.width=`${eu}px`,this._canvas.style.height=`${ef}px`}_addMarker(x){this._markers.push(x)}_removeMarker(x){let eu=this._markers.indexOf(x);-1!==eu&&this._markers.splice(eu,1)}_addPopup(x){this._popups.push(x)}_removePopup(x){let eu=this._popups.indexOf(x);-1!==eu&&this._popups.splice(eu,1)}_setupPainter(){let eu=x.extend({},o.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),ef=this._useWebGL2&&this._canvas.getContext("webgl2",eu),em=ef||this._canvas.getContext("webgl",eu)||this._canvas.getContext("experimental-webgl",eu);em?(this._useWebGL2&&!ef&&x.warnOnce("Failed to create WebGL 2 context. Using WebGL 1."),x.storeAuthState(em,!0),this.painter=new Fo(em,this.transform,!!ef),this.on("data",x=>{"source"===x.dataType&&this.painter.setTileLoadedFlag(!0)}),x.exported$1.testSupport(em)):this.fire(new x.ErrorEvent(Error("Failed to initialize WebGL")))}_contextLost(eu){eu.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new x.Event("webglcontextlost",{originalEvent:eu}))}_contextRestored(eu){this._setupPainter(),this.resize(),this._update(),this.fire(new x.Event("webglcontextrestored",{originalEvent:eu}))}_onMapScroll(x){if(x.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(x){return this.style&&(this._styleDirty=this._styleDirty||x,this._sourcesDirty=!0,this.triggerRepaint()),this}_requestRenderFrame(x){return this._update(),this._renderTaskQueue.add(x)}_cancelRenderFrame(x){this._renderTaskQueue.remove(x)}_requestDomTask(x){!this.loaded()||this.loaded()&&!this.isMoving()?x():this._domRenderTaskQueue.add(x)}_render(eu){let ef;let em=this.painter.context.extTimerQuery,e_=x.exported.now();if(this.listens("gpu-timing-frame")&&(ef=em.createQueryEXT(),em.beginQueryEXT(em.TIME_ELAPSED_EXT,ef)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],x.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],x.window.performance.now())),this._renderTaskQueue.run(eu),this._domRenderTaskQueue.run(eu),this._removed)return;this._updateProjectionTransition();let eg=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;let eu=this.transform.zoom,ef=this.transform.pitch,em=x.exported.now(),e_=new x.EvaluationParameters(eu,{now:em,fadeDuration:eg,pitch:ef,transition:this.style.getTransition()});this.style.update(e_)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let ex=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),ex=this._updateAverageElevation(e_),this.style._updateSources(this.transform),this._forceMar
67kerAndPopupUpdate()):ex=this._updateAverageElevation(e_),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,eg,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:eg,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),gpuTimingDeferredRender:!!this.listens("gpu-timing-deferred-render"),speedIndexTiming:this.speedIndexTiming}),this.fire(new x.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new x.Event("load"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),ef){let eu=x.exported.now()-e_;em.endQueryEXT(em.TIME_ELAPSED_EXT,ef),setTimeout(()=>{let eg=em.getQueryObjectEXT(ef,em.QUERY_RESULT_EXT)/1e6;em.deleteQueryEXT(ef),this.fire(new x.Event("gpu-timing-frame",{cpuTime:eu,gpuTime:eg})),x.window.performance.mark("frame-gpu",{startTime:e_,detail:{gpuTime:eg}})},50)}if(this.listens("gpu-timing-layer")){let eu=this.painter.collectGpuTimers();setTimeout(()=>{let ef=this.painter.queryGpuTimers(eu);this.fire(new x.Event("gpu-timing-layer",{layerTimes:ef}))},50)}if(this.listens("gpu-timing-deferred-render")){let eu=this.painter.collectDeferredRenderGpuQueries();setTimeout(()=>{let ef=this.painter.queryGpuTimeDeferredRender(eu);this.fire(new x.Event("gpu-timing-deferred-render",{gpuTime:ef}))},50)}let ev=this._sourcesDirty||this._styleDirty||this._placementDirty||ex;if(ev||this._repaint)this.triggerRepaint();else{let eu=!this.isMoving()&&this.loaded();if(eu&&(ex=this._updateAverageElevation(e_,!0)),ex)this.triggerRepaint();else if(this._triggerFrame(!1),eu&&(this.fire(new x.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){let eu=this._calculateSpeedIndex();this.fire(new x.Event("speedindexcompleted",{speedIndex:eu})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||ev||(this._fullyLoaded=!0,x.LivePerformanceUtils.mark(x.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&x.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(x){for(let eu of this._markers)x&&!this.getRenderWorldCopies()&&(eu._lngLat=eu._lngLat.wrap()),eu._update();for(let eu of this._popups)!x||this.getRenderWorldCopies()||eu._trackPointer||(eu._lngLat=eu._lngLat.wrap()),eu._update()}_updateAverageElevation(x,eu=!1){let i=x=>(this.transform.averageElevation=x,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&i(0);if((eu||x-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(x)){let eu=this.transform.averageElevation,ef=this.transform.sampleAverageElevation(),em=!1;this.transform.elevation&&(em=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(ef)?ef=0:this._averageElevationLastSampledAt=x;let e_=Math.abs(eu-ef);if(e_>1){if(this._isInitialLoad||em)return this._averageElevation.jumpTo(ef),i(ef);this._averageElevation.easeTo(ef,x,300)}else if(e_>1e-4)return this._averageElevation.jumpTo(ef),i(ef)}return!!this._averageElevation.isEasing(x)&&i(this._averageElevation.getValue(x))}_authenticate(){x.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,eu=>{if(eu&&(eu.message===x.AUTH_ERR_MSG||401===eu.status)){let eu=this.painter.context.gl;x.storeAuthState(eu,!1),this._logoControl instanceof Jr&&this._logoControl._updateLogo(),eu&&eu.clear(eu.DEPTH_BUFFER_BIT|eu.COLOR_BUFFER_BIT|eu.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new x.ErrorEvent(Error("A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/")))}}),x.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){let x=this._isDragging();this.painter.updateTerrain(this.style,x)}_calculateSpeedIndex(){let x=this.painter.canvasCopy(),eu=this.painter.getCanvasCopiesAndTimestamps();eu.timeStamps.push(performance.now());let ef=this.painter.context.gl,em=ef.createFramebuffer();function r(x){ef.framebufferTexture2D(ef.FRAMEBUFFER,ef.COLOR_ATTACHMENT0,ef.TEXTURE_2D,x,0);let eu=new Uint8Array(ef.drawingBufferWidth*ef.drawingBufferHeight*4);return ef.readPixels(0,0,ef.drawingBufferWidth,ef.drawingBufferHeight,ef.RGBA,ef.UNSIGNED_BYTE,eu),eu}return ef.bindFramebuffer(ef.FRAMEBUFFER,em),this._canvasPixelComparison(r(x),eu.canvasCopies.map(r),eu.timeStamps)}_canvasPixelComparison(x,eu,ef){let em=ef[1]-ef[0],e_=x.length/4;for(let eg=0;eg<eu.length;eg++){let ex=eu[eg],ev=0;for(let eu=0;eu<ex.length;eu+=4)ex[eu]===x[eu]&&ex[eu+1]===x[eu+1]&&ex[eu+2]===x[eu+2]&&ex[eu+3]===x[eu+3]&&(ev+=1);em+=(ef[eg+2]-ef[eg+1])*(1-ev/e_)}return em}remove(){for(let x of(this._hash&&this._hash.remove(),this._controls))x.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this._domRenderTaskQueue.clear(),this.style&&this.style.destroy(),this.painter.destroy(),this.handlers&&this.handlers.destroy(),this.handlers=void 0,this.setStyle(null),void 0!==x.window&&(x.window.removeEventListener("resize",this._onWindowResize,!1),x.window.removeEventListener("orientationchange",this._onWindowResize,!1),x.window.removeEventListener("webkitfullscreenchange",this._onWindowResize,!1),x.window.removeEventListener("online",this._onWindowOnline,!1),x.window.removeEventListener("visibilitychange",this._onVisibilityChange,!1));let eu=this.painter.context.gl.getExtension("WEBGL_lose_context");eu&&eu.loseContext(),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvasContainer.remove(),this._controlContainer.remove(),this._missingCSSCanary.remove(),this._canvas=void 0,this._canvasContainer=void 0,this._controlContainer=void 0,this._missingCSSCanary=void 0,this._container.classList.remove("mapboxgl-map"),this._container.removeEventListener("scroll",this._onMapScroll,!1),x.removeAuthState(this.painter.context.gl),this._removed=!0,this.fire(new x.Event("remove"))}triggerRepaint(){this._triggerFrame(!0)}_triggerFrame(eu){this._renderNextFrame=this._renderNextFrame||eu,this.style&&!this._frame&&(this._frame=x.exported.frame(x=>{let eu=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,eu&&this._render(x)}
67))}_preloadTiles(eu){let ef=this.style?Object.values(this.style._sourceCaches):[];return x.asyncAll(ef,(x,ef)=>x._preloadTiles(eu,ef),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(x){this._trackResize&&this.resize({originalEvent:x})._update()}_onVisibilityChange(){"hidden"===x.window.document.visibilityState&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(x){this._showTileBoundaries!==x&&(this._showTileBoundaries=x,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(x){this._showTerrainWireframe!==x&&(this._showTerrainWireframe=x,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(x){this._speedIndexTiming!==x&&(this._speedIndexTiming=x,this._update())}get showPadding(){return!!this._showPadding}set showPadding(x){this._showPadding!==x&&(this._showPadding=x,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(x){this._showCollisionBoxes!==x&&(this._showCollisionBoxes=x,x?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(x){this._showOverdrawInspector!==x&&(this._showOverdrawInspector=x,this._update())}get repaint(){return!!this._repaint}set repaint(x){this._repaint!==x&&(this._repaint=x,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(x){this._vertices=x,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(x){this._showTileAABBs!==x&&(this._showTileAABBs=x,x&&this._update())}_setCacheLimits(eu,ef){x.setCacheLimits(eu,ef)}get version(){return x.version}},NavigationControl:class{constructor(eu){this.options=x.extend({},tE,eu),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",x=>x.preventDefault()),this.options.showZoom&&(x.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",x=>{this._map&&this._map.zoomIn({},{originalEvent:x})}),n("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",x=>{this._map&&this._map.zoomOut({},{originalEvent:x})}),n("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(x.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",x=>{let eu=this._map;eu&&(this.options.visualizePitch?eu.resetNorthPitch({},{originalEvent:x}):eu.resetNorth({},{originalEvent:x}))}),this._compassIcon=n("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}_updateZoomButtons(){let x=this._map;if(!x)return;let eu=x.getZoom(),ef=eu===x.getMaxZoom(),em=eu===x.getMinZoom();this._zoomInButton.disabled=ef,this._zoomOutButton.disabled=em,this._zoomInButton.setAttribute("aria-disabled",ef.toString()),this._zoomOutButton.setAttribute("aria-disabled",em.toString())}_rotateCompassArrow(){let x=this._map;if(!x)return;let eu=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(x.transform.pitch*(Math.PI/180)),.5)}) rotateX(${x.transform.pitch}deg) rotateZ(${x.transform.angle*(180/Math.PI)}deg)`:`rotate(${x.transform.angle*(180/Math.PI)}deg)`;x._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=eu)})}onAdd(x){return this._map=x,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),x.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&x.on("pitch",this._rotateCompassArrow),x.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new un(x,this._compass,this.options.visualizePitch)),this._container}onRemove(){let x=this._map;x&&(this._container.remove(),this.options.showZoom&&x.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&x.off("pitch",this._rotateCompassArrow),x.off("rotate",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(x,eu){let ef=n("button",x,this._container);return ef.type="button",ef.addEventListener("click",eu),ef}_setButtonTitle(x,eu){if(!this._map)return;let ef=this._map._getUIString(`NavigationControl.${eu}`);x.setAttribute("aria-label",ef),x.firstElementChild&&x.firstElementChild.setAttribute("title",ef)}},GeolocateControl:class extends x.Evented{constructor(eu){super(),this.options=x.extend({geolocation:x.window.navigator.geolocation},tS,eu),x.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation","_onDeviceOrientation"],this),this._updateMarkerRotationThrottled=Jo(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(x){return this._map=x,this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){void 0!==this._geolocationWatchID&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off("zoom",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(eu){let i=(x=!!this.options.geolocation)=>{this._supportsGeolocation=x,eu(x)};void 0!==this._supportsGeolocation?eu(this._supportsGeolocation):void 0!==x.window.navigator.permissions?x.window.navigator.permissions.query({name:"geolocation"}).then(x=>i("denied"!==x.state)).catch(()=>i()):i()}_isOutOfMapMaxBounds(x){let eu=this._map.getMaxBounds(),ef=x.coords;return!!eu&&(ef.longitude<eu.getWest()||ef.longitude>eu.getEast()||ef.latitude<eu.getSouth()||ef.latitude>eu.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_E
67RROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}}_onSuccess(eu){if(this._map){if(this._isOutOfMapMaxBounds(eu))return this._setErrorState(),this.fire(new x.Event("outofmaxbounds",eu)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=eu,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(eu),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(eu),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new x.Event("geolocate",eu)),this._finish()}}_updateCamera(eu){let ef=new x.LngLat(eu.coords.longitude,eu.coords.latitude),em=eu.coords.accuracy,e_=this._map.getBearing(),eg=x.extend({bearing:e_},this.options.fitBoundsOptions);this._map.fitBounds(ef.toBounds(em),eg,{geolocateSource:!0})}_updateMarker(eu){if(eu){let ef=new x.LngLat(eu.coords.longitude,eu.coords.latitude);this._accuracyCircleMarker.setLngLat(ef).addTo(this._map),this._userLocationDotMarker.setLngLat(ef).addTo(this._map),this._accuracy=eu.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){let eu=this._map.transform,ef=x.mercatorZfromAltitude(1,eu._center.lat)*eu.worldSize,em=Math.ceil(2*this._accuracy*ef);this._circleElement.style.width=`${em}px`,this._circleElement.style.height=`${em}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&"number"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(eu){if(this._map){if(this.options.trackUserLocation){if(1===eu.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;let x=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",x),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",x),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===eu.code&&this._noTimeout)return;this._setErrorState()}}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new x.Event("error",eu)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(eu){if(void 0!==this._map){if(this._container.addEventListener("contextmenu",x=>x.preventDefault()),this._geolocateButton=n("button","mapboxgl-ctrl-geolocate",this._container),n("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",!1===eu){x.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");let eu=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",eu),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",eu)}else{let x=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",x),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",x)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","fal
67se"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=n("div","mapboxgl-user-location"),this._dotElement.appendChild(n("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(n("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new on({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=n("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new on({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",eu=>{eu.geolocateSource||"ACTIVE_LOCK"!==this._watchState||eu.originalEvent&&"resize"===eu.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new x.Event("trackuserlocationend")))})}}_onDeviceOrientation(x){this._userLocationDotMarker&&(x.webkitCompassHeading?this._heading=x.webkitCompassHeading:!0===x.absolute&&(this._heading=-1*x.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return x.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new x.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":this._numberOfWatches--,this._noTimeout=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new x.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new x.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let x;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),this._numberOfWatches++,this._numberOfWatches>1?(x={maximumAge:6e5,timeout:0},this._noTimeout=!0):(x=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,x),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){let t=()=>{x.window.addEventListener("ondeviceorientationabsolute"in x.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientation)};void 0!==x.window.DeviceMotionEvent&&"function"==typeof x.window.DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(x=>{"granted"===x&&t()}).catch(console.error):t()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),x.window.removeEventListener("deviceorientation",this._onDeviceOrientation),x.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","fal
67se"),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:Kr,ScaleControl:class{constructor(eu){this.options=x.extend({},tM,eu),function(){try{return new Intl.NumberFormat("en",{style:"unit",unitDisplay:"narrow",unit:"meter"}),!0}catch(x){return!1}}()||(this._setScale=pn.bind(this)),x.bindAll(["_update","_setScale","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_update(){let x=this.options.maxWidth||100,eu=this._map,ef=eu._containerHeight/2,em=eu._containerWidth/2-x/2,e_=eu.unproject([em,ef]),eg=eu.unproject([em+x,ef]),ex=e_.distanceTo(eg);if("imperial"===this.options.unit){let eu=3.2808*ex;eu>5280?this._setScale(x,eu/5280,"mile"):this._setScale(x,eu,"foot")}else"nautical"===this.options.unit?this._setScale(x,ex/1852,"nautical-mile"):ex>=1e3?this._setScale(x,ex/1e3,"kilometer"):this._setScale(x,ex,"meter")}_setScale(x,eu,ef){let em=mn(eu),e_=em/eu;this._map._requestDomTask(()=>{this._container.style.width=x*e_+"px",this._container.innerHTML="nautical-mile"!==ef?new Intl.NumberFormat(this._language,{style:"unit",unitDisplay:"narrow",unit:ef}).format(em):`${em} nm`})}onAdd(x){return this._map=x,this._language=x.getLanguage(),this._container=n("div","mapboxgl-ctrl mapboxgl-ctrl-scale",x.getContainer()),this._container.dir="auto",this._map.on("move",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._update),this._map=void 0}_setLanguage(x){this._language=x,this._update()}setUnit(x){this.options.unit=x,this._update()}},FullscreenControl:class{constructor(eu){this._fullscreen=!1,eu&&eu.container&&(eu.container instanceof x.window.HTMLElement?this._container=eu.container:x.warnOnce("Full screen control 'container' must be a DOM element.")),x.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in x.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in x.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(eu){return this._map=eu,this._container||(this._container=this._map.getContainer()),this._controlContainer=n("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",x.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,x.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!x.window.document.fullscreenEnabled&&!x.window.document.webkitFullscreenEnabled)}_setupUI(){let eu=this._fullscreenButton=n("button","mapboxgl-ctrl-fullscreen",this._controlContainer);n("span","mapboxgl-ctrl-icon",eu).setAttribute("aria-hidden","true"),eu.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),x.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){let x=this._getTitle();this._fullscreenButton.setAttribute("aria-label",x),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",x)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(x.window.document.fullscreenElement||x.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?x.window.document.exitFullscreen?x.window.document.exitFullscreen():x.window.document.webkitCancelFullScreen&&x.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends x.Evented{constructor(eu){super(),this.options=x.extend(Object.create(tb),eu),x.bindAll(["_update","_onClose","remove","_onMouseEvent"],this),this._classList=new Set(eu&&eu.className?eu.className.trim().split(/\s+/):[])}addTo(eu){return this._map&&this.remove(),this._map=eu,this.options.closeOnClick&&eu.on("preclick",this._onClose),this.options.closeOnMove&&eu.on("move",this._onClose),eu.on("remove",this.remove),this._update(),eu._addPopup(this),this._focusFirstElement(),this._trackPointer?(eu.on("mousemove",this._onMouseEvent),eu.on("mouseup",this._onMouseEvent),eu._canvasContainer.classList.add("mapboxgl-track-pointer")):eu.on("move",this._update),this.fire(new x.Event("open")),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);let eu=this._map;return eu&&(eu.off("move",this._update),eu.off("move",this._onClose),eu.off("preclick",this._onClose),eu.off("click",this._onClose),eu.off("remove",this.remove),eu.off("mousemove",this._onMouseEvent),eu.off("mouseup",this._onMouseEvent),eu.off("drag",this._onMouseEvent),eu._canvasContainer&&eu._canvasContainer.classList.remove("mapboxgl-track-pointer"),eu._removePopup(this),this._map=void 0),this.fire(new x.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(eu){this._lngLat=x.LngLat.convert(eu),this._pos=null,this._trackPointer=!1,this._update();let ef=this._map;return ef&&(ef.on("move",this._update),ef.off("mousemove",this._onMouseEvent),ef._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();let x=this._map;return x&&(x.off("move",this._update),x.on("mousemove",this._onMouseEvent),x.on("drag",this._onMouseEvent),x._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(eu){return this.setDOMContent(x.window.document.createTextNode(eu))}setHTML(eu){let ef;let em=x.window.document.createDocumentFragment(),e_=x.window.document.createElement("body");for(e_.innerHTML=eu;ef=e_.firstChild;)em.appendChild(ef);return this.setDOMContent(em)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(x){return this.options.maxWidth=x,this._update(),this}setDOMContent(x){let eu=this._content;if(eu)for(;eu.hasChildNodes();)eu.firstChild&&eu.removeChild(eu.firstChild);else eu=this._content=n("div","mapboxgl-popup-content",this._container||void 0);if(eu.appendChild(x),this.options.closeButton){let x=this._closeButton=n("button","mapboxgl-popup-close-button",eu);x.type="button",x.setAttribute("aria-label","Close popup"),x.setAttribute("aria-hidden","true"),x.innerHTML="×",x.addEventListener("click",this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(x){return this._classList.add(x),this._updateClassList(),this}removeClassName(x){return this._classList.delete(x),this._updateClassList(),this}setOffset(x){return this.options.offset=x,this._update(),this}toggleClassName(x){let eu;return this._classList.delete(x)?eu=!1:(this._classList.add(x),eu=!0),this._updateClassList(),eu}_onMouseEvent(x){this._update(x.point)}_getAnchor(x){if(this.options.anchor)return this.options.anchor;let eu=this._map,ef=this._container,em=this._pos;if(!eu||!ef||!em)return"bottom";let e_=ef.offsetWidth,eg=ef.offsetHeight,ex=em.x<e_/2,ev=em.x>eu.transform.width-e_/2;if(em.y+x<eg)return ex?"top-left":ev?"top-right":"top";if(em.y>eu.transform.height-eg){if(ex)return"bottom-left";if(ev)return"bottom-right"}return ex?"left":ev?"right":"bottom"}_updateClassList(){let x=this._container;if(!x)return;let eu=[...this._classList];eu.push("mapboxgl-popup"),this._anchor&&eu.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&eu.push("mapboxgl-popup-track-pointer"),x.className=eu.join(" ")}_update(eu){let ef=this._map,em=this._content;if(!ef||!this._lngLat&&!this._trackPointer||!em)return;let e_=this._container;if(e_||(e_=this._container=n("div","mapboxgl-popup",ef.getContainer()),this._tip=n("div","mapboxgl-popup-tip",e_),e_.appendChild(em)),this.options.maxWidth&&e_.style.maxWidth!==this.options.maxWidth&&(e_.style.maxWidth=this.options.maxWidth),ef.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=en(this._lngLat,this._pos,ef.transform)),!this._trackPointer||eu){let x=this._pos=this._trackPointer&&eu?eu:ef.project(this._lngLat),em=sn(this.options.offset),e_=this._anchor=this._getAnchor(em.y),eg=sn(this.options.offset,e_),ex=x.add(eg).round();ef._requestDomTask(()=>{this._container&&e_&&(this._container.style.transform=`${tv[e_]} translate(${ex.x}px,${ex.y}px)`)})}if(!this._marker&&ef._showingGlobe()){let eu=x.isLngLatBehindGlobe(ef.transform,this._lngLat)?0:1;this._setOpacity(eu)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;
67let x=this._container.querySelector("a[href], [tabindex]:not([tabindex='-1']), [contenteditable]:not([contenteditable='false']), button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled])");x&&x.focus()}_onClose(){this.remove()}_setOpacity(x){this._container&&(this._container.style.opacity=`${x}`),this._content&&(this._content.style.pointerEvents=x?"auto":"none")}},Marker:on,Style:Qt,LngLat:x.LngLat,LngLatBounds:x.LngLatBounds,Point:x.pointGeometry,MercatorCoordinate:x.MercatorCoordinate,FreeCameraOptions:Zo,Evented:x.Evented,config:x.config,prewarm:function(){je().acquire(eC)},clearPrewarmedResources:function(){let x=em;x&&(x.isPreloaded()&&1===x.numActive()?(x.release(eC),em=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return x.config.ACCESS_TOKEN},set accessToken(t){x.config.ACCESS_TOKEN=t},get baseApiUrl(){return x.config.API_URL},set baseApiUrl(t){x.config.API_URL=t},get workerCount(){return Ne.workerCount},set workerCount(e){Ne.workerCount=e},get maxParallelImageRequests(){return x.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){x.config.MAX_PARALLEL_IMAGE_REQUESTS=t},clearStorage(eu){x.clearTileCache(eu)},workerUrl:"",workerClass:null,setNow:x.exported.setNow,restoreNow:x.exported.restoreNow};return tI}),ef}()}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.