@maptalks/vt 0.90.0 → 0.91.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/maptalks.vt.es.js +13 -13
- package/dist/maptalks.vt.js +16 -14
- package/package.json +6 -6
package/dist/maptalks.vt.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @maptalks/vt v0.
|
|
2
|
+
* @maptalks/vt v0.91.0
|
|
3
3
|
* LICENSE : undefined
|
|
4
4
|
* (c) 2016-2023 maptalks.org
|
|
5
5
|
*/
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
})), e.default = t, Object.freeze(e);
|
|
23
23
|
}
|
|
24
24
|
var r = i(e), s = i(n);
|
|
25
|
-
const o = 'function(t){let n;const e={width:100,height:10};function r(){if(!n){const{width:t,height:r}=e;OffscreenCanvas?n=new OffscreenCanvas(t,r):(n=document.createElement("canvas"),n.width=t,n.height=r)}return n}class i{constructor(t,n={}){if(!Array.isArray(t))return void console.error("colors is not array");if(t.length<2)return void console.error("colors.length should >1");this.colors=t;let r=1/0,i=-1/0;for(let n=0,e=t.length;n<e;n++){const e=t[n][0];r=Math.min(e,r),i=Math.max(e,i)}this.min=r,this.max=i,this.valueOffset=this.max-this.min,this.options=Object.assign({},e,n),this.t()}getImageData(){return this.imgData}t(){const t=r(),{width:n,height:e}=this.options;t.width=n,t.height=e;const i=t.getContext("2d");i.clearRect(0,0,t.width,t.height);const s=i.createLinearGradient(0,0,t.width,0),{colors:o,valueOffset:a}=this;for(let t=0,n=o.length;t<n;t++){const[n,e]=o[t],r=(n-this.min)/a;s.addColorStop(r,e)}i.fillStyle=s,i.fillRect(0,0,t.width,t.height),this.imgData=i.getImageData(0,0,t.width,t.height)}getColor(t){t=Math.max(this.min,t);const n=((t=Math.min(t,this.max))-this.min)/this.valueOffset;let e=Math.round(n*this.imgData.width);e=Math.min(e,this.imgData.width-1);const r=4*e;return[this.imgData.data[r],this.imgData.data[r+1],this.imgData.data[r+2],this.imgData.data[r+3]]}}var s;function o(t,n){for(let e=0;e<t.stops.length;e++)if(n===t.stops[e][0])return t.stops[e][1];return t.default}function a(t,n){for(var e=0;e<t.stops.length&&!(n<t.stops[e][0]);e++);return t.stops[Math.max(e-1,0)][1]}function u(t,n){for(var e=void 0!==t.base?t.base:1,r=0;!(r>=t.stops.length||n<=t.stops[r][0]);)r++;return 0===r?t.stops[r][1]:r===t.stops.length?t.stops[r-1][1]:function t(n,e,r,i,s,o){return"function"==typeof s?function(){var a=s.apply(void 0,arguments),u=o.apply(void 0,arguments);return t(n,e,r,i,a,u)}:s.length?function(t,n,e,r,i,s){var o=[];for(let a=0;a<i.length;a++)o[a]=f(t,n,e,r,i[a],s[a]);return o}(n,e,r,i,s,o):f(n,e,r,i,s,o)}(n,e,t.stops[r-1][0],t.stops[r][0],t.stops[r-1][1],t.stops[r][1])}"function"==typeof Map&&(s=new Map);const h={width:100,height:1};function l(t,n){const e=t.stops;if(e&&e.length>1){let t;if(s){const n=JSON.stringify(e);if(!s.has(n)){const t=new i(e,h);s.set(n,t)}t=s.get(n)}else t=new i(e,h);const[r,o,a,u]=t.getColor(n);return[r/255,o/255,a/255,u/255]}return e&&1===e.length?e[0][1]:null}function c(t,n){return function(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:null}(n,t.default)}function f(t,n,e,r,i,s){var o,a=r-e,u=t-e;return i*(1-(o=1===n?u/a:(Math.pow(n,u)-1)/(Math.pow(n,a)-1)))+s*o}function d(t){return t&&"object"==typeof t&&(t.stops||t.property&&"identity"===t.type)}function p(t){return v(t,"exponential")}function y(t){return v(t,"interval")}function m(t,n){if(!t)return null;var e=!1;if(Array.isArray(t)){var r,i=[];for(let s=0;s<t.length;s++)(r=m(t[s],n))?(i.push(r),e=!0):i.push(t[s]);return e?i:t}var s,o={__fn_types_loaded:!0},a=[];for(s in t)t.hasOwnProperty(s)&&a.push(s);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,n())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let n=0,r=a.length;n<r;n++)d(t[s=a[n]])?(e=!0,o["_"+s]=t[s],u(s)):o[s]=t[s];return e?o:t}function v(t,n){if(!d(t))return function(){return t};let e=!0,r=!0;const i=(t=JSON.parse(JSON.stringify(t))).stops;if(i)for(let t=0;t<i.length;t++)if(d(i[t][1])){const s=v(i[t][1],n);e=e&&s.isZoomConstant,r=r&&s.isFeatureConstant,i[t]=[i[t][0],s]}const s=function t(n,e){var r,i,s;if(d(n)){var h,f=n.stops&&"object"==typeof n.stops[0][0],p=f||void 0!==n.property,y=f||!p,m=n.type||e||"exponential";if("exponential"===m)h=u;else if("interval"===m)h=a;else if("categorical"===m)h=o;else if("identity"===m)h=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');h=l}if(f){var v={},g=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===v[b[0].zoom]&&(v[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),v[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in v)g.push([v[n].zoom,t(v[n])]);r=function(t,e){const r=u({stops:g,base:n.base},t)(t,e);return"function"==typeof r?r(t,e):r},i=!1,s=!1}else y?(r=function(t){const e=h(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=h(n,e?e[n.property]:null);return"function"==typeof r?r(t,e):r},i=!1,s=!0)}else r=function(){return n},i=!0,s=!0;return r.isZoomConstant=s,r.isFeatureConstant=i,r}(t,n);return s.isZoomConstant=e&&s.isZoomConstant,s.isFeatureConstant=r&&s.isFeatureConstant,s}let g=0;const b="function"==typeof Object.assign;function w(t,...n){if(b)return Object.assign(t,...n),t;for(let e=0;e<n.length;e++){const r=n[e];for(const n in r)t[n]=r[n]}return t}function M(t){return!A(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!A(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function k(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function A(t){return null==t}function P(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];if(e)for(let n=0,r=e.length;n<r;n++)t.push(e[n])}return t.length}function S(t){return d(t)&&t.property}const _="function"==typeof fetch&&"function"==typeof AbortController,O={jsonp:function(t,n){const e="_maptalks_jsonp_"+g++;t.match(/\\?/)?t+="&callback="+e:t+="?callback="+e;let r=document.createElement("script");return r.type="text/javascript",r.src=t,window[e]=function(t){n(null,t),document.getElementsByTagName("head")[0].removeChild(r),r=null,delete window[e]},document.getElementsByTagName("head")[0].appendChild(r),this},get:function(t,n,e){if(F(n)){const t=e;e=n,n=t}(n=n||{}).method&&(n.method=n.method.toUpperCase());const r="POST"===n.method;if(_){const r=new AbortController,i=n;return i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET",fetch(t,i).then(r=>{const i=this.s(r,n.returnJSON,n.responseType);i.message?(i.url=t,e(i)):i.then(t=>{"arraybuffer"===n.responseType?e(null,{data:t,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires"),contentType:r.headers.get("Content-Type")}):e(null,t)}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))})}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))}),r}{const i=O.o(e);if(i.open(n.method||"GET",t,!0),n){for(const t in n.headers)i.setRequestHeader(t,n.headers[t]);i.withCredentials="include"===n.credentials,n.responseType&&(i.responseType=n.responseType)}return i.send(r?n.body:null),i}},s:(t,n,e)=>200!==t.status?{status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`}:"arraybuffer"===e?t.arrayBuffer():n?t.json():t.text(),u:function(t,n){return function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?n({status:200,statusText:t.statusText,message:"http status 200 returned without content."}):n(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else n(null,t.responseText);else n({status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`})}},o:function(t){let n;try{n=new XMLHttpRequest}catch(t){try{n=new ActiveXObject("Msxml2.XMLHTTP")}catch(t){try{n=new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}}return n.onreadystatechange=O.u(n,t),n},getArrayBuffer(t,n,e){if(F(n)){const t=e;e=n,n=t}return n||(n={}),n.responseType="arraybuffer",O.get(t,n,e)}};function E(t,n,e,r,i,s){let o=i-e,a=s-r;if(0!==o||0!==a){const u=((t-e)*o+(n-r)*a)/(o*o+a*a);u>1?(e=i,r=s):u>0&&(e+=o*u,r+=a*u)}return o=t-e,a=n-r,o*o+a*a}function I(t,n,e,r,i,s){const o={id:null==t?null:t,type:n,geometry:e,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};i&&(o.layer=i);return function(t,n){const e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)$(t,e,n);else if("Polygon"===r)$(t,e[0],n);else if("MultiLineString"===r)for(const r of e)$(t,r,n);else if("MultiPolygon"===r)for(const r of e)$(t,r[0],n)}(o,s?4:3),o}function $(t,n,e){for(let r=0;r<n.length;r+=e)t.minX=Math.min(t.minX,n[r]),t.minY=Math.min(t.minY,n[r+1]),t.maxX=Math.max(t.maxX,n[r]),t.maxY=Math.max(t.maxY,n[r+1])}function z(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)C(t,e.features[n],r,n);else"Feature"===e.type?C(t,e,r):C(t,{geometry:e},r)}function C(t,n,e,r){if(!n.geometry)return;const i=n.geometry.coordinates,s=n.geometry.type,o=Math.pow(e.tolerance/((1<<e.maxZoom)*e.extent),2);let a=[],u=n.id;if(e.promoteId?u=n.properties[e.promoteId]:e.generateId&&(u=r||0),"Point"===s)T(i,a,e);else if("MultiPoint"===s)for(const t of i)T(t,a,e);else if("LineString"===s)D(i,a,o,!1,e);else if("MultiLineString"===s){if(e.lineMetrics){for(const r of i)a=[],D(r,a,o,!1,e),t.push(I(u,"LineString",a,n.properties,e.layer,e.hasAltitude));return}j(i,a,o,!1,e)}else if("Polygon"===s)j(i,a,o,!0,e);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(const i of n.geometry.geometries)C(t,{id:u,geometry:i,properties:n.properties},e,r);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const t of i){const n=[];j(t,n,o,!0,e),a.push(n)}}t.push(I(u,s,a,n.properties,e.layer,e.hasAltitude))}function T(t,n,e){n.push(U(t[0]),N(t[1],e.projection),0),e.hasAltitude&&(t.length>2?n.push(t[2]):n.push(0))}function D(t,n,e,r,i){let s,o,a=0;for(let e=0;e<t.length;e++){const u=U(t[e][0]),h=N(t[e][1],i.projection);n.push(u,h,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*h-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(h-o,2))),s=u,o=h}const u=i.hasAltitude?4:3,h=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,h=r-e;const l=n[e],c=n[e+1],f=n[r],d=n[r+1];for(let t=e+s;t<r;t+=s){const e=E(n[t],n[t+1],l,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<h&&(u=t,h=n)}}o>i&&(u-e>s&&t(n,e,u,i,s),n[u+2]=o,r-u>s&&t(n,u,r,i,s))}(n,0,h,e,u),n[h+2]=1,n.size=Math.abs(a),n.start=0,n.end=n.size}function j(t,n,e,r,i){for(let s=0;s<t.length;s++){const o=[];D(t[s],o,e,r,i),n.push(o)}}function U(t){return t/360+.5}function N(t,n){switch(n){case"EPSG:4326":return(90-t)/360}const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function L(t,n,e,r,i,s,o,a){if(r/=n,s>=(e/=n)&&o<r)return t;if(o<e||s>=r)return null;const u=[];for(const n of t){const t=n.geometry;let s=n.type;const o=0===i?n.minX:n.minY,h=0===i?n.maxX:n.maxY;if(o>=e&&h<r){u.push(n);continue}if(h<e||o>=r)continue;let l=[];if("Point"===s||"MultiPoint"===s)V(t,l,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,l,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,l,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,l,e,r,i,!0,a.hasAltitude);else if("MultiPolygon"===s)for(const n of t){const t=[];W(n,t,e,r,i,!0,a.hasAltitude),t.length&&l.push(t)}if(l.length){if(a.lineMetrics&&"LineString"===s){for(const t of l)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===l.length?(s="LineString",l=l[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===l.length?"Point":"MultiPoint"),u.push(I(n.id,s,l,n.tags,n.layer,a.hasAltitude))}}return u.length?u:null}function V(t,n,e,r,i,s){const o=s?4:3;for(let a=0;a<t.length;a+=o){const o=t[a+i];o>=e&&o<=r&&(q(n,t[a],t[a+1],t[a+2]),s&&n.push(t[a+3]))}}function R(t,n,e,r,i,s,o,a){let u=H(t);const h=0===i?G:B;let l,c,f=t.start;const d=a?4:3,p=s?t.length:t.length-d;for(let y=0;y<p;y+=d){const m=t[y],v=t[y+1],g=t[y+2];let b,w,M,x;s&&y===p-d?(b=t[0],w=t[1]):(b=t[y+d],w=t[y+d+1]),a&&(M=t[y+3],x=s&&y===p-d?t[3]:t[y+d+3]);const F=0===i?m:v,k=0===i?b:w;let A=!1;o&&(l=Math.sqrt(Math.pow(m-b,2)+Math.pow(v-w,2))),F<e?k>e&&(c=h(u,m,v,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):F>r?k<r&&(c=h(u,m,v,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):(q(u,m,v,g),a&&u.push(M)),k<e&&F>=e&&(c=h(u,m,v,b,w,e),a&&u.push(J(M,x,c)),A=!0),k>r&&F<=r&&(c=h(u,m,v,b,w,r),a&&u.push(J(M,x,c)),A=!0),!s&&A&&(o&&(u.end=f+l*c),n.push(u),u=H(t)),o&&(f+=l)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],h=0===i?n:s;if(h>=e&&h<=r&&q(u,n,s,o),h>=e&&h<=r&&a){const n=t[y+3];u.push(n)}}y=u.length-d,s&&y>=d&&(u[y]!==u[0]||u[y+1]!==u[1])&&(q(u,u[0],u[1],u[2]),a&&u.push(u[3])),u.length&&n.push(u)}function H(t){const n=[];return n.size=t.size,n.start=t.start,n.end=t.end,n}function W(t,n,e,r,i,s,o){for(const a of t)R(a,n,e,r,i,s,!1,o)}function q(t,n,e,r){t.push(n,e,r)}function G(t,n,e,r,i,s){const o=(s-n)/(r-n);return q(t,s,e+(i-e)*o,1),o}function B(t,n,e,r,i,s){const o=(s-e)/(i-e);return q(t,n+(r-n)*o,s,1),o}function J(t,n,e){return t+(n-t)*e}function X(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=t[i],o=s.type;let a;if("Point"===o||"MultiPoint"===o||"LineString"===o)a=Y(s.geometry,n,e);else if("MultiLineString"===o||"Polygon"===o){a=[];for(const t of s.geometry)a.push(Y(t,n,e))}else if("MultiPolygon"===o){a=[];for(const t of s.geometry){const r=[];for(const i of t)r.push(Y(i,n,e));a.push(r)}}r.push(I(s.id,o,a,s.tags,s.layer,e))}return r}function Y(t,n,e){const r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);const i=e?4:3;for(let s=0;s<t.length;s+=i)r.push(t[s]+n,t[s+1],t[s+2]),e&&r.push(t[s+3]);return r}function Z(t,n,e){if(t.transformed)return t;const r=1<<t.z,i=t.x,s=t.y,o=e?3:2;for(const a of t.features){const t=a.geometry,u=a.type;if(a.geometry=[],1===u)for(let u=0;u<t.length;u+=o)a.geometry.push(K(t[u],t[u+1],n,r,i,s)),e&&a.geometry[a.geometry.length-1].push(t[u+2]);else for(let u=0;u<t.length;u++){const h=[];for(let a=0;a<t[u].length;a+=o)h.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&h[h.length-1].push(t[u][a+2]);a.geometry.push(h)}}return t.transformed=!0,t}function K(t,n,e,r,i,s){return[Math.round(e*(t*r-i)),Math.round(e*(n*r-s))]}function Q(t,n,e,r,i){const s=n===i.maxZoom?0:i.tolerance/((1<<n)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:t.length,source:null,x:e,y:r,z:n,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const n of t)tt(o,n,s,i);return o}function tt(t,n,e,r){const i=n.geometry,s=n.type,o=[],a=r.hasAltitude?4:3;if(t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),"Point"===s||"MultiPoint"===s)for(let n=0;n<i.length;n+=a)o.push(i[n],i[n+1]),r.hasAltitude&&o.push(i[n+3]),t.numPoints++,t.numSimplified++;else if("LineString"===s)et(o,i,t,e,!1,!1,r);else if("MultiLineString"===s||"Polygon"===s)for(let n=0;n<i.length;n++)et(o,i[n],t,e,"Polygon"===s,0===n,r);else if("MultiPolygon"===s)for(let n=0;n<i.length;n++){const s=i[n];for(let n=0;n<s.length;n++)et(o,s[n],t,e,!0,0===n,r)}if(o.length){let e=n.tags||null;if("LineString"===s&&r.lineMetrics){e={};for(const t in n.tags)e[t]=n.tags[t];e.mapbox_clip_start=i.start/i.size,e.mapbox_clip_end=i.end/i.size}const a={geometry:o,type:"Polygon"===s||"MultiPolygon"===s?3:"LineString"===s||"MultiLineString"===s?2:1,tags:e};n.layer&&(a.layer=n.layer),null!==n.id&&(a.id=n.id),t.features.push(a)}}function nt(t,n,e){return 0===t[n+2]&&t[n+3]>0&&e}function et(t,n,e,r,i,s,o){const a=r*r,{hasAltitude:u,disableFilter:h}=o,l=u?4:3;if(!h&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/l);const c=[];for(let t=0;t<n.length;t+=l)(0===r||n[t+2]>a||nt(n,t,u))&&(e.numSimplified++,c.push(n[t],n[t+1]),u&&c.push(n[t+3])),e.numPoints++;i&&function(t,n,e){const r=e?3:2;let i=0;for(let n=0,e=t.length,s=e-r;n<e;s=n,n+=r)i+=(t[n]-t[s])*(t[n+1]+t[s+1]);if(i>0===n){const n=r,i=r-1,s=r-2;for(let o=0,a=t.length;o<a/2;o+=r){const r=t[o],u=t[o+1];let h;e&&(h=t[o+2]),t[o]=t[a-n-o],t[o+1]=t[a-i-o],e&&(t[o+2]=t[a-s-o]),t[a-n-o]=r,t[a-i-o]=u,e&&(t[a-s-o]=h)}}}(c,s,u),t.push(c)}O.getJSON=function(t,n,e){if(F(n)){const t=e;e=n,n=t}const r=function(t,n){const r="string"==typeof n?JSON.parse(n):n||null;e(t,r)};return n&&n.jsonp?O.jsonp(t,r):((n=n||{}).returnJSON=!0,O.get(t,n,r))};const rt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,hasAltitude:!1,disableFilter:!1,debug:0};class it{constructor(t,n){const e=(n=this.options=function(t,n){for(const e in n)t[e]=n[e];return t}(Object.create(rt),n)).debug;if(e&&console.time("preprocess data"),n.maxZoom<0||n.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(n.promoteId&&n.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,n){const e=[];if(Array.isArray(t)){for(let r=0;r<t.length;r++)z(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)C(e,t.features[r],n,r);else"Feature"===t.type?C(e,t,n):C(e,{geometry:t},n);return e}(t,n);this.tiles={},this.tileCoords=[],e&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",n.indexMaxZoom,n.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),r=function(t,n){const e=n.buffer/n.extent;let r=t;const i=L(t,1,-1-e,e,0,-1,2,n),s=L(t,1,1-e,2+e,0,-1,2,n);return(i||s)&&(r=L(t,1,-e,1+e,0,-1,2,n)||[],i&&(r=X(i,1,n.hasAltitude).concat(r)),s&&(r=r.concat(X(s,-1,n.hasAltitude)))),r}(r,n),r.length&&this.splitTile(r,0,0,0),e&&(r.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}splitTile(t,n,e,r,i,s,o){const a=[t,n,e,r],u=this.options,h=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const l=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(h>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),h)){h>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",n,e,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));const t="z"+n;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(f.source=t,null==i){if(n===u.indexMaxZoom||f.numPoints<=u.indexMaxPoints)continue}else{if(n===u.maxZoom||n===i)continue;if(null!=i){const t=i-n;if(e!==s>>t||r!==o>>t)continue}}if(f.source=null,0===t.length)continue;h>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let v=null,g=null,b=null,w=null,M=L(t,l,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,l,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(v=L(M,l,r-d,r+y,1,f.minY,f.maxY,u),g=L(M,l,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,l,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,l,r+p,r+m,1,f.minY,f.maxY,u),x=null),h>1&&console.timeEnd("clipping"),a.push(v||[],n+1,2*e,2*r),a.push(g||[],n+1,2*e,2*r+1),a.push(b||[],n+1,2*e+1,2*r),a.push(w||[],n+1,2*e+1,2*r+1)}}getTile(t,n,e){t=+t,n=+n,e=+e;const r=this.options,{extent:i,debug:s}=r,{hasAltitude:o}=r;if(t<0||t>24)return null;const a=1<<t,u=st(t,n=n+a&a-1,e);if(this.tiles[u])return Z(this.tiles[u],i,o);s>1&&console.log("drilling down to z%d-%d-%d",t,n,e);let h,l=t,c=n,f=e;for(;!h&&l>0;)l--,c>>=1,f>>=1,h=this.tiles[st(l,c,f)];return h&&h.source?(s>1&&(console.log("found parent tile z%d-%d-%d",l,c,f),console.time("drilling down")),this.splitTile(h.source,l,c,f,t,n,e),s>1&&console.timeEnd("drilling down"),this.tiles[u]?Z(this.tiles[u],i,o):null):null}}function st(t,n,e){return 32*((1<<t)*e+n)+t}function ot(t,n,e,r,i,s,o){const a=e&&Array.isArray(e[0]);for(let u=0,h=e.length;u<h;u++){t[n]=(a?e[u][0]:e[u].x)*r,t[n+1]=(a?e[u][1]:e[u].y)*r,o!==Float32Array&&(t[n]=Math.round(t[n]),t[n+1]=Math.round(t[n+1]));let l=i||0;Array.isArray(i)&&(l=i[u]),l=l?Math.round(r*l):0,t[n+2]=l,n+=3,s&&0!==u&&u!==h-1&&(t[n]=t[n-3],t[n+1]=t[n-2],t[n+2]=t[n-1],n+=3)}return t.trySetLength&&t.trySetLength(n),n}function at(t,n,e,r){const i=t[3*n],s=t[3*n+1],o=t[3*e],a=t[3*e+1];return i===o&&(i<0||i>r)||s===a&&(s<0||s>r)}var ut="undefined"!=typeof Float32Array?Float32Array:Array;function ht(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lt(t,n,e){var r=new ut(3);return r[0]=t,r[1]=n,r[2]=e,r}function ct(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t}function ft(t,n,e,r){return t[0]=n,t[1]=e,t[2]=r,t}function dt(t,n,e){return t[0]=n[0]+e[0],t[1]=n[1]+e[1],t[2]=n[2]+e[2],t}function pt(t,n){var e=n[0],r=n[1],i=n[2],s=e*e+r*r+i*i;return s>0&&(s=1/Math.sqrt(s),t[0]=n[0]*s,t[1]=n[1]*s,t[2]=n[2]*s),t}function yt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function mt(t,n,e){var r=n[0],i=n[1],s=n[2],o=e[0],a=e[1],u=e[2];return t[0]=i*u-s*a,t[1]=s*o-r*u,t[2]=r*a-i*o,t}var vt=function(t,n,e){return t[0]=n[0]-e[0],t[1]=n[1]-e[1],t[2]=n[2]-e[2],t};function gt(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function bt(t,n,e,r,i){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t}function wt(t,n,e){return t[0]=n[0]/e[0],t[1]=n[1]/e[1],t[2]=n[2]/e[2],t[3]=n[3]/e[3],t}function Mt(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t[3]=n[3]*e,t}function xt(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function Ft(){var t=new ut(4);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function kt(t,n){var e=n[0]+n[4]+n[8],r=void 0;if(e>0)r=Math.sqrt(e+1),t[3]=.5*r,r=.5/r,t[0]=(n[5]-n[7])*r,t[1]=(n[6]-n[2])*r,t[2]=(n[1]-n[3])*r;else{var i=0;n[4]>n[0]&&(i=1),n[8]>n[3*i+i]&&(i=2);var s=(i+1)%3,o=(i+2)%3;r=Math.sqrt(n[3*i+i]-n[3*s+s]-n[3*o+o]+1),t[i]=.5*r,r=.5/r,t[3]=(n[3*s+o]-n[3*o+s])*r,t[s]=(n[3*s+i]+n[3*i+s])*r,t[o]=(n[3*o+i]+n[3*i+o])*r}return t}!function(){var t=ht()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var At,Pt=Mt,St=function(t,n){var e=n[0],r=n[1],i=n[2],s=n[3],o=e*e+r*r+i*i+s*s;return o>0&&(o=1/Math.sqrt(o),t[0]=e*o,t[1]=r*o,t[2]=i*o,t[3]=s*o),t};function _t(t,n,e){return t[0]=n,t[1]=e,t}function Ot(t,n){var e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}ht(),lt(1,0,0),lt(0,1,0),Ft(),Ft(),At=new ut(9),ut!=Float32Array&&(At[1]=0,At[2]=0,At[3]=0,At[5]=0,At[6]=0,At[7]=0),At[0]=1,At[4]=1,At[8]=1;var Et=function(t){var n=t[0],e=t[1];return Math.sqrt(n*n+e*e)};!function(){var t=function(){var t=new ut(2);return ut!=Float32Array&&(t[0]=0,t[1]=0),t}()}();const It=Math.PI/180,$t=6378137*Math.PI/180;function zt(t,n,e){if("EPSG:3857"===e)return function(t,n){const e=85.0511287798,r=n[0],i=Math.max(Math.min(e,n[1]),-e);let s;s=0===i?0:Math.log(Math.tan((90+i)*It/2))/It;return t[0]=r*$t,t[1]=s*$t,t}(t,n);if("EPSG:4326"===e||"EPSG:4490"===e||"identity"===e)return Ct(t,n);if("baidu"===e)return Ct(t,n);throw new Error("unsupported projection:"+e)}function Ct(t,n){return t[0]=n[0],t[1]=n[1],t}function Tt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,h){const l=1/(100*s),c=h&&h[0]||0,f=h&&h[1]||0,d=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-c,s=r[i+1]-f;e[t]=d[0]+n*l/46.5*o/a,e[t+1]=d[1]-s*l/46.5*o/u}}(n,e,r,i,0,o,a,u,h,p):1===t&&function(t,n,e,r,i,s,o,a,u,h,l){if(!t)return;let c,f,d,p;0===t[4]?(c=t[0],f=t[1],d=t[2],p=t[3]):(c=t[1],f=t[2],d=t[3],p=t[0]);const y=Ot(c,f),m=Ot(f,d),v=[],g=[],b=[];for(let t=n;t<e;t+=3){const n=t/3*2,e=(s.x/u+i[t]*o)*a,d=s.y/u*a+(l?i[t+1]:-i[t+1])*o*a;_t(v,e,d),"EPSG:4326"!==h&&"EPSG:4490"!==h||zt(v,v,"EPSG:3857"),Dt(g,v,c,f),Dt(b,v,p,c),r[n]=Ot(c,g)/y,r[n+1]=Ot(c,b)/m}}(l,n,e,r,i,s,a,c,f,d,!!p)}function Dt(t,n,e,r){const i=e[0]-r[0],s=e[1]-r[1];let o=(n[0]-e[0])*(e[0]-r[0])+(n[1]-e[1])*(e[1]-r[1]);return o/=i*i+s*s,t[0]=e[0]+o*i,t[1]=e[1]+o*s,t}function jt(t,n,e,r,i){const s=3*n[e-1],o=3*n[e-1]+1,a=t[s],u=t[o];return h=r,l=i,c=a,f=u,Math.sqrt((c-h)*(c-h)+(f-l)*(f-l));var h,l,c,f}"undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self&&self;var Ut=Nt;function Nt(t,n){this.x=t,this.y=n}function Lt(t,n,e){e=e||{},this.w=t||64,this.h=n||64,this.autoResize=!!e.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function Vt(t,n,e){this.x=0,this.y=t,this.w=this.free=n,this.h=e}function Rt(t,n,e,r,i,s,o){this.id=t,this.x=n,this.y=e,this.w=r,this.h=i,this.maxw=s||r,this.maxh=o||i,this.refcount=0}Nt.prototype={clone:function(){return new Nt(this.x,this.y)},add:function(t){return this.clone().m(t)},sub:function(t){return this.clone().M(t)},multByPoint:function(t){return this.clone().F(t)},divByPoint:function(t){return this.clone().k(t)},mult:function(t){return this.clone().A(t)},div:function(t){return this.clone().P(t)},rotate:function(t){return this.clone().S(t)},rotateAround:function(t,n){return this.clone()._(t,n)},matMult:function(t){return this.clone().O(t)},unit:function(){return this.clone().I()},perp:function(){return this.clone().C()},round:function(){return this.clone().T()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,e=t.y-this.y;return n*n+e*e},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},O:function(t){var n=t[0]*this.x+t[1]*this.y,e=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=e,this},m:function(t){return this.x+=t.x,this.y+=t.y,this},M:function(t){return this.x-=t.x,this.y-=t.y,this},A:function(t){return this.x*=t,this.y*=t,this},P:function(t){return this.x/=t,this.y/=t,this},F:function(t){return this.x*=t.x,this.y*=t.y,this},k:function(t){return this.x/=t.x,this.y/=t.y,this},I:function(){return this.P(this.mag()),this},C:function(){var t=this.y;return this.y=this.x,this.x=-t,this},S:function(t){var n=Math.cos(t),e=Math.sin(t),r=n*this.x-e*this.y,i=e*this.x+n*this.y;return this.x=r,this.y=i,this},_:function(t,n){var e=Math.cos(t),r=Math.sin(t),i=n.x+e*(this.x-n.x)-r*(this.y-n.y),s=n.y+r*(this.x-n.x)+e*(this.y-n.y);return this.x=i,this.y=s,this},T:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Nt.convert=function(t){return t instanceof Nt?t:Array.isArray(t)?new Nt(t[0],t[1]):t},Lt.prototype.pack=function(t,n){t=[].concat(t),n=n||{};for(var e,r,i,s,o=[],a=0;a<t.length;a++)if(e=t[a].w||t[a].width,r=t[a].h||t[a].height,i=t[a].id,e&&r){if(!(s=this.packOne(e,r,i)))continue;n.inPlace&&(t[a].x=s.x,t[a].y=s.y,t[a].id=s.id),o.push(s)}return this.shrink(),o},Lt.prototype.packOne=function(t,n,e){var r,i,s,o,a,u,h,l,c={freebin:-1,shelf:-1,waste:1/0},f=0;if("string"==typeof e||"number"==typeof e){if(r=this.getBin(e))return this.ref(r),r;"number"==typeof e&&(this.maxId=Math.max(e,this.maxId))}else e=++this.maxId;for(o=0;o<this.freebins.length;o++){if(n===(r=this.freebins[o]).maxh&&t===r.maxw)return this.allocFreebin(o,t,n,e);n>r.maxh||t>r.maxw||n<=r.maxh&&t<=r.maxw&&(s=r.maxw*r.maxh-t*n)<c.waste&&(c.waste=s,c.freebin=o)}for(o=0;o<this.shelves.length;o++)if(f+=(i=this.shelves[o]).h,!(t>i.free)){if(n===i.h)return this.allocShelf(o,t,n,e);n>i.h||n<i.h&&(s=(i.h-n)*t)<c.waste&&(c.freebin=-1,c.waste=s,c.shelf=o)}return-1!==c.freebin?this.allocFreebin(c.freebin,t,n,e):-1!==c.shelf?this.allocShelf(c.shelf,t,n,e):n<=this.h-f&&t<=this.w?(i=new Vt(f,this.w,n),this.allocShelf(this.shelves.push(i)-1,t,n,e)):this.autoResize?(a=u=this.h,((h=l=this.w)<=a||t>h)&&(l=2*Math.max(t,h)),(a<h||n>a)&&(u=2*Math.max(n,a)),this.resize(l,u),this.packOne(t,n,e)):null},Lt.prototype.allocFreebin=function(t,n,e,r){var i=this.freebins.splice(t,1)[0];return i.id=r,i.w=n,i.h=e,i.refcount=0,this.bins[r]=i,this.ref(i),i},Lt.prototype.allocShelf=function(t,n,e,r){var i=this.shelves[t].alloc(n,e,r);return this.bins[r]=i,this.ref(i),i},Lt.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,n=0,e=0;e<this.shelves.length;e++){var r=this.shelves[e];n+=r.h,t=Math.max(r.w-r.free,t)}this.resize(t,n)}},Lt.prototype.getBin=function(t){return this.bins[t]},Lt.prototype.ref=function(t){if(1==++t.refcount){var n=t.h;this.stats[n]=1+(0|this.stats[n])}return t.refcount},Lt.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},Lt.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},Lt.prototype.resize=function(t,n){this.w=t,this.h=n;for(var e=0;e<this.shelves.length;e++)this.shelves[e].resize(t);return!0},Vt.prototype.alloc=function(t,n,e){if(t>this.free||n>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,new Rt(e,r,this.y,t,n,t,this.h)},Vt.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0};var Ht={exports:{}},Wt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qt={exports:{}},Gt=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))},Bt=Array.prototype.concat,Jt=Array.prototype.slice,Xt=qt.exports=function(t){for(var n=[],e=0,r=t.length;e<r;e++){var i=t[e];Gt(i)?n=Bt.call(n,Jt.call(i)):n.push(i)}return n};Xt.wrap=function(t){return function(){return t(Xt(arguments))}};var Yt=Wt,Zt=qt.exports,Kt=Object.hasOwnProperty,Qt=Object.create(null);for(var tn in Yt)Kt.call(Yt,tn)&&(Qt[Yt[tn]]=tn);var nn=Ht.exports={to:{},get:{}};function en(t,n,e){return Math.min(Math.max(n,t),e)}function rn(t){var n=Math.round(t).toString(16).toUpperCase();return n.length<2?"0"+n:n}nn.get=function(t){var n,e;switch(t.substring(0,3).toLowerCase()){case"hsl":n=nn.get.hsl(t),e="hsl";break;case"hwb":n=nn.get.hwb(t),e="hwb";break;default:n=nn.get.rgb(t),e="rgb"}return n?{model:e,value:n}:null},nn.get.rgb=function(t){if(!t)return null;var n,e,r,i=[0,0,0,1];if(n=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=n[2],n=n[1],e=0;e<3;e++){var s=2*e;i[e]=parseInt(n.slice(s,s+2),16)}r&&(i[3]=parseInt(r,16)/255)}else if(n=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(n=n[1])[3],e=0;e<3;e++)i[e]=parseInt(n[e]+n[e],16);r&&(i[3]=parseInt(r+r,16)/255)}else if(n=t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)){for(e=0;e<3;e++)i[e]=parseInt(n[e+1],0);n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}else{if(!(n=t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)))return(n=t.match(/^(\\w+)$/))?"transparent"===n[1]?[0,0,0,0]:Kt.call(Yt,n[1])?((i=Yt[n[1]])[3]=1,i):null:null;for(e=0;e<3;e++)i[e]=Math.round(2.55*parseFloat(n[e+1]));n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}for(e=0;e<3;e++)i[e]=en(i[e],0,255);return i[3]=en(i[3],0,1),i},nn.get.hsl=function(t){if(!t)return null;var n=t.match(/^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.get.hwb=function(t){if(!t)return null;var n=t.match(/^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.to.hex=function(){var t=Zt(arguments);return"#"+rn(t[0])+rn(t[1])+rn(t[2])+(t[3]<1?rn(Math.round(255*t[3])):"")},nn.to.rgb=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},nn.to.rgb.percent=function(){var t=Zt(arguments),n=Math.round(t[0]/255*100),e=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+n+"%, "+e+"%, "+r+"%)":"rgba("+n+"%, "+e+"%, "+r+"%, "+t[3]+")"},nn.to.hsl=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},nn.to.hwb=function(){var t=Zt(arguments),n="";return t.length>=4&&1!==t[3]&&(n=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+n+")"},nn.to.keyword=function(t){return Qt[t.slice(0,3)]};var sn={exports:{}},on=Wt,an={};for(var un in on)on.hasOwnProperty(un)&&(an[on[un]]=un);var hn=sn.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var ln in hn)if(hn.hasOwnProperty(ln)){if(!("channels"in hn[ln]))throw new Error("missing channels property: "+ln);if(!("labels"in hn[ln]))throw new Error("missing channel labels property: "+ln);if(hn[ln].labels.length!==hn[ln].channels)throw new Error("channel and label counts mismatch: "+ln);var cn=hn[ln].channels,fn=hn[ln].labels;delete hn[ln].channels,delete hn[ln].labels,Object.defineProperty(hn[ln],"channels",{value:cn}),Object.defineProperty(hn[ln],"labels",{value:fn})}function dn(t,n){return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)}hn.rgb.hsl=function(t){var n,e,r=t[0]/255,i=t[1]/255,s=t[2]/255,o=Math.min(r,i,s),a=Math.max(r,i,s),u=a-o;return a===o?n=0:r===a?n=(i-s)/u:i===a?n=2+(s-r)/u:s===a&&(n=4+(r-i)/u),(n=Math.min(60*n,360))<0&&(n+=360),e=(o+a)/2,[n,100*(a===o?0:e<=.5?u/(a+o):u/(2-a-o)),100*e]},hn.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,h=Math.max(o,a,u),l=h-Math.min(o,a,u),c=function(t){return(h-t)/6/l+.5};return 0===l?i=s=0:(s=l/h,n=c(o),e=c(a),r=c(u),o===h?i=r-e:a===h?i=1/3+n-r:u===h&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*h]},hn.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[hn.rgb.hsl(t)[0],100*(1/255*Math.min(n,Math.min(e,r))),100*(r=1-1/255*Math.max(n,Math.max(e,r)))]},hn.rgb.cmyk=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255;return[100*((1-e-(n=Math.min(1-e,1-r,1-i)))/(1-n)||0),100*((1-r-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hn.rgb.keyword=function(t){var n=an[t];if(n)return n;var e,r=1/0;for(var i in on)if(on.hasOwnProperty(i)){var s=dn(t,on[i]);s<r&&(r=s,e=i)}return e},hn.keyword.rgb=function(t){return on[t]},hn.rgb.xyz=function(t){var n=t[0]/255,e=t[1]/255,r=t[2]/255;return[100*(.4124*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.3576*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*n+.7152*e+.0722*r),100*(.0193*n+.1192*e+.9505*r)]},hn.rgb.lab=function(t){var n=hn.rgb.xyz(t),e=n[0],r=n[1],i=n[2];return r/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(e-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},hn.hsl.rgb=function(t){var n,e,r,i,s,o=t[0]/360,a=t[1]/100,u=t[2]/100;if(0===a)return[s=255*u,s,s];n=2*u-(e=u<.5?u*(1+a):u+a-u*a),i=[0,0,0];for(var h=0;h<3;h++)(r=o+1/3*-(h-1))<0&&r++,r>1&&r--,s=6*r<1?n+6*(e-n)*r:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n,i[h]=255*s;return i},hn.hsl.hsv=function(t){var n=t[0],e=t[1]/100,r=t[2]/100,i=e,s=Math.max(r,.01);return e*=(r*=2)<=1?r:2-r,i*=s<=1?s:2-s,[n,100*(0===r?2*i/(s+i):2*e/(r+e)),100*((r+e)/2)]},hn.hsv.rgb=function(t){var n=t[0]/60,e=t[1]/100,r=t[2]/100,i=Math.floor(n)%6,s=n-Math.floor(n),o=255*r*(1-e),a=255*r*(1-e*s),u=255*r*(1-e*(1-s));switch(r*=255,i){case 0:return[r,u,o];case 1:return[a,r,o];case 2:return[o,r,u];case 3:return[o,a,r];case 4:return[u,o,r];case 5:return[r,o,a]}},hn.hsv.hsl=function(t){var n,e,r,i=t[0],s=t[1]/100,o=t[2]/100,a=Math.max(o,.01);return r=(2-s)*o,e=s*a,[i,100*(e=(e/=(n=(2-s)*a)<=1?n:2-n)||0),100*(r/=2)]},hn.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,h=t[1]/100,l=t[2]/100,c=h+l;switch(c>1&&(h/=c,l/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=h+r*((e=1-l)-h),n){default:case 6:case 0:s=e,o=i,a=h;break;case 1:s=i,o=e,a=h;break;case 2:s=h,o=e,a=i;break;case 3:s=h,o=i,a=e;break;case 4:s=i,o=h,a=e;break;case 5:s=e,o=h,a=i}return[255*s,255*o,255*a]},hn.cmyk.rgb=function(t){var n=t[0]/100,e=t[1]/100,r=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},hn.xyz.rgb=function(t){var n,e,r,i=t[0]/100,s=t[1]/100,o=t[2]/100;return e=-.9689*i+1.8758*s+.0415*o,r=.0557*i+-.204*s+1.057*o,n=(n=3.2406*i+-1.5372*s+-.4986*o)>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(n=Math.min(Math.max(0,n),1)),255*(e=Math.min(Math.max(0,e),1)),255*(r=Math.min(Math.max(0,r),1))]},hn.xyz.lab=function(t){var n=t[0],e=t[1],r=t[2];return e/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(n-e),200*(e-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},hn.lab.xyz=function(t){var n,e,r,i=t[0];n=t[1]/500+(e=(i+16)/116),r=e-t[2]/200;var s=Math.pow(e,3),o=Math.pow(n,3),a=Math.pow(r,3);return e=s>.008856?s:(e-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[n*=95.047,e*=100,r*=108.883]},hn.lab.lch=function(t){var n,e=t[0],r=t[1],i=t[2];return(n=360*Math.atan2(i,r)/2/Math.PI)<0&&(n+=360),[e,Math.sqrt(r*r+i*i),n]},hn.lch.lab=function(t){var n,e=t[0],r=t[1];return n=t[2]/360*2*Math.PI,[e,r*Math.cos(n),r*Math.sin(n)]},hn.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:hn.rgb.hsv(t)[2];if(0===(i=Math.round(i/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(e/255)<<1|Math.round(n/255));return 2===i&&(s+=60),s},hn.hsv.ansi16=function(t){return hn.rgb.ansi16(hn.hsv.rgb(t),t[2])},hn.rgb.ansi256=function(t){var n=t[0],e=t[1],r=t[2];return n===e&&e===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(e/255*5)+Math.round(r/255*5)},hn.ansi16.rgb=function(t){var n=t%10;if(0===n||7===n)return t>50&&(n+=3.5),[n=n/10.5*255,n,n];var e=.5*(1+~~(t>50));return[(1&n)*e*255,(n>>1&1)*e*255,(n>>2&1)*e*255]},hn.ansi256.rgb=function(t){if(t>=232){var n=10*(t-232)+8;return[n,n,n]}var e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},hn.rgb.hex=function(t){var n=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(n.length)+n},hn.hex.rgb=function(t){var n=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];var e=n[0];3===n[0].length&&(e=e.split("").map((function(t){return t+t})).join(""));var r=parseInt(e,16);return[r>>16&255,r>>8&255,255&r]},hn.rgb.hcg=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.max(Math.max(e,r),i),o=Math.min(Math.min(e,r),i),a=s-o;return n=a<=0?0:s===e?(r-i)/a%6:s===r?2+(i-e)/a:4+(e-r)/a+4,n/=6,[360*(n%=1),100*a,100*(a<1?o/(1-a):0)]},hn.hsl.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=1,i=0;return(r=e<.5?2*n*e:2*n*(1-e))<1&&(i=(e-.5*r)/(1-r)),[t[0],100*r,100*i]},hn.hsv.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=n*e,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.hcg.rgb=function(t){var n=t[0]/360,e=t[1]/100,r=t[2]/100;if(0===e)return[255*r,255*r,255*r];var i,s=[0,0,0],o=n%1*6,a=o%1,u=1-a;switch(Math.floor(o)){case 0:s[0]=1,s[1]=a,s[2]=0;break;case 1:s[0]=u,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=a;break;case 3:s[0]=0,s[1]=u,s[2]=1;break;case 4:s[0]=a,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=u}return i=(1-e)*r,[255*(e*s[0]+i),255*(e*s[1]+i),255*(e*s[2]+i)]},hn.hcg.hsv=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n),r=0;return e>0&&(r=n/e),[t[0],100*r,100*e]},hn.hcg.hsl=function(t){var n=t[1]/100,e=t[2]/100*(1-n)+.5*n,r=0;return e>0&&e<.5?r=n/(2*e):e>=.5&&e<1&&(r=n/(2*(1-e))),[t[0],100*r,100*e]},hn.hcg.hwb=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n);return[t[0],100*(e-n),100*(1-e)]},hn.hwb.hcg=function(t){var n=t[1]/100,e=1-t[2]/100,r=e-n,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},hn.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},hn.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},hn.gray.hsl=hn.gray.hsv=function(t){return[0,0,t[0]]},hn.gray.hwb=function(t){return[0,100,t[0]]},hn.gray.cmyk=function(t){return[0,0,0,t[0]]},hn.gray.lab=function(t){return[t[0],0,0]},hn.gray.hex=function(t){var n=255&Math.round(t[0]/100*255),e=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(e.length)+e},hn.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var pn=sn.exports;function yn(t){var n=function(){for(var t={},n=Object.keys(pn),e=n.length,r=0;r<e;r++)t[n[r]]={distance:-1,parent:null};return t}(),e=[t];for(n[t].distance=0;e.length;)for(var r=e.pop(),i=Object.keys(pn[r]),s=i.length,o=0;o<s;o++){var a=i[o],u=n[a];-1===u.distance&&(u.distance=n[r].distance+1,u.parent=r,e.unshift(a))}return n}function mn(t,n){return function(e){return n(t(e))}}function vn(t,n){for(var e=[n[t].parent,t],r=pn[n[t].parent][t],i=n[t].parent;n[i].parent;)e.unshift(n[i].parent),r=mn(pn[n[i].parent][i],r),i=n[i].parent;return r.conversion=e,r}var gn=sn.exports,bn=function(t){for(var n=yn(t),e={},r=Object.keys(n),i=r.length,s=0;s<i;s++){var o=r[s];null!==n[o].parent&&(e[o]=vn(o,n))}return e},wn={};Object.keys(gn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:gn[t].channels}),Object.defineProperty(wn[t],"labels",{value:gn[t].labels});var n=bn(t);Object.keys(n).forEach((function(e){var r=n[e];wn[t][e]=function(t){var n=function(n){if(null==n)return n;arguments.length>1&&(n=Array.prototype.slice.call(arguments));var e=t(n);if("object"==typeof e)for(var r=e.length,i=0;i<r;i++)e[i]=Math.round(e[i]);return e};return"conversion"in t&&(n.conversion=t.conversion),n}(r),wn[t][e].raw=function(t){var n=function(n){return null==n?n:(arguments.length>1&&(n=Array.prototype.slice.call(arguments)),t(n))};return"conversion"in t&&(n.conversion=t.conversion),n}(r)}))}));var Mn=wn,xn=Ht.exports,Fn=Mn,kn=[].slice,An=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[kn.call(Fn[t].labels).sort().join("")]=t}));var Sn={};function _n(t,n){if(!(this instanceof _n))return new _n(t,n);if(n&&n in An&&(n=null),n&&!(n in Fn))throw new Error("Unknown model: "+n);var e,r;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof _n)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var i=xn.get(t);if(null===i)throw new Error("Unable to parse color from string: "+t);this.model=i.model,r=Fn[this.model].channels,this.color=i.value.slice(0,r),this.valpha="number"==typeof i.value[r]?i.value[r]:1}else if(t.length){this.model=n||"rgb",r=Fn[this.model].channels;var s=kn.call(t,0,r);this.color=$n(s,r),this.valpha="number"==typeof t[r]?t[r]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var o=Object.keys(t);"alpha"in t&&(o.splice(o.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var a=o.sort().join("");if(!(a in Pn))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Pn[a];var u=Fn[this.model].labels,h=[];for(e=0;e<u.length;e++)h.push(t[u[e]]);this.color=$n(h)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var l=Sn[this.model][e];l&&(this.color[e]=l(this.color[e]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function On(t,n,e){return(t=Array.isArray(t)?t:[t]).forEach((function(t){(Sn[t]||(Sn[t]=[]))[n]=e})),t=t[0],function(r){var i;return arguments.length?(e&&(r=e(r)),(i=this[t]()).color[n]=r,i):(i=this[t]().color[n],e&&(i=e(i)),i)}}function En(t){return function(n){return Math.max(0,Math.min(t,n))}}function In(t){return Array.isArray(t)?t:[t]}function $n(t,n){for(var e=0;e<n;e++)"number"!=typeof t[e]&&(t[e]=0);return t}_n.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(t){var n=this.model in xn.to?this:this.rgb(),e=1===(n=n.round("number"==typeof t?t:1)).valpha?n.color:n.color.concat(this.valpha);return xn.to[n.model](e)},percentString:function(t){var n=this.rgb().round("number"==typeof t?t:1),e=1===n.valpha?n.color:n.color.concat(this.valpha);return xn.to.rgb.percent(e)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var t={},n=Fn[this.model].channels,e=Fn[this.model].labels,r=0;r<n;r++)t[e[r]]=this.color[r];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray:function(){var t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject:function(){var t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round:function(t){return t=Math.max(t||0,0),new _n(this.color.map(function(t){return function(n){return function(t,n){return Number(t.toFixed(n))}(n,t)}}(t)).concat(this.valpha),this.model)},alpha:function(t){return arguments.length?new _n(this.color.concat(Math.max(0,Math.min(1,t))),this.model):this.valpha},red:On("rgb",0,En(255)),green:On("rgb",1,En(255)),blue:On("rgb",2,En(255)),hue:On(["hsl","hsv","hsl","hwb","hcg"],0,(function(t){return(t%360+360)%360})),saturationl:On("hsl",1,En(100)),lightness:On("hsl",2,En(100)),saturationv:On("hsv",1,En(100)),value:On("hsv",2,En(100)),chroma:On("hcg",1,En(100)),gray:On("hcg",2,En(100)),white:On("hwb",1,En(100)),wblack:On("hwb",2,En(100)),cyan:On("cmyk",0,En(100)),magenta:On("cmyk",1,En(100)),yellow:On("cmyk",2,En(100)),black:On("cmyk",3,En(100)),x:On("xyz",0,En(100)),y:On("xyz",1,En(100)),z:On("xyz",2,En(100)),l:On("lab",0,En(100)),a:On("lab",1),b:On("lab",2),keyword:function(t){return arguments.length?new _n(t):Fn[this.model].keyword(this.color)},hex:function(t){return arguments.length?new _n(t):xn.to.hex(this.rgb().round().color)},rgbNumber:function(){var t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity:function(){for(var t=this.rgb().color,n=[],e=0;e<t.length;e++){var r=t[e]/255;n[e]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*n[0]+.7152*n[1]+.0722*n[2]},contrast:function(t){var n=this.luminosity(),e=t.luminosity();return n>e?(n+.05)/(e+.05):(e+.05)/(n+.05)},level:function(t){var n=this.contrast(t);return n>=7.1?"AAA":n>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),n=0;n<3;n++)t.color[n]=255-t.color[n];return t},lighten:function(t){var n=this.hsl();return n.color[2]+=n.color[2]*t,n},darken:function(t){var n=this.hsl();return n.color[2]-=n.color[2]*t,n},saturate:function(t){var n=this.hsl();return n.color[1]+=n.color[1]*t,n},desaturate:function(t){var n=this.hsl();return n.color[1]-=n.color[1]*t,n},whiten:function(t){var n=this.hwb();return n.color[1]+=n.color[1]*t,n},blacken:function(t){var n=this.hwb();return n.color[2]+=n.color[2]*t,n},grayscale:function(){var t=this.rgb().color,n=.3*t[0]+.59*t[1]+.11*t[2];return _n.rgb(n,n,n)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var n=this.hsl(),e=n.color[0];return e=(e=(e+t)%360)<0?360+e:e,n.color[0]=e,n},mix:function(t,n){if(!t||!t.rgb)throw new Error(\'Argument to "mix" was not a Color instance, but rather an instance of \'+typeof t);var e=t.rgb(),r=this.rgb(),i=void 0===n?.5:n,s=2*i-1,o=e.alpha()-r.alpha(),a=((s*o==-1?s:(s+o)/(1+s*o))+1)/2,u=1-a;return _n.rgb(a*e.red()+u*r.red(),a*e.green()+u*r.green(),a*e.blue()+u*r.blue(),e.alpha()*i+r.alpha()*(1-i))}},Object.keys(Fn).forEach((function(t){if(-1===An.indexOf(t)){var n=Fn[t].channels;_n.prototype[t]=function(){if(this.model===t)return new _n(this);if(arguments.length)return new _n(arguments,t);var e="number"==typeof arguments[n]?n:this.valpha;return new _n(In(Fn[this.model][t].raw(this.color)).concat(e),t)},_n[t]=function(e){return"number"==typeof e&&(e=$n(kn.call(arguments),n)),new _n(e,t)}}}));var zn=_n;\n/*!\n Feature Filter by\n\n (c) mapbox 2016 and maptalks 2018\n www.mapbox.com | www.maptalks.org\n License: MIT, header required.\n */const Cn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function Tn(t){return new Function("f","var p = (f && f.properties || {}); return "+Dn(t))}function Dn(t){if(!t)return"true";const n=t[0];if(t.length<=1)return"any"===n?"false":"true";return`(${"=="===n?Un(t[1],t[2],"===",!1):"!="===n?Un(t[1],t[2],"!==",!1):"<"===n||">"===n||"<="===n||">="===n?Un(t[1],t[2],n,!0):"any"===n?Ln(t.slice(1),"||"):"all"===n?Ln(t.slice(1),"&&"):"none"===n?Hn(Ln(t.slice(1),"||")):"in"===n?Vn(t[1],t.slice(2)):"!in"===n?Hn(Vn(t[1],t.slice(2))):"has"===n?Rn(t[1]):"!has"===n?Hn(Rn(t[1])):"contains"===n?function(t,n,e){const r=jn(t);return void 0!==e?`(${r} + \'\').indexOf("${n}") === ${e}`:`(${r} + \'\').indexOf("${n}") >= 0`}(t[1],t[2],t[3]):"true"})`}function jn(t){return"$"===t[0]?"f."+t.substring(1):"p["+JSON.stringify(t)+"]"}function Un(t,n,e,r){if("object"==typeof(i=t)&&i&&t.op)return function(t,n,e,r){const i=t.property,s=t.op;let o=jn(i);return"length"!==s?(console.error(`not support ${s} op`),"false"):(o=`((${o}+=\'\').length)`,Nn(o,i,n,e,r))}(t,n,e,r);var i;return Nn(jn(t),t,n,e,r)}function Nn(t,n,e,r,i){const s="$type"===n?Cn.indexOf(e):JSON.stringify(e);return(i?`typeof ${t}=== typeof ${s}&&`:"")+t+r+s}function Ln(t,n){return t.map(Dn).join(n)}function Vn(t,n){"$type"===t&&(n=n.map(t=>Cn.indexOf(t)));const e=JSON.stringify(n.sort(Wn)),r=jn(t);return n.length<=200?`${e}.indexOf(${r}) !== -1`:`function(v, a, i, j) {\\n while (i <= j) { var m = (i + j) >> 1;\\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\\n }\\n return false; }(${r}, ${e},0,${n.length-1})`}function Rn(t){return"$id"===t?\'"id" in f\':JSON.stringify(t)+" in p"}function Hn(t){return`!(${t})`}function Wn(t,n){return t<n?-1:t>n?1:0}var qn={exports:{}};qn.exports=function(){function t(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function n(t,n){return t<n?-1:t>n?1:0}return function(e,r,i,s,o){!function n(e,r,i,s,o){for(;s>i;){if(s-i>600){var a=s-i+1,u=r-i+1,h=Math.log(a),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(a-l)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*l/a+c)),d=Math.min(s,Math.floor(r+(a-u)*l/a+c));n(e,r,f,d,o)}var p=e[r],y=i,m=s;for(t(e,i,r),o(e[s],p)>0&&t(e,i,s);y<m;){for(t(e,y,m),y++,m--;o(e[y],p)<0;)y++;for(;o(e[m],p)>0;)m--}0===o(e[i],p)?t(e,i,m):(m++,t(e,m,s)),m<=r&&(i=m+1),r<=m&&(s=m-1)}}(e,r,i||0,s||e.length-1,o||n)}}();var Gn=qn.exports,Bn={exports:{}};function Jn(t,n){if(!(this instanceof Jn))return new Jn(t,n);if(this.data=t||[],this.length=this.data.length,this.compare=n||Xn,this.length>0)for(var e=(this.length>>1)-1;e>=0;e--)this.D(e)}function Xn(t,n){return t<n?-1:t>n?1:0}Bn.exports=Jn,Bn.exports.default=Jn,Jn.prototype={push:function(t){this.data.push(t),this.length++,this.j(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this.D(0)),this.data.pop(),t}},peek:function(){return this.data[0]},j:function(t){for(var n=this.data,e=this.compare,r=n[t];t>0;){var i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r},D:function(t){for(var n=this.data,e=this.compare,r=this.length>>1,i=n[t];t<r;){var s=1+(t<<1),o=s+1,a=n[s];if(o<this.length&&e(n[o],a)<0&&(s=o,a=n[o]),e(a,i)>=0)break;n[t]=a,t=s}n[t]=i}};var Yn=Bn.exports;\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Zn=[],Kn=[],Qn=[],te=[];function ne(t,n,e){const r=mt(Kn,n,e);t=kt(t,function(t,n,e,r,i,s,o,a,u,h){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=u,t[8]=h,t}(Zn,e[0],e[1],e[2],...r,...n));if((t=function(t){return t[3]<0?Pt(t,t,-1):t}(t=St(t,t)))[3]<1/32767){t[3]=1/32767;const n=Math.sqrt(.9999999990686206);t[0]*=n,t[1]*=n,t[2]*=n}const i=e[3]>0?mt(Qn,e,n):mt(Qn,n,e);return yt(mt(te,e,n),i)<0&&Pt(t,t,-1),t}const ee=[];function re(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=ee;i.length<t.length/3&&(i.length=t.length/3),i.fill(0,0,t.length/3);const s=void 0===n.length?n:n.length;for(let e=0;e<s/3;e++)void 0===n.length?ce(t,3*e,3*e+1,3*e+2,r,i):ce(t,n[3*e],n[3*e+1],n[3*e+2],r,i);for(let t=0;t<r.length;t+=3){const n=i[t/3];0!==n?(r[t]/=n,r[t+1]/=n,r[t+2]/=n):(r[t]=0,r[t+1]=0,r[t+2]=0)}return r}const ie=[],se=[],oe=[],ae=[],ue=[],he=[],le=[];function ce(t,n,e,r,i,s){ft(ae,t[3*n],t[3*n+1],t[3*n+2]),ft(ue,t[3*e],t[3*e+1],t[3*e+2]),ft(he,t[3*r],t[3*r+1],t[3*r+2]);const o=vt(ie,he,ue),a=vt(se,ae,ue),u=mt(oe,o,a);pt(le,u),i[3*n]=i[3*n]||0,i[3*e]=i[3*e]||0,i[3*r]=i[3*r]||0,i[3*n+1]=i[3*n+1]||0,i[3*e+1]=i[3*e+1]||0,i[3*r+1]=i[3*r+1]||0,i[3*n+2]=i[3*n+2]||0,i[3*e+2]=i[3*e+2]||0,i[3*r+2]=i[3*r+2]||0,i[3*n]+=le[0],i[3*e]+=le[0],i[3*r]+=le[0],i[3*n+1]+=le[1],i[3*e+1]+=le[1],i[3*r+1]+=le[1],i[3*n+2]+=le[2],i[3*e+2]+=le[2],i[3*r+2]+=le[2],s[n]+=1,s[e]+=1,s[r]+=1}\n/*!\n * Contains code from THREE.JS\n * https://github.com/mrdoob/three.js/\n * License MIT\n * \n * Generate tangents per vertex.\n */function fe(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function de(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var pe={exports:{}};function ye(t,n,e){e=e||2;var r,i,s,o,a,u,h,l=n&&n.length,c=l?n[0]*e:t.length,f=me(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(l&&(f=function(t,n,e,r){var i,s,o,a,u,h=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=me(t,o,a,r,!1))===u.next&&(u.steiner=!0),h.push(Se(u));for(h.sort(Fe),i=0;i<h.length;i++)e=ke(h[i],e);return e}(t,n,f,e)),t.length>80*e){r=s=t[0],i=o=t[1];for(var p=e;p<c;p+=e)(a=t[p])<r&&(r=a),(u=t[p+1])<i&&(i=u),a>s&&(s=a),u>o&&(o=u);h=0!==(h=Math.max(s-r,o-i))?32767/h:0}return ge(f,d,e,r,i,h,0),d}function me(t,n,e,r,i){var s,o;if(i===Le(t,n,e,r)>0)for(s=n;s<e;s+=r)o=je(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=je(s,t[s],t[s+1],o);return o&&Ie(o,o.next)&&(Ue(o),o=o.next),o}function ve(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Ie(r,r.next)&&0!==Ee(r.prev,r,r.next))r=r.next;else{if(Ue(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function ge(t,n,e,r,i,s,o){if(t){!o&&s&&function(t,n,e,r){var i=t;do{0===i.z&&(i.z=Pe(i.x,i.y,n,e,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var n,e,r,i,s,o,a,u,h=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<h&&(a++,r=r.nextZ);n++);for(u=h;a>0||u>0&&r;)0!==a&&(0===u||!r||e.z<=r.z)?(i=e,e=e.nextZ,a--):(i=r,r=r.nextZ,u--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;e=r}s.nextZ=null,h*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,h=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?we(t,r,i,s):be(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),Ue(t),t=u.next,h=u.next;else if((t=u)===h){o?1===o?ge(t=Me(ve(t),n,e),n,e,r,i,s,2):2===o&&xe(t,n,e,r,i,s):ge(ve(t),n,e,r,i,s,1);break}}}function be(t){var n=t.prev,e=t,r=t.next;if(Ee(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,h=r.y,l=i<s?i<o?i:o:s<o?s:o,c=a<u?a<h?a:h:u<h?u:h,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>h?a:h:u>h?u:h,p=r.next;p!==n;){if(p.x>=l&&p.x<=f&&p.y>=c&&p.y<=d&&_e(i,a,s,u,o,h,p.x,p.y)&&Ee(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function we(t,n,e,r){var i=t.prev,s=t,o=t.next;if(Ee(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,h=o.x,l=i.y,c=s.y,f=o.y,d=a<u?a<h?a:h:u<h?u:h,p=l<c?l<f?l:f:c<f?c:f,y=a>u?a>h?a:h:u>h?u:h,m=l>c?l>f?l:f:c>f?c:f,v=Pe(d,p,n,e,r),g=Pe(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=v&&w&&w.z<=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;if(b=b.prevZ,w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=g;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Me(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Ie(i,s)&&$e(i,r,r.next,s)&&Te(i,s)&&Te(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),Ue(r),Ue(r.next),r=t=s),r=r.next}while(r!==t);return ve(r)}function xe(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Oe(o,a)){var u=De(o,a);return o=ve(o,o.next),u=ve(u,u.next),ge(o,n,e,r,i,s,0),void ge(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Fe(t,n){return t.x-n.x}function ke(t,n){var e=function(t,n){var e,r=n,i=t.x,s=t.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>o&&(o=a,e=r.x<r.next.x?r:r.next,a===i))return e}r=r.next}while(r!==n);if(!e)return null;var u,h=e,l=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=l&&i!==r.x&&_e(s<c?i:o,s,l,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Te(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&Ae(e,r)))&&(e=r,f=u)),r=r.next}while(r!==h);return e}(t,n);if(!e)return n;var r=De(e,t);return ve(r,r.next),ve(e,e.next)}function Ae(t,n){return Ee(t.prev,t,n.prev)<0&&Ee(n.next,t,t.next)<0}function Pe(t,n,e,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-e)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*i|0)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function Se(t){var n=t,e=t;do{(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next}while(n!==t);return e}function _e(t,n,e,r,i,s,o,a){return(i-o)*(n-a)>=(t-o)*(s-a)&&(t-o)*(r-a)>=(e-o)*(n-a)&&(e-o)*(s-a)>=(i-o)*(r-a)}function Oe(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!function(t,n){var e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&$e(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Te(t,n)&&Te(n,t)&&function(t,n){var e=t,r=!1,i=(t.x+n.x)/2,s=(t.y+n.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&i<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next}while(e!==t);return r}(t,n)&&(Ee(t.prev,t,n.prev)||Ee(t,n.prev,n))||Ie(t,n)&&Ee(t.prev,t,t.next)>0&&Ee(n.prev,n,n.next)>0)}function Ee(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Ie(t,n){return t.x===n.x&&t.y===n.y}function $e(t,n,e,r){var i=Ce(Ee(t,n,e)),s=Ce(Ee(t,n,r)),o=Ce(Ee(e,r,t)),a=Ce(Ee(e,r,n));return i!==s&&o!==a||(!(0!==i||!ze(t,e,n))||(!(0!==s||!ze(t,r,n))||(!(0!==o||!ze(e,t,r))||!(0!==a||!ze(e,n,r)))))}function ze(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function Ce(t){return t>0?1:t<0?-1:0}function Te(t,n){return Ee(t.prev,t,t.next)<0?Ee(t,n,t.next)>=0&&Ee(t,t.prev,n)>=0:Ee(t,n,t.prev)<0||Ee(t,t.next,n)<0}function De(t,n){var e=new Ne(t.i,t.x,t.y),r=new Ne(n.i,n.x,n.y),i=t.next,s=n.prev;return t.next=n,n.prev=t,e.next=i,i.prev=e,r.next=e,e.prev=r,s.next=r,r.prev=s,r}function je(t,n,e,r){var i=new Ne(t,n,e);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ue(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ne(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Le(t,n,e,r){for(var i=0,s=n,o=e-r;s<e;s+=r)i+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return i}pe.exports=ye,pe.exports.default=ye,ye.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Le(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var h=n[a]*e,l=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Le(t,h,l,e))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*e,d=r[a+1]*e,p=r[a+2]*e;c+=Math.abs((t[f]-t[p])*(t[d+1]-t[f+1])-(t[f]-t[d])*(t[p+1]-t[f+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},ye.flatten=function(t){for(var n=t[0][0].length,e={vertices:[],holes:[],dimensions:n},r=0,i=0;i<t.length;i++){for(var s=0;s<t[i].length;s++)for(var o=0;o<n;o++)e.vertices.push(t[i][s][o]);i>0&&(r+=t[i-1].length,e.holes.push(r))}return e};var Ve=pe.exports;\n/*!\n * @maptalks/vector-packer v0.90.0\n * LICENSE : UNLICENSED\n * (c) 2016-2023 maptalks.com\n */const Re={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function He(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)We(e,t.features[r],n,r);else We(e,"Feature"===t.type?t:{geometry:t},n);return e}function We(t,n,e,r){if(n.geometry&&n.geometry.geometry){var i=n.geometry.coordinates,s=n.geometry.type,o=[],a=n.id;if(e.promoteId?a=n.properties[e.promoteId]:e.generateId&&(a=r||0),"Point"===s)qe(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)qe(i[u],o);else if("LineString"===s)Be([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)Ge(i[u],o=[]),t.push(Je(a,"LineString",o,n.properties));return}Be(i,o)}else if("Polygon"===s)Be(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)We(t,{id:a,geometry:n.geometry.geometries[u],properties:n.properties},e,r);return}return void console.warn(`Input data type(${s}) is not a valid GeoJSON geometry type.`)}for(u=0;u<i.length;u++){var h=[];Be(i[u],h),o.push(h)}}t.push(Je(a,s,o,n.properties))}}function qe(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function Ge(t,n){for(let e=0;e<t.length;e++){const r=new Ut(t[e][0],t[e][1]);r.z=100*(t[e][2]||0),n.push(r)}}function Be(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];Ge(t[i],s),n.push(s)}}function Je(t,n,e,r){return{id:void 0===t?null:t,type:Re[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Xe(t,{width:n,height:e},r,i){if(i){if(i.length!==n*e*r)throw new RangeError("mismatched image size")}else i=new Uint8Array(n*e*r);return t.width=n,t.height=e,t.data=i,t}function Ye(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Xe({},{width:n,height:e},r);Ze(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,e)},r),t.width=n,t.height=e,t.data=i.data}function Ze(t,n,e,r,i,s){if(0===i.width||0===i.height)return n;if(i.width>t.width||i.height>t.height||e.x>t.width-i.width||e.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>n.width||i.height>n.height||r.x>n.width-i.width||r.y>n.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const o=t.data,a=n.data;if(o===a)return n;for(let u=0;u<i.height;u++){const h=((e.y+u)*t.width+e.x)*s,l=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[l+t]=o[h+t]}return n}class Ke{constructor(t,n){Xe(this,t,1,n)}resize(t){Ye(this,t,1)}clone(){return new Ke({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,1)}}class Qe{constructor(t,n){Xe(this,t,4,n)}resize(t){Ye(this,t,4)}clone(){return new Qe({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,4)}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */class tr{constructor(t,n,{pixelRatio:e}){this.paddedRect=t,this.pixelRatio=e||1,this.padding=n}get tl(){return[this.paddedRect.x+this.padding,this.paddedRect.y+this.padding]}get br(){return[this.paddedRect.x+this.paddedRect.w-this.padding,this.paddedRect.y+this.paddedRect.h-this.padding]}get displaySize(){return[(this.paddedRect.w-2*this.padding)/this.pixelRatio,(this.paddedRect.h-2*this.padding)/this.pixelRatio]}}class nr{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n=Object.keys(t).length,e={},r=new Lt(0,0,{autoResize:!0}),i=[],s=n>1?1:0;for(const n in t){const r=t[n],o={x:0,y:0,w:r.data.width+2*s,h:r.data.height+2*s};i.push(o),e[n]=new tr(o,s,r)}if(r.pack(i,{inPlace:!0}),!er(r.w)||!er(r.h)){const t=rr(r.w),n=rr(r.h);r.resize(t,n)}const o=new Qe({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Qe.copy(r.data,o,{x:0,y:0},{x:i.x+s,y:i.y+s},r.data)}this.image=o,this.positions=e}}function er(t){return 0==(t&t-1)&&0!==t}function rr(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n * TODO 升级为potpack\n */class ir{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n={},e=new Lt(0,0,{autoResize:!0}),r=[];for(const e in t){const i=t[e],s=n[e]={};for(const t in i){const n=i[+t];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const e={x:0,y:0,w:n.bitmap.width+2,h:n.bitmap.height+2};r.push(e),s[t]={rect:e,metrics:n.metrics}}}e.pack(r,{inPlace:!0});const i=new Ke({width:e.w,height:e.h});for(const e in t){const r=t[e];for(const t in r){const s=r[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const o=n[e][t].rect;Ke.copy(s.bitmap,i,{x:0,y:0},{x:o.x+1,y:o.y+1},s.bitmap)}}this.image=i,this.positions=n}}function sr(t){return t<65536?Uint16Array:Uint32Array}function or(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function ar(t){return t<256?Uint8Array:t<65536?Uint16Array:t<Math.pow(2,32)?Uint32Array:Float64Array}function ur(t,n){const e=new n(t.length),r=e.length;for(let n=0;n<r;n++)e[n]=t[n];return e}function hr(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)qe(t.geometry[n],e);else if(2===n)Be(t.geometry,e);else if(3===n)Be(t.geometry,e);else if(5===n)Be(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];Be(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function lr(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];for(const n in e)t[n]=e[n]}return t}function cr(t){return null==t}function fr(t){return"number"==typeof t&&!isNaN(t)}function dr(t){return"object"==typeof t&&!!t}function pr(t){return!cr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function yr(t){return!cr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const mr=Object.prototype.hasOwnProperty;function vr(t,n){return mr.call(t,n)}const gr=Math.PI/180;function br(t){return t&&d(t)&&t.property}function wr(t){const{centimeterToPoint:n,tileRatio:e}=t;return n*e}function Mr(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const xr={};function Fr(t,n){if(!Array.isArray(n)){if(n&&void 0!==n.r&&void 0!==n.g&&void 0!==n.b)return t[0]=255*n.r,t[1]=255*n.g,t[2]=255*n.b,t[3]=void 0!==n.a?255*n.a:255,t;n=xr[n]=xr[n]||zn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const kr={textFill:1,textSize:1,textOpacity:1,markerWidth:1,markerHeight:1,markerOpacity:1,markerDx:1,markerDy:1,lineWidth:1,lineColor:1,lineOpacity:1,polygonFill:1,polygonOpacity:1},Ar={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var Pr=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:lr,isNil:cr,isNumber:fr,isInteger:function(t){return(0|t)===t},isObject:dr,isString:pr,isFunction:yr,hasOwn:vr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*gr},toDegree:function(t){return t/gr},evaluate:function(t,n,e){return yr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:br,getAltitudeToLocal:wr,getTubeSizeScale:Mr,normalizeColor:Fr,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!kr[t])return!1;for(let t=0;t<e.length;t++){const r=e[t]&&(e[t].feature||e[t]);if(!r)continue;const i=r.properties&&r.properties[n];if(i&&d(i)&&!p(i).isZoomConstant)return!0}return!1},checkIfZoomFnTypeSymbol:function(t){return!!kr[t]||!!Ar[t]}});function Sr(t){let n=0;for(let e,r,i=0,s=t.length,o=s-1;i<s;o=i++)if(e=t[i],r=t[o],void 0!==e.x){if(e.z||r.z)return 1;n+=(r.x-e.x)*(e.y+r.y)}else{if(e[2]||r[2])return 1;n+=(r[0]-e[0])*(e[1]+r[1])}return n}function _r(t,n,e,r,i){const s=t[n*r],o=t[n*r+1],a=t[e*r],u=t[e*r+1];return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Or(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function Er(t,n,e,r,i,s,o){n||0===n||(n=1);const a=Or(t.properties,e,r),u=a*n;let h=(s?100*s:0)||a;return i?h=Or(t.properties,i,s):o&&(h=a-Or(t.properties,o,s)),h*=n,{altitude:u,height:h}}function Ir(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function $r(t){return null==t}function zr(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function Cr(t,n){if(!n)return null;const e=new Map;for(let r=0;r<n.length;r++){const i=n[r],s=t[i];let o=e.get(s);o||(o=[],e.set(s,o)),o.push(i)}return e}class Tr{constructor(t,n,e,r){this.feature=t,this.symbol=n,this.fnTypes=e,this.options=r}getPolygonResource(){let t=this.symbol.polygonPatternFile;const{polygonPatternFileFn:n}=this.fnTypes;return this.U(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.U(t,n)}U(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Dr(t,n,e,r){const i=Math.abs(r)>>15,s=i>>1,o=i%2;let a=r%Math.pow(2,15);const u=n+(s<<14)*Math.sign(n),h=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=h,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const jr=Math.pow(2,14),Ur=Math.pow(2,15);\n/*!\n * a compact version of mapbox-gl-style-spec\n * based on mapbox-gl-style-spec@13.28.0\n * https://github.com/mapbox/mapbox-gl-js/tree/main/src/style-spec\n * LICENSE : ISC\n */var Nr,Lr,Vr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Rr={exports:{}};function Hr(t,...n){for(const e of n)for(const n in e)t[n]=e[n];return t}\n/*! https://mths.be/punycode v1.3.2 by @mathias */Nr=Rr,Lr=Rr.exports,function(t){var n=Lr&&!Lr.nodeType&&Lr,e=Nr&&!Nr.nodeType&&Nr,r="object"==typeof Vr&&Vr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,h=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,f=String.fromCharCode;function d(t){throw RangeError(l[t])}function p(t,n){for(var e=t.length,r=[];e--;)r[e]=n(t[e]);return r}function y(t,n){var e=t.split("@"),r="";return e.length>1&&(r=e[0]+"@",t=e[1]),r+p((t=t.replace(h,".")).split("."),n).join(".")}function m(t){for(var n,e,r=[],i=0,s=t.length;i<s;)(n=t.charCodeAt(i++))>=55296&&n<=56319&&i<s?56320==(64512&(e=t.charCodeAt(i++)))?r.push(((1023&n)<<10)+(1023&e)+65536):(r.push(n),i--):r.push(n);return r}function v(t){return p(t,(function(t){var n="";return t>65535&&(n+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+f(t)})).join("")}function g(t,n){return t+22+75*(t<26)-((0!=n)<<5)}function b(t,n,e){var r=0;for(t=e?c(t/700):t>>1,t+=c(t/n);t>455;r+=36)t=c(t/35);return c(r+36*t/(t+38))}function w(t){var n,e,r,i,s,a,u,h,l,f,p,y=[],m=t.length,g=0,w=128,M=72;for((e=t.lastIndexOf("-"))<0&&(e=0),r=0;r<e;++r)t.charCodeAt(r)>=128&&d("not-basic"),y.push(t.charCodeAt(r));for(i=e>0?e+1:0;i<m;){for(s=g,a=1,u=36;i>=m&&d("invalid-input"),((h=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||h>c((o-g)/a))&&d("overflow"),g+=h*a,!(h<(l=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-l))&&d("overflow"),a*=f;M=b(g-s,n=y.length+1,0==s),c(g/n)>o-w&&d("overflow"),w+=c(g/n),g%=n,y.splice(g++,0,w)}return v(y)}function M(t){var n,e,r,i,s,a,u,h,l,p,y,v,w,M,x,F=[];for(v=(t=m(t)).length,n=128,e=0,s=72,a=0;a<v;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<v;){for(u=o,a=0;a<v;++a)(y=t[a])>=n&&y<u&&(u=y);for(u-n>c((o-e)/(w=r+1))&&d("overflow"),e+=(u-n)*w,n=u,a=0;a<v;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(h=e,l=36;!(h<(p=l<=s?1:l>=s+26?26:l-s));l+=36)F.push(f(g(p+(x=h-p)%(M=36-p),0))),h=c(x/M);F.push(f(g(h,0))),s=b(e,w,r==i),e=0,++r}++e,++n}return F.join("")}if(i={version:"1.3.2",ucs2:{decode:m,encode:v},decode:w,encode:M,toASCII:function(t){return y(t,(function(t){return u.test(t)?"xn--"+M(t):t}))},toUnicode:function(t){return y(t,(function(t){return a.test(t)?w(t.slice(4).toLowerCase()):t}))}},n&&e)if(Nr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Vr);class Wr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var qr=Wr;class Gr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Gr(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var Br=Gr;const Jr={kind:"null"},Xr={kind:"number"},Yr={kind:"string"},Zr={kind:"boolean"},Kr={kind:"color"},Qr={kind:"object"},ti={kind:"value"},ni={kind:"collator"},ei={kind:"formatted"},ri={kind:"resolvedImage"};function ii(t,n){return{kind:"array",itemType:t,N:n}}function si(t){if("array"===t.kind){const n=si(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const oi=[Jr,Xr,Yr,Zr,Kr,ei,Qr,ii(ti),ri];function ai(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!ai(t.itemType,n.itemType))&&("number"!=typeof t.N||t.N===n.N))return null}else{if(t.kind===n.kind)return null;if("value"===t.kind)for(const t of oi)if(!ai(t,n))return null}return`Expected ${si(t)} but found ${si(n)} instead.`}function ui(t,n){return n.some(n=>n.kind===t.kind)}function hi(t,n){return n.some(n=>"null"===n?null===t:"array"===n?Array.isArray(t):"object"===n?t&&!Array.isArray(t)&&"object"==typeof t:n===typeof t)}var li,ci={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 fi(t){return(t=Math.round(t))<0?0:t>255?255:t}function di(t){return fi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function pi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function yi(t,n,e){return e<0?e+=1:e>1&&(e-=1),6*e<1?t+(n-t)*e*6:2*e<1?n:3*e<2?t+(n-t)*(2/3-e)*6:t}try{li={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in ci)return ci[e].slice();if("#"===e[0])return 4===e.length?(n=parseInt(e.substr(1),16))>=0&&n<=4095?[(3840&n)>>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1]:null:7===e.length&&(n=parseInt(e.substr(1),16))>=0&&n<=16777215?[(16711680&n)>>16,(65280&n)>>8,255&n,1]:null;var r=e.indexOf("("),i=e.indexOf(")");if(-1!==r&&i+1===e.length){var s=e.substr(0,r),o=e.substr(r+1,i-(r+1)).split(","),a=1;switch(s){case"rgba":if(4!==o.length)return null;a=pi(o.pop());case"rgb":return 3!==o.length?null:[di(o[0]),di(o[1]),di(o[2]),a];case"hsla":if(4!==o.length)return null;a=pi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,h=pi(o[1]),l=pi(o[2]),c=l<=.5?l*(h+1):l+h-l*h,f=2*l-c;return[fi(255*yi(f,c,u+1/3)),fi(255*yi(f,c,u)),fi(255*yi(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class mi{constructor(t,n,e,r=1){this.r=t,this.g=n,this.b=e,this.a=r}static parse(t){if(!t)return;if(t instanceof mi)return t;if("string"!=typeof t)return;const n=li(t);return n?new mi(n[0]/255*n[3],n[1]/255*n[3],n[2]/255*n[3],n[3]):void 0}toString(){const[t,n,e,r]=this.toArray();return`rgba(${Math.round(t)},${Math.round(n)},${Math.round(e)},${r})`}toArray(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[255*t/r,255*n/r,255*e/r,r]}toArray01(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[t/r,n/r,e/r,r]}toArray01PremultipliedAlpha(){const{r:t,g:n,b:e,a:r}=this;return[t,n,e,r]}}mi.black=new mi(0,0,0,1),mi.white=new mi(1,1,1,1),mi.transparent=new mi(0,0,0,0),mi.red=new mi(1,0,0,1),mi.blue=new mi(0,0,1,1);var vi=mi;class gi{constructor(t,n,e){this.sensitivity=t?n?"variant":"case":n?"accent":"base",this.locale=e,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,n){return this.collator.compare(t,n)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class bi{constructor(t,n,e,r,i){this.text=t.normalize?t.normalize():t,this.image=n,this.scale=e,this.fontStack=r,this.textColor=i}}class wi{constructor(t){this.sections=t}static fromString(t){return new wi([new bi(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(t){return t instanceof wi?t:wi.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const n of this.sections){if(n.image){t.push(["image",n.image.name]);continue}t.push(n.text);const e={};n.fontStack&&(e["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(e["font-scale"]=n.scale),n.textColor&&(e["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(e)}return t}}class Mi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Mi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function xi(t,n,e,r){return"number"==typeof t&&t>=0&&t<=255&&"number"==typeof n&&n>=0&&n<=255&&"number"==typeof e&&e>=0&&e<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,n,e,r].join(", ")}]: \'a\' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,n,e,r]:[t,n,e]).join(", ")}]: \'r\', \'g\', and \'b\' must be between 0 and 255.`}function Fi(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof vi)return!0;if(t instanceof gi)return!0;if(t instanceof wi)return!0;if(t instanceof Mi)return!0;if(Array.isArray(t)){for(const n of t)if(!Fi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Fi(t[n]))return!1;return!0}return!1}function ki(t){if(null===t)return Jr;if("string"==typeof t)return Yr;if("boolean"==typeof t)return Zr;if("number"==typeof t)return Xr;if(t instanceof vi)return Kr;if(t instanceof gi)return ni;if(t instanceof wi)return ei;if(t instanceof Mi)return ri;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=ki(n);if(e){if(e===t)continue;e=ti;break}e=t}return ii(e||ti,n)}return Qr}function Ai(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof vi||t instanceof wi||t instanceof Mi?t.toString():JSON.stringify(t)}class Pi{constructor(t,n){this.type=t,this.value=n}static parse(t,n){if(2!==t.length)return n.error(`\'literal\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fi(t[1]))return n.error("invalid value");const e=t[1];let r=ki(e);const i=n.expectedType;return"array"!==r.kind||0!==r.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(r=i),new Pi(r,e)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof vi?["rgba"].concat(this.value.toArray()):this.value instanceof wi?this.value.serialize():this.value}}var Si=Pi,_i=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Oi={string:Yr,number:Xr,boolean:Zr,object:Qr};class Ei{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let e,r=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const e=t[1];if("string"!=typeof e||!(e in Oi)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Oi[e],r++}else i=ti;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(\'The length argument to "array" must be a positive integer literal\',2);s=t[2],r++}e=ii(i,s)}else e=Oi[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,ti);if(!e)return null;s.push(e)}return new Ei(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!ai(this.type,ki(e)))return e;if(n===this.args.length-1)throw new _i(`Expected value to be of type ${si(this.type)}, but found ${si(ki(e))} instead.`)}return null}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=this.type,n=[t.kind];if("array"===t.kind){const e=t.itemType;if("string"===e.kind||"number"===e.kind||"boolean"===e.kind){n.push(e.kind);const r=t.N;("number"==typeof r||this.args.length>1)&&n.push(r)}}return n.concat(this.args.map(t=>t.serialize()))}}var Ii=Ei;class $i{constructor(t){this.type=ei,this.sections=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[1];if(!Array.isArray(e)&&"object"==typeof e)return n.error("First argument must be an image or text section.");const r=[];let i=!1;for(let e=1;e<=t.length-1;++e){const s=t[e];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=n.parse(s["font-scale"],1,Xr),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ii(Yr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Kr),!o))return null;const a=r[r.length-1];a.scale=t,a.font=e,a.textColor=o}else{const s=n.parse(t[e],1,ti);if(!s)return null;const o=s.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be \'string\', \'value\', \'image\' or \'null\'.");i=!0,r.push({content:s,scale:null,font:null,textColor:null})}}return new $i(r)}evaluate(t){return new wi(this.sections.map(n=>{const e=n.content.evaluate(t);return ki(e)===ri?new bi("",e,null,null,null):new bi(Ai(e),null,n.scale?n.scale.evaluate(t):null,n.font?n.font.evaluate(t).join(","):null,n.textColor?n.textColor.evaluate(t):null)}))}eachChild(t){for(const n of this.sections)t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const n of this.sections){t.push(n.content.serialize());const e={};n.scale&&(e["font-scale"]=n.scale.serialize()),n.font&&(e["text-font"]=n.font.serialize()),n.textColor&&(e["text-color"]=n.textColor.serialize()),t.push(e)}return t}}class zi{constructor(t){this.type=ri,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Yr);return e?new zi(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=Mi.fromString(n);return e&&t.availableImages&&(e.available=t.availableImages.indexOf(n)>-1),e}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Ci={"to-boolean":Zr,"to-color":Kr,"to-number":Xr,"to-string":Yr};class Ti{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[0];if(("to-boolean"===e||"to-string"===e)&&2!==t.length)return n.error("Expected one argument.");const r=Ci[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,ti);if(!r)return null;i.push(r)}return new Ti(r,i)}evaluate(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){let n,e;for(const r of this.args){if(n=r.evaluate(t),e=null,n instanceof vi)return n;if("string"==typeof n){const e=t.parseColor(n);if(e)return e}else if(Array.isArray(n)&&(e=n.length<3||n.length>4?`Invalid rbga value ${JSON.stringify(n)}: expected an array containing either three or four numeric values.`:xi(n[0],n[1],n[2],n[3]),!e))return new vi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new _i(e||`Could not parse color from value \'${"string"==typeof n?n:String(JSON.stringify(n))}\'`)}if("number"===this.type.kind){let n=null;for(const e of this.args){if(n=e.evaluate(t),null===n)return 0;const r=Number(n);if(!isNaN(r))return r}throw new _i(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?wi.fromString(Ai(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Mi.fromString(Ai(this.args[0].evaluate(t))):Ai(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if("formatted"===this.type.kind)return new $i([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new zi(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Di=Ti;const ji=["Unknown","Point","LineString","Polygon"];var Ui=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.L={},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?ji[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){const t=this.featureDistanceData.center,n=this.featureDistanceData.scale,{x:e,y:r}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(e*n-t[0])+this.featureDistanceData.bearing[1]*(r*n-t[1])}return 0}parseColor(t){let n=this.L[t];return n||(n=this.L[t]=vi.parse(t)),n}};class Ni{constructor(t,n,e,r){this.name=t,this.type=n,this.V=e,this.args=r}evaluate(t){return this.V(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,n){const e=t[0],r=Ni.definitions[e];if(!r)return n.error(`Unknown expression "${e}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(r)?r[0]:r.type,s=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=s.filter(([n])=>!Array.isArray(n)||n.length===t.length-1);let a=null;for(const[r,s]of o){a=new cs(n.registry,n.path,null,n.scope);const o=[];let u=!1;for(let n=1;n<t.length;n++){const e=t[n],i=Array.isArray(r)?r[n-1]:r.type,s=a.parse(e,1+o.length,i);if(!s){u=!0;break}o.push(s)}if(!u)if(Array.isArray(r)&&r.length!==o.length)a.error(`Expected ${r.length} arguments, but found ${o.length} instead.`);else{for(let t=0;t<o.length;t++){const n=Array.isArray(r)?r[t]:r.type,e=o[t];a.concat(t+1).checkSubtype(n,e.type)}if(0===a.errors.length)return new Ni(e,i,s,o)}}if(1===o.length)n.errors.push(...a.errors);else{const e=(o.length?o:s).map(([t])=>{return n=t,Array.isArray(n)?`(${n.map(si).join(", ")})`:`(${si(n.type)}...)`;var n}).join(" | "),r=[];for(let e=1;e<t.length;e++){const i=n.parse(t[e],1+r.length);if(!i)return null;r.push(si(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){Ni.definitions=n;for(const e in n)t[e]=Ni}}var Li=Ni;class Vi{constructor(t,n,e){this.type=ni,this.locale=e,this.caseSensitive=t,this.diacriticSensitive=n}static parse(t,n){if(2!==t.length)return n.error("Expected one argument.");const e=t[1];if("object"!=typeof e||Array.isArray(e))return n.error("Collator options argument must be an object.");const r=n.parse(void 0!==e["case-sensitive"]&&e["case-sensitive"],1,Zr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Zr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Yr),!s)?null:new Vi(r,i,s)}evaluate(t){return new gi(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}serialize(){const t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]}}function Ri(t,n){t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[0]),t[3]=Math.max(t[3],n[1])}function Hi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Wi(t,n){const e=(180+t[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,n.z);return[Math.round(e*i*8192),Math.round(r*i*8192)]}function qi(t,n,e){const r=t[0]-n[0],i=t[1]-n[1],s=t[0]-e[0],o=t[1]-e[1];return r*o-s*i==0&&r*s<=0&&i*o<=0}function Gi(t,n){let e=!1;for(let o=0,a=n.length;o<a;o++){const a=n[o];for(let n=0,o=a.length;n<o-1;n++){if(qi(t,a[n],a[n+1]))return!1;(i=a[n])[1]>(r=t)[1]!=(s=a[n+1])[1]>r[1]&&r[0]<(s[0]-i[0])*(r[1]-i[1])/(s[1]-i[1])+i[0]&&(e=!e)}}var r,i,s;return e}function Bi(t,n){for(let e=0;e<n.length;e++)if(Gi(t,n[e]))return!0;return!1}function Ji(t,n,e,r){const i=r[0]-e[0],s=r[1]-e[1],o=(t[0]-e[0])*s-i*(t[1]-e[1]),a=(n[0]-e[0])*s-i*(n[1]-e[1]);return o>0&&a<0||o<0&&a>0}function Xi(t,n,e){for(const h of e)for(let e=0;e<h.length-1;++e)if(void 0,void 0,0!=(a=[(o=h[e+1])[0]-(s=h[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Ji(r,i,s,o)&&Ji(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Yi(t,n){for(let e=0;e<t.length;++e)if(!Gi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Xi(t[e],t[e+1],n))return!1;return!0}function Zi(t,n){for(let e=0;e<n.length;e++)if(Yi(t,n[e]))return!0;return!1}function Ki(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=[];for(let r=0;r<t[i].length;r++){const o=Wi(t[i][r],e);Ri(n,o),s.push(o)}r.push(s)}return r}function Qi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Ki(t[i],n,e);r.push(s)}return r}function ts(t,n,e,r){if(t[0]<e[0]||t[0]>e[2]){const n=.5*r;let i=t[0]-e[0]>n?-r:e[0]-t[0]>n?r:0;0===i&&(i=t[0]-e[2]>n?-r:e[2]-t[0]>n?r:0),t[0]+=i}Ri(n,t)}function ns(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const r of t)for(const t of r){const r=[t.x+s[0],t.y+s[1]];ts(r,n,e,i),o.push(r)}return o}function es(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const e of t){const t=[];for(const r of e){const e=[r.x+s[0],r.y+s[1]];Ri(n,e),t.push(e)}o.push(t)}if(n[2]-n[0]<=i/2){(a=n)[0]=a[1]=1/0,a[2]=a[3]=-1/0;for(const t of o)for(const r of t)ts(r,n,e,i)}var a;return o}class rs{constructor(t,n){this.type=Zr,this.geojson=t,this.geometries=n}static parse(t,n){if(2!==t.length)return n.error(`\'within\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fi(t[1])){const n=t[1];if("FeatureCollection"===n.type)for(let t=0;t<n.features.length;++t){const e=n.features[t].geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new rs(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new rs(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new rs(n,n)}return n.error("\'within\' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Gi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Bi(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Yi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Zi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var is=rs;function ss(t){if(t instanceof Li){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof is)return!1;let n=!0;return t.eachChild(t=>{n&&!ss(t)&&(n=!1)}),n}function os(t){if(t instanceof Li&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!os(t)&&(n=!1)}),n}function as(t,n){if(t instanceof Li&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!as(t,n)&&(e=!1)}),e}class us{constructor(t,n){this.type=n.type,this.name=t,this.boundExpression=n}static parse(t,n){if(2!==t.length||"string"!=typeof t[1])return n.error("\'var\' expression requires exactly one string literal argument.");const e=t[1];return n.scope.has(e)?new us(e,n.scope.get(e)):n.error(`Unknown variable "${e}". Make sure "${e}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var hs=us;class ls{constructor(t,n=[],e,r=new Br,i=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=r,this.errors=i,this.expectedType=e}parse(t,n,e,r,i={}){return n?this.concat(n,e,r).R(t,i):this.R(t,i)}R(t,n){function e(t,n,e){return"assert"===e?new Ii(n,[t]):"coerce"===e?new Di(n,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error(\'Expected an array with at least one element. If you wanted a literal array, use ["literal", []].\');const r=t[0];if("string"!=typeof r)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[r];if(i){let r=i.parse(t,this);if(!r)return null;if(this.expectedType){const t=this.expectedType,i=r.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else r=e(r,t,n.typeAnnotation||"coerce");else r=e(r,t,n.typeAnnotation||"assert")}if(!(r instanceof Si)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof hs)return t(n.boundExpression);if(n instanceof Li&&"error"===n.name)return!1;if(n instanceof Vi)return!1;if(n instanceof is)return!1;const e=n instanceof Di||n instanceof Ii;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof Si}),!!r&&(ss(n)&&as(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Ui;try{r=new Si(r.type,r.evaluate(n))}catch(t){return this.error(t.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"\'undefined\' value invalid. Use null instead.":"object"==typeof t?\'Bare objects invalid. Use ["literal", {...}] instead.\':`Expected an array, but found ${typeof t} instead.`)}concat(t,n,e){const r="number"==typeof t?this.path.concat(t):this.path,i=e?this.scope.concat(e):this.scope;return new ls(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new qr(e,t))}checkSubtype(t,n){const e=ai(t,n);return e&&this.error(e),e}}var cs=ls;function fs(t,n){const e=t.length-1;let r,i,s=0,o=e,a=0;for(;s<=o;)if(a=Math.floor((s+o)/2),r=t[a],i=t[a+1],r<=n){if(a===e||n<i)return a;s=a+1}else{if(!(r>n))throw new _i("Input is not a number.");o=a-1}return 0}class ds{constructor(t,n,e){this.type=t,this.input=n,this.labels=[],this.outputs=[];for(const[t,n]of e)this.labels.push(t),this.outputs.push(n)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=[];let i=null;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);for(let e=1;e<t.length;e+=2){const s=1===e?-1/0:t[e],o=t[e+1],a=e,u=e+1;if("number"!=typeof s)return n.error(\'Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',a);if(r.length&&r[r.length-1][0]>=s)return n.error(\'Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.\',a);const h=n.parse(o,u,i);if(!h)return null;i=i||h.type,r.push([s,h])}return new ds(i,e,r)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;return r>=n[i-1]?e[i-1].evaluate(t):e[fs(n,r)].evaluate(t)}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let n=0;n<this.labels.length;n++)n>0&&t.push(this.labels[n]),t.push(this.outputs[n].serialize());return t}}var ps=ds,ys=ms;function ms(t,n,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*n,this.by=3*(r-n)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=e,this.p2y=r}function vs(t,n,e){return t*(1-e)+n*e}ms.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,n){if(void 0===n&&(n=1e-6),t<0)return 0;if(t>1)return 1;for(var e=t,r=0;r<8;r++){var i=this.sampleCurveX(e)-t;if(Math.abs(i)<n)return e;var s=this.sampleCurveDerivativeX(e);if(Math.abs(s)<1e-6)break;e-=i/s}var o=0,a=1;for(e=t,r=0;r<20&&(i=this.sampleCurveX(e),!(Math.abs(i-t)<n));r++)t>i?o=e:a=e,e=.5*(a-o)+o;return e},solve:function(t,n){return this.sampleCurveY(this.solveCurveX(t,n))}};var gs=Object.freeze({__proto__:null,number:vs,color:function(t,n,e){return new vi(vs(t.r,n.r,e),vs(t.g,n.g,e),vs(t.b,n.b,e),vs(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>vs(t,n[r],e))}});const bs=6/29*3*(6/29),ws=Math.PI/180,Ms=180/Math.PI;function xs(t){return t>.008856451679035631?Math.pow(t,1/3):t/bs+4/29}function Fs(t){return t>6/29?t*t*t:bs*(t-4/29)}function ks(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function As(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ps(t){const n=As(t.r),e=As(t.g),r=As(t.b),i=xs((.4124564*n+.3575761*e+.1804375*r)/.95047),s=xs((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-xs((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function Ss(t){let n=(t.l+16)/116,e=isNaN(t.a)?n:n+t.a/500,r=isNaN(t.b)?n:n-t.b/200;return n=1*Fs(n),e=.95047*Fs(e),r=1.08883*Fs(r),new vi(ks(3.2404542*e-1.5371385*n-.4985314*r),ks(-.969266*e+1.8760108*n+.041556*r),ks(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function _s(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Os={forward:Ps,reverse:Ss,interpolate:function(t,n,e){return{l:vs(t.l,n.l,e),a:vs(t.a,n.a,e),b:vs(t.b,n.b,e),alpha:vs(t.alpha,n.alpha,e)}}},Es={forward:function(t){const{l:n,a:e,b:r}=Ps(t),i=Math.atan2(r,e)*Ms;return{h:i<0?i+360:i,c:Math.sqrt(e*e+r*r),l:n,alpha:t.a}},reverse:function(t){const n=t.h*ws,e=t.c;return Ss({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:_s(t.h,n.h,e),c:vs(t.c,n.c,e),l:vs(t.l,n.l,e),alpha:vs(t.alpha,n.alpha,e)}}};var Is=Object.freeze({__proto__:null,lab:Os,hcl:Es});class $s{constructor(t,n,e,r,i){this.type=t,this.operator=n,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(const[t,n]of i)this.labels.push(t),this.outputs.push(n)}static interpolationFactor(t,n,e,r){let i=0;if("exponential"===t.name)i=zs(n,t.base,e,r);else if("linear"===t.name)i=zs(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ys(s[0],s[1],s[2],s[3]).solve(zs(n,1,e,r))}return i}static parse(t,n){let[e,r,i,...s]=t;if(!Array.isArray(r)||0===r.length)return n.error("Expected an interpolation type expression.",1);if("linear"===r[0])r={name:"linear"};else if("exponential"===r[0]){const t=r[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);r={name:"exponential",base:t}}else{if("cubic-bezier"!==r[0])return n.error("Unknown interpolation type "+String(r[0]),1,0);{const t=r.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(i=n.parse(i,2,Xr),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Kr:n.expectedType&&"value"!==n.expectedType.kind&&(a=n.expectedType);for(let t=0;t<s.length;t+=2){const e=s[t],r=s[t+1],i=t+3,u=t+4;if("number"!=typeof e)return n.error(\'Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',i);if(o.length&&o[o.length-1][0]>=e)return n.error(\'Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.\',i);const h=n.parse(r,u,a);if(!h)return null;a=a||h.type,o.push([e,h])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new $s(a,e,r,i,o):n.error(`Type ${si(a)} is not interpolatable.`)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;if(r>=n[i-1])return e[i-1].evaluate(t);const s=fs(n,r),o=$s.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?gs[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?Es.reverse(Es.interpolate(Es.forward(a),Es.forward(u),o)):Os.reverse(Os.interpolate(Os.forward(a),Os.forward(u),o))}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const n=[this.operator,t,this.input.serialize()];for(let t=0;t<this.labels.length;t++)n.push(this.labels[t],this.outputs[t].serialize());return n}}function zs(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}var Cs=$s;class Ts{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expectected at least one argument.");let e=null;const r=n.expectedType;r&&"value"!==r.kind&&(e=r);const i=[];for(const r of t.slice(1)){const t=n.parse(r,1+i.length,e,void 0,{typeAnnotation:"omit"});if(!t)return null;e=e||t.type,i.push(t)}const s=r&&i.some(t=>ai(r,t.type));return new Ts(s?ti:e,i)}evaluate(t){let n,e=null,r=0;for(const i of this.args){if(r++,e=i.evaluate(t),e&&e instanceof Mi&&!e.available&&(n||(n=e),e=null,r===this.args.length))return n;if(null!==e)break}return e}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ds=Ts;class js{constructor(t,n){this.type=n.type,this.bindings=[].concat(t),this.result=n}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const n of this.bindings)t(n[1]);t(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const e=[];for(let r=1;r<t.length-1;r+=2){const i=t[r];if("string"!=typeof i)return n.error(`Expected string, but found ${typeof i} instead.`,r);if(/[^a-zA-Z0-9_]/.test(i))return n.error("Variable names must contain only alphanumeric characters or \'_\'.",r);const s=n.parse(t[r+1],r+1);if(!s)return null;e.push([i,s])}const r=n.parse(t[t.length-1],t.length-1,n.expectedType,e);return r?new js(e,r):null}outputDefined(){return this.result.outputDefined()}serialize(){const t=["let"];for(const[n,e]of this.bindings)t.push(n,e.serialize());return t.push(this.result.serialize()),t}}var Us=js;class Ns{constructor(t,n,e){this.type=t,this.index=n,this.input=e}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,Xr),r=n.parse(t[2],2,ii(n.expectedType||ti));return e&&r?new Ns(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new _i(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new _i(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new _i(`Array index must be an integer, but found ${n} instead.`);return e[n]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var Ls=Ns;class Vs{constructor(t,n){this.type=Zr,this.needle=t,this.haystack=n}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);return e&&r?ui(e.type,[Zr,Yr,Xr,Jr,ti])?new Vs(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);return e.indexOf(n)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var Rs=Vs;class Hs{constructor(t,n,e){this.type=Xr,this.needle=t,this.haystack=n,this.fromIndex=e}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);if(!e||!r)return null;if(!ui(e.type,[Zr,Yr,Xr,Jr,ti]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Hs(e,r,i):null}return new Hs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);if(this.fromIndex){const r=this.fromIndex.evaluate(t);return e.indexOf(n,r)}return e.indexOf(n)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var Ws=Hs;class qs{constructor(t,n,e,r,i,s){this.inputType=t,this.type=n,this.input=e,this.cases=r,this.outputs=i,this.otherwise=s}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error("Expected an even number of arguments.");let e,r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i={},s=[];for(let o=2;o<t.length-1;o+=2){let a=t[o];const u=t[o+1];Array.isArray(a)||(a=[a]);const h=n.concat(o);if(0===a.length)return h.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return h.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return h.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return h.error("Numeric branch labels must be integer values.");if(e){if(h.checkSubtype(e,ki(t)))return null}else e=ki(t);if(void 0!==i[String(t)])return h.error("Branch labels must be unique.");i[String(t)]=s.length}const l=n.parse(u,o,r);if(!l)return null;r=r||l.type,s.push(l)}const o=n.parse(t[1],1,ti);if(!o)return null;const a=n.parse(t[t.length-1],t.length-1,r);return a?"value"!==o.type.kind&&n.concat(1).checkSubtype(e,o.type)?null:new qs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(ki(n)===this.inputType&&this.outputs[this.cases[n]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],n=Object.keys(this.cases).sort(),e=[],r={};for(const t of n){const n=r[this.cases[t]];void 0===n?(r[this.cases[t]]=e.length,e.push([this.cases[t],[t]])):e[n][1].push(t)}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[n,r]of e)t.push(1===r.length?i(r[0]):r.map(i)),t.push(this.outputs[n].serialize());return t.push(this.otherwise.serialize()),t}}var Gs=qs;class Bs{constructor(t,n,e){this.type=t,this.branches=n,this.otherwise=e}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error("Expected an odd number of arguments.");let e;n.expectedType&&"value"!==n.expectedType.kind&&(e=n.expectedType);const r=[];for(let i=1;i<t.length-1;i+=2){const s=n.parse(t[i],i,Zr);if(!s)return null;const o=n.parse(t[i+1],i+1,e);if(!o)return null;r.push([s,o]),e=e||o.type}const i=n.parse(t[t.length-1],t.length-1,e);return i?new Bs(e,r,i):null}evaluate(t){for(const[n,e]of this.branches)if(n.evaluate(t))return e.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[n,e]of this.branches)t(n),t(e);t(this.otherwise)}outputDefined(){return this.branches.every(([t,n])=>n.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Js=Bs;class Xs{constructor(t,n,e,r){this.type=t,this.input=n,this.beginIndex=e,this.endIndex=r}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,Xr);if(!e||!r)return null;if(!ui(e.type,[ii(ti),Yr,ti]))return n.error(`Expected first argument to be of type array or string, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Xs(e.type,e,r,i):null}return new Xs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!hi(n,["string","array"]))throw new _i(`Expected first argument to be of type array or string, but found ${si(ki(n))} instead.`);if(this.endIndex){const r=this.endIndex.evaluate(t);return n.slice(e,r)}return n.slice(e)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Ys=Xs;function Zs(t,n){return"=="===t||"!="===t?"boolean"===n.kind||"string"===n.kind||"number"===n.kind||"null"===n.kind||"value"===n.kind:"string"===n.kind||"number"===n.kind||"value"===n.kind}function Ks(t,n,e,r){return 0===r.compare(n,e)}function Qs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Zr,this.lhs=t,this.rhs=n,this.collator=e,this.hasUntypedArgument="value"===t.type.kind||"value"===n.type.kind}static parse(t,n){if(3!==t.length&&4!==t.length)return n.error("Expected two or three arguments.");const e=t[0];let s=n.parse(t[1],1,ti);if(!s)return null;if(!Zs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${si(s.type)}\'.`);let o=n.parse(t[2],2,ti);if(!o)return null;if(!Zs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${si(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${si(s.type)}\' and \'${si(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Ii(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Ii(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error("Cannot use collator to compare non-string types.");if(a=n.parse(t[3],3,ni),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const n=ki(s),e=ki(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new _i(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${n.kind}, ${e.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=ki(s),e=ki(o);if("string"!==t.kind||"string"!==e.kind)return n(i,s,o)}return this.collator?e(i,s,o,this.collator.evaluate(i)):n(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}serialize(){const n=[t];return this.eachChild(t=>{n.push(t.serialize())}),n}}}const to=Qs("==",(function(t,n,e){return n===e}),Ks),no=Qs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ks(0,n,e,r)})),eo=Qs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),ro=Qs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),io=Qs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),so=Qs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class oo{constructor(t,n,e,r,i,s){this.type=Yr,this.number=t,this.locale=n,this.currency=e,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(t,n){if(3!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=t[2];if("object"!=typeof r||Array.isArray(r))return n.error("NumberFormat options argument must be an object.");let i=null;if(r.locale&&(i=n.parse(r.locale,1,Yr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Yr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Yr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Xr),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Xr),!u)?null:new oo(e,i,s,o,a,u)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class ao{constructor(t){this.type=Xr,this.input=t}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const e=n.parse(t[1],1);return e?"array"!==e.type.kind&&"string"!==e.type.kind&&"value"!==e.type.kind?n.error(`Expected argument of type string or array, but found ${si(e.type)} instead.`):new ao(e):null}evaluate(t){const n=this.input.evaluate(t);if("string"==typeof n)return n.length;if(Array.isArray(n))return n.length;throw new _i(`Expected value to be of type string or array, but found ${si(ki(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const uo={"==":to,"!=":no,">":ro,"<":eo,">=":so,"<=":io,array:Ii,at:Ls,boolean:Ii,case:Js,coalesce:Ds,collator:Vi,format:$i,image:zi,in:Rs,"index-of":Ws,interpolate:Cs,"interpolate-hcl":Cs,"interpolate-lab":Cs,length:ao,let:Us,literal:Si,match:Gs,number:Ii,"number-format":oo,object:Ii,slice:Ys,step:ps,string:Ii,"to-boolean":Di,"to-color":Di,"to-number":Di,"to-string":Di,var:hs,within:is};function ho(t,[n,e,r,i]){n=n.evaluate(t),e=e.evaluate(t),r=r.evaluate(t);const s=i?i.evaluate(t):1,o=xi(n,e,r,s);if(o)throw new _i(o);return new vi(n/255*s,e/255*s,r/255*s,s)}function lo(t,n){return t in n}function co(t,n){const e=n[t];return void 0===e?null:e}function fo(t){return{type:t}}Li.register(uo,{error:[{kind:"error"},[Yr],(t,[n])=>{throw new _i(n.evaluate(t))}],typeof:[Yr,[ti],(t,[n])=>si(ki(n.evaluate(t)))],"to-rgba":[ii(Xr,4),[Kr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Kr,[Xr,Xr,Xr],ho],rgba:[Kr,[Xr,Xr,Xr,Xr],ho],has:{type:Zr,overloads:[[[Yr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},get:{type:ti,overloads:[[[Yr],(t,[n])=>co(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>co(n.evaluate(t),e.evaluate(t))]]},"feature-state":[ti,[Yr],(t,[n])=>co(n.evaluate(t),t.featureState||{})],properties:[Qr,[],t=>t.properties()],"geometry-type":[Yr,[],t=>t.geometryType()],id:[ti,[],t=>t.id()],zoom:[Xr,[],t=>t.globals.zoom],pitch:[Xr,[],t=>t.globals.pitch||0],"distance-from-center":[Xr,[],t=>t.distanceFromCenter()],"heatmap-density":[Xr,[],t=>t.globals.heatmapDensity||0],"line-progress":[Xr,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Xr,[],t=>t.globals.skyRadialProgress||0],accumulated:[ti,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Xr,fo(Xr),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Xr,fo(Xr),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Xr],(t,[n])=>-n.evaluate(t)]]},"/":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Xr,[],()=>Math.LN2],pi:[Xr,[],()=>Math.PI],e:[Xr,[],()=>Math.E],"^":[Xr,[Xr,Xr],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Xr,[Xr],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))],log2:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Xr,[Xr],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Xr,[Xr],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Xr,[Xr],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Xr,[Xr],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Xr,[Xr],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Xr,[Xr],(t,[n])=>Math.atan(n.evaluate(t))],min:[Xr,fo(Xr),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Xr,fo(Xr),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Xr,[Xr],(t,[n])=>Math.abs(n.evaluate(t))],round:[Xr,[Xr],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Xr,[Xr],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Xr,[Xr],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Zr,[Yr,ti],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Zr,[ti],(t,[n])=>t.id()===n.value],"filter-type-==":[Zr,[Yr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Zr,[ti],(t,[n])=>n.value in t.properties()],"filter-has-id":[Zr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Zr,[ii(Yr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Zr,[ii(ti)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Zr,[Yr,ii(ti)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Zr,[Yr,ii(ti)],(t,[n,e])=>function(t,n,e,r){for(;e<=r;){const i=e+r>>1;if(n[i]===t)return!0;n[i]>t?r=i-1:e=i+1}return!1}(t.properties()[n.value],e.value,0,e.value.length-1)],all:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Zr,[Zr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Zr,[Yr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Yr,fo(ti),(t,n)=>n.map(n=>Ai(n.evaluate(t))).join("")],"resolved-locale":[Yr,[ni],(t,[n])=>n.evaluate(t).resolvedLocale()]});var po=uo;function yo(t){return{result:"success",value:t}}function mo(t){return{result:"error",value:t}}function vo(t){return!!t.expression&&t.expression.interpolated}function go(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function bo(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function wo(t){return t}function Mo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function xo(t,n,e,r,i){return Mo(typeof e===i?r[e]:void 0,t.default,n.default)}function Fo(t,n,e){if("number"!==go(e))return Mo(t.default,n.default);const r=t.stops.length;if(1===r)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[r-1][0])return t.stops[r-1][1];const i=fs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function ko(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==go(e))return Mo(t.default,n.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[i-1][0])return t.stops[i-1][1];const s=fs(t.stops.map(t=>t[0]),e),o=function(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}(e,r,t.stops[s][0],t.stops[s+1][0]),a=t.stops[s][1],u=t.stops[s+1][1];let h=gs[n.type]||wo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Is[t.colorSpace];h=(t,e)=>n.reverse(n.interpolate(n.forward(t),n.forward(e),o))}return"function"==typeof a.evaluate?{evaluate(...t){const n=a.evaluate.apply(void 0,t),e=u.evaluate.apply(void 0,t);if(void 0!==n&&void 0!==e)return h(n,e,o)}}:h(a,u,o)}function Ao(t,n,e){return"color"===n.type?e=vi.parse(e):"formatted"===n.type?e=wi.fromString(e.toString()):"resolvedImage"===n.type?e=Mi.fromString(e.toString()):go(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),Mo(e,t.default,n.default)}class Po{constructor(t,n){this.expression=t,this.H={},this.W=new Ui,this.q=n?function(t){return"color"===t.type&&(bo(t.default)||Array.isArray(t.default))?new vi(0,0,0,0):"color"===t.type?vi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.G=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.W.globals=t,this.W.feature=n,this.W.featureState=e,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null,this.expression.evaluate(this.W)}evaluate(t,n,e,r,i,s,o,a){this.W.globals=t,this.W.feature=n||null,this.W.featureState=e||null,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s||null,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.W);if(null==t||"number"==typeof t&&t!=t)return this.q;if(this.G&&!(t in this.G))throw new _i(`Expected value to be one of ${Object.keys(this.G).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.H[t.message]||(this.H[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.q}}}function So(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in po}function _o(t,n){const e=new cs(po,[],n?function(t){const n={color:Kr,string:Yr,number:Xr,enum:Yr,boolean:Zr,formatted:ei,resolvedImage:ri};return"array"===t.type?ii(n[t.value]||ti,t.length):n[t.type]}(n):void 0),r=e.parse(t,void 0,void 0,void 0,n&&"string"===n.type?{typeAnnotation:"coerce"}:void 0);return r?yo(new Po(r,n)):mo(e.errors)}class Oo{constructor(t,n){this.kind=t,this.B=n,this.isStateDependent="constant"!==t&&!os(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}}class Eo{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.B=n,this.isStateDependent="camera"!==t&&!os(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?Cs.interpolationFactor(this.interpolationType,t,n,e):0}}function Io(t,n){if("error"===(t=_o(t,n)).result)return t;const e=t.value.expression,r=ss(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return mo([new qr("","data expressions not supported")]);const i=as(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return mo([new qr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Us)e=t(n.result);else if(n instanceof Ds){for(const r of n.args)if(e=t(r),e)break}else(n instanceof ps||n instanceof Cs)&&n.input instanceof Li&&"zoom"===n.input.name&&(e=n);return e instanceof qr||n.eachChild(n=>{const r=t(n);r instanceof qr?e=r:!e&&r?e=new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new qr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return mo([new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof qr)return mo([s]);if(s instanceof Cs&&!vo(n))return mo([new qr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return yo(new Oo(r?"constant":"source",t.value));const o=s instanceof Cs?s.interpolation:void 0;return yo(new Eo(r?"camera":"composite",t.value,s.labels,o))}class $o{constructor(t,n){this.J=t,this.X=n,Hr(this,function t(n,e){const r="color"===e.type,i=n.stops&&"object"==typeof n.stops[0][0],s=i||!(i||void 0!==n.property),o=n.type||(vo(e)?"exponential":"interval");if(r&&((n=Hr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],vi.parse(t[1])])),n.default=vi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Is[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,h;if("exponential"===o)a=ko;else if("interval"===o)a=Fo;else if("categorical"===o){a=xo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];h=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=Ao}if(i){const r={},i=[];for(let t=0;t<n.stops.length;t++){const e=n.stops[t],s=e[0].zoom;void 0===r[s]&&(r[s]={zoom:s,type:n.type,property:n.property,default:n.default,stops:[]},i.push(s)),r[s].stops.push([e[0].value,e[1]])}const s=[];for(const n of i)s.push([r[n].zoom,t(r[n],e)]);const o={name:"linear"};return{kind:"composite",interpolationType:o,interpolationFactor:Cs.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>ko({stops:s,base:n.base},e,t).evaluate(t,r)}}if(s){const t="exponential"===o?{name:"exponential",base:void 0!==n.base?n.base:1}:null;return{kind:"camera",interpolationType:t,interpolationFactor:Cs.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,h)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?Mo(n.default,e.default):a(n,e,i,u,h)}}}(this.J,this.X))}static deserialize(t){return new $o(t.J,t.X)}static serialize(t){return{J:t.J,X:t.X}}}function zo(t){if(Array.isArray(t))return t.map(zo);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=zo(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function Co(t){if(!Array.isArray(t))return!1;if(function(t){return"pitch"===t||"distance-from-center"===t}(t[0]))return!0;for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return!1}const To=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),Do={StyleExpression:Po,isExpression:So,isExpressionFilter:function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":return n.length>=2&&"$id"!==n[1]&&"$type"!==n[1];case"in":return n.length>=3&&("string"!=typeof n[1]||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==n.length||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}},createExpression:_o,createPropertyExpression:Io,normalizePropertyExpression:function(t,n){if(bo(t))return new $o(t,n);if(So(t)){const e=Io(t,n);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return e.value}{let e=t;return"string"==typeof t&&"color"===n.type&&(e=vi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:Oo,ZoomDependentExpression:Eo,StylePropertyFunction:$o},{isExpression:jo,createExpression:Uo}=Do,No={};function Lo(t){if(!0===t)return function(){return!0};if(t&&t.condition){if("any"===t.type){const n=t.condition,e=[];for(let t=0;t<n.length;t++)e.push(Lo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Lo(t.condition);if(cr(t.layer))return n;const e=n=>n.layer===t.layer;return(t,r)=>e(t)&&n(t,r)}if(function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":case"!has":return 2===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"in":case"!in":return n.length>=2&&("string"==typeof n[1]||n[1].property&&n[1].op);case"==":case"!=":case">":case">=":case"<":case"<=":return 3===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"none":case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;case"contains":return!0;default:return!1}}(t))return Tn(t);{let n=function(t,n="fill"){if(null==t)return{filter:()=>!0,needGeometry:!1,needFeature:!1};const e=t;let r=!0;try{r=function(t){if(!Co(t))return t;let n=zo(t);return function t(n){let e=!1;const r=[];if("case"===n[0]){for(let t=1;t<n.length-1;t+=2)e=e||Co(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||Co(n[1]);for(let t=2;t<n.length-1;t+=2)r.push(n[t+1]);r.push(n[n.length-1])}else if("step"===n[0]){e=e||Co(n[1]);for(let t=1;t<n.length-1;t+=2)r.push(n[t+1])}e&&(n.length=0,n.push("any",...r));for(let e=1;e<n.length;e++)t(n[e])}(n),n=function t(n){if(!Array.isArray(n))return n;const e=function(t){if(To.has(t[0]))for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return t}(n);return!0===e?e:e.map(n=>t(n))}(n),n}(e)}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\\nand paste the contents of this message in the report.\\nThank you!\\nFilter Expression:\\n${JSON.stringify(e,null,2)}\\n `)}const i=_o(r,null);let s=null;if("error"===i.result)throw new Error(i.value.map(t=>`${t.key}: ${t.message}`).join(", "));s=(t,n,e)=>i.value.evaluate(t,n,{},e);let o=null,a=null;if(r!==e){const t=_o(e,null);if("error"===t.result)throw new Error(t.value.map(t=>`${t.key}: ${t.message}`).join(", "));o=(n,e,r,i,s)=>t.value.evaluate(n,e,{},r,void 0,void 0,i,s),a=!ss(t.value.expression)}return s=s,{filter:s,dynamicFilter:o||void 0,needGeometry:function t(n){if(!Array.isArray(n))return!1;if("within"===n[0])return!0;for(let e=1;e<n.length;e++)if(t(n[e]))return!0;return!1}(r),needFeature:!!a}}(t);return n=n&&n.filter,(t,e)=>(No.zoom=e,n&&n(No,t))}}const Vo={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Ro(t,n){Vo.type=n||"number";const e=Uo(t,Vo);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Ho(t){return jo(t)}const Wo={lineWidth:1,lineStrokeWidth:1,lineDx:1,lineDy:1,lineOpacity:1,linePatternAnimSpeed:1,markerWidth:1,markerHeight:1,markerDx:1,markerDy:1,markerSpacing:1,markerOpacity:1,markerRotation:1,textWrapWidth:1,textSpacing:1,textSize:1,textHaloRadius:1,textHaloOpacity:1,textDx:1,textDy:1,textOpacity:1,textRotation:1,polygonOpacity:1};function qo(t){return Wo[t]}const Go={markerPlacement:1,markerFile:1,mergeOnProperty:1,markerTextFit:1,markerType:1,markerHorizontalAlignment:1,markerVerticalAlignment:1,markerRotationAlignment:1,markerPitchAlignment:1,markerFillPatternFile:1,markerLinePatternFile:1,textName:1,textPlacement:1,textFaceName:1,textStyle:1,textHorizontalAlignment:1,textVerticalAlignment:1,textRotationAlignment:1,textPitchAlignment:1,lineJoin:1,lineCap:1,linePatternFile:1,polygonPatternFile:1},Bo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Jo(t){return Go[t]?"string":qo(t)?"number":Bo[t]?"array":"color"}var Xo=Object.freeze({__proto__:null,compileStyle:function(t=[]){return function t(n){if(!Array.isArray(n))return t([n]);const e=[];for(let t=0;t<n.length;t++){let r;r=!0===n[t].filter?function(){return!0}:Lo(n[t].filter),e.push(lr({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=lr({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Lo,createExpression:Ro,isExpression:Ho,isInterpolated:qo,getExpressionType:Jo});const Yo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Zo extends Array{push(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Y++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Y&&(this.Y=e)}set(t,n){t>=this.Y&&(this.Y=t+1),this[t]=n}getLength(){return this.Y}setLength(t){this.Y=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Y&&this.setLength(t)}reset(){this.Y=0}}const Ko={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Qo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}}let ta;class na{static createTypedArray(t,n){return ur(t,n)}static getInstance(){return ta}constructor(){this.Z=[],this.Y=0}get(){if(!Yo)return new Qo;const t=this.Z[this.Y]=this.Z[this.Y]||new Proxy(new Zo,Ko);return t.reset(),this.Y++,t}reset(){this.Y=0}}ta=new na;const ea=[],ra={},ia={},sa={},oa=[],aa=na.getInstance();class ua{static isAtlasLoaded(t,n={}){const{iconAtlas:e}=n;return!!(!t||e&&e.positions[t])}static genFnTypes(t){const n={};for(const e in t)if(Ho(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Jo(e);n[r]=Ro(t[e],s),n[i]=(t,e)=>{let i;ra.zoom=t,ia.properties=e;try{i=n[r].evaluateWithoutErrorHandling(ra,ia,sa,null,oa)}catch(t){return null}return i}}else if(br(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();qo(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?y(i)(t,e):i})}return n}constructor(t,n,e){this.options=e;const r=[];this.symbolDef=n,this.symbol=m(n,()=>(r[0]=e.zoom,r)),this.styledVectors=[],this.properties={},this.K=e.fnTypes||ua.genFnTypes(this.symbolDef),br(this.symbolDef.visible)&&(this.tt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.nt(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=Math.pow(2,17)||this.options.positionType===Float32Array}getPositionFormat(){return this.needAltitudeAttribute()?[{type:Int16Array,width:2,name:"aPosition"},{type:Float32Array,width:1,name:"aAltitude"}]:[{type:Int16Array,width:3,name:"aPosition"}]}fillPosition(t,n,e,r){this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Dr(ea,n,e,r),t.aPosition.push(ea[0],ea[1],ea[2]))}nt(t){if(!t.length)return t;const n="__fea_idx".trim();let e,r=0,i=t[r];for(;!i.geometry;)r++,i=t[r];if(Array.isArray(i.geometry)&&i.properties){let n=i.geometry[0];for(;Array.isArray(n);)n=n[0];n instanceof Ut&&(e=t)}if(!e)if(e=[],Array.isArray(i.geometry))for(let n=0;n<t.length;n++){const r=lr({},t[n]);e.push(hr(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=He(i);for(let t=0;t<s.length;t++){const r=s[t];r[n]=i[n],e.push(r)}}if(this.maxPosZ=0,!this.options.forceAltitudeAttribute){const t="line"===this.symbolDef.textPlacement;let n=0,r=!1;const{textPitchAlignmentFn:i}=this.K;!i&&t&&"map"===this.symbolDef.textPitchAlignment&&(r=!0);for(let s=0;s<e.length;s++){const o=la(e[s]&&e[s].geometry);if(o>n&&(n=o),t&&!r&&i&&e[s].properties){const t=i(null,e[s].properties);"map"===t&&(r=t)}}this.hasMapPitchAlign=r,this.maxPosZ=n}const s=this.options.order;if(s){const t=[];for(let n=0;n<s.length;n++)s[n]&&t.push(Lo(s[n]));e=e.sort((n,e)=>{const r=t.length;let i=-1,s=-1;for(let o=0;o<r&&(t[o](n)&&(i=o),t[o](e)&&(s=o),!(i>=0&&i<r&&s>=0&&s<r));o++);return i-s})}return e}load(t=1){const n="__fea_idx".trim(),e="_debug_info".trim(),r=this.K,i=this.styledVectors;this.count=0;const s=this.features;if(!s||!s.length)return Promise.resolve(null);const o={},a={},u={zoom:this.options.zoom,isVector3D:!!this.options.center},h=[],l=m(this.symbolDef,()=>(h[0]=u.zoom,h));let c=0,f=s.length;const d=this.options.debugIndex;try{for(;c<f;c++){const t=s[c];if(!t||!t.geometry)continue;if(fr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const h=this.createStyledVector(t,l,r,u,o,a);h&&h.feature.geometry&&(h.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(h))}}catch(t){return Promise.reject(t)}return this.options.atlas?Promise.resolve(this.pack(t)):this.loadAtlas(o,a).then(()=>this.pack(t))}loadAtlas(t,n){return new Promise((e,r)=>{this.fetchAtlas(t,n,(t,n)=>{if(t)r(t);else{if(n){const{icons:t,glyphs:e}=n;if(t&&Object.keys(t).length){for(const n in t){const e=t[n],{width:r,height:i,data:s}=e.data;e.data=new Qe({width:r,height:i},s)}this.iconAtlas=new nr(t)}if(e&&Object.keys(e).length){for(const t in e){const n=e[t];for(const t in n){const e=n[t],{width:r,height:i,data:s}=e.bitmap;e.bitmap=new Ke({width:r,height:i},s)}}this.glyphAtlas=new ir(e)}}e({glyphAtlas:this.glyphAtlas,iconAtlas:this.iconAtlas})}})})}fetchAtlas(t,n,e){Object.keys(t).length>0||Object.keys(n).length>0?this.options.requestor(t,n,e):e()}pack(t){if(!this.count)return null;if(null==t)throw new Error("layout scale is undefined");const n=this.createDataPack(this.styledVectors,t);if(!n)return null;n.properties=this.properties,this.empty&&(n.empty=!0);const e=n.buffers;delete n.buffers;const r={data:n,buffers:e};if(this.iconAtlas){const t=r.data.iconAtlas=ha(this.iconAtlas);if(t.glyphMap)for(const n in t.glyphMap)e.push(t.glyphMap[n].data.data.buffer);e.push(r.data.iconAtlas.image.data.buffer)}return this.glyphAtlas&&(r.data.glyphAtlas=ha(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Tr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.et=aa,aa.reset();let r=this.elements=aa.get();const i=this.getFormat(Array.isArray(t[0])?t[0][0].symbol:t[0].symbol),s=this.needAltitudeAttribute()?2:3;for(let t=0;t<i.length;t++)e[i[t].name]=aa.get();let o=aa.get(),a=0;const u=aa.get();let h=0,l=!1,c=!0;const f=new Set;for(let r=0,i=t.length;r<i;r++){if(!t[r].feature.geometry)continue;const i=Array.isArray(t[r])?t[r][0].feature.id:t[r].feature.id;c&&(void 0!==ia.id?f&&(f.has(ia.id)?c=!1:f.add(ia.id)):c=!1),fr(i)&&(Math.abs(i)>h&&(h=Math.abs(i)),i<0&&(l=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.rt(t[r][e],n);else this.rt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),fr(i)&&u.push(i);a=Math.max(a,t[r].featureIdx)}if(this.countOutOfAngle>0&&console.warn("text anchor along line is ignored as anchor\'s line angle is bigger than textMaxAngle."),this.hasElements()&&!r.length)return null;const d=ar(a);o=na.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:or(this.maxPos);const p=this.options.center;if(p&&(p[0]||p[1])){const t=e.aPosition;for(let n=0;n<t.length;n+=s)t[n]-=p[0],t[n+1]-=p[1]}const y=function(t,n){const e={};for(let r=0;r<t.length;r++){const i=t[r],s=i.type,o=i.name;e[o]=s===Array?n[o]:ur(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const v=sr(this.maxIndex);r=na.createTypedArray(r,v),m.push(r.buffer);const g={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.it&&(g.markerPlacement=this.it),this.st&&(g.textPlacement=this.st),u.length){const t=l?or(h):ar(h);g.featureIds=na.createTypedArray(u,t),m.push(g.featureIds.buffer)}else g.featureIds=[];return g.pickingIdIndiceMap=Cr(o,g.indices),g}rt(t,n){this.tt&&!this.tt(this.options.zoom,t.feature.properties)||this.placeVector(t,n,this.formatWidth)}addElements(...t){this.maxIndex=Math.max(this.maxIndex,...t),this.elements.push(...t)}hasElements(){return!0}getAltitude(t){const{altitudeProperty:n,defaultAltitude:e,altitudeScale:r}=this.options;let i=Or(t,n,e);return r&&(i*=r),this.maxAltitude=Math.max(this.maxAltitude,Math.abs(i)),i}getIconAtlasMaxValue(){const t=this.iconAtlas.positions;let n=0;for(const e in t)if(vr(t,e)){const{tl:r,displaySize:i}=t[e],s=Math.max(r[0],r[1],i[0]-1,i[1]-1);s>n&&(n=s)}return n}}function ha(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof nr){n={};for(const e in t.positions){const r=t.positions[e];n[e]={paddedRect:r.paddedRect,pixelRatio:r.pixelRatio,tl:r.tl,br:r.br,displaySize:r.displaySize}}e="rgba"}const r=t.image;return{image:{width:r.width,height:r.height,data:r.data,format:e},glyphMap:t.glyphMap,positions:n}}function la(t){if(!t)return 0;let n=0;if(Array.isArray(t))for(let e=0;e<t.length;e++)if(Array.isArray(t[e])){const r=la(t[e]);r>n&&(n=r)}else{const r=Math.abs(t[e].z||0);r>n&&(n=r)}else{const e=Math.abs(t.z||0);e>n&&(n=e)}return n}function ca(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(cr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=yr(s)?s(r,e):s,d(o[0])){const n=o[0].ot=o[0].ot||JSON.stringify(o[0]);t.ut||(t.ut={}),t.ut[n]||(t.ut[n]=p(o[0])),o[0]=(0,t.ut[n])(r,e)}return o[1]=o[0],o}function fa(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];dr(n[t][1])&&(r=fa(n[t][1])),r>e&&(e=r)}return e}function da(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const pa=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function ya(t,n){return pr(t)?t.replace(pa,(function(t){if(!n)return"";if((t=t.substring(1,t.length-1)).indexOf("|")>0){const e=t.split("|");for(let t=0;t<e.length;t++){const r=n[e[t]];if(!cr(r))return r}return""}const e=n[t];return cr(e)?"":Array.isArray(e)?e.join():e})):t}var ma=Object.freeze({__proto__:null,getSDFFont:da,resolveText:ya,resolveVarNames:function(t){return t.match(pa)},resolveExpVarNames:function t(n,e){if(2!==e.length||"get"!==e[0])for(let r=0;r<e.length;r++)2===e[r].length&&"get"===e[r][0]?n.push(e[r][1]):Array.isArray(e[r])&&t(n,e[r]);else n.push(e[1])}});const va=t=>t>=11904&&t<=12031,ga=t=>t>=12032&&t<=12255,ba=t=>t>=12272&&t<=12287,wa=t=>t>=12288&&t<=12351,Ma=t=>t>=12352&&t<=12447,xa=t=>t>=12448&&t<=12543,Fa=t=>t>=12544&&t<=12591,ka=t=>t>=12704&&t<=12735,Aa=t=>t>=12736&&t<=12783,Pa=t=>t>=12784&&t<=12799,Sa=t=>t>=12800&&t<=13055,_a=t=>t>=13056&&t<=13311,Oa=t=>t>=13312&&t<=19903,Ea=t=>t>=19968&&t<=40959,Ia=t=>t>=40960&&t<=42127,$a=t=>t>=42128&&t<=42191,za=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,Da=t=>t>=65072&&t<=65103,ja=t=>t>=65104&&t<=65135,Ua=t=>t>=65136&&t<=65279,Na=t=>t>=65280&&t<=65519;function La(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||Ua(t))}function Va(t){return!!(746===t||747===t||!(t<4352)&&(ka(t)||Fa(t)||Da(t)&&!(t>=65097&&t<=65103)||za(t)||_a(t)||va(t)||Aa(t)||!(!wa(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Oa(t)||Ea(t)||Sa(t)||(t=>t>=12592&&t<=12687)(t)||(t=>t>=43360&&t<=43391)(t)||(t=>t>=55216&&t<=55295)(t)||(t=>t>=4352&&t<=4607)(t)||(t=>t>=44032&&t<=55215)(t)||Ma(t)||ba(t)||(t=>t>=12688&&t<=12703)(t)||ga(t)||Pa(t)||xa(t)&&12540!==t||!(!Na(t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ja(t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||(t=>t>=5120&&t<=5759)(t)||(t=>t>=6320&&t<=6399)(t)||Ta(t)||(t=>t>=19904&&t<=19967)(t)||Ia(t)||$a(t)))}function Ra(t){return!(Va(t)||function(t){return!!((t=>t>=128&&t<=255)(t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||(t=>t>=8192&&t<=8303)(t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||(t=>t>=8448&&t<=8527)(t)||(t=>t>=8528&&t<=8591)(t)||(t=>t>=8960&&t<=9215)(t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||(t=>t>=9216&&t<=9279)(t)&&9251!==t||(t=>t>=9280&&t<=9311)(t)||(t=>t>=9312&&t<=9471)(t)||(t=>t>=9632&&t<=9727)(t)||(t=>t>=9728&&t<=9983)(t)&&!(t>=9754&&t<=9759)||(t=>t>=11008&&t<=11263)(t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||wa(t)||xa(t)||(t=>t>=57344&&t<=63743)(t)||Da(t)||ja(t)||Na(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ha(t){return t>=1424&&t<=2303||Ca(t)||Ua(t)}const Wa=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function qa(t){for(const n of Wa)if(t>=n[0]&&t<=n[1])return!0;return!1}const Ga={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",ht:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ba(t,n,e,r,i,s,o,a,u,h){let l=t.trim();2===h&&(l=function(t){let n="";for(let e=0;e<t.length;e++){const r=t.charCodeAt(e+1)||null,i=t.charCodeAt(e-1)||null;n+=r&&Ra(r)&&!Ga[t[e+1]]||i&&Ra(i)&&!Ga[t[e-1]]||!Ga[t[e]]?t[e]:Ga[t[e]]}return n}(l));const c=[],f={positionedGlyphs:c,text:l,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:h};let d;return d=function(t,n){const e=[];let r=0;for(let i=0;i<n.length;i++){const s=n[i];e.push(t.substring(r,s)),r=s}return r<t.length&&e.push(t.substring(r,t.length)),e}(l,function(t,n,e,r){if(!e)return[];if(!t)return[];const i=[],s=function(t,n,e,r){let i=0;for(let e=0;e<t.length;e++){const s=r[t.charCodeAt(e)];s&&(i+=s.metrics.advance+n)}return i/Math.max(1,Math.ceil(i/e))}(t,n,e,r);let o=0;for(let e=0;e<t.length;e++){const u=t.charCodeAt(e),h=r[u];h&&!Ja[u]&&(o+=h.metrics.advance+n),e<t.length-1&&(Xa[u]||!((a=u)<11904)&&(ka(a)||Fa(a)||Da(a)||za(a)||_a(a)||va(a)||Aa(a)||wa(a)||Oa(a)||Ea(a)||Sa(a)||Na(a)||Ma(a)||ba(a)||ga(a)||Pa(a)||xa(a)||Ta(a)||$a(a)||Ia(a)))&&i.push(Ka(e+1,o,s,i,Za(u,t.charCodeAt(e+1)),!1))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Ka(t.length,o,s,i,0,!0))}(l,o,e,n)),function(t,n,e,r,i,s,o,a,u,h){let l=0,c=0,f=0;const d=t.positionedGlyphs,p="right"===s?1:"left"===s?0:.5;for(let t=0;t<e.length;t++){let i=e[t];if(i=i.trim(),!i.length){c-=r;continue}const s=d.length;for(let t=0;t<i.length;t++){const e=i.charCodeAt(t),r=n[e];r&&(Va(e)&&1!==o?(32!==e&&d.push({glyph:e,x:l,y:0,vertical:!0}),l+=u+a):(32!==e&&d.push({glyph:e,x:l,y:c,vertical:!1}),l+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(l-a,f),tu(d,n,s,d.length-1,p)),l=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Qa(i,void 0);!function(t,n,e,r,i,s,o){const a=(n-e)*i,u=-(-r*o+.5)*s;if(a||u)for(let n=0;n<t.length;n++)t[n].x+=a,t[n].y+=u}(d,p,y,m,f,r,e.length);const v=e.length*r;t.top+=-m*v,t.bottom=t.top+v,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,h,o,u),!!c.length&&f}const Ja={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Xa={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 Ya(t,n,e,r){const i=Math.pow(t-n,2);return r?t<n?i/2:2*i:i+Math.abs(e)*e}function Za(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Ka(t,n,e,r,i,s){let o=null,a=Ya(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],h=Ya(n-u.x,e,i,s)+u.badness;h<=a&&(o=u,a=h)}return{index:t,x:n,priorBreak:o,badness:a}}function Qa(t,n){let e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=n?1:0;break;case"left":case"top-left":case"bottom-left":e=n?0:1}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=n?1:0;break;case"top":case"top-right":case"top-left":r=n?0:1}return{horizontalAlign:e,verticalAlign:r}}function tu(t,n,e,r,i){if(!i)return;const s=n[t[r].glyph];if(s){const n=(t[r].x+s.metrics.advance)*i;if(!n)return;for(let i=e;i<=r;i++)t[i].x-=n}}function nu(t){if(!function(t){for(const n of t)if(Ha(n.charCodeAt(0)))return!0;return!1}(t))return t;const n=[],e=[],r=[];let i=0,s=0,o=1,a=1;for(const u of t){const t=u.codePointAt(0);qa(t)?(r.push(u),i++):(o=Ha(t)?-1:1,a!==o?(s=i,e.length&&(a>0&&e.reverse(),n.push(...e)),r.length&&(n.splice(s,0,...r),r.length=0),a=o,e.length=0):r.length&&(e.push(...r),r.length=0),e.push(u),i++)}return r.length&&e.push(...r),e.length&&(a>0&&e.reverse(),n.push(...e)),n.reverse().join("")}const eu=/\\{ *([\\w_]+) *\\}/g;class ru{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.lt=this.ct.bind(this),this.K=r}ct(t,n){return this.feature.properties[n]||"default"}getShape(t,n){if(this.ft)return this.ft;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.K;let a;const u=this.symbol,h=this.getIconAndGlyph(),l=this.feature.properties;if(h&&h.glyph){const{font:t,text:i}=h.glyph;if(""===i)return null;const s=this.size[0]/24,c=24,f=u.textKeepUpright,d="map"===u.textRotationAlignment&&"line"===u.textPlacement&&!u.isIconText,p=n.glyphMap[t],y=iu(e?e(null,l):u.textHorizontalAlignment,r?r(null,l):u.textVerticalAlignment),m=1.2*c,v=function(t){for(let n=0;n<t.length;n++)if(!La(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),g=v&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,l):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ba(i,p,w,m,y,"center",g,b,c,1),v&&d&&f&&(a.vertical=Ba(i,p,w,m,y,"center",g,b,c,2))}else if(h&&h.icon){if(!t.positions[h.icon.url])return null;const n=iu(i?i(null,l):u.markerHorizontalAlignment,s?s(null,l):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Qa(n,e);e?r=1-r:i=1-i;const s=-2048*r,o=-2048*i;return{image:t,top:o,bottom:o+2048,left:s,right:s+2048}}(t.positions[h.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.ft=a,a}getIconAndGlyph(){if(this.iconGlyph)return this.iconGlyph;const{markerFileFn:t,markerTypeFn:n,markerPathFn:e,markerWidthFn:r,markerHeightFn:i,markerFillFn:s,markerFillPatternFileFn:o,markerFillOpacityFn:a,markerTextFitFn:u,markerTextFitPaddingFn:h,markerLineColorFn:l,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:v,markerPathHeightFn:g,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.K,{zoom:F}=this.options,k={},A=this.symbol,P=this.feature.properties,S=t?t(null,P):A.markerFile,_=n?n(null,P):A.markerType,O=S||_||A.markerPath,E=!cr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(cr(n.markerWidth)&&cr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,h=n.markerHeight||0;return dr(u)&&("identity"!==u.type?u=fa(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),dr(u)&&(u="identity"===u.type?i(r,e):fa(u)))),dr(h)&&("identity"!==h.type?h=fa(h):(h=t.markerHeight,t[a]&&(h=t[a](r,e)),dr(h)&&(h="identity"===h.type?s(r,e):fa(h)))),[u,h]}(A,this.symbolDef,P,F,r,i)||[0,0];let t=A.markerTextFit;if(u&&(t=u(F,P)),t&&A.text&&"none"!==t){const n=A.text.textSize;let e=A.text.textName;d(e)&&(e=p(e)(F,P));const r=ya(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!A.text[e]&&(A.text[i]=p(n),A.text[e]=(t,n)=>{const e=A.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ca(A.text,A.text,P,F);if("width"!==t&&"both"!==t||(I[0]=s[0]*r.length),"height"!==t&&"both"!==t||(I[1]=s[1]),s[0]&&s[1]){let t=A.markerTextFitPadding||[0,0,0,0];h&&(t=h(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ca(A,this.symbolDef,P,F)),!I)return k;if(I[0]=Math.ceil(I[0]),I[1]=Math.ceil(I[1]),this.size=I,O&&I[0]>=0&&I[1]>=0){let t;if(_){const n={};if(n.markerType=_,"path"===_&&(n.markerPath=e?e(null,P):A.markerPath,n.markerPathWidth=v?v(null,P):A.markerPathWidth,n.markerPathHeight=g?g(null,P):A.markerPathHeight),r){const t=r(null,P);cr(t)||(n.markerWidth=t)}else A.markerWidth>=0&&(n.markerWidth=A.markerWidth);if(i){const t=i(null,P);cr(t)||(n.markerHeight=t)}else A.markerHeight>=0&&(n.markerHeight=A.markerHeight);if(s){const t=s(null,P);cr(t)||(n.markerFill=t)}else A.markerFill&&(n.markerFill=A.markerFill);if(o){const t=o(null,P);cr(t)||(n.markerFillPatternFile=t)}else A.markerFillPatternFile&&(n.markerFillPatternFile=A.markerFillPatternFile);if(a){const t=a(null,P);cr(t)||(n.markerFillOpacity=t)}else A.markerFillOpacity>=0&&(n.markerFillOpacity=A.markerFillOpacity);if(l){const t=l(null,P);cr(t)||(n.markerLineColor=t)}else A.markerLineColor&&(n.markerLineColor=A.markerLineColor);if(c){const t=c(null,P);cr(t)||(n.markerLineWidth=t)}else A.markerLineWidth>=0&&(n.markerLineWidth=A.markerLineWidth);if(f){const t=f(null,P);cr(t)||(n.markerLineOpacity=t)}else A.markerLineOpacity>=0&&(n.markerLineOpacity=A.markerLineOpacity);if(y){const t=y(null,P);cr(t)||(n.markerLineDasharray=t)}else A.markerLineDasharray&&(n.markerLineDasharray=A.markerLineDasharray);if(m){const t=m(null,P);cr(t)||(n.markerLinePatternFile=t)}else A.markerLinePatternFile&&(n.markerLinePatternFile=A.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(eu,this.lt):A.markerPath?function(t,n,e){if(!t.markerPath)return null;let r=1;const i=function(t){const n={stroke:{stroke:t.markerLineColor,"stroke-width":t.markerLineWidth,"stroke-opacity":t.markerLineOpacity,"stroke-dasharray":null,"stroke-linecap":"butt","stroke-linejoin":"round"},fill:{fill:t.markerFill,"fill-opacity":t.markerFillOpacity}};return 0===n.stroke["stroke-width"]&&(n.stroke["stroke-opacity"]=0),n}(t);fr(t.markerOpacity)&&(r=t.markerOpacity),fr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)vr(i.stroke,t)&&(cr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)vr(i.fill,t)&&(cr(i.fill[t])||(s[t]=i.fill[t]))}const o=Array.isArray(t.markerPath)?t.markerPath:[t.markerPath];let a;const u=[];for(let t=0;t<o.length;t++)a=pr(o[t])?{path:o[t]}:o[t],a=lr({},a,s),a.d=a.path,delete a.path,u.push(a);const h=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&h.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&h.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),h.push(\'preserveAspectRatio="none"\'),n&&h.push(\'width="\'+n+\'"\'),e&&h.push(\'height="\'+e+\'"\'),h.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])vr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",h.push(n)}return h.push("</svg>"),"data:image/svg+xml;base64,"+btoa(h.join(" "))}(A,I[0],I[1]):null;k.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):A.textName;if(t||0===t){const n=da(w?w(null,P):A.textFaceName,M?M(null,P):A.textStyle,x?x(null,P):A.textWeight);let e=ya(t,P);e&&e.length&&(e=nu(e),k.glyph={font:n,text:e})}}return this.iconGlyph=k,k}}function iu(t,n){n&&"middle"!==n||(n="center"),t&&"middle"!==t||(t="center");let e="center"!==n?n:"";return e+="center"!==t?(e.length?"-":"")+t:"",e\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */}function su(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let h,l=!1;for(let t=0;t<u.length-1;t++){let a=u[t],c=u[t+1];a.x<n&&c.x<n||(a.x<n?(o=a,a=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(n-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x<n&&(o=c,c=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(n-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y<e&&c.y<e||(a.y<e?(o=a,a=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),a.z=o.z+(e-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y<e&&(o=c,c=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),c.z=a.z+(e-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),a.x>=r&&c.x>=r||(a.x>=r?(o=a,a=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(r-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x>=r&&(o=c,c=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(r-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y>=i&&c.y>=i||(a.y>=i?(o=a,a=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),a.z=o.z+(i-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y>=i&&(o=c,c=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),c.z=a.z+(i-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),h&&a.equals(h[h.length-1])||(h=[a],s.push(h)),l&&(h.clipped=!0),h.push(c)))))}}return s}class ou extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new ou(this.x,this.y,this.angle,this.segment)}}\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */function au(t,n,e,r,i){if(void 0===n.segment)return!0;let s=n,o=n.segment+1,a=0;for(;a>-e/2;){if(o--,o<0)return!1;a-=t[o].dist(s),s=t[o]}a+=t[o].dist(t[o+1]),o++;const u=[];let h=0;for(;a<e/2;){const n=t[o],e=t[o+1];if(!e)return!1;let s=t[o-1].angleTo(n)-n.angleTo(e);for(s=Math.abs((s+3*Math.PI)%(2*Math.PI)-Math.PI),u.push({distance:a,angleDelta:s}),h+=s;a-u[0].distance>r;)h-=u.shift().angleDelta;if(h>i)return!1;o++,a+=n.dist(e)}return!0}function uu(t,n,e,r,i,s,o,a,u,h,l){const c=function(t,n,e){return t?.6*n*e:0}(r,s,o),f=function(t,n){return Math.max(t?t.right-t.left:0,n?n.right-n.left:0)}(r,i),d=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return n-f*o<n/4&&(n=f*o+n/4),function t(n,e,r,i,s,o,a,u,h,l,c){let f=0;const d=o/2,p=function(t){let n=0;for(let e=0;e<t.length-1;e++)n+=t[e].dist(t[e+1]);return n}(n);let y=0,m=e-r,v=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),g=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=hu(e.x,a.x,b),M=hu(e.y,a.y,b),x=hu(e.z||0,a.z||0,b);if(w>=0&&w<h&&M>=0&&M<h&&m-d>=0&&m+d<=p){const r=new ou(w,M,g,t);r.z=x,l&&(r.axis=[e.y-M,w-e.x],r.angleR=x===(e.z||0)?0:Math.atan(.9*(x-(e.z||0))*c/e.dist(r))),r.line=n,r.T(),!i||au(n,r,o,i,s)?v.push(r):i&&f++}}y+=u}return u||v.length||a||(v=t(n,y/2,r,i,s,o,a,!0,h,l,c)),v.countOutOfAngle=f,v}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,h,l)}function hu(t,n,e){return t*(1-e)+n*e}function lu(t,n){const e=t.length;if(e<=1)return[t];const r=[];let i,s;for(let n=0;n<e;n++){const e=Sr(t[n]);0!==e&&(t[n].area=Math.abs(e),void 0===s&&(s=e<0),s===e<0?(i&&r.push(i),i=[t[n]]):i.push(t[n]))}if(i&&r.push(i),n>1)for(let t=0;t<r.length;t++)r[t].length<=n||(Gn(r[t],n,1,r[t].length-1,cu),r[t]=r[t].slice(0,n));return r}function cu(t,n){return n.area-t.area}function fu(t,n,e){const r=n.distSqr(e);if(0===r)return t.distSqr(n);const i=((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/r;return t.distSqr(i<0?n:i>1?e:e.sub(n).A(i).m(n))}function du(t,n=1,e=!1){let r=1/0,i=1/0,s=-1/0,o=-1/0;const a=t[0];for(let t=0;t<a.length;t++){const n=a[t];(!t||n.x<r)&&(r=n.x),(!t||n.y<i)&&(i=n.y),(!t||n.x>s)&&(s=n.x),(!t||n.y>o)&&(o=n.y)}const u=Math.min(s-r,o-i);let h=u/2;const l=new Yn(null,pu);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)l.push(new yu(n+h,e+h,h,t));let c=function(t){let n=0,e=0,r=0;const i=t[0];for(let t=0,s=i.length,o=s-1;t<s;o=t++){const s=i[t],a=i[o],u=s.x*a.y-a.x*s.y;e+=(s.x+a.x)*u,r+=(s.y+a.y)*u,n+=3*u}return new yu(e/n,r/n,0,t)}(t),f=l.length;for(;l.length;){const r=l.pop();(r.d>c.d||!c.d)&&(c=r,e&&console.log("found best %d after %d probes",Math.round(1e4*r.d)/1e4,f)),r.max-c.d<=n||(h=r.h/2,l.push(new yu(r.p.x-h,r.p.y-h,h,t)),l.push(new yu(r.p.x+h,r.p.y-h,h,t)),l.push(new yu(r.p.x-h,r.p.y+h,h,t)),l.push(new yu(r.p.x+h,r.p.y+h,h,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function pu(t,n){return n.max-t.max}function yu(t,n,e,r){this.p=new Ut(t,n),this.h=e,this.d=function(t,n){let e=!1,r=1/0;for(let i=0;i<n.length;i++){const s=n[i];for(let n=0,i=s.length,o=i-1;n<i;o=n++){const i=s[n],a=s[o];i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(e=!e),r=Math.min(r,fu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function mu(t,n,e,r,i,s,o,a,u,h){const{feature:l,size:c,symbol:f}=t,d=c?24:0,p=i*(c?c[0]/d:1);if("line"===o){const t=[];t.countOutOfAngle=0;let i=l.geometry;s&&(i=su(l.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const l=uu(i[o],a,e,f.isIconText?null:r&&r.vertical||r&&r.horizontal||r,null,d,f.isIconText?1:p,1,s||1/0,u,h);if(f.textPlacement&&!f.isIconText)for(let t=0;t<l.length;t++)l[t].startIndex=n.length/3;if(t.push.apply(t,l),f.textPlacement&&!f.isIconText)for(let t=0;t<i[o].length;t++)n.push(i[o][t].x,i[o][t].y,i[o][t].z||0);t.countOutOfAngle+=l.countOutOfAngle||0}return t}return vu(l,o,s)}function vu(t,n,e,r,i){const s=[];if(3===t.type){const o=lu(t.geometry,0);for(let t=0;t<o.length;t++){const a=o[t];if("vertex"===n)for(let t=0;t<a.length;t++){const n=a[t];for(let o=0;o<n.length;o++)Ir(n[o],e)||(s.push(n[o]),r&&(0===o?gu(n[o],n[o],n[t+1],i):gu(n[o],n[o-1],n[o],i)))}else if("vertex-first"===n){const t=a[0];t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i))}else if("vertex-last"===n||"vertex-firstlast"===n){const t=a[0];if("vertex-firstlast"===n&&t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!Ir(t[t.length-1],e)){const n=t.length-1;s.push(t[n]),r&&gu(t[n],t[n-1],t[n],i)}}else{const t=du(a,16);Ir(t,e)||s.push(t)}}}else if(2===t.type)for(let o=0;o<t.geometry.length;o++){const a=t.geometry[o];if("vertex"===n)for(let t=0;t<a.length;t++)Ir(a[t],e)||(s.push(a[t]),r&&(0===t?gu(a[t],a[t],a[t+1],i):gu(a[t],a[t-1],a[t],i)));else if("vertex-last"===n||"vertex-firstlast"===n){if("vertex-firstlast"!==n||Ir(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!Ir(a[a.length-1],e)){const t=a.length-1;s.push(a[t]),r&&gu(a[t],a[t-1],a[t],i)}}else Ir(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i))}else if(1===t.type)for(let n=0;n<t.geometry.length;n++){const i=t.geometry[n];for(let t=0;t<i.length;t++){const n=i[t];Ir(n,e)||(r&&(n.xRotation=0,n.yRotation=0,n.zRotation=0),s.push(n))}}return s}function gu(t,n,e,r){if(t.xRotation||t.yRotation||t.zRotation)return t;const i=e.x-n.x,s=n.y-e.y,o=(e.z-n.z)*r,a=Math.atan2(s,i);t.zRotation=a;const u=Math.atan2(o,Math.sqrt(i*i+s*s));return t.xyRotation=u,t}function bu(t,n){const e={},r={},i=[];let s=0;function o(n){i.push(t[n]),s++}function a(t,n,e){const s=r[t];return delete r[t],r[n]=s,i[s].geometry[0].pop(),i[s].geometry[0]=i[s].geometry[0].concat(e[0]),s}function u(t,n,r){const s=e[n];return delete e[n],e[t]=s,i[s].geometry[0].shift(),i[s].geometry[0]=r[0].concat(i[s].geometry[0]),s}function h(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let l=0;l<t.length;l++){const c=t[l],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(l);continue}const p=h(d,f),y=h(d,f,!0);if(p in r&&y in e&&r[p]!==e[y]){const t=u(p,y,f),n=a(p,y,i[t].geometry);delete e[p],delete r[y],r[h(d,i[n].geometry,!0)]=n,i[t].geometry=null}else p in r?a(p,y,f):y in e?u(p,y,f):(o(l),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class wu extends ua{static needMerge(t,n,e){if(!t)return!1;let r="line"===t.textPlacement||"line"===t.markerPlacement;return r||(n.textPlacementFn&&(r="line"===n.textPlacementFn(e)),n.markerPlacementFn&&(r="line"===n.markerPlacementFn(e))),t.mergeOnProperty&&r}static mergeLineFeatures(t,n,e,r){const i="__index".trim();let s=n.textPlacement,o=n.markerPlacement;e.textPlacementFn&&(s=e.textPlacementFn(r)),e.markerPlacementFn&&(o=e.markerPlacementFn(r));const a=function(t,n,e,r,i){const s="__index".trim(),o=ua.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!($r(u=n.mergeOnProperty)||"string"!=typeof u&&(null===u.constructor||u.constructor!==String)||"line"!==r&&"line"!==e))return[{features:t,property:n.mergeOnProperty}];var u;const h=[],l={},c=[];for(let o=0;o<t.length;o++){t[o][s]=o;const u=t[o].properties=t[o].properties||{};u.$layer=t[o].layer,u.$type=t[o].type;let f=e;"line"!==f&&(f=r);const d=a?a(i,u):n.mergeOnProperty;"line"!==f||$r(d)?c.push(t[o]):(void 0===l[d]&&(l[d]=h.length,h.push({features:[],property:d})),h[l[d]].features.push(t[o]))}return c.length&&h.push({features:c}),h}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?bu(a[e].features,a[e].property):t);if(1===n.length)return n[0];{let t=[];for(let e=0;e<n.length;e++)t=t.concat(n[e]);return t.sort((t,n)=>t[i]-n[i]),t}}}static splitPointSymbol(t,n=0){const e=[];if(Array.isArray(t)){const n=t;for(let t=0;t<n.length;t++)n[t]&&e.push(...wu.splitPointSymbol(n[t],t));return e}let r=null,i=null;for(const n in t)0===n.indexOf("marker")?(r=r||{},r[n]=t[n]):0===n.indexOf("text")&&(i=i||{},i[n]=t[n]);return r&&(r.isIconText=!0,t.mergeOnProperty&&(r.mergeOnProperty=t.mergeOnProperty),e.push(r)),i&&(r&&(i.textPlacement=r.markerPlacement,i.textSpacing=r.markerSpacing,i.isIconText=!0),t.mergeOnProperty&&(i.mergeOnProperty=t.mergeOnProperty),e.push(i)),void 0!==t.visible&&(r&&(r.visible=t.visible),i&&(i.visible=t.visible)),r&&(r.markerTextFit&&i&&(r.text={},r.text.textName=i.textName,r.text.textSize=i.textSize),r.index={index:n,type:0}),i&&(i.index={index:n,type:1}),e}static isAtlasLoaded(t,n){const{icon:e,glyph:r}=t,{iconAtlas:i,glyphAtlas:s}=n;if(e&&(!i||!i.positions[e.url]))return!1;if(r){if(!s||!s.positions[r.font])return!1;const t=s.positions[r.font],{text:n}=r;for(let e=0;e<n.length;e++)if(!t[n.charCodeAt(e)])return!1}return!0}constructor(t,n,e){super(t,n,e),this.dt=n.textPlacement,this.K.textPlacementFn&&(this.dt=this.K.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new ru(t,this.symbolDef,n,e,r),a=o.getIconAndGlyph();if(a.icon&&!this.options.atlas){const{url:t,size:n}=a.icon;i[t]||(i[t]=a.icon.size),i[t][0]<n[0]&&(i[t][0]=n[0]),i[t][1]<n[1]&&(i[t][1]=n[1])}if(a.glyph&&!this.options.atlas){const{font:t,text:n}=a.glyph,e=s[t]=s[t]||{};for(let t=0;t<n.length;t++)e[n.charCodeAt(t)]=1;"line"===this.dt&&(s.options={isCharsCompact:!1})}return this.options.allowEmptyPack||a.icon||a.glyph?o:null}getFormat(t){const n=void 0!==t.textName,e=n?this.getPackSDFFormat(t):this.getPackMarkerFormat();n?e.push(...this.pt()):e.push(...this.yt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:h,textRotationFn:l,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.K;return(r||i)&&e.push({type:Uint8Array,width:1,name:"aColorOpacity"}),(s||o)&&e.push({type:Uint8Array,width:1,name:"aPitchAlign"}),(a||u)&&e.push({type:Uint8Array,width:1,name:"aRotationAlign"}),(h||l)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}vt(){return this.hasMapPitchAlign}pt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.K,a=[];return t&&a.push({type:Uint8Array,width:4,name:"aTextFill"}),n&&a.push({type:Uint8Array,width:1,name:"aTextSize"}),e&&a.push({type:Uint8Array,width:4,name:"aTextHaloFill"}),r&&a.push({type:Uint8Array,width:1,name:"aTextHaloRadius"}),i&&a.push({type:Uint8Array,width:1,name:"aTextHaloOpacity"}),s&&a.push({type:Int8Array,width:1,name:"aTextDx"}),o&&a.push({type:Int8Array,width:1,name:"aTextDy"}),a}yt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.K,i=[];return t&&i.push({type:this.options.markerWidthType||Uint8Array,width:1,name:"aMarkerWidth"}),n&&i.push({type:this.options.markerHeightType||Uint8Array,width:1,name:"aMarkerHeight"}),e&&i.push({type:Int8Array,width:1,name:"aMarkerDx"}),r&&i.push({type:Int8Array,width:1,name:"aMarkerDy"}),i}createDataPack(){if(!this.iconAtlas&&!this.glyphAtlas){if(!this.options.allowEmptyPack)return null;this.empty=!0}this.countOutOfAngle=0,this.lineVertex=[];const t=super.createDataPack.apply(this,arguments);return t?(t.lineVertex=new Int16Array(this.lineVertex),t.buffers.push(t.lineVertex.buffer),t):null}placeVector(t,n){const e=t.getShape(this.iconAtlas,this.glyphAtlas);if(!(this.options.allowEmptyPack||e&&e.image||e&&(e.horizontal||e.vertical)))return;const r=this.gt(t,e,n);if(this.countOutOfAngle+=r.countOutOfAngle||0,0===r.length)return;const i=this.data,s=this.needAltitudeAttribute()?2:3;let o=this.data.aPosition.length/s;const a=t.symbol,u=t.feature.properties,h="line"===this.dt&&!a.isIconText,l=void 0!==a.textName,c=l&&h&&function(t){let n=0;for(let e=0;e<t.length;e++)if(Va(t.charAt(e).charCodeAt(0)))n=0;else if(n++,n>=1)return!1;return!0}(t.getIconAndGlyph().glyph.text)?1:0,{textFillFn:f,textSizeFn:p,textHaloFillFn:y,textHaloRadiusFn:m,textHaloOpacityFn:v,textDxFn:g,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:k,textOpacityFn:A,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:z,markerIgnorePlacementFn:C,markerOpacityFn:T}=this.K;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(l){const n=t.getIconAndGlyph().glyph.font;D=function(t,n,e){const r=t.positionedGlyphs,i=[];for(let s=0;s<r.length;s++){const o=r[s],a=e[o.glyph];if(!a)continue;const u=a.rect;if(!u)continue;const h=4,l=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+l,0]:[0,0],d=n?[0,o.y-c]:[o.x+l,o.y-c],p=a.metrics.left-h-l+d[0],y=a.metrics.top-h+d[1],m=p+u.w,v=y+u.h,g=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,v),M=new Ut(m,v);if(n&&o.vertical){const t=new Ut(-l,l),n=-Math.PI/2,e=new Ut(5,0);g._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:g,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,h,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Fr([],j)),p&&(U=p(this.options.zoom,u),$r(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Fr([],N)),m&&(L=m(null,u)),v&&(V=255*v(null,u)),g&&(R=g(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=zr(x(null,u),0,360)*Math.PI/180)}else D=e?function(t){const n=t.image,e=t.top-1/n.pixelRatio,r=t.left-1/n.pixelRatio,i=t.bottom+1/n.pixelRatio,s=t.right+1/n.pixelRatio;let o,a,u,h;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),h=new Ut(r,i),[{tl:o,tr:a,bl:h,br:u,tex:{x:n.tl[0],y:n.tl[1],w:n.displaySize[0],h:n.displaySize[1]},writingMode:void 0,glyphOffset:[0,0]}]}(e):function(){const t=new Ut(0,0),n=new Ut(0,0),e=new Ut(0,0);return[{tl:t,tr:n,bl:new Ut(0,0),br:e,tex:{x:0,y:0,w:0,h:0},writingMode:void 0,glyphOffset:[0,0]}]}(),P&&(W=P(null,u)),$r(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),$r(q)&&(q=D[0].tex.h),_&&(G=_(null,u)),O&&(B=O(null,u)),E&&(J=+("map"===E(null,u))),I&&(X=+("map"===I(null,u))),$&&(Y=zr($(null,u),0,360)*Math.PI/180);d(U)&&(this.dynamicAttrs.aTextSize=1),d(L)&&(this.dynamicAttrs.aTextHaloRadius=1),d(V)&&(this.dynamicAttrs.aTextHaloOpacity=1),d(R)&&(this.dynamicAttrs.aTextDx=1),d(H)&&(this.dynamicAttrs.aTextDy=1),d(W)&&(this.dynamicAttrs.aMarkerWidth=1),d(q)&&(this.dynamicAttrs.aMarkerHeight=1),d(G)&&(this.dynamicAttrs.aMarkerDx=1),d(B)&&(this.dynamicAttrs.aMarkerDy=1),d(J)&&(this.dynamicAttrs.aPitchAlign=1),d(X)&&(this.dynamicAttrs.aRotationAlign=1),d(Y)&&(this.dynamicAttrs.aRotation=1);const Q=z||F;Q&&(Z=Q(null,u)||0);const tt=C||k;let nt;tt&&(K=tt(null,u)||0);const et=A||T;et&&(nt=255*et(this.options.zoom,u));const rt=this.options.EXTENT,it=D.length,{altitudeScale:st,altitudeProperty:ot,defaultAltitude:at}=this.options,{altitude:ut}=Er(t.feature,st,ot,at);for(let t=0;t<r.length;t++){const n=r[t],e=n.z||ut||0;if(rt!==1/0&&Ir(n,rt))continue;const s=n.x,a=n.y,u=D.length;for(let t=0;t<u;t++){const r=D[t],{tl:u,tr:f,bl:d,br:p,tex:y}=r;this.bt(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*d.x,10*d.y,y.x,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.addElements(o,o+1,o+2),this.addElements(o+1,o+2,o+3),o+=4;const m=Math.max(Math.abs(s),Math.abs(a),Math.abs(e));m>this.maxPos&&(this.maxPos=m)}}}bt(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}wt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.vt()&&t.aPitchRotation.push(o[0],o[1],a);const n=i.startIndex;t.aSegment.push(i.segment+n,n,i.line.length),t.aVertical.push(s)}}Mt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m,v){const{textFillFn:g,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:k,textPitchAlignmentFn:A,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:z,markerDyFn:C,markerPitchAlignmentFn:T,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.K;g&&t.aTextFill.push(...n),b&&t.aTextSize.push(e),w&&t.aTextHaloFill.push(...r),M&&t.aTextHaloRadius.push(i),x&&t.aTextHaloOpacity.push(s),F&&t.aTextDx.push(o),k&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(h),z&&t.aMarkerDx.push(l),C&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(A||T)&&t.aPitchAlign.push(d),(D||P)&&t.aRotationAlign.push(p),(j||S)&&t.aRotation.push(9362*y);const V=U||_,R=N||O;(V||R)&&t.aOverlap.push((V?8:0)+4*m+((R?2:0)+v)),i>0&&(this.properties.hasHalo=1)}gt(t,n,e){const{feature:r,symbol:i}=t,s=this.xt(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:h}=this.K,l=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=h?h(this.options.zoom,o):i.textMaxAngle;$r(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.vt();return mu(t,this.lineVertex,c,n,e,f,s,l,p,d)}xt(t,n){let e;return e=this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.dt,this.it||!n.markerPlacement&&!n.isIconText||(this.it=e),!this.dt||n.isIconText||this.st||(this.st=e),e}getPackSDFFormat(t){if("line"!==this.dt||t.isIconText)return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"}];{const t=[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"},{type:Int16Array,width:2,name:"aGlyphOffset"},{type:Uint16Array,width:3,name:"aSegment"},{type:Uint8Array,width:1,name:"aVertical"}];return this.vt()&&t.push({type:Float32Array,width:3,name:"aPitchRotation"}),t}}getPackMarkerFormat(){return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"}]}}class Mu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new Mu(this)}I(){return this.P(this.mag()),this}P(t){return this.x/=t,this.y/=t,this.z/=t,this}C(){var t=this.y;return this.y=this.x,this.x=-t,this}mag(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}add(t){return this.clone().m(t)}sub(t){return this.clone().M(t)}m(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}M(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}equals(t){return this.x===t.x&&this.y===t.y&&this.z===t.z}mult(t){return this.clone().A(t)}A(t){return this.x*=t,this.y*=t,this.z*=t,this}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){var n=t.x-this.x,e=t.y-this.y,r=t.z-this.z;return n*n+e*e+r*r}T(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}}const xu=Math.cos(Math.PI/180*37.5),Fu=Math.pow(2,16)/1,ku=new Ut,Au=new Ut,Pu=new Ut;class Su extends ua{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.K;this.hasGradient=this.symbol.lineGradientProperty,i&&(r=function(t,n,e){for(let r=0;r<t.length;r++)if(e(n,t[r].properties))return!0;return!1}(t,this.options.zoom,i),r&&(this.dasharrayFn=i)),this.hasDasharray=Eu(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getLineResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const{lineWidthFn:t,lineStrokeWidthFn:n,lineStrokeColorFn:e,lineColorFn:r,lineOpacityFn:i,lineDxFn:s,lineDyFn:o,linePatternAnimSpeedFn:a,linePatternGapFn:u}=this.K,h=[...this.getPositionFormat()];if(h.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),h.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&h.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&h.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&h.push({type:Uint8Array,width:4,name:"aColor"}),e&&h.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&h.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&h.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&h.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();h.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&h.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&h.push({type:Int8Array,width:2,name:"aLinePattern"}),h}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:h,lineDyFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,p=this.symbol,y=t.feature,m=y.properties;let v=p.lineJoin||"miter",g=p.lineCap||"butt";if(n&&(v=n(this.options.zoom,m)||"miter"),e&&(g=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),cr(t)&&(t=4),this.feaLineWidth=+t}else this.feaLineWidth=+p.lineWidth;if(i){let t=i(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineHeight=1),cr(t)&&(t=this.feaLineWidth),this.feaLineHeight=+t}else this.feaLineHeight=+p.lineHeight||this.feaLineWidth;if(s){let t=s(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineStrokeWidth=1,t=0),cr(t)&&(t=0),this.feaLineStrokeWidth=t}else this.feaLineStrokeWidth=p.lineStrokeWidth||0;if(a&&(this.feaColor=a(this.options.zoom,m)||[255,255,255,255],d(this.feaColor)?(this.dynamicAttrs.aColor=1,this.feaColor=[0,0,0,0]):this.feaColor=Fr([],this.feaColor)),o&&(this.feaStrokeColor=o(this.options.zoom,m)||[0,0,0,255],d(this.feaStrokeColor)?(this.dynamicAttrs.aStrokeColor=1,this.feaStrokeColor=[0,0,0,0]):this.feaStrokeColor=Fr([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),cr(t)&&(t=1),this.feaOpacity=255*t}if(this.dasharrayFn){let t=this.dasharrayFn(this.options.zoom,m)||[0,0,0,0];if(d(t)&&(this.dynamicAttrs.aDasharray=1,t=[0,0,0,0]),t.length<4){const n=t;1===t.length?t=[n[0],n[0],n[0],n[0]]:2===t.length?t=[n[0],n[1],n[0],n[1]]:3===t.length&&(t=[n[0],n[1],n[2],n[2]])}this.feaDash=t}if(this.dashColorFn){let t=(this.dashColorFn?this.dashColorFn(this.options.zoom,m):this.symbol.lineDashColor)||[0,0,0,0];d(t)&&(this.dynamicAttrs.aDashColor=1,t=[0,0,0,0]),t=Fr([],t),this.feaDashColor=t}if(this.iconAtlas){const n=t.getLineResource(),e=this.iconAtlas.glyphMap[n];if(this.feaTexInfo=this.feaTexInfo||[0,0,0,0],e){const{tl:t,displaySize:e}=this.iconAtlas.positions[n];this.feaTexInfo[0]=t[0]+1,this.feaTexInfo[1]=t[1]+1,this.feaTexInfo[2]=e[0]-3,this.feaTexInfo[3]=e[1]-3}else this.feaTexInfo[0]=this.feaTexInfo[1]=this.feaTexInfo[2]=this.feaTexInfo[3]=0}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDx=t}if(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),cr(t)&&(t=0),0!==t&&(this.properties.hasPatternAnim=1),this.feaPatternAnimSpeed=t}if(f){let t=f(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternGap=1,t=0),cr(t)&&(t=0),this.feaLinePatternGap=t}const b=this.options.EXTENT;let w=y.geometry;if(b!==1/0){w=[];const t=[];for(let n=0;n<y.geometry.length;n++){t[0]=y.geometry[n];const e=su(t,-1,-1,b+1,b+1);if(3===y.type&&e.length>1){const t=e[0],n=e[e.length-1];Cu(t[0],n[n.length-1])&&(e[0]=n.concat(t.slice(1)),e.length=e.length-1)}w.push(...e)}}const M=this.needAltitudeAttribute()?2:3;for(let t=0;t<w.length;t++)this.offset=this.data.aPosition.length/M,this.Ft(w[t],y,v,g,2,1.05)}kt(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}Ft(t,n,e,r,i,s){const o=this.kt()||Eu(this.feaDash)||Eu(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new Mu(t))),this.overscaling=1;const u=this.options.EXTENT;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.prevVertex=null,this.symbol.lineGradientProperty&&n.properties&&fr(n.properties.mapbox_clip_start)&&fr(n.properties.mapbox_clip_end)){this.clipStart=+n.properties.mapbox_clip_start,this.clipEnd=+n.properties.mapbox_clip_end;for(let n=0;n<t.length-1;n++)this.totalDistance+=t[n].dist(t[n+1]);this.updateScaledDistance()}const h=3===n.type&&!t.clipped;let l=t.length;for(;l>=2&&Cu(t[l-1],t[l-2]);)l--;let c=0;for(;c<l-1&&Cu(t[c],t[c+1]);)c++;if(l<(h?3:2))return;"bevel"===e&&(i=1.05);const f=this.overscaling<=16?15*u/(512*this.overscaling):0,d={vertexLength:0,primitiveLength:0,currentNormal:null};let p,y,m,v,g;this.e1=this.e2=-1,h&&(p=t[l-2],g=t[c].sub(p).I().C());for(let n=c;n<l;n++){if(m=n===l-1?h?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;g&&(v=g),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),g=m?m.sub(p).I().C():v,d.dir=y?p.sub(y).I():m.sub(p).I(),v=v||g,d.currentNormal=v;let u=v.add(g);0===u.x&&0===u.y||u.I();const b=v.x*g.x+v.y*g.y,w=u.x*g.x+u.y*g.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<xu&&y&&m,k=v.x*g.y-v.y*g.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).A(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,v,0,0,d),y=n}}const A=y&&m;d.middleVertex=A;let P=A?e:h?"butt":r;if(A&&"round"===P&&(M<s?P="miter":M<=2&&(P="fakeround")),"miter"===P&&M>i&&!a&&(P="bevel"),"bevel"===P&&(M>2&&(P="flipbevel"),M<i&&(P="miter")),y&&this.updateDistance(y,p),"miter"===P)a?(this.addCurrentVertex(p,v,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,g,0,0,d)):(u.A(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=g,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=g.mult(-1);else{const t=M*v.add(g).mag()/v.sub(g).mag();u.C().A(t*(k?-1:1))}this.addCurrentVertex(p,u,0,0,d),this.addCurrentVertex(p,u.mult(-1),0,0,d)}else if("bevel"===P||"fakeround"===P){const t=-Math.sqrt(M*M-1),n=k?t:0,e=k?0:t;if(y&&this.addCurrentVertex(p,v,n,e,d),"fakeround"===P){const t=Math.round(180*x/Math.PI/20);for(let n=1;n<t;n++){let e=n/t;if(.5!==e){const t=e-.5;e+=e*t*(e-1)*((1.0904+b*(b*(3.55645-1.43519*b)-3.2452))*t*t+(.848013+b*(.215638*b-1.06021)))}const r=g.sub(v).A(e).m(v).I().A(k?-1:1);this.addHalfVertex(p,r.x,r.y,!1,k,0,d)}}m&&(d.currentNormal=g,this.addCurrentVertex(p,g,-n,-e,d))}else if("butt"===P)this.addCurrentVertex(p,u,0,0,d);else if("square"===P){const t=y?1:-1;this.addCurrentVertex(p,u,t,t,d)}else"round"===P&&(y&&(this.addCurrentVertex(p,v,0,0,d),this.addCurrentVertex(p,v,1,1,d,!0)),m&&(this.addCurrentVertex(p,g,-1,-1,d,!0),this.addCurrentVertex(p,g,0,0,d)));if(!a&&F&&n<l-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).A(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,g,0,0,d),p=n}}}}addCurrentVertex(t,n,e,r,i,s=!1){const o=n.x+n.y*e,a=n.y-n.x*e,u=n.y*r-n.x,h=-n.y-n.x*r;let l=0,c=0;if(i.middleVertex){ku.x=o,ku.y=a,Au.x=u,Au.y=h;const t=i.currentNormal;if(l=zu(t,ku),0===e&&0===r)c=-l;else{const n=Pu;n.x=t.x,n.y=t.y,n.A(-1),c=zu(n,Au)}}this.addHalfVertex(t,o,a,s,!1,e,i,l),this.addHalfVertex(t,u,h,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>Fu/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,n,e,r,i,s))}addHalfVertex({x:t,y:n,z:e},r,i,s,o,a,u,h){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,h);const l=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,l),u.primitiveLength++),o?this.e2=l:this.e1=l}fillData(t,n,e,r,i,s,o,a,u,h){const{lineWidthFn:l,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:v,linePatternGapFn:g}=this.K;this.fillPosition(t,n,e,r);let b=63*i;b=(Math.sign(b)||1)*((Math.floor(Math.abs(b))>>1<<1)+ +o);let w=63*s;w=(Math.sign(w)||1)*((Math.floor(Math.abs(w))>>1<<1)+ +a),t.aExtrude.push(b,w),(this.iconAtlas||this.hasDasharray)&&t.aExtrude.push(63*h),t.aLinesofar.push(u),l&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),c&&t.aLineStrokeWidth.push(Math.round(2*this.feaLineStrokeWidth)),d&&t.aColor.push(...this.feaColor),f&&t.aStrokeColor.push(...this.feaStrokeColor),p&&t.aOpacity.push(this.feaOpacity),this.dasharrayFn&&t.aDasharray.push(...this.feaDash),this.dashColorFn&&t.aDashColor.push(...this.feaDashColor),this.iconAtlas&&t.aTexInfo.push(...this.feaTexInfo),(y||m)&&t.aLineDxDy.push(this.feaLineDx||0,this.feaLineDy||0),(v||g)&&t.aLinePattern.push(127*(this.feaPatternAnimSpeed||0),10*(this.feaLinePatternGap||0)),this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}addElements(t,n,e){super.addElements(this.offset+t,this.offset+n,this.offset+e)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(Ou(this.data.aPosition,e[r],e[r+1],3,n)||Ou(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}Pt(t){if(t.length<=1)return t;const n=[],e=this.options.EXTENT;let r,i=!0;for(r=0;r<t.length-1;r++){const s=_u(t[r],t[r+1],e);s&&i||(n.push(t[r]),i=s)}return i||n.push(t[r]),n}updateDistance(t,n){if(this.options.isTube){const e=t.dist(n),r=wr(this.options)*(n.z-t.z);this.distance+=Math.sqrt(e*e+r*r)}else this.distance+=t.dist(n);this.updateScaledDistance()}updateScaledDistance(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Fu-1):this.distance}}function _u(t,n,e){return e!==1/0&&(t.x<0&&n.x<0||t.x>e&&n.x>e||t.y<0&&n.y<0||t.y>e&&n.y>e)}function Ou(t,n,e,r,i){if(i===1/0)return!1;const s=Math.floor(.5*t[n*r]),o=Math.floor(.5*t[n*r+1]),a=Math.floor(.5*t[e*r]),u=Math.floor(.5*t[e*r+1]);return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Eu(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Iu=new Ut(0,0),$u=new Ut(0,0);function zu(t,n){const e=t.mag(),r=n.mag();Iu.x=n.x,Iu.y=n.y;const i=t.angleTo($u),s=n.angleTo($u);return Math.sign(s-i)*Math.sqrt(r*r-e*e)}function Cu(t,n){return t.equals(n)&&t.z===n.z}class Tu extends Su{constructor(t,n,e){super(t,n,e),this.St=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.K,e=[{type:this.maxPosZ>=Math.pow(2,15)?Float32Array:Int16Array,width:3,name:"aPosition"},{type:Uint16Array,width:1,name:"aLinesofar"},{type:Uint8Array,width:1,name:"aUp"},{type:Int16Array,width:3,name:"aExtrudedPosition"},{type:Int8Array,width:2,name:"aExtrude"}];return t&&e.push({type:Uint8Array,width:4,name:"aColor"}),n&&e.push({type:Uint8Array,width:1,name:"aLineWidth"}),this.St&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.St){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=Er(n,t,e,r,i,s,o);this.feaAltitude=a,this.feaMinHeight=(a-u)/a*32767,a>this.maxAltitude&&(this.maxAltitude=a)}return super.placeVector(t)}needAltitudeAttribute(){return!1}Ft(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super.Ft(t,n,e,r,i,s);const a=this.data.aPosition.length/3,u=this.data.aPosition.length/3-this.offset;if(3!==n.type&&u>0&&!1!==this.options.side){const t=!1!==this.options.top?1:0,n=t+4;let e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[o*r+3*r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*n+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*(n+3)+t])}super.addElements(t+1,u+1,u),super.addElements(u,u+1,u+2);const r=this.data.aPosition.length/3-this.offset;e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[a*r-r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-i+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-3*i+t])}super.addElements(r,u-3,r+1),super.addElements(u-3,r+2,r+1)}}fillData(t,n,e,r,i,s,o,a,u){const h=!1!==this.options.top,l=!1!==this.options.side,c=this.feaLineWidth||this.symbol.lineWidth/2*(this.options.EXTENT/this.options.tileSize),f=63*i,d=63*s,p=c*i+n,y=c*s+e;this._t(t,n,e,i,s,o,a,u,p,y,f,d),l&&(h&&this._t(t,n,e,i,s,o,a,u,p,y,f,d),this._t(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}_t(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}Ot(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}addElements(t,n,e){const r=!1!==this.options.top,i=!1!==this.options.side,s=(r?1:0)+(i?4:0);if(t*=s,n*=s,this.data.aUp[this.offset+(e*=s)+4]){if(r&&super.addElements(n,t,e),i){const t=r?1:0;super.addElements(n+t,e+t,e+t+2),super.addElements(n+t+1,e+t+1+2,n+t+1+2)}}else if(r&&super.addElements(t,e,n),i){const n=r?1:0;super.addElements(t+n,t+n+2,e+n),super.addElements(t+n+1+2,e+n+1+2,e+n+1)}}createDataPack(t,n){this.maxAltitude=0;const e=super.createDataPack(t,n);if(!e)return e;const{data:r,indices:i}=e;this.getFormat().reduce((t,n)=>(t[n.name]={size:n.width},t),{}).aPickingId={size:1};const{aExtrudedPosition:s,aPosition:o,aLinesofar:a,aUp:u,aExtrude:h,aColor:l,aLineHeight:c,aLineWidth:f}=r,d={},p=re(s,i);let y,m=!0;for(let t=0;t<p.length;t++)p[t]=-p[t],p[t]%1!=0&&(m=!1);if(!1!==this.options.top&&this.symbol.material&&function(t){for(const n in t)if(n.indexOf("Texture")>=0&&t[n])return!0;return!1}(this.symbol.material)&&(y=function(t,n,e){const r=[];for(let i=0;i<t.length;i+=3){const t=n[i/3];r.push(t/256,e[i/3]?1:0)}return r}(s,a,u)),d.aPosition=o,y&&(d.aTexCoord0=new Float32Array(y)),d.aNormal=m?new Int8Array(p):new Float32Array(p),d.aPickingId=r.aPickingId,d.aExtrude=h,l&&(d.aColor=l),f&&(d.aLineWidth=f),c){const t=or(this.maxAltitude);d.aLineHeight=new t(c)}const v=[];for(const t in d)v.push(d[t].buffer);return e.data=d,e.buffers=v,e}}const Du=Math.pow(2,16)/1;class ju extends ua{getFormat(){return[...this.getPositionFormat()]}placeVector(t){const n=t.feature,e=3===n.type,r=n.geometry,i=this.elements;e&&(this.elements=[]);const s=this.needAltitudeAttribute()?2:3;for(let t=0;t<r.length;t++)this.offset=this.data.aPosition.length/s,this.Ft(r[t],n),e&&(this.At(i),this.elements=[]);e&&(this.elements=i)}Ft(t,n){const e=3===n.type;let r=t.length;for(;r>=2&&t[r-1].equals(t[r-2]);)r--;let i,s,o,a=0;for(;a<r-1&&t[a].equals(t[a+1]);)a++;if(!(r<(e?3:2))){this.distance=0,this.vertexLength=0,this.primitiveLength=0,this.e1=this.e2=this.e3=-1,e&&(i=t[r-2]);for(let n=a;n<r;n++)o=e&&n===r-1?t[a+1]:t[n+1],o&&t[n].equals(o)||(i&&(s=i),i=t[n],s&&(this.distance+=i.dist(s)),this.addCurrentVertex(i,this.distance))}}addCurrentVertex(t,n){const e=this.vertexLength++;this.addLineVertex(this.data,t,n),e>=1&&this.addElements(e-1,e),n>Du&&(this.distance=0,this.addCurrentVertex(t,this.distance))}addLineVertex(t,n){this.fillPosition(t,n.x,n.y,n.z||0),this.maxPos=Math.max(this.maxPos,Math.abs(n.x),Math.abs(n.y))}addElements(t,n){super.addElements(this.offset+t,this.offset+n)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)_r(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const Uu=45*Math.PI/100;class Nu extends ua{getFormat(){const{markerFillFn:t}=this.K;let n;return n="line"===this.symbol.markerRotationAlignment?[...this.getPositionFormat(),{type:Float32Array,width:1,name:"aXYRotation"},{type:Float32Array,width:1,name:"aZRotation"}]:[...this.getPositionFormat()],t&&n.push({type:Uint8Array,width:4,name:"aColor"}),n}placeVector(t){const n=t.feature.properties,{markerFillFn:e}=this.K;let r;e&&(r=e(this.options.zoom,n)||[255,255,255,255],d(r)?(this.dynamicAttrs.aColor=1,r=[0,0,0,0]):r=Fr([],r));const i="line"===this.symbol.markerRotationAlignment,s=this.gt(t,this.symbol.markerSpacing||250,this.symbol.markerPlacement||"point",i);for(let t=0;t<s.length;t++){const n=s[t];this.fillPosition(this.data,n.x,n.y,n.z),i&&(this.data.aXYRotation.push(n.xyRotation||0),this.data.aZRotation.push(n.zRotation||0)),r&&this.data.aColor.push(...r);const e=Math.max(Math.abs(n.x),Math.abs(n.y));e>this.maxPos&&(this.maxPos=e)}}gt(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=su(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=uu(e[r],n,Uu,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return vu(i,e,s,r,this.options.altitudeToTileScale)}hasElements(){return!1}}\n/*!\n * from @turf/bboxClip\n * https://github.com/Turfjs/turf\n * MIT LICENSE\n */const Lu=[],Vu=[];function Ru(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Wu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Wu(a=t[o],n)&r))!==s){const t=Hu(i,a,r,n);e.push(void 0!==a.x?new Ut(t[0],t[1]):t)}u&&e.push(a),i=a,s=u}if(!(t=e).length)break}return e}function Hu(t,n,e,r){return Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y,t=Lu,Vu[0]=void 0===n.x?n[0]:n.x,Vu[1]=void 0===n.y?n[1]:n.y,n=Vu,8&e?[t[0]+(n[0]-t[0])*(r[3]-t[1])/(n[1]-t[1]),r[3]]:4&e?[t[0]+(n[0]-t[0])*(r[1]-t[1])/(n[1]-t[1]),r[1]]:2&e?[r[2],t[1]+(n[1]-t[1])*(r[2]-t[0])/(n[0]-t[0])]:1&e?[r[0],t[1]+(n[1]-t[1])*(r[0]-t[0])/(n[0]-t[0])]:null}function Wu(t,n){Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Lu)[0]<n[0]?e|=1:t[0]>n[2]&&(e|=2),t[1]<n[1]?e|=4:t[1]>n[3]&&(e|=8),e}const qu=[0,0,0,0];class Gu extends ua{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getPolygonResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const t=[...this.getPositionFormat()],{polygonFillFn:n,polygonOpacityFn:e,uvScaleFn:r,uvOffsetFn:i}=this.K;if(this.iconAtlas){const n=this.getIconAtlasMaxValue();t.push({type:n>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return n&&t.push({type:Uint8Array,width:4,name:"aColor"}),e&&t.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&t.push({type:Uint16Array,width:2,name:"aUVScale"}),i&&t.push({type:Uint8Array,width:2,name:"aUVOffset"}),t}placeVector(t,n){const e=t.feature;this.Et(e.geometry,e,n)}Et(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:h}=this.K,l=n.properties;o&&(e=o(this.options.zoom,l)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=qu):e=Fr([],e)),a&&(r=a(this.options.zoom,l),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(cr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,l),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(cr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),h&&(s=h(this.options.zoom,l),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(cr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]]));const c=!!this.iconAtlas,f=lu(t,500),p=[0,0],y=[0,0];if(c){const{polygonPatternFileFn:t}=this.K,n=t?t(null,l):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n];p[0]=t.tl[0]+1,p[1]=t.tl[1]+1,y[0]=t.displaySize[0]-3,y[1]=t.displaySize[1]-3}}const m=this.needAltitudeAttribute()?2:3,v=[-1,-1,n.extent+1,n.extent+1],g=this.It=this.It||this.et.get(),b=this.$t=this.$t||this.et.get();for(let t=0;t<f.length;t++){const n=f[t],o=this.data.aPosition.length/m;g.setLength(0),b.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Ru(o,v)),0!==o.length){0!==t&&b.push(g.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;this.fillPosition(this.data,n,a,u),c&&this.data.aTexInfo.push(p[0],p[1],y[0],y[1]),void 0!==e&&this.data.aColor.push(e[0],e[1],e[2],e[3]),void 0!==r&&this.data.aOpacity.push(r),void 0!==i&&this.data.aUVScale.push(i[0],i[1]),void 0!==s&&this.data.aUVOffset.push(s[0],s[1]);const h=Math.abs(n),l=Math.abs(a);h>this.maxPos&&(this.maxPos=h),l>this.maxPos&&(this.maxPos=l),g.push(n,a,u)}}}let a=Ve(g,b,3);if(g.length&&!a.length){const t=[];for(let n=0;n<g.length;n+=3)t[n]=g[n],t[n+1]=g[n+2],t[n+2]=g[n+1];if(a=Ve(t,b,3),!a.length){for(let n=0;n<g.length;n+=3)t[n]=g[n+1],t[n+1]=g[n+2],t[n+2]=g[n];a=Ve(t,b,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Bu=[{type:Int16Array,width:3,name:"aPosition"}];class Ju extends ua{getFormat(){return Bu}placeVector(t,n){const e=this.gt(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Bu[0].width;for(let t=0;t<e.length;t++){const n=e[t];r.aPosition.push(2*n.x+0,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+1,i),r.aPosition.push(2*n.x+0,2*n.y+1,i),this.addElements(s,s+1,s+2),this.addElements(s,s+2,s+3),s+=4;const o=Math.max(Math.abs(2*n.x+1),Math.abs(2*n.y+1));o>this.maxPos&&(this.maxPos=o)}}gt(t,n){const{feature:e,symbol:r}=t,i=this.xt(t,r),s=e.properties,{markerSpacingFn:o}=this.K,a=((o?o(null,s):r.markerSpacing)||250)*n;return mu(t,null,null,n,this.options.EXTENT,i,a)}xt(t,n){return this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Xu extends Su{constructor(t,n,e){(n=lr({},n)).lineJoin="miter",n.lineCap="butt",super(t,n,e),this.options.radialSegments%2==1&&this.options.radialSegments--}getFormat(){const{lineWidthFn:t,lineColorFn:n,lineOpacityFn:e,linePatternAnimSpeedFn:r,linePatternGapFn:i}=this.K,s=[...this.getPositionFormat(),{type:Int8Array,size:4,name:"aTubeNormal"},{type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}];if(this.iconAtlas){s.push({type:Int8Array,width:1,name:"aNormalDistance"});const t=this.getIconAtlasMaxValue();s.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return t&&s.push({type:Uint16Array,width:1,name:"aLineWidth"}),n&&s.push({type:Uint8Array,width:4,name:"aColor"}),e&&s.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&s.push({type:Int8Array,width:1,name:"aLinePatternAnimSpeed"}),i&&s.push({type:Int8Array,width:1,name:"aLinePatternGap"}),s}addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,f=this.options.radialSegments/2,{x:d,y:p,z:y}=o.dir,m=function(t,n,e,r,i,s,o,a){ft(Yu,e,r,i),ft(Zu,s,o,0),mt(Ku,Yu,Zu),pt(Zu,Zu),pt(Ku,Ku),Qu[n]||(Qu[n]=[]);const u=Qu[n];for(var h=0;h<n;h++){const t=Math.PI*h/n,e=1-Math.abs(t-0)/(Math.PI/2);u[h]=u[h]||[],th(Zu,Ku,u[h],1,t,e*(a?-1:1))}return u}(0,f,d,p,y,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,m,i,c,a)}fillTubeElements(t){const n=this.options.radialSegments/2,e=this.needAltitudeAttribute()?2:3,r=this.data.aPosition.length/e;for(let e=0;e<n;e++){const i=e+r-2*n;let s,o;e===n-1&&t?(s=e+r-2*n+1,o=e+r-2*n-2*n+1):(s=e+r+1,o=e+r+1-2*n),super.addElements(e+r-this.offset,s-this.offset,i-this.offset),super.addElements(i-this.offset,s-this.offset,o-this.offset)}}fillData(t,n,e,r,i,s,o,a){const{lineWidthFn:u,lineColorFn:h,lineOpacityFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,d=i.length;for(let s=0;s<d;s++){if(this.fillPosition(t,n,e,r),Mt(i[s],i[s],63),t.aTubeNormal.push(...i[s]),t.aLinesofar.push(o),this.iconAtlas&&(t.aNormalDistance.push(63*a),t.aTexInfo.push(...this.feaTexInfo)),u){const n=Mr(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}h&&t.aColor.push(...this.feaColor),l&&t.aOpacity.push(this.feaOpacity),c&&t.aLinePatternAnimSpeed.push(127*(this.feaPatternAnimSpeed||0)),f&&t.aLinePatternGap.push(10*(this.feaLinePatternGap||0))}this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}createDataPack(t,n){const e=super.createDataPack(t,n);return e&&(e.is2D=!1),e}}const Yu=[],Zu=[],Ku=[],Qu={};function th(t,n,e,r,i,s){return bt(e,r*(Math.cos(i)*t[0]+Math.sin(i)*n[0]),r*(Math.cos(i)*t[1]+Math.sin(i)*n[1]),r*(Math.cos(i)*t[2]+Math.sin(i)*n[2]),s),e}class nh extends Xu{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(rh,e,r,i),ft(ih,s,o,0),mt(sh,rh,ih),pt(ih,ih),pt(sh,sh),_t(eh,t,n);const u=Et(eh)/t,h=Math.atan(n/t);let l=Math.PI/2+(Math.PI/2-h);return oh[0]||(oh[0]=[]),th(ih,sh,oh[0],u,l,a?1:-1),l+=2*h,oh[1]||(oh[1]=[]),th(ih,sh,oh[1],u,l,a?1:-1),oh}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,y,i,c,a)}}const eh=[],rh=[],ih=[],sh=[],oh=[];class ah{constructor(t){this.max=t,this.reset()}reset(){return this.data={},this.order=[],this}clear(){this.reset()}add(t,n){return this.has(t)?(this.order.splice(this.order.indexOf(t),1),this.data[t]=n,this.order.push(t)):(this.data[t]=n,this.order.push(t),this.order.length>this.max&&this.getAndRemove(this.order[0])),this}has(t){return t in this.data}keys(){return this.order}getAndRemove(t){if(!this.has(t))return null;const n=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),n}get(t){return this.has(t)?this.data[t]:null}remove(t){return this.has(t)?(delete this.data[t],this.order.splice(this.order.indexOf(t),1),this):this}setMaxSize(t){for(this.max=t;this.order.length>this.max;)this.getAndRemove(this.order[0]);return this}}\n/*!\n * based on @mapbox/tiny-sdf\n * https://github.com/mapbox/tiny-sdf\n * @License BSD 2-Clause\n */var uh=1e20;function hh(t,n,e,r,i,s,o){this.fontSize=t||24,this.buffer=void 0===n?3:n,this.cutoff=r||.25,this.fontFamily=i||"sans-serif",this.fontWeight=s||"normal",this.fontStyle=o||"normal",this.radius=e||8;var a=this.size=this.fontSize+2*this.buffer;this.canvas="undefined"==typeof document?new OffscreenCanvas(a,a):document.createElement("canvas"),this.canvas.width=this.canvas.height=a,this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),this.ctx.font=this.fontStyle+" "+this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a),this.middle=Math.round(a/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function lh(t,n,e,r,i,s){for(var o=0;o<n;o++)ch(t,o,n,e,r,i,s);for(var a=0;a<e;a++)ch(t,a*n,1,n,r,i,s)}function ch(t,n,e,r,i,s,o){var a,u,h,l;for(s[0]=0,o[0]=-uh,o[1]=uh,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,h=0;a<r;a++){do{h=(i[a]-i[l=s[u]]+a*a-l*l)/(a-l)/2}while(h<=o[u]&&--u>-1);s[++u]=a,o[u]=h,o[u+1]=uh}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[l=s[u]]+(a-l)*(a-l)}}hh.prototype.draw=function(t,n,e){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.textBaseline="top",this.ctx.fillText(t,this.buffer,this.buffer);for(var r=this.ctx.getImageData(0,0,n,e),i=new Uint8ClampedArray(n*e),s=0;s<n*e;s++){var o=r.data[4*s+3]/255;this.gridOuter[s]=1===o?0:0===o?uh:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?uh:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(lh(this.gridOuter,n,e,this.f,this.v,this.z),lh(this.gridInner,n,e,this.f,this.v,this.z),s=0;s<n*e;s++){var a=Math.sqrt(this.gridOuter[s])-Math.sqrt(this.gridInner[s]);i[s]=Math.round(255-255*(a/this.radius+this.cutoff))}return i};let fh=0;class dh{constructor(t,n=15,e){this.entries={},this.zt={},this.Ct=new ah(2048,(function(){})),this.Tt=t,this.Dt=n,this.jt=e}getGlyphs(t,n){if(!t||!Object.keys(t).length)return void n(null,{glyphs:null});const e=this.entries,r=t.options;let i=!0;r&&(i=!1!==r.isCharsCompact),i=i||this.jt;const s=(r,s,a)=>{let u=0,h=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const l in t[n]){if(h++,h<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!Va(+l),f=n+":"+l+":"+c;let d;if(this.Ct.has(f)?d=this.Ct.get(f):(d=this.Ut(e[n],t,l,c),this.Ct.add(f,d),u++),d=ph(d),s[n][l]=d,a.push(d.bitmap.data.buffer),this.Tt&&u>this.Dt)return void this.Tt(o(h,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ut(t,n,e,r){const i=n[0],s=n[1],o=n.slice(3).join(" ");let a=t.tinySDF,u="normal"!==i?5:2;const h=r?-1:2;if(!a){let n="400";/bolder/i.test(s)?n="1000":/bold/i.test(s)?n="900":/medium/i.test(s)?n="500":/light/i.test(s)&&(n="200"),a=t.tinySDF=new hh(24,u,8,.25,o,n,i)}const l=String.fromCharCode(e),c=a.ctx.measureText(l),f=Math.round(c.width),d=a.draw(String.fromCharCode(e),f+2*u,24+2*u);if(fh<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+fh++);t&&(t.width=f+2*u,t.height=a.canvas.height,t.getContext("2d").drawImage(a.canvas,0,0))}return{charCode:e,bitmap:{width:f+2*u,height:24+2*u,data:d},metrics:{width:f,height:24,left:1,top:-u,advance:f+u+h}}}}function ph(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:lr({},t.metrics)}}var yh=Object.freeze({__proto__:null,clipPolygon:Ru,calculateSignedArea:Sr,getFeaAltitudeAndHeight:Er,generatePickingIndiceIndex:Cr,convertRTLText:nu,packPosition:Dr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%jr),s=(Math.sign(e)||1)*(Math.abs(e)%jr),o=Math.floor(Math.abs(n)/jr),a=Math.floor(Math.abs(e)/jr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Ur+r,t},convertGeometry:hr,getPosArrayType:or,getUnsignedArrayType:ar,getIndexArrayType:sr});const mh={},vh={},gh=[];Object.freeze({__proto__:null,loadSymbolFnTypes:function t(n,e){if(!n)return null;var r=!1;if(Array.isArray(n)){var i,s=[];for(let o=0;o<n.length;o++)(i=t(n[o],e))?(s.push(i),r=!0):s.push(n[o]);return r?s:n}var o={__fn_types_loaded:!0};const a=[];for(const t in n)vr(n,t)&&a.push(t);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,e())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})},h={},l=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Ro(this["_"+t],n));const r=e()[0];h.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(h,mh,vh,null,gh)}catch(t){return null}},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let t=0,e=a.length;t<e;t++){const e=a[t];if(d(n[e]))r=!0,o["_"+e]=n[e],u(e);else if(Ho(n[e])){r=!0;const t=Jo(e);o["_"+e]=n[e],l(e,t)}else o[e]=n[e]}return r?o:n}});const bh={polygonPatternFile:1,markerFile:1,markerPlacement:1,markerSpacing:1,textName:1,textStyle:1,textFaceName:1,textWeight:1,textPlacement:1,textSpacing:1,lineJoin:1,lineCap:1,linePatternFile:1};Object.assign({visible:1,textHorizontalAlignment:1,textVerticalAlignment:1,textWrapWidth:1,markerHorizontalAlignment:1,markerVerticalAlignment:1},bh),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},bh);new Float32Array([-1e12])[0];const wh="maptalks_ombb";function Mh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m){const v=n.length,g=i/3;for(let e=2,r=v;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-o;i+=v;for(let e=2,r=v;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-a;i+=v,t.trySetLength(i+v),t.copyWithin(i,i-2*v,i-v),i+=v,t.trySetLength(i+v),t.copyWithin(i,i-2*v,i-v),i+=v,(e=e||[]).push(v/3);for(let n=0;n<e.length;n++){xh(g+(e[n-1]||0),g+e[n],t,v/3,u,r,h,l,c,f,s,d,p,y,m)}return i}function xh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){const y=s.length;let m,v;for(let o=t,a=n;o<a-1;o++)m=o,v=o+1,i!==1/0&&at(e,m,v,i)||((o-t)%2==1&&(m+=2*r,v+=2*r),p?(s.push(m+r,v,m),s.push(v+r,v,m+r)):(s.push(m+r,m,v),s.push(v,v+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,h,l){let c,f=0,d=0,p=0,y=0;const m=l?[1,3,4]:[2,3,4];for(let l=s.length-1;l>=0;l--){const v=s[l],g=3*v+1,b=3*v+2,w=i[3*v],M=i[g],x=i[b];f||d||(f=Math.max(i[b],i[3*s[l-3]+2]),d=Math.min(i[b],i[3*s[l-3]+2]),c=f-d);let F=p;const k=l%6;0===t?(5===k&&(y=jt(i,s,l,w,M)),F=k===m[0]||k===m[1]||k===m[2]?p:p+y):1===t&&(k===m[0]||k===m[1]||k===m[2]?F=0:5===k?(y=jt(i,s,l,w,M),F=y):F=y);const A=F*u*(1/(100*h))/46.5/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/46.5/a:0:x===f?0:-c/100/46.5/a,r[2*v]=A,r[2*v+1]=P,0===k&&(p+=y)}}(a,u,h,l,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function Fh(t){const n=[t[0]];let e=t[0];for(let r=1;r<t.length;r++)Array.isArray(t[r])?t[r][0]===e[0]&&t[r][1]===e[1]&&t[r][2]===e[2]||n.push(t[r]):t[r].x===e.x&&t[r].y===e.y&&t[r].z===e.z||n.push(t[r]),e=t[r];return n}const kh=na.getInstance();function Ah(t,n,e,r,i,s,o,a,u,h,l,c,f,m){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),kh.reset();const{altitudeScale:v,altitudeProperty:g,defaultAltitude:b,heightProperty:w,minHeightProperty:M,defaultHeight:F,tangent:k,uv:A,uvScale:_,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,top:$,side:z,textureYOrigin:C,topThickness:T}=n,D=!!m,j=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:h,top:l,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:v,textureYOrigin:g,localScale:b,centimeterToPoint:w,positionType:M,res:F,glScale:k,projectionCode:A},S,_){let O=n/t[0].extent;n===1/0&&(O=1);const E=n===1/0,I=_.get(),$=_.get(),z=_.get(),C=_.get(),T=_.get(),D=_.get(),j=_.get(),U=!!d,N=!!l,L=!!h,V=U?_.get():null;function R(t,e,r,i,s,o){let a=e;if(N){const i=Ve(C,r,3);if(0===i.length)return e;if(P(T,C),e+=C.length,o)for(let n=2,e=i.length;n<e;n+=3)i[n]+=t/3,i[n-1]+=t/3,i[n-2]+=t/3;else{let n;for(let e=2,r=i.length;e<r;e+=3)n=i[e-1],i[e-1]=i[e]+t/3,i[e]=n+t/3,i[e-2]+=t/3}P(D,i),U&&Tt(y||0,t,e,V,T,f,w,b,p[0],p[1],s,F,k,A,u),c>0&&!L&&(e=Mh(T,C,r,D,e,V,0,c,n,U,m||0,v||0,g,p,b,w,o)),j.setLength(e/3),j.fill(1,a/3,e/3)}if(L){N&&(c=0),a=e,e=Mh(T,C,r,D,e,V,c,i,n,U,m||0,v||0,g,p,b,w,o),j.setLength(e/3);const t=C.length/3;j.fill(1,a/3,a/3+t),j.fill(0,a/3+t,a/3+2*t),j.fill(1,a/3+2*t,a/3+3*t),j.fill(0,a/3+3*t,e/3)}return e}let H=0,W=0;const q=[-1,-1,n+1,n+1];let G=0,B=t.length;x(S)&&(G=S,B=S+1);let J=0,X=!1;const Y=_.get();for(;G<B;G++){const u=t[G],h=u.id;x(h)&&(Math.abs(h)>J&&(J=Math.abs(h)),h<0&&(X=!0));const l=u.geometry,c=u.properties[wh];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=yh.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);H=Math.max(Math.abs(d),H);const y=T.length;let m=0,v=W;Y.setLength(0),C.setLength(0);const g=yh.calculateSignedArea(l[0])<0;for(let t=0,e=l.length;t<e;t++){let r=l[t];g&&(r=r.reverse()),r=Fh(r);const i=yh.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],W=R(v,W,Y,p*O,f,E),C.setLength(0),Y.setLength(0),v=W),n!==1/0&&(r=yh.clipPolygon(r,q)),!r.length){t===e-1&&(W=R(v,W,Y,p*O,f,E));continue}const s=r.length;Array.isArray(r[0])?r[0][0]===r[s-1][0]&&r[0][1]===r[s-1][1]||r.push([r[0][0],r[0][1]]):r[0].x===r[s-1].x&&r[0].y===r[s-1].y||r.push(r[0]),i&&Y.push(C.length/3),ot(C,C.length,r,O,d,!1,M),t===e-1&&(W=R(v,W,Y,p*O,f,E))}const b=T.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)$.push(void 0===u[w]?G:u[w]),I.push(G),x(h)&&z.push(h)}const Z=yh.getUnsignedArrayType($.length?$[$.length-1]:0),K={maxAltitude:H,vertices:T,verticeTypes:j,indices:D,pickingIds:na.createTypedArray($,Z),featureIndexes:I};if(z.length){const t=X?yh.getPosArrayType(J):yh.getUnsignedArrayType(J);K.featureIds=na.createTypedArray(z,t)}else K.featureIds=[];return V&&(V.setLength(T.length/3*2),K.uvs=V),K}(t,e,{altitudeScale:v,altitudeProperty:g,defaultAltitude:b||0,heightProperty:w,minHeightProperty:M,defaultHeight:F||0},{center:m,top:$,side:z,topThickness:10*T||0,uv:A||k,uvSize:_?[.5*_[0],.5*_[1]]:[.5,.5],uvOrigin:r,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,textureYOrigin:C,localScale:o,centimeterToPoint:a,positionType:f,res:i,glScale:s,projectionCode:l},c,kh),U=[],N=j.vertices.length/3,L=yh.getIndexArrayType(N),V=na.createTypedArray(j.indices,L);delete j.indices,U.push(V.buffer,j.pickingIds.buffer);const R=k?kh.get():new Float32Array(3*N);R.setLength&&R.setLength(3*N);const H=re(j.vertices,V,R);let W=!0;for(let t=0;t<H.length;t++){D||(H[t]=-H[t]);const n=H[t]%1;1-Math.abs(n)>1e-6?W=!1:0!==n&&(H[t]=Math.round(H[t]))}if(j.normals=H,k){let t=kh.get();t.setLength(4*N),t=function(t,n,e,r,i){const s=t.length/3,o=i||new Array(4*s),a=[],u=[];for(let t=0;t<s;t++)a[t]=[0,0,0],u[t]=[0,0,0];const h=[0,0,0],l=[0,0,0],c=[0,0,0],f=[0,0],d=[0,0],p=[0,0],y=[0,0,0],m=[0,0,0];function v(n,r,i){fe(h,t,3*n),fe(l,t,3*r),fe(c,t,3*i),de(f,e,2*n),de(d,e,2*r),de(p,e,2*i);const s=l[0]-h[0],o=c[0]-h[0],v=l[1]-h[1],g=c[1]-h[1],b=l[2]-h[2],w=c[2]-h[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],k=p[1]-f[1],A=1/(M*k-x*F);ft(y,(k*s-F*o)*A,(k*v-F*g)*A,(k*b-F*w)*A),ft(m,(M*o-x*s)*A,(M*g-x*v)*A,(M*w-x*b)*A),dt(a[n],a[n],y),dt(a[r],a[r],y),dt(a[i],a[i],y),dt(u[n],u[n],m),dt(u[r],u[r],m),dt(u[i],u[i],m)}for(let t=0,n=r.length;t<n;t+=3)v(r[t+0],r[t+1],r[t+2]);const g=[],b=[],w=[],M=[];let x,F,k;function A(t){fe(w,n,3*t),ct(M,w),F=a[t],ct(g,F),vt(g,g,function(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t}(w,w,yt(w,F))),pt(g,g),mt(b,M,F),k=yt(b,u[t]),x=k<0?-1:1,o[4*t]=g[0],o[4*t+1]=g[1],o[4*t+2]=g[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)A(r[t+0]),A(r[t+1]),A(r[t+2]);return o}(j.vertices,j.normals,j.uvs,V,t),t=function(t,n){const e=new Float32Array(n.length),r=[],i=[],s=[];for(let o=0;o<n.length;o+=4){const a=o/4*3;ft(i,t[a]||0,t[a+1]||0,t[a+2]||0),bt(r,n[o]||0,n[o+1]||0,n[o+2]||0,n[o+3]||0),ne(s,i,r),gt(e.subarray(o,o+4),s)}return e}(j.normals,t),j.tangents=t,U.push(t.buffer),delete j.normals}if(j.normals&&(W&&(j.normals=na.createTypedArray(j.normals,Int8Array)),U.push(j.normals.buffer)),j.uvs){const t=j.uvs;j.uvs=na.createTypedArray(t,Float32Array),U.push(j.uvs.buffer)}if(m){const t=j.vertices;for(let n=0;n<t.length;n+=3)t[n]-=m[0],t[n+1]-=m[1]}const q=f||yh.getPosArrayType(Math.max(512,j.maxAltitude)),G=function(t,n,e,r){const i={},s={};if(S(n.polygonFill)){let o=y(n.polygonFill);const a=new Uint8Array(4*r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aColor=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,Pr.normalizeColor(Ph,h),a[4*n]=Ph[0],a[4*n+1]=Ph[1],a[4*n+2]=Ph[2],a[4*n+3]=Ph[3]}s.aColor=a}if(S(n.polygonOpacity)){let o=p(n.polygonOpacity);const a=new Uint8Array(r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aOpacity=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*h}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,u,h,j.featureIndexes),B=function(t,n,e,r,i){const s=[[],[]],o=S(r.topPolygonFill),a=S(r.bottomPolygonFill),u=[255,255,255,255];if(o||a){let h=o&&y(r.topPolygonFill),l=a&&y(r.bottomPolygonFill),c=null,f=null,p=null,m=null;for(let r=0;r<n.length;r++){if(1===t[r]&&!o||0===t[r]&&!a)continue;const v=1===t[r];if(v&&n[r]===c){t[r]=p;continue}if(!v&&n[r]===f){t[r]=m;continue}const g=e[n[r]],b=g.properties||{};b.$layer=g.layer,b.$type=g.type;let w=v?h:l,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,Pr.normalizeColor(Ph,M),wt(Ph,Ph,u);let x=Sh(s,Ph);x<0&&(x=s.length,s.push(gt([],Ph))),t[r]=x,v?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(j.verticeTypes,j.featureIndexes,t,u,h),J={data:{data:{aVertexColorType:B.length<=252?na.createTypedArray(j.verticeTypes,Uint8Array):na.createTypedArray(j.verticeTypes,Uint16Array),aPosition:na.createTypedArray(j.vertices,q),aNormal:j.normals,aTexCoord0:j.uvs,aTangent:j.tangents,aPickingId:j.pickingIds},indices:V,properties:{maxAltitude:j.maxAltitude},dynamicAttributes:G.dynamicAttributes,vertexColors:B},buffers:U};return j.featureIds.length?(J.data.featureIds=j.featureIds,U.push(J.data.featureIds.buffer)):J.data.featureIds=[],G.aColor&&(J.data.data.aColor=G.aColor,J.buffers.push(G.aColor.buffer)),G.aOpacity&&(J.data.data.aOpacity=G.aOpacity,J.buffers.push(G.aOpacity.buffer)),J.buffers.push(J.data.data.aPosition.buffer),J.data.pickingIdIndiceMap=yh.generatePickingIndiceIndex(J.data.data.aPickingId,J.data.indices),J}const Ph=[];function Sh(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function _h(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:h,bottom:l}){const c=l,f=n/t[0].extent,p=2*function(t,n){let e=0;for(let r=0,i=t.length;r<i;r++){const i=t[r];if(x(i.geometry[0][0])){const t=3*i.geometry.length;e+=n?2*t-6:t}else for(let t=0,r=i.geometry.length;t<r;t++){let r=3*i.geometry[t].length;3===i.type&&(r-=3),e+=n?2*r-6:r}}return e}(t)+3*t.length*2,y=[],m=new Int16Array(p),v=new Uint8Array(m.length/3*4);d(e)&&(e=Xo.compileFilter(e));const g=[];function b(t,e,r){const i=e-t,s=m.subarray(t,e),o=m.subarray(e,e+i);o.set(s);for(let t=2,n=o.length;t<n;t+=3)o[t]=s[t]-r;const a=t/3,u=i/3;let h,l;for(let t=a,e=u+a;t<e;t++)t<e-1?(h=t,l=t+1):(h=t,l=a),at(m,h,l,n)||(g.push(h,l),c&&g.push(h+u,l+u),Oh(m,h,n)||g.push(h,h+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),k=[];for(let n=0,l=t.length;n<l;n++){const l=t[n],c=l.geometry;if(e){let t;t="function"==typeof e?e(l&&l.properties):e,Pr.normalizeColor(k,t)}else ft(k,255,255,255);const d=w/3*4,{altitude:p,height:x}=yh.getFeaAltitudeAndHeight(l,i,s,o,a,h,u);M=Math.max(Math.abs(p),M);let A=w;for(let t=0,n=c.length;t<n;t++){let n=c[t];const e=n.length;n[0][0]===n[e-1][0]&&n[0][1]===n[e-1][1]&&(n=n.slice(0,e-1)),w=ot(m,A,n,f,p),w=b(A,w,x*f),A=w}const P=A/3*4;for(let t=d;t<P;t+=4)v[t]=k[0],v[t+1]=k[1],v[t+2]=k[2],v[t+3]=255*(r||1);const S=g.length-y.length;for(let t=0;t<S;t++)y.push(l[F])}const A=g.reduce((t,n)=>Math.max(t,n),0),P=new(yh.getIndexArrayType(A))(g),S=yh.getUnsignedArrayType(t.length);return{aPosition:new(yh.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:v}}function Oh(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Eh(t,n,e,r){const i=_h(t,n,e.lineColor,e.lineOpacity,r),s=[i.aPosition.buffer,i.indices.buffer,i.aPickingId.buffer],o=i.indices;return delete i.indices,{data:{data:i,indices:o},buffers:s}}let Ih=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),Ih=!0}catch(t){Ih=!1}var $h=Ih;const zh="__original_properties",Ch="__fn-type_properties";class Th{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Nt(n.style),this.requests={},this.Ct=r,this.Lt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.Lt=t.styleCounter,this.Nt(t),n()}updateOptions(t,n){this.options=w(this.options,t),n()}loadTile(t,n){const e=this.loadings,r=t.tileInfo.url,i=this.options.debugTile;if(i){const{x:e,y:r,z:s}=t.tileInfo;let o=!1;for(let t=0;t<i.length;t++)if(e===i[t].x&&r===i[t].y&&s===i[t].z){o=!0;break}if(!o)return void n()}if(e[r])return void e[r].push({context:t,callback:n,ref:this});e[r]=[{context:t,callback:n,ref:this}];const s=this.options.featureIdProperty;this.requests[r]=this.getTileFeatures(t,(n,i,o,a)=>{const u=e[r];if(delete e[r],this.checkIfCanceled(r))return delete this.requests[r],void this.Vt(u,null,{canceled:!0});if(delete this.requests[r],(this.options.debug||s)&&i)for(let n=0;n<i.length;n++)if(this.options.debug&&(i[n]._debug_info={index:n,id:i[n].id,tileId:t.tileInfo.id}),s){const t=k(s)?s[i[n].layer]:s,e=i[n].properties;i[n].id=e&&e[t]||null}if(n)this.Vt(u,n);else if(i&&i.length){if(u)for(let t=0;t<u.length;t++)this.Rt.call(u[t].ref,u[t].context,u[t].callback,r,o,i,a)}else this.Vt(u)})}Rt(t,n,e,r,i,s){this.Ht(r,i,t).then(e=>{e.canceled?n(null,{canceled:!0}):(e.data.style=t.styleCounter,s&&w(e.data,s),n(null,e.data,e.buffers))}).catch(t=>{n(t)})}abortTile(t,n){delete this.requests[t],this.Wt(t),n()}Wt(t){const n=this.loadings[t];if(n)for(let t=0;t<n.length;t++)n[t].callback(null,{canceled:!0});delete this.loadings[t]}Vt(t,n,e){if(t)for(let r=0;r<t.length;r++)t[r].callback(n,e)}checkIfCanceled(t){return!this.requests[t]}onRemove(){this.loadings={},delete this.Ct,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&$h){const r=[];if(t&&Object.keys(t).length){const n=new Promise(n=>{this.upload("fetchIconGlyphs",{icons:t},null,(t,e)=>{n({err:t,iconData:e})})});r.push(n)}if(n&&Object.keys(n).length){const t=new Promise(t=>{this.qt||(this.qt=new dh),this.qt.getGlyphs(n,(n,e)=>{t({err:n,glyphData:e})})});r.push(t)}Promise.all(r).then(t=>{const n={icons:null,glyphs:null};for(let r=0;r<t.length;r++){if(t[r].err)return void e(t[r].err);t[r].iconData?n.icons=t[r].iconData.icons:t[r].glyphData&&(n.glyphs=t[r].glyphData.glyphs)}return n}).then(t=>{e(null,t)})}else this.upload("fetchIconGlyphs",{icons:t,glyphs:n},null,e)}Ht(t,n,e){if(!n.length)return Promise.resolve({data:null,buffers:[]});const{glScale:r,tileInfo:i}=e,s=!this.options.style.style.length&&!this.options.style.featureStyle.length;let o=this.pluginConfig.slice(0);s&&(o=this.Gt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Rh(n,e.tileInfo.z,o[t],a);const u=[],h=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){h.fill(null);let t=0;for(const n in r){let i=0;const s=r[n].values();for(const t of s){let r=h[i];r||(r=Gh(e),h[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(h[n])}else u.push(e)}const l=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,v=[],g={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let k=!1;for(let t=0;t<o.length;t++){x++;const r=o[t];r.type!==M&&(x=0,M=r.type);const a=0===r.type?d:p;if(r.symbol&&!1===r.symbol.visible){a[x]=null;continue}Xh(r.symbol,F,t),k=k||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:h}=this.Bt(c,r.type,r.filter,n,g,t);if(!u.length){a[x]=null;continue}const m=h[h.length-1],A=yh.getIndexArrayType(m);a[x]={styledFeatures:new A(h)},y.push({idx:t,typeIdx:x}),v.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:l,zoom:c,tilePoint:f});if(this.options.debugTile){const t=this.options.debugTile;for(let n=0;n<t.length;n++){const{x:e,y:r,z:s}=t[n];if(i.x===e&&i.y===r&&i.z===s){P.debugIndex=t[n].index;break}}}let S=this.Jt(u,r,P);s&&(S=S.then(t=>{if(!t)return null;if(t.data)t.data.layer=u[0].layer;else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]&&t[n].data&&(t[n].data.layer=u[0].layer);return t})),b.push(S)}return Promise.all(b).then(([e,...r])=>{function i(t,n){if(void 0===t.data.ref&&(t.data.type=o[y[n].idx].renderPlugin.dataConfig.type,t.data.filter=o[y[n].idx].filter.def,t.buffers&&t.buffers.length))for(let n=0;n<t.buffers.length;n++)v.push(t.buffers[n])}if(e!==this.Lt)return{canceled:!0};for(let t=0;t<r.length;t++){if(!r[t])continue;const n=r[t],e=0===o[y[t].idx].type?d:p;if(Array.isArray(n)){const r=[];for(let e=0;e<n.length;e++)n[e]&&(i(n[e],t),(void 0===n[e].data.ref||n[n[e].data.ref])&&r.push(n[e].data));r.length&&(e[y[t].typeIdx].data=r)}else i(n,t),e[y[t].typeIdx].data=n.data}const s={},a=t;if(m.features||m.schema||k){let t,e=!1;for(let r=0,i=n.length;r<i;r++)if(t=n[r],a[t.layer].properties||(a[t.layer].properties=Uh(t.properties)),t&&(m.features||k&&g[r]))if("id"===m.features)s[r]=t.id;else{m.pickingGeometry||delete t.geometry,delete t.extent,delete t.properties.$layer,delete t.properties.$type,delete t.__index;const n=t.originalFeature;if(n){const n=t.properties,e=w({},t.originalFeature);delete n[zh],e.customProps=w({},n),t=e}const i=w({},t);if(!m.features){const i=g[r];for(let r=0;r<i.length;r++){const i=F[r];i&&i.forEach(r=>{const i=n?n.properties:t.properties;i[Ch]||(i[Ch]=new Set),i[Ch].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t];if(n.properties[Ch]){const t=n.properties[Ch];delete n.properties[Ch];for(const e in n.properties)t.has(e)||delete n.properties[e]}}}return{data:{schema:a,data:d,featureData:p,extent:l,features:s},buffers:v}}).catch(t=>{console.error(t)})}Jt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:h,zoom:l,tilePoint:c,centimeterToPoint:f}=e,d=a/o,p=i.type,y=e.debugIndex;let m=w({},i,{EXTENT:a,zoom:l,debugIndex:y,features:this.options.features});if("3d-extrusion"===p){const t=Nh(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode;return Promise.all([Promise.resolve(Ah(r,i,a,c,e.tileInfo.res,u,this.options.tileSize/a,f,s,l,n,y))])}if("3d-wireframe"===p)return Promise.all([Promise.resolve(Eh(r,a,s,i))]);if("point"===p){m=w(m,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:h*a/this.options.tileSize/u});const t=wu.splitPointSymbol(s),n=ua.genFnTypes(t[0]);return wu.needMerge(t[0],n,l)&&(r=wu.mergeLineFeatures(r,t[0],n,l)),Promise.all(t.map((t,e)=>(0===e?m.fnTypes=n:delete m.fnTypes,new wu(r,t,m).load(d))))}if("native-point"===p){const t=h*a/this.options.tileSize/u;return m.altitudeToTileScale=t,Lh(r,s,m,Nu,a/o)}if("line"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:d}),Lh(r,s,m,Su);if("native-line"===p)return Lh(r,s,m,ju);if("fill"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this)}),Lh(r,s,m,Gu);if("line-extrusion"===p){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Nh(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),m=w(m,{tileSize:o,zScale:h,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},m);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(m.side=!0,m.top=!1,t.push(new Tu(r,s,m))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,m).load()])}if("circle"===p)return Lh(r,s,m,Ju);if("round-tube"===p||"square-tube"===p){const t="round-tube"===p?Xu:nh;return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===p?i.radialSegments||8:4,centimeterToPoint:f,tileRatio:d,isTube:!0}),Lh(r,s,m,t)}return Promise.resolve([])}Bt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],h=r.length;for(let l=0;l<h;l++)if((1===n||void 0===r[l].id||!this.styledFeatures[r[l].id])&&((!e.def||"default"===e.def)&&!i[l]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[l],t))){const t=r[l];if(void 0===t[o]&&(t[o]=l),i[l]||(i[l]=[]),i[l].push(s),u.push(t),a.push(l),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Nt(t){const{style:n,featureStyle:e}=t,r={};e.forEach(t=>{Array.isArray(t.id)?(t.id.forEach(t=>{r[t]=1}),t.filter=["in","$id",...t.id]):(r[t.id]=1,t.filter=["==","$id",t.id])});const i=Xo.compileStyle(n);for(let t=0;t<n.length;t++)i[t].filter&&(i[t].filter.def=n[t].filter?n[t].filter.value||n[t].filter:void 0),i[t].type=0;const s=[],o=Xo.compileStyle(e);for(let t=0;t<e.length;t++)o[t].type=1,o[t].filter.def=e[t].filter?e[t].filter.value||e[t].filter:void 0,o[t].renderPlugin&&s.push(o[t]);this.pluginConfig=i,this.featurePlugins=s,this.styledFeatures=r}Gt(t){let n=this.Xt;this.Xt||(n=this.Xt={});const e=["","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon"],r=[];for(const i in t){const s=i;if(!n[i]){const r=[];for(let n=0;n<t[i].types.length;n++){const o=t[i].types[n],a=["all",["==","$layer",s],["==","$type",e[o]]],u={filter:Tn(a),renderPlugin:Dh(o),symbol:jh(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function Dh(t){switch(t){case 1:return{type:"native-point",dataConfig:{type:"native-point",only2D:!0}};case 2:return{type:"native-line",dataConfig:{type:"native-line",only2D:!0}};case 3:return{type:"fill",dataConfig:{type:"fill",only2D:!0}}}return null}function jh(t){switch(t){case 1:return{markerFill:"#f00",markerSize:10};case 2:return{lineColor:"#fff"};case 3:return{polygonFill:"#00f",polygonOpacity:.4}}return null}function Uh(t){if(Array.isArray(t)||!k(t))return{};const n={};for(const e in t){const r=t[e];M(r)?n[e]="string":x(r)?n[e]="number":!0===r||!1===r?n[e]="boolean":Array.isArray(r)?n[e]="array":n[e]="object"}return n}function Nh(t){if(!t)return 0;let n=0;for(const e in t){if(("normalTexture"===e||"bumpTexture"===e)&&t[e])return 2;if(e.indexOf("Texture")>0&&t[e])n=1;else if(k(t[e])){const r=Nh(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Lh(t,n,e,r,i){const s={},o=Array.isArray(n)?n:[n];let a=-1;for(let t=0;t<o.length;t++)s[t]=Vh(o[t]),!s[t]&&o[t]&&-1===a&&(a=t);const u=[];for(let n=0;n<o.length;n++)o[n]&&(o[n].index={index:n},s[n]||n===a?u.push(new r(t,o[n],e).load(i)):u.push({data:{ref:a,symbolIndex:{index:n}}}));return Promise.all(u)}function Vh(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Rh(t,n,e,r){const i=e.customProperties;if(!i)return t;if(i)for(let t=0;t<i.length;t++)i[t].fn=Xo.compileFilter(i[t].filter);for(let e=0;e<i.length;e++)for(let s=0,o=t.length;s<o;s++)if(i[e].fn(t[s],n))for(const t in i[e].properties){const n=i[e].properties[t];A(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Hh={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Wh={get:function(t,n){return n in t?t[n]:t[zh][n]},has:(t,n)=>n in t||n in t[zh]},qh={};function Gh(t){const n={};n.originalFeature=t;const e=new Proxy(n,Hh);return e.properties=new Proxy({},Wh),e.properties[zh]=t.properties||qh,e}function Bh(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Jh=[];function Xh(t,n,e){if(!t)return Jh;for(const r in t){if(!t[r]||!Pr.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Bh(n,e,t[r].property);else{if("lineGradientProperty"===r){Bh(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ma.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Bh(n,e,i[t])}else if(Xo.isExpression(t[r])){const i=[];ma.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Bh(n,e,i[t])}}const i=t[r].stops;if(i&&i.length)for(let t=0;t<i.length;t++)S(i[t][1])&&Bh(n,t,i[t][1].property)}return n[e]}function Yh(t,n){Zh(t.geometry,n)}function Zh(t,n){if(t)switch(t.type){case"Point":Kh(t.coordinates,n);break;case"MultiPoint":case"LineString":Qh(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Qh(t[e],n)}(t.coordinates,n);break;case"Polygon":tl(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)tl(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Zh(t.geometries[r],n)}}function Kh(t,n){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Qh(t,n){for(let e=0,r=t.length;e<r;e++)Kh(t[e],n)}function tl(t,n){t.length&&Qh(t[0],n)}function nl(t,n,e,r,i){!function t(n,e,r,i,s){for(;i>r;){if(i-r>600){var o=i-r+1,a=e-r+1,u=Math.log(o),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(o-h)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*h/o+l)),f=Math.min(i,Math.floor(e+(o-a)*h/o+l));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(el(n,r,e),s(n[i],d)>0&&el(n,r,i);p<y;){for(el(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?el(n,r,y):(y++,el(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||rl)}function el(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function rl(t,n){return t<n?-1:t>n?1:0}class il{constructor(t=9){this.Yt=Math.max(4,t),this.Zt=Math.max(2,Math.ceil(.4*this.Yt)),this.clear()}all(){return this.Kt(this.data,[])}search(t){let n=this.data;const e=[];if(!ml(t,n))return e;const r=this.toBBox,i=[];for(;n;){for(let s=0;s<n.children.length;s++){const o=n.children[s],a=n.leaf?r(o):o;ml(t,a)&&(n.leaf?e.push(o):yl(t,a)?this.Kt(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!ml(t,n))return!1;const e=[];for(;n;){for(let r=0;r<n.children.length;r++){const i=n.children[r],s=n.leaf?this.toBBox(i):i;if(ml(t,s)){if(n.leaf||yl(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.Zt){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.Qt(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.tn(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.nn(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.nn(t,this.data.height-1),this}clear(){return this.data=vl([]),this}remove(t,n){if(!t)return this;let e=this.data;const r=this.toBBox(t),i=[],s=[];let o,a,u;for(;e||i.length;){if(e||(e=i.pop(),a=i[i.length-1],o=s.pop(),u=!0),e.leaf){const r=sl(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.en(i),this}u||e.leaf||!yl(e,r)?a?(o++,e=a.children[o],u=!1):e=null:(i.push(e),s.push(o),o=0,a=e,e=e.children[0])}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}Kt(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}Qt(t,n,e,r){const i=e-n+1;let s,o=this.Yt;if(i<=o)return s=vl(t.slice(n,e+1)),ol(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=vl([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));gl(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);gl(t,i,n,a,this.compareMinY);for(let e=i;e<=n;e+=a){const i=Math.min(e+a-1,n);s.children.push(this.Qt(t,e,i,r-1))}}return ol(s,this.toBBox),s}rn(t,n,e,r){for(;r.push(n),!n.leaf&&r.length-1!==e;){let e,r=1/0,i=1/0;for(let s=0;s<n.children.length;s++){const o=n.children[s],a=cl(o),u=dl(t,o)-a;u<i?(i=u,r=a<r?a:r,e=o):u===i&&a<r&&(r=a,e=o)}n=e||n.children[0]}return n}nn(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.rn(r,this.data,n,i);for(s.children.push(t),ul(s,r);n>=0&&i[n].children.length>this.Yt;)this.sn(i,n),n--;this.an(r,i,n)}sn(t,n){const e=t[n],r=e.children.length,i=this.Zt;this.un(e,i,r);const s=this.hn(e,i,r),o=vl(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,ol(e,this.toBBox),ol(o,this.toBBox),n?t[n-1].children.push(o):this.tn(e,o)}tn(t,n){this.data=vl([t,n]),this.data.height=t.height+1,this.data.leaf=!1,ol(this.data,this.toBBox)}hn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=al(t,0,o,this.toBBox),a=al(t,o,e,this.toBBox),u=pl(n,a),h=cl(n)+cl(a);u<i?(i=u,r=o,s=h<s?h:s):u===i&&h<s&&(s=h,r=o)}return r||e-n}un(t,n,e){const r=t.leaf?this.compareMinX:hl,i=t.leaf?this.compareMinY:ll;this.cn(t,n,e,r)<this.cn(t,n,e,i)&&t.children.sort(r)}cn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=al(t,0,n,i),o=al(t,e-n,e,i);let a=fl(s)+fl(o);for(let r=n;r<e-n;r++){const n=t.children[r];ul(s,t.leaf?i(n):n),a+=fl(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ul(o,t.leaf?i(n):n),a+=fl(o)}return a}an(t,n,e){for(let r=e;r>=0;r--)ul(n[r],t)}en(t){for(let n,e=t.length-1;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children,n.splice(n.indexOf(t[e]),1)):this.clear():ol(t[e],this.toBBox)}}function sl(t,n,e){if(!e)return n.indexOf(t);for(let r=0;r<n.length;r++)if(e(t,n[r]))return r;return-1}function ol(t,n){al(t,0,t.children.length,n,t)}function al(t,n,e,r,i){i||(i=vl(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=n;s<e;s++){const n=t.children[s];ul(i,t.leaf?r(n):n)}return i}function ul(t,n){return t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),t}function hl(t,n){return t.minX-n.minX}function ll(t,n){return t.minY-n.minY}function cl(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function fl(t){return t.maxX-t.minX+(t.maxY-t.minY)}function dl(t,n){return(Math.max(n.maxX,t.maxX)-Math.min(n.minX,t.minX))*(Math.max(n.maxY,t.maxY)-Math.min(n.minY,t.minY))}function pl(t,n){const e=Math.max(t.minX,n.minX),r=Math.max(t.minY,n.minY),i=Math.min(t.maxX,n.maxX),s=Math.min(t.maxY,n.maxY);return Math.max(0,i-e)*Math.max(0,s-r)}function yl(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function ml(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function vl(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function gl(t,n,e,r,i){const s=[n,e];for(;s.length;){if((e=s.pop())-(n=s.pop())<=r)continue;const o=n+Math.ceil((e-n)/r/2)*r;nl(t,o,n,e,i),s.push(n,o,o,e)}}class bl{constructor(t=[],n=wl){if(this.data=t,this.length=this.data.length,this.compare=n,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this.D(t)}push(t){this.data.push(t),this.length++,this.j(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],n=this.data.pop();return this.length--,this.length>0&&(this.data[0]=n,this.D(0)),t}peek(){return this.data[0]}j(t){const{data:n,compare:e}=this,r=n[t];for(;t>0;){const i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r}D(t){const{data:n,compare:e}=this,r=this.length>>1,i=n[t];for(;t<r;){let r=1+(t<<1),s=n[r];const o=r+1;if(o<this.length&&e(n[o],s)<0&&(r=o,s=n[o]),e(s,i)>=0)break;n[t]=s,t=r}n[t]=i}}function wl(t,n){return t<n?-1:t>n?1:0}var Ml={exports:{}},xl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=(r-e)/2,u=0,h=a-1;u<a;h=u++){var l=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*h+0],d=n[e+2*h+1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o},Fl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=r-e,u=0,h=a-1;u<a;h=u++){var l=n[u+e][0],c=n[u+e][1],f=n[h+e][0],d=n[h+e][1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o};Ml.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?Fl(t,n,e,r):xl(t,n,e,r)};var kl=Ml.exports.nested=Fl;Ml.exports.flat=xl;function Al(t,n,e,r,i){let s,o,a,u,h=n[0],l=r[0],c=0,f=0;l>h==l>-h?(s=h,h=n[++c]):(s=l,l=r[++f]);let d=0;if(c<t&&f<e)for(l>h==l>-h?(o=h+s,a=s-(o-h),h=n[++c]):(o=l+s,a=s-(o-l),l=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)l>h==l>-h?(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c]):(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Pl(t){return new Float64Array(t)}const Sl=Pl(4),_l=Pl(8),Ol=Pl(12),El=Pl(16),Il=Pl(4);function $l(t,n,e,r,i,s){const o=(n-s)*(e-i),a=(t-i)*(r-s),u=o-a;if(0===o||0===a||o>0!=a>0)return u;const h=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*h?u:-function(t,n,e,r,i,s,o){let a,u,h,l,c,f,d,p,y,m,v,g,b,w,M,x,F,k;const A=t-i,P=e-i,S=n-s,_=r-s;w=A*_,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=S*P,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Sl[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Sl[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Sl[2]=g-(k-c)+(v-c),Sl[3]=k;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Sl),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-A,a=t-(A+c)+(c-i),c=e-P,h=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,l=r-(_+c)+(c-s),0===a&&0===u&&0===h&&0===l)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=A*l+_*a-(S*h+P*u),O>=E||-O>=E)return O;w=a*_,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=u*P,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const I=Al(4,Sl,4,Il,_l);w=A*l,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=S*h,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const $=Al(I,_l,4,Il,Ol);w=a*l,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=u*h,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const z=Al($,Ol,4,Il,El);return El[z-1]}(t,n,e,r,i,s,h)}function zl(t,n,e){n=Math.max(0,void 0===n?2:n),e=e||0;var r=function(t){for(var n=t[0],e=t[0],r=t[0],i=t[0],s=0;s<t.length;s++){var o=t[s];o[0]<n[0]&&(n=o),o[0]>r[0]&&(r=o),o[1]<e[1]&&(e=o),o[1]>i[1]&&(i=o)}var a=[n,e,r,i],u=a.slice();for(s=0;s<t.length;s++)kl(t[s],a)||u.push(t[s]);return function(t){t.sort(ql);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Nl(n[n.length-2],n[n.length-1],t[e])<=0;)n.pop();n.push(t[e])}for(var r=[],i=t.length-1;i>=0;i--){for(;r.length>=2&&Nl(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),n.pop(),n.concat(r)}(u)}(t),i=new il(16);i.toBBox=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},i.compareMinX=function(t,n){return t[0]-n[0]},i.compareMinY=function(t,n){return t[1]-n[1]},i.load(t);for(var s,o=[],a=0;a<r.length;a++){var u=r[a];i.remove(u),s=Vl(u,s),o.push(s)}var h=new il(16);for(a=0;a<o.length;a++)h.insert(Ll(o[a]));for(var l=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Rl(d,p);if(!(y<c)){var m=y/l;(u=Cl(i,f.prev.p,d,p,f.next.next.p,m,h))&&Math.min(Rl(u,d),Rl(u,p))<=m&&(o.push(f),o.push(Vl(u,f)),i.remove(u),h.remove(f),h.insert(Ll(f)),h.insert(Ll(f.next)))}}f=s;var v=[];do{v.push(f.p),f=f.next}while(f!==s);return v.push(f.p),v}function Cl(t,n,e,r,i,s,o){for(var a=new bl([],Tl),u=t.data;u;){for(var h=0;h<u.children.length;h++){var l=u.children[h],c=u.leaf?Hl(l,e,r):Dl(e,r,l);c>s||a.push({node:l,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Hl(d,n,e),y=Hl(d,r,i);if(f.dist<p&&f.dist<y&&Ul(e,d,o)&&Ul(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function Tl(t,n){return t.dist-n.dist}function Dl(t,n,e){if(jl(t,e)||jl(n,e))return 0;var r=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Wl(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Wl(t[0],t[1],n[0],n[1],e.minX,e.maxY,e.maxX,e.maxY);return 0===o?0:Math.min(r,i,s,o)}function jl(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function Ul(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),h=Math.max(t[0],n[0]),l=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:h,maxY:l}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Nl(r,i,s)>0!=Nl(r,i,o)>0&&Nl(s,o,r)>0!=Nl(s,o,i)>0)return!1;return!0}function Nl(t,n,e){return $l(t[0],t[1],n[0],n[1],e[0],e[1])}function Ll(t){var n=t.p,e=t.next.p;return t.minX=Math.min(n[0],e[0]),t.minY=Math.min(n[1],e[1]),t.maxX=Math.max(n[0],e[0]),t.maxY=Math.max(n[1],e[1]),t}function Vl(t,n){var e={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return n?(e.next=n.next,e.prev=n,n.next.prev=e,n.next=e):(e.prev=e,e.next=e),e}function Rl(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Hl(t,n,e){var r=n[0],i=n[1],s=e[0]-r,o=e[1]-i;if(0!==s||0!==o){var a=((t[0]-r)*s+(t[1]-i)*o)/(s*s+o*o);a>1?(r=e[0],i=e[1]):a>0&&(r+=s*a,i+=o*a)}return(s=t[0]-r)*s+(o=t[1]-i)*o}function Wl(t,n,e,r,i,s,o,a){var u,h,l,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,v=n-s,g=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*v,x=p*m+y*v,F=g*w-b*b,k=F,A=F;0===F?(h=0,k=1,c=x,A=w):(c=g*x-b*M,(h=b*x-w*M)<0?(h=0,c=x,A=w):h>k&&(h=k,c=x+b,A=w)),c<0?(c=0,-M<0?h=0:-M>g?h=k:(h=-M,k=g)):c>A&&(c=A,-M+b<0?h=0:-M+b>g?h=k:(h=-M+b,k=g));var P=(1-(l=0===c?0:c/A))*i+l*o-((1-(u=0===h?0:h/k))*t+u*e),S=(1-l)*s+l*a-((1-u)*n+u*r);return P*P+S*S}function ql(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Gl{constructor(t,n){this.x=t,this.y=n}clone(){return new Gl(this.x,this.y)}normalize(){const t=this.length();this.x/=t,this.y/=t}negate(){this.x=-this.x,this.y=-this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}diff(t){return new Gl(this.x-t.x,this.y-t.y)}distance(t){const n=this.x-t.x,e=this.y-t.y;return Math.sqrt(n*n+e*e)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}orthogonal(){return new Gl(this.y,-this.x)}}function Bl(t,n,e,r){const i=n.x*r.y-n.y*r.x,s=e.x-t.x,o=e.y-t.y,a=(s*r.y-o*r.x)/i;return new Gl(t.x+a*n.x,t.y+a*n.y)}const Jl=[],Xl=[];function Yl(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Xl[e]?(Xl[e][0]=t[r].x,Xl[e][1]=t[r].y):Xl[e]=[t[r].x,t[r].y],n.push(Xl[e]),e++;t=n}try{const n=zl(t,1/0);let e=[1/0,1/0],r=[-1/0,-1/0];for(let t=0;t<n.length;t++)n[t][0]<e[0]&&(e[0]=n[t][0]),n[t][0]>r[0]&&(r[0]=n[t][0]),n[t][1]<e[1]&&(e[1]=n[t][1]),n[t][1]>r[1]&&(r[1]=n[t][1]);const i=[];let s=[],o=0;for(let t=0;t<n.length;t++)t===n.length-1&&n[t][0]===n[0][0]&&n[t][1]===n[0][1]||(zt(i,n[t],"EPSG:3857"),Jl[o]?(Jl[o].x=i[0],Jl[o].y=i[1]):Jl[o]=new Gl(i[0],i[1]),s.push(Jl[o]),o++);yh.calculateSignedArea(s)<0&&(s=s.reverse());const a=function(t){let n,e=Number.MAX_VALUE;const r=function(t,r,i,s,o,a,u,h){var l=Bl(t,r,o,a),c=Bl(i,s,o,a),f=Bl(u,h,t,r),d=Bl(u,h,i,s),p=l.distance(c)*l.distance(f);0!==p&&p<e&&(n=[l,f,d,c],e=p)};var i=[];for(let n=0;n<t.length;n++)i.push(t[(n+1)%t.length].diff(t[n])),i[n].normalize();var s,o,a,u,h=new Gl(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),l=new Gl(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<h.x&&(h.x=c.x,s=n),c.x>l.x&&(l.x=c.x,o=n),c.y<h.y&&(h.y=c.y,u=n),c.y>l.y&&(l.y=c.y,a=n)}var f=new Gl(0,-1),d=new Gl(0,1),p=new Gl(-1,0),y=new Gl(1,0);for(let n=0;n<t.length;n++){var m=[Math.acos(f.dot(i[s])),Math.acos(d.dot(i[o])),Math.acos(p.dot(i[a])),Math.acos(y.dot(i[u]))];switch(m.indexOf(Math.min.apply(Math,m))){case 0:(d=(f=i[s].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),s=(s+1)%t.length;break;case 1:(f=(d=i[o].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),o=(o+1)%t.length;break;case 2:(y=(p=i[a].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),a=(a+1)%t.length;break;case 3:(p=(y=i[u].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),u=(u+1)%t.length}r(t[s],f,t[o],d,t[a],p,t[u],y)}return n}(s);if(!a||4!==a.length)return null;const u=a[0].distance(a[1]),h=a[1].distance(a[2]),l=a.map(t=>[t.x,t.y]);return l.push(+(h>u)),l}catch(t){return null}}const Zl=[];function Kl(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Kl(t[r]):(zt(Zl,t[r],n),t[r][0]=Zl[0],t[r][1]=Zl[1]);return t}class Ql extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),(n=n||{}).extent||(n.extent=8192),this.zoomOffset=0,n.tileSize&&(this.zoomOffset=-function(t){if(Math.log2)return Math.log2(t);const n=Math.log(t)*Math.LOG2E,e=Math.round(n);return Math.abs(e-n)<1e-14?e:n}(n.tileSize/256)),this.setData(n.data,s)}setData(t,n){if(delete this.index,!t)return void n();const e={maxZoom:24,tolerance:this.options.simplifyTolerance,extent:this.options.extent,buffer:x(this.options.tileBuffer)?this.options.tileBuffer:64,hasAltitude:!!this.options.hasAltitude,debug:0,lineMetrics:!0,indexMaxZoom:5,indexMaxPoints:1e5,disableFilter:!0};if(this.options.projection&&(e.projection=this.options.projection,"EPSG:4490"===e.projection&&(e.projection="EPSG:4326")),M(t)&&"{"!=t.substring(0,1)||t.url){const r=t.url?t.url:t;O.getJSON(r,t.url?t:{},(t,i)=>{if(t&&(console.error("Failed to fetch geojson:"+r),n(t)),!i)return void n(null,{extent:null,idMap:{}});let s=i;if(this.options.convertFn){s=new Function("data",this.options.convertFn+"\\nreturn convert(data)")(s)}const o=Array.isArray(s)?s:s.features;this.dn(o);const{first1000:a,idMap:u}=this.pn(o);this.yn(a,u,s,e,n)})}else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features;this.dn(r);let i=r;r&&r.length>1e3&&(i=r.slice(0,1e3)),this.yn(i,null,t,e,n)}}dn(t){if(this.options.generateOMBB&&t)for(let n=0;n<t.length;n++){const e=t[n];if(e&&e.geometry&&e.geometry.coordinates)if("Polygon"===e.geometry.type){const t=e.geometry.coordinates[0];if(!t)continue;const n=Yl(t,t.length);e.properties=e.properties||{},e.properties[wh]=n}else if("MultiPolygon"===e.geometry.type){const t=e.geometry.coordinates;for(let n=0;n<t.length;n++){if(!t[n])continue;const r=t[n][0];if(!r)continue;const i=Yl(r,r.length);e.properties=e.properties||{},e.properties[wh]=e.properties[wh]||[],e.properties[wh][n]=i}}}}yn(t,n,e,r,i){try{const s=t&&t.length?function(t){let n=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];switch(t.type){case"FeatureCollection":const e=t.features.length;for(let r=0;r<e;r++)Yh(t.features[r],n);break;case"Feature":Yh(t,n);break;default:Zh(t,n)}return n}({type:"FeatureCollection",features:t}):null;this.index=function(t,n){return new it(t,n)}(e,this.options.geojsonvt||r),i(null,{extent:s,idMap:n})}catch(t){console.warn(t),i({error:t.message})}}pn(t){const n=[],e={};let r=0;const i=this.options.featureIdProperty;return t&&t.forEach(t=>{!function(t){if(t&&("Feature"!==t.type||t.geometry)){if(x(t.id)||(t.id=r++),i){let n=i;k(i)&&(n=i[t.layer||"0"]),t.id=t.properties[n]}e[t.id]=w({},t),t.geometry?(e[t.id].geometry=w({},t.geometry),e[t.id].geometry.coordinates=null):t.coordinates&&(e[t.id].coordinates=null),n.length<1e3&&n.push(t)}}(t)}),{first1000:n,idMap:e}}getTileFeatures(t,n){const e=t.tileInfo,r=[];if(!this.index)return setTimeout((function(){n({loading:!0})}),1),1;const i=this.index.getTile(e.z+this.zoomOffset,e.x,e.y);if(!i||0===i.features.length)return setTimeout((function(){n(null,r,[])}),1),1;const s=[];for(let t=0,n=i.features.length;t<n;t++){const n=i.features[t];let e=n.layer;void 0===e&&(e="0"),s[e]={types:{}};s[e].types[n.type]=1,n.tags=n.tags||{},n.geometry.converted||(yh.convertGeometry(n),n.geometry.converted=1),r.push({type:n.type,layer:e,id:n.id,geometry:n.geometry,properties:n.tags,extent:this.options.extent})}for(const t in s)s[t].types=Object.keys(s[t].types).map(t=>+t);return setTimeout((function(){n(null,r,s)}),1),1}onRemove(){super.onRemove(),delete this.index}}var tc={\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nread:function(t,n,e,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,h=u>>1,l=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+t[n+c],c+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+t[n+c],c+=f,l-=8);if(0===s)s=1-h;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=h}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,h=8*s-i-1,l=(1<<h)-1,c=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(a=isNaN(n)?1:0,o=l):(o=Math.floor(Math.log(n)/Math.LN2),n*(u=Math.pow(2,-o))<1&&(o--,u*=2),(n+=o+c>=1?f/u:f*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=l?(a=0,o=l):o+c>=1?(a=(n*u-1)*Math.pow(2,i),o+=c):(a=n*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;t[e+d]=255&o,d+=p,o/=256,h-=8);t[e+d-p]|=128*y}},nc=rc,ec=tc;function rc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}rc.Varint=0,rc.Fixed64=1,rc.Bytes=2,rc.Fixed32=5;var ic="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function sc(t){return t.type===rc.Bytes?t.readVarint()+t.pos:t.pos+1}function oc(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function ac(t,n,e){var r=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(7*Math.LN2));e.realloc(r);for(var i=e.pos-1;i>=t;i--)e.buf[i+r]=e.buf[i]}function uc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function yc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function mc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function vc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function gc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function bc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}rc.prototype={destroy:function(){this.buf=null},readFields:function(t,n,e){for(e=e||this.length;this.pos<e;){var r=this.readVarint(),i=r>>3,s=this.pos;this.type=7&r,t(i,n,this),this.pos===s&&this.skip(r)}return n},readMessage:function(t,n){return this.readFields(t,n,this.readVarint()+this.pos)},readFixed32:function(){var t=vc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=bc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=vc(this.buf,this.pos)+4294967296*vc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=vc(this.buf,this.pos)+4294967296*bc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ec.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ec.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var n,e,r=this.buf;return n=127&(e=r[this.pos++]),e<128?n:(n|=(127&(e=r[this.pos++]))<<7,e<128?n:(n|=(127&(e=r[this.pos++]))<<14,e<128?n:(n|=(127&(e=r[this.pos++]))<<21,e<128?n:function(t,n,e){var r,i,s=e.buf;if(i=s[e.pos++],r=(112&i)>>4,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return oc(t,r,n);throw new Error("Expected varint not more than 10 bytes")}(n|=(15&(e=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,n=this.pos;return this.pos=t,t-n>=12&&ic?function(t,n,e){return ic.decode(t.subarray(n,e))}(this.buf,n,t):function(t,n,e){var r="",i=n;for(;i<e;){var s,o,a,u=t[i],h=null,l=u>239?4:u>223?3:u>191?2:1;if(i+l>e)break;1===l?u<128&&(h=u):2===l?128==(192&(s=t[i+1]))&&(h=(31&u)<<6|63&s)<=127&&(h=null):3===l?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((h=(15&u)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===l&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,l=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),i+=l}return r}(this.buf,n,t)},readBytes:function(){var t=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,t);return this.pos=t,n},readPackedVarint:function(t,n){if(this.type!==rc.Bytes)return t.push(this.readVarint(n));var e=sc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==rc.Bytes)return t.push(this.readSVarint());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==rc.Bytes)return t.push(this.readBoolean());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==rc.Bytes)return t.push(this.readFloat());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==rc.Bytes)return t.push(this.readDouble());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===rc.Varint)for(;this.buf[this.pos++]>127;);else if(n===rc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===rc.Fixed32)this.pos+=4;else{if(n!==rc.Fixed64)throw new Error("Unimplemented type: "+n);this.pos+=8}},writeTag:function(t,n){this.writeVarint(t<<3|n)},realloc:function(t){for(var n=this.length||16;n<this.pos+t;)n*=2;if(n!==this.length){var e=new Uint8Array(n);e.set(this.buf),this.buf=e,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),gc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),gc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),gc(this.buf,-1&t,this.pos),gc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),gc(this.buf,-1&t,this.pos),gc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,n){var e,r;t>=0?(e=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(e=~(-t%4294967296))?e=e+1|0:(e=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn\'t fit into 10 bytes");n.realloc(10),function(t,n,e){e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos]=127&t}(e,0,n),function(t,n){var e=(7&t)<<4;if(n.buf[n.pos++]|=e|((t>>>=3)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;n.buf[n.pos++]=127&t}(r,n)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var n=this.pos;this.pos=function(t,n,e){for(var r,i,s=0;s<n.length;s++){if((r=n.charCodeAt(s))>55295&&r<57344){if(!i){r>56319||s+1===n.length?(t[e++]=239,t[e++]=191,t[e++]=189):i=r;continue}if(r<56320){t[e++]=239,t[e++]=191,t[e++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&(t[e++]=239,t[e++]=191,t[e++]=189,i=null);r<128?t[e++]=r:(r<2048?t[e++]=r>>6|192:(r<65536?t[e++]=r>>12|224:(t[e++]=r>>18|240,t[e++]=r>>12&63|128),t[e++]=r>>6&63|128),t[e++]=63&r|128)}return e}(this.buf,t,this.pos);var e=this.pos-n;e>=128&&ac(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),ec.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ec.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var n=t.length;this.writeVarint(n),this.realloc(n);for(var e=0;e<n;e++)this.buf[this.pos++]=t[e]},writeRawMessage:function(t,n){this.pos++;var e=this.pos;t(n,this);var r=this.pos-e;r>=128&&ac(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,rc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,pc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,yc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,mc,n)},writeBytesField:function(t,n){this.writeTag(t,rc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,rc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,rc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var wc=Ut,Mc=xc;function xc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.mn=t,this.vn=-1,this.gn=r,this.bn=i,t.readFields(Fc,this,n)}function Fc(t,n,e){1==t?n.id=e.readVarint():2==t?function(t,n){var e=t.readVarint()+t.pos;for(;t.pos<e;){var r=n.gn[t.readVarint()],i=n.bn[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.vn=e.pos)}function kc(t){for(var n,e,r=0,i=0,s=t.length,o=s-1;i<s;o=i++)n=t[i],r+=((e=t[o]).x-n.x)*(n.y+e.y);return r}xc.types=["Unknown","Point","LineString","Polygon"],xc.prototype.loadGeometry=function(){var t=this.mn;t.pos=this.vn;for(var n,e=t.readVarint()+t.pos,r=1,i=0,s=0,o=0,a=[];t.pos<e;){if(i<=0){var u=t.readVarint();r=7&u,i=u>>3}if(i--,1===r||2===r)s+=t.readSVarint(),o+=t.readSVarint(),1===r&&(n&&a.push(n),n=[]),n.push(new wc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},xc.prototype.bbox=function(){var t=this.mn;t.pos=this.vn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,h=-1/0;t.pos<n;){if(r<=0){var l=t.readVarint();e=7&l,r=l>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>h&&(h=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,h]},xc.prototype.toGeoJSON=function(t,n,e){var r,i,s=this.extent*Math.pow(2,e),o=this.extent*t,a=this.extent*n,u=this.loadGeometry(),h=xc.types[this.type];function l(t){for(var n=0;n<t.length;n++){var e=t[n],r=180-360*(e.y+a)/s;t[n]=[360*(e.x+o)/s-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<u.length;r++)c[r]=u[r][0];l(u=c);break;case 2:for(r=0;r<u.length;r++)l(u[r]);break;case 3:for(u=function(t){var n=t.length;if(n<=1)return[t];for(var e,r,i=[],s=0;s<n;s++){var o=kc(t[s]);0!==o&&(void 0===r&&(r=o<0),r===o<0?(e&&i.push(e),e=[t[s]]):e.push(t[s]))}e&&i.push(e);return i}(u),r=0;r<u.length;r++)for(i=0;i<u[r].length;i++)l(u[r][i])}1===u.length?u=u[0]:h="Multi"+h;var f={type:"Feature",geometry:{type:h,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Ac=Mc,Pc=Sc;function Sc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.mn=t,this.gn=[],this.bn=[],this.wn=[],t.readFields(_c,this,n),this.length=this.wn.length}function _c(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.wn.push(e.pos):3===t?n.gn.push(e.readString()):4===t&&n.bn.push(function(t){var n=null,e=t.readVarint()+t.pos;for(;t.pos<e;){var r=t.readVarint()>>3;n=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return n}(e))}Sc.prototype.feature=function(t){if(t<0||t>=this.wn.length)throw new Error("feature index out of bounds");this.mn.pos=this.wn[t];var n=this.mn.readVarint()+this.mn.pos;return new Ac(this.mn,n,this.extent,this.gn,this.bn)};var Oc=Pc;function Ec(t,n,e){if(3===t){var r=new Oc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Ic=function(t,n){this.layers=t.readFields(Ec,{},n)};class $c extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),n=n||{},s()}getTileFeatures(t,n){const e=t.tileInfo.url,r=t.fetchOptions;if(this.Ct.has(e)){const{err:t,data:r}=this.Ct.get(e);return setTimeout(()=>{this.Mn(e,t,r,n)},1)}return O.getArrayBuffer(e,r,(t,r)=>{t?t.loading||this.Ct.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Ct.add(e,{err:null,data:r.data}),this.Mn(e,t,r&&r.data,n)})}Mn(t,n,e,r){if(n)return void r(n);let i;try{i=new Ic(new nc(e))}catch(n){return void r(n.message,[],[])}const s=[];if(!i.layers)return void r(null,s,[]);const o={};let a;for(const t in i.layers)if(u=i.layers,h=t,Object.prototype.hasOwnProperty.call(u,h)){o[t]={types:{}};const e=o[t].types;for(let r=0,o=i.layers[t].length;r<o;r++)try{a=i.layers[t].feature(r),e[a.type]=1;const n={type:a.type,layer:t,geometry:a.loadGeometry(),properties:a.properties,extent:a.extent};void 0!==a.id&&(n.id=a.id);let o=n.properties[wh];o&&(M(o)&&(o=JSON.parse(o)),n.properties[wh]=Kl(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,h;for(const t in o)o[t].types=Object.keys(o[t].types).map(t=>+t);r(null,s,o,{byteLength:e.byteLength})}abortTile(t,n){const e=this.requests[t];delete this.requests[t],e&&e.abort&&e.abort(),this.Wt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let zc=0;const Cc=new ah(128);class Tc{constructor(t){this.xn={},this.Fn={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.kn(n,e))return;const s=this.An(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.xn[s]="GeoJSONVectorTileLayer"===o?new Ql(e,a,u,Cc,{},i):new $c(e,a,u,Cc,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.kn(t,n),i=this.An(t,n);delete this.xn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this.Fn[n];delete this.Fn[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${zc++}`:null;i&&(this.Fn[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}An(t,n){return`${t}-${n}`}kn(t,n){const e=this.An(t,n);return this.xn[e]}Pn(){Cc.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Tc(t.workerId)),"<response>"===t.type)this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t);else{const r=e.command;this.dispatcher[r]({actorId:t.actorId,mapId:e.mapId,layerId:e.layerId,params:e.params},(t,e,i)=>{t&&404!==t.status&&204!==t.status&&console.error(r,t),n(t,e,i)})}},Object.defineProperty(t,"Sn",{value:!0})}';
|
|
25
|
+
const o = 'function(t){let n;const e={width:100,height:10};function r(){if(!n){const{width:t,height:r}=e;OffscreenCanvas?n=new OffscreenCanvas(t,r):(n=document.createElement("canvas"),n.width=t,n.height=r)}return n}class i{constructor(t,n={}){if(!Array.isArray(t))return void console.error("colors is not array");if(t.length<2)return void console.error("colors.length should >1");this.colors=t;let r=1/0,i=-1/0;for(let n=0,e=t.length;n<e;n++){const e=t[n][0];r=Math.min(e,r),i=Math.max(e,i)}this.min=r,this.max=i,this.valueOffset=this.max-this.min,this.options=Object.assign({},e,n),this.t()}getImageData(){return this.imgData}t(){const t=r(),{width:n,height:e}=this.options;t.width=n,t.height=e;const i=t.getContext("2d");i.clearRect(0,0,t.width,t.height);const s=i.createLinearGradient(0,0,t.width,0),{colors:o,valueOffset:a}=this;for(let t=0,n=o.length;t<n;t++){const[n,e]=o[t],r=(n-this.min)/a;s.addColorStop(r,e)}i.fillStyle=s,i.fillRect(0,0,t.width,t.height),this.imgData=i.getImageData(0,0,t.width,t.height)}getColor(t){t=Math.max(this.min,t);const n=((t=Math.min(t,this.max))-this.min)/this.valueOffset;let e=Math.round(n*this.imgData.width);e=Math.min(e,this.imgData.width-1);const r=4*e;return[this.imgData.data[r],this.imgData.data[r+1],this.imgData.data[r+2],this.imgData.data[r+3]]}}var s;function o(t,n){for(let e=0;e<t.stops.length;e++)if(n===t.stops[e][0])return t.stops[e][1];return t.default}function a(t,n){for(var e=0;e<t.stops.length&&!(n<t.stops[e][0]);e++);return t.stops[Math.max(e-1,0)][1]}function u(t,n){for(var e=void 0!==t.base?t.base:1,r=0;!(r>=t.stops.length||n<=t.stops[r][0]);)r++;return 0===r?t.stops[r][1]:r===t.stops.length?t.stops[r-1][1]:function t(n,e,r,i,s,o){return"function"==typeof s?function(){var a=s.apply(void 0,arguments),u=o.apply(void 0,arguments);return t(n,e,r,i,a,u)}:s.length?function(t,n,e,r,i,s){var o=[];for(let a=0;a<i.length;a++)o[a]=f(t,n,e,r,i[a],s[a]);return o}(n,e,r,i,s,o):f(n,e,r,i,s,o)}(n,e,t.stops[r-1][0],t.stops[r][0],t.stops[r-1][1],t.stops[r][1])}"function"==typeof Map&&(s=new Map);const h={width:100,height:1};function l(t,n){const e=t.stops;if(e&&e.length>1){let t;if(s){const n=JSON.stringify(e);if(!s.has(n)){const t=new i(e,h);s.set(n,t)}t=s.get(n)}else t=new i(e,h);const[r,o,a,u]=t.getColor(n);return[r/255,o/255,a/255,u/255]}return e&&1===e.length?e[0][1]:null}function c(t,n){return function(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:null}(n,t.default)}function f(t,n,e,r,i,s){var o,a=r-e,u=t-e;return i*(1-(o=1===n?u/a:(Math.pow(n,u)-1)/(Math.pow(n,a)-1)))+s*o}function d(t){return t&&"object"==typeof t&&(t.stops||t.property&&"identity"===t.type)}function p(t){return v(t,"exponential")}function y(t){return v(t,"interval")}function m(t,n){if(!t)return null;var e=!1;if(Array.isArray(t)){var r,i=[];for(let s=0;s<t.length;s++)(r=m(t[s],n))?(i.push(r),e=!0):i.push(t[s]);return e?i:t}var s,o={__fn_types_loaded:!0},a=[];for(s in t)t.hasOwnProperty(s)&&a.push(s);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,n())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let n=0,r=a.length;n<r;n++)d(t[s=a[n]])?(e=!0,o["_"+s]=t[s],u(s)):o[s]=t[s];return e?o:t}function v(t,n){if(!d(t))return function(){return t};let e=!0,r=!0;const i=(t=JSON.parse(JSON.stringify(t))).stops;if(i)for(let t=0;t<i.length;t++)if(d(i[t][1])){const s=v(i[t][1],n);e=e&&s.isZoomConstant,r=r&&s.isFeatureConstant,i[t]=[i[t][0],s]}const s=function t(n,e){var r,i,s;if(d(n)){var h,f=n.stops&&"object"==typeof n.stops[0][0],p=f||void 0!==n.property,y=f||!p,m=n.type||e||"exponential";if("exponential"===m)h=u;else if("interval"===m)h=a;else if("categorical"===m)h=o;else if("identity"===m)h=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');h=l}if(f){var v={},g=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===v[b[0].zoom]&&(v[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),v[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in v)g.push([v[n].zoom,t(v[n])]);r=function(t,e){const r=u({stops:g,base:n.base},t)(t,e);return"function"==typeof r?r(t,e):r},i=!1,s=!1}else y?(r=function(t){const e=h(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=h(n,e?e[n.property]:null);return"function"==typeof r?r(t,e):r},i=!1,s=!0)}else r=function(){return n},i=!0,s=!0;return r.isZoomConstant=s,r.isFeatureConstant=i,r}(t,n);return s.isZoomConstant=e&&s.isZoomConstant,s.isFeatureConstant=r&&s.isFeatureConstant,s}let g=0;const b="function"==typeof Object.assign;function w(t,...n){if(b)return Object.assign(t,...n),t;for(let e=0;e<n.length;e++){const r=n[e];for(const n in r)t[n]=r[n]}return t}function M(t){return!A(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!A(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function k(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function A(t){return null==t}function P(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];if(e)for(let n=0,r=e.length;n<r;n++)t.push(e[n])}return t.length}function S(t){return d(t)&&t.property}const _="function"==typeof fetch&&"function"==typeof AbortController,O={jsonp:function(t,n){const e="_maptalks_jsonp_"+g++;t.match(/\\?/)?t+="&callback="+e:t+="?callback="+e;let r=document.createElement("script");return r.type="text/javascript",r.src=t,window[e]=function(t){n(null,t),document.getElementsByTagName("head")[0].removeChild(r),r=null,delete window[e]},document.getElementsByTagName("head")[0].appendChild(r),this},get:function(t,n,e){if(F(n)){const t=e;e=n,n=t}(n=n||{}).method&&(n.method=n.method.toUpperCase());const r="POST"===n.method;if(_){const r=new AbortController,i=n;return i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET",fetch(t,i).then(r=>{const i=this.s(r,n.returnJSON,n.responseType);i.message?(i.url=t,e(i)):i.then(t=>{"arraybuffer"===n.responseType?e(null,{data:t,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires"),contentType:r.headers.get("Content-Type")}):e(null,t)}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))})}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))}),r}{const i=O.o(e);if(i.open(n.method||"GET",t,!0),n){for(const t in n.headers)i.setRequestHeader(t,n.headers[t]);i.withCredentials="include"===n.credentials,n.responseType&&(i.responseType=n.responseType)}return i.send(r?n.body:null),i}},s:(t,n,e)=>200!==t.status?{status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`}:"arraybuffer"===e?t.arrayBuffer():n?t.json():t.text(),u:function(t,n){return function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?n({status:200,statusText:t.statusText,message:"http status 200 returned without content."}):n(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else n(null,t.responseText);else n({status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`})}},o:function(t){let n;try{n=new XMLHttpRequest}catch(t){try{n=new ActiveXObject("Msxml2.XMLHTTP")}catch(t){try{n=new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}}return n.onreadystatechange=O.u(n,t),n},getArrayBuffer(t,n,e){if(F(n)){const t=e;e=n,n=t}return n||(n={}),n.responseType="arraybuffer",O.get(t,n,e)}};function E(t,n,e,r,i,s){let o=i-e,a=s-r;if(0!==o||0!==a){const u=((t-e)*o+(n-r)*a)/(o*o+a*a);u>1?(e=i,r=s):u>0&&(e+=o*u,r+=a*u)}return o=t-e,a=n-r,o*o+a*a}function I(t,n,e,r,i,s){const o={id:null==t?null:t,type:n,geometry:e,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};i&&(o.layer=i);return function(t,n){const e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)$(t,e,n);else if("Polygon"===r)$(t,e[0],n);else if("MultiLineString"===r)for(const r of e)$(t,r,n);else if("MultiPolygon"===r)for(const r of e)$(t,r[0],n)}(o,s?4:3),o}function $(t,n,e){for(let r=0;r<n.length;r+=e)t.minX=Math.min(t.minX,n[r]),t.minY=Math.min(t.minY,n[r+1]),t.maxX=Math.max(t.maxX,n[r]),t.maxY=Math.max(t.maxY,n[r+1])}function z(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)C(t,e.features[n],r,n);else"Feature"===e.type?C(t,e,r):C(t,{geometry:e},r)}function C(t,n,e,r){if(!n.geometry)return;const i=n.geometry.coordinates,s=n.geometry.type,o=Math.pow(e.tolerance/((1<<e.maxZoom)*e.extent),2);let a=[],u=n.id;if(e.promoteId?u=n.properties[e.promoteId]:e.generateId&&(u=r||0),"Point"===s)T(i,a,e);else if("MultiPoint"===s)for(const t of i)T(t,a,e);else if("LineString"===s)D(i,a,o,!1,e);else if("MultiLineString"===s){if(e.lineMetrics){for(const r of i)a=[],D(r,a,o,!1,e),t.push(I(u,"LineString",a,n.properties,e.layer,e.hasAltitude));return}j(i,a,o,!1,e)}else if("Polygon"===s)j(i,a,o,!0,e);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(const i of n.geometry.geometries)C(t,{id:u,geometry:i,properties:n.properties},e,r);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const t of i){const n=[];j(t,n,o,!0,e),a.push(n)}}t.push(I(u,s,a,n.properties,e.layer,e.hasAltitude))}function T(t,n,e){n.push(U(t[0]),N(t[1],e.projection),0),e.hasAltitude&&(t.length>2?n.push(t[2]):n.push(0))}function D(t,n,e,r,i){let s,o,a=0;for(let e=0;e<t.length;e++){const u=U(t[e][0]),h=N(t[e][1],i.projection);n.push(u,h,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*h-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(h-o,2))),s=u,o=h}const u=i.hasAltitude?4:3,h=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,h=r-e;const l=n[e],c=n[e+1],f=n[r],d=n[r+1];for(let t=e+s;t<r;t+=s){const e=E(n[t],n[t+1],l,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<h&&(u=t,h=n)}}o>i&&(u-e>s&&t(n,e,u,i,s),n[u+2]=o,r-u>s&&t(n,u,r,i,s))}(n,0,h,e,u),n[h+2]=1,n.size=Math.abs(a),n.start=0,n.end=n.size}function j(t,n,e,r,i){for(let s=0;s<t.length;s++){const o=[];D(t[s],o,e,r,i),n.push(o)}}function U(t){return t/360+.5}function N(t,n){switch(n){case"EPSG:4326":return(90-t)/360}const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function L(t,n,e,r,i,s,o,a){if(r/=n,s>=(e/=n)&&o<r)return t;if(o<e||s>=r)return null;const u=[];for(const n of t){const t=n.geometry;let s=n.type;const o=0===i?n.minX:n.minY,h=0===i?n.maxX:n.maxY;if(o>=e&&h<r){u.push(n);continue}if(h<e||o>=r)continue;let l=[];if("Point"===s||"MultiPoint"===s)V(t,l,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,l,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,l,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,l,e,r,i,!0,a.hasAltitude);else if("MultiPolygon"===s)for(const n of t){const t=[];W(n,t,e,r,i,!0,a.hasAltitude),t.length&&l.push(t)}if(l.length){if(a.lineMetrics&&"LineString"===s){for(const t of l)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===l.length?(s="LineString",l=l[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===l.length?"Point":"MultiPoint"),u.push(I(n.id,s,l,n.tags,n.layer,a.hasAltitude))}}return u.length?u:null}function V(t,n,e,r,i,s){const o=s?4:3;for(let a=0;a<t.length;a+=o){const o=t[a+i];o>=e&&o<=r&&(q(n,t[a],t[a+1],t[a+2]),s&&n.push(t[a+3]))}}function R(t,n,e,r,i,s,o,a){let u=H(t);const h=0===i?G:B;let l,c,f=t.start;const d=a?4:3,p=s?t.length:t.length-d;for(let y=0;y<p;y+=d){const m=t[y],v=t[y+1],g=t[y+2];let b,w,M,x;s&&y===p-d?(b=t[0],w=t[1]):(b=t[y+d],w=t[y+d+1]),a&&(M=t[y+3],x=s&&y===p-d?t[3]:t[y+d+3]);const F=0===i?m:v,k=0===i?b:w;let A=!1;o&&(l=Math.sqrt(Math.pow(m-b,2)+Math.pow(v-w,2))),F<e?k>e&&(c=h(u,m,v,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):F>r?k<r&&(c=h(u,m,v,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):(q(u,m,v,g),a&&u.push(M)),k<e&&F>=e&&(c=h(u,m,v,b,w,e),a&&u.push(J(M,x,c)),A=!0),k>r&&F<=r&&(c=h(u,m,v,b,w,r),a&&u.push(J(M,x,c)),A=!0),!s&&A&&(o&&(u.end=f+l*c),n.push(u),u=H(t)),o&&(f+=l)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],h=0===i?n:s;if(h>=e&&h<=r&&q(u,n,s,o),h>=e&&h<=r&&a){const n=t[y+3];u.push(n)}}y=u.length-d,s&&y>=d&&(u[y]!==u[0]||u[y+1]!==u[1])&&(q(u,u[0],u[1],u[2]),a&&u.push(u[3])),u.length&&n.push(u)}function H(t){const n=[];return n.size=t.size,n.start=t.start,n.end=t.end,n}function W(t,n,e,r,i,s,o){for(const a of t)R(a,n,e,r,i,s,!1,o)}function q(t,n,e,r){t.push(n,e,r)}function G(t,n,e,r,i,s){const o=(s-n)/(r-n);return q(t,s,e+(i-e)*o,1),o}function B(t,n,e,r,i,s){const o=(s-e)/(i-e);return q(t,n+(r-n)*o,s,1),o}function J(t,n,e){return t+(n-t)*e}function X(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=t[i],o=s.type;let a;if("Point"===o||"MultiPoint"===o||"LineString"===o)a=Y(s.geometry,n,e);else if("MultiLineString"===o||"Polygon"===o){a=[];for(const t of s.geometry)a.push(Y(t,n,e))}else if("MultiPolygon"===o){a=[];for(const t of s.geometry){const r=[];for(const i of t)r.push(Y(i,n,e));a.push(r)}}r.push(I(s.id,o,a,s.tags,s.layer,e))}return r}function Y(t,n,e){const r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);const i=e?4:3;for(let s=0;s<t.length;s+=i)r.push(t[s]+n,t[s+1],t[s+2]),e&&r.push(t[s+3]);return r}function Z(t,n,e){if(t.transformed)return t;const r=1<<t.z,i=t.x,s=t.y,o=e?3:2;for(const a of t.features){const t=a.geometry,u=a.type;if(a.geometry=[],1===u)for(let u=0;u<t.length;u+=o)a.geometry.push(K(t[u],t[u+1],n,r,i,s)),e&&a.geometry[a.geometry.length-1].push(t[u+2]);else for(let u=0;u<t.length;u++){const h=[];for(let a=0;a<t[u].length;a+=o)h.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&h[h.length-1].push(t[u][a+2]);a.geometry.push(h)}}return t.transformed=!0,t}function K(t,n,e,r,i,s){return[Math.round(e*(t*r-i)),Math.round(e*(n*r-s))]}function Q(t,n,e,r,i){const s=n===i.maxZoom?0:i.tolerance/((1<<n)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:t.length,source:null,x:e,y:r,z:n,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const n of t)tt(o,n,s,i);return o}function tt(t,n,e,r){const i=n.geometry,s=n.type,o=[],a=r.hasAltitude?4:3;if(t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),"Point"===s||"MultiPoint"===s)for(let n=0;n<i.length;n+=a)o.push(i[n],i[n+1]),r.hasAltitude&&o.push(i[n+3]),t.numPoints++,t.numSimplified++;else if("LineString"===s)et(o,i,t,e,!1,!1,r);else if("MultiLineString"===s||"Polygon"===s)for(let n=0;n<i.length;n++)et(o,i[n],t,e,"Polygon"===s,0===n,r);else if("MultiPolygon"===s)for(let n=0;n<i.length;n++){const s=i[n];for(let n=0;n<s.length;n++)et(o,s[n],t,e,!0,0===n,r)}if(o.length){let e=n.tags||null;if("LineString"===s&&r.lineMetrics){e={};for(const t in n.tags)e[t]=n.tags[t];e.mapbox_clip_start=i.start/i.size,e.mapbox_clip_end=i.end/i.size}const a={geometry:o,type:"Polygon"===s||"MultiPolygon"===s?3:"LineString"===s||"MultiLineString"===s?2:1,tags:e};n.layer&&(a.layer=n.layer),null!==n.id&&(a.id=n.id),t.features.push(a)}}function nt(t,n,e){return 0===t[n+2]&&t[n+3]>0&&e}function et(t,n,e,r,i,s,o){const a=r*r,{hasAltitude:u,disableFilter:h}=o,l=u?4:3;if(!h&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/l);const c=[];for(let t=0;t<n.length;t+=l)(0===r||n[t+2]>a||nt(n,t,u))&&(e.numSimplified++,c.push(n[t],n[t+1]),u&&c.push(n[t+3])),e.numPoints++;i&&function(t,n,e){const r=e?3:2;let i=0;for(let n=0,e=t.length,s=e-r;n<e;s=n,n+=r)i+=(t[n]-t[s])*(t[n+1]+t[s+1]);if(i>0===n){const n=r,i=r-1,s=r-2;for(let o=0,a=t.length;o<a/2;o+=r){const r=t[o],u=t[o+1];let h;e&&(h=t[o+2]),t[o]=t[a-n-o],t[o+1]=t[a-i-o],e&&(t[o+2]=t[a-s-o]),t[a-n-o]=r,t[a-i-o]=u,e&&(t[a-s-o]=h)}}}(c,s,u),t.push(c)}O.getJSON=function(t,n,e){if(F(n)){const t=e;e=n,n=t}const r=function(t,n){const r="string"==typeof n?JSON.parse(n):n||null;e(t,r)};return n&&n.jsonp?O.jsonp(t,r):((n=n||{}).returnJSON=!0,O.get(t,n,r))};const rt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,hasAltitude:!1,disableFilter:!1,debug:0};class it{constructor(t,n){const e=(n=this.options=function(t,n){for(const e in n)t[e]=n[e];return t}(Object.create(rt),n)).debug;if(e&&console.time("preprocess data"),n.maxZoom<0||n.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(n.promoteId&&n.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,n){const e=[];if(Array.isArray(t)){for(let r=0;r<t.length;r++)z(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)C(e,t.features[r],n,r);else"Feature"===t.type?C(e,t,n):C(e,{geometry:t},n);return e}(t,n);this.tiles={},this.tileCoords=[],e&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",n.indexMaxZoom,n.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),r=function(t,n){const e=n.buffer/n.extent;let r=t;const i=L(t,1,-1-e,e,0,-1,2,n),s=L(t,1,1-e,2+e,0,-1,2,n);return(i||s)&&(r=L(t,1,-e,1+e,0,-1,2,n)||[],i&&(r=X(i,1,n.hasAltitude).concat(r)),s&&(r=r.concat(X(s,-1,n.hasAltitude)))),r}(r,n),r.length&&this.splitTile(r,0,0,0),e&&(r.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}splitTile(t,n,e,r,i,s,o){const a=[t,n,e,r],u=this.options,h=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const l=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(h>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),h)){h>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",n,e,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));const t="z"+n;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(f.source=t,null==i){if(n===u.indexMaxZoom||f.numPoints<=u.indexMaxPoints)continue}else{if(n===u.maxZoom||n===i)continue;if(null!=i){const t=i-n;if(e!==s>>t||r!==o>>t)continue}}if(f.source=null,0===t.length)continue;h>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let v=null,g=null,b=null,w=null,M=L(t,l,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,l,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(v=L(M,l,r-d,r+y,1,f.minY,f.maxY,u),g=L(M,l,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,l,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,l,r+p,r+m,1,f.minY,f.maxY,u),x=null),h>1&&console.timeEnd("clipping"),a.push(v||[],n+1,2*e,2*r),a.push(g||[],n+1,2*e,2*r+1),a.push(b||[],n+1,2*e+1,2*r),a.push(w||[],n+1,2*e+1,2*r+1)}}getTile(t,n,e){t=+t,n=+n,e=+e;const r=this.options,{extent:i,debug:s}=r,{hasAltitude:o,wrapX:a}=r;if(t<0||t>24)return null;if(a){const e=1<<t;n=n+e&e-1}const u=st(t,n,e);if(this.tiles[u])return Z(this.tiles[u],i,o);s>1&&console.log("drilling down to z%d-%d-%d",t,n,e);let h,l=t,c=n,f=e;for(;!h&&l>0;)l--,c>>=1,f>>=1,h=this.tiles[st(l,c,f)];return h&&h.source?(s>1&&(console.log("found parent tile z%d-%d-%d",l,c,f),console.time("drilling down")),this.splitTile(h.source,l,c,f,t,n,e),s>1&&console.timeEnd("drilling down"),this.tiles[u]?Z(this.tiles[u],i,o):null):null}}function st(t,n,e){return 32*((1<<t)*e+n)+t}function ot(t,n,e,r,i,s,o){const a=e&&Array.isArray(e[0]);for(let u=0,h=e.length;u<h;u++){t[n]=(a?e[u][0]:e[u].x)*r,t[n+1]=(a?e[u][1]:e[u].y)*r,o!==Float32Array&&(t[n]=Math.round(t[n]),t[n+1]=Math.round(t[n+1]));let l=i||0;Array.isArray(i)&&(l=i[u]),l=l?Math.round(r*l):0,t[n+2]=l,n+=3,s&&0!==u&&u!==h-1&&(t[n]=t[n-3],t[n+1]=t[n-2],t[n+2]=t[n-1],n+=3)}return t.trySetLength&&t.trySetLength(n),n}function at(t,n,e,r){const i=t[3*n],s=t[3*n+1],o=t[3*e],a=t[3*e+1];return i===o&&(i<0||i>r)||s===a&&(s<0||s>r)}var ut="undefined"!=typeof Float32Array?Float32Array:Array;function ht(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lt(t,n,e){var r=new ut(3);return r[0]=t,r[1]=n,r[2]=e,r}function ct(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t}function ft(t,n,e,r){return t[0]=n,t[1]=e,t[2]=r,t}function dt(t,n,e){return t[0]=n[0]+e[0],t[1]=n[1]+e[1],t[2]=n[2]+e[2],t}function pt(t,n){var e=n[0],r=n[1],i=n[2],s=e*e+r*r+i*i;return s>0&&(s=1/Math.sqrt(s),t[0]=n[0]*s,t[1]=n[1]*s,t[2]=n[2]*s),t}function yt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function mt(t,n,e){var r=n[0],i=n[1],s=n[2],o=e[0],a=e[1],u=e[2];return t[0]=i*u-s*a,t[1]=s*o-r*u,t[2]=r*a-i*o,t}var vt=function(t,n,e){return t[0]=n[0]-e[0],t[1]=n[1]-e[1],t[2]=n[2]-e[2],t};function gt(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function bt(t,n,e,r,i){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t}function wt(t,n,e){return t[0]=n[0]/e[0],t[1]=n[1]/e[1],t[2]=n[2]/e[2],t[3]=n[3]/e[3],t}function Mt(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t[3]=n[3]*e,t}function xt(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function Ft(){var t=new ut(4);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function kt(t,n){var e=n[0]+n[4]+n[8],r=void 0;if(e>0)r=Math.sqrt(e+1),t[3]=.5*r,r=.5/r,t[0]=(n[5]-n[7])*r,t[1]=(n[6]-n[2])*r,t[2]=(n[1]-n[3])*r;else{var i=0;n[4]>n[0]&&(i=1),n[8]>n[3*i+i]&&(i=2);var s=(i+1)%3,o=(i+2)%3;r=Math.sqrt(n[3*i+i]-n[3*s+s]-n[3*o+o]+1),t[i]=.5*r,r=.5/r,t[3]=(n[3*s+o]-n[3*o+s])*r,t[s]=(n[3*s+i]+n[3*i+s])*r,t[o]=(n[3*o+i]+n[3*i+o])*r}return t}!function(){var t=ht()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var At,Pt=Mt,St=function(t,n){var e=n[0],r=n[1],i=n[2],s=n[3],o=e*e+r*r+i*i+s*s;return o>0&&(o=1/Math.sqrt(o),t[0]=e*o,t[1]=r*o,t[2]=i*o,t[3]=s*o),t};function _t(t,n,e){return t[0]=n,t[1]=e,t}function Ot(t,n){var e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}ht(),lt(1,0,0),lt(0,1,0),Ft(),Ft(),At=new ut(9),ut!=Float32Array&&(At[1]=0,At[2]=0,At[3]=0,At[5]=0,At[6]=0,At[7]=0),At[0]=1,At[4]=1,At[8]=1;var Et=function(t){var n=t[0],e=t[1];return Math.sqrt(n*n+e*e)};!function(){var t=function(){var t=new ut(2);return ut!=Float32Array&&(t[0]=0,t[1]=0),t}()}();const It=Math.PI/180,$t=6378137*Math.PI/180;function zt(t,n,e){if("EPSG:3857"===e)return function(t,n){const e=85.0511287798,r=n[0],i=Math.max(Math.min(e,n[1]),-e);let s;s=0===i?0:Math.log(Math.tan((90+i)*It/2))/It;return t[0]=r*$t,t[1]=s*$t,t}(t,n);if("EPSG:4326"===e||"EPSG:4490"===e||"identity"===e)return Ct(t,n);if("baidu"===e)return Ct(t,n);throw new Error("unsupported projection:"+e)}function Ct(t,n){return t[0]=n[0],t[1]=n[1],t}function Tt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,h){const l=1/(100*s),c=h&&h[0]||0,f=h&&h[1]||0,d=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-c,s=r[i+1]-f;e[t]=d[0]+n*l/46.5*o/a,e[t+1]=d[1]-s*l/46.5*o/u}}(n,e,r,i,0,o,a,u,h,p):1===t&&function(t,n,e,r,i,s,o,a,u,h,l){if(!t)return;let c,f,d,p;0===t[4]?(c=t[0],f=t[1],d=t[2],p=t[3]):(c=t[1],f=t[2],d=t[3],p=t[0]);const y=Ot(c,f),m=Ot(f,d),v=[],g=[],b=[];for(let t=n;t<e;t+=3){const n=t/3*2,e=(s.x/u+i[t]*o)*a,d=s.y/u*a+(l?i[t+1]:-i[t+1])*o*a;_t(v,e,d),"EPSG:4326"!==h&&"EPSG:4490"!==h||zt(v,v,"EPSG:3857"),Dt(g,v,c,f),Dt(b,v,p,c),r[n]=Ot(c,g)/y,r[n+1]=Ot(c,b)/m}}(l,n,e,r,i,s,a,c,f,d,!!p)}function Dt(t,n,e,r){const i=e[0]-r[0],s=e[1]-r[1];let o=(n[0]-e[0])*(e[0]-r[0])+(n[1]-e[1])*(e[1]-r[1]);return o/=i*i+s*s,t[0]=e[0]+o*i,t[1]=e[1]+o*s,t}function jt(t,n,e,r,i){const s=3*n[e-1],o=3*n[e-1]+1,a=t[s],u=t[o];return h=r,l=i,c=a,f=u,Math.sqrt((c-h)*(c-h)+(f-l)*(f-l));var h,l,c,f}"undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self&&self;var Ut=Nt;function Nt(t,n){this.x=t,this.y=n}function Lt(t,n,e){e=e||{},this.w=t||64,this.h=n||64,this.autoResize=!!e.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function Vt(t,n,e){this.x=0,this.y=t,this.w=this.free=n,this.h=e}function Rt(t,n,e,r,i,s,o){this.id=t,this.x=n,this.y=e,this.w=r,this.h=i,this.maxw=s||r,this.maxh=o||i,this.refcount=0}Nt.prototype={clone:function(){return new Nt(this.x,this.y)},add:function(t){return this.clone().m(t)},sub:function(t){return this.clone().M(t)},multByPoint:function(t){return this.clone().F(t)},divByPoint:function(t){return this.clone().k(t)},mult:function(t){return this.clone().A(t)},div:function(t){return this.clone().P(t)},rotate:function(t){return this.clone().S(t)},rotateAround:function(t,n){return this.clone()._(t,n)},matMult:function(t){return this.clone().O(t)},unit:function(){return this.clone().I()},perp:function(){return this.clone().C()},round:function(){return this.clone().T()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,e=t.y-this.y;return n*n+e*e},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},O:function(t){var n=t[0]*this.x+t[1]*this.y,e=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=e,this},m:function(t){return this.x+=t.x,this.y+=t.y,this},M:function(t){return this.x-=t.x,this.y-=t.y,this},A:function(t){return this.x*=t,this.y*=t,this},P:function(t){return this.x/=t,this.y/=t,this},F:function(t){return this.x*=t.x,this.y*=t.y,this},k:function(t){return this.x/=t.x,this.y/=t.y,this},I:function(){return this.P(this.mag()),this},C:function(){var t=this.y;return this.y=this.x,this.x=-t,this},S:function(t){var n=Math.cos(t),e=Math.sin(t),r=n*this.x-e*this.y,i=e*this.x+n*this.y;return this.x=r,this.y=i,this},_:function(t,n){var e=Math.cos(t),r=Math.sin(t),i=n.x+e*(this.x-n.x)-r*(this.y-n.y),s=n.y+r*(this.x-n.x)+e*(this.y-n.y);return this.x=i,this.y=s,this},T:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Nt.convert=function(t){return t instanceof Nt?t:Array.isArray(t)?new Nt(t[0],t[1]):t},Lt.prototype.pack=function(t,n){t=[].concat(t),n=n||{};for(var e,r,i,s,o=[],a=0;a<t.length;a++)if(e=t[a].w||t[a].width,r=t[a].h||t[a].height,i=t[a].id,e&&r){if(!(s=this.packOne(e,r,i)))continue;n.inPlace&&(t[a].x=s.x,t[a].y=s.y,t[a].id=s.id),o.push(s)}return this.shrink(),o},Lt.prototype.packOne=function(t,n,e){var r,i,s,o,a,u,h,l,c={freebin:-1,shelf:-1,waste:1/0},f=0;if("string"==typeof e||"number"==typeof e){if(r=this.getBin(e))return this.ref(r),r;"number"==typeof e&&(this.maxId=Math.max(e,this.maxId))}else e=++this.maxId;for(o=0;o<this.freebins.length;o++){if(n===(r=this.freebins[o]).maxh&&t===r.maxw)return this.allocFreebin(o,t,n,e);n>r.maxh||t>r.maxw||n<=r.maxh&&t<=r.maxw&&(s=r.maxw*r.maxh-t*n)<c.waste&&(c.waste=s,c.freebin=o)}for(o=0;o<this.shelves.length;o++)if(f+=(i=this.shelves[o]).h,!(t>i.free)){if(n===i.h)return this.allocShelf(o,t,n,e);n>i.h||n<i.h&&(s=(i.h-n)*t)<c.waste&&(c.freebin=-1,c.waste=s,c.shelf=o)}return-1!==c.freebin?this.allocFreebin(c.freebin,t,n,e):-1!==c.shelf?this.allocShelf(c.shelf,t,n,e):n<=this.h-f&&t<=this.w?(i=new Vt(f,this.w,n),this.allocShelf(this.shelves.push(i)-1,t,n,e)):this.autoResize?(a=u=this.h,((h=l=this.w)<=a||t>h)&&(l=2*Math.max(t,h)),(a<h||n>a)&&(u=2*Math.max(n,a)),this.resize(l,u),this.packOne(t,n,e)):null},Lt.prototype.allocFreebin=function(t,n,e,r){var i=this.freebins.splice(t,1)[0];return i.id=r,i.w=n,i.h=e,i.refcount=0,this.bins[r]=i,this.ref(i),i},Lt.prototype.allocShelf=function(t,n,e,r){var i=this.shelves[t].alloc(n,e,r);return this.bins[r]=i,this.ref(i),i},Lt.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,n=0,e=0;e<this.shelves.length;e++){var r=this.shelves[e];n+=r.h,t=Math.max(r.w-r.free,t)}this.resize(t,n)}},Lt.prototype.getBin=function(t){return this.bins[t]},Lt.prototype.ref=function(t){if(1==++t.refcount){var n=t.h;this.stats[n]=1+(0|this.stats[n])}return t.refcount},Lt.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},Lt.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},Lt.prototype.resize=function(t,n){this.w=t,this.h=n;for(var e=0;e<this.shelves.length;e++)this.shelves[e].resize(t);return!0},Vt.prototype.alloc=function(t,n,e){if(t>this.free||n>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,new Rt(e,r,this.y,t,n,t,this.h)},Vt.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0};var Ht={exports:{}},Wt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qt={exports:{}},Gt=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))},Bt=Array.prototype.concat,Jt=Array.prototype.slice,Xt=qt.exports=function(t){for(var n=[],e=0,r=t.length;e<r;e++){var i=t[e];Gt(i)?n=Bt.call(n,Jt.call(i)):n.push(i)}return n};Xt.wrap=function(t){return function(){return t(Xt(arguments))}};var Yt=Wt,Zt=qt.exports,Kt=Object.hasOwnProperty,Qt=Object.create(null);for(var tn in Yt)Kt.call(Yt,tn)&&(Qt[Yt[tn]]=tn);var nn=Ht.exports={to:{},get:{}};function en(t,n,e){return Math.min(Math.max(n,t),e)}function rn(t){var n=Math.round(t).toString(16).toUpperCase();return n.length<2?"0"+n:n}nn.get=function(t){var n,e;switch(t.substring(0,3).toLowerCase()){case"hsl":n=nn.get.hsl(t),e="hsl";break;case"hwb":n=nn.get.hwb(t),e="hwb";break;default:n=nn.get.rgb(t),e="rgb"}return n?{model:e,value:n}:null},nn.get.rgb=function(t){if(!t)return null;var n,e,r,i=[0,0,0,1];if(n=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=n[2],n=n[1],e=0;e<3;e++){var s=2*e;i[e]=parseInt(n.slice(s,s+2),16)}r&&(i[3]=parseInt(r,16)/255)}else if(n=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(n=n[1])[3],e=0;e<3;e++)i[e]=parseInt(n[e]+n[e],16);r&&(i[3]=parseInt(r+r,16)/255)}else if(n=t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)){for(e=0;e<3;e++)i[e]=parseInt(n[e+1],0);n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}else{if(!(n=t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)))return(n=t.match(/^(\\w+)$/))?"transparent"===n[1]?[0,0,0,0]:Kt.call(Yt,n[1])?((i=Yt[n[1]])[3]=1,i):null:null;for(e=0;e<3;e++)i[e]=Math.round(2.55*parseFloat(n[e+1]));n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}for(e=0;e<3;e++)i[e]=en(i[e],0,255);return i[3]=en(i[3],0,1),i},nn.get.hsl=function(t){if(!t)return null;var n=t.match(/^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.get.hwb=function(t){if(!t)return null;var n=t.match(/^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.to.hex=function(){var t=Zt(arguments);return"#"+rn(t[0])+rn(t[1])+rn(t[2])+(t[3]<1?rn(Math.round(255*t[3])):"")},nn.to.rgb=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},nn.to.rgb.percent=function(){var t=Zt(arguments),n=Math.round(t[0]/255*100),e=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+n+"%, "+e+"%, "+r+"%)":"rgba("+n+"%, "+e+"%, "+r+"%, "+t[3]+")"},nn.to.hsl=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},nn.to.hwb=function(){var t=Zt(arguments),n="";return t.length>=4&&1!==t[3]&&(n=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+n+")"},nn.to.keyword=function(t){return Qt[t.slice(0,3)]};var sn={exports:{}},on=Wt,an={};for(var un in on)on.hasOwnProperty(un)&&(an[on[un]]=un);var hn=sn.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var ln in hn)if(hn.hasOwnProperty(ln)){if(!("channels"in hn[ln]))throw new Error("missing channels property: "+ln);if(!("labels"in hn[ln]))throw new Error("missing channel labels property: "+ln);if(hn[ln].labels.length!==hn[ln].channels)throw new Error("channel and label counts mismatch: "+ln);var cn=hn[ln].channels,fn=hn[ln].labels;delete hn[ln].channels,delete hn[ln].labels,Object.defineProperty(hn[ln],"channels",{value:cn}),Object.defineProperty(hn[ln],"labels",{value:fn})}function dn(t,n){return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)}hn.rgb.hsl=function(t){var n,e,r=t[0]/255,i=t[1]/255,s=t[2]/255,o=Math.min(r,i,s),a=Math.max(r,i,s),u=a-o;return a===o?n=0:r===a?n=(i-s)/u:i===a?n=2+(s-r)/u:s===a&&(n=4+(r-i)/u),(n=Math.min(60*n,360))<0&&(n+=360),e=(o+a)/2,[n,100*(a===o?0:e<=.5?u/(a+o):u/(2-a-o)),100*e]},hn.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,h=Math.max(o,a,u),l=h-Math.min(o,a,u),c=function(t){return(h-t)/6/l+.5};return 0===l?i=s=0:(s=l/h,n=c(o),e=c(a),r=c(u),o===h?i=r-e:a===h?i=1/3+n-r:u===h&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*h]},hn.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[hn.rgb.hsl(t)[0],100*(1/255*Math.min(n,Math.min(e,r))),100*(r=1-1/255*Math.max(n,Math.max(e,r)))]},hn.rgb.cmyk=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255;return[100*((1-e-(n=Math.min(1-e,1-r,1-i)))/(1-n)||0),100*((1-r-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hn.rgb.keyword=function(t){var n=an[t];if(n)return n;var e,r=1/0;for(var i in on)if(on.hasOwnProperty(i)){var s=dn(t,on[i]);s<r&&(r=s,e=i)}return e},hn.keyword.rgb=function(t){return on[t]},hn.rgb.xyz=function(t){var n=t[0]/255,e=t[1]/255,r=t[2]/255;return[100*(.4124*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.3576*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*n+.7152*e+.0722*r),100*(.0193*n+.1192*e+.9505*r)]},hn.rgb.lab=function(t){var n=hn.rgb.xyz(t),e=n[0],r=n[1],i=n[2];return r/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(e-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},hn.hsl.rgb=function(t){var n,e,r,i,s,o=t[0]/360,a=t[1]/100,u=t[2]/100;if(0===a)return[s=255*u,s,s];n=2*u-(e=u<.5?u*(1+a):u+a-u*a),i=[0,0,0];for(var h=0;h<3;h++)(r=o+1/3*-(h-1))<0&&r++,r>1&&r--,s=6*r<1?n+6*(e-n)*r:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n,i[h]=255*s;return i},hn.hsl.hsv=function(t){var n=t[0],e=t[1]/100,r=t[2]/100,i=e,s=Math.max(r,.01);return e*=(r*=2)<=1?r:2-r,i*=s<=1?s:2-s,[n,100*(0===r?2*i/(s+i):2*e/(r+e)),100*((r+e)/2)]},hn.hsv.rgb=function(t){var n=t[0]/60,e=t[1]/100,r=t[2]/100,i=Math.floor(n)%6,s=n-Math.floor(n),o=255*r*(1-e),a=255*r*(1-e*s),u=255*r*(1-e*(1-s));switch(r*=255,i){case 0:return[r,u,o];case 1:return[a,r,o];case 2:return[o,r,u];case 3:return[o,a,r];case 4:return[u,o,r];case 5:return[r,o,a]}},hn.hsv.hsl=function(t){var n,e,r,i=t[0],s=t[1]/100,o=t[2]/100,a=Math.max(o,.01);return r=(2-s)*o,e=s*a,[i,100*(e=(e/=(n=(2-s)*a)<=1?n:2-n)||0),100*(r/=2)]},hn.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,h=t[1]/100,l=t[2]/100,c=h+l;switch(c>1&&(h/=c,l/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=h+r*((e=1-l)-h),n){default:case 6:case 0:s=e,o=i,a=h;break;case 1:s=i,o=e,a=h;break;case 2:s=h,o=e,a=i;break;case 3:s=h,o=i,a=e;break;case 4:s=i,o=h,a=e;break;case 5:s=e,o=h,a=i}return[255*s,255*o,255*a]},hn.cmyk.rgb=function(t){var n=t[0]/100,e=t[1]/100,r=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},hn.xyz.rgb=function(t){var n,e,r,i=t[0]/100,s=t[1]/100,o=t[2]/100;return e=-.9689*i+1.8758*s+.0415*o,r=.0557*i+-.204*s+1.057*o,n=(n=3.2406*i+-1.5372*s+-.4986*o)>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(n=Math.min(Math.max(0,n),1)),255*(e=Math.min(Math.max(0,e),1)),255*(r=Math.min(Math.max(0,r),1))]},hn.xyz.lab=function(t){var n=t[0],e=t[1],r=t[2];return e/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(n-e),200*(e-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},hn.lab.xyz=function(t){var n,e,r,i=t[0];n=t[1]/500+(e=(i+16)/116),r=e-t[2]/200;var s=Math.pow(e,3),o=Math.pow(n,3),a=Math.pow(r,3);return e=s>.008856?s:(e-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[n*=95.047,e*=100,r*=108.883]},hn.lab.lch=function(t){var n,e=t[0],r=t[1],i=t[2];return(n=360*Math.atan2(i,r)/2/Math.PI)<0&&(n+=360),[e,Math.sqrt(r*r+i*i),n]},hn.lch.lab=function(t){var n,e=t[0],r=t[1];return n=t[2]/360*2*Math.PI,[e,r*Math.cos(n),r*Math.sin(n)]},hn.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:hn.rgb.hsv(t)[2];if(0===(i=Math.round(i/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(e/255)<<1|Math.round(n/255));return 2===i&&(s+=60),s},hn.hsv.ansi16=function(t){return hn.rgb.ansi16(hn.hsv.rgb(t),t[2])},hn.rgb.ansi256=function(t){var n=t[0],e=t[1],r=t[2];return n===e&&e===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(e/255*5)+Math.round(r/255*5)},hn.ansi16.rgb=function(t){var n=t%10;if(0===n||7===n)return t>50&&(n+=3.5),[n=n/10.5*255,n,n];var e=.5*(1+~~(t>50));return[(1&n)*e*255,(n>>1&1)*e*255,(n>>2&1)*e*255]},hn.ansi256.rgb=function(t){if(t>=232){var n=10*(t-232)+8;return[n,n,n]}var e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},hn.rgb.hex=function(t){var n=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(n.length)+n},hn.hex.rgb=function(t){var n=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];var e=n[0];3===n[0].length&&(e=e.split("").map((function(t){return t+t})).join(""));var r=parseInt(e,16);return[r>>16&255,r>>8&255,255&r]},hn.rgb.hcg=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.max(Math.max(e,r),i),o=Math.min(Math.min(e,r),i),a=s-o;return n=a<=0?0:s===e?(r-i)/a%6:s===r?2+(i-e)/a:4+(e-r)/a+4,n/=6,[360*(n%=1),100*a,100*(a<1?o/(1-a):0)]},hn.hsl.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=1,i=0;return(r=e<.5?2*n*e:2*n*(1-e))<1&&(i=(e-.5*r)/(1-r)),[t[0],100*r,100*i]},hn.hsv.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=n*e,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.hcg.rgb=function(t){var n=t[0]/360,e=t[1]/100,r=t[2]/100;if(0===e)return[255*r,255*r,255*r];var i,s=[0,0,0],o=n%1*6,a=o%1,u=1-a;switch(Math.floor(o)){case 0:s[0]=1,s[1]=a,s[2]=0;break;case 1:s[0]=u,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=a;break;case 3:s[0]=0,s[1]=u,s[2]=1;break;case 4:s[0]=a,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=u}return i=(1-e)*r,[255*(e*s[0]+i),255*(e*s[1]+i),255*(e*s[2]+i)]},hn.hcg.hsv=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n),r=0;return e>0&&(r=n/e),[t[0],100*r,100*e]},hn.hcg.hsl=function(t){var n=t[1]/100,e=t[2]/100*(1-n)+.5*n,r=0;return e>0&&e<.5?r=n/(2*e):e>=.5&&e<1&&(r=n/(2*(1-e))),[t[0],100*r,100*e]},hn.hcg.hwb=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n);return[t[0],100*(e-n),100*(1-e)]},hn.hwb.hcg=function(t){var n=t[1]/100,e=1-t[2]/100,r=e-n,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},hn.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},hn.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},hn.gray.hsl=hn.gray.hsv=function(t){return[0,0,t[0]]},hn.gray.hwb=function(t){return[0,100,t[0]]},hn.gray.cmyk=function(t){return[0,0,0,t[0]]},hn.gray.lab=function(t){return[t[0],0,0]},hn.gray.hex=function(t){var n=255&Math.round(t[0]/100*255),e=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(e.length)+e},hn.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var pn=sn.exports;function yn(t){var n=function(){for(var t={},n=Object.keys(pn),e=n.length,r=0;r<e;r++)t[n[r]]={distance:-1,parent:null};return t}(),e=[t];for(n[t].distance=0;e.length;)for(var r=e.pop(),i=Object.keys(pn[r]),s=i.length,o=0;o<s;o++){var a=i[o],u=n[a];-1===u.distance&&(u.distance=n[r].distance+1,u.parent=r,e.unshift(a))}return n}function mn(t,n){return function(e){return n(t(e))}}function vn(t,n){for(var e=[n[t].parent,t],r=pn[n[t].parent][t],i=n[t].parent;n[i].parent;)e.unshift(n[i].parent),r=mn(pn[n[i].parent][i],r),i=n[i].parent;return r.conversion=e,r}var gn=sn.exports,bn=function(t){for(var n=yn(t),e={},r=Object.keys(n),i=r.length,s=0;s<i;s++){var o=r[s];null!==n[o].parent&&(e[o]=vn(o,n))}return e},wn={};Object.keys(gn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:gn[t].channels}),Object.defineProperty(wn[t],"labels",{value:gn[t].labels});var n=bn(t);Object.keys(n).forEach((function(e){var r=n[e];wn[t][e]=function(t){var n=function(n){if(null==n)return n;arguments.length>1&&(n=Array.prototype.slice.call(arguments));var e=t(n);if("object"==typeof e)for(var r=e.length,i=0;i<r;i++)e[i]=Math.round(e[i]);return e};return"conversion"in t&&(n.conversion=t.conversion),n}(r),wn[t][e].raw=function(t){var n=function(n){return null==n?n:(arguments.length>1&&(n=Array.prototype.slice.call(arguments)),t(n))};return"conversion"in t&&(n.conversion=t.conversion),n}(r)}))}));var Mn=wn,xn=Ht.exports,Fn=Mn,kn=[].slice,An=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[kn.call(Fn[t].labels).sort().join("")]=t}));var Sn={};function _n(t,n){if(!(this instanceof _n))return new _n(t,n);if(n&&n in An&&(n=null),n&&!(n in Fn))throw new Error("Unknown model: "+n);var e,r;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof _n)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var i=xn.get(t);if(null===i)throw new Error("Unable to parse color from string: "+t);this.model=i.model,r=Fn[this.model].channels,this.color=i.value.slice(0,r),this.valpha="number"==typeof i.value[r]?i.value[r]:1}else if(t.length){this.model=n||"rgb",r=Fn[this.model].channels;var s=kn.call(t,0,r);this.color=$n(s,r),this.valpha="number"==typeof t[r]?t[r]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var o=Object.keys(t);"alpha"in t&&(o.splice(o.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var a=o.sort().join("");if(!(a in Pn))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Pn[a];var u=Fn[this.model].labels,h=[];for(e=0;e<u.length;e++)h.push(t[u[e]]);this.color=$n(h)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var l=Sn[this.model][e];l&&(this.color[e]=l(this.color[e]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function On(t,n,e){return(t=Array.isArray(t)?t:[t]).forEach((function(t){(Sn[t]||(Sn[t]=[]))[n]=e})),t=t[0],function(r){var i;return arguments.length?(e&&(r=e(r)),(i=this[t]()).color[n]=r,i):(i=this[t]().color[n],e&&(i=e(i)),i)}}function En(t){return function(n){return Math.max(0,Math.min(t,n))}}function In(t){return Array.isArray(t)?t:[t]}function $n(t,n){for(var e=0;e<n;e++)"number"!=typeof t[e]&&(t[e]=0);return t}_n.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(t){var n=this.model in xn.to?this:this.rgb(),e=1===(n=n.round("number"==typeof t?t:1)).valpha?n.color:n.color.concat(this.valpha);return xn.to[n.model](e)},percentString:function(t){var n=this.rgb().round("number"==typeof t?t:1),e=1===n.valpha?n.color:n.color.concat(this.valpha);return xn.to.rgb.percent(e)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var t={},n=Fn[this.model].channels,e=Fn[this.model].labels,r=0;r<n;r++)t[e[r]]=this.color[r];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray:function(){var t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject:function(){var t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round:function(t){return t=Math.max(t||0,0),new _n(this.color.map(function(t){return function(n){return function(t,n){return Number(t.toFixed(n))}(n,t)}}(t)).concat(this.valpha),this.model)},alpha:function(t){return arguments.length?new _n(this.color.concat(Math.max(0,Math.min(1,t))),this.model):this.valpha},red:On("rgb",0,En(255)),green:On("rgb",1,En(255)),blue:On("rgb",2,En(255)),hue:On(["hsl","hsv","hsl","hwb","hcg"],0,(function(t){return(t%360+360)%360})),saturationl:On("hsl",1,En(100)),lightness:On("hsl",2,En(100)),saturationv:On("hsv",1,En(100)),value:On("hsv",2,En(100)),chroma:On("hcg",1,En(100)),gray:On("hcg",2,En(100)),white:On("hwb",1,En(100)),wblack:On("hwb",2,En(100)),cyan:On("cmyk",0,En(100)),magenta:On("cmyk",1,En(100)),yellow:On("cmyk",2,En(100)),black:On("cmyk",3,En(100)),x:On("xyz",0,En(100)),y:On("xyz",1,En(100)),z:On("xyz",2,En(100)),l:On("lab",0,En(100)),a:On("lab",1),b:On("lab",2),keyword:function(t){return arguments.length?new _n(t):Fn[this.model].keyword(this.color)},hex:function(t){return arguments.length?new _n(t):xn.to.hex(this.rgb().round().color)},rgbNumber:function(){var t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity:function(){for(var t=this.rgb().color,n=[],e=0;e<t.length;e++){var r=t[e]/255;n[e]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*n[0]+.7152*n[1]+.0722*n[2]},contrast:function(t){var n=this.luminosity(),e=t.luminosity();return n>e?(n+.05)/(e+.05):(e+.05)/(n+.05)},level:function(t){var n=this.contrast(t);return n>=7.1?"AAA":n>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),n=0;n<3;n++)t.color[n]=255-t.color[n];return t},lighten:function(t){var n=this.hsl();return n.color[2]+=n.color[2]*t,n},darken:function(t){var n=this.hsl();return n.color[2]-=n.color[2]*t,n},saturate:function(t){var n=this.hsl();return n.color[1]+=n.color[1]*t,n},desaturate:function(t){var n=this.hsl();return n.color[1]-=n.color[1]*t,n},whiten:function(t){var n=this.hwb();return n.color[1]+=n.color[1]*t,n},blacken:function(t){var n=this.hwb();return n.color[2]+=n.color[2]*t,n},grayscale:function(){var t=this.rgb().color,n=.3*t[0]+.59*t[1]+.11*t[2];return _n.rgb(n,n,n)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var n=this.hsl(),e=n.color[0];return e=(e=(e+t)%360)<0?360+e:e,n.color[0]=e,n},mix:function(t,n){if(!t||!t.rgb)throw new Error(\'Argument to "mix" was not a Color instance, but rather an instance of \'+typeof t);var e=t.rgb(),r=this.rgb(),i=void 0===n?.5:n,s=2*i-1,o=e.alpha()-r.alpha(),a=((s*o==-1?s:(s+o)/(1+s*o))+1)/2,u=1-a;return _n.rgb(a*e.red()+u*r.red(),a*e.green()+u*r.green(),a*e.blue()+u*r.blue(),e.alpha()*i+r.alpha()*(1-i))}},Object.keys(Fn).forEach((function(t){if(-1===An.indexOf(t)){var n=Fn[t].channels;_n.prototype[t]=function(){if(this.model===t)return new _n(this);if(arguments.length)return new _n(arguments,t);var e="number"==typeof arguments[n]?n:this.valpha;return new _n(In(Fn[this.model][t].raw(this.color)).concat(e),t)},_n[t]=function(e){return"number"==typeof e&&(e=$n(kn.call(arguments),n)),new _n(e,t)}}}));var zn=_n;\n/*!\n Feature Filter by\n\n (c) mapbox 2016 and maptalks 2018\n www.mapbox.com | www.maptalks.org\n License: MIT, header required.\n */const Cn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function Tn(t){return new Function("f","var p = (f && f.properties || {}); return "+Dn(t))}function Dn(t){if(!t)return"true";const n=t[0];if(t.length<=1)return"any"===n?"false":"true";return`(${"=="===n?Un(t[1],t[2],"===",!1):"!="===n?Un(t[1],t[2],"!==",!1):"<"===n||">"===n||"<="===n||">="===n?Un(t[1],t[2],n,!0):"any"===n?Ln(t.slice(1),"||"):"all"===n?Ln(t.slice(1),"&&"):"none"===n?Hn(Ln(t.slice(1),"||")):"in"===n?Vn(t[1],t.slice(2)):"!in"===n?Hn(Vn(t[1],t.slice(2))):"has"===n?Rn(t[1]):"!has"===n?Hn(Rn(t[1])):"contains"===n?function(t,n,e){const r=jn(t);return void 0!==e?`(${r} + \'\').indexOf("${n}") === ${e}`:`(${r} + \'\').indexOf("${n}") >= 0`}(t[1],t[2],t[3]):"true"})`}function jn(t){return"$"===t[0]?"f."+t.substring(1):"p["+JSON.stringify(t)+"]"}function Un(t,n,e,r){if("object"==typeof(i=t)&&i&&t.op)return function(t,n,e,r){const i=t.property,s=t.op;let o=jn(i);return"length"!==s?(console.error(`not support ${s} op`),"false"):(o=`((${o}+=\'\').length)`,Nn(o,i,n,e,r))}(t,n,e,r);var i;return Nn(jn(t),t,n,e,r)}function Nn(t,n,e,r,i){const s="$type"===n?Cn.indexOf(e):JSON.stringify(e);return(i?`typeof ${t}=== typeof ${s}&&`:"")+t+r+s}function Ln(t,n){return t.map(Dn).join(n)}function Vn(t,n){"$type"===t&&(n=n.map(t=>Cn.indexOf(t)));const e=JSON.stringify(n.sort(Wn)),r=jn(t);return n.length<=200?`${e}.indexOf(${r}) !== -1`:`function(v, a, i, j) {\\n while (i <= j) { var m = (i + j) >> 1;\\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\\n }\\n return false; }(${r}, ${e},0,${n.length-1})`}function Rn(t){return"$id"===t?\'"id" in f\':JSON.stringify(t)+" in p"}function Hn(t){return`!(${t})`}function Wn(t,n){return t<n?-1:t>n?1:0}var qn={exports:{}};qn.exports=function(){function t(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function n(t,n){return t<n?-1:t>n?1:0}return function(e,r,i,s,o){!function n(e,r,i,s,o){for(;s>i;){if(s-i>600){var a=s-i+1,u=r-i+1,h=Math.log(a),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(a-l)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*l/a+c)),d=Math.min(s,Math.floor(r+(a-u)*l/a+c));n(e,r,f,d,o)}var p=e[r],y=i,m=s;for(t(e,i,r),o(e[s],p)>0&&t(e,i,s);y<m;){for(t(e,y,m),y++,m--;o(e[y],p)<0;)y++;for(;o(e[m],p)>0;)m--}0===o(e[i],p)?t(e,i,m):(m++,t(e,m,s)),m<=r&&(i=m+1),r<=m&&(s=m-1)}}(e,r,i||0,s||e.length-1,o||n)}}();var Gn=qn.exports,Bn={exports:{}};function Jn(t,n){if(!(this instanceof Jn))return new Jn(t,n);if(this.data=t||[],this.length=this.data.length,this.compare=n||Xn,this.length>0)for(var e=(this.length>>1)-1;e>=0;e--)this.D(e)}function Xn(t,n){return t<n?-1:t>n?1:0}Bn.exports=Jn,Bn.exports.default=Jn,Jn.prototype={push:function(t){this.data.push(t),this.length++,this.j(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this.D(0)),this.data.pop(),t}},peek:function(){return this.data[0]},j:function(t){for(var n=this.data,e=this.compare,r=n[t];t>0;){var i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r},D:function(t){for(var n=this.data,e=this.compare,r=this.length>>1,i=n[t];t<r;){var s=1+(t<<1),o=s+1,a=n[s];if(o<this.length&&e(n[o],a)<0&&(s=o,a=n[o]),e(a,i)>=0)break;n[t]=a,t=s}n[t]=i}};var Yn=Bn.exports;\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Zn=[],Kn=[],Qn=[],te=[];function ne(t,n,e){const r=mt(Kn,n,e);t=kt(t,function(t,n,e,r,i,s,o,a,u,h){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=u,t[8]=h,t}(Zn,e[0],e[1],e[2],...r,...n));if((t=function(t){return t[3]<0?Pt(t,t,-1):t}(t=St(t,t)))[3]<1/32767){t[3]=1/32767;const n=Math.sqrt(.9999999990686206);t[0]*=n,t[1]*=n,t[2]*=n}const i=e[3]>0?mt(Qn,e,n):mt(Qn,n,e);return yt(mt(te,e,n),i)<0&&Pt(t,t,-1),t}const ee=[];function re(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=ee;i.length<t.length/3&&(i.length=t.length/3),i.fill(0,0,t.length/3);const s=void 0===n.length?n:n.length;for(let e=0;e<s/3;e++)void 0===n.length?ce(t,3*e,3*e+1,3*e+2,r,i):ce(t,n[3*e],n[3*e+1],n[3*e+2],r,i);for(let t=0;t<r.length;t+=3){const n=i[t/3];0!==n?(r[t]/=n,r[t+1]/=n,r[t+2]/=n):(r[t]=0,r[t+1]=0,r[t+2]=0)}return r}const ie=[],se=[],oe=[],ae=[],ue=[],he=[],le=[];function ce(t,n,e,r,i,s){ft(ae,t[3*n],t[3*n+1],t[3*n+2]),ft(ue,t[3*e],t[3*e+1],t[3*e+2]),ft(he,t[3*r],t[3*r+1],t[3*r+2]);const o=vt(ie,he,ue),a=vt(se,ae,ue),u=mt(oe,o,a);pt(le,u),i[3*n]=i[3*n]||0,i[3*e]=i[3*e]||0,i[3*r]=i[3*r]||0,i[3*n+1]=i[3*n+1]||0,i[3*e+1]=i[3*e+1]||0,i[3*r+1]=i[3*r+1]||0,i[3*n+2]=i[3*n+2]||0,i[3*e+2]=i[3*e+2]||0,i[3*r+2]=i[3*r+2]||0,i[3*n]+=le[0],i[3*e]+=le[0],i[3*r]+=le[0],i[3*n+1]+=le[1],i[3*e+1]+=le[1],i[3*r+1]+=le[1],i[3*n+2]+=le[2],i[3*e+2]+=le[2],i[3*r+2]+=le[2],s[n]+=1,s[e]+=1,s[r]+=1}\n/*!\n * Contains code from THREE.JS\n * https://github.com/mrdoob/three.js/\n * License MIT\n * \n * Generate tangents per vertex.\n */function fe(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function de(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var pe={exports:{}};function ye(t,n,e){e=e||2;var r,i,s,o,a,u,h,l=n&&n.length,c=l?n[0]*e:t.length,f=me(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(l&&(f=function(t,n,e,r){var i,s,o,a,u,h=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=me(t,o,a,r,!1))===u.next&&(u.steiner=!0),h.push(Se(u));for(h.sort(Fe),i=0;i<h.length;i++)e=ke(h[i],e);return e}(t,n,f,e)),t.length>80*e){r=s=t[0],i=o=t[1];for(var p=e;p<c;p+=e)(a=t[p])<r&&(r=a),(u=t[p+1])<i&&(i=u),a>s&&(s=a),u>o&&(o=u);h=0!==(h=Math.max(s-r,o-i))?32767/h:0}return ge(f,d,e,r,i,h,0),d}function me(t,n,e,r,i){var s,o;if(i===Le(t,n,e,r)>0)for(s=n;s<e;s+=r)o=je(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=je(s,t[s],t[s+1],o);return o&&Ie(o,o.next)&&(Ue(o),o=o.next),o}function ve(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Ie(r,r.next)&&0!==Ee(r.prev,r,r.next))r=r.next;else{if(Ue(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function ge(t,n,e,r,i,s,o){if(t){!o&&s&&function(t,n,e,r){var i=t;do{0===i.z&&(i.z=Pe(i.x,i.y,n,e,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var n,e,r,i,s,o,a,u,h=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<h&&(a++,r=r.nextZ);n++);for(u=h;a>0||u>0&&r;)0!==a&&(0===u||!r||e.z<=r.z)?(i=e,e=e.nextZ,a--):(i=r,r=r.nextZ,u--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;e=r}s.nextZ=null,h*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,h=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?we(t,r,i,s):be(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),Ue(t),t=u.next,h=u.next;else if((t=u)===h){o?1===o?ge(t=Me(ve(t),n,e),n,e,r,i,s,2):2===o&&xe(t,n,e,r,i,s):ge(ve(t),n,e,r,i,s,1);break}}}function be(t){var n=t.prev,e=t,r=t.next;if(Ee(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,h=r.y,l=i<s?i<o?i:o:s<o?s:o,c=a<u?a<h?a:h:u<h?u:h,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>h?a:h:u>h?u:h,p=r.next;p!==n;){if(p.x>=l&&p.x<=f&&p.y>=c&&p.y<=d&&_e(i,a,s,u,o,h,p.x,p.y)&&Ee(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function we(t,n,e,r){var i=t.prev,s=t,o=t.next;if(Ee(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,h=o.x,l=i.y,c=s.y,f=o.y,d=a<u?a<h?a:h:u<h?u:h,p=l<c?l<f?l:f:c<f?c:f,y=a>u?a>h?a:h:u>h?u:h,m=l>c?l>f?l:f:c>f?c:f,v=Pe(d,p,n,e,r),g=Pe(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=v&&w&&w.z<=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;if(b=b.prevZ,w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=g;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Me(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Ie(i,s)&&$e(i,r,r.next,s)&&Te(i,s)&&Te(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),Ue(r),Ue(r.next),r=t=s),r=r.next}while(r!==t);return ve(r)}function xe(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Oe(o,a)){var u=De(o,a);return o=ve(o,o.next),u=ve(u,u.next),ge(o,n,e,r,i,s,0),void ge(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Fe(t,n){return t.x-n.x}function ke(t,n){var e=function(t,n){var e,r=n,i=t.x,s=t.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>o&&(o=a,e=r.x<r.next.x?r:r.next,a===i))return e}r=r.next}while(r!==n);if(!e)return null;var u,h=e,l=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=l&&i!==r.x&&_e(s<c?i:o,s,l,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Te(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&Ae(e,r)))&&(e=r,f=u)),r=r.next}while(r!==h);return e}(t,n);if(!e)return n;var r=De(e,t);return ve(r,r.next),ve(e,e.next)}function Ae(t,n){return Ee(t.prev,t,n.prev)<0&&Ee(n.next,t,t.next)<0}function Pe(t,n,e,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-e)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*i|0)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function Se(t){var n=t,e=t;do{(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next}while(n!==t);return e}function _e(t,n,e,r,i,s,o,a){return(i-o)*(n-a)>=(t-o)*(s-a)&&(t-o)*(r-a)>=(e-o)*(n-a)&&(e-o)*(s-a)>=(i-o)*(r-a)}function Oe(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!function(t,n){var e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&$e(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Te(t,n)&&Te(n,t)&&function(t,n){var e=t,r=!1,i=(t.x+n.x)/2,s=(t.y+n.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&i<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next}while(e!==t);return r}(t,n)&&(Ee(t.prev,t,n.prev)||Ee(t,n.prev,n))||Ie(t,n)&&Ee(t.prev,t,t.next)>0&&Ee(n.prev,n,n.next)>0)}function Ee(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Ie(t,n){return t.x===n.x&&t.y===n.y}function $e(t,n,e,r){var i=Ce(Ee(t,n,e)),s=Ce(Ee(t,n,r)),o=Ce(Ee(e,r,t)),a=Ce(Ee(e,r,n));return i!==s&&o!==a||(!(0!==i||!ze(t,e,n))||(!(0!==s||!ze(t,r,n))||(!(0!==o||!ze(e,t,r))||!(0!==a||!ze(e,n,r)))))}function ze(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function Ce(t){return t>0?1:t<0?-1:0}function Te(t,n){return Ee(t.prev,t,t.next)<0?Ee(t,n,t.next)>=0&&Ee(t,t.prev,n)>=0:Ee(t,n,t.prev)<0||Ee(t,t.next,n)<0}function De(t,n){var e=new Ne(t.i,t.x,t.y),r=new Ne(n.i,n.x,n.y),i=t.next,s=n.prev;return t.next=n,n.prev=t,e.next=i,i.prev=e,r.next=e,e.prev=r,s.next=r,r.prev=s,r}function je(t,n,e,r){var i=new Ne(t,n,e);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ue(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ne(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Le(t,n,e,r){for(var i=0,s=n,o=e-r;s<e;s+=r)i+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return i}pe.exports=ye,pe.exports.default=ye,ye.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Le(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var h=n[a]*e,l=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Le(t,h,l,e))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*e,d=r[a+1]*e,p=r[a+2]*e;c+=Math.abs((t[f]-t[p])*(t[d+1]-t[f+1])-(t[f]-t[d])*(t[p+1]-t[f+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},ye.flatten=function(t){for(var n=t[0][0].length,e={vertices:[],holes:[],dimensions:n},r=0,i=0;i<t.length;i++){for(var s=0;s<t[i].length;s++)for(var o=0;o<n;o++)e.vertices.push(t[i][s][o]);i>0&&(r+=t[i-1].length,e.holes.push(r))}return e};var Ve=pe.exports;\n/*!\n * @maptalks/vector-packer v0.91.0\n * LICENSE : UNLICENSED\n * (c) 2016-2023 maptalks.com\n */const Re={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function He(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)We(e,t.features[r],n,r);else We(e,"Feature"===t.type?t:{geometry:t},n);return e}function We(t,n,e,r){if(n.geometry&&n.geometry.geometry){var i=n.geometry.coordinates,s=n.geometry.type,o=[],a=n.id;if(e.promoteId?a=n.properties[e.promoteId]:e.generateId&&(a=r||0),"Point"===s)qe(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)qe(i[u],o);else if("LineString"===s)Be([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)Ge(i[u],o=[]),t.push(Je(a,"LineString",o,n.properties));return}Be(i,o)}else if("Polygon"===s)Be(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)We(t,{id:a,geometry:n.geometry.geometries[u],properties:n.properties},e,r);return}return void console.warn(`Input data type(${s}) is not a valid GeoJSON geometry type.`)}for(u=0;u<i.length;u++){var h=[];Be(i[u],h),o.push(h)}}t.push(Je(a,s,o,n.properties))}}function qe(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function Ge(t,n){for(let e=0;e<t.length;e++){const r=new Ut(t[e][0],t[e][1]);r.z=100*(t[e][2]||0),n.push(r)}}function Be(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];Ge(t[i],s),n.push(s)}}function Je(t,n,e,r){return{id:void 0===t?null:t,type:Re[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Xe(t,{width:n,height:e},r,i){if(i){if(i.length!==n*e*r)throw new RangeError("mismatched image size")}else i=new Uint8Array(n*e*r);return t.width=n,t.height=e,t.data=i,t}function Ye(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Xe({},{width:n,height:e},r);Ze(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,e)},r),t.width=n,t.height=e,t.data=i.data}function Ze(t,n,e,r,i,s){if(0===i.width||0===i.height)return n;if(i.width>t.width||i.height>t.height||e.x>t.width-i.width||e.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>n.width||i.height>n.height||r.x>n.width-i.width||r.y>n.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const o=t.data,a=n.data;if(o===a)return n;for(let u=0;u<i.height;u++){const h=((e.y+u)*t.width+e.x)*s,l=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[l+t]=o[h+t]}return n}class Ke{constructor(t,n){Xe(this,t,1,n)}resize(t){Ye(this,t,1)}clone(){return new Ke({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,1)}}class Qe{constructor(t,n){Xe(this,t,4,n)}resize(t){Ye(this,t,4)}clone(){return new Qe({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,4)}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */class tr{constructor(t,n,{pixelRatio:e}){this.paddedRect=t,this.pixelRatio=e||1,this.padding=n}get tl(){return[this.paddedRect.x+this.padding,this.paddedRect.y+this.padding]}get br(){return[this.paddedRect.x+this.paddedRect.w-this.padding,this.paddedRect.y+this.paddedRect.h-this.padding]}get displaySize(){return[(this.paddedRect.w-2*this.padding)/this.pixelRatio,(this.paddedRect.h-2*this.padding)/this.pixelRatio]}}class nr{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n=Object.keys(t).length,e={},r=new Lt(0,0,{autoResize:!0}),i=[],s=n>1?1:0;for(const n in t){const r=t[n],o={x:0,y:0,w:r.data.width+2*s,h:r.data.height+2*s};i.push(o),e[n]=new tr(o,s,r)}if(r.pack(i,{inPlace:!0}),!er(r.w)||!er(r.h)){const t=rr(r.w),n=rr(r.h);r.resize(t,n)}const o=new Qe({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Qe.copy(r.data,o,{x:0,y:0},{x:i.x+s,y:i.y+s},r.data)}this.image=o,this.positions=e}}function er(t){return 0==(t&t-1)&&0!==t}function rr(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n * TODO 升级为potpack\n */class ir{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n={},e=new Lt(0,0,{autoResize:!0}),r=[];for(const e in t){const i=t[e],s=n[e]={};for(const t in i){const n=i[+t];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const e={x:0,y:0,w:n.bitmap.width+2,h:n.bitmap.height+2};r.push(e),s[t]={rect:e,metrics:n.metrics}}}e.pack(r,{inPlace:!0});const i=new Ke({width:e.w,height:e.h});for(const e in t){const r=t[e];for(const t in r){const s=r[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const o=n[e][t].rect;Ke.copy(s.bitmap,i,{x:0,y:0},{x:o.x+1,y:o.y+1},s.bitmap)}}this.image=i,this.positions=n}}function sr(t){return t<65536?Uint16Array:Uint32Array}function or(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function ar(t){return t<256?Uint8Array:t<65536?Uint16Array:t<Math.pow(2,32)?Uint32Array:Float64Array}function ur(t,n){const e=new n(t.length),r=e.length;for(let n=0;n<r;n++)e[n]=t[n];return e}function hr(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)qe(t.geometry[n],e);else if(2===n)Be(t.geometry,e);else if(3===n)Be(t.geometry,e);else if(5===n)Be(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];Be(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function lr(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];for(const n in e)t[n]=e[n]}return t}function cr(t){return null==t}function fr(t){return"number"==typeof t&&!isNaN(t)}function dr(t){return"object"==typeof t&&!!t}function pr(t){return!cr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function yr(t){return!cr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const mr=Object.prototype.hasOwnProperty;function vr(t,n){return mr.call(t,n)}const gr=Math.PI/180;function br(t){return t&&d(t)&&t.property}function wr(t){const{centimeterToPoint:n,tileRatio:e}=t;return n*e}function Mr(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const xr={};function Fr(t,n){if(!Array.isArray(n)){if(n&&void 0!==n.r&&void 0!==n.g&&void 0!==n.b)return t[0]=255*n.r,t[1]=255*n.g,t[2]=255*n.b,t[3]=void 0!==n.a?255*n.a:255,t;n=xr[n]=xr[n]||zn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const kr={textFill:1,textSize:1,textOpacity:1,textDx:1,textDy:1,markerWidth:1,markerHeight:1,markerOpacity:1,markerDx:1,markerDy:1,lineWidth:1,lineColor:1,lineOpacity:1,polygonFill:1,polygonOpacity:1},Ar={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var Pr=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:lr,isNil:cr,isNumber:fr,isInteger:function(t){return(0|t)===t},isObject:dr,isString:pr,isFunction:yr,hasOwn:vr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*gr},toDegree:function(t){return t/gr},evaluate:function(t,n,e){return yr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:br,getAltitudeToLocal:wr,getTubeSizeScale:Mr,normalizeColor:Fr,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!kr[t])return!1;for(let t=0;t<e.length;t++){const r=e[t]&&(e[t].feature||e[t]);if(!r)continue;const i=r.properties&&r.properties[n];if(i&&d(i)&&!p(i).isZoomConstant)return!0}return!1},checkIfZoomFnTypeSymbol:function(t){return!!kr[t]||!!Ar[t]}});function Sr(t){let n=0;for(let e,r,i=0,s=t.length,o=s-1;i<s;o=i++)if(e=t[i],r=t[o],void 0!==e.x){if(e.z||r.z)return 1;n+=(r.x-e.x)*(e.y+r.y)}else{if(e[2]||r[2])return 1;n+=(r[0]-e[0])*(e[1]+r[1])}return n}function _r(t,n,e,r,i){const s=t[n*r],o=t[n*r+1],a=t[e*r],u=t[e*r+1];return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Or(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function Er(t,n,e,r,i,s,o){n||0===n||(n=1);const a=Or(t.properties,e,r),u=a*n;let h=(s?100*s:0)||a;return i?h=Or(t.properties,i,s):o&&(h=a-Or(t.properties,o,s)),h*=n,{altitude:u,height:h}}function Ir(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function $r(t){return null==t}function zr(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function Cr(t,n){if(!n)return null;const e=new Map;for(let r=0;r<n.length;r++){const i=n[r],s=t[i];let o=e.get(s);o||(o=[],e.set(s,o)),o.push(i)}return e}class Tr{constructor(t,n,e,r){this.feature=t,this.symbol=n,this.fnTypes=e,this.options=r}getPolygonResource(){let t=this.symbol.polygonPatternFile;const{polygonPatternFileFn:n}=this.fnTypes;return this.U(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.U(t,n)}U(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Dr(t,n,e,r){const i=Math.abs(r)>>15,s=i>>1,o=i%2;let a=r%Math.pow(2,15);const u=n+(s<<14)*Math.sign(n),h=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=h,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const jr=Math.pow(2,14),Ur=Math.pow(2,15);\n/*!\n * a compact version of mapbox-gl-style-spec\n * based on mapbox-gl-style-spec@13.28.0\n * https://github.com/mapbox/mapbox-gl-js/tree/main/src/style-spec\n * LICENSE : ISC\n */var Nr,Lr,Vr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Rr={exports:{}};function Hr(t,...n){for(const e of n)for(const n in e)t[n]=e[n];return t}\n/*! https://mths.be/punycode v1.3.2 by @mathias */Nr=Rr,Lr=Rr.exports,function(t){var n=Lr&&!Lr.nodeType&&Lr,e=Nr&&!Nr.nodeType&&Nr,r="object"==typeof Vr&&Vr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,h=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,f=String.fromCharCode;function d(t){throw RangeError(l[t])}function p(t,n){for(var e=t.length,r=[];e--;)r[e]=n(t[e]);return r}function y(t,n){var e=t.split("@"),r="";return e.length>1&&(r=e[0]+"@",t=e[1]),r+p((t=t.replace(h,".")).split("."),n).join(".")}function m(t){for(var n,e,r=[],i=0,s=t.length;i<s;)(n=t.charCodeAt(i++))>=55296&&n<=56319&&i<s?56320==(64512&(e=t.charCodeAt(i++)))?r.push(((1023&n)<<10)+(1023&e)+65536):(r.push(n),i--):r.push(n);return r}function v(t){return p(t,(function(t){var n="";return t>65535&&(n+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+f(t)})).join("")}function g(t,n){return t+22+75*(t<26)-((0!=n)<<5)}function b(t,n,e){var r=0;for(t=e?c(t/700):t>>1,t+=c(t/n);t>455;r+=36)t=c(t/35);return c(r+36*t/(t+38))}function w(t){var n,e,r,i,s,a,u,h,l,f,p,y=[],m=t.length,g=0,w=128,M=72;for((e=t.lastIndexOf("-"))<0&&(e=0),r=0;r<e;++r)t.charCodeAt(r)>=128&&d("not-basic"),y.push(t.charCodeAt(r));for(i=e>0?e+1:0;i<m;){for(s=g,a=1,u=36;i>=m&&d("invalid-input"),((h=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||h>c((o-g)/a))&&d("overflow"),g+=h*a,!(h<(l=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-l))&&d("overflow"),a*=f;M=b(g-s,n=y.length+1,0==s),c(g/n)>o-w&&d("overflow"),w+=c(g/n),g%=n,y.splice(g++,0,w)}return v(y)}function M(t){var n,e,r,i,s,a,u,h,l,p,y,v,w,M,x,F=[];for(v=(t=m(t)).length,n=128,e=0,s=72,a=0;a<v;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<v;){for(u=o,a=0;a<v;++a)(y=t[a])>=n&&y<u&&(u=y);for(u-n>c((o-e)/(w=r+1))&&d("overflow"),e+=(u-n)*w,n=u,a=0;a<v;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(h=e,l=36;!(h<(p=l<=s?1:l>=s+26?26:l-s));l+=36)F.push(f(g(p+(x=h-p)%(M=36-p),0))),h=c(x/M);F.push(f(g(h,0))),s=b(e,w,r==i),e=0,++r}++e,++n}return F.join("")}if(i={version:"1.3.2",ucs2:{decode:m,encode:v},decode:w,encode:M,toASCII:function(t){return y(t,(function(t){return u.test(t)?"xn--"+M(t):t}))},toUnicode:function(t){return y(t,(function(t){return a.test(t)?w(t.slice(4).toLowerCase()):t}))}},n&&e)if(Nr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Vr);class Wr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var qr=Wr;class Gr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Gr(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var Br=Gr;const Jr={kind:"null"},Xr={kind:"number"},Yr={kind:"string"},Zr={kind:"boolean"},Kr={kind:"color"},Qr={kind:"object"},ti={kind:"value"},ni={kind:"collator"},ei={kind:"formatted"},ri={kind:"resolvedImage"};function ii(t,n){return{kind:"array",itemType:t,N:n}}function si(t){if("array"===t.kind){const n=si(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const oi=[Jr,Xr,Yr,Zr,Kr,ei,Qr,ii(ti),ri];function ai(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!ai(t.itemType,n.itemType))&&("number"!=typeof t.N||t.N===n.N))return null}else{if(t.kind===n.kind)return null;if("value"===t.kind)for(const t of oi)if(!ai(t,n))return null}return`Expected ${si(t)} but found ${si(n)} instead.`}function ui(t,n){return n.some(n=>n.kind===t.kind)}function hi(t,n){return n.some(n=>"null"===n?null===t:"array"===n?Array.isArray(t):"object"===n?t&&!Array.isArray(t)&&"object"==typeof t:n===typeof t)}var li,ci={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 fi(t){return(t=Math.round(t))<0?0:t>255?255:t}function di(t){return fi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function pi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function yi(t,n,e){return e<0?e+=1:e>1&&(e-=1),6*e<1?t+(n-t)*e*6:2*e<1?n:3*e<2?t+(n-t)*(2/3-e)*6:t}try{li={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in ci)return ci[e].slice();if("#"===e[0])return 4===e.length?(n=parseInt(e.substr(1),16))>=0&&n<=4095?[(3840&n)>>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1]:null:7===e.length&&(n=parseInt(e.substr(1),16))>=0&&n<=16777215?[(16711680&n)>>16,(65280&n)>>8,255&n,1]:null;var r=e.indexOf("("),i=e.indexOf(")");if(-1!==r&&i+1===e.length){var s=e.substr(0,r),o=e.substr(r+1,i-(r+1)).split(","),a=1;switch(s){case"rgba":if(4!==o.length)return null;a=pi(o.pop());case"rgb":return 3!==o.length?null:[di(o[0]),di(o[1]),di(o[2]),a];case"hsla":if(4!==o.length)return null;a=pi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,h=pi(o[1]),l=pi(o[2]),c=l<=.5?l*(h+1):l+h-l*h,f=2*l-c;return[fi(255*yi(f,c,u+1/3)),fi(255*yi(f,c,u)),fi(255*yi(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class mi{constructor(t,n,e,r=1){this.r=t,this.g=n,this.b=e,this.a=r}static parse(t){if(!t)return;if(t instanceof mi)return t;if("string"!=typeof t)return;const n=li(t);return n?new mi(n[0]/255*n[3],n[1]/255*n[3],n[2]/255*n[3],n[3]):void 0}toString(){const[t,n,e,r]=this.toArray();return`rgba(${Math.round(t)},${Math.round(n)},${Math.round(e)},${r})`}toArray(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[255*t/r,255*n/r,255*e/r,r]}toArray01(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[t/r,n/r,e/r,r]}toArray01PremultipliedAlpha(){const{r:t,g:n,b:e,a:r}=this;return[t,n,e,r]}}mi.black=new mi(0,0,0,1),mi.white=new mi(1,1,1,1),mi.transparent=new mi(0,0,0,0),mi.red=new mi(1,0,0,1),mi.blue=new mi(0,0,1,1);var vi=mi;class gi{constructor(t,n,e){this.sensitivity=t?n?"variant":"case":n?"accent":"base",this.locale=e,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,n){return this.collator.compare(t,n)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class bi{constructor(t,n,e,r,i){this.text=t.normalize?t.normalize():t,this.image=n,this.scale=e,this.fontStack=r,this.textColor=i}}class wi{constructor(t){this.sections=t}static fromString(t){return new wi([new bi(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(t){return t instanceof wi?t:wi.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const n of this.sections){if(n.image){t.push(["image",n.image.name]);continue}t.push(n.text);const e={};n.fontStack&&(e["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(e["font-scale"]=n.scale),n.textColor&&(e["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(e)}return t}}class Mi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Mi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function xi(t,n,e,r){return"number"==typeof t&&t>=0&&t<=255&&"number"==typeof n&&n>=0&&n<=255&&"number"==typeof e&&e>=0&&e<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,n,e,r].join(", ")}]: \'a\' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,n,e,r]:[t,n,e]).join(", ")}]: \'r\', \'g\', and \'b\' must be between 0 and 255.`}function Fi(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof vi)return!0;if(t instanceof gi)return!0;if(t instanceof wi)return!0;if(t instanceof Mi)return!0;if(Array.isArray(t)){for(const n of t)if(!Fi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Fi(t[n]))return!1;return!0}return!1}function ki(t){if(null===t)return Jr;if("string"==typeof t)return Yr;if("boolean"==typeof t)return Zr;if("number"==typeof t)return Xr;if(t instanceof vi)return Kr;if(t instanceof gi)return ni;if(t instanceof wi)return ei;if(t instanceof Mi)return ri;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=ki(n);if(e){if(e===t)continue;e=ti;break}e=t}return ii(e||ti,n)}return Qr}function Ai(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof vi||t instanceof wi||t instanceof Mi?t.toString():JSON.stringify(t)}class Pi{constructor(t,n){this.type=t,this.value=n}static parse(t,n){if(2!==t.length)return n.error(`\'literal\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fi(t[1]))return n.error("invalid value");const e=t[1];let r=ki(e);const i=n.expectedType;return"array"!==r.kind||0!==r.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(r=i),new Pi(r,e)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof vi?["rgba"].concat(this.value.toArray()):this.value instanceof wi?this.value.serialize():this.value}}var Si=Pi,_i=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Oi={string:Yr,number:Xr,boolean:Zr,object:Qr};class Ei{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let e,r=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const e=t[1];if("string"!=typeof e||!(e in Oi)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Oi[e],r++}else i=ti;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(\'The length argument to "array" must be a positive integer literal\',2);s=t[2],r++}e=ii(i,s)}else e=Oi[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,ti);if(!e)return null;s.push(e)}return new Ei(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!ai(this.type,ki(e)))return e;if(n===this.args.length-1)throw new _i(`Expected value to be of type ${si(this.type)}, but found ${si(ki(e))} instead.`)}return null}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=this.type,n=[t.kind];if("array"===t.kind){const e=t.itemType;if("string"===e.kind||"number"===e.kind||"boolean"===e.kind){n.push(e.kind);const r=t.N;("number"==typeof r||this.args.length>1)&&n.push(r)}}return n.concat(this.args.map(t=>t.serialize()))}}var Ii=Ei;class $i{constructor(t){this.type=ei,this.sections=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[1];if(!Array.isArray(e)&&"object"==typeof e)return n.error("First argument must be an image or text section.");const r=[];let i=!1;for(let e=1;e<=t.length-1;++e){const s=t[e];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=n.parse(s["font-scale"],1,Xr),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ii(Yr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Kr),!o))return null;const a=r[r.length-1];a.scale=t,a.font=e,a.textColor=o}else{const s=n.parse(t[e],1,ti);if(!s)return null;const o=s.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be \'string\', \'value\', \'image\' or \'null\'.");i=!0,r.push({content:s,scale:null,font:null,textColor:null})}}return new $i(r)}evaluate(t){return new wi(this.sections.map(n=>{const e=n.content.evaluate(t);return ki(e)===ri?new bi("",e,null,null,null):new bi(Ai(e),null,n.scale?n.scale.evaluate(t):null,n.font?n.font.evaluate(t).join(","):null,n.textColor?n.textColor.evaluate(t):null)}))}eachChild(t){for(const n of this.sections)t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const n of this.sections){t.push(n.content.serialize());const e={};n.scale&&(e["font-scale"]=n.scale.serialize()),n.font&&(e["text-font"]=n.font.serialize()),n.textColor&&(e["text-color"]=n.textColor.serialize()),t.push(e)}return t}}class zi{constructor(t){this.type=ri,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Yr);return e?new zi(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=Mi.fromString(n);return e&&t.availableImages&&(e.available=t.availableImages.indexOf(n)>-1),e}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Ci={"to-boolean":Zr,"to-color":Kr,"to-number":Xr,"to-string":Yr};class Ti{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[0];if(("to-boolean"===e||"to-string"===e)&&2!==t.length)return n.error("Expected one argument.");const r=Ci[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,ti);if(!r)return null;i.push(r)}return new Ti(r,i)}evaluate(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){let n,e;for(const r of this.args){if(n=r.evaluate(t),e=null,n instanceof vi)return n;if("string"==typeof n){const e=t.parseColor(n);if(e)return e}else if(Array.isArray(n)&&(e=n.length<3||n.length>4?`Invalid rbga value ${JSON.stringify(n)}: expected an array containing either three or four numeric values.`:xi(n[0],n[1],n[2],n[3]),!e))return new vi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new _i(e||`Could not parse color from value \'${"string"==typeof n?n:String(JSON.stringify(n))}\'`)}if("number"===this.type.kind){let n=null;for(const e of this.args){if(n=e.evaluate(t),null===n)return 0;const r=Number(n);if(!isNaN(r))return r}throw new _i(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?wi.fromString(Ai(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Mi.fromString(Ai(this.args[0].evaluate(t))):Ai(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if("formatted"===this.type.kind)return new $i([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new zi(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Di=Ti;const ji=["Unknown","Point","LineString","Polygon"];var Ui=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.L={},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?ji[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){const t=this.featureDistanceData.center,n=this.featureDistanceData.scale,{x:e,y:r}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(e*n-t[0])+this.featureDistanceData.bearing[1]*(r*n-t[1])}return 0}parseColor(t){let n=this.L[t];return n||(n=this.L[t]=vi.parse(t)),n}};class Ni{constructor(t,n,e,r){this.name=t,this.type=n,this.V=e,this.args=r}evaluate(t){return this.V(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,n){const e=t[0],r=Ni.definitions[e];if(!r)return n.error(`Unknown expression "${e}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(r)?r[0]:r.type,s=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=s.filter(([n])=>!Array.isArray(n)||n.length===t.length-1);let a=null;for(const[r,s]of o){a=new cs(n.registry,n.path,null,n.scope);const o=[];let u=!1;for(let n=1;n<t.length;n++){const e=t[n],i=Array.isArray(r)?r[n-1]:r.type,s=a.parse(e,1+o.length,i);if(!s){u=!0;break}o.push(s)}if(!u)if(Array.isArray(r)&&r.length!==o.length)a.error(`Expected ${r.length} arguments, but found ${o.length} instead.`);else{for(let t=0;t<o.length;t++){const n=Array.isArray(r)?r[t]:r.type,e=o[t];a.concat(t+1).checkSubtype(n,e.type)}if(0===a.errors.length)return new Ni(e,i,s,o)}}if(1===o.length)n.errors.push(...a.errors);else{const e=(o.length?o:s).map(([t])=>{return n=t,Array.isArray(n)?`(${n.map(si).join(", ")})`:`(${si(n.type)}...)`;var n}).join(" | "),r=[];for(let e=1;e<t.length;e++){const i=n.parse(t[e],1+r.length);if(!i)return null;r.push(si(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){Ni.definitions=n;for(const e in n)t[e]=Ni}}var Li=Ni;class Vi{constructor(t,n,e){this.type=ni,this.locale=e,this.caseSensitive=t,this.diacriticSensitive=n}static parse(t,n){if(2!==t.length)return n.error("Expected one argument.");const e=t[1];if("object"!=typeof e||Array.isArray(e))return n.error("Collator options argument must be an object.");const r=n.parse(void 0!==e["case-sensitive"]&&e["case-sensitive"],1,Zr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Zr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Yr),!s)?null:new Vi(r,i,s)}evaluate(t){return new gi(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}serialize(){const t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]}}function Ri(t,n){t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[0]),t[3]=Math.max(t[3],n[1])}function Hi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Wi(t,n){const e=(180+t[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,n.z);return[Math.round(e*i*8192),Math.round(r*i*8192)]}function qi(t,n,e){const r=t[0]-n[0],i=t[1]-n[1],s=t[0]-e[0],o=t[1]-e[1];return r*o-s*i==0&&r*s<=0&&i*o<=0}function Gi(t,n){let e=!1;for(let o=0,a=n.length;o<a;o++){const a=n[o];for(let n=0,o=a.length;n<o-1;n++){if(qi(t,a[n],a[n+1]))return!1;(i=a[n])[1]>(r=t)[1]!=(s=a[n+1])[1]>r[1]&&r[0]<(s[0]-i[0])*(r[1]-i[1])/(s[1]-i[1])+i[0]&&(e=!e)}}var r,i,s;return e}function Bi(t,n){for(let e=0;e<n.length;e++)if(Gi(t,n[e]))return!0;return!1}function Ji(t,n,e,r){const i=r[0]-e[0],s=r[1]-e[1],o=(t[0]-e[0])*s-i*(t[1]-e[1]),a=(n[0]-e[0])*s-i*(n[1]-e[1]);return o>0&&a<0||o<0&&a>0}function Xi(t,n,e){for(const h of e)for(let e=0;e<h.length-1;++e)if(void 0,void 0,0!=(a=[(o=h[e+1])[0]-(s=h[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Ji(r,i,s,o)&&Ji(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Yi(t,n){for(let e=0;e<t.length;++e)if(!Gi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Xi(t[e],t[e+1],n))return!1;return!0}function Zi(t,n){for(let e=0;e<n.length;e++)if(Yi(t,n[e]))return!0;return!1}function Ki(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=[];for(let r=0;r<t[i].length;r++){const o=Wi(t[i][r],e);Ri(n,o),s.push(o)}r.push(s)}return r}function Qi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Ki(t[i],n,e);r.push(s)}return r}function ts(t,n,e,r){if(t[0]<e[0]||t[0]>e[2]){const n=.5*r;let i=t[0]-e[0]>n?-r:e[0]-t[0]>n?r:0;0===i&&(i=t[0]-e[2]>n?-r:e[2]-t[0]>n?r:0),t[0]+=i}Ri(n,t)}function ns(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const r of t)for(const t of r){const r=[t.x+s[0],t.y+s[1]];ts(r,n,e,i),o.push(r)}return o}function es(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const e of t){const t=[];for(const r of e){const e=[r.x+s[0],r.y+s[1]];Ri(n,e),t.push(e)}o.push(t)}if(n[2]-n[0]<=i/2){(a=n)[0]=a[1]=1/0,a[2]=a[3]=-1/0;for(const t of o)for(const r of t)ts(r,n,e,i)}var a;return o}class rs{constructor(t,n){this.type=Zr,this.geojson=t,this.geometries=n}static parse(t,n){if(2!==t.length)return n.error(`\'within\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fi(t[1])){const n=t[1];if("FeatureCollection"===n.type)for(let t=0;t<n.features.length;++t){const e=n.features[t].geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new rs(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new rs(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new rs(n,n)}return n.error("\'within\' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Gi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Bi(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Yi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Zi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var is=rs;function ss(t){if(t instanceof Li){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof is)return!1;let n=!0;return t.eachChild(t=>{n&&!ss(t)&&(n=!1)}),n}function os(t){if(t instanceof Li&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!os(t)&&(n=!1)}),n}function as(t,n){if(t instanceof Li&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!as(t,n)&&(e=!1)}),e}class us{constructor(t,n){this.type=n.type,this.name=t,this.boundExpression=n}static parse(t,n){if(2!==t.length||"string"!=typeof t[1])return n.error("\'var\' expression requires exactly one string literal argument.");const e=t[1];return n.scope.has(e)?new us(e,n.scope.get(e)):n.error(`Unknown variable "${e}". Make sure "${e}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var hs=us;class ls{constructor(t,n=[],e,r=new Br,i=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=r,this.errors=i,this.expectedType=e}parse(t,n,e,r,i={}){return n?this.concat(n,e,r).R(t,i):this.R(t,i)}R(t,n){function e(t,n,e){return"assert"===e?new Ii(n,[t]):"coerce"===e?new Di(n,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error(\'Expected an array with at least one element. If you wanted a literal array, use ["literal", []].\');const r=t[0];if("string"!=typeof r)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[r];if(i){let r=i.parse(t,this);if(!r)return null;if(this.expectedType){const t=this.expectedType,i=r.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else r=e(r,t,n.typeAnnotation||"coerce");else r=e(r,t,n.typeAnnotation||"assert")}if(!(r instanceof Si)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof hs)return t(n.boundExpression);if(n instanceof Li&&"error"===n.name)return!1;if(n instanceof Vi)return!1;if(n instanceof is)return!1;const e=n instanceof Di||n instanceof Ii;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof Si}),!!r&&(ss(n)&&as(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Ui;try{r=new Si(r.type,r.evaluate(n))}catch(t){return this.error(t.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"\'undefined\' value invalid. Use null instead.":"object"==typeof t?\'Bare objects invalid. Use ["literal", {...}] instead.\':`Expected an array, but found ${typeof t} instead.`)}concat(t,n,e){const r="number"==typeof t?this.path.concat(t):this.path,i=e?this.scope.concat(e):this.scope;return new ls(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new qr(e,t))}checkSubtype(t,n){const e=ai(t,n);return e&&this.error(e),e}}var cs=ls;function fs(t,n){const e=t.length-1;let r,i,s=0,o=e,a=0;for(;s<=o;)if(a=Math.floor((s+o)/2),r=t[a],i=t[a+1],r<=n){if(a===e||n<i)return a;s=a+1}else{if(!(r>n))throw new _i("Input is not a number.");o=a-1}return 0}class ds{constructor(t,n,e){this.type=t,this.input=n,this.labels=[],this.outputs=[];for(const[t,n]of e)this.labels.push(t),this.outputs.push(n)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=[];let i=null;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);for(let e=1;e<t.length;e+=2){const s=1===e?-1/0:t[e],o=t[e+1],a=e,u=e+1;if("number"!=typeof s)return n.error(\'Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',a);if(r.length&&r[r.length-1][0]>=s)return n.error(\'Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.\',a);const h=n.parse(o,u,i);if(!h)return null;i=i||h.type,r.push([s,h])}return new ds(i,e,r)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;return r>=n[i-1]?e[i-1].evaluate(t):e[fs(n,r)].evaluate(t)}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let n=0;n<this.labels.length;n++)n>0&&t.push(this.labels[n]),t.push(this.outputs[n].serialize());return t}}var ps=ds,ys=ms;function ms(t,n,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*n,this.by=3*(r-n)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=e,this.p2y=r}function vs(t,n,e){return t*(1-e)+n*e}ms.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,n){if(void 0===n&&(n=1e-6),t<0)return 0;if(t>1)return 1;for(var e=t,r=0;r<8;r++){var i=this.sampleCurveX(e)-t;if(Math.abs(i)<n)return e;var s=this.sampleCurveDerivativeX(e);if(Math.abs(s)<1e-6)break;e-=i/s}var o=0,a=1;for(e=t,r=0;r<20&&(i=this.sampleCurveX(e),!(Math.abs(i-t)<n));r++)t>i?o=e:a=e,e=.5*(a-o)+o;return e},solve:function(t,n){return this.sampleCurveY(this.solveCurveX(t,n))}};var gs=Object.freeze({__proto__:null,number:vs,color:function(t,n,e){return new vi(vs(t.r,n.r,e),vs(t.g,n.g,e),vs(t.b,n.b,e),vs(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>vs(t,n[r],e))}});const bs=6/29*3*(6/29),ws=Math.PI/180,Ms=180/Math.PI;function xs(t){return t>.008856451679035631?Math.pow(t,1/3):t/bs+4/29}function Fs(t){return t>6/29?t*t*t:bs*(t-4/29)}function ks(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function As(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ps(t){const n=As(t.r),e=As(t.g),r=As(t.b),i=xs((.4124564*n+.3575761*e+.1804375*r)/.95047),s=xs((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-xs((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function Ss(t){let n=(t.l+16)/116,e=isNaN(t.a)?n:n+t.a/500,r=isNaN(t.b)?n:n-t.b/200;return n=1*Fs(n),e=.95047*Fs(e),r=1.08883*Fs(r),new vi(ks(3.2404542*e-1.5371385*n-.4985314*r),ks(-.969266*e+1.8760108*n+.041556*r),ks(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function _s(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Os={forward:Ps,reverse:Ss,interpolate:function(t,n,e){return{l:vs(t.l,n.l,e),a:vs(t.a,n.a,e),b:vs(t.b,n.b,e),alpha:vs(t.alpha,n.alpha,e)}}},Es={forward:function(t){const{l:n,a:e,b:r}=Ps(t),i=Math.atan2(r,e)*Ms;return{h:i<0?i+360:i,c:Math.sqrt(e*e+r*r),l:n,alpha:t.a}},reverse:function(t){const n=t.h*ws,e=t.c;return Ss({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:_s(t.h,n.h,e),c:vs(t.c,n.c,e),l:vs(t.l,n.l,e),alpha:vs(t.alpha,n.alpha,e)}}};var Is=Object.freeze({__proto__:null,lab:Os,hcl:Es});class $s{constructor(t,n,e,r,i){this.type=t,this.operator=n,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(const[t,n]of i)this.labels.push(t),this.outputs.push(n)}static interpolationFactor(t,n,e,r){let i=0;if("exponential"===t.name)i=zs(n,t.base,e,r);else if("linear"===t.name)i=zs(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ys(s[0],s[1],s[2],s[3]).solve(zs(n,1,e,r))}return i}static parse(t,n){let[e,r,i,...s]=t;if(!Array.isArray(r)||0===r.length)return n.error("Expected an interpolation type expression.",1);if("linear"===r[0])r={name:"linear"};else if("exponential"===r[0]){const t=r[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);r={name:"exponential",base:t}}else{if("cubic-bezier"!==r[0])return n.error("Unknown interpolation type "+String(r[0]),1,0);{const t=r.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(i=n.parse(i,2,Xr),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Kr:n.expectedType&&"value"!==n.expectedType.kind&&(a=n.expectedType);for(let t=0;t<s.length;t+=2){const e=s[t],r=s[t+1],i=t+3,u=t+4;if("number"!=typeof e)return n.error(\'Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',i);if(o.length&&o[o.length-1][0]>=e)return n.error(\'Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.\',i);const h=n.parse(r,u,a);if(!h)return null;a=a||h.type,o.push([e,h])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new $s(a,e,r,i,o):n.error(`Type ${si(a)} is not interpolatable.`)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;if(r>=n[i-1])return e[i-1].evaluate(t);const s=fs(n,r),o=$s.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?gs[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?Es.reverse(Es.interpolate(Es.forward(a),Es.forward(u),o)):Os.reverse(Os.interpolate(Os.forward(a),Os.forward(u),o))}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const n=[this.operator,t,this.input.serialize()];for(let t=0;t<this.labels.length;t++)n.push(this.labels[t],this.outputs[t].serialize());return n}}function zs(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}var Cs=$s;class Ts{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expectected at least one argument.");let e=null;const r=n.expectedType;r&&"value"!==r.kind&&(e=r);const i=[];for(const r of t.slice(1)){const t=n.parse(r,1+i.length,e,void 0,{typeAnnotation:"omit"});if(!t)return null;e=e||t.type,i.push(t)}const s=r&&i.some(t=>ai(r,t.type));return new Ts(s?ti:e,i)}evaluate(t){let n,e=null,r=0;for(const i of this.args){if(r++,e=i.evaluate(t),e&&e instanceof Mi&&!e.available&&(n||(n=e),e=null,r===this.args.length))return n;if(null!==e)break}return e}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ds=Ts;class js{constructor(t,n){this.type=n.type,this.bindings=[].concat(t),this.result=n}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const n of this.bindings)t(n[1]);t(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const e=[];for(let r=1;r<t.length-1;r+=2){const i=t[r];if("string"!=typeof i)return n.error(`Expected string, but found ${typeof i} instead.`,r);if(/[^a-zA-Z0-9_]/.test(i))return n.error("Variable names must contain only alphanumeric characters or \'_\'.",r);const s=n.parse(t[r+1],r+1);if(!s)return null;e.push([i,s])}const r=n.parse(t[t.length-1],t.length-1,n.expectedType,e);return r?new js(e,r):null}outputDefined(){return this.result.outputDefined()}serialize(){const t=["let"];for(const[n,e]of this.bindings)t.push(n,e.serialize());return t.push(this.result.serialize()),t}}var Us=js;class Ns{constructor(t,n,e){this.type=t,this.index=n,this.input=e}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,Xr),r=n.parse(t[2],2,ii(n.expectedType||ti));return e&&r?new Ns(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new _i(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new _i(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new _i(`Array index must be an integer, but found ${n} instead.`);return e[n]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var Ls=Ns;class Vs{constructor(t,n){this.type=Zr,this.needle=t,this.haystack=n}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);return e&&r?ui(e.type,[Zr,Yr,Xr,Jr,ti])?new Vs(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);return e.indexOf(n)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var Rs=Vs;class Hs{constructor(t,n,e){this.type=Xr,this.needle=t,this.haystack=n,this.fromIndex=e}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);if(!e||!r)return null;if(!ui(e.type,[Zr,Yr,Xr,Jr,ti]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Hs(e,r,i):null}return new Hs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);if(this.fromIndex){const r=this.fromIndex.evaluate(t);return e.indexOf(n,r)}return e.indexOf(n)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var Ws=Hs;class qs{constructor(t,n,e,r,i,s){this.inputType=t,this.type=n,this.input=e,this.cases=r,this.outputs=i,this.otherwise=s}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error("Expected an even number of arguments.");let e,r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i={},s=[];for(let o=2;o<t.length-1;o+=2){let a=t[o];const u=t[o+1];Array.isArray(a)||(a=[a]);const h=n.concat(o);if(0===a.length)return h.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return h.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return h.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return h.error("Numeric branch labels must be integer values.");if(e){if(h.checkSubtype(e,ki(t)))return null}else e=ki(t);if(void 0!==i[String(t)])return h.error("Branch labels must be unique.");i[String(t)]=s.length}const l=n.parse(u,o,r);if(!l)return null;r=r||l.type,s.push(l)}const o=n.parse(t[1],1,ti);if(!o)return null;const a=n.parse(t[t.length-1],t.length-1,r);return a?"value"!==o.type.kind&&n.concat(1).checkSubtype(e,o.type)?null:new qs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(ki(n)===this.inputType&&this.outputs[this.cases[n]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],n=Object.keys(this.cases).sort(),e=[],r={};for(const t of n){const n=r[this.cases[t]];void 0===n?(r[this.cases[t]]=e.length,e.push([this.cases[t],[t]])):e[n][1].push(t)}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[n,r]of e)t.push(1===r.length?i(r[0]):r.map(i)),t.push(this.outputs[n].serialize());return t.push(this.otherwise.serialize()),t}}var Gs=qs;class Bs{constructor(t,n,e){this.type=t,this.branches=n,this.otherwise=e}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error("Expected an odd number of arguments.");let e;n.expectedType&&"value"!==n.expectedType.kind&&(e=n.expectedType);const r=[];for(let i=1;i<t.length-1;i+=2){const s=n.parse(t[i],i,Zr);if(!s)return null;const o=n.parse(t[i+1],i+1,e);if(!o)return null;r.push([s,o]),e=e||o.type}const i=n.parse(t[t.length-1],t.length-1,e);return i?new Bs(e,r,i):null}evaluate(t){for(const[n,e]of this.branches)if(n.evaluate(t))return e.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[n,e]of this.branches)t(n),t(e);t(this.otherwise)}outputDefined(){return this.branches.every(([t,n])=>n.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Js=Bs;class Xs{constructor(t,n,e,r){this.type=t,this.input=n,this.beginIndex=e,this.endIndex=r}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,Xr);if(!e||!r)return null;if(!ui(e.type,[ii(ti),Yr,ti]))return n.error(`Expected first argument to be of type array or string, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Xs(e.type,e,r,i):null}return new Xs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!hi(n,["string","array"]))throw new _i(`Expected first argument to be of type array or string, but found ${si(ki(n))} instead.`);if(this.endIndex){const r=this.endIndex.evaluate(t);return n.slice(e,r)}return n.slice(e)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Ys=Xs;function Zs(t,n){return"=="===t||"!="===t?"boolean"===n.kind||"string"===n.kind||"number"===n.kind||"null"===n.kind||"value"===n.kind:"string"===n.kind||"number"===n.kind||"value"===n.kind}function Ks(t,n,e,r){return 0===r.compare(n,e)}function Qs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Zr,this.lhs=t,this.rhs=n,this.collator=e,this.hasUntypedArgument="value"===t.type.kind||"value"===n.type.kind}static parse(t,n){if(3!==t.length&&4!==t.length)return n.error("Expected two or three arguments.");const e=t[0];let s=n.parse(t[1],1,ti);if(!s)return null;if(!Zs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${si(s.type)}\'.`);let o=n.parse(t[2],2,ti);if(!o)return null;if(!Zs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${si(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${si(s.type)}\' and \'${si(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Ii(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Ii(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error("Cannot use collator to compare non-string types.");if(a=n.parse(t[3],3,ni),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const n=ki(s),e=ki(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new _i(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${n.kind}, ${e.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=ki(s),e=ki(o);if("string"!==t.kind||"string"!==e.kind)return n(i,s,o)}return this.collator?e(i,s,o,this.collator.evaluate(i)):n(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}serialize(){const n=[t];return this.eachChild(t=>{n.push(t.serialize())}),n}}}const to=Qs("==",(function(t,n,e){return n===e}),Ks),no=Qs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ks(0,n,e,r)})),eo=Qs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),ro=Qs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),io=Qs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),so=Qs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class oo{constructor(t,n,e,r,i,s){this.type=Yr,this.number=t,this.locale=n,this.currency=e,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(t,n){if(3!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=t[2];if("object"!=typeof r||Array.isArray(r))return n.error("NumberFormat options argument must be an object.");let i=null;if(r.locale&&(i=n.parse(r.locale,1,Yr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Yr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Yr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Xr),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Xr),!u)?null:new oo(e,i,s,o,a,u)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class ao{constructor(t){this.type=Xr,this.input=t}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const e=n.parse(t[1],1);return e?"array"!==e.type.kind&&"string"!==e.type.kind&&"value"!==e.type.kind?n.error(`Expected argument of type string or array, but found ${si(e.type)} instead.`):new ao(e):null}evaluate(t){const n=this.input.evaluate(t);if("string"==typeof n)return n.length;if(Array.isArray(n))return n.length;throw new _i(`Expected value to be of type string or array, but found ${si(ki(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const uo={"==":to,"!=":no,">":ro,"<":eo,">=":so,"<=":io,array:Ii,at:Ls,boolean:Ii,case:Js,coalesce:Ds,collator:Vi,format:$i,image:zi,in:Rs,"index-of":Ws,interpolate:Cs,"interpolate-hcl":Cs,"interpolate-lab":Cs,length:ao,let:Us,literal:Si,match:Gs,number:Ii,"number-format":oo,object:Ii,slice:Ys,step:ps,string:Ii,"to-boolean":Di,"to-color":Di,"to-number":Di,"to-string":Di,var:hs,within:is};function ho(t,[n,e,r,i]){n=n.evaluate(t),e=e.evaluate(t),r=r.evaluate(t);const s=i?i.evaluate(t):1,o=xi(n,e,r,s);if(o)throw new _i(o);return new vi(n/255*s,e/255*s,r/255*s,s)}function lo(t,n){return t in n}function co(t,n){const e=n[t];return void 0===e?null:e}function fo(t){return{type:t}}Li.register(uo,{error:[{kind:"error"},[Yr],(t,[n])=>{throw new _i(n.evaluate(t))}],typeof:[Yr,[ti],(t,[n])=>si(ki(n.evaluate(t)))],"to-rgba":[ii(Xr,4),[Kr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Kr,[Xr,Xr,Xr],ho],rgba:[Kr,[Xr,Xr,Xr,Xr],ho],has:{type:Zr,overloads:[[[Yr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},get:{type:ti,overloads:[[[Yr],(t,[n])=>co(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>co(n.evaluate(t),e.evaluate(t))]]},"feature-state":[ti,[Yr],(t,[n])=>co(n.evaluate(t),t.featureState||{})],properties:[Qr,[],t=>t.properties()],"geometry-type":[Yr,[],t=>t.geometryType()],id:[ti,[],t=>t.id()],zoom:[Xr,[],t=>t.globals.zoom],pitch:[Xr,[],t=>t.globals.pitch||0],"distance-from-center":[Xr,[],t=>t.distanceFromCenter()],"heatmap-density":[Xr,[],t=>t.globals.heatmapDensity||0],"line-progress":[Xr,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Xr,[],t=>t.globals.skyRadialProgress||0],accumulated:[ti,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Xr,fo(Xr),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Xr,fo(Xr),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Xr],(t,[n])=>-n.evaluate(t)]]},"/":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Xr,[],()=>Math.LN2],pi:[Xr,[],()=>Math.PI],e:[Xr,[],()=>Math.E],"^":[Xr,[Xr,Xr],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Xr,[Xr],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))],log2:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Xr,[Xr],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Xr,[Xr],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Xr,[Xr],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Xr,[Xr],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Xr,[Xr],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Xr,[Xr],(t,[n])=>Math.atan(n.evaluate(t))],min:[Xr,fo(Xr),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Xr,fo(Xr),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Xr,[Xr],(t,[n])=>Math.abs(n.evaluate(t))],round:[Xr,[Xr],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Xr,[Xr],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Xr,[Xr],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Zr,[Yr,ti],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Zr,[ti],(t,[n])=>t.id()===n.value],"filter-type-==":[Zr,[Yr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Zr,[ti],(t,[n])=>n.value in t.properties()],"filter-has-id":[Zr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Zr,[ii(Yr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Zr,[ii(ti)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Zr,[Yr,ii(ti)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Zr,[Yr,ii(ti)],(t,[n,e])=>function(t,n,e,r){for(;e<=r;){const i=e+r>>1;if(n[i]===t)return!0;n[i]>t?r=i-1:e=i+1}return!1}(t.properties()[n.value],e.value,0,e.value.length-1)],all:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Zr,[Zr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Zr,[Yr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Yr,fo(ti),(t,n)=>n.map(n=>Ai(n.evaluate(t))).join("")],"resolved-locale":[Yr,[ni],(t,[n])=>n.evaluate(t).resolvedLocale()]});var po=uo;function yo(t){return{result:"success",value:t}}function mo(t){return{result:"error",value:t}}function vo(t){return!!t.expression&&t.expression.interpolated}function go(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function bo(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function wo(t){return t}function Mo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function xo(t,n,e,r,i){return Mo(typeof e===i?r[e]:void 0,t.default,n.default)}function Fo(t,n,e){if("number"!==go(e))return Mo(t.default,n.default);const r=t.stops.length;if(1===r)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[r-1][0])return t.stops[r-1][1];const i=fs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function ko(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==go(e))return Mo(t.default,n.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[i-1][0])return t.stops[i-1][1];const s=fs(t.stops.map(t=>t[0]),e),o=function(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}(e,r,t.stops[s][0],t.stops[s+1][0]),a=t.stops[s][1],u=t.stops[s+1][1];let h=gs[n.type]||wo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Is[t.colorSpace];h=(t,e)=>n.reverse(n.interpolate(n.forward(t),n.forward(e),o))}return"function"==typeof a.evaluate?{evaluate(...t){const n=a.evaluate.apply(void 0,t),e=u.evaluate.apply(void 0,t);if(void 0!==n&&void 0!==e)return h(n,e,o)}}:h(a,u,o)}function Ao(t,n,e){return"color"===n.type?e=vi.parse(e):"formatted"===n.type?e=wi.fromString(e.toString()):"resolvedImage"===n.type?e=Mi.fromString(e.toString()):go(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),Mo(e,t.default,n.default)}class Po{constructor(t,n){this.expression=t,this.H={},this.W=new Ui,this.q=n?function(t){return"color"===t.type&&(bo(t.default)||Array.isArray(t.default))?new vi(0,0,0,0):"color"===t.type?vi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.G=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.W.globals=t,this.W.feature=n,this.W.featureState=e,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null,this.expression.evaluate(this.W)}evaluate(t,n,e,r,i,s,o,a){this.W.globals=t,this.W.feature=n||null,this.W.featureState=e||null,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s||null,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.W);if(null==t||"number"==typeof t&&t!=t)return this.q;if(this.G&&!(t in this.G))throw new _i(`Expected value to be one of ${Object.keys(this.G).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.H[t.message]||(this.H[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.q}}}function So(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in po}function _o(t,n){const e=new cs(po,[],n?function(t){const n={color:Kr,string:Yr,number:Xr,enum:Yr,boolean:Zr,formatted:ei,resolvedImage:ri};return"array"===t.type?ii(n[t.value]||ti,t.length):n[t.type]}(n):void 0),r=e.parse(t,void 0,void 0,void 0,n&&"string"===n.type?{typeAnnotation:"coerce"}:void 0);return r?yo(new Po(r,n)):mo(e.errors)}class Oo{constructor(t,n){this.kind=t,this.B=n,this.isStateDependent="constant"!==t&&!os(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}}class Eo{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.B=n,this.isStateDependent="camera"!==t&&!os(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?Cs.interpolationFactor(this.interpolationType,t,n,e):0}}function Io(t,n){if("error"===(t=_o(t,n)).result)return t;const e=t.value.expression,r=ss(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return mo([new qr("","data expressions not supported")]);const i=as(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return mo([new qr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Us)e=t(n.result);else if(n instanceof Ds){for(const r of n.args)if(e=t(r),e)break}else(n instanceof ps||n instanceof Cs)&&n.input instanceof Li&&"zoom"===n.input.name&&(e=n);return e instanceof qr||n.eachChild(n=>{const r=t(n);r instanceof qr?e=r:!e&&r?e=new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new qr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return mo([new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof qr)return mo([s]);if(s instanceof Cs&&!vo(n))return mo([new qr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return yo(new Oo(r?"constant":"source",t.value));const o=s instanceof Cs?s.interpolation:void 0;return yo(new Eo(r?"camera":"composite",t.value,s.labels,o))}class $o{constructor(t,n){this.J=t,this.X=n,Hr(this,function t(n,e){const r="color"===e.type,i=n.stops&&"object"==typeof n.stops[0][0],s=i||!(i||void 0!==n.property),o=n.type||(vo(e)?"exponential":"interval");if(r&&((n=Hr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],vi.parse(t[1])])),n.default=vi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Is[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,h;if("exponential"===o)a=ko;else if("interval"===o)a=Fo;else if("categorical"===o){a=xo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];h=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=Ao}if(i){const r={},i=[];for(let t=0;t<n.stops.length;t++){const e=n.stops[t],s=e[0].zoom;void 0===r[s]&&(r[s]={zoom:s,type:n.type,property:n.property,default:n.default,stops:[]},i.push(s)),r[s].stops.push([e[0].value,e[1]])}const s=[];for(const n of i)s.push([r[n].zoom,t(r[n],e)]);const o={name:"linear"};return{kind:"composite",interpolationType:o,interpolationFactor:Cs.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>ko({stops:s,base:n.base},e,t).evaluate(t,r)}}if(s){const t="exponential"===o?{name:"exponential",base:void 0!==n.base?n.base:1}:null;return{kind:"camera",interpolationType:t,interpolationFactor:Cs.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,h)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?Mo(n.default,e.default):a(n,e,i,u,h)}}}(this.J,this.X))}static deserialize(t){return new $o(t.J,t.X)}static serialize(t){return{J:t.J,X:t.X}}}function zo(t){if(Array.isArray(t))return t.map(zo);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=zo(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function Co(t){if(!Array.isArray(t))return!1;if(function(t){return"pitch"===t||"distance-from-center"===t}(t[0]))return!0;for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return!1}const To=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),Do={StyleExpression:Po,isExpression:So,isExpressionFilter:function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":return n.length>=2&&"$id"!==n[1]&&"$type"!==n[1];case"in":return n.length>=3&&("string"!=typeof n[1]||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==n.length||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}},createExpression:_o,createPropertyExpression:Io,normalizePropertyExpression:function(t,n){if(bo(t))return new $o(t,n);if(So(t)){const e=Io(t,n);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return e.value}{let e=t;return"string"==typeof t&&"color"===n.type&&(e=vi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:Oo,ZoomDependentExpression:Eo,StylePropertyFunction:$o},{isExpression:jo,createExpression:Uo}=Do,No={};function Lo(t){if(!0===t)return function(){return!0};if(t&&t.condition){if("any"===t.type){const n=t.condition,e=[];for(let t=0;t<n.length;t++)e.push(Lo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Lo(t.condition);if(cr(t.layer))return n;const e=n=>n.layer===t.layer;return(t,r)=>e(t)&&n(t,r)}if(function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":case"!has":return 2===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"in":case"!in":return n.length>=2&&("string"==typeof n[1]||n[1].property&&n[1].op);case"==":case"!=":case">":case">=":case"<":case"<=":return 3===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"none":case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;case"contains":return!0;default:return!1}}(t))return Tn(t);{let n=function(t,n="fill"){if(null==t)return{filter:()=>!0,needGeometry:!1,needFeature:!1};const e=t;let r=!0;try{r=function(t){if(!Co(t))return t;let n=zo(t);return function t(n){let e=!1;const r=[];if("case"===n[0]){for(let t=1;t<n.length-1;t+=2)e=e||Co(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||Co(n[1]);for(let t=2;t<n.length-1;t+=2)r.push(n[t+1]);r.push(n[n.length-1])}else if("step"===n[0]){e=e||Co(n[1]);for(let t=1;t<n.length-1;t+=2)r.push(n[t+1])}e&&(n.length=0,n.push("any",...r));for(let e=1;e<n.length;e++)t(n[e])}(n),n=function t(n){if(!Array.isArray(n))return n;const e=function(t){if(To.has(t[0]))for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return t}(n);return!0===e?e:e.map(n=>t(n))}(n),n}(e)}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\\nand paste the contents of this message in the report.\\nThank you!\\nFilter Expression:\\n${JSON.stringify(e,null,2)}\\n `)}const i=_o(r,null);let s=null;if("error"===i.result)throw new Error(i.value.map(t=>`${t.key}: ${t.message}`).join(", "));s=(t,n,e)=>i.value.evaluate(t,n,{},e);let o=null,a=null;if(r!==e){const t=_o(e,null);if("error"===t.result)throw new Error(t.value.map(t=>`${t.key}: ${t.message}`).join(", "));o=(n,e,r,i,s)=>t.value.evaluate(n,e,{},r,void 0,void 0,i,s),a=!ss(t.value.expression)}return s=s,{filter:s,dynamicFilter:o||void 0,needGeometry:function t(n){if(!Array.isArray(n))return!1;if("within"===n[0])return!0;for(let e=1;e<n.length;e++)if(t(n[e]))return!0;return!1}(r),needFeature:!!a}}(t);return n=n&&n.filter,(t,e)=>(No.zoom=e,n&&n(No,t))}}const Vo={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Ro(t,n){Vo.type=n||"number";const e=Uo(t,Vo);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Ho(t){return jo(t)}const Wo={lineWidth:1,lineStrokeWidth:1,lineDx:1,lineDy:1,lineOpacity:1,linePatternAnimSpeed:1,markerWidth:1,markerHeight:1,markerDx:1,markerDy:1,markerSpacing:1,markerOpacity:1,markerRotation:1,textWrapWidth:1,textSpacing:1,textSize:1,textHaloRadius:1,textHaloOpacity:1,textDx:1,textDy:1,textOpacity:1,textRotation:1,polygonOpacity:1};function qo(t){return Wo[t]}const Go={markerPlacement:1,markerFile:1,mergeOnProperty:1,markerTextFit:1,markerType:1,markerHorizontalAlignment:1,markerVerticalAlignment:1,markerRotationAlignment:1,markerPitchAlignment:1,markerFillPatternFile:1,markerLinePatternFile:1,textName:1,textPlacement:1,textFaceName:1,textStyle:1,textHorizontalAlignment:1,textVerticalAlignment:1,textRotationAlignment:1,textPitchAlignment:1,lineJoin:1,lineCap:1,linePatternFile:1,polygonPatternFile:1},Bo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Jo(t){return Go[t]?"string":qo(t)?"number":Bo[t]?"array":"color"}var Xo=Object.freeze({__proto__:null,compileStyle:function(t=[]){return function t(n){if(!Array.isArray(n))return t([n]);const e=[];for(let t=0;t<n.length;t++){let r;r=!0===n[t].filter?function(){return!0}:Lo(n[t].filter),e.push(lr({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=lr({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Lo,createExpression:Ro,isExpression:Ho,isInterpolated:qo,getExpressionType:Jo});const Yo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Zo extends Array{push(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Y++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Y&&(this.Y=e)}set(t,n){t>=this.Y&&(this.Y=t+1),this[t]=n}getLength(){return this.Y}setLength(t){this.Y=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Y&&this.setLength(t)}reset(){this.Y=0}}const Ko={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Qo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}}let ta;class na{static createTypedArray(t,n){return ur(t,n)}static getInstance(){return ta}constructor(){this.Z=[],this.Y=0}get(){if(!Yo)return new Qo;const t=this.Z[this.Y]=this.Z[this.Y]||new Proxy(new Zo,Ko);return t.reset(),this.Y++,t}reset(){this.Y=0}}ta=new na;const ea=[],ra={},ia={},sa={},oa=[],aa=na.getInstance();class ua{static isAtlasLoaded(t,n={}){const{iconAtlas:e}=n;return!!(!t||e&&e.positions[t])}static genFnTypes(t){const n={};for(const e in t)if(Ho(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Jo(e);n[r]=Ro(t[e],s),n[i]=(t,e)=>{let i;ra.zoom=t,ia.properties=e;try{i=n[r].evaluateWithoutErrorHandling(ra,ia,sa,null,oa)}catch(t){return null}return i}}else if(br(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();qo(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?y(i)(t,e):i})}return n}constructor(t,n,e){this.options=e;const r=[];this.symbolDef=n,this.symbol=m(n,()=>(r[0]=e.zoom,r)),this.styledVectors=[],this.properties={},this.K=e.fnTypes||ua.genFnTypes(this.symbolDef),br(this.symbolDef.visible)&&(this.tt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.nt(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=Math.pow(2,17)||this.options.positionType===Float32Array}getPositionFormat(){return this.needAltitudeAttribute()?[{type:Int16Array,width:2,name:"aPosition"},{type:Float32Array,width:1,name:"aAltitude"}]:[{type:Int16Array,width:3,name:"aPosition"}]}fillPosition(t,n,e,r){this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Dr(ea,n,e,r),t.aPosition.push(ea[0],ea[1],ea[2]))}nt(t){if(!t.length)return t;const n="__fea_idx".trim();let e,r=0,i=t[r];for(;!i.geometry;)r++,i=t[r];if(Array.isArray(i.geometry)&&i.properties){let n=i.geometry[0];for(;Array.isArray(n);)n=n[0];n instanceof Ut&&(e=t)}if(!e)if(e=[],Array.isArray(i.geometry))for(let n=0;n<t.length;n++){const r=lr({},t[n]);e.push(hr(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=He(i);for(let t=0;t<s.length;t++){const r=s[t];r[n]=i[n],e.push(r)}}if(this.maxPosZ=0,!this.options.forceAltitudeAttribute){const t="line"===this.symbolDef.textPlacement;let n=0,r=!1;const{textPitchAlignmentFn:i}=this.K;!i&&t&&"map"===this.symbolDef.textPitchAlignment&&(r=!0);for(let s=0;s<e.length;s++){const o=la(e[s]&&e[s].geometry);if(o>n&&(n=o),t&&!r&&i&&e[s].properties){const t=i(null,e[s].properties);"map"===t&&(r=t)}}this.hasMapPitchAlign=r,this.maxPosZ=n}const s=this.options.order;if(s){const t=[];for(let n=0;n<s.length;n++)s[n]&&t.push(Lo(s[n]));e=e.sort((n,e)=>{const r=t.length;let i=-1,s=-1;for(let o=0;o<r&&(t[o](n)&&(i=o),t[o](e)&&(s=o),!(i>=0&&i<r&&s>=0&&s<r));o++);return i-s})}return e}load(t=1){const n="__fea_idx".trim(),e="_debug_info".trim(),r=this.K,i=this.styledVectors;this.count=0;const s=this.features;if(!s||!s.length)return Promise.resolve(null);const o={},a={},u={zoom:this.options.zoom,isVector3D:!!this.options.center},h=[],l=m(this.symbolDef,()=>(h[0]=u.zoom,h));let c=0,f=s.length;const d=this.options.debugIndex;try{for(;c<f;c++){const t=s[c];if(!t||!t.geometry)continue;if(fr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const h=this.createStyledVector(t,l,r,u,o,a);h&&h.feature.geometry&&(h.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(h))}}catch(t){return Promise.reject(t)}return this.options.atlas?Promise.resolve(this.pack(t)):this.loadAtlas(o,a).then(()=>this.pack(t))}loadAtlas(t,n){return new Promise((e,r)=>{this.fetchAtlas(t,n,(t,n)=>{if(t)r(t);else{if(n){const{icons:t,glyphs:e}=n;if(t&&Object.keys(t).length){for(const n in t){const e=t[n],{width:r,height:i,data:s}=e.data;e.data=new Qe({width:r,height:i},s)}this.iconAtlas=new nr(t)}if(e&&Object.keys(e).length){for(const t in e){const n=e[t];for(const t in n){const e=n[t],{width:r,height:i,data:s}=e.bitmap;e.bitmap=new Ke({width:r,height:i},s)}}this.glyphAtlas=new ir(e)}}e({glyphAtlas:this.glyphAtlas,iconAtlas:this.iconAtlas})}})})}fetchAtlas(t,n,e){Object.keys(t).length>0||Object.keys(n).length>0?this.options.requestor(t,n,e):e()}pack(t){if(!this.count)return null;if(null==t)throw new Error("layout scale is undefined");const n=this.createDataPack(this.styledVectors,t);if(!n)return null;n.properties=this.properties,this.empty&&(n.empty=!0);const e=n.buffers;delete n.buffers;const r={data:n,buffers:e};if(this.iconAtlas){const t=r.data.iconAtlas=ha(this.iconAtlas);if(t.glyphMap)for(const n in t.glyphMap)e.push(t.glyphMap[n].data.data.buffer);e.push(r.data.iconAtlas.image.data.buffer)}return this.glyphAtlas&&(r.data.glyphAtlas=ha(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Tr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.et=aa,aa.reset();let r=this.elements=aa.get();const i=this.getFormat(Array.isArray(t[0])?t[0][0].symbol:t[0].symbol),s=this.needAltitudeAttribute()?2:3;for(let t=0;t<i.length;t++)e[i[t].name]=aa.get();let o=aa.get(),a=0;const u=aa.get();let h=0,l=!1,c=!0;const f=new Set;for(let r=0,i=t.length;r<i;r++){if(!t[r].feature.geometry)continue;const i=Array.isArray(t[r])?t[r][0].feature.id:t[r].feature.id;c&&(void 0!==ia.id?f&&(f.has(ia.id)?c=!1:f.add(ia.id)):c=!1),fr(i)&&(Math.abs(i)>h&&(h=Math.abs(i)),i<0&&(l=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.rt(t[r][e],n);else this.rt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),fr(i)&&u.push(i);a=Math.max(a,t[r].featureIdx)}if(this.countOutOfAngle>0&&console.warn("text anchor along line is ignored as anchor\'s line angle is bigger than textMaxAngle."),this.hasElements()&&!r.length)return null;const d=ar(a);o=na.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:or(this.maxPos);const p=this.options.center;if(p&&(p[0]||p[1])){const t=e.aPosition;for(let n=0;n<t.length;n+=s)t[n]-=p[0],t[n+1]-=p[1]}const y=function(t,n){const e={};for(let r=0;r<t.length;r++){const i=t[r],s=i.type,o=i.name;e[o]=s===Array?n[o]:ur(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const v=sr(this.maxIndex);r=na.createTypedArray(r,v),m.push(r.buffer);const g={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.it&&(g.markerPlacement=this.it),this.st&&(g.textPlacement=this.st),u.length){const t=l?or(h):ar(h);g.featureIds=na.createTypedArray(u,t),m.push(g.featureIds.buffer)}else g.featureIds=[];return g.pickingIdIndiceMap=Cr(o,g.indices),g}rt(t,n){this.tt&&!this.tt(this.options.zoom,t.feature.properties)||this.placeVector(t,n,this.formatWidth)}addElements(...t){this.maxIndex=Math.max(this.maxIndex,...t),this.elements.push(...t)}hasElements(){return!0}getAltitude(t){const{altitudeProperty:n,defaultAltitude:e,altitudeScale:r}=this.options;let i=Or(t,n,e);return r&&(i*=r),this.maxAltitude=Math.max(this.maxAltitude,Math.abs(i)),i}getIconAtlasMaxValue(){const t=this.iconAtlas.positions;let n=0;for(const e in t)if(vr(t,e)){const{tl:r,displaySize:i}=t[e],s=Math.max(r[0],r[1],i[0]-1,i[1]-1);s>n&&(n=s)}return n}}function ha(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof nr){n={};for(const e in t.positions){const r=t.positions[e];n[e]={paddedRect:r.paddedRect,pixelRatio:r.pixelRatio,tl:r.tl,br:r.br,displaySize:r.displaySize}}e="rgba"}const r=t.image;return{image:{width:r.width,height:r.height,data:r.data,format:e},glyphMap:t.glyphMap,positions:n}}function la(t){if(!t)return 0;let n=0;if(Array.isArray(t))for(let e=0;e<t.length;e++)if(Array.isArray(t[e])){const r=la(t[e]);r>n&&(n=r)}else{const r=Math.abs(t[e].z||0);r>n&&(n=r)}else{const e=Math.abs(t.z||0);e>n&&(n=e)}return n}function ca(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(cr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=yr(s)?s(r,e):s,d(o[0])){const n=o[0].ot=o[0].ot||JSON.stringify(o[0]);t.ut||(t.ut={}),t.ut[n]||(t.ut[n]=p(o[0])),o[0]=(0,t.ut[n])(r,e)}return o[1]=o[0],o}function fa(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];dr(n[t][1])&&(r=fa(n[t][1])),r>e&&(e=r)}return e}function da(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const pa=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function ya(t,n){return pr(t)?t.replace(pa,(function(t){if(!n)return"";if((t=t.substring(1,t.length-1)).indexOf("|")>0){const e=t.split("|");for(let t=0;t<e.length;t++){const r=n[e[t]];if(!cr(r))return r}return""}const e=n[t];return cr(e)?"":Array.isArray(e)?e.join():e})):t}var ma=Object.freeze({__proto__:null,getSDFFont:da,resolveText:ya,resolveVarNames:function(t){return t.match(pa)},resolveExpVarNames:function t(n,e){if(2!==e.length||"get"!==e[0])for(let r=0;r<e.length;r++)2===e[r].length&&"get"===e[r][0]?n.push(e[r][1]):Array.isArray(e[r])&&t(n,e[r]);else n.push(e[1])}});const va=t=>t>=11904&&t<=12031,ga=t=>t>=12032&&t<=12255,ba=t=>t>=12272&&t<=12287,wa=t=>t>=12288&&t<=12351,Ma=t=>t>=12352&&t<=12447,xa=t=>t>=12448&&t<=12543,Fa=t=>t>=12544&&t<=12591,ka=t=>t>=12704&&t<=12735,Aa=t=>t>=12736&&t<=12783,Pa=t=>t>=12784&&t<=12799,Sa=t=>t>=12800&&t<=13055,_a=t=>t>=13056&&t<=13311,Oa=t=>t>=13312&&t<=19903,Ea=t=>t>=19968&&t<=40959,Ia=t=>t>=40960&&t<=42127,$a=t=>t>=42128&&t<=42191,za=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,Da=t=>t>=65072&&t<=65103,ja=t=>t>=65104&&t<=65135,Ua=t=>t>=65136&&t<=65279,Na=t=>t>=65280&&t<=65519;function La(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||Ua(t))}function Va(t){return!!(746===t||747===t||!(t<4352)&&(ka(t)||Fa(t)||Da(t)&&!(t>=65097&&t<=65103)||za(t)||_a(t)||va(t)||Aa(t)||!(!wa(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Oa(t)||Ea(t)||Sa(t)||(t=>t>=12592&&t<=12687)(t)||(t=>t>=43360&&t<=43391)(t)||(t=>t>=55216&&t<=55295)(t)||(t=>t>=4352&&t<=4607)(t)||(t=>t>=44032&&t<=55215)(t)||Ma(t)||ba(t)||(t=>t>=12688&&t<=12703)(t)||ga(t)||Pa(t)||xa(t)&&12540!==t||!(!Na(t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ja(t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||(t=>t>=5120&&t<=5759)(t)||(t=>t>=6320&&t<=6399)(t)||Ta(t)||(t=>t>=19904&&t<=19967)(t)||Ia(t)||$a(t)))}function Ra(t){return!(Va(t)||function(t){return!!((t=>t>=128&&t<=255)(t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||(t=>t>=8192&&t<=8303)(t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||(t=>t>=8448&&t<=8527)(t)||(t=>t>=8528&&t<=8591)(t)||(t=>t>=8960&&t<=9215)(t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||(t=>t>=9216&&t<=9279)(t)&&9251!==t||(t=>t>=9280&&t<=9311)(t)||(t=>t>=9312&&t<=9471)(t)||(t=>t>=9632&&t<=9727)(t)||(t=>t>=9728&&t<=9983)(t)&&!(t>=9754&&t<=9759)||(t=>t>=11008&&t<=11263)(t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||wa(t)||xa(t)||(t=>t>=57344&&t<=63743)(t)||Da(t)||ja(t)||Na(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ha(t){return t>=1424&&t<=2303||Ca(t)||Ua(t)}const Wa=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function qa(t){for(const n of Wa)if(t>=n[0]&&t<=n[1])return!0;return!1}const Ga={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",ht:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ba(t,n,e,r,i,s,o,a,u,h){let l=t.trim();2===h&&(l=function(t){let n="";for(let e=0;e<t.length;e++){const r=t.charCodeAt(e+1)||null,i=t.charCodeAt(e-1)||null;n+=r&&Ra(r)&&!Ga[t[e+1]]||i&&Ra(i)&&!Ga[t[e-1]]||!Ga[t[e]]?t[e]:Ga[t[e]]}return n}(l));const c=[],f={positionedGlyphs:c,text:l,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:h};let d;return d=function(t,n){const e=[];let r=0;for(let i=0;i<n.length;i++){const s=n[i];e.push(t.substring(r,s)),r=s}return r<t.length&&e.push(t.substring(r,t.length)),e}(l,function(t,n,e,r){if(!e)return[];if(!t)return[];const i=[],s=function(t,n,e,r){let i=0;for(let e=0;e<t.length;e++){const s=r[t.charCodeAt(e)];s&&(i+=s.metrics.advance+n)}return i/Math.max(1,Math.ceil(i/e))}(t,n,e,r);let o=0;for(let e=0;e<t.length;e++){const u=t.charCodeAt(e),h=r[u];h&&!Ja[u]&&(o+=h.metrics.advance+n),e<t.length-1&&(Xa[u]||!((a=u)<11904)&&(ka(a)||Fa(a)||Da(a)||za(a)||_a(a)||va(a)||Aa(a)||wa(a)||Oa(a)||Ea(a)||Sa(a)||Na(a)||Ma(a)||ba(a)||ga(a)||Pa(a)||xa(a)||Ta(a)||$a(a)||Ia(a)))&&i.push(Ka(e+1,o,s,i,Za(u,t.charCodeAt(e+1)),!1))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Ka(t.length,o,s,i,0,!0))}(l,o,e,n)),function(t,n,e,r,i,s,o,a,u,h){let l=0,c=0,f=0;const d=t.positionedGlyphs,p="right"===s?1:"left"===s?0:.5;for(let t=0;t<e.length;t++){let i=e[t];if(i=i.trim(),!i.length){c-=r;continue}const s=d.length;for(let t=0;t<i.length;t++){const e=i.charCodeAt(t),r=n[e];r&&(Va(e)&&1!==o?(32!==e&&d.push({glyph:e,x:l,y:0,vertical:!0}),l+=u+a):(32!==e&&d.push({glyph:e,x:l,y:c,vertical:!1}),l+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(l-a,f),tu(d,n,s,d.length-1,p)),l=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Qa(i,void 0);!function(t,n,e,r,i,s,o){const a=(n-e)*i,u=-(-r*o+.5)*s;if(a||u)for(let n=0;n<t.length;n++)t[n].x+=a,t[n].y+=u}(d,p,y,m,f,r,e.length);const v=e.length*r;t.top+=-m*v,t.bottom=t.top+v,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,h,o,u),!!c.length&&f}const Ja={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Xa={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 Ya(t,n,e,r){const i=Math.pow(t-n,2);return r?t<n?i/2:2*i:i+Math.abs(e)*e}function Za(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Ka(t,n,e,r,i,s){let o=null,a=Ya(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],h=Ya(n-u.x,e,i,s)+u.badness;h<=a&&(o=u,a=h)}return{index:t,x:n,priorBreak:o,badness:a}}function Qa(t,n){let e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=n?1:0;break;case"left":case"top-left":case"bottom-left":e=n?0:1}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=n?1:0;break;case"top":case"top-right":case"top-left":r=n?0:1}return{horizontalAlign:e,verticalAlign:r}}function tu(t,n,e,r,i){if(!i)return;const s=n[t[r].glyph];if(s){const n=(t[r].x+s.metrics.advance)*i;if(!n)return;for(let i=e;i<=r;i++)t[i].x-=n}}function nu(t){if(!function(t){for(const n of t)if(Ha(n.charCodeAt(0)))return!0;return!1}(t))return t;const n=[],e=[],r=[];let i=0,s=0,o=1,a=1;for(const u of t){const t=u.codePointAt(0);qa(t)?(r.push(u),i++):(o=Ha(t)?-1:1,a!==o?(s=i,e.length&&(a>0&&e.reverse(),n.push(...e)),r.length&&(n.splice(s,0,...r),r.length=0),a=o,e.length=0):r.length&&(e.push(...r),r.length=0),e.push(u),i++)}return r.length&&e.push(...r),e.length&&(a>0&&e.reverse(),n.push(...e)),n.reverse().join("")}const eu=/\\{ *([\\w_]+) *\\}/g;class ru{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.lt=this.ct.bind(this),this.K=r}ct(t,n){return this.feature.properties[n]||"default"}getShape(t,n){if(this.ft)return this.ft;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.K;let a;const u=this.symbol,h=this.getIconAndGlyph(),l=this.feature.properties;if(h&&h.glyph){const{font:t,text:i}=h.glyph;if(""===i)return null;const s=this.size[0]/24,c=24,f=u.textKeepUpright,d="map"===u.textRotationAlignment&&"line"===u.textPlacement&&!u.isIconText,p=n.glyphMap[t],y=iu(e?e(null,l):u.textHorizontalAlignment,r?r(null,l):u.textVerticalAlignment),m=1.2*c,v=function(t){for(let n=0;n<t.length;n++)if(!La(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),g=v&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,l):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ba(i,p,w,m,y,"center",g,b,c,1),v&&d&&f&&(a.vertical=Ba(i,p,w,m,y,"center",g,b,c,2))}else if(h&&h.icon){if(!t.positions[h.icon.url])return null;const n=iu(i?i(null,l):u.markerHorizontalAlignment,s?s(null,l):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Qa(n,e);e?r=1-r:i=1-i;const s=-2048*r,o=-2048*i;return{image:t,top:o,bottom:o+2048,left:s,right:s+2048}}(t.positions[h.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.ft=a,a}getIconAndGlyph(){if(this.iconGlyph)return this.iconGlyph;const{markerFileFn:t,markerTypeFn:n,markerPathFn:e,markerWidthFn:r,markerHeightFn:i,markerFillFn:s,markerFillPatternFileFn:o,markerFillOpacityFn:a,markerTextFitFn:u,markerTextFitPaddingFn:h,markerLineColorFn:l,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:v,markerPathHeightFn:g,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.K,{zoom:F}=this.options,k={},A=this.symbol,P=this.feature.properties,S=t?t(null,P):A.markerFile,_=n?n(null,P):A.markerType,O=S||_||A.markerPath,E=!cr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(cr(n.markerWidth)&&cr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,h=n.markerHeight||0;return dr(u)&&("identity"!==u.type?u=fa(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),dr(u)&&(u="identity"===u.type?i(r,e):fa(u)))),dr(h)&&("identity"!==h.type?h=fa(h):(h=t.markerHeight,t[a]&&(h=t[a](r,e)),dr(h)&&(h="identity"===h.type?s(r,e):fa(h)))),[u,h]}(A,this.symbolDef,P,F,r,i)||[0,0];let t=A.markerTextFit;if(u&&(t=u(F,P)),t&&A.text&&"none"!==t){const n=A.text.textSize;let e=A.text.textName;d(e)&&(e=p(e)(F,P));const r=ya(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!A.text[e]&&(A.text[i]=p(n),A.text[e]=(t,n)=>{const e=A.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ca(A.text,A.text,P,F);if("width"!==t&&"both"!==t||(I[0]=s[0]*r.length),"height"!==t&&"both"!==t||(I[1]=s[1]),s[0]&&s[1]){let t=A.markerTextFitPadding||[0,0,0,0];h&&(t=h(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ca(A,this.symbolDef,P,F)),!I)return k;if(I[0]=Math.ceil(I[0]),I[1]=Math.ceil(I[1]),this.size=I,O&&I[0]>=0&&I[1]>=0){let t;if(_){const n={};if(n.markerType=_,"path"===_&&(n.markerPath=e?e(null,P):A.markerPath,n.markerPathWidth=v?v(null,P):A.markerPathWidth,n.markerPathHeight=g?g(null,P):A.markerPathHeight),r){const t=r(null,P);cr(t)||(n.markerWidth=t)}else A.markerWidth>=0&&(n.markerWidth=A.markerWidth);if(i){const t=i(null,P);cr(t)||(n.markerHeight=t)}else A.markerHeight>=0&&(n.markerHeight=A.markerHeight);if(s){const t=s(null,P);cr(t)||(n.markerFill=t)}else A.markerFill&&(n.markerFill=A.markerFill);if(o){const t=o(null,P);cr(t)||(n.markerFillPatternFile=t)}else A.markerFillPatternFile&&(n.markerFillPatternFile=A.markerFillPatternFile);if(a){const t=a(null,P);cr(t)||(n.markerFillOpacity=t)}else A.markerFillOpacity>=0&&(n.markerFillOpacity=A.markerFillOpacity);if(l){const t=l(null,P);cr(t)||(n.markerLineColor=t)}else A.markerLineColor&&(n.markerLineColor=A.markerLineColor);if(c){const t=c(null,P);cr(t)||(n.markerLineWidth=t)}else A.markerLineWidth>=0&&(n.markerLineWidth=A.markerLineWidth);if(f){const t=f(null,P);cr(t)||(n.markerLineOpacity=t)}else A.markerLineOpacity>=0&&(n.markerLineOpacity=A.markerLineOpacity);if(y){const t=y(null,P);cr(t)||(n.markerLineDasharray=t)}else A.markerLineDasharray&&(n.markerLineDasharray=A.markerLineDasharray);if(m){const t=m(null,P);cr(t)||(n.markerLinePatternFile=t)}else A.markerLinePatternFile&&(n.markerLinePatternFile=A.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(eu,this.lt):A.markerPath?function(t,n,e){if(!t.markerPath)return null;let r=1;const i=function(t){const n={stroke:{stroke:t.markerLineColor,"stroke-width":t.markerLineWidth,"stroke-opacity":t.markerLineOpacity,"stroke-dasharray":null,"stroke-linecap":"butt","stroke-linejoin":"round"},fill:{fill:t.markerFill,"fill-opacity":t.markerFillOpacity}};return 0===n.stroke["stroke-width"]&&(n.stroke["stroke-opacity"]=0),n}(t);fr(t.markerOpacity)&&(r=t.markerOpacity),fr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)vr(i.stroke,t)&&(cr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)vr(i.fill,t)&&(cr(i.fill[t])||(s[t]=i.fill[t]))}const o=Array.isArray(t.markerPath)?t.markerPath:[t.markerPath];let a;const u=[];for(let t=0;t<o.length;t++)a=pr(o[t])?{path:o[t]}:o[t],a=lr({},a,s),a.d=a.path,delete a.path,u.push(a);const h=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&h.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&h.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),h.push(\'preserveAspectRatio="none"\'),n&&h.push(\'width="\'+n+\'"\'),e&&h.push(\'height="\'+e+\'"\'),h.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])vr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",h.push(n)}return h.push("</svg>"),"data:image/svg+xml;base64,"+btoa(h.join(" "))}(A,I[0],I[1]):null;k.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):A.textName;if(t||0===t){const n=da(w?w(null,P):A.textFaceName,M?M(null,P):A.textStyle,x?x(null,P):A.textWeight);let e=ya(t,P);e&&e.length&&(e=nu(e),k.glyph={font:n,text:e})}}return this.iconGlyph=k,k}}function iu(t,n){n&&"middle"!==n||(n="center"),t&&"middle"!==t||(t="center");let e="center"!==n?n:"";return e+="center"!==t?(e.length?"-":"")+t:"",e\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */}function su(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let h,l=!1;for(let t=0;t<u.length-1;t++){let a=u[t],c=u[t+1];a.x<n&&c.x<n||(a.x<n?(o=a,a=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(n-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x<n&&(o=c,c=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(n-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y<e&&c.y<e||(a.y<e?(o=a,a=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),a.z=o.z+(e-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y<e&&(o=c,c=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),c.z=a.z+(e-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),a.x>=r&&c.x>=r||(a.x>=r?(o=a,a=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(r-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x>=r&&(o=c,c=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(r-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y>=i&&c.y>=i||(a.y>=i?(o=a,a=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),a.z=o.z+(i-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y>=i&&(o=c,c=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),c.z=a.z+(i-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),h&&a.equals(h[h.length-1])||(h=[a],s.push(h)),l&&(h.clipped=!0),h.push(c)))))}}return s}class ou extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new ou(this.x,this.y,this.angle,this.segment)}}\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */function au(t,n,e,r,i){if(void 0===n.segment)return!0;let s=n,o=n.segment+1,a=0;for(;a>-e/2;){if(o--,o<0)return!1;a-=t[o].dist(s),s=t[o]}a+=t[o].dist(t[o+1]),o++;const u=[];let h=0;for(;a<e/2;){const n=t[o],e=t[o+1];if(!e)return!1;let s=t[o-1].angleTo(n)-n.angleTo(e);for(s=Math.abs((s+3*Math.PI)%(2*Math.PI)-Math.PI),u.push({distance:a,angleDelta:s}),h+=s;a-u[0].distance>r;)h-=u.shift().angleDelta;if(h>i)return!1;o++,a+=n.dist(e)}return!0}function uu(t,n,e,r,i,s,o,a,u,h,l){const c=function(t,n,e){return t?.6*n*e:0}(r,s,o),f=function(t,n){return Math.max(t?t.right-t.left:0,n?n.right-n.left:0)}(r,i),d=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return n-f*o<n/4&&(n=f*o+n/4),function t(n,e,r,i,s,o,a,u,h,l,c){let f=0;const d=o/2,p=function(t){let n=0;for(let e=0;e<t.length-1;e++)n+=t[e].dist(t[e+1]);return n}(n);let y=0,m=e-r,v=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),g=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=hu(e.x,a.x,b),M=hu(e.y,a.y,b),x=hu(e.z||0,a.z||0,b);if(w>=0&&w<h&&M>=0&&M<h&&m-d>=0&&m+d<=p){const r=new ou(w,M,g,t);r.z=x,l&&(r.axis=[e.y-M,w-e.x],r.angleR=x===(e.z||0)?0:Math.atan(.9*(x-(e.z||0))*c/e.dist(r))),r.line=n,r.T(),!i||au(n,r,o,i,s)?v.push(r):i&&f++}}y+=u}return u||v.length||a||(v=t(n,y/2,r,i,s,o,a,!0,h,l,c)),v.countOutOfAngle=f,v}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,h,l)}function hu(t,n,e){return t*(1-e)+n*e}function lu(t,n){const e=t.length;if(e<=1)return[t];const r=[];let i,s;for(let n=0;n<e;n++){const e=Sr(t[n]);0!==e&&(t[n].area=Math.abs(e),void 0===s&&(s=e<0),s===e<0?(i&&r.push(i),i=[t[n]]):i.push(t[n]))}if(i&&r.push(i),n>1)for(let t=0;t<r.length;t++)r[t].length<=n||(Gn(r[t],n,1,r[t].length-1,cu),r[t]=r[t].slice(0,n));return r}function cu(t,n){return n.area-t.area}function fu(t,n,e){const r=n.distSqr(e);if(0===r)return t.distSqr(n);const i=((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/r;return t.distSqr(i<0?n:i>1?e:e.sub(n).A(i).m(n))}function du(t,n=1,e=!1){let r=1/0,i=1/0,s=-1/0,o=-1/0;const a=t[0];for(let t=0;t<a.length;t++){const n=a[t];(!t||n.x<r)&&(r=n.x),(!t||n.y<i)&&(i=n.y),(!t||n.x>s)&&(s=n.x),(!t||n.y>o)&&(o=n.y)}const u=Math.min(s-r,o-i);let h=u/2;const l=new Yn(null,pu);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)l.push(new yu(n+h,e+h,h,t));let c=function(t){let n=0,e=0,r=0;const i=t[0];for(let t=0,s=i.length,o=s-1;t<s;o=t++){const s=i[t],a=i[o],u=s.x*a.y-a.x*s.y;e+=(s.x+a.x)*u,r+=(s.y+a.y)*u,n+=3*u}return new yu(e/n,r/n,0,t)}(t),f=l.length;for(;l.length;){const r=l.pop();(r.d>c.d||!c.d)&&(c=r,e&&console.log("found best %d after %d probes",Math.round(1e4*r.d)/1e4,f)),r.max-c.d<=n||(h=r.h/2,l.push(new yu(r.p.x-h,r.p.y-h,h,t)),l.push(new yu(r.p.x+h,r.p.y-h,h,t)),l.push(new yu(r.p.x-h,r.p.y+h,h,t)),l.push(new yu(r.p.x+h,r.p.y+h,h,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function pu(t,n){return n.max-t.max}function yu(t,n,e,r){this.p=new Ut(t,n),this.h=e,this.d=function(t,n){let e=!1,r=1/0;for(let i=0;i<n.length;i++){const s=n[i];for(let n=0,i=s.length,o=i-1;n<i;o=n++){const i=s[n],a=s[o];i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(e=!e),r=Math.min(r,fu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function mu(t,n,e,r,i,s,o,a,u,h){const{feature:l,size:c,symbol:f}=t,d=c?24:0,p=i*(c?c[0]/d:1);if("line"===o){const t=[];t.countOutOfAngle=0;let i=l.geometry;s&&(i=su(l.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const l=uu(i[o],a,e,f.isIconText?null:r&&r.vertical||r&&r.horizontal||r,null,d,f.isIconText?1:p,1,s||1/0,u,h);if(f.textPlacement&&!f.isIconText)for(let t=0;t<l.length;t++)l[t].startIndex=n.length/3;if(t.push.apply(t,l),f.textPlacement&&!f.isIconText)for(let t=0;t<i[o].length;t++)n.push(i[o][t].x,i[o][t].y,i[o][t].z||0);t.countOutOfAngle+=l.countOutOfAngle||0}return t}return vu(l,o,s)}function vu(t,n,e,r,i){const s=[];if(3===t.type){const o=lu(t.geometry,0);for(let t=0;t<o.length;t++){const a=o[t];if("vertex"===n)for(let t=0;t<a.length;t++){const n=a[t];for(let o=0;o<n.length;o++)Ir(n[o],e)||(s.push(n[o]),r&&(0===o?gu(n[o],n[o],n[t+1],i):gu(n[o],n[o-1],n[o],i)))}else if("vertex-first"===n){const t=a[0];t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i))}else if("vertex-last"===n||"vertex-firstlast"===n){const t=a[0];if("vertex-firstlast"===n&&t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!Ir(t[t.length-1],e)){const n=t.length-1;s.push(t[n]),r&&gu(t[n],t[n-1],t[n],i)}}else{const t=du(a,16);Ir(t,e)||s.push(t)}}}else if(2===t.type)for(let o=0;o<t.geometry.length;o++){const a=t.geometry[o];if("vertex"===n)for(let t=0;t<a.length;t++)Ir(a[t],e)||(s.push(a[t]),r&&(0===t?gu(a[t],a[t],a[t+1],i):gu(a[t],a[t-1],a[t],i)));else if("vertex-last"===n||"vertex-firstlast"===n){if("vertex-firstlast"!==n||Ir(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!Ir(a[a.length-1],e)){const t=a.length-1;s.push(a[t]),r&&gu(a[t],a[t-1],a[t],i)}}else Ir(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i))}else if(1===t.type)for(let n=0;n<t.geometry.length;n++){const i=t.geometry[n];for(let t=0;t<i.length;t++){const n=i[t];Ir(n,e)||(r&&(n.xRotation=0,n.yRotation=0,n.zRotation=0),s.push(n))}}return s}function gu(t,n,e,r){if(t.xRotation||t.yRotation||t.zRotation)return t;const i=e.x-n.x,s=n.y-e.y,o=(e.z-n.z)*r,a=Math.atan2(s,i);t.zRotation=a;const u=Math.atan2(o,Math.sqrt(i*i+s*s));return t.xyRotation=u,t}function bu(t,n){const e={},r={},i=[];let s=0;function o(n){i.push(t[n]),s++}function a(t,n,e){const s=r[t];return delete r[t],r[n]=s,i[s].geometry[0].pop(),i[s].geometry[0]=i[s].geometry[0].concat(e[0]),s}function u(t,n,r){const s=e[n];return delete e[n],e[t]=s,i[s].geometry[0].shift(),i[s].geometry[0]=r[0].concat(i[s].geometry[0]),s}function h(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let l=0;l<t.length;l++){const c=t[l],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(l);continue}const p=h(d,f),y=h(d,f,!0);if(p in r&&y in e&&r[p]!==e[y]){const t=u(p,y,f),n=a(p,y,i[t].geometry);delete e[p],delete r[y],r[h(d,i[n].geometry,!0)]=n,i[t].geometry=null}else p in r?a(p,y,f):y in e?u(p,y,f):(o(l),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class wu extends ua{static needMerge(t,n,e){if(!t)return!1;let r="line"===t.textPlacement||"line"===t.markerPlacement;return r||(n.textPlacementFn&&(r="line"===n.textPlacementFn(e)),n.markerPlacementFn&&(r="line"===n.markerPlacementFn(e))),t.mergeOnProperty&&r}static mergeLineFeatures(t,n,e,r){const i="__index".trim();let s=n.textPlacement,o=n.markerPlacement;e.textPlacementFn&&(s=e.textPlacementFn(r)),e.markerPlacementFn&&(o=e.markerPlacementFn(r));const a=function(t,n,e,r,i){const s="__index".trim(),o=ua.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!($r(u=n.mergeOnProperty)||"string"!=typeof u&&(null===u.constructor||u.constructor!==String)||"line"!==r&&"line"!==e))return[{features:t,property:n.mergeOnProperty}];var u;const h=[],l={},c=[];for(let o=0;o<t.length;o++){t[o][s]=o;const u=t[o].properties=t[o].properties||{};u.$layer=t[o].layer,u.$type=t[o].type;let f=e;"line"!==f&&(f=r);const d=a?a(i,u):n.mergeOnProperty;"line"!==f||$r(d)?c.push(t[o]):(void 0===l[d]&&(l[d]=h.length,h.push({features:[],property:d})),h[l[d]].features.push(t[o]))}return c.length&&h.push({features:c}),h}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?bu(a[e].features,a[e].property):t);if(1===n.length)return n[0];{let t=[];for(let e=0;e<n.length;e++)t=t.concat(n[e]);return t.sort((t,n)=>t[i]-n[i]),t}}}static splitPointSymbol(t,n=0){const e=[];if(Array.isArray(t)){const n=t;for(let t=0;t<n.length;t++)n[t]&&e.push(...wu.splitPointSymbol(n[t],t));return e}let r=null,i=null;for(const n in t)0===n.indexOf("marker")?(r=r||{},r[n]=t[n]):0===n.indexOf("text")&&(i=i||{},i[n]=t[n]);return r&&(r.isIconText=!0,t.mergeOnProperty&&(r.mergeOnProperty=t.mergeOnProperty),e.push(r)),i&&(r&&(i.textPlacement=r.markerPlacement,i.textSpacing=r.markerSpacing,i.isIconText=!0),t.mergeOnProperty&&(i.mergeOnProperty=t.mergeOnProperty),e.push(i)),void 0!==t.visible&&(r&&(r.visible=t.visible),i&&(i.visible=t.visible)),r&&(r.markerTextFit&&i&&(r.text={},r.text.textName=i.textName,r.text.textSize=i.textSize),r.index={index:n,type:0}),i&&(i.index={index:n,type:1}),e}static isAtlasLoaded(t,n){const{icon:e,glyph:r}=t,{iconAtlas:i,glyphAtlas:s}=n;if(e&&(!i||!i.positions[e.url]))return!1;if(r){if(!s||!s.positions[r.font])return!1;const t=s.positions[r.font],{text:n}=r;for(let e=0;e<n.length;e++)if(!t[n.charCodeAt(e)])return!1}return!0}constructor(t,n,e){super(t,n,e),this.dt=n.textPlacement,this.K.textPlacementFn&&(this.dt=this.K.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new ru(t,this.symbolDef,n,e,r),a=o.getIconAndGlyph();if(a.icon&&!this.options.atlas){const{url:t,size:n}=a.icon;i[t]||(i[t]=a.icon.size),i[t][0]<n[0]&&(i[t][0]=n[0]),i[t][1]<n[1]&&(i[t][1]=n[1])}if(a.glyph&&!this.options.atlas){const{font:t,text:n}=a.glyph,e=s[t]=s[t]||{};for(let t=0;t<n.length;t++)e[n.charCodeAt(t)]=1;"line"===this.dt&&(s.options={isCharsCompact:!1})}return this.options.allowEmptyPack||a.icon||a.glyph?o:null}getFormat(t){const n=void 0!==t.textName,e=n?this.getPackSDFFormat(t):this.getPackMarkerFormat();n?e.push(...this.pt()):e.push(...this.yt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:h,textRotationFn:l,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.K;return(r||i)&&e.push({type:Uint8Array,width:1,name:"aColorOpacity"}),(s||o)&&e.push({type:Uint8Array,width:1,name:"aPitchAlign"}),(a||u)&&e.push({type:Uint8Array,width:1,name:"aRotationAlign"}),(h||l)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}vt(){return this.hasMapPitchAlign}pt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.K,a=[];return t&&a.push({type:Uint8Array,width:4,name:"aTextFill"}),n&&a.push({type:Uint8Array,width:1,name:"aTextSize"}),e&&a.push({type:Uint8Array,width:4,name:"aTextHaloFill"}),r&&a.push({type:Uint8Array,width:1,name:"aTextHaloRadius"}),i&&a.push({type:Uint8Array,width:1,name:"aTextHaloOpacity"}),s&&a.push({type:Int8Array,width:1,name:"aTextDx"}),o&&a.push({type:Int8Array,width:1,name:"aTextDy"}),a}yt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.K,i=[];return t&&i.push({type:this.options.markerWidthType||Uint8Array,width:1,name:"aMarkerWidth"}),n&&i.push({type:this.options.markerHeightType||Uint8Array,width:1,name:"aMarkerHeight"}),e&&i.push({type:Int8Array,width:1,name:"aMarkerDx"}),r&&i.push({type:Int8Array,width:1,name:"aMarkerDy"}),i}createDataPack(){if(!this.iconAtlas&&!this.glyphAtlas){if(!this.options.allowEmptyPack)return null;this.empty=!0}this.countOutOfAngle=0,this.lineVertex=[];const t=super.createDataPack.apply(this,arguments);return t?(t.lineVertex=new Int16Array(this.lineVertex),t.buffers.push(t.lineVertex.buffer),t):null}placeVector(t,n){const e=t.getShape(this.iconAtlas,this.glyphAtlas);if(!(this.options.allowEmptyPack||e&&e.image||e&&(e.horizontal||e.vertical)))return;const r=this.gt(t,e,n);if(this.countOutOfAngle+=r.countOutOfAngle||0,0===r.length)return;const i=this.data,s=this.needAltitudeAttribute()?2:3;let o=this.data.aPosition.length/s;const a=t.symbol,u=t.feature.properties,h="line"===this.dt&&!a.isIconText,l=void 0!==a.textName,c=l&&h&&function(t){let n=0;for(let e=0;e<t.length;e++)if(Va(t.charAt(e).charCodeAt(0)))n=0;else if(n++,n>=1)return!1;return!0}(t.getIconAndGlyph().glyph.text)?1:0,{textFillFn:f,textSizeFn:p,textHaloFillFn:y,textHaloRadiusFn:m,textHaloOpacityFn:v,textDxFn:g,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:k,textOpacityFn:A,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:z,markerIgnorePlacementFn:C,markerOpacityFn:T}=this.K;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(l){const n=t.getIconAndGlyph().glyph.font;D=function(t,n,e){const r=t.positionedGlyphs,i=[];for(let s=0;s<r.length;s++){const o=r[s],a=e[o.glyph];if(!a)continue;const u=a.rect;if(!u)continue;const h=4,l=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+l,0]:[0,0],d=n?[0,o.y-c]:[o.x+l,o.y-c],p=a.metrics.left-h-l+d[0],y=a.metrics.top-h+d[1],m=p+u.w,v=y+u.h,g=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,v),M=new Ut(m,v);if(n&&o.vertical){const t=new Ut(-l,l),n=-Math.PI/2,e=new Ut(5,0);g._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:g,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,h,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Fr([],j)),p&&(U=p(this.options.zoom,u),$r(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Fr([],N)),m&&(L=m(null,u)),v&&(V=255*v(null,u)),g&&(R=g(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=zr(x(null,u),0,360)*Math.PI/180)}else D=e?function(t){const n=t.image,e=t.top-1/n.pixelRatio,r=t.left-1/n.pixelRatio,i=t.bottom+1/n.pixelRatio,s=t.right+1/n.pixelRatio;let o,a,u,h;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),h=new Ut(r,i),[{tl:o,tr:a,bl:h,br:u,tex:{x:n.tl[0],y:n.tl[1],w:n.displaySize[0],h:n.displaySize[1]},writingMode:void 0,glyphOffset:[0,0]}]}(e):function(){const t=new Ut(0,0),n=new Ut(0,0),e=new Ut(0,0);return[{tl:t,tr:n,bl:new Ut(0,0),br:e,tex:{x:0,y:0,w:0,h:0},writingMode:void 0,glyphOffset:[0,0]}]}(),P&&(W=P(null,u)),$r(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),$r(q)&&(q=D[0].tex.h),_&&(G=_(null,u)),O&&(B=O(null,u)),E&&(J=+("map"===E(null,u))),I&&(X=+("map"===I(null,u))),$&&(Y=zr($(null,u),0,360)*Math.PI/180);d(U)&&(this.dynamicAttrs.aTextSize=1),d(L)&&(this.dynamicAttrs.aTextHaloRadius=1),d(V)&&(this.dynamicAttrs.aTextHaloOpacity=1),d(R)&&(this.dynamicAttrs.aTextDx=1),d(H)&&(this.dynamicAttrs.aTextDy=1),d(W)&&(this.dynamicAttrs.aMarkerWidth=1),d(q)&&(this.dynamicAttrs.aMarkerHeight=1),d(G)&&(this.dynamicAttrs.aMarkerDx=1),d(B)&&(this.dynamicAttrs.aMarkerDy=1),d(J)&&(this.dynamicAttrs.aPitchAlign=1),d(X)&&(this.dynamicAttrs.aRotationAlign=1),d(Y)&&(this.dynamicAttrs.aRotation=1);const Q=z||F;Q&&(Z=Q(null,u)||0);const tt=C||k;let nt;tt&&(K=tt(null,u)||0);const et=A||T;et&&(nt=255*et(this.options.zoom,u));const rt=this.options.EXTENT,it=D.length,{altitudeScale:st,altitudeProperty:ot,defaultAltitude:at}=this.options,{altitude:ut}=Er(t.feature,st,ot,at);for(let t=0;t<r.length;t++){const n=r[t],e=n.z||ut||0;if(rt!==1/0&&Ir(n,rt))continue;const s=n.x,a=n.y,u=D.length;for(let t=0;t<u;t++){const r=D[t],{tl:u,tr:f,bl:d,br:p,tex:y}=r;this.bt(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*d.x,10*d.y,y.x,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.addElements(o,o+1,o+2),this.addElements(o+1,o+2,o+3),o+=4;const m=Math.max(Math.abs(s),Math.abs(a),Math.abs(e));m>this.maxPos&&(this.maxPos=m)}}}bt(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}wt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.vt()&&t.aPitchRotation.push(o[0],o[1],a);const n=i.startIndex;t.aSegment.push(i.segment+n,n,i.line.length),t.aVertical.push(s)}}Mt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m,v){const{textFillFn:g,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:k,textPitchAlignmentFn:A,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:z,markerDyFn:C,markerPitchAlignmentFn:T,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.K;g&&t.aTextFill.push(...n),b&&t.aTextSize.push(e),w&&t.aTextHaloFill.push(...r),M&&t.aTextHaloRadius.push(i),x&&t.aTextHaloOpacity.push(s),F&&t.aTextDx.push(o),k&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(h),z&&t.aMarkerDx.push(l),C&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(A||T)&&t.aPitchAlign.push(d),(D||P)&&t.aRotationAlign.push(p),(j||S)&&t.aRotation.push(9362*y);const V=U||_,R=N||O;(V||R)&&t.aOverlap.push((V?8:0)+4*m+((R?2:0)+v)),i>0&&(this.properties.hasHalo=1)}gt(t,n,e){const{feature:r,symbol:i}=t,s=this.xt(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:h}=this.K,l=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=h?h(this.options.zoom,o):i.textMaxAngle;$r(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.vt();return mu(t,this.lineVertex,c,n,e,f,s,l,p,d)}xt(t,n){let e;return e=this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.dt,this.it||!n.markerPlacement&&!n.isIconText||(this.it=e),!this.dt||n.isIconText||this.st||(this.st=e),e}getPackSDFFormat(t){if("line"!==this.dt||t.isIconText)return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"}];{const t=[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"},{type:Int16Array,width:2,name:"aGlyphOffset"},{type:Uint16Array,width:3,name:"aSegment"},{type:Uint8Array,width:1,name:"aVertical"}];return this.vt()&&t.push({type:Float32Array,width:3,name:"aPitchRotation"}),t}}getPackMarkerFormat(){return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"}]}}class Mu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new Mu(this)}I(){return this.P(this.mag()),this}P(t){return this.x/=t,this.y/=t,this.z/=t,this}C(){var t=this.y;return this.y=this.x,this.x=-t,this}mag(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}add(t){return this.clone().m(t)}sub(t){return this.clone().M(t)}m(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}M(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}equals(t){return this.x===t.x&&this.y===t.y&&this.z===t.z}mult(t){return this.clone().A(t)}A(t){return this.x*=t,this.y*=t,this.z*=t,this}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){var n=t.x-this.x,e=t.y-this.y,r=t.z-this.z;return n*n+e*e+r*r}T(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}}const xu=Math.cos(Math.PI/180*37.5),Fu=Math.pow(2,16)/1,ku=new Ut,Au=new Ut,Pu=new Ut;class Su extends ua{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.K;this.hasGradient=this.symbol.lineGradientProperty,i&&(r=function(t,n,e){for(let r=0;r<t.length;r++)if(e(n,t[r].properties))return!0;return!1}(t,this.options.zoom,i),r&&(this.dasharrayFn=i)),this.hasDasharray=Eu(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getLineResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const{lineWidthFn:t,lineStrokeWidthFn:n,lineStrokeColorFn:e,lineColorFn:r,lineOpacityFn:i,lineDxFn:s,lineDyFn:o,linePatternAnimSpeedFn:a,linePatternGapFn:u}=this.K,h=[...this.getPositionFormat()];if(h.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),h.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&h.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&h.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&h.push({type:Uint8Array,width:4,name:"aColor"}),e&&h.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&h.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&h.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&h.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();h.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&h.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&h.push({type:Int8Array,width:2,name:"aLinePattern"}),h}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:h,lineDyFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,p=this.symbol,y=t.feature,m=y.properties;let v=p.lineJoin||"miter",g=p.lineCap||"butt";if(n&&(v=n(this.options.zoom,m)||"miter"),e&&(g=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),cr(t)&&(t=4),this.feaLineWidth=+t}else this.feaLineWidth=+p.lineWidth;if(i){let t=i(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineHeight=1),cr(t)&&(t=this.feaLineWidth),this.feaLineHeight=+t}else this.feaLineHeight=+p.lineHeight||this.feaLineWidth;if(s){let t=s(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineStrokeWidth=1,t=0),cr(t)&&(t=0),this.feaLineStrokeWidth=t}else this.feaLineStrokeWidth=p.lineStrokeWidth||0;if(a&&(this.feaColor=a(this.options.zoom,m)||[255,255,255,255],d(this.feaColor)?(this.dynamicAttrs.aColor=1,this.feaColor=[0,0,0,0]):this.feaColor=Fr([],this.feaColor)),o&&(this.feaStrokeColor=o(this.options.zoom,m)||[0,0,0,255],d(this.feaStrokeColor)?(this.dynamicAttrs.aStrokeColor=1,this.feaStrokeColor=[0,0,0,0]):this.feaStrokeColor=Fr([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),cr(t)&&(t=1),this.feaOpacity=255*t}if(this.dasharrayFn){let t=this.dasharrayFn(this.options.zoom,m)||[0,0,0,0];if(d(t)&&(this.dynamicAttrs.aDasharray=1,t=[0,0,0,0]),t.length<4){const n=t;1===t.length?t=[n[0],n[0],n[0],n[0]]:2===t.length?t=[n[0],n[1],n[0],n[1]]:3===t.length&&(t=[n[0],n[1],n[2],n[2]])}this.feaDash=t}if(this.dashColorFn){let t=(this.dashColorFn?this.dashColorFn(this.options.zoom,m):this.symbol.lineDashColor)||[0,0,0,0];d(t)&&(this.dynamicAttrs.aDashColor=1,t=[0,0,0,0]),t=Fr([],t),this.feaDashColor=t}if(this.iconAtlas){const n=t.getLineResource(),e=this.iconAtlas.glyphMap[n];if(this.feaTexInfo=this.feaTexInfo||[0,0,0,0],e){const{tl:t,displaySize:e}=this.iconAtlas.positions[n];this.feaTexInfo[0]=t[0]+1,this.feaTexInfo[1]=t[1]+1,this.feaTexInfo[2]=e[0]-3,this.feaTexInfo[3]=e[1]-3}else this.feaTexInfo[0]=this.feaTexInfo[1]=this.feaTexInfo[2]=this.feaTexInfo[3]=0}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDx=t}if(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),cr(t)&&(t=0),0!==t&&(this.properties.hasPatternAnim=1),this.feaPatternAnimSpeed=t}if(f){let t=f(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternGap=1,t=0),cr(t)&&(t=0),this.feaLinePatternGap=t}const b=this.options.EXTENT;let w=y.geometry;if(b!==1/0){w=[];const t=[];for(let n=0;n<y.geometry.length;n++){t[0]=y.geometry[n];const e=su(t,-1,-1,b+1,b+1);if(3===y.type&&e.length>1){const t=e[0],n=e[e.length-1];Cu(t[0],n[n.length-1])&&(e[0]=n.concat(t.slice(1)),e.length=e.length-1)}w.push(...e)}}const M=this.needAltitudeAttribute()?2:3;for(let t=0;t<w.length;t++)this.offset=this.data.aPosition.length/M,this.Ft(w[t],y,v,g,2,1.05)}kt(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}Ft(t,n,e,r,i,s){const o=this.kt()||Eu(this.feaDash)||Eu(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new Mu(t))),this.overscaling=1;const u=this.options.EXTENT;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.prevVertex=null,this.symbol.lineGradientProperty&&n.properties&&fr(n.properties.mapbox_clip_start)&&fr(n.properties.mapbox_clip_end)){this.clipStart=+n.properties.mapbox_clip_start,this.clipEnd=+n.properties.mapbox_clip_end;for(let n=0;n<t.length-1;n++)this.totalDistance+=t[n].dist(t[n+1]);this.updateScaledDistance()}const h=3===n.type&&!t.clipped;let l=t.length;for(;l>=2&&Cu(t[l-1],t[l-2]);)l--;let c=0;for(;c<l-1&&Cu(t[c],t[c+1]);)c++;if(l<(h?3:2))return;"bevel"===e&&(i=1.05);const f=this.overscaling<=16?15*u/(512*this.overscaling):0,d={vertexLength:0,primitiveLength:0,currentNormal:null};let p,y,m,v,g;this.e1=this.e2=-1,h&&(p=t[l-2],g=t[c].sub(p).I().C());for(let n=c;n<l;n++){if(m=n===l-1?h?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;g&&(v=g),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),g=m?m.sub(p).I().C():v,d.dir=y?p.sub(y).I():m.sub(p).I(),v=v||g,d.currentNormal=v;let u=v.add(g);0===u.x&&0===u.y||u.I();const b=v.x*g.x+v.y*g.y,w=u.x*g.x+u.y*g.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<xu&&y&&m,k=v.x*g.y-v.y*g.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).A(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,v,0,0,d),y=n}}const A=y&&m;d.middleVertex=A;let P=A?e:h?"butt":r;if(A&&"round"===P&&(M<s?P="miter":M<=2&&(P="fakeround")),"miter"===P&&M>i&&!a&&(P="bevel"),"bevel"===P&&(M>2&&(P="flipbevel"),M<i&&(P="miter")),y&&this.updateDistance(y,p),"miter"===P)a?(this.addCurrentVertex(p,v,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,g,0,0,d)):(u.A(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=g,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=g.mult(-1);else{const t=M*v.add(g).mag()/v.sub(g).mag();u.C().A(t*(k?-1:1))}this.addCurrentVertex(p,u,0,0,d),this.addCurrentVertex(p,u.mult(-1),0,0,d)}else if("bevel"===P||"fakeround"===P){const t=-Math.sqrt(M*M-1),n=k?t:0,e=k?0:t;if(y&&this.addCurrentVertex(p,v,n,e,d),"fakeround"===P){const t=Math.round(180*x/Math.PI/20);for(let n=1;n<t;n++){let e=n/t;if(.5!==e){const t=e-.5;e+=e*t*(e-1)*((1.0904+b*(b*(3.55645-1.43519*b)-3.2452))*t*t+(.848013+b*(.215638*b-1.06021)))}const r=g.sub(v).A(e).m(v).I().A(k?-1:1);this.addHalfVertex(p,r.x,r.y,!1,k,0,d)}}m&&(d.currentNormal=g,this.addCurrentVertex(p,g,-n,-e,d))}else if("butt"===P)this.addCurrentVertex(p,u,0,0,d);else if("square"===P){const t=y?1:-1;this.addCurrentVertex(p,u,t,t,d)}else"round"===P&&(y&&(this.addCurrentVertex(p,v,0,0,d),this.addCurrentVertex(p,v,1,1,d,!0)),m&&(this.addCurrentVertex(p,g,-1,-1,d,!0),this.addCurrentVertex(p,g,0,0,d)));if(!a&&F&&n<l-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).A(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,g,0,0,d),p=n}}}}addCurrentVertex(t,n,e,r,i,s=!1){const o=n.x+n.y*e,a=n.y-n.x*e,u=n.y*r-n.x,h=-n.y-n.x*r;let l=0,c=0;if(i.middleVertex){ku.x=o,ku.y=a,Au.x=u,Au.y=h;const t=i.currentNormal;if(l=zu(t,ku),0===e&&0===r)c=-l;else{const n=Pu;n.x=t.x,n.y=t.y,n.A(-1),c=zu(n,Au)}}this.addHalfVertex(t,o,a,s,!1,e,i,l),this.addHalfVertex(t,u,h,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>Fu/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,n,e,r,i,s))}addHalfVertex({x:t,y:n,z:e},r,i,s,o,a,u,h){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,h);const l=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,l),u.primitiveLength++),o?this.e2=l:this.e1=l}fillData(t,n,e,r,i,s,o,a,u,h){const{lineWidthFn:l,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:v,linePatternGapFn:g}=this.K;this.fillPosition(t,n,e,r);let b=63*i;b=(Math.sign(b)||1)*((Math.floor(Math.abs(b))>>1<<1)+ +o);let w=63*s;w=(Math.sign(w)||1)*((Math.floor(Math.abs(w))>>1<<1)+ +a),t.aExtrude.push(b,w),(this.iconAtlas||this.hasDasharray)&&t.aExtrude.push(63*h),t.aLinesofar.push(u),l&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),c&&t.aLineStrokeWidth.push(Math.round(2*this.feaLineStrokeWidth)),d&&t.aColor.push(...this.feaColor),f&&t.aStrokeColor.push(...this.feaStrokeColor),p&&t.aOpacity.push(this.feaOpacity),this.dasharrayFn&&t.aDasharray.push(...this.feaDash),this.dashColorFn&&t.aDashColor.push(...this.feaDashColor),this.iconAtlas&&t.aTexInfo.push(...this.feaTexInfo),(y||m)&&t.aLineDxDy.push(this.feaLineDx||0,this.feaLineDy||0),(v||g)&&t.aLinePattern.push(127*(this.feaPatternAnimSpeed||0),10*(this.feaLinePatternGap||0)),this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}addElements(t,n,e){super.addElements(this.offset+t,this.offset+n,this.offset+e)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(Ou(this.data.aPosition,e[r],e[r+1],3,n)||Ou(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}Pt(t){if(t.length<=1)return t;const n=[],e=this.options.EXTENT;let r,i=!0;for(r=0;r<t.length-1;r++){const s=_u(t[r],t[r+1],e);s&&i||(n.push(t[r]),i=s)}return i||n.push(t[r]),n}updateDistance(t,n){if(this.options.isTube){const e=t.dist(n),r=wr(this.options)*(n.z-t.z);this.distance+=Math.sqrt(e*e+r*r)}else this.distance+=t.dist(n);this.updateScaledDistance()}updateScaledDistance(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Fu-1):this.distance}}function _u(t,n,e){return e!==1/0&&(t.x<0&&n.x<0||t.x>e&&n.x>e||t.y<0&&n.y<0||t.y>e&&n.y>e)}function Ou(t,n,e,r,i){if(i===1/0)return!1;const s=Math.floor(.5*t[n*r]),o=Math.floor(.5*t[n*r+1]),a=Math.floor(.5*t[e*r]),u=Math.floor(.5*t[e*r+1]);return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Eu(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Iu=new Ut(0,0),$u=new Ut(0,0);function zu(t,n){const e=t.mag(),r=n.mag();Iu.x=n.x,Iu.y=n.y;const i=t.angleTo($u),s=n.angleTo($u);return Math.sign(s-i)*Math.sqrt(r*r-e*e)}function Cu(t,n){return t.equals(n)&&t.z===n.z}class Tu extends Su{constructor(t,n,e){super(t,n,e),this.St=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.K,e=[{type:this.maxPosZ>=Math.pow(2,15)?Float32Array:Int16Array,width:3,name:"aPosition"},{type:Uint16Array,width:1,name:"aLinesofar"},{type:Uint8Array,width:1,name:"aUp"},{type:Int16Array,width:3,name:"aExtrudedPosition"},{type:Int8Array,width:2,name:"aExtrude"}];return t&&e.push({type:Uint8Array,width:4,name:"aColor"}),n&&e.push({type:Uint8Array,width:1,name:"aLineWidth"}),this.St&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.St){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=Er(n,t,e,r,i,s,o);this.feaAltitude=a,this.feaMinHeight=(a-u)/a*32767,a>this.maxAltitude&&(this.maxAltitude=a)}return super.placeVector(t)}needAltitudeAttribute(){return!1}Ft(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super.Ft(t,n,e,r,i,s);const a=this.data.aPosition.length/3,u=this.data.aPosition.length/3-this.offset;if(3!==n.type&&u>0&&!1!==this.options.side){const t=!1!==this.options.top?1:0,n=t+4;let e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[o*r+3*r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*n+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*(n+3)+t])}super.addElements(t+1,u+1,u),super.addElements(u,u+1,u+2);const r=this.data.aPosition.length/3-this.offset;e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[a*r-r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-i+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-3*i+t])}super.addElements(r,u-3,r+1),super.addElements(u-3,r+2,r+1)}}fillData(t,n,e,r,i,s,o,a,u){const h=!1!==this.options.top,l=!1!==this.options.side,c=this.feaLineWidth||this.symbol.lineWidth/2*(this.options.EXTENT/this.options.tileSize),f=63*i,d=63*s,p=c*i+n,y=c*s+e;this._t(t,n,e,i,s,o,a,u,p,y,f,d),l&&(h&&this._t(t,n,e,i,s,o,a,u,p,y,f,d),this._t(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}_t(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}Ot(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}addElements(t,n,e){const r=!1!==this.options.top,i=!1!==this.options.side,s=(r?1:0)+(i?4:0);if(t*=s,n*=s,this.data.aUp[this.offset+(e*=s)+4]){if(r&&super.addElements(n,t,e),i){const t=r?1:0;super.addElements(n+t,e+t,e+t+2),super.addElements(n+t+1,e+t+1+2,n+t+1+2)}}else if(r&&super.addElements(t,e,n),i){const n=r?1:0;super.addElements(t+n,t+n+2,e+n),super.addElements(t+n+1+2,e+n+1+2,e+n+1)}}createDataPack(t,n){this.maxAltitude=0;const e=super.createDataPack(t,n);if(!e)return e;const{data:r,indices:i}=e;this.getFormat().reduce((t,n)=>(t[n.name]={size:n.width},t),{}).aPickingId={size:1};const{aExtrudedPosition:s,aPosition:o,aLinesofar:a,aUp:u,aExtrude:h,aColor:l,aLineHeight:c,aLineWidth:f}=r,d={},p=re(s,i);let y,m=!0;for(let t=0;t<p.length;t++)p[t]=-p[t],p[t]%1!=0&&(m=!1);if(!1!==this.options.top&&this.symbol.material&&function(t){for(const n in t)if(n.indexOf("Texture")>=0&&t[n])return!0;return!1}(this.symbol.material)&&(y=function(t,n,e){const r=[];for(let i=0;i<t.length;i+=3){const t=n[i/3];r.push(t/256,e[i/3]?1:0)}return r}(s,a,u)),d.aPosition=o,y&&(d.aTexCoord0=new Float32Array(y)),d.aNormal=m?new Int8Array(p):new Float32Array(p),d.aPickingId=r.aPickingId,d.aExtrude=h,l&&(d.aColor=l),f&&(d.aLineWidth=f),c){const t=or(this.maxAltitude);d.aLineHeight=new t(c)}const v=[];for(const t in d)v.push(d[t].buffer);return e.data=d,e.buffers=v,e}}const Du=Math.pow(2,16)/1;class ju extends ua{getFormat(){return[...this.getPositionFormat()]}placeVector(t){const n=t.feature,e=3===n.type,r=n.geometry,i=this.elements;e&&(this.elements=[]);const s=this.needAltitudeAttribute()?2:3;for(let t=0;t<r.length;t++)this.offset=this.data.aPosition.length/s,this.Ft(r[t],n),e&&(this.At(i),this.elements=[]);e&&(this.elements=i)}Ft(t,n){const e=3===n.type;let r=t.length;for(;r>=2&&t[r-1].equals(t[r-2]);)r--;let i,s,o,a=0;for(;a<r-1&&t[a].equals(t[a+1]);)a++;if(!(r<(e?3:2))){this.distance=0,this.vertexLength=0,this.primitiveLength=0,this.e1=this.e2=this.e3=-1,e&&(i=t[r-2]);for(let n=a;n<r;n++)o=e&&n===r-1?t[a+1]:t[n+1],o&&t[n].equals(o)||(i&&(s=i),i=t[n],s&&(this.distance+=i.dist(s)),this.addCurrentVertex(i,this.distance))}}addCurrentVertex(t,n){const e=this.vertexLength++;this.addLineVertex(this.data,t,n),e>=1&&this.addElements(e-1,e),n>Du&&(this.distance=0,this.addCurrentVertex(t,this.distance))}addLineVertex(t,n){this.fillPosition(t,n.x,n.y,n.z||0),this.maxPos=Math.max(this.maxPos,Math.abs(n.x),Math.abs(n.y))}addElements(t,n){super.addElements(this.offset+t,this.offset+n)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)_r(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const Uu=45*Math.PI/100;class Nu extends ua{getFormat(){const{markerFillFn:t}=this.K;let n;return n="line"===this.symbol.markerRotationAlignment?[...this.getPositionFormat(),{type:Float32Array,width:1,name:"aXYRotation"},{type:Float32Array,width:1,name:"aZRotation"}]:[...this.getPositionFormat()],t&&n.push({type:Uint8Array,width:4,name:"aColor"}),n}placeVector(t){const n=t.feature.properties,{markerFillFn:e}=this.K;let r;e&&(r=e(this.options.zoom,n)||[255,255,255,255],d(r)?(this.dynamicAttrs.aColor=1,r=[0,0,0,0]):r=Fr([],r));const i="line"===this.symbol.markerRotationAlignment,s=this.gt(t,this.symbol.markerSpacing||250,this.symbol.markerPlacement||"point",i);for(let t=0;t<s.length;t++){const n=s[t];this.fillPosition(this.data,n.x,n.y,n.z),i&&(this.data.aXYRotation.push(n.xyRotation||0),this.data.aZRotation.push(n.zRotation||0)),r&&this.data.aColor.push(...r);const e=Math.max(Math.abs(n.x),Math.abs(n.y));e>this.maxPos&&(this.maxPos=e)}}gt(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=su(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=uu(e[r],n,Uu,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return vu(i,e,s,r,this.options.altitudeToTileScale)}hasElements(){return!1}}\n/*!\n * from @turf/bboxClip\n * https://github.com/Turfjs/turf\n * MIT LICENSE\n */const Lu=[],Vu=[];function Ru(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Wu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Wu(a=t[o],n)&r))!==s){const t=Hu(i,a,r,n);e.push(void 0!==a.x?new Ut(t[0],t[1]):t)}u&&e.push(a),i=a,s=u}if(!(t=e).length)break}return e}function Hu(t,n,e,r){return Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y,t=Lu,Vu[0]=void 0===n.x?n[0]:n.x,Vu[1]=void 0===n.y?n[1]:n.y,n=Vu,8&e?[t[0]+(n[0]-t[0])*(r[3]-t[1])/(n[1]-t[1]),r[3]]:4&e?[t[0]+(n[0]-t[0])*(r[1]-t[1])/(n[1]-t[1]),r[1]]:2&e?[r[2],t[1]+(n[1]-t[1])*(r[2]-t[0])/(n[0]-t[0])]:1&e?[r[0],t[1]+(n[1]-t[1])*(r[0]-t[0])/(n[0]-t[0])]:null}function Wu(t,n){Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Lu)[0]<n[0]?e|=1:t[0]>n[2]&&(e|=2),t[1]<n[1]?e|=4:t[1]>n[3]&&(e|=8),e}const qu=[0,0,0,0];class Gu extends ua{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getPolygonResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const t=[...this.getPositionFormat()],{polygonFillFn:n,polygonOpacityFn:e,uvScaleFn:r,uvOffsetFn:i}=this.K;if(this.iconAtlas){const n=this.getIconAtlasMaxValue();t.push({type:n>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return n&&t.push({type:Uint8Array,width:4,name:"aColor"}),e&&t.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&t.push({type:Uint16Array,width:2,name:"aUVScale"}),i&&t.push({type:Uint8Array,width:2,name:"aUVOffset"}),t}placeVector(t,n){const e=t.feature;this.Et(e.geometry,e,n)}Et(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:h}=this.K,l=n.properties;o&&(e=o(this.options.zoom,l)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=qu):e=Fr([],e)),a&&(r=a(this.options.zoom,l),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(cr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,l),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(cr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),h&&(s=h(this.options.zoom,l),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(cr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]]));const c=!!this.iconAtlas,f=lu(t,500),p=[0,0],y=[0,0];if(c){const{polygonPatternFileFn:t}=this.K,n=t?t(null,l):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n];p[0]=t.tl[0]+1,p[1]=t.tl[1]+1,y[0]=t.displaySize[0]-3,y[1]=t.displaySize[1]-3}}const m=this.needAltitudeAttribute()?2:3,v=[-1,-1,n.extent+1,n.extent+1],g=this.It=this.It||this.et.get(),b=this.$t=this.$t||this.et.get();for(let t=0;t<f.length;t++){const n=f[t],o=this.data.aPosition.length/m;g.setLength(0),b.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Ru(o,v)),0!==o.length){0!==t&&b.push(g.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;this.fillPosition(this.data,n,a,u),c&&this.data.aTexInfo.push(p[0],p[1],y[0],y[1]),void 0!==e&&this.data.aColor.push(e[0],e[1],e[2],e[3]),void 0!==r&&this.data.aOpacity.push(r),void 0!==i&&this.data.aUVScale.push(i[0],i[1]),void 0!==s&&this.data.aUVOffset.push(s[0],s[1]);const h=Math.abs(n),l=Math.abs(a);h>this.maxPos&&(this.maxPos=h),l>this.maxPos&&(this.maxPos=l),g.push(n,a,u)}}}let a=Ve(g,b,3);if(g.length&&!a.length){const t=[];for(let n=0;n<g.length;n+=3)t[n]=g[n],t[n+1]=g[n+2],t[n+2]=g[n+1];if(a=Ve(t,b,3),!a.length){for(let n=0;n<g.length;n+=3)t[n]=g[n+1],t[n+1]=g[n+2],t[n+2]=g[n];a=Ve(t,b,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Bu=[{type:Int16Array,width:3,name:"aPosition"}];class Ju extends ua{getFormat(){return Bu}placeVector(t,n){const e=this.gt(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Bu[0].width;for(let t=0;t<e.length;t++){const n=e[t];r.aPosition.push(2*n.x+0,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+1,i),r.aPosition.push(2*n.x+0,2*n.y+1,i),this.addElements(s,s+1,s+2),this.addElements(s,s+2,s+3),s+=4;const o=Math.max(Math.abs(2*n.x+1),Math.abs(2*n.y+1));o>this.maxPos&&(this.maxPos=o)}}gt(t,n){const{feature:e,symbol:r}=t,i=this.xt(t,r),s=e.properties,{markerSpacingFn:o}=this.K,a=((o?o(null,s):r.markerSpacing)||250)*n;return mu(t,null,null,n,this.options.EXTENT,i,a)}xt(t,n){return this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Xu extends Su{constructor(t,n,e){(n=lr({},n)).lineJoin="miter",n.lineCap="butt",super(t,n,e),this.options.radialSegments%2==1&&this.options.radialSegments--}getFormat(){const{lineWidthFn:t,lineColorFn:n,lineOpacityFn:e,linePatternAnimSpeedFn:r,linePatternGapFn:i}=this.K,s=[...this.getPositionFormat(),{type:Int8Array,size:4,name:"aTubeNormal"},{type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}];if(this.iconAtlas){s.push({type:Int8Array,width:1,name:"aNormalDistance"});const t=this.getIconAtlasMaxValue();s.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return t&&s.push({type:Uint16Array,width:1,name:"aLineWidth"}),n&&s.push({type:Uint8Array,width:4,name:"aColor"}),e&&s.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&s.push({type:Int8Array,width:1,name:"aLinePatternAnimSpeed"}),i&&s.push({type:Int8Array,width:1,name:"aLinePatternGap"}),s}addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,f=this.options.radialSegments/2,{x:d,y:p,z:y}=o.dir,m=function(t,n,e,r,i,s,o,a){ft(Yu,e,r,i),ft(Zu,s,o,0),mt(Ku,Yu,Zu),pt(Zu,Zu),pt(Ku,Ku),Qu[n]||(Qu[n]=[]);const u=Qu[n];for(var h=0;h<n;h++){const t=Math.PI*h/n,e=1-Math.abs(t-0)/(Math.PI/2);u[h]=u[h]||[],th(Zu,Ku,u[h],1,t,e*(a?-1:1))}return u}(0,f,d,p,y,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,m,i,c,a)}fillTubeElements(t){const n=this.options.radialSegments/2,e=this.needAltitudeAttribute()?2:3,r=this.data.aPosition.length/e;for(let e=0;e<n;e++){const i=e+r-2*n;let s,o;e===n-1&&t?(s=e+r-2*n+1,o=e+r-2*n-2*n+1):(s=e+r+1,o=e+r+1-2*n),super.addElements(e+r-this.offset,s-this.offset,i-this.offset),super.addElements(i-this.offset,s-this.offset,o-this.offset)}}fillData(t,n,e,r,i,s,o,a){const{lineWidthFn:u,lineColorFn:h,lineOpacityFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,d=i.length;for(let s=0;s<d;s++){if(this.fillPosition(t,n,e,r),Mt(i[s],i[s],63),t.aTubeNormal.push(...i[s]),t.aLinesofar.push(o),this.iconAtlas&&(t.aNormalDistance.push(63*a),t.aTexInfo.push(...this.feaTexInfo)),u){const n=Mr(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}h&&t.aColor.push(...this.feaColor),l&&t.aOpacity.push(this.feaOpacity),c&&t.aLinePatternAnimSpeed.push(127*(this.feaPatternAnimSpeed||0)),f&&t.aLinePatternGap.push(10*(this.feaLinePatternGap||0))}this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}createDataPack(t,n){const e=super.createDataPack(t,n);return e&&(e.is2D=!1),e}}const Yu=[],Zu=[],Ku=[],Qu={};function th(t,n,e,r,i,s){return bt(e,r*(Math.cos(i)*t[0]+Math.sin(i)*n[0]),r*(Math.cos(i)*t[1]+Math.sin(i)*n[1]),r*(Math.cos(i)*t[2]+Math.sin(i)*n[2]),s),e}class nh extends Xu{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(rh,e,r,i),ft(ih,s,o,0),mt(sh,rh,ih),pt(ih,ih),pt(sh,sh),_t(eh,t,n);const u=Et(eh)/t,h=Math.atan(n/t);let l=Math.PI/2+(Math.PI/2-h);return oh[0]||(oh[0]=[]),th(ih,sh,oh[0],u,l,a?1:-1),l+=2*h,oh[1]||(oh[1]=[]),th(ih,sh,oh[1],u,l,a?1:-1),oh}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,y,i,c,a)}}const eh=[],rh=[],ih=[],sh=[],oh=[];class ah{constructor(t){this.max=t,this.reset()}reset(){return this.data={},this.order=[],this}clear(){this.reset()}add(t,n){return this.has(t)?(this.order.splice(this.order.indexOf(t),1),this.data[t]=n,this.order.push(t)):(this.data[t]=n,this.order.push(t),this.order.length>this.max&&this.getAndRemove(this.order[0])),this}has(t){return t in this.data}keys(){return this.order}getAndRemove(t){if(!this.has(t))return null;const n=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),n}get(t){return this.has(t)?this.data[t]:null}remove(t){return this.has(t)?(delete this.data[t],this.order.splice(this.order.indexOf(t),1),this):this}setMaxSize(t){for(this.max=t;this.order.length>this.max;)this.getAndRemove(this.order[0]);return this}}\n/*!\n * based on @mapbox/tiny-sdf\n * https://github.com/mapbox/tiny-sdf\n * @License BSD 2-Clause\n */var uh=1e20;function hh(t,n,e,r,i,s,o){this.fontSize=t||24,this.buffer=void 0===n?3:n,this.cutoff=r||.25,this.fontFamily=i||"sans-serif",this.fontWeight=s||"normal",this.fontStyle=o||"normal",this.radius=e||8;var a=this.size=this.fontSize+2*this.buffer;this.canvas="undefined"==typeof document?new OffscreenCanvas(a,a):document.createElement("canvas"),this.canvas.width=this.canvas.height=a,this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),this.ctx.font=this.fontStyle+" "+this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a),this.middle=Math.round(a/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function lh(t,n,e,r,i,s){for(var o=0;o<n;o++)ch(t,o,n,e,r,i,s);for(var a=0;a<e;a++)ch(t,a*n,1,n,r,i,s)}function ch(t,n,e,r,i,s,o){var a,u,h,l;for(s[0]=0,o[0]=-uh,o[1]=uh,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,h=0;a<r;a++){do{h=(i[a]-i[l=s[u]]+a*a-l*l)/(a-l)/2}while(h<=o[u]&&--u>-1);s[++u]=a,o[u]=h,o[u+1]=uh}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[l=s[u]]+(a-l)*(a-l)}}hh.prototype.draw=function(t,n,e){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.textBaseline="top",this.ctx.fillText(t,this.buffer,this.buffer);for(var r=this.ctx.getImageData(0,0,n,e),i=new Uint8ClampedArray(n*e),s=0;s<n*e;s++){var o=r.data[4*s+3]/255;this.gridOuter[s]=1===o?0:0===o?uh:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?uh:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(lh(this.gridOuter,n,e,this.f,this.v,this.z),lh(this.gridInner,n,e,this.f,this.v,this.z),s=0;s<n*e;s++){var a=Math.sqrt(this.gridOuter[s])-Math.sqrt(this.gridInner[s]);i[s]=Math.round(255-255*(a/this.radius+this.cutoff))}return i};let fh=0;class dh{constructor(t,n=15,e){this.entries={},this.zt={},this.Ct=new ah(2048,(function(){})),this.Tt=t,this.Dt=n,this.jt=e}getGlyphs(t,n){if(!t||!Object.keys(t).length)return void n(null,{glyphs:null});const e=this.entries,r=t.options;let i=!0;r&&(i=!1!==r.isCharsCompact),i=i||this.jt;const s=(r,s,a)=>{let u=0,h=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const l in t[n]){if(h++,h<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!Va(+l),f=n+":"+l+":"+c;let d;if(this.Ct.has(f)?d=this.Ct.get(f):(d=this.Ut(e[n],t,l,c),this.Ct.add(f,d),u++),d=ph(d),s[n][l]=d,a.push(d.bitmap.data.buffer),this.Tt&&u>this.Dt)return void this.Tt(o(h,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ut(t,n,e,r){const i=n[0],s=n[1],o=n.slice(3).join(" ");let a=t.tinySDF,u="normal"!==i?5:2;const h=r?-1:2;if(!a){let n="400";/bolder/i.test(s)?n="1000":/bold/i.test(s)?n="900":/medium/i.test(s)?n="500":/light/i.test(s)&&(n="200"),a=t.tinySDF=new hh(24,u,8,.25,o,n,i)}const l=String.fromCharCode(e),c=a.ctx.measureText(l),f=Math.round(c.width),d=a.draw(String.fromCharCode(e),f+2*u,24+2*u);if(fh<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+fh++);t&&(t.width=f+2*u,t.height=a.canvas.height,t.getContext("2d").drawImage(a.canvas,0,0))}return{charCode:e,bitmap:{width:f+2*u,height:24+2*u,data:d},metrics:{width:f,height:24,left:1,top:-u,advance:f+u+h}}}}function ph(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:lr({},t.metrics)}}var yh=Object.freeze({__proto__:null,clipPolygon:Ru,calculateSignedArea:Sr,getFeaAltitudeAndHeight:Er,generatePickingIndiceIndex:Cr,convertRTLText:nu,packPosition:Dr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%jr),s=(Math.sign(e)||1)*(Math.abs(e)%jr),o=Math.floor(Math.abs(n)/jr),a=Math.floor(Math.abs(e)/jr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Ur+r,t},convertGeometry:hr,getPosArrayType:or,getUnsignedArrayType:ar,getIndexArrayType:sr});const mh={},vh={},gh=[];Object.freeze({__proto__:null,loadSymbolFnTypes:function t(n,e){if(!n)return null;var r=!1;if(Array.isArray(n)){var i,s=[];for(let o=0;o<n.length;o++)(i=t(n[o],e))?(s.push(i),r=!0):s.push(n[o]);return r?s:n}var o={__fn_types_loaded:!0};const a=[];for(const t in n)vr(n,t)&&a.push(t);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,e())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})},h={},l=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Ro(this["_"+t],n));const r=e()[0];h.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(h,mh,vh,null,gh)}catch(t){return null}},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let t=0,e=a.length;t<e;t++){const e=a[t];if(d(n[e]))r=!0,o["_"+e]=n[e],u(e);else if(Ho(n[e])){r=!0;const t=Jo(e);o["_"+e]=n[e],l(e,t)}else o[e]=n[e]}return r?o:n}});const bh={polygonPatternFile:1,markerFile:1,markerPlacement:1,markerSpacing:1,textName:1,textStyle:1,textFaceName:1,textWeight:1,textPlacement:1,textSpacing:1,lineJoin:1,lineCap:1,linePatternFile:1};Object.assign({visible:1,textHorizontalAlignment:1,textVerticalAlignment:1,textWrapWidth:1,markerHorizontalAlignment:1,markerVerticalAlignment:1},bh),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},bh);new Float32Array([-1e12])[0];const wh="maptalks_ombb";function Mh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m){const v=n.length,g=i/3;for(let e=2,r=v;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-o;i+=v;for(let e=2,r=v;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-a;i+=v,t.trySetLength(i+v),t.copyWithin(i,i-2*v,i-v),i+=v,t.trySetLength(i+v),t.copyWithin(i,i-2*v,i-v),i+=v,(e=e||[]).push(v/3);for(let n=0;n<e.length;n++){xh(g+(e[n-1]||0),g+e[n],t,v/3,u,r,h,l,c,f,s,d,p,y,m)}return i}function xh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){const y=s.length;let m,v;for(let o=t,a=n;o<a-1;o++)m=o,v=o+1,i!==1/0&&at(e,m,v,i)||((o-t)%2==1&&(m+=2*r,v+=2*r),p?(s.push(m+r,v,m),s.push(v+r,v,m+r)):(s.push(m+r,m,v),s.push(v,v+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,h,l){let c,f=0,d=0,p=0,y=0;const m=l?[1,3,4]:[2,3,4];for(let l=s.length-1;l>=0;l--){const v=s[l],g=3*v+1,b=3*v+2,w=i[3*v],M=i[g],x=i[b];f||d||(f=Math.max(i[b],i[3*s[l-3]+2]),d=Math.min(i[b],i[3*s[l-3]+2]),c=f-d);let F=p;const k=l%6;0===t?(5===k&&(y=jt(i,s,l,w,M)),F=k===m[0]||k===m[1]||k===m[2]?p:p+y):1===t&&(k===m[0]||k===m[1]||k===m[2]?F=0:5===k?(y=jt(i,s,l,w,M),F=y):F=y);const A=F*u*(1/(100*h))/46.5/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/46.5/a:0:x===f?0:-c/100/46.5/a,r[2*v]=A,r[2*v+1]=P,0===k&&(p+=y)}}(a,u,h,l,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function Fh(t){const n=[t[0]];let e=t[0];for(let r=1;r<t.length;r++)Array.isArray(t[r])?t[r][0]===e[0]&&t[r][1]===e[1]&&t[r][2]===e[2]||n.push(t[r]):t[r].x===e.x&&t[r].y===e.y&&t[r].z===e.z||n.push(t[r]),e=t[r];return n}const kh=na.getInstance();function Ah(t,n,e,r,i,s,o,a,u,h,l,c,f,m){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),kh.reset();const{altitudeScale:v,altitudeProperty:g,defaultAltitude:b,heightProperty:w,minHeightProperty:M,defaultHeight:F,tangent:k,uv:A,uvScale:_,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,top:$,side:z,textureYOrigin:C,topThickness:T}=n,D=!!m,j=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:h,top:l,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:v,textureYOrigin:g,localScale:b,centimeterToPoint:w,positionType:M,res:F,glScale:k,projectionCode:A},S,_){let O=n/t[0].extent;n===1/0&&(O=1);const E=n===1/0,I=_.get(),$=_.get(),z=_.get(),C=_.get(),T=_.get(),D=_.get(),j=_.get(),U=!!d,N=!!l,L=!!h,V=U?_.get():null;function R(t,e,r,i,s,o){let a=e;if(N){const i=Ve(C,r,3);if(0===i.length)return e;if(P(T,C),e+=C.length,o)for(let n=2,e=i.length;n<e;n+=3)i[n]+=t/3,i[n-1]+=t/3,i[n-2]+=t/3;else{let n;for(let e=2,r=i.length;e<r;e+=3)n=i[e-1],i[e-1]=i[e]+t/3,i[e]=n+t/3,i[e-2]+=t/3}P(D,i),U&&Tt(y||0,t,e,V,T,f,w,b,p[0],p[1],s,F,k,A,u),c>0&&!L&&(e=Mh(T,C,r,D,e,V,0,c,n,U,m||0,v||0,g,p,b,w,o)),j.setLength(e/3),j.fill(1,a/3,e/3)}if(L){N&&(c=0),a=e,e=Mh(T,C,r,D,e,V,c,i,n,U,m||0,v||0,g,p,b,w,o),j.setLength(e/3);const t=C.length/3;j.fill(1,a/3,a/3+t),j.fill(0,a/3+t,a/3+2*t),j.fill(1,a/3+2*t,a/3+3*t),j.fill(0,a/3+3*t,e/3)}return e}let H=0,W=0;const q=[-1,-1,n+1,n+1];let G=0,B=t.length;x(S)&&(G=S,B=S+1);let J=0,X=!1;const Y=_.get();for(;G<B;G++){const u=t[G],h=u.id;x(h)&&(Math.abs(h)>J&&(J=Math.abs(h)),h<0&&(X=!0));const l=u.geometry,c=u.properties[wh];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=yh.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);H=Math.max(Math.abs(d),H);const y=T.length;let m=0,v=W;Y.setLength(0),C.setLength(0);const g=yh.calculateSignedArea(l[0])<0;for(let t=0,e=l.length;t<e;t++){let r=l[t];g&&(r=r.reverse()),r=Fh(r);const i=yh.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],W=R(v,W,Y,p*O,f,E),C.setLength(0),Y.setLength(0),v=W),n!==1/0&&(r=yh.clipPolygon(r,q)),!r.length){t===e-1&&(W=R(v,W,Y,p*O,f,E));continue}const s=r.length;Array.isArray(r[0])?r[0][0]===r[s-1][0]&&r[0][1]===r[s-1][1]||r.push([r[0][0],r[0][1]]):r[0].x===r[s-1].x&&r[0].y===r[s-1].y||r.push(r[0]),i&&Y.push(C.length/3),ot(C,C.length,r,O,d,!1,M),t===e-1&&(W=R(v,W,Y,p*O,f,E))}const b=T.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)$.push(void 0===u[w]?G:u[w]),I.push(G),x(h)&&z.push(h)}const Z=yh.getUnsignedArrayType($.length?$[$.length-1]:0),K={maxAltitude:H,vertices:T,verticeTypes:j,indices:D,pickingIds:na.createTypedArray($,Z),featureIndexes:I};if(z.length){const t=X?yh.getPosArrayType(J):yh.getUnsignedArrayType(J);K.featureIds=na.createTypedArray(z,t)}else K.featureIds=[];return V&&(V.setLength(T.length/3*2),K.uvs=V),K}(t,e,{altitudeScale:v,altitudeProperty:g,defaultAltitude:b||0,heightProperty:w,minHeightProperty:M,defaultHeight:F||0},{center:m,top:$,side:z,topThickness:10*T||0,uv:A||k,uvSize:_?[.5*_[0],.5*_[1]]:[.5,.5],uvOrigin:r,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,textureYOrigin:C,localScale:o,centimeterToPoint:a,positionType:f,res:i,glScale:s,projectionCode:l},c,kh),U=[],N=j.vertices.length/3,L=yh.getIndexArrayType(N),V=na.createTypedArray(j.indices,L);delete j.indices,U.push(V.buffer,j.pickingIds.buffer);const R=k?kh.get():new Float32Array(3*N);R.setLength&&R.setLength(3*N);const H=re(j.vertices,V,R);let W=!0;for(let t=0;t<H.length;t++){D||(H[t]=-H[t]);const n=H[t]%1;1-Math.abs(n)>1e-6?W=!1:0!==n&&(H[t]=Math.round(H[t]))}if(j.normals=H,k){let t=kh.get();t.setLength(4*N),t=function(t,n,e,r,i){const s=t.length/3,o=i||new Array(4*s),a=[],u=[];for(let t=0;t<s;t++)a[t]=[0,0,0],u[t]=[0,0,0];const h=[0,0,0],l=[0,0,0],c=[0,0,0],f=[0,0],d=[0,0],p=[0,0],y=[0,0,0],m=[0,0,0];function v(n,r,i){fe(h,t,3*n),fe(l,t,3*r),fe(c,t,3*i),de(f,e,2*n),de(d,e,2*r),de(p,e,2*i);const s=l[0]-h[0],o=c[0]-h[0],v=l[1]-h[1],g=c[1]-h[1],b=l[2]-h[2],w=c[2]-h[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],k=p[1]-f[1],A=1/(M*k-x*F);ft(y,(k*s-F*o)*A,(k*v-F*g)*A,(k*b-F*w)*A),ft(m,(M*o-x*s)*A,(M*g-x*v)*A,(M*w-x*b)*A),dt(a[n],a[n],y),dt(a[r],a[r],y),dt(a[i],a[i],y),dt(u[n],u[n],m),dt(u[r],u[r],m),dt(u[i],u[i],m)}for(let t=0,n=r.length;t<n;t+=3)v(r[t+0],r[t+1],r[t+2]);const g=[],b=[],w=[],M=[];let x,F,k;function A(t){fe(w,n,3*t),ct(M,w),F=a[t],ct(g,F),vt(g,g,function(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t}(w,w,yt(w,F))),pt(g,g),mt(b,M,F),k=yt(b,u[t]),x=k<0?-1:1,o[4*t]=g[0],o[4*t+1]=g[1],o[4*t+2]=g[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)A(r[t+0]),A(r[t+1]),A(r[t+2]);return o}(j.vertices,j.normals,j.uvs,V,t),t=function(t,n){const e=new Float32Array(n.length),r=[],i=[],s=[];for(let o=0;o<n.length;o+=4){const a=o/4*3;ft(i,t[a]||0,t[a+1]||0,t[a+2]||0),bt(r,n[o]||0,n[o+1]||0,n[o+2]||0,n[o+3]||0),ne(s,i,r),gt(e.subarray(o,o+4),s)}return e}(j.normals,t),j.tangents=t,U.push(t.buffer),delete j.normals}if(j.normals&&(W&&(j.normals=na.createTypedArray(j.normals,Int8Array)),U.push(j.normals.buffer)),j.uvs){const t=j.uvs;j.uvs=na.createTypedArray(t,Float32Array),U.push(j.uvs.buffer)}if(m){const t=j.vertices;for(let n=0;n<t.length;n+=3)t[n]-=m[0],t[n+1]-=m[1]}const q=f||yh.getPosArrayType(Math.max(512,j.maxAltitude)),G=function(t,n,e,r){const i={},s={};if(S(n.polygonFill)){let o=y(n.polygonFill);const a=new Uint8Array(4*r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aColor=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,Pr.normalizeColor(Ph,h),a[4*n]=Ph[0],a[4*n+1]=Ph[1],a[4*n+2]=Ph[2],a[4*n+3]=Ph[3]}s.aColor=a}if(S(n.polygonOpacity)){let o=p(n.polygonOpacity);const a=new Uint8Array(r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aOpacity=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*h}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,u,h,j.featureIndexes),B=function(t,n,e,r,i){const s=[[],[]],o=S(r.topPolygonFill),a=S(r.bottomPolygonFill),u=[255,255,255,255];if(o||a){let h=o&&y(r.topPolygonFill),l=a&&y(r.bottomPolygonFill),c=null,f=null,p=null,m=null;for(let r=0;r<n.length;r++){if(1===t[r]&&!o||0===t[r]&&!a)continue;const v=1===t[r];if(v&&n[r]===c){t[r]=p;continue}if(!v&&n[r]===f){t[r]=m;continue}const g=e[n[r]],b=g.properties||{};b.$layer=g.layer,b.$type=g.type;let w=v?h:l,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,Pr.normalizeColor(Ph,M),wt(Ph,Ph,u);let x=Sh(s,Ph);x<0&&(x=s.length,s.push(gt([],Ph))),t[r]=x,v?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(j.verticeTypes,j.featureIndexes,t,u,h),J={data:{data:{aVertexColorType:B.length<=252?na.createTypedArray(j.verticeTypes,Uint8Array):na.createTypedArray(j.verticeTypes,Uint16Array),aPosition:na.createTypedArray(j.vertices,q),aNormal:j.normals,aTexCoord0:j.uvs,aTangent:j.tangents,aPickingId:j.pickingIds},indices:V,properties:{maxAltitude:j.maxAltitude},dynamicAttributes:G.dynamicAttributes,vertexColors:B},buffers:U};return j.featureIds.length?(J.data.featureIds=j.featureIds,U.push(J.data.featureIds.buffer)):J.data.featureIds=[],G.aColor&&(J.data.data.aColor=G.aColor,J.buffers.push(G.aColor.buffer)),G.aOpacity&&(J.data.data.aOpacity=G.aOpacity,J.buffers.push(G.aOpacity.buffer)),J.buffers.push(J.data.data.aPosition.buffer),J.data.pickingIdIndiceMap=yh.generatePickingIndiceIndex(J.data.data.aPickingId,J.data.indices),J}const Ph=[];function Sh(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function _h(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:h,bottom:l}){const c=l,f=n/t[0].extent,p=2*function(t,n){let e=0;for(let r=0,i=t.length;r<i;r++){const i=t[r];if(x(i.geometry[0][0])){const t=3*i.geometry.length;e+=n?2*t-6:t}else for(let t=0,r=i.geometry.length;t<r;t++){let r=3*i.geometry[t].length;3===i.type&&(r-=3),e+=n?2*r-6:r}}return e}(t)+3*t.length*2,y=[],m=new Int16Array(p),v=new Uint8Array(m.length/3*4);d(e)&&(e=Xo.compileFilter(e));const g=[];function b(t,e,r){const i=e-t,s=m.subarray(t,e),o=m.subarray(e,e+i);o.set(s);for(let t=2,n=o.length;t<n;t+=3)o[t]=s[t]-r;const a=t/3,u=i/3;let h,l;for(let t=a,e=u+a;t<e;t++)t<e-1?(h=t,l=t+1):(h=t,l=a),at(m,h,l,n)||(g.push(h,l),c&&g.push(h+u,l+u),Oh(m,h,n)||g.push(h,h+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),k=[];for(let n=0,l=t.length;n<l;n++){const l=t[n],c=l.geometry;if(e){let t;t="function"==typeof e?e(l&&l.properties):e,Pr.normalizeColor(k,t)}else ft(k,255,255,255);const d=w/3*4,{altitude:p,height:x}=yh.getFeaAltitudeAndHeight(l,i,s,o,a,h,u);M=Math.max(Math.abs(p),M);let A=w;for(let t=0,n=c.length;t<n;t++){let n=c[t];const e=n.length;n[0][0]===n[e-1][0]&&n[0][1]===n[e-1][1]&&(n=n.slice(0,e-1)),w=ot(m,A,n,f,p),w=b(A,w,x*f),A=w}const P=A/3*4;for(let t=d;t<P;t+=4)v[t]=k[0],v[t+1]=k[1],v[t+2]=k[2],v[t+3]=255*(r||1);const S=g.length-y.length;for(let t=0;t<S;t++)y.push(l[F])}const A=g.reduce((t,n)=>Math.max(t,n),0),P=new(yh.getIndexArrayType(A))(g),S=yh.getUnsignedArrayType(t.length);return{aPosition:new(yh.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:v}}function Oh(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Eh(t,n,e,r){const i=_h(t,n,e.lineColor,e.lineOpacity,r),s=[i.aPosition.buffer,i.indices.buffer,i.aPickingId.buffer],o=i.indices;return delete i.indices,{data:{data:i,indices:o},buffers:s}}let Ih=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),Ih=!0}catch(t){Ih=!1}var $h=Ih;const zh="__original_properties",Ch="__fn-type_properties";class Th{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Nt(n.style),this.requests={},this.Ct=r,this.Lt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.Lt=t.styleCounter,this.Nt(t),n()}updateOptions(t,n){this.options=w(this.options,t),n()}loadTile(t,n){const e=this.loadings,r=t.tileInfo.url,i=this.options.debugTile;if(i){const{x:e,y:r,z:s}=t.tileInfo;let o=!1;for(let t=0;t<i.length;t++)if(e===i[t].x&&r===i[t].y&&s===i[t].z){o=!0;break}if(!o)return void n()}if(e[r])return void e[r].push({context:t,callback:n,ref:this});e[r]=[{context:t,callback:n,ref:this}];const s=this.options.featureIdProperty;this.requests[r]=this.getTileFeatures(t,(n,i,o,a)=>{const u=e[r];if(delete e[r],this.checkIfCanceled(r))return delete this.requests[r],void this.Vt(u,null,{canceled:!0});if(delete this.requests[r],(this.options.debug||s)&&i)for(let n=0;n<i.length;n++)if(this.options.debug&&(i[n]._debug_info={index:n,id:i[n].id,tileId:t.tileInfo.id}),s){const t=k(s)?s[i[n].layer]:s,e=i[n].properties;i[n].id=e&&e[t]||null}if(n)this.Vt(u,n);else if(i&&i.length){if(u)for(let t=0;t<u.length;t++)this.Rt.call(u[t].ref,u[t].context,u[t].callback,r,o,i,a)}else this.Vt(u)})}Rt(t,n,e,r,i,s){this.Ht(r,i,t).then(e=>{e.canceled?n(null,{canceled:!0}):(e.data.style=t.styleCounter,s&&w(e.data,s),n(null,e.data,e.buffers))}).catch(t=>{n(t)})}abortTile(t,n){delete this.requests[t],this.Wt(t),n()}Wt(t){const n=this.loadings[t];if(n)for(let t=0;t<n.length;t++)n[t].callback(null,{canceled:!0});delete this.loadings[t]}Vt(t,n,e){if(t)for(let r=0;r<t.length;r++)t[r].callback(n,e)}checkIfCanceled(t){return!this.requests[t]}onRemove(){this.loadings={},delete this.Ct,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&$h){const r=[];if(t&&Object.keys(t).length){const n=new Promise(n=>{this.upload("fetchIconGlyphs",{icons:t},null,(t,e)=>{n({err:t,iconData:e})})});r.push(n)}if(n&&Object.keys(n).length){const t=new Promise(t=>{this.qt||(this.qt=new dh),this.qt.getGlyphs(n,(n,e)=>{t({err:n,glyphData:e})})});r.push(t)}Promise.all(r).then(t=>{const n={icons:null,glyphs:null};for(let r=0;r<t.length;r++){if(t[r].err)return void e(t[r].err);t[r].iconData?n.icons=t[r].iconData.icons:t[r].glyphData&&(n.glyphs=t[r].glyphData.glyphs)}return n}).then(t=>{e(null,t)})}else this.upload("fetchIconGlyphs",{icons:t,glyphs:n},null,e)}Ht(t,n,e){if(!n.length)return Promise.resolve({data:null,buffers:[]});const{glScale:r,tileInfo:i}=e,s=!this.options.style.style.length&&!this.options.style.featureStyle.length;let o=this.pluginConfig.slice(0);s&&(o=this.Gt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Rh(n,e.tileInfo.z,o[t],a);const u=[],h=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){h.fill(null);let t=0;for(const n in r){let i=0;const s=r[n].values();for(const t of s){let r=h[i];r||(r=Gh(e),h[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(h[n])}else u.push(e)}const l=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,v=[],g={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let k=!1;for(let t=0;t<o.length;t++){x++;const r=o[t];r.type!==M&&(x=0,M=r.type);const a=0===r.type?d:p;if(r.symbol&&!1===r.symbol.visible){a[x]=null;continue}Xh(r.symbol,F,t),k=k||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:h}=this.Bt(c,r.type,r.filter,n,g,t);if(!u.length){a[x]=null;continue}const m=h[h.length-1],A=yh.getIndexArrayType(m);a[x]={styledFeatures:new A(h)},y.push({idx:t,typeIdx:x}),v.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:l,zoom:c,tilePoint:f});if(this.options.debugTile){const t=this.options.debugTile;for(let n=0;n<t.length;n++){const{x:e,y:r,z:s}=t[n];if(i.x===e&&i.y===r&&i.z===s){P.debugIndex=t[n].index;break}}}let S=this.Jt(u,r,P);s&&(S=S.then(t=>{if(!t)return null;if(t.data)t.data.layer=u[0].layer;else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]&&t[n].data&&(t[n].data.layer=u[0].layer);return t})),b.push(S)}return Promise.all(b).then(([e,...r])=>{function i(t,n){if(void 0===t.data.ref&&(t.data.type=o[y[n].idx].renderPlugin.dataConfig.type,t.data.filter=o[y[n].idx].filter.def,t.buffers&&t.buffers.length))for(let n=0;n<t.buffers.length;n++)v.push(t.buffers[n])}if(e!==this.Lt)return{canceled:!0};for(let t=0;t<r.length;t++){if(!r[t])continue;const n=r[t],e=0===o[y[t].idx].type?d:p;if(Array.isArray(n)){const r=[];for(let e=0;e<n.length;e++)n[e]&&(i(n[e],t),(void 0===n[e].data.ref||n[n[e].data.ref])&&r.push(n[e].data));r.length&&(e[y[t].typeIdx].data=r)}else i(n,t),e[y[t].typeIdx].data=n.data}const s={},a=t;if(m.features||m.schema||k){let t,e=!1;for(let r=0,i=n.length;r<i;r++)if(t=n[r],a[t.layer].properties||(a[t.layer].properties=Uh(t.properties)),t&&(m.features||k&&g[r]))if("id"===m.features)s[r]=t.id;else{m.pickingGeometry||delete t.geometry,delete t.extent,delete t.properties.$layer,delete t.properties.$type,delete t.__index;const n=t.originalFeature;if(n){const n=t.properties,e=w({},t.originalFeature);delete n[zh],e.customProps=w({},n),t=e}const i=w({},t);if(!m.features){const i=g[r];for(let r=0;r<i.length;r++){const i=F[r];i&&i.forEach(r=>{const i=n?n.properties:t.properties;i[Ch]||(i[Ch]=new Set),i[Ch].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t];if(n.properties[Ch]){const t=n.properties[Ch];delete n.properties[Ch];for(const e in n.properties)t.has(e)||delete n.properties[e]}}}return{data:{schema:a,data:d,featureData:p,extent:l,features:s},buffers:v}}).catch(t=>{console.error(t)})}Jt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:h,zoom:l,tilePoint:c,centimeterToPoint:f}=e,d=a/o,p=i.type,y=e.debugIndex;let m=w({},i,{EXTENT:a,zoom:l,debugIndex:y,features:this.options.features});if("3d-extrusion"===p){const t=Nh(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode;return Promise.all([Promise.resolve(Ah(r,i,a,c,e.tileInfo.res,u,this.options.tileSize/a,f,s,l,n,y))])}if("3d-wireframe"===p)return Promise.all([Promise.resolve(Eh(r,a,s,i))]);if("point"===p){m=w(m,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:h*a/this.options.tileSize/u});const t=wu.splitPointSymbol(s),n=ua.genFnTypes(t[0]);return wu.needMerge(t[0],n,l)&&(r=wu.mergeLineFeatures(r,t[0],n,l)),Promise.all(t.map((t,e)=>(0===e?m.fnTypes=n:delete m.fnTypes,new wu(r,t,m).load(d))))}if("native-point"===p){const t=h*a/this.options.tileSize/u;return m.altitudeToTileScale=t,Lh(r,s,m,Nu,a/o)}if("line"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:d}),Lh(r,s,m,Su);if("native-line"===p)return Lh(r,s,m,ju);if("fill"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this)}),Lh(r,s,m,Gu);if("line-extrusion"===p){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Nh(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),m=w(m,{tileSize:o,zScale:h,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},m);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(m.side=!0,m.top=!1,t.push(new Tu(r,s,m))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,m).load()])}if("circle"===p)return Lh(r,s,m,Ju);if("round-tube"===p||"square-tube"===p){const t="round-tube"===p?Xu:nh;return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===p?i.radialSegments||8:4,centimeterToPoint:f,tileRatio:d,isTube:!0}),Lh(r,s,m,t)}return Promise.resolve([])}Bt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],h=r.length;for(let l=0;l<h;l++)if((1===n||void 0===r[l].id||!this.styledFeatures[r[l].id])&&((!e.def||"default"===e.def)&&!i[l]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[l],t))){const t=r[l];if(void 0===t[o]&&(t[o]=l),i[l]||(i[l]=[]),i[l].push(s),u.push(t),a.push(l),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Nt(t){const{style:n,featureStyle:e}=t,r={};e.forEach(t=>{Array.isArray(t.id)?(t.id.forEach(t=>{r[t]=1}),t.filter=["in","$id",...t.id]):(r[t.id]=1,t.filter=["==","$id",t.id])});const i=Xo.compileStyle(n);for(let t=0;t<n.length;t++)i[t].filter&&(i[t].filter.def=n[t].filter?n[t].filter.value||n[t].filter:void 0),i[t].type=0;const s=[],o=Xo.compileStyle(e);for(let t=0;t<e.length;t++)o[t].type=1,o[t].filter.def=e[t].filter?e[t].filter.value||e[t].filter:void 0,o[t].renderPlugin&&s.push(o[t]);this.pluginConfig=i,this.featurePlugins=s,this.styledFeatures=r}Gt(t){let n=this.Xt;this.Xt||(n=this.Xt={});const e=["","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon"],r=[];for(const i in t){const s=i;if(!n[i]){const r=[];for(let n=0;n<t[i].types.length;n++){const o=t[i].types[n],a=["all",["==","$layer",s],["==","$type",e[o]]],u={filter:Tn(a),renderPlugin:Dh(o),symbol:jh(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function Dh(t){switch(t){case 1:return{type:"native-point",dataConfig:{type:"native-point",only2D:!0}};case 2:return{type:"native-line",dataConfig:{type:"native-line",only2D:!0}};case 3:return{type:"fill",dataConfig:{type:"fill",only2D:!0}}}return null}function jh(t){switch(t){case 1:return{markerFill:"#f00",markerSize:10};case 2:return{lineColor:"#fff"};case 3:return{polygonFill:"#00f",polygonOpacity:.4}}return null}function Uh(t){if(Array.isArray(t)||!k(t))return{};const n={};for(const e in t){const r=t[e];M(r)?n[e]="string":x(r)?n[e]="number":!0===r||!1===r?n[e]="boolean":Array.isArray(r)?n[e]="array":n[e]="object"}return n}function Nh(t){if(!t)return 0;let n=0;for(const e in t){if(("normalTexture"===e||"bumpTexture"===e)&&t[e])return 2;if(e.indexOf("Texture")>0&&t[e])n=1;else if(k(t[e])){const r=Nh(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Lh(t,n,e,r,i){const s={},o=Array.isArray(n)?n:[n];let a=-1;for(let t=0;t<o.length;t++)s[t]=Vh(o[t]),!s[t]&&o[t]&&-1===a&&(a=t);const u=[];for(let n=0;n<o.length;n++)o[n]&&(o[n].index={index:n},s[n]||n===a?u.push(new r(t,o[n],e).load(i)):u.push({data:{ref:a,symbolIndex:{index:n}}}));return Promise.all(u)}function Vh(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Rh(t,n,e,r){const i=e.customProperties;if(!i)return t;if(i)for(let t=0;t<i.length;t++)i[t].fn=Xo.compileFilter(i[t].filter);for(let e=0;e<i.length;e++)for(let s=0,o=t.length;s<o;s++)if(i[e].fn(t[s],n))for(const t in i[e].properties){const n=i[e].properties[t];A(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Hh={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Wh={get:function(t,n){return n in t?t[n]:t[zh][n]},has:(t,n)=>n in t||n in t[zh]},qh={};function Gh(t){const n={};n.originalFeature=t;const e=new Proxy(n,Hh);return e.properties=new Proxy({},Wh),e.properties[zh]=t.properties||qh,e}function Bh(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Jh=[];function Xh(t,n,e){if(!t)return Jh;for(const r in t){if(!t[r]||!Pr.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Bh(n,e,t[r].property);else{if("lineGradientProperty"===r){Bh(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ma.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Bh(n,e,i[t])}else if(Xo.isExpression(t[r])){const i=[];ma.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Bh(n,e,i[t])}}const i=t[r].stops;if(i&&i.length)for(let t=0;t<i.length;t++)S(i[t][1])&&Bh(n,t,i[t][1].property)}return n[e]}function Yh(t,n){Zh(t.geometry,n)}function Zh(t,n){if(t)switch(t.type){case"Point":Kh(t.coordinates,n);break;case"MultiPoint":case"LineString":Qh(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Qh(t[e],n)}(t.coordinates,n);break;case"Polygon":tl(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)tl(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Zh(t.geometries[r],n)}}function Kh(t,n){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Qh(t,n){for(let e=0,r=t.length;e<r;e++)Kh(t[e],n)}function tl(t,n){t.length&&Qh(t[0],n)}function nl(t,n,e,r,i){!function t(n,e,r,i,s){for(;i>r;){if(i-r>600){var o=i-r+1,a=e-r+1,u=Math.log(o),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(o-h)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*h/o+l)),f=Math.min(i,Math.floor(e+(o-a)*h/o+l));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(el(n,r,e),s(n[i],d)>0&&el(n,r,i);p<y;){for(el(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?el(n,r,y):(y++,el(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||rl)}function el(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function rl(t,n){return t<n?-1:t>n?1:0}class il{constructor(t=9){this.Yt=Math.max(4,t),this.Zt=Math.max(2,Math.ceil(.4*this.Yt)),this.clear()}all(){return this.Kt(this.data,[])}search(t){let n=this.data;const e=[];if(!ml(t,n))return e;const r=this.toBBox,i=[];for(;n;){for(let s=0;s<n.children.length;s++){const o=n.children[s],a=n.leaf?r(o):o;ml(t,a)&&(n.leaf?e.push(o):yl(t,a)?this.Kt(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!ml(t,n))return!1;const e=[];for(;n;){for(let r=0;r<n.children.length;r++){const i=n.children[r],s=n.leaf?this.toBBox(i):i;if(ml(t,s)){if(n.leaf||yl(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.Zt){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.Qt(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.tn(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.nn(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.nn(t,this.data.height-1),this}clear(){return this.data=vl([]),this}remove(t,n){if(!t)return this;let e=this.data;const r=this.toBBox(t),i=[],s=[];let o,a,u;for(;e||i.length;){if(e||(e=i.pop(),a=i[i.length-1],o=s.pop(),u=!0),e.leaf){const r=sl(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.en(i),this}u||e.leaf||!yl(e,r)?a?(o++,e=a.children[o],u=!1):e=null:(i.push(e),s.push(o),o=0,a=e,e=e.children[0])}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}Kt(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}Qt(t,n,e,r){const i=e-n+1;let s,o=this.Yt;if(i<=o)return s=vl(t.slice(n,e+1)),ol(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=vl([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));gl(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);gl(t,i,n,a,this.compareMinY);for(let e=i;e<=n;e+=a){const i=Math.min(e+a-1,n);s.children.push(this.Qt(t,e,i,r-1))}}return ol(s,this.toBBox),s}rn(t,n,e,r){for(;r.push(n),!n.leaf&&r.length-1!==e;){let e,r=1/0,i=1/0;for(let s=0;s<n.children.length;s++){const o=n.children[s],a=cl(o),u=dl(t,o)-a;u<i?(i=u,r=a<r?a:r,e=o):u===i&&a<r&&(r=a,e=o)}n=e||n.children[0]}return n}nn(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.rn(r,this.data,n,i);for(s.children.push(t),ul(s,r);n>=0&&i[n].children.length>this.Yt;)this.sn(i,n),n--;this.an(r,i,n)}sn(t,n){const e=t[n],r=e.children.length,i=this.Zt;this.un(e,i,r);const s=this.hn(e,i,r),o=vl(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,ol(e,this.toBBox),ol(o,this.toBBox),n?t[n-1].children.push(o):this.tn(e,o)}tn(t,n){this.data=vl([t,n]),this.data.height=t.height+1,this.data.leaf=!1,ol(this.data,this.toBBox)}hn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=al(t,0,o,this.toBBox),a=al(t,o,e,this.toBBox),u=pl(n,a),h=cl(n)+cl(a);u<i?(i=u,r=o,s=h<s?h:s):u===i&&h<s&&(s=h,r=o)}return r||e-n}un(t,n,e){const r=t.leaf?this.compareMinX:hl,i=t.leaf?this.compareMinY:ll;this.cn(t,n,e,r)<this.cn(t,n,e,i)&&t.children.sort(r)}cn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=al(t,0,n,i),o=al(t,e-n,e,i);let a=fl(s)+fl(o);for(let r=n;r<e-n;r++){const n=t.children[r];ul(s,t.leaf?i(n):n),a+=fl(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ul(o,t.leaf?i(n):n),a+=fl(o)}return a}an(t,n,e){for(let r=e;r>=0;r--)ul(n[r],t)}en(t){for(let n,e=t.length-1;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children,n.splice(n.indexOf(t[e]),1)):this.clear():ol(t[e],this.toBBox)}}function sl(t,n,e){if(!e)return n.indexOf(t);for(let r=0;r<n.length;r++)if(e(t,n[r]))return r;return-1}function ol(t,n){al(t,0,t.children.length,n,t)}function al(t,n,e,r,i){i||(i=vl(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=n;s<e;s++){const n=t.children[s];ul(i,t.leaf?r(n):n)}return i}function ul(t,n){return t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),t}function hl(t,n){return t.minX-n.minX}function ll(t,n){return t.minY-n.minY}function cl(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function fl(t){return t.maxX-t.minX+(t.maxY-t.minY)}function dl(t,n){return(Math.max(n.maxX,t.maxX)-Math.min(n.minX,t.minX))*(Math.max(n.maxY,t.maxY)-Math.min(n.minY,t.minY))}function pl(t,n){const e=Math.max(t.minX,n.minX),r=Math.max(t.minY,n.minY),i=Math.min(t.maxX,n.maxX),s=Math.min(t.maxY,n.maxY);return Math.max(0,i-e)*Math.max(0,s-r)}function yl(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function ml(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function vl(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function gl(t,n,e,r,i){const s=[n,e];for(;s.length;){if((e=s.pop())-(n=s.pop())<=r)continue;const o=n+Math.ceil((e-n)/r/2)*r;nl(t,o,n,e,i),s.push(n,o,o,e)}}class bl{constructor(t=[],n=wl){if(this.data=t,this.length=this.data.length,this.compare=n,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this.D(t)}push(t){this.data.push(t),this.length++,this.j(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],n=this.data.pop();return this.length--,this.length>0&&(this.data[0]=n,this.D(0)),t}peek(){return this.data[0]}j(t){const{data:n,compare:e}=this,r=n[t];for(;t>0;){const i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r}D(t){const{data:n,compare:e}=this,r=this.length>>1,i=n[t];for(;t<r;){let r=1+(t<<1),s=n[r];const o=r+1;if(o<this.length&&e(n[o],s)<0&&(r=o,s=n[o]),e(s,i)>=0)break;n[t]=s,t=r}n[t]=i}}function wl(t,n){return t<n?-1:t>n?1:0}var Ml={exports:{}},xl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=(r-e)/2,u=0,h=a-1;u<a;h=u++){var l=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*h+0],d=n[e+2*h+1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o},Fl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=r-e,u=0,h=a-1;u<a;h=u++){var l=n[u+e][0],c=n[u+e][1],f=n[h+e][0],d=n[h+e][1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o};Ml.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?Fl(t,n,e,r):xl(t,n,e,r)};var kl=Ml.exports.nested=Fl;Ml.exports.flat=xl;function Al(t,n,e,r,i){let s,o,a,u,h=n[0],l=r[0],c=0,f=0;l>h==l>-h?(s=h,h=n[++c]):(s=l,l=r[++f]);let d=0;if(c<t&&f<e)for(l>h==l>-h?(o=h+s,a=s-(o-h),h=n[++c]):(o=l+s,a=s-(o-l),l=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)l>h==l>-h?(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c]):(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Pl(t){return new Float64Array(t)}const Sl=Pl(4),_l=Pl(8),Ol=Pl(12),El=Pl(16),Il=Pl(4);function $l(t,n,e,r,i,s){const o=(n-s)*(e-i),a=(t-i)*(r-s),u=o-a;if(0===o||0===a||o>0!=a>0)return u;const h=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*h?u:-function(t,n,e,r,i,s,o){let a,u,h,l,c,f,d,p,y,m,v,g,b,w,M,x,F,k;const A=t-i,P=e-i,S=n-s,_=r-s;w=A*_,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=S*P,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Sl[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Sl[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Sl[2]=g-(k-c)+(v-c),Sl[3]=k;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Sl),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-A,a=t-(A+c)+(c-i),c=e-P,h=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,l=r-(_+c)+(c-s),0===a&&0===u&&0===h&&0===l)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=A*l+_*a-(S*h+P*u),O>=E||-O>=E)return O;w=a*_,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=u*P,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const I=Al(4,Sl,4,Il,_l);w=A*l,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=S*h,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const $=Al(I,_l,4,Il,Ol);w=a*l,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=u*h,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),v=M-F,c=M-v,Il[0]=M-(v+c)+(c-F),g=w+v,c=g-w,b=w-(g-c)+(v-c),v=b-x,c=b-v,Il[1]=b-(v+c)+(c-x),k=g+v,c=k-g,Il[2]=g-(k-c)+(v-c),Il[3]=k;const z=Al($,Ol,4,Il,El);return El[z-1]}(t,n,e,r,i,s,h)}function zl(t,n,e){n=Math.max(0,void 0===n?2:n),e=e||0;var r=function(t){for(var n=t[0],e=t[0],r=t[0],i=t[0],s=0;s<t.length;s++){var o=t[s];o[0]<n[0]&&(n=o),o[0]>r[0]&&(r=o),o[1]<e[1]&&(e=o),o[1]>i[1]&&(i=o)}var a=[n,e,r,i],u=a.slice();for(s=0;s<t.length;s++)kl(t[s],a)||u.push(t[s]);return function(t){t.sort(ql);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Nl(n[n.length-2],n[n.length-1],t[e])<=0;)n.pop();n.push(t[e])}for(var r=[],i=t.length-1;i>=0;i--){for(;r.length>=2&&Nl(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),n.pop(),n.concat(r)}(u)}(t),i=new il(16);i.toBBox=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},i.compareMinX=function(t,n){return t[0]-n[0]},i.compareMinY=function(t,n){return t[1]-n[1]},i.load(t);for(var s,o=[],a=0;a<r.length;a++){var u=r[a];i.remove(u),s=Vl(u,s),o.push(s)}var h=new il(16);for(a=0;a<o.length;a++)h.insert(Ll(o[a]));for(var l=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Rl(d,p);if(!(y<c)){var m=y/l;(u=Cl(i,f.prev.p,d,p,f.next.next.p,m,h))&&Math.min(Rl(u,d),Rl(u,p))<=m&&(o.push(f),o.push(Vl(u,f)),i.remove(u),h.remove(f),h.insert(Ll(f)),h.insert(Ll(f.next)))}}f=s;var v=[];do{v.push(f.p),f=f.next}while(f!==s);return v.push(f.p),v}function Cl(t,n,e,r,i,s,o){for(var a=new bl([],Tl),u=t.data;u;){for(var h=0;h<u.children.length;h++){var l=u.children[h],c=u.leaf?Hl(l,e,r):Dl(e,r,l);c>s||a.push({node:l,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Hl(d,n,e),y=Hl(d,r,i);if(f.dist<p&&f.dist<y&&Ul(e,d,o)&&Ul(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function Tl(t,n){return t.dist-n.dist}function Dl(t,n,e){if(jl(t,e)||jl(n,e))return 0;var r=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Wl(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Wl(t[0],t[1],n[0],n[1],e.minX,e.maxY,e.maxX,e.maxY);return 0===o?0:Math.min(r,i,s,o)}function jl(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function Ul(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),h=Math.max(t[0],n[0]),l=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:h,maxY:l}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Nl(r,i,s)>0!=Nl(r,i,o)>0&&Nl(s,o,r)>0!=Nl(s,o,i)>0)return!1;return!0}function Nl(t,n,e){return $l(t[0],t[1],n[0],n[1],e[0],e[1])}function Ll(t){var n=t.p,e=t.next.p;return t.minX=Math.min(n[0],e[0]),t.minY=Math.min(n[1],e[1]),t.maxX=Math.max(n[0],e[0]),t.maxY=Math.max(n[1],e[1]),t}function Vl(t,n){var e={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return n?(e.next=n.next,e.prev=n,n.next.prev=e,n.next=e):(e.prev=e,e.next=e),e}function Rl(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Hl(t,n,e){var r=n[0],i=n[1],s=e[0]-r,o=e[1]-i;if(0!==s||0!==o){var a=((t[0]-r)*s+(t[1]-i)*o)/(s*s+o*o);a>1?(r=e[0],i=e[1]):a>0&&(r+=s*a,i+=o*a)}return(s=t[0]-r)*s+(o=t[1]-i)*o}function Wl(t,n,e,r,i,s,o,a){var u,h,l,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,v=n-s,g=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*v,x=p*m+y*v,F=g*w-b*b,k=F,A=F;0===F?(h=0,k=1,c=x,A=w):(c=g*x-b*M,(h=b*x-w*M)<0?(h=0,c=x,A=w):h>k&&(h=k,c=x+b,A=w)),c<0?(c=0,-M<0?h=0:-M>g?h=k:(h=-M,k=g)):c>A&&(c=A,-M+b<0?h=0:-M+b>g?h=k:(h=-M+b,k=g));var P=(1-(l=0===c?0:c/A))*i+l*o-((1-(u=0===h?0:h/k))*t+u*e),S=(1-l)*s+l*a-((1-u)*n+u*r);return P*P+S*S}function ql(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Gl{constructor(t,n){this.x=t,this.y=n}clone(){return new Gl(this.x,this.y)}normalize(){const t=this.length();this.x/=t,this.y/=t}negate(){this.x=-this.x,this.y=-this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}diff(t){return new Gl(this.x-t.x,this.y-t.y)}distance(t){const n=this.x-t.x,e=this.y-t.y;return Math.sqrt(n*n+e*e)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}orthogonal(){return new Gl(this.y,-this.x)}}function Bl(t,n,e,r){const i=n.x*r.y-n.y*r.x,s=e.x-t.x,o=e.y-t.y,a=(s*r.y-o*r.x)/i;return new Gl(t.x+a*n.x,t.y+a*n.y)}const Jl=[],Xl=[];function Yl(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Xl[e]?(Xl[e][0]=t[r].x,Xl[e][1]=t[r].y):Xl[e]=[t[r].x,t[r].y],n.push(Xl[e]),e++;t=n}try{const n=zl(t,1/0);let e=[1/0,1/0],r=[-1/0,-1/0];for(let t=0;t<n.length;t++)n[t][0]<e[0]&&(e[0]=n[t][0]),n[t][0]>r[0]&&(r[0]=n[t][0]),n[t][1]<e[1]&&(e[1]=n[t][1]),n[t][1]>r[1]&&(r[1]=n[t][1]);const i=[];let s=[],o=0;for(let t=0;t<n.length;t++)t===n.length-1&&n[t][0]===n[0][0]&&n[t][1]===n[0][1]||(zt(i,n[t],"EPSG:3857"),Jl[o]?(Jl[o].x=i[0],Jl[o].y=i[1]):Jl[o]=new Gl(i[0],i[1]),s.push(Jl[o]),o++);yh.calculateSignedArea(s)<0&&(s=s.reverse());const a=function(t){let n,e=Number.MAX_VALUE;const r=function(t,r,i,s,o,a,u,h){var l=Bl(t,r,o,a),c=Bl(i,s,o,a),f=Bl(u,h,t,r),d=Bl(u,h,i,s),p=l.distance(c)*l.distance(f);0!==p&&p<e&&(n=[l,f,d,c],e=p)};var i=[];for(let n=0;n<t.length;n++)i.push(t[(n+1)%t.length].diff(t[n])),i[n].normalize();var s,o,a,u,h=new Gl(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),l=new Gl(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<h.x&&(h.x=c.x,s=n),c.x>l.x&&(l.x=c.x,o=n),c.y<h.y&&(h.y=c.y,u=n),c.y>l.y&&(l.y=c.y,a=n)}var f=new Gl(0,-1),d=new Gl(0,1),p=new Gl(-1,0),y=new Gl(1,0);for(let n=0;n<t.length;n++){var m=[Math.acos(f.dot(i[s])),Math.acos(d.dot(i[o])),Math.acos(p.dot(i[a])),Math.acos(y.dot(i[u]))];switch(m.indexOf(Math.min.apply(Math,m))){case 0:(d=(f=i[s].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),s=(s+1)%t.length;break;case 1:(f=(d=i[o].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),o=(o+1)%t.length;break;case 2:(y=(p=i[a].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),a=(a+1)%t.length;break;case 3:(p=(y=i[u].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),u=(u+1)%t.length}r(t[s],f,t[o],d,t[a],p,t[u],y)}return n}(s);if(!a||4!==a.length)return null;const u=a[0].distance(a[1]),h=a[1].distance(a[2]),l=a.map(t=>[t.x,t.y]);return l.push(+(h>u)),l}catch(t){return null}}const Zl=[];function Kl(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Kl(t[r]):(zt(Zl,t[r],n),t[r][0]=Zl[0],t[r][1]=Zl[1]);return t}class Ql extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),(n=n||{}).extent||(n.extent=8192),this.zoomOffset=0,n.tileSize&&(this.zoomOffset=-function(t){if(Math.log2)return Math.log2(t);const n=Math.log(t)*Math.LOG2E,e=Math.round(n);return Math.abs(e-n)<1e-14?e:n}(n.tileSize/256)),this.setData(n.data,s)}setData(t,n){if(delete this.index,!t)return void n();const e={maxZoom:24,tolerance:this.options.simplifyTolerance,extent:this.options.extent,buffer:x(this.options.tileBuffer)?this.options.tileBuffer:64,hasAltitude:!!this.options.hasAltitude,debug:0,lineMetrics:!0,indexMaxZoom:5,indexMaxPoints:1e5,disableFilter:!0};if(this.options.projection&&(e.projection=this.options.projection,"EPSG:4490"===e.projection&&(e.projection="EPSG:4326")),M(t)&&"{"!=t.substring(0,1)||t.url){const r=t.url?t.url:t;O.getJSON(r,t.url?t:{},(t,i)=>{if(t&&(console.error("Failed to fetch geojson:"+r),n(t)),!i)return void n(null,{extent:null,idMap:{}});let s=i;if(this.options.convertFn){s=new Function("data",this.options.convertFn+"\\nreturn convert(data)")(s)}const o=Array.isArray(s)?s:s.features;this.dn(o);const{first1000:a,idMap:u}=this.pn(o);this.yn(a,u,s,e,n)})}else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features;this.dn(r);let i=r;r&&r.length>1e3&&(i=r.slice(0,1e3)),this.yn(i,null,t,e,n)}}dn(t){if(this.options.generateOMBB&&t)for(let n=0;n<t.length;n++){const e=t[n];if(e&&e.geometry&&e.geometry.coordinates)if("Polygon"===e.geometry.type){const t=e.geometry.coordinates[0];if(!t)continue;const n=Yl(t,t.length);e.properties=e.properties||{},e.properties[wh]=n}else if("MultiPolygon"===e.geometry.type){const t=e.geometry.coordinates;for(let n=0;n<t.length;n++){if(!t[n])continue;const r=t[n][0];if(!r)continue;const i=Yl(r,r.length);e.properties=e.properties||{},e.properties[wh]=e.properties[wh]||[],e.properties[wh][n]=i}}}}yn(t,n,e,r,i){try{const s=t&&t.length?function(t){let n=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];switch(t.type){case"FeatureCollection":const e=t.features.length;for(let r=0;r<e;r++)Yh(t.features[r],n);break;case"Feature":Yh(t,n);break;default:Zh(t,n)}return n}({type:"FeatureCollection",features:t}):null;this.index=function(t,n){return new it(t,n)}(e,this.options.geojsonvt||r),i(null,{extent:s,idMap:n})}catch(t){console.warn(t),i({error:t.message})}}pn(t){const n=[],e={};let r=0;const i=this.options.featureIdProperty;return t&&t.forEach(t=>{!function(t){if(t&&("Feature"!==t.type||t.geometry)){if(x(t.id)||(t.id=r++),i){let n=i;k(i)&&(n=i[t.layer||"0"]),t.id=t.properties[n]}e[t.id]=w({},t),t.geometry?(e[t.id].geometry=w({},t.geometry),e[t.id].geometry.coordinates=null):t.coordinates&&(e[t.id].coordinates=null),n.length<1e3&&n.push(t)}}(t)}),{first1000:n,idMap:e}}getTileFeatures(t,n){const e=t.tileInfo,r=[];if(!this.index)return setTimeout((function(){n({loading:!0})}),1),1;const i=this.index.getTile(e.z+this.zoomOffset,e.x,e.y);if(!i||0===i.features.length)return setTimeout((function(){n(null,r,[])}),1),1;const s=[];for(let t=0,n=i.features.length;t<n;t++){const n=i.features[t];let e=n.layer;void 0===e&&(e="0"),s[e]={types:{}};s[e].types[n.type]=1,n.tags=n.tags||{},n.geometry.converted||(yh.convertGeometry(n),n.geometry.converted=1),r.push({type:n.type,layer:e,id:n.id,geometry:n.geometry,properties:n.tags,extent:this.options.extent})}for(const t in s)s[t].types=Object.keys(s[t].types).map(t=>+t);return setTimeout((function(){n(null,r,s)}),1),1}onRemove(){super.onRemove(),delete this.index}}var tc={\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nread:function(t,n,e,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,h=u>>1,l=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+t[n+c],c+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+t[n+c],c+=f,l-=8);if(0===s)s=1-h;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=h}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,h=8*s-i-1,l=(1<<h)-1,c=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(a=isNaN(n)?1:0,o=l):(o=Math.floor(Math.log(n)/Math.LN2),n*(u=Math.pow(2,-o))<1&&(o--,u*=2),(n+=o+c>=1?f/u:f*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=l?(a=0,o=l):o+c>=1?(a=(n*u-1)*Math.pow(2,i),o+=c):(a=n*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;t[e+d]=255&o,d+=p,o/=256,h-=8);t[e+d-p]|=128*y}},nc=rc,ec=tc;function rc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}rc.Varint=0,rc.Fixed64=1,rc.Bytes=2,rc.Fixed32=5;var ic="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function sc(t){return t.type===rc.Bytes?t.readVarint()+t.pos:t.pos+1}function oc(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function ac(t,n,e){var r=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(7*Math.LN2));e.realloc(r);for(var i=e.pos-1;i>=t;i--)e.buf[i+r]=e.buf[i]}function uc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function yc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function mc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function vc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function gc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function bc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}rc.prototype={destroy:function(){this.buf=null},readFields:function(t,n,e){for(e=e||this.length;this.pos<e;){var r=this.readVarint(),i=r>>3,s=this.pos;this.type=7&r,t(i,n,this),this.pos===s&&this.skip(r)}return n},readMessage:function(t,n){return this.readFields(t,n,this.readVarint()+this.pos)},readFixed32:function(){var t=vc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=bc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=vc(this.buf,this.pos)+4294967296*vc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=vc(this.buf,this.pos)+4294967296*bc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ec.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ec.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var n,e,r=this.buf;return n=127&(e=r[this.pos++]),e<128?n:(n|=(127&(e=r[this.pos++]))<<7,e<128?n:(n|=(127&(e=r[this.pos++]))<<14,e<128?n:(n|=(127&(e=r[this.pos++]))<<21,e<128?n:function(t,n,e){var r,i,s=e.buf;if(i=s[e.pos++],r=(112&i)>>4,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return oc(t,r,n);throw new Error("Expected varint not more than 10 bytes")}(n|=(15&(e=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,n=this.pos;return this.pos=t,t-n>=12&&ic?function(t,n,e){return ic.decode(t.subarray(n,e))}(this.buf,n,t):function(t,n,e){var r="",i=n;for(;i<e;){var s,o,a,u=t[i],h=null,l=u>239?4:u>223?3:u>191?2:1;if(i+l>e)break;1===l?u<128&&(h=u):2===l?128==(192&(s=t[i+1]))&&(h=(31&u)<<6|63&s)<=127&&(h=null):3===l?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((h=(15&u)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===l&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,l=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),i+=l}return r}(this.buf,n,t)},readBytes:function(){var t=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,t);return this.pos=t,n},readPackedVarint:function(t,n){if(this.type!==rc.Bytes)return t.push(this.readVarint(n));var e=sc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==rc.Bytes)return t.push(this.readSVarint());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==rc.Bytes)return t.push(this.readBoolean());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==rc.Bytes)return t.push(this.readFloat());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==rc.Bytes)return t.push(this.readDouble());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===rc.Varint)for(;this.buf[this.pos++]>127;);else if(n===rc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===rc.Fixed32)this.pos+=4;else{if(n!==rc.Fixed64)throw new Error("Unimplemented type: "+n);this.pos+=8}},writeTag:function(t,n){this.writeVarint(t<<3|n)},realloc:function(t){for(var n=this.length||16;n<this.pos+t;)n*=2;if(n!==this.length){var e=new Uint8Array(n);e.set(this.buf),this.buf=e,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),gc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),gc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),gc(this.buf,-1&t,this.pos),gc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),gc(this.buf,-1&t,this.pos),gc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,n){var e,r;t>=0?(e=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(e=~(-t%4294967296))?e=e+1|0:(e=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn\'t fit into 10 bytes");n.realloc(10),function(t,n,e){e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos]=127&t}(e,0,n),function(t,n){var e=(7&t)<<4;if(n.buf[n.pos++]|=e|((t>>>=3)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;n.buf[n.pos++]=127&t}(r,n)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var n=this.pos;this.pos=function(t,n,e){for(var r,i,s=0;s<n.length;s++){if((r=n.charCodeAt(s))>55295&&r<57344){if(!i){r>56319||s+1===n.length?(t[e++]=239,t[e++]=191,t[e++]=189):i=r;continue}if(r<56320){t[e++]=239,t[e++]=191,t[e++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&(t[e++]=239,t[e++]=191,t[e++]=189,i=null);r<128?t[e++]=r:(r<2048?t[e++]=r>>6|192:(r<65536?t[e++]=r>>12|224:(t[e++]=r>>18|240,t[e++]=r>>12&63|128),t[e++]=r>>6&63|128),t[e++]=63&r|128)}return e}(this.buf,t,this.pos);var e=this.pos-n;e>=128&&ac(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),ec.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ec.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var n=t.length;this.writeVarint(n),this.realloc(n);for(var e=0;e<n;e++)this.buf[this.pos++]=t[e]},writeRawMessage:function(t,n){this.pos++;var e=this.pos;t(n,this);var r=this.pos-e;r>=128&&ac(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,rc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,pc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,yc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,mc,n)},writeBytesField:function(t,n){this.writeTag(t,rc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,rc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,rc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var wc=Ut,Mc=xc;function xc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.mn=t,this.vn=-1,this.gn=r,this.bn=i,t.readFields(Fc,this,n)}function Fc(t,n,e){1==t?n.id=e.readVarint():2==t?function(t,n){var e=t.readVarint()+t.pos;for(;t.pos<e;){var r=n.gn[t.readVarint()],i=n.bn[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.vn=e.pos)}function kc(t){for(var n,e,r=0,i=0,s=t.length,o=s-1;i<s;o=i++)n=t[i],r+=((e=t[o]).x-n.x)*(n.y+e.y);return r}xc.types=["Unknown","Point","LineString","Polygon"],xc.prototype.loadGeometry=function(){var t=this.mn;t.pos=this.vn;for(var n,e=t.readVarint()+t.pos,r=1,i=0,s=0,o=0,a=[];t.pos<e;){if(i<=0){var u=t.readVarint();r=7&u,i=u>>3}if(i--,1===r||2===r)s+=t.readSVarint(),o+=t.readSVarint(),1===r&&(n&&a.push(n),n=[]),n.push(new wc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},xc.prototype.bbox=function(){var t=this.mn;t.pos=this.vn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,h=-1/0;t.pos<n;){if(r<=0){var l=t.readVarint();e=7&l,r=l>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>h&&(h=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,h]},xc.prototype.toGeoJSON=function(t,n,e){var r,i,s=this.extent*Math.pow(2,e),o=this.extent*t,a=this.extent*n,u=this.loadGeometry(),h=xc.types[this.type];function l(t){for(var n=0;n<t.length;n++){var e=t[n],r=180-360*(e.y+a)/s;t[n]=[360*(e.x+o)/s-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<u.length;r++)c[r]=u[r][0];l(u=c);break;case 2:for(r=0;r<u.length;r++)l(u[r]);break;case 3:for(u=function(t){var n=t.length;if(n<=1)return[t];for(var e,r,i=[],s=0;s<n;s++){var o=kc(t[s]);0!==o&&(void 0===r&&(r=o<0),r===o<0?(e&&i.push(e),e=[t[s]]):e.push(t[s]))}e&&i.push(e);return i}(u),r=0;r<u.length;r++)for(i=0;i<u[r].length;i++)l(u[r][i])}1===u.length?u=u[0]:h="Multi"+h;var f={type:"Feature",geometry:{type:h,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Ac=Mc,Pc=Sc;function Sc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.mn=t,this.gn=[],this.bn=[],this.wn=[],t.readFields(_c,this,n),this.length=this.wn.length}function _c(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.wn.push(e.pos):3===t?n.gn.push(e.readString()):4===t&&n.bn.push(function(t){var n=null,e=t.readVarint()+t.pos;for(;t.pos<e;){var r=t.readVarint()>>3;n=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return n}(e))}Sc.prototype.feature=function(t){if(t<0||t>=this.wn.length)throw new Error("feature index out of bounds");this.mn.pos=this.wn[t];var n=this.mn.readVarint()+this.mn.pos;return new Ac(this.mn,n,this.extent,this.gn,this.bn)};var Oc=Pc;function Ec(t,n,e){if(3===t){var r=new Oc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Ic=function(t,n){this.layers=t.readFields(Ec,{},n)};class $c extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),n=n||{},s()}getTileFeatures(t,n){const e=t.tileInfo.url,r=t.fetchOptions;if(this.Ct.has(e)){const{err:t,data:r}=this.Ct.get(e);return setTimeout(()=>{this.Mn(e,t,r,n)},1)}return O.getArrayBuffer(e,r,(t,r)=>{t?t.loading||this.Ct.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Ct.add(e,{err:null,data:r.data}),this.Mn(e,t,r&&r.data,n)})}Mn(t,n,e,r){if(n)return void r(n);let i;try{i=new Ic(new nc(e))}catch(n){return void r(n.message,[],[])}const s=[];if(!i.layers)return void r(null,s,[]);const o={};let a;for(const t in i.layers)if(u=i.layers,h=t,Object.prototype.hasOwnProperty.call(u,h)){o[t]={types:{}};const e=o[t].types;for(let r=0,o=i.layers[t].length;r<o;r++)try{a=i.layers[t].feature(r),e[a.type]=1;const n={type:a.type,layer:t,geometry:a.loadGeometry(),properties:a.properties,extent:a.extent};void 0!==a.id&&(n.id=a.id);let o=n.properties[wh];o&&(M(o)&&(o=JSON.parse(o)),n.properties[wh]=Kl(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,h;for(const t in o)o[t].types=Object.keys(o[t].types).map(t=>+t);r(null,s,o,{byteLength:e.byteLength})}abortTile(t,n){const e=this.requests[t];delete this.requests[t],e&&e.abort&&e.abort(),this.Wt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let zc=0;const Cc=new ah(128);class Tc{constructor(t){this.xn={},this.Fn={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.kn(n,e))return;const s=this.An(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.xn[s]="GeoJSONVectorTileLayer"===o?new Ql(e,a,u,Cc,{},i):new $c(e,a,u,Cc,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.kn(t,n),i=this.An(t,n);delete this.xn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this.Fn[n];delete this.Fn[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${zc++}`:null;i&&(this.Fn[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}An(t,n){return`${t}-${n}`}kn(t,n){const e=this.An(t,n);return this.xn[e]}Pn(){Cc.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Tc(t.workerId)),"<response>"===t.type)this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t);else{const r=e.command;this.dispatcher[r]({actorId:t.actorId,mapId:e.mapId,layerId:e.layerId,params:e.params},(t,e,i)=>{t&&404!==t.status&&204!==t.status&&console.error(r,t),n(t,e,i)})}},Object.defineProperty(t,"Sn",{value:!0})}';
|
|
26
26
|
let a;
|
|
27
27
|
const l = {
|
|
28
28
|
width: 100,
|
|
@@ -1810,7 +1810,7 @@
|
|
|
1810
1810
|
};
|
|
1811
1811
|
var on = Ce.exports;
|
|
1812
1812
|
/*!
|
|
1813
|
-
* @maptalks/vector-packer v0.
|
|
1813
|
+
* @maptalks/vector-packer v0.91.0
|
|
1814
1814
|
* LICENSE : UNLICENSED
|
|
1815
1815
|
* (c) 2016-2023 maptalks.com
|
|
1816
1816
|
*/ const an = {
|
|
@@ -2144,6 +2144,8 @@
|
|
|
2144
2144
|
textFill: 1,
|
|
2145
2145
|
textSize: 1,
|
|
2146
2146
|
textOpacity: 1,
|
|
2147
|
+
textDx: 1,
|
|
2148
|
+
textDy: 1,
|
|
2147
2149
|
markerWidth: 1,
|
|
2148
2150
|
markerHeight: 1,
|
|
2149
2151
|
markerOpacity: 1,
|
|
@@ -9540,7 +9542,7 @@
|
|
|
9540
9542
|
return t;
|
|
9541
9543
|
}()
|
|
9542
9544
|
};
|
|
9543
|
-
r.SpatialReference.registerPreset("preset-vt-4326", mh);
|
|
9545
|
+
r.SpatialReference.registerPreset("preset-vt-4326", mh), r.SpatialReference.registerPreset("preset-4326-512", mh);
|
|
9544
9546
|
class gh extends uh {
|
|
9545
9547
|
getTileUrl(t, e, n) {
|
|
9546
9548
|
const i = this.getMap().getResolution(n);
|
|
@@ -9981,12 +9983,12 @@
|
|
|
9981
9983
|
},
|
|
9982
9984
|
textDx: {
|
|
9983
9985
|
type: "identity",
|
|
9984
|
-
default:
|
|
9986
|
+
default: 0,
|
|
9985
9987
|
property: "_symbol_textDx"
|
|
9986
9988
|
},
|
|
9987
9989
|
textDy: {
|
|
9988
9990
|
type: "identity",
|
|
9989
|
-
default:
|
|
9991
|
+
default: 0,
|
|
9990
9992
|
property: "_symbol_textDy"
|
|
9991
9993
|
},
|
|
9992
9994
|
textOpacity: {
|
|
@@ -15262,9 +15264,9 @@
|
|
|
15262
15264
|
define: "HAS_TEXT_DX",
|
|
15263
15265
|
type: Uint8Array,
|
|
15264
15266
|
width: 1,
|
|
15265
|
-
evaluate: e => {
|
|
15266
|
-
|
|
15267
|
-
return m[0] =
|
|
15267
|
+
evaluate: (e, n) => {
|
|
15268
|
+
let i = a(t.getZoom(), e);
|
|
15269
|
+
return x(i) && (i = this.evaluateInFnTypeConfig(i, n, t, e)), m[0] = i, m[0];
|
|
15268
15270
|
}
|
|
15269
15271
|
}, {
|
|
15270
15272
|
attrName: "aTextDy",
|
|
@@ -15272,9 +15274,9 @@
|
|
|
15272
15274
|
define: "HAS_TEXT_DY",
|
|
15273
15275
|
type: Uint8Array,
|
|
15274
15276
|
width: 1,
|
|
15275
|
-
evaluate: e => {
|
|
15276
|
-
|
|
15277
|
-
return m[0] =
|
|
15277
|
+
evaluate: (e, n) => {
|
|
15278
|
+
let i = l(t.getZoom(), e);
|
|
15279
|
+
return x(i) && (i = this.evaluateInFnTypeConfig(i, n, t, e)), m[0] = i, m[0];
|
|
15278
15280
|
}
|
|
15279
15281
|
}, {
|
|
15280
15282
|
attrName: "aColorOpacity",
|
|
@@ -18327,7 +18329,7 @@
|
|
|
18327
18329
|
dm.registerAt(uh), Mh.registerPainter("lit", Ty), Mh.registerPainter("icon", Ap),
|
|
18328
18330
|
Mh.registerPainter("fill", $f), Mh.registerPainter("line", Jf), Mh.registerPainter("line-gradient", Zf),
|
|
18329
18331
|
Mh.registerPainter("water", Ky), Mh.registerPainter("tube", Oy), n.reshader.ShaderLib.register("vt_position_vert", "#ifdef HAS_TERRAIN_ALTITUDE\n attribute float aTerrainAltitude;\n#endif\nuniform float minAltitude;\n#ifdef HAS_ALTITUDE\n vec3 unpackVTPosition() {\n float altitude = aAltitude;\n #ifdef HAS_TERRAIN_ALTITUDE\n altitude += aTerrainAltitude * 100.0;\n #endif\n altitude += minAltitude * 100.0;\n return vec3(aPosition, altitude);\n }\n#else\n float position_modValue = 16384.0;\n float position_delta = 0.00001;\n vec3 unpackVTPosition() {\n float z = aPosition.z;\n vec2 pos = sign(aPosition.xy + position_delta) * mod(abs(aPosition.xy), position_modValue);\n vec2 highs = floor(abs(aPosition.xy) / position_modValue);\n float altitude = sign(z + position_delta) * (highs.x * 2.0 + highs.y) * pow(2.0, 15.0) + z;\n #ifdef HAS_TERRAIN_ALTITUDE\n altitude += aTerrainAltitude * 100.0;\n #endif\n altitude += minAltitude * 100.0;\n return vec3(pos, altitude);\n }\n#endif"),
|
|
18330
|
-
uh.VERSION = "0.
|
|
18332
|
+
uh.VERSION = "0.91.0", Mh.VERSION = "0.91.0";
|
|
18331
18333
|
if (s.mat4.create(), s.transcoders) {
|
|
18332
18334
|
const t = r.Map.VERSION;
|
|
18333
18335
|
if (t.indexOf("1.0.0-beta") >= 0 || t.indexOf("1.0.0-alpha") >= 0) {
|
|
@@ -18348,5 +18350,5 @@
|
|
|
18348
18350
|
t.VectorTileLayer = uh, t.VectorTileLayerRenderer = $l, t.WaterPlugin = dm, t.WireframePainter = ky,
|
|
18349
18351
|
t.WireframePlugin = am, Object.defineProperty(t, "t", {
|
|
18350
18352
|
value: !0
|
|
18351
|
-
}), "undefined" != typeof console && console.log("@maptalks/vt v0.
|
|
18353
|
+
}), "undefined" != typeof console && console.log("@maptalks/vt v0.91.0");
|
|
18352
18354
|
}));
|