@maptalks/vt 0.94.0 → 0.95.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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @maptalks/vt v0.94.0
2
+ * @maptalks/vt v0.95.0
3
3
  * LICENSE : undefined
4
4
  * (c) 2016-2024 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 l={width:100,height:1};function h(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,l);s.set(n,t)}t=s.get(n)}else t=new i(e,l);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 g(t,"exponential")}function y(t){return g(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 g(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=g(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 l,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)l=u;else if("interval"===m)l=a;else if("categorical"===m)l=o;else if("identity"===m)l=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');l=h}if(f){var g={},v=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===g[b[0].zoom]&&(g[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),g[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in g)v.push([g[n].zoom,t(g[n])]);r=function(t,e){const r=u({stops:v,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=l(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=l(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 v=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!k(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!k(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function A(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function k(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_"+v++;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;i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET";const s=new Request(t,i);return n.returnJSON&&s.headers.set("Accept","application/json"),fetch(s).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 C(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)T(t,e.features[n],r,n);else"Feature"===e.type?T(t,e,r):T(t,{geometry:e},r)}function T(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)z(i,a,e);else if("MultiPoint"===s)for(const t of i)z(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)T(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 z(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]),l=N(t[e][1],i.projection);n.push(u,l,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*l-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(l-o,2))),s=u,o=l}const u=i.hasAltitude?4:3,l=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,l=r-e;const h=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],h,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<l&&(u=t,l=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,l,e,u),n[l+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,l=0===i?n.maxX:n.maxY;if(o>=e&&l<r){u.push(n);continue}if(l<e||o>=r)continue;let h=[];if("Point"===s||"MultiPoint"===s)V(t,h,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,h,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,h,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,h,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&&h.push(t)}if(h.length){if(a.lineMetrics&&"LineString"===s){for(const t of h)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===h.length?(s="LineString",h=h[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===h.length?"Point":"MultiPoint"),u.push(I(n.id,s,h,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 l=0===i?G:B;let h,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],g=t[y+1],v=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:g,A=0===i?b:w;let k=!1;o&&(h=Math.sqrt(Math.pow(m-b,2)+Math.pow(g-w,2))),F<e?A>e&&(c=l(u,m,g,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+h*c)):F>r?A<r&&(c=l(u,m,g,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+h*c)):(q(u,m,g,v),a&&u.push(M)),A<e&&F>=e&&(c=l(u,m,g,b,w,e),a&&u.push(J(M,x,c)),k=!0),A>r&&F<=r&&(c=l(u,m,g,b,w,r),a&&u.push(J(M,x,c)),k=!0),!s&&k&&(o&&(u.end=f+h*c),n.push(u),u=H(t)),o&&(f+=h)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],l=0===i?n:s;if(l>=e&&l<=r&&q(u,n,s,o),l>=e&&l<=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 l=[];for(let a=0;a<t[u].length;a+=o)l.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&l[l.length-1].push(t[u][a+2]);a.geometry.push(l)}}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:l}=o,h=u?4:3;if(!l&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/h);const c=[];for(let t=0;t<n.length;t+=h)(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 l;e&&(l=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]=l)}}}(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++)C(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)T(e,t.features[r],n,r);else"Feature"===t.type?T(e,t,n):T(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,l=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const h=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(l>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),l)){l>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;l>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let g=null,v=null,b=null,w=null,M=L(t,h,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,h,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(g=L(M,h,r-d,r+y,1,f.minY,f.maxY,u),v=L(M,h,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,h,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,h,r+p,r+m,1,f.minY,f.maxY,u),x=null),l>1&&console.timeEnd("clipping"),a.push(g||[],n+1,2*e,2*r),a.push(v||[],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 l,h=t,c=n,f=e;for(;!l&&h>0;)h--,c>>=1,f>>=1,l=this.tiles[st(h,c,f)];return l&&l.source?(s>1&&(console.log("found parent tile z%d-%d-%d",h,c,f),console.time("drilling down")),this.splitTile(l.source,h,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,l=e.length;u<l;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 h=i||0;Array.isArray(i)&&(h=i[u]),h=h?Math.round(r*h):0,t[n+2]=h,n+=3,s&&0!==u&&u!==l-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 lt(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function ht(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 gt=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 vt(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 At(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=lt()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var kt,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)}lt(),ht(1,0,0),ht(0,1,0),Ft(),Ft(),kt=new ut(9),ut!=Float32Array&&(kt[1]=0,kt[2]=0,kt[3]=0,kt[5]=0,kt[6]=0,kt[7]=0),kt[0]=1,kt[4]=1,kt[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 Ct(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 Tt(t,n);if("baidu"===e)return Tt(t,n);throw new Error("unsupported projection:"+e)}function Tt(t,n){return t[0]=n[0],t[1]=n[1],t}function zt(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,l){const h=1/(100*s[0]),c=1/(100*s[1]),f=l&&l[0]||0,d=l&&l[1]||0,p=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-f,s=r[i+1]-d;e[t]=p[0]+n/o*h/a,e[t+1]=p[1]-s/o*c/u}}(n,e,r,i,0,o,a,u,l,p):1===t&&function(t,n,e,r,i,s,o,a,u,l,h){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),g=[],v=[],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+(h?i[t+1]:-i[t+1])/o*a;_t(g,e,d),"EPSG:4326"!==l&&"EPSG:4490"!==l||Ct(g,g,"EPSG:3857"),Dt(v,g,c,f),Dt(b,g,p,c),r[n]=Ot(c,v)/y,r[n+1]=Ot(c,b)/m}}(h,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 l=r,h=i,c=a,f=u,Math.sqrt((c-l)*(c-l)+(f-h)*(f-h));var l,h,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().A(t)},mult:function(t){return this.clone().k(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},k: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},A: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,l,h,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,((l=h=this.w)<=a||t>l)&&(h=2*Math.max(t,l)),(a<l||n>a)&&(u=2*Math.max(n,a)),this.resize(h,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 ln=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 hn in ln)if(ln.hasOwnProperty(hn)){if(!("channels"in ln[hn]))throw new Error("missing channels property: "+hn);if(!("labels"in ln[hn]))throw new Error("missing channel labels property: "+hn);if(ln[hn].labels.length!==ln[hn].channels)throw new Error("channel and label counts mismatch: "+hn);var cn=ln[hn].channels,fn=ln[hn].labels;delete ln[hn].channels,delete ln[hn].labels,Object.defineProperty(ln[hn],"channels",{value:cn}),Object.defineProperty(ln[hn],"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)}ln.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]},ln.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,l=Math.max(o,a,u),h=l-Math.min(o,a,u),c=function(t){return(l-t)/6/h+.5};return 0===h?i=s=0:(s=h/l,n=c(o),e=c(a),r=c(u),o===l?i=r-e:a===l?i=1/3+n-r:u===l&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*l]},ln.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[ln.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)))]},ln.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]},ln.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},ln.keyword.rgb=function(t){return on[t]},ln.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)]},ln.rgb.lab=function(t){var n=ln.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))]},ln.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 l=0;l<3;l++)(r=o+1/3*-(l-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[l]=255*s;return i},ln.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)]},ln.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]}},ln.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)]},ln.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,l=t[1]/100,h=t[2]/100,c=l+h;switch(c>1&&(l/=c,h/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=l+r*((e=1-h)-l),n){default:case 6:case 0:s=e,o=i,a=l;break;case 1:s=i,o=e,a=l;break;case 2:s=l,o=e,a=i;break;case 3:s=l,o=i,a=e;break;case 4:s=i,o=l,a=e;break;case 5:s=e,o=l,a=i}return[255*s,255*o,255*a]},ln.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))]},ln.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))]},ln.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))]},ln.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]},ln.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]},ln.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)]},ln.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:ln.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},ln.hsv.ansi16=function(t){return ln.rgb.ansi16(ln.hsv.rgb(t),t[2])},ln.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)},ln.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]},ln.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]},ln.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},ln.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]},ln.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)]},ln.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]},ln.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]},ln.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)]},ln.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]},ln.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]},ln.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)]},ln.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]},ln.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},ln.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},ln.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},ln.gray.hsl=ln.gray.hsv=function(t){return[0,0,t[0]]},ln.gray.hwb=function(t){return[0,100,t[0]]},ln.gray.cmyk=function(t){return[0,0,0,t[0]]},ln.gray.lab=function(t){return[t[0],0,0]},ln.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},ln.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 gn(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 vn=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]=gn(o,n))}return e},wn={};Object.keys(vn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:vn[t].channels}),Object.defineProperty(wn[t],"labels",{value:vn[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,An=[].slice,kn=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[An.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 kn&&(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=An.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,l=[];for(e=0;e<u.length;e++)l.push(t[u[e]]);this.color=$n(l)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var h=Sn[this.model][e];h&&(this.color[e]=h(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===kn.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(An.call(arguments),n)),new _n(e,t)}}}));var Cn=_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 Tn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function zn(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?Tn.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=>Tn.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,l=Math.log(a),h=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*h*(a-h)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*h/a+c)),d=Math.min(s,Math.floor(r+(a-u)*h/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;class Bn{constructor(t=[],n=Jn){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 Jn(t,n){return t<n?-1:t>n?1:0}\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Xn=[],Yn=[],Zn=[],Kn=[];function Qn(t,n,e){const r=mt(Yn,n,e);t=At(t,function(t,n,e,r,i,s,o,a,u,l){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]=l,t}(Xn,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(Zn,e,n):mt(Zn,n,e);return yt(mt(Kn,e,n),i)<0&&Pt(t,t,-1),t}const te=[];function ne(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=te;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?le(t,3*e,3*e+1,3*e+2,r,i):le(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 ee=[],re=[],ie=[],se=[],oe=[],ae=[],ue=[];function le(t,n,e,r,i,s){ft(se,t[3*n],t[3*n+1],t[3*n+2]),ft(oe,t[3*e],t[3*e+1],t[3*e+2]),ft(ae,t[3*r],t[3*r+1],t[3*r+2]);const o=gt(ee,ae,oe),a=gt(re,se,oe),u=mt(ie,o,a);pt(ue,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]+=ue[0],i[3*e]+=ue[0],i[3*r]+=ue[0],i[3*n+1]+=ue[1],i[3*e+1]+=ue[1],i[3*r+1]+=ue[1],i[3*n+2]+=ue[2],i[3*e+2]+=ue[2],i[3*r+2]+=ue[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 he(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function ce(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var fe={exports:{}};function de(t,n,e){e=e||2;var r,i,s,o,a,u,l,h=n&&n.length,c=h?n[0]*e:t.length,f=pe(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(h&&(f=function(t,n,e,r){var i,s,o,a,u,l=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=pe(t,o,a,r,!1))===u.next&&(u.steiner=!0),l.push(ke(u));for(l.sort(Me),i=0;i<l.length;i++)e=xe(l[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);l=0!==(l=Math.max(s-r,o-i))?32767/l:0}return me(f,d,e,r,i,l,0),d}function pe(t,n,e,r,i){var s,o;if(i===Ue(t,n,e,r)>0)for(s=n;s<e;s+=r)o=ze(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=ze(s,t[s],t[s+1],o);return o&&Oe(o,o.next)&&(De(o),o=o.next),o}function ye(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Oe(r,r.next)&&0!==_e(r.prev,r,r.next))r=r.next;else{if(De(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function me(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=Ae(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,l=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<l&&(a++,r=r.nextZ);n++);for(u=l;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,l*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,l=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?ve(t,r,i,s):ge(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),De(t),t=u.next,l=u.next;else if((t=u)===l){o?1===o?me(t=be(ye(t),n,e),n,e,r,i,s,2):2===o&&we(t,n,e,r,i,s):me(ye(t),n,e,r,i,s,1);break}}}function ge(t){var n=t.prev,e=t,r=t.next;if(_e(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,l=r.y,h=i<s?i<o?i:o:s<o?s:o,c=a<u?a<l?a:l:u<l?u:l,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>l?a:l:u>l?u:l,p=r.next;p!==n;){if(p.x>=h&&p.x<=f&&p.y>=c&&p.y<=d&&Pe(i,a,s,u,o,l,p.x,p.y)&&_e(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function ve(t,n,e,r){var i=t.prev,s=t,o=t.next;if(_e(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,l=o.x,h=i.y,c=s.y,f=o.y,d=a<u?a<l?a:l:u<l?u:l,p=h<c?h<f?h:f:c<f?c:f,y=a>u?a>l?a:l:u>l?u:l,m=h>c?h>f?h:f:c>f?c:f,g=Ae(d,p,n,e,r),v=Ae(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=g&&w&&w.z<=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&Pe(a,h,u,c,l,f,b.x,b.y)&&_e(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&&Pe(a,h,u,c,l,f,w.x,w.y)&&_e(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&Pe(a,h,u,c,l,f,b.x,b.y)&&_e(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=v;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&Pe(a,h,u,c,l,f,w.x,w.y)&&_e(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function be(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Oe(i,s)&&Ee(i,r,r.next,s)&&Ce(i,s)&&Ce(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),De(r),De(r.next),r=t=s),r=r.next}while(r!==t);return ye(r)}function we(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Se(o,a)){var u=Te(o,a);return o=ye(o,o.next),u=ye(u,u.next),me(o,n,e,r,i,s,0),void me(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Me(t,n){return t.x-n.x}function xe(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,l=e,h=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=h&&i!==r.x&&Pe(s<c?i:o,s,h,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Ce(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&Fe(e,r)))&&(e=r,f=u)),r=r.next}while(r!==l);return e}(t,n);if(!e)return n;var r=Te(e,t);return ye(r,r.next),ye(e,e.next)}function Fe(t,n){return _e(t.prev,t,n.prev)<0&&_e(n.next,t,t.next)<0}function Ae(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 ke(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 Pe(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 Se(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&&Ee(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Ce(t,n)&&Ce(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)&&(_e(t.prev,t,n.prev)||_e(t,n.prev,n))||Oe(t,n)&&_e(t.prev,t,t.next)>0&&_e(n.prev,n,n.next)>0)}function _e(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Oe(t,n){return t.x===n.x&&t.y===n.y}function Ee(t,n,e,r){var i=$e(_e(t,n,e)),s=$e(_e(t,n,r)),o=$e(_e(e,r,t)),a=$e(_e(e,r,n));return i!==s&&o!==a||(!(0!==i||!Ie(t,e,n))||(!(0!==s||!Ie(t,r,n))||(!(0!==o||!Ie(e,t,r))||!(0!==a||!Ie(e,n,r)))))}function Ie(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 $e(t){return t>0?1:t<0?-1:0}function Ce(t,n){return _e(t.prev,t,t.next)<0?_e(t,n,t.next)>=0&&_e(t,t.prev,n)>=0:_e(t,n,t.prev)<0||_e(t,t.next,n)<0}function Te(t,n){var e=new je(t.i,t.x,t.y),r=new je(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 ze(t,n,e,r){var i=new je(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 De(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 je(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 Ue(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}fe.exports=de,fe.exports.default=de,de.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Ue(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var l=n[a]*e,h=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Ue(t,l,h,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)},de.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 Ne=fe.exports;\n/*!\n * @maptalks/vector-packer v0.94.0\n * LICENSE : UNLICENSED\n * (c) 2016-2024 maptalks.com\n */const Le={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function Ve(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)Re(e,t.features[r],n,r);else Re(e,"Feature"===t.type?t:{geometry:t},n);return e}function Re(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)He(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)He(i[u],o);else if("LineString"===s)qe([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)We(i[u],o=[]),t.push(Ge(a,"LineString",o,n.properties));return}qe(i,o)}else if("Polygon"===s)qe(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)Re(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 l=[];qe(i[u],l),o.push(l)}}t.push(Ge(a,s,o,n.properties))}}function He(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function We(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 qe(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];We(t[i],s),n.push(s)}}function Ge(t,n,e,r){return{id:void 0===t?null:t,type:Le[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Be(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 Je(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Be({},{width:n,height:e},r);Xe(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 Xe(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 l=((e.y+u)*t.width+e.x)*s,h=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[h+t]=o[l+t]}return n}class Ye{constructor(t,n){Be(this,t,1,n)}resize(t){Je(this,t,1)}clone(){return new Ye({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Xe(t,n,e,r,i,1)}}class Ze{constructor(t,n){Be(this,t,4,n)}resize(t){Je(this,t,4)}clone(){return new Ze({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Xe(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 Ke{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 Qe{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 Ke(o,s,r)}if(r.pack(i,{inPlace:!0}),!tr(r.w)||!tr(r.h)){const t=nr(r.w),n=nr(r.h);r.resize(t,n)}const o=new Ze({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Ze.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 tr(t){return 0==(t&t-1)&&0!==t}function nr(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 er{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 Ye({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;Ye.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 rr(t){return t<65536?Uint16Array:Uint32Array}function ir(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function sr(t){return t<256?Uint8Array:t<65536?Uint16Array:Float32Array}function or(t,n){const e=t.length;t=t.U||t;const r=new n(e);for(let n=0;n<e;n++)r[n]=t[n];return r}function ar(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)He(t.geometry[n],e);else if(2===n)qe(t.geometry,e);else if(3===n)qe(t.geometry,e);else if(5===n)qe(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];qe(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function ur(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 lr(t){return null==t}function hr(t){return"number"==typeof t&&!isNaN(t)}function cr(t){return"object"==typeof t&&!!t}function fr(t){return!lr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function dr(t){return!lr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const pr=Object.prototype.hasOwnProperty;function yr(t,n){return pr.call(t,n)}const mr=Math.PI/180;function gr(t){return t&&d(t)&&t.property}function vr(t){const{verticalCentimeterToPoint:n,tileRatio:e}=t;return n*e}function br(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const wr={};function Mr(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=wr[n]=wr[n]||Cn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const xr={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,polygonPatternFileWidth:1,polygonPatternFileOrigin:1},Fr={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var Ar=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:ur,isNil:lr,isNumber:hr,isInteger:function(t){return(0|t)===t},isObject:cr,isString:fr,isFunction:dr,hasOwn:yr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*mr},toDegree:function(t){return t/mr},evaluate:function(t,n,e){return dr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:gr,getAltitudeToLocal:vr,getTubeSizeScale:br,normalizeColor:Mr,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!xr[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!!xr[t]||!!Fr[t]}});function kr(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 Pr(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 Sr(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function _r(t,n,e,r,i,s,o){n||0===n||(n=1);const a=Sr(t.properties,e,r),u=a*n;let l=(s?100*s:0)||a;return i?l=Sr(t.properties,i,s):o&&(l=a-Sr(t.properties,o,s)),l*=n,{altitude:u,height:l}}function Or(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function Er(t){return null==t}function Ir(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function $r(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 Cr{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.L(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.L(t,n)}L(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Tr(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),l=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=l,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const zr=Math.pow(2,14),Dr=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 jr,Ur,Nr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Lr={exports:{}};function Vr(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 */jr=Lr,Ur=Lr.exports,function(t){var n=Ur&&!Ur.nodeType&&Ur,e=jr&&!jr.nodeType&&jr,r="object"==typeof Nr&&Nr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,l=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,h={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(h[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(l,".")).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 g(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 v(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,l,h,f,p,y=[],m=t.length,v=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=v,a=1,u=36;i>=m&&d("invalid-input"),((l=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||l>c((o-v)/a))&&d("overflow"),v+=l*a,!(l<(h=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-h))&&d("overflow"),a*=f;M=b(v-s,n=y.length+1,0==s),c(v/n)>o-w&&d("overflow"),w+=c(v/n),v%=n,y.splice(v++,0,w)}return g(y)}function M(t){var n,e,r,i,s,a,u,l,h,p,y,g,w,M,x,F=[];for(g=(t=m(t)).length,n=128,e=0,s=72,a=0;a<g;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<g;){for(u=o,a=0;a<g;++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<g;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(l=e,h=36;!(l<(p=h<=s?1:h>=s+26?26:h-s));h+=36)F.push(f(v(p+(x=l-p)%(M=36-p),0))),l=c(x/M);F.push(f(v(l,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:g},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(jr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Nr);class Rr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var Hr=Rr;class Wr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Wr(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 qr=Wr;const Gr={kind:"null"},Br={kind:"number"},Jr={kind:"string"},Xr={kind:"boolean"},Yr={kind:"color"},Zr={kind:"object"},Kr={kind:"value"},Qr={kind:"collator"},ti={kind:"formatted"},ni={kind:"resolvedImage"};function ei(t,n){return{kind:"array",itemType:t,N:n}}function ri(t){if("array"===t.kind){const n=ri(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const ii=[Gr,Br,Jr,Xr,Yr,ti,Zr,ei(Kr),ni];function si(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!si(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 ii)if(!si(t,n))return null}return`Expected ${ri(t)} but found ${ri(n)} instead.`}function oi(t,n){return n.some(n=>n.kind===t.kind)}function ai(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 ui,li={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 hi(t){return(t=Math.round(t))<0?0:t>255?255:t}function ci(t){return hi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function fi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function di(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{ui={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in li)return li[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=fi(o.pop());case"rgb":return 3!==o.length?null:[ci(o[0]),ci(o[1]),ci(o[2]),a];case"hsla":if(4!==o.length)return null;a=fi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,l=fi(o[1]),h=fi(o[2]),c=h<=.5?h*(l+1):h+l-h*l,f=2*h-c;return[hi(255*di(f,c,u+1/3)),hi(255*di(f,c,u)),hi(255*di(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class pi{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 pi)return t;if("string"!=typeof t)return;const n=ui(t);return n?new pi(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]}}pi.black=new pi(0,0,0,1),pi.white=new pi(1,1,1,1),pi.transparent=new pi(0,0,0,0),pi.red=new pi(1,0,0,1),pi.blue=new pi(0,0,1,1);var yi=pi;class mi{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 gi{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 vi{constructor(t){this.sections=t}static fromString(t){return new vi([new gi(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 vi?t:vi.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 bi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new bi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function wi(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 Mi(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 yi)return!0;if(t instanceof mi)return!0;if(t instanceof vi)return!0;if(t instanceof bi)return!0;if(Array.isArray(t)){for(const n of t)if(!Mi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Mi(t[n]))return!1;return!0}return!1}function xi(t){if(null===t)return Gr;if("string"==typeof t)return Jr;if("boolean"==typeof t)return Xr;if("number"==typeof t)return Br;if(t instanceof yi)return Yr;if(t instanceof mi)return Qr;if(t instanceof vi)return ti;if(t instanceof bi)return ni;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=xi(n);if(e){if(e===t)continue;e=Kr;break}e=t}return ei(e||Kr,n)}return Zr}function Fi(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof yi||t instanceof vi||t instanceof bi?t.toString():JSON.stringify(t)}class Ai{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(!Mi(t[1]))return n.error("invalid value");const e=t[1];let r=xi(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 Ai(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 yi?["rgba"].concat(this.value.toArray()):this.value instanceof vi?this.value.serialize():this.value}}var ki=Ai,Pi=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Si={string:Jr,number:Br,boolean:Xr,object:Zr};class _i{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 Si)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Si[e],r++}else i=Kr;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=ei(i,s)}else e=Si[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,Kr);if(!e)return null;s.push(e)}return new _i(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!si(this.type,xi(e)))return e;if(n===this.args.length-1)throw new Pi(`Expected value to be of type ${ri(this.type)}, but found ${ri(xi(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 Oi=_i;class Ei{constructor(t){this.type=ti,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,Br),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ei(Jr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Yr),!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,Kr);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 Ei(r)}evaluate(t){return new vi(this.sections.map(n=>{const e=n.content.evaluate(t);return xi(e)===ni?new gi("",e,null,null,null):new gi(Fi(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 Ii{constructor(t){this.type=ni,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Jr);return e?new Ii(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=bi.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 $i={"to-boolean":Xr,"to-color":Yr,"to-number":Br,"to-string":Jr};class Ci{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=$i[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,Kr);if(!r)return null;i.push(r)}return new Ci(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 yi)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.`:wi(n[0],n[1],n[2],n[3]),!e))return new yi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new Pi(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 Pi(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?vi.fromString(Fi(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?bi.fromString(Fi(this.args[0].evaluate(t))):Fi(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 Ei([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new Ii(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ti=Ci;const zi=["Unknown","Point","LineString","Polygon"];var Di=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.V={},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?zi[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.V[t];return n||(n=this.V[t]=yi.parse(t)),n}};class ji{constructor(t,n,e,r){this.name=t,this.type=n,this.R=e,this.args=r}evaluate(t){return this.R(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=ji.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 ls(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 ji(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(ri).join(", ")})`:`(${ri(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(ri(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){ji.definitions=n;for(const e in n)t[e]=ji}}var Ui=ji;class Ni{constructor(t,n,e){this.type=Qr,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,Xr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Xr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Jr),!s)?null:new Ni(r,i,s)}evaluate(t){return new mi(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 Li(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 Vi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Ri(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 Hi(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 Wi(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(Hi(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 qi(t,n){for(let e=0;e<n.length;e++)if(Wi(t,n[e]))return!0;return!1}function Gi(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 Bi(t,n,e){for(const l of e)for(let e=0;e<l.length-1;++e)if(void 0,void 0,0!=(a=[(o=l[e+1])[0]-(s=l[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Gi(r,i,s,o)&&Gi(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Ji(t,n){for(let e=0;e<t.length;++e)if(!Wi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Bi(t[e],t[e+1],n))return!1;return!0}function Xi(t,n){for(let e=0;e<n.length;e++)if(Ji(t,n[e]))return!0;return!1}function Yi(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=Ri(t[i][r],e);Li(n,o),s.push(o)}r.push(s)}return r}function Zi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Yi(t[i],n,e);r.push(s)}return r}function Ki(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}Li(n,t)}function Qi(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]];Ki(r,n,e,i),o.push(r)}return o}function ts(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]];Li(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)Ki(r,n,e,i)}var a;return o}class ns{constructor(t,n){this.type=Xr,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(Mi(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 ns(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new ns(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new ns(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=Yi(n.coordinates,r,i),o=Qi(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Wi(t,s))return!1}if("MultiPolygon"===n.type){const s=Zi(n.coordinates,r,i),o=Qi(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!qi(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=Yi(n.coordinates,r,i),o=ts(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Ji(t,s))return!1}if("MultiPolygon"===n.type){const s=Zi(n.coordinates,r,i),o=ts(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Xi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var es=ns;function rs(t){if(t instanceof Ui){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 es)return!1;let n=!0;return t.eachChild(t=>{n&&!rs(t)&&(n=!1)}),n}function is(t){if(t instanceof Ui&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!is(t)&&(n=!1)}),n}function ss(t,n){if(t instanceof Ui&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!ss(t,n)&&(e=!1)}),e}class os{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 os(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 as=os;class us{constructor(t,n=[],e,r=new qr,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).H(t,i):this.H(t,i)}H(t,n){function e(t,n,e){return"assert"===e?new Oi(n,[t]):"coerce"===e?new Ti(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 ki)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof as)return t(n.boundExpression);if(n instanceof Ui&&"error"===n.name)return!1;if(n instanceof Ni)return!1;if(n instanceof es)return!1;const e=n instanceof Ti||n instanceof Oi;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof ki}),!!r&&(rs(n)&&ss(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Di;try{r=new ki(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 us(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new Hr(e,t))}checkSubtype(t,n){const e=si(t,n);return e&&this.error(e),e}}var ls=us;function hs(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 Pi("Input is not a number.");o=a-1}return 0}class cs{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,Br);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 l=n.parse(o,u,i);if(!l)return null;i=i||l.type,r.push([s,l])}return new cs(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[hs(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 fs=cs,ds=ps;function ps(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 ys(t,n,e){return t*(1-e)+n*e}ps.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 ms=Object.freeze({__proto__:null,number:ys,color:function(t,n,e){return new yi(ys(t.r,n.r,e),ys(t.g,n.g,e),ys(t.b,n.b,e),ys(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>ys(t,n[r],e))}});const gs=6/29*3*(6/29),vs=Math.PI/180,bs=180/Math.PI;function ws(t){return t>.008856451679035631?Math.pow(t,1/3):t/gs+4/29}function Ms(t){return t>6/29?t*t*t:gs*(t-4/29)}function xs(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Fs(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function As(t){const n=Fs(t.r),e=Fs(t.g),r=Fs(t.b),i=ws((.4124564*n+.3575761*e+.1804375*r)/.95047),s=ws((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-ws((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function ks(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*Ms(n),e=.95047*Ms(e),r=1.08883*Ms(r),new yi(xs(3.2404542*e-1.5371385*n-.4985314*r),xs(-.969266*e+1.8760108*n+.041556*r),xs(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function Ps(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Ss={forward:As,reverse:ks,interpolate:function(t,n,e){return{l:ys(t.l,n.l,e),a:ys(t.a,n.a,e),b:ys(t.b,n.b,e),alpha:ys(t.alpha,n.alpha,e)}}},_s={forward:function(t){const{l:n,a:e,b:r}=As(t),i=Math.atan2(r,e)*bs;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*vs,e=t.c;return ks({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:Ps(t.h,n.h,e),c:ys(t.c,n.c,e),l:ys(t.l,n.l,e),alpha:ys(t.alpha,n.alpha,e)}}};var Os=Object.freeze({__proto__:null,lab:Ss,hcl:_s});class Es{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=Is(n,t.base,e,r);else if("linear"===t.name)i=Is(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ds(s[0],s[1],s[2],s[3]).solve(Is(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,Br),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Yr: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 l=n.parse(r,u,a);if(!l)return null;a=a||l.type,o.push([e,l])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new Es(a,e,r,i,o):n.error(`Type ${ri(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=hs(n,r),o=Es.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?ms[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?_s.reverse(_s.interpolate(_s.forward(a),_s.forward(u),o)):Ss.reverse(Ss.interpolate(Ss.forward(a),Ss.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 Is(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 $s=Es;class Cs{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=>si(r,t.type));return new Cs(s?Kr: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 bi&&!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 Ts=Cs;class zs{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 zs(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 Ds=zs;class js{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,Br),r=n.parse(t[2],2,ei(n.expectedType||Kr));return e&&r?new js(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new Pi(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new Pi(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new Pi(`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 Us=js;class Ns{constructor(t,n){this.type=Xr,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,Kr),r=n.parse(t[2],2,Kr);return e&&r?oi(e.type,[Xr,Jr,Br,Gr,Kr])?new Ns(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${ri(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!ai(n,["boolean","string","number","null"]))throw new Pi(`Expected first argument to be of type boolean, string, number or null, but found ${ri(xi(n))} instead.`);if(!ai(e,["string","array"]))throw new Pi(`Expected second argument to be of type array or string, but found ${ri(xi(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 Ls=Ns;class Vs{constructor(t,n,e){this.type=Br,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,Kr),r=n.parse(t[2],2,Kr);if(!e||!r)return null;if(!oi(e.type,[Xr,Jr,Br,Gr,Kr]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${ri(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Br);return i?new Vs(e,r,i):null}return new Vs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!ai(n,["boolean","string","number","null"]))throw new Pi(`Expected first argument to be of type boolean, string, number or null, but found ${ri(xi(n))} instead.`);if(!ai(e,["string","array"]))throw new Pi(`Expected second argument to be of type array or string, but found ${ri(xi(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 Rs=Vs;class Hs{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 l=n.concat(o);if(0===a.length)return l.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return l.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return l.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return l.error("Numeric branch labels must be integer values.");if(e){if(l.checkSubtype(e,xi(t)))return null}else e=xi(t);if(void 0!==i[String(t)])return l.error("Branch labels must be unique.");i[String(t)]=s.length}const h=n.parse(u,o,r);if(!h)return null;r=r||h.type,s.push(h)}const o=n.parse(t[1],1,Kr);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 Hs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(xi(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 Ws=Hs;class qs{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,Xr);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 qs(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 Gs=qs;class Bs{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,Kr),r=n.parse(t[2],2,Br);if(!e||!r)return null;if(!oi(e.type,[ei(Kr),Jr,Kr]))return n.error(`Expected first argument to be of type array or string, but found ${ri(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Br);return i?new Bs(e.type,e,r,i):null}return new Bs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!ai(n,["string","array"]))throw new Pi(`Expected first argument to be of type array or string, but found ${ri(xi(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 Js=Bs;function Xs(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 Ys(t,n,e,r){return 0===r.compare(n,e)}function Zs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Xr,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,Kr);if(!s)return null;if(!Xs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${ri(s.type)}\'.`);let o=n.parse(t[2],2,Kr);if(!o)return null;if(!Xs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${ri(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${ri(s.type)}\' and \'${ri(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Oi(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Oi(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,Qr),!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=xi(s),e=xi(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new Pi(`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=xi(s),e=xi(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 Ks=Zs("==",(function(t,n,e){return n===e}),Ys),Qs=Zs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ys(0,n,e,r)})),to=Zs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),no=Zs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),eo=Zs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),ro=Zs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class io{constructor(t,n,e,r,i,s){this.type=Jr,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,Br);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,Jr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Jr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Jr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Br),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Br),!u)?null:new io(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 so{constructor(t){this.type=Br,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 ${ri(e.type)} instead.`):new so(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 Pi(`Expected value to be of type string or array, but found ${ri(xi(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const oo={"==":Ks,"!=":Qs,">":no,"<":to,">=":ro,"<=":eo,array:Oi,at:Us,boolean:Oi,case:Gs,coalesce:Ts,collator:Ni,format:Ei,image:Ii,in:Ls,"index-of":Rs,interpolate:$s,"interpolate-hcl":$s,"interpolate-lab":$s,length:so,let:Ds,literal:ki,match:Ws,number:Oi,"number-format":io,object:Oi,slice:Js,step:fs,string:Oi,"to-boolean":Ti,"to-color":Ti,"to-number":Ti,"to-string":Ti,var:as,within:es};function ao(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=wi(n,e,r,s);if(o)throw new Pi(o);return new yi(n/255*s,e/255*s,r/255*s,s)}function uo(t,n){return t in n}function lo(t,n){const e=n[t];return void 0===e?null:e}function ho(t){return{type:t}}Ui.register(oo,{error:[{kind:"error"},[Jr],(t,[n])=>{throw new Pi(n.evaluate(t))}],typeof:[Jr,[Kr],(t,[n])=>ri(xi(n.evaluate(t)))],"to-rgba":[ei(Br,4),[Yr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Yr,[Br,Br,Br],ao],rgba:[Yr,[Br,Br,Br,Br],ao],has:{type:Xr,overloads:[[[Jr],(t,[n])=>uo(n.evaluate(t),t.properties())],[[Jr,Zr],(t,[n,e])=>uo(n.evaluate(t),e.evaluate(t))]]},get:{type:Kr,overloads:[[[Jr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Jr,Zr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},"feature-state":[Kr,[Jr],(t,[n])=>lo(n.evaluate(t),t.featureState||{})],properties:[Zr,[],t=>t.properties()],"geometry-type":[Jr,[],t=>t.geometryType()],id:[Kr,[],t=>t.id()],zoom:[Br,[],t=>t.globals.zoom],pitch:[Br,[],t=>t.globals.pitch||0],"distance-from-center":[Br,[],t=>t.distanceFromCenter()],"heatmap-density":[Br,[],t=>t.globals.heatmapDensity||0],"line-progress":[Br,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Br,[],t=>t.globals.skyRadialProgress||0],accumulated:[Kr,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Br,ho(Br),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Br,ho(Br),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Br,overloads:[[[Br,Br],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Br],(t,[n])=>-n.evaluate(t)]]},"/":[Br,[Br,Br],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Br,[Br,Br],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Br,[],()=>Math.LN2],pi:[Br,[],()=>Math.PI],e:[Br,[],()=>Math.E],"^":[Br,[Br,Br],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Br,[Br],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))],log2:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Br,[Br],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Br,[Br],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Br,[Br],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Br,[Br],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Br,[Br],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Br,[Br],(t,[n])=>Math.atan(n.evaluate(t))],min:[Br,ho(Br),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Br,ho(Br),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Br,[Br],(t,[n])=>Math.abs(n.evaluate(t))],round:[Br,[Br],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Br,[Br],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Br,[Br],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Xr,[Jr,Kr],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Xr,[Kr],(t,[n])=>t.id()===n.value],"filter-type-==":[Xr,[Jr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Xr,[Kr],(t,[n])=>n.value in t.properties()],"filter-has-id":[Xr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Xr,[ei(Jr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Xr,[ei(Kr)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Xr,[Jr,ei(Kr)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Xr,[Jr,ei(Kr)],(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:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[ho(Xr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[ho(Xr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Xr,[Xr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Xr,[Jr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Jr,[Jr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Jr,[Jr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Jr,ho(Kr),(t,n)=>n.map(n=>Fi(n.evaluate(t))).join("")],"resolved-locale":[Jr,[Qr],(t,[n])=>n.evaluate(t).resolvedLocale()]});var co=oo;function fo(t){return{result:"success",value:t}}function po(t){return{result:"error",value:t}}function yo(t){return!!t.expression&&t.expression.interpolated}function mo(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function go(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function vo(t){return t}function bo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function wo(t,n,e,r,i){return bo(typeof e===i?r[e]:void 0,t.default,n.default)}function Mo(t,n,e){if("number"!==mo(e))return bo(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=hs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function xo(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==mo(e))return bo(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=hs(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 l=ms[n.type]||vo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Os[t.colorSpace];l=(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 l(n,e,o)}}:l(a,u,o)}function Fo(t,n,e){return"color"===n.type?e=yi.parse(e):"formatted"===n.type?e=vi.fromString(e.toString()):"resolvedImage"===n.type?e=bi.fromString(e.toString()):mo(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),bo(e,t.default,n.default)}class Ao{constructor(t,n){this.expression=t,this.W={},this.q=new Di,this.G=n?function(t){return"color"===t.type&&(go(t.default)||Array.isArray(t.default))?new yi(0,0,0,0):"color"===t.type?yi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.B=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.q.globals=t,this.q.feature=n,this.q.featureState=e,this.q.canonical=r||null,this.q.availableImages=i||null,this.q.formattedSection=s,this.q.featureTileCoord=o||null,this.q.featureDistanceData=a||null,this.expression.evaluate(this.q)}evaluate(t,n,e,r,i,s,o,a){this.q.globals=t,this.q.feature=n||null,this.q.featureState=e||null,this.q.canonical=r||null,this.q.availableImages=i||null,this.q.formattedSection=s||null,this.q.featureTileCoord=o||null,this.q.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.q);if(null==t||"number"==typeof t&&t!=t)return this.G;if(this.B&&!(t in this.B))throw new Pi(`Expected value to be one of ${Object.keys(this.B).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.W[t.message]||(this.W[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.G}}}function ko(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in co}function Po(t,n){const e=new ls(co,[],n?function(t){const n={color:Yr,string:Jr,number:Br,enum:Jr,boolean:Xr,formatted:ti,resolvedImage:ni};return"array"===t.type?ei(n[t.value]||Kr,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?fo(new Ao(r,n)):po(e.errors)}class So{constructor(t,n){this.kind=t,this.J=n,this.isStateDependent="constant"!==t&&!is(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.J.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.J.evaluate(t,n,e,r,i,s)}}class _o{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.J=n,this.isStateDependent="camera"!==t&&!is(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.J.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.J.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?$s.interpolationFactor(this.interpolationType,t,n,e):0}}function Oo(t,n){if("error"===(t=Po(t,n)).result)return t;const e=t.value.expression,r=rs(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return po([new Hr("","data expressions not supported")]);const i=ss(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return po([new Hr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Ds)e=t(n.result);else if(n instanceof Ts){for(const r of n.args)if(e=t(r),e)break}else(n instanceof fs||n instanceof $s)&&n.input instanceof Ui&&"zoom"===n.input.name&&(e=n);return e instanceof Hr||n.eachChild(n=>{const r=t(n);r instanceof Hr?e=r:!e&&r?e=new Hr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new Hr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return po([new Hr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof Hr)return po([s]);if(s instanceof $s&&!yo(n))return po([new Hr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return fo(new So(r?"constant":"source",t.value));const o=s instanceof $s?s.interpolation:void 0;return fo(new _o(r?"camera":"composite",t.value,s.labels,o))}class Eo{constructor(t,n){this.X=t,this.Y=n,Vr(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||(yo(e)?"exponential":"interval");if(r&&((n=Vr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],yi.parse(t[1])])),n.default=yi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Os[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,l;if("exponential"===o)a=xo;else if("interval"===o)a=Mo;else if("categorical"===o){a=wo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];l=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=Fo}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:$s.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>xo({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:$s.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,l)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?bo(n.default,e.default):a(n,e,i,u,l)}}}(this.X,this.Y))}static deserialize(t){return new Eo(t.X,t.Y)}static serialize(t){return{X:t.X,Y:t.Y}}}function Io(t){if(Array.isArray(t))return t.map(Io);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=Io(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function $o(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($o(t[n]))return!0;return!1}const Co=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),To={StyleExpression:Ao,isExpression:ko,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:Po,createPropertyExpression:Oo,normalizePropertyExpression:function(t,n){if(go(t))return new Eo(t,n);if(ko(t)){const e=Oo(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=yi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:So,ZoomDependentExpression:_o,StylePropertyFunction:Eo},{isExpression:zo,createExpression:Do}=To,jo={};function Uo(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(Uo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Uo(t.condition);if(lr(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 zn(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(!$o(t))return t;let n=Io(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||$o(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||$o(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||$o(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(Co.has(t[0]))for(let n=1;n<t.length;n++)if($o(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=Po(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=Po(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=!rs(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)=>(jo.zoom=e,n&&n(jo,t))}}const No={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Lo(t,n){No.type=n||"number";const e=Do(t,No);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Vo(t){return zo(t)}const Ro={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 Ho(t){return Ro[t]}const Wo={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},qo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Go(t){return Wo[t]?"string":Ho(t)?"number":qo[t]?"array":"color"}var Bo=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}:Uo(n[t].filter),e.push(ur({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=ur({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Uo,createExpression:Lo,isExpression:Vo,isInterpolated:Ho,getExpressionType:Go});const Jo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Xo extends Array{pushIn(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Z++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Z&&(this.Z=e)}set(t,n){t>=this.Z&&(this.Z=t+1),this[t]=n}getLength(){return this.Z}setLength(t){this.Z=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Z&&this.setLength(t)}reset(){this.Z=0}}const Yo={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Zo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}getLength(){return super.length}}let Ko;class Qo{static createTypedArray(t,n){return or(t,n)}static getInstance(){return Ko}static getArray(){const t=new Xo,n=new Proxy(t,Yo);return n.push=(...n)=>{t.pushIn(...n)},n.U=t,n}constructor(){this.K=[],this.Z=0}get(){if(!Jo)return new Zo;const t=this.K[this.Z]=this.K[this.Z]||Qo.getArray();return t.reset(),this.Z++,t}reset(){this.Z=0}}Ko=new Qo;const ta=[],na={},ea={},ra={},ia=[],sa=Qo.getInstance(),oa=Math.pow(2,17);class aa{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(Vo(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Go(e);n[r]=Lo(t[e],s),n[i]=(t,e)=>{let i;na.zoom=t,ea.properties=e;try{i=n[r].evaluateWithoutErrorHandling(na,ea,ra,null,ia)}catch(t){return null}return i}}else if(gr(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();Ho(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return gr(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return gr(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.tt=e.fnTypes||aa.genFnTypes(this.symbolDef),gr(this.symbolDef.visible)&&(this.nt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.et(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=oa||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){n<this.rt&&(this.rt=n),n>this.it&&(this.it=n),e<this.st&&(this.st=e),e>this.ot&&(this.ot=e),this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Tr(ta,n,e,r),t.aPosition.push(ta[0],ta[1],ta[2]))}et(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=ur({},t[n]);e.push(ar(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=Ve(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.tt;!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(Uo(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.tt,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},l=[],h=m(this.symbolDef,()=>(l[0]=u.zoom,l));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(hr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const l=this.createStyledVector(t,h,r,u,o,a);l&&l.feature.geometry&&(l.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(l))}}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 Ze({width:r,height:i},s)}this.iconAtlas=new Qe(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 Ye({width:r,height:i},s)}}this.glyphAtlas=new er(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=ua(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=ua(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Cr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.rt=this.st=1/0,this.it=this.ot=-1/0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.ut=sa,sa.reset();let r=this.elements=sa.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]=sa.get();let o=sa.get(),a=0;const u=sa.get();let l=0,h=!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!==ea.id?f&&(f.has(ea.id)?c=!1:f.add(ea.id)):c=!1),hr(i)&&(Math.abs(i)>l&&(l=Math.abs(i)),i<0&&(h=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.lt(t[r][e],n);else this.lt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),hr(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=this.options.center?Float32Array:sr(a);o=Qo.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:ir(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]:or(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const g=rr(this.maxIndex);r=Qo.createTypedArray(r,g),m.push(r.buffer);const v={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,positionBounding:[this.rt,this.st,this.it,this.ot],buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.ht&&(v.markerPlacement=this.ht),this.ct&&(v.textPlacement=this.ct),u.length){const t=h?ir(l):sr(l);v.featureIds=Qo.createTypedArray(u,t),m.push(v.featureIds.buffer)}else v.featureIds=[];return v.pickingIdIndiceMap=$r(o,v.indices),v}lt(t,n){this.nt&&!this.nt(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=Sr(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(yr(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 ua(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof Qe){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 ha(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(lr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=dr(s)?s(r,e):s,d(o[0])){const n=o[0].ft=o[0].ft||JSON.stringify(o[0]);t.dt||(t.dt={}),t.dt[n]||(t.dt[n]=p(o[0])),o[0]=(0,t.dt[n])(r,e)}return o[1]=o[0],o}function ca(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];cr(n[t][1])&&(r=ca(n[t][1])),r>e&&(e=r)}return e}function fa(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const da=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function pa(t,n){return fr(t)?t.replace(da,(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(!lr(r))return r}return""}const e=n[t];return lr(e)?"":Array.isArray(e)?e.join():e})):t}var ya=Object.freeze({__proto__:null,getSDFFont:fa,resolveText:pa,resolveVarNames:function(t){return t.match(da)},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 ma=t=>t>=11904&&t<=12031,ga=t=>t>=12032&&t<=12255,va=t=>t>=12272&&t<=12287,ba=t=>t>=12288&&t<=12351,wa=t=>t>=12352&&t<=12447,Ma=t=>t>=12448&&t<=12543,xa=t=>t>=12544&&t<=12591,Fa=t=>t>=12704&&t<=12735,Aa=t=>t>=12736&&t<=12783,ka=t=>t>=12784&&t<=12799,Pa=t=>t>=12800&&t<=13055,Sa=t=>t>=13056&&t<=13311,_a=t=>t>=13312&&t<=19903,Oa=t=>t>=19968&&t<=40959,Ea=t=>t>=40960&&t<=42127,Ia=t=>t>=42128&&t<=42191,$a=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,za=t=>t>=65072&&t<=65103,Da=t=>t>=65104&&t<=65135,ja=t=>t>=65136&&t<=65279,Ua=t=>t>=65280&&t<=65519;function Na(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||ja(t))}function La(t){return!!(746===t||747===t||!(t<4352)&&(Fa(t)||xa(t)||za(t)&&!(t>=65097&&t<=65103)||$a(t)||Sa(t)||ma(t)||Aa(t)||!(!ba(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||_a(t)||Oa(t)||Pa(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)||wa(t)||va(t)||(t=>t>=12688&&t<=12703)(t)||ga(t)||ka(t)||Ma(t)&&12540!==t||!(!Ua(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)||!(!Da(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)||Ea(t)||Ia(t)))}function Va(t){return!(La(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)||ba(t)||Ma(t)||(t=>t>=57344&&t<=63743)(t)||za(t)||Da(t)||Ua(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ra(t){return t>=1424&&t<=2303||Ca(t)||ja(t)}const Ha=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function Wa(t){for(const n of Ha)if(t>=n[0]&&t<=n[1])return!0;return!1}const qa={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",pt:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ga(t,n,e,r,i,s,o,a,u,l){let h=t.trim();2===l&&(h=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&&Va(r)&&!qa[t[e+1]]||i&&Va(i)&&!qa[t[e-1]]||!qa[t[e]]?t[e]:qa[t[e]]}return n}(h));const c=[],f={positionedGlyphs:c,text:h,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:l};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}(h,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),l=r[u];l&&!Ba[u]&&(o+=l.metrics.advance+n),e<t.length-1&&(Ja[u]||!((a=u)<11904)&&(Fa(a)||xa(a)||za(a)||$a(a)||Sa(a)||ma(a)||Aa(a)||ba(a)||_a(a)||Oa(a)||Pa(a)||Ua(a)||wa(a)||va(a)||ga(a)||ka(a)||Ma(a)||Ta(a)||Ia(a)||Ea(a)))&&i.push(Za(e+1,o,s,i,Ya(u,t.charCodeAt(e+1)),!1))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Za(t.length,o,s,i,0,!0))}(h,o,e,n)),function(t,n,e,r,i,s,o,a,u,l){let h=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&&(La(e)&&1!==o?(32!==e&&d.push({glyph:e,x:h,y:0,vertical:!0}),h+=u+a):(32!==e&&d.push({glyph:e,x:h,y:c,vertical:!1}),h+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(h-a,f),Qa(d,n,s,d.length-1,p)),h=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Ka(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 g=e.length*r;t.top+=-m*g,t.bottom=t.top+g,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,l,o,u),!!c.length&&f}const Ba={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Ja={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 Xa(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 Ya(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Za(t,n,e,r,i,s){let o=null,a=Xa(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],l=Xa(n-u.x,e,i,s)+u.badness;l<=a&&(o=u,a=l)}return{index:t,x:n,priorBreak:o,badness:a}}function Ka(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 Qa(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 tu(t){if(!function(t){for(const n of t)if(Ra(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);Wa(t)?(r.push(u),i++):(o=Ra(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 nu=/\\{ *([\\w_]+) *\\}/g;class eu{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.yt=this.gt.bind(this),this.tt=r}gt(t,n){return this.feature.properties[n]||"default"}getShape(t,n){if(this.vt)return this.vt;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.tt;let a;const u=this.symbol,l=this.getIconAndGlyph(),h=this.feature.properties;if(l&&l.glyph){const{font:t,text:i}=l.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=ru(e?e(null,h):u.textHorizontalAlignment,r?r(null,h):u.textVerticalAlignment),m=1.2*c,g=function(t){for(let n=0;n<t.length;n++)if(!Na(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),v=g&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,h):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ga(i,p,w,m,y,"center",v,b,c,1),g&&d&&f&&(a.vertical=Ga(i,p,w,m,y,"center",v,b,c,2))}else if(l&&l.icon){if(!t.positions[l.icon.url])return null;const n=ru(i?i(null,h):u.markerHorizontalAlignment,s?s(null,h):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Ka(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[l.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.vt=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:l,markerLineColorFn:h,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:g,markerPathHeightFn:v,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.tt,{zoom:F}=this.options,A={},k=this.symbol,P=this.feature.properties,S=t?t(null,P):k.markerFile,_=n?n(null,P):k.markerType,O=S||_||k.markerPath,E=!lr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(lr(n.markerWidth)&&lr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,l=n.markerHeight||0;return cr(u)&&("identity"!==u.type?u=ca(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),cr(u)&&(u="identity"===u.type?i(r,e):ca(u)))),cr(l)&&("identity"!==l.type?l=ca(l):(l=t.markerHeight,t[a]&&(l=t[a](r,e)),cr(l)&&(l="identity"===l.type?s(r,e):ca(l)))),[u,l]}(k,this.symbolDef,P,F,r,i)||[0,0];let t=k.markerTextFit;if(u&&(t=u(F,P)),t&&k.text&&"none"!==t){const n=k.text.textSize;let e=k.text.textName;d(e)&&(e=p(e)(F,P));const r=pa(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!k.text[e]&&(k.text[i]=p(n),k.text[e]=(t,n)=>{const e=k.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ha(k.text,k.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=k.markerTextFitPadding||[0,0,0,0];l&&(t=l(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ha(k,this.symbolDef,P,F)),!I)return A;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):k.markerPath,n.markerPathWidth=g?g(null,P):k.markerPathWidth,n.markerPathHeight=v?v(null,P):k.markerPathHeight),r){const t=r(null,P);lr(t)||(n.markerWidth=t)}else k.markerWidth>=0&&(n.markerWidth=k.markerWidth);if(i){const t=i(null,P);lr(t)||(n.markerHeight=t)}else k.markerHeight>=0&&(n.markerHeight=k.markerHeight);if(s){const t=s(null,P);lr(t)||(n.markerFill=t)}else k.markerFill&&(n.markerFill=k.markerFill);if(o){const t=o(null,P);lr(t)||(n.markerFillPatternFile=t)}else k.markerFillPatternFile&&(n.markerFillPatternFile=k.markerFillPatternFile);if(a){const t=a(null,P);lr(t)||(n.markerFillOpacity=t)}else k.markerFillOpacity>=0&&(n.markerFillOpacity=k.markerFillOpacity);if(h){const t=h(null,P);lr(t)||(n.markerLineColor=t)}else k.markerLineColor&&(n.markerLineColor=k.markerLineColor);if(c){const t=c(null,P);lr(t)||(n.markerLineWidth=t)}else k.markerLineWidth>=0&&(n.markerLineWidth=k.markerLineWidth);if(f){const t=f(null,P);lr(t)||(n.markerLineOpacity=t)}else k.markerLineOpacity>=0&&(n.markerLineOpacity=k.markerLineOpacity);if(y){const t=y(null,P);lr(t)||(n.markerLineDasharray=t)}else k.markerLineDasharray&&(n.markerLineDasharray=k.markerLineDasharray);if(m){const t=m(null,P);lr(t)||(n.markerLinePatternFile=t)}else k.markerLinePatternFile&&(n.markerLinePatternFile=k.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(nu,this.yt):k.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);hr(t.markerOpacity)&&(r=t.markerOpacity),hr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)yr(i.stroke,t)&&(lr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)yr(i.fill,t)&&(lr(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=fr(o[t])?{path:o[t]}:o[t],a=ur({},a,s),a.d=a.path,delete a.path,u.push(a);const l=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&l.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&l.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),l.push(\'preserveAspectRatio="none"\'),n&&l.push(\'width="\'+n+\'"\'),e&&l.push(\'height="\'+e+\'"\'),l.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])yr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",l.push(n)}return l.push("</svg>"),"data:image/svg+xml;base64,"+btoa(l.join(" "))}(k,I[0],I[1]):null;A.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):k.textName;if(t||0===t){const n=fa(w?w(null,P):k.textFaceName,M?M(null,P):k.textStyle,x?x(null,P):k.textWeight);let e=pa(t,P);e&&e.length&&(e=tu(e),A.glyph={font:n,text:e})}}return this.iconGlyph=A,A}}function ru(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 iu(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let l,h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!0),l&&a.equals(l[l.length-1])||(l=[a],s.push(l)),h&&(l.clipped=!0),l.push(c)))))}}return s}class su extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new su(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 ou(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 l=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}),l+=s;a-u[0].distance>r;)l-=u.shift().angleDelta;if(l>i)return!1;o++,a+=n.dist(e)}return!0}function au(t,n,e,r,i,s,o,a,u,l,h){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,l,h,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,g=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),v=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=uu(e.x,a.x,b),M=uu(e.y,a.y,b),x=uu(e.z||0,a.z||0,b);if(w>=0&&w<l&&M>=0&&M<l&&m-d>=0&&m+d<=p){const r=new su(w,M,v,t);r.z=x,h&&(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||ou(n,r,o,i,s)?g.push(r):i&&f++}}y+=u}return u||g.length||a||(g=t(n,y/2,r,i,s,o,a,!0,l,h,c)),g.countOutOfAngle=f,g}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,l,h)}function uu(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=kr(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,hu),r[t]=r[t].slice(0,n));return r}function hu(t,n){return n.area-t.area}function cu(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).k(i).m(n))}function fu(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 l=u/2;const h=new Bn([],du);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)h.push(new pu(n+l,e+l,l,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 pu(e/n,r/n,0,t)}(t),f=h.length;for(;h.length;){const r=h.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||(l=r.h/2,h.push(new pu(r.p.x-l,r.p.y-l,l,t)),h.push(new pu(r.p.x+l,r.p.y-l,l,t)),h.push(new pu(r.p.x-l,r.p.y+l,l,t)),h.push(new pu(r.p.x+l,r.p.y+l,l,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function du(t,n){return n.max-t.max}function pu(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,cu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function yu(t,n,e,r,i,s,o,a,u,l){const{feature:h,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=h.geometry;s&&(i=iu(h.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const h=au(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,l);if(f.textPlacement&&!f.isIconText)for(let t=0;t<h.length;t++)h[t].startIndex=n.length/3;if(t.push.apply(t,h),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+=h.countOutOfAngle||0}return t}return mu(h,o,s)}function mu(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++)Or(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]&&!Or(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]&&!Or(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!Or(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=fu(a,16);Or(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++)Or(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||Or(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!Or(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 Or(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];Or(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 vu(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 l(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let h=0;h<t.length;h++){const c=t[h],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(h);continue}const p=l(d,f),y=l(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[l(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(h),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class bu extends aa{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=aa.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!(Er(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 l=[],h={},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||Er(d)?c.push(t[o]):(void 0===h[d]&&(h[d]=l.length,l.push({features:[],property:d})),l[h[d]].features.push(t[o]))}return c.length&&l.push({features:c}),l}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?vu(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(...bu.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.bt=n.textPlacement,this.tt.textPlacementFn&&(this.bt=this.tt.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new eu(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.bt&&(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.wt()):e.push(...this.Mt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:l,textRotationFn:h,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.tt;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"}),(l||h)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}xt(){return this.hasMapPitchAlign}wt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.tt,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}Mt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.tt,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.Ft(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,l="line"===this.bt&&!a.isIconText,h=void 0!==a.textName,c=h&&l&&function(t){let n=0;for(let e=0;e<t.length;e++)if(La(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:g,textDxFn:v,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:A,textOpacityFn:k,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:C,markerIgnorePlacementFn:T,markerOpacityFn:z}=this.tt;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(h){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 l=4,h=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+h,0]:[0,0],d=n?[0,o.y-c]:[o.x+h,o.y-c],p=a.metrics.left-l-h+d[0],y=a.metrics.top-l+d[1],m=p+u.w,g=y+u.h,v=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,g),M=new Ut(m,g);if(n&&o.vertical){const t=new Ut(-h,h),n=-Math.PI/2,e=new Ut(5,0);v._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:v,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,l,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Mr([],j)),p&&(U=p(this.options.zoom,u),Er(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Mr([],N)),m&&(L=m(null,u)),g&&(V=255*g(null,u)),v&&(R=v(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=Ir(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,l;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),l=new Ut(r,i),[{tl:o,tr:a,bl:l,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)),Er(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),Er(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=Ir($(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=C||F;Q&&(Z=Q(null,u)||0);const tt=T||A;let nt;tt&&(K=tt(null,u)||0);const et=k||z;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}=_r(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&&Or(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.At(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*d.x,10*d.y,y.x,y.y),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(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)}}}At(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}kt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.xt()&&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)}}Pt(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p,y,m,g){const{textFillFn:v,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:A,textPitchAlignmentFn:k,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:C,markerDyFn:T,markerPitchAlignmentFn:z,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.tt;v&&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),A&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(l),C&&t.aMarkerDx.push(h),T&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(k||z)&&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)+g)),i>0&&(this.properties.hasHalo=1)}Ft(t,n,e){const{feature:r,symbol:i}=t,s=this.St(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:l}=this.tt,h=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=l?l(this.options.zoom,o):i.textMaxAngle;Er(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.xt();return yu(t,this.lineVertex,c,n,e,f,s,h,p,d)}St(t,n){let e;return e=this.tt.markerPlacementFn?this.tt.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.bt,this.ht||!n.markerPlacement&&!n.isIconText||(this.ht=e),!this.bt||n.isIconText||this.ct||(this.ct=e),e}getPackSDFFormat(t){if("line"!==this.bt||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.xt()&&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 wu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new wu(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().k(t)}k(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 Mu=Math.cos(Math.PI/180*37.5),xu=Math.pow(2,16)/1,Fu=new Ut,Au=new Ut,ku=new Ut;class Pu extends aa{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.tt;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=Ou(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Cr(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.tt,l=[...this.getPositionFormat()];if(l.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),l.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&l.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&l.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&l.push({type:Uint8Array,width:4,name:"aColor"}),e&&l.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&l.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&l.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&l.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();l.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&l.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&l.push({type:Int8Array,width:2,name:"aLinePattern"}),l}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:l,lineDyFn:h,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.tt,p=this.symbol,y=t.feature,m=y.properties;let g=p.lineJoin||"miter",v=p.lineCap||"butt";if(n&&(g=n(this.options.zoom,m)||"miter"),e&&(v=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),lr(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),lr(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),lr(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=Mr([],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=Mr([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),lr(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=Mr([],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(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),lr(t)&&(t=0),this.feaLineDx=t}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),lr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),lr(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),lr(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=iu(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._t(w[t],y,g,v,2,1.05)}Ot(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}_t(t,n,e,r,i,s){const o=this.Ot()||Ou(this.feaDash)||Ou(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new wu(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&&hr(n.properties.mapbox_clip_start)&&hr(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 l=3===n.type&&!t.clipped;let h=t.length;for(;h>=2&&Cu(t[h-1],t[h-2]);)h--;let c=0;for(;c<h-1&&Cu(t[c],t[c+1]);)c++;if(h<(l?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,g,v;this.e1=this.e2=-1,l&&(p=t[h-2],v=t[c].sub(p).I().C());for(let n=c;n<h;n++){if(m=n===h-1?l?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;v&&(g=v),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),v=m?m.sub(p).I().C():g,d.dir=y?p.sub(y).I():m.sub(p).I(),g=g||v,d.currentNormal=g;let u=g.add(v);0===u.x&&0===u.y||u.I();const b=g.x*v.x+g.y*v.y,w=u.x*v.x+u.y*v.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<Mu&&y&&m,A=g.x*v.y-g.y*v.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).k(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,g,0,0,d),y=n}}const k=y&&m;d.middleVertex=k;let P=k?e:l?"butt":r;if(k&&"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,g,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,v,0,0,d)):(u.k(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=v,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=v.mult(-1);else{const t=M*g.add(v).mag()/g.sub(v).mag();u.C().k(t*(A?-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=A?t:0,e=A?0:t;if(y&&this.addCurrentVertex(p,g,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=v.sub(g).k(e).m(g).I().k(A?-1:1);this.addHalfVertex(p,r.x,r.y,!1,A,0,d)}}m&&(d.currentNormal=v,this.addCurrentVertex(p,v,-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,g,0,0,d),this.addCurrentVertex(p,g,1,1,d,!0)),m&&(this.addCurrentVertex(p,v,-1,-1,d,!0),this.addCurrentVertex(p,v,0,0,d)));if(!a&&F&&n<h-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).k(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,v,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,l=-n.y-n.x*r;let h=0,c=0;if(i.middleVertex){Fu.x=o,Fu.y=a,Au.x=u,Au.y=l;const t=i.currentNormal;if(h=$u(t,Fu),0===e&&0===r)c=-h;else{const n=ku;n.x=t.x,n.y=t.y,n.k(-1),c=$u(n,Au)}}this.addHalfVertex(t,o,a,s,!1,e,i,h),this.addHalfVertex(t,u,l,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>xu/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,l){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,l);const h=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,h),u.primitiveLength++),o?this.e2=h:this.e1=h}fillData(t,n,e,r,i,s,o,a,u,l){const{lineWidthFn:h,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:g,linePatternGapFn:v}=this.tt;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*l),t.aLinesofar.push(u),h&&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),(g||v)&&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)}Et(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(_u(this.data.aPosition,e[r],e[r+1],3,n)||_u(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}It(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=Su(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=vr(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)*(xu-1):this.distance}}function Su(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 _u(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 Ou(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Eu=new Ut(0,0),Iu=new Ut(0,0);function $u(t,n){const e=t.mag(),r=n.mag();Eu.x=n.x,Eu.y=n.y;const i=t.angleTo(Iu),s=n.angleTo(Iu);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 Pu{constructor(t,n,e){super(t,n,e),this.$t=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.tt,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.$t&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.$t){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=_r(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}_t(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super._t(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 l=!1!==this.options.top,h=!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.Ct(t,n,e,i,s,o,a,u,p,y,f,d),h&&(l&&this.Ct(t,n,e,i,s,o,a,u,p,y,f,d),this.Ct(t,n,e,i,s,o,a,u,p,y,f,d),this.Tt(t,n,e,i,s,o,a,u,p,y,f,d),this.Tt(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}Ct(t,n,e,r,i,s,o,a,u,l,h,c){const{lineColorFn:f,lineWidthFn:d}=this.tt;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,l,1),t.aExtrude.push(h,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.$t&&t.aLineHeight.push(this.feaAltitude)}Tt(t,n,e,r,i,s,o,a,u,l,h,c){const{lineColorFn:f,lineWidthFn:d}=this.tt;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,l,1),t.aExtrude.push(h,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.$t&&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:l,aColor:h,aLineHeight:c,aLineWidth:f}=r,d={},p=ne(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=l,h&&(d.aColor=h),f&&(d.aLineWidth=f),c){const t=ir(this.maxAltitude);d.aLineHeight=new t(c)}const g=[];for(const t in d)g.push(d[t].buffer);return e.data=d,e.buffers=g,e}}const zu=Math.pow(2,16)/1;class Du extends aa{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._t(r[t],n),e&&(this.Et(i),this.elements=[]);e&&(this.elements=i)}_t(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>zu&&(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)}Et(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)Pr(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const ju=45*Math.PI/100;class Uu extends aa{getFormat(){const{markerFillFn:t}=this.tt;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.tt;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=Mr([],r));const i="line"===this.symbol.markerRotationAlignment,s=this.Ft(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)}}Ft(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=iu(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=au(e[r],n,ju,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return mu(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 Nu=[],Lu=[];function Vu(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Hu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Hu(a=t[o],n)&r))!==s){const t=Ru(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 Ru(t,n,e,r){return Nu[0]=void 0===t.x?t[0]:t.x,Nu[1]=void 0===t.y?t[1]:t.y,t=Nu,Lu[0]=void 0===n.x?n[0]:n.x,Lu[1]=void 0===n.y?n[1]:n.y,n=Lu,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 Hu(t,n){Nu[0]=void 0===t.x?t[0]:t.x,Nu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Nu)[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 Wu=[0,0,0,0];class qu extends aa{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Cr(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,polygonPatternUVFn:s}=this.tt;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"}),s&&t.push({type:Float32Array,width:2,name:"aTexCoord"}),t}placeVector(t,n){const e=t.feature;this.zt(e.geometry,e,n)}zt(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:l,uvOffsetInMeterFn:h,polygonPatternUVFn:c}=this.tt,f=n.properties;o&&(e=o(this.options.zoom,f)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=Wu):e=Mr([],e)),a&&(r=a(this.options.zoom,f),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(lr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,f),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(lr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),l&&(h&&h(null,f)?s=[0,0]:(s=l(this.options.zoom,f),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(lr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]])));const p=!!this.iconAtlas,y=lu(t,500),m=[0,0],g=[0,0];if(p){const{polygonPatternFileFn:t}=this.tt,n=t?t(null,f):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n];m[0]=t.tl[0]+1,m[1]=t.tl[1]+1,g[0]=t.displaySize[0]-3,g[1]=t.displaySize[1]-3}}let v,b=0;c&&(v=c(this.options.zoom,f));const w=this.needAltitudeAttribute()?2:3,M=[-1,-1,n.extent+1,n.extent+1],x=this.Dt=this.Dt||this.ut.get(),F=this.jt=this.jt||this.ut.get();for(let t=0;t<y.length;t++){const n=y[t],o=this.data.aPosition.length/w;x.setLength(0),F.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Vu(o,M)),0!==o.length){0!==t&&F.push(x.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;if(this.fillPosition(this.data,n,a,u),p&&this.data.aTexInfo.push(m[0],m[1],g[0],g[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]),c){if(v){const t=lr(v[2*b])?v[0]:v[2*b],n=lr(v[2*b]+1)?v[1]:v[2*b+1];this.data.aTexCoord.push(t,n)}else this.data.aTexCoord.push(-9999999,-9999999);b++}const l=Math.abs(n),h=Math.abs(a);l>this.maxPos&&(this.maxPos=l),h>this.maxPos&&(this.maxPos=h),x.push(n,a,u)}}}let a=Ne(x,F,3);if(x.length&&!a.length){const t=[];for(let n=0;n<x.length;n+=3)t[n]=x[n],t[n+1]=x[n+2],t[n+2]=x[n+1];if(a=Ne(t,F,3),!a.length){for(let n=0;n<x.length;n+=3)t[n]=x[n+1],t[n+1]=x[n+2],t[n+2]=x[n];a=Ne(t,F,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Gu=[{type:Int16Array,width:3,name:"aPosition"}];class Bu extends aa{getFormat(){return Gu}placeVector(t,n){const e=this.Ft(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Gu[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)}}Ft(t,n){const{feature:e,symbol:r}=t,i=this.St(t,r),s=e.properties,{markerSpacingFn:o}=this.tt,a=((o?o(null,s):r.markerSpacing)||250)*n;return yu(t,null,null,n,this.options.EXTENT,i,a)}St(t,n){return this.tt.markerPlacementFn?this.tt.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Ju extends Pu{constructor(t,n,e){(n=ur({},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.tt,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:l,z:h}=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(Xu,e,r,i),ft(Yu,s,o,0),mt(Zu,Xu,Yu),pt(Yu,Yu),pt(Zu,Zu),Ku[n]||(Ku[n]=[]);const u=Ku[n];for(var l=0;l<n;l++){const t=Math.PI*l/n,e=1-Math.abs(t-0)/(Math.PI/2);u[l]=u[l]||[],Qu(Yu,Zu,u[l],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,l,h||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:l,lineOpacityFn:h,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.tt,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=br(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}l&&t.aColor.push(...this.feaColor),h&&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 Xu=[],Yu=[],Zu=[],Ku={};function Qu(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 tl extends Ju{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:l,z:h}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(el,e,r,i),ft(rl,s,o,0),mt(il,el,rl),pt(rl,rl),pt(il,il),_t(nl,t,n);const u=Et(nl)/t,l=Math.atan(n/t);let h=Math.PI/2+(Math.PI/2-l);return sl[0]||(sl[0]=[]),Qu(rl,il,sl[0],u,h,a?1:-1),h+=2*l,sl[1]||(sl[1]=[]),Qu(rl,il,sl[1],u,h,a?1:-1),sl}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,l,h||0,y,i,c,a)}}const nl=[],el=[],rl=[],il=[],sl=[];class ol{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 al=1e20;function ul(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 ll(t,n,e,r,i,s){for(var o=0;o<n;o++)hl(t,o,n,e,r,i,s);for(var a=0;a<e;a++)hl(t,a*n,1,n,r,i,s)}function hl(t,n,e,r,i,s,o){var a,u,l,h;for(s[0]=0,o[0]=-al,o[1]=al,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,l=0;a<r;a++){do{l=(i[a]-i[h=s[u]]+a*a-h*h)/(a-h)/2}while(l<=o[u]&&--u>-1);s[++u]=a,o[u]=l,o[u+1]=al}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[h=s[u]]+(a-h)*(a-h)}}ul.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?al:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?al:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(ll(this.gridOuter,n,e,this.f,this.v,this.z),ll(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 cl=0;class fl{constructor(t,n=15,e){this.entries={},this.Ut={},this.Nt=new ol(2048,(function(){})),this.Lt=t,this.Vt=n,this.Rt=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.Rt;const s=(r,s,a)=>{let u=0,l=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const h in t[n]){if(l++,l<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!La(+h),f=n+":"+h+":"+c;let d;if(this.Nt.has(f)?d=this.Nt.get(f):(d=this.Ht(e[n],t,h,c),this.Nt.add(f,d),u++),d=dl(d),s[n][h]=d,a.push(d.bitmap.data.buffer),this.Lt&&u>this.Vt)return void this.Lt(o(l,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ht(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 l=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 ul(24,u,8,.25,o,n,i)}const h=String.fromCharCode(e),c=a.ctx.measureText(h),f=Math.round(c.width),d=a.draw(String.fromCharCode(e),f+2*u,24+2*u);if(cl<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+cl++);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+l}}}}function dl(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:ur({},t.metrics)}}var pl=Object.freeze({__proto__:null,clipPolygon:Vu,calculateSignedArea:kr,getFeaAltitudeAndHeight:_r,generatePickingIndiceIndex:$r,convertRTLText:tu,packPosition:Tr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%zr),s=(Math.sign(e)||1)*(Math.abs(e)%zr),o=Math.floor(Math.abs(n)/zr),a=Math.floor(Math.abs(e)/zr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Dr+r,t},convertGeometry:ar,getPosArrayType:ir,getUnsignedArrayType:sr,getIndexArrayType:rr});const yl={},ml={},gl=[];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)yr(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})},l={},h=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Lo(this["_"+t],n));const r=e()[0];l.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(l,yl,ml,null,gl)}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(Vo(n[e])){r=!0;const t=Go(e);o["_"+e]=n[e],h(e,t)}else o[e]=n[e]}return r?o:n}});const vl={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},vl),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},vl);new Float32Array([-1e12])[0];const bl="maptalks_ombb";function wl(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p,y,m){const g=n.length,v=i/3;for(let e=2,r=g;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+=g;for(let e=2,r=g;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+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,(e=e||[]).push(g/3);for(let n=0;n<e.length;n++){Ml(v+(e[n-1]||0),v+e[n],t,g/3,u,r,l,h,c,f,s,d,p,y,m)}return i}function Ml(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p){const y=s.length;let m,g;for(let o=t,a=n;o<a-1;o++)m=o,g=o+1,i!==1/0&&at(e,m,g,i)||((o-t)%2==1&&(m+=2*r,g+=2*r),p?(s.push(m+r,g,m),s.push(g+r,g,m+r)):(s.push(m+r,m,g),s.push(g,g+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,l,h){let c,f=0,d=0,p=0,y=0;const m=h?[1,3,4]:[2,3,4];for(let h=s.length-1;h>=0;h--){const g=s[h],v=3*g+1,b=3*g+2,w=i[3*g],M=i[v],x=i[b];f||d||(f=Math.max(i[b],i[3*s[h-3]+2]),d=Math.min(i[b],i[3*s[h-3]+2]),c=f-d);let F=p;const A=h%6;0===t?(5===A&&(y=jt(i,s,h,w,M)),F=A===m[0]||A===m[1]||A===m[2]?p:p+y):1===t&&(A===m[0]||A===m[1]||A===m[2]?F=0:5===A?(y=jt(i,s,h,w,M),F=y):F=y);const k=F/u*(1/(100*l))/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/a:0:x===f?0:-c/100/a,r[2*g]=k,r[2*g+1]=P,0===A&&(p+=y)}}(a,u,l,h,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function xl(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 Fl=Qo.getInstance();function Al(t,n,e,r,i,s,o,a,u,l,h,c,f,m,g,v){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),Fl.reset();const{altitudeScale:b,altitudeProperty:w,defaultAltitude:M,heightProperty:F,minHeightProperty:A,defaultHeight:k,tangent:_,uv:O,topUVMode:E,sideUVMode:I,sideVerticalUVMode:$,top:C,side:T,textureYOrigin:z,topThickness:D}=n,j=!!v,U=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:l,top:h,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:g,textureYOrigin:v,tileRatio:b,centimeterToPoint:w,verticalCentimeterToPoint:M,positionType:F,res:A,glScale:k,projectionCode:S},_,O){let E=n/t[0].extent;n===1/0&&(E=1);const I=n===1/0,$=O.get(),C=O.get(),T=O.get(),z=O.get(),D=O.get(),j=O.get(),U=O.get(),N=!!d,L=!!h,V=!!l,R=N?O.get():null;function H(t,e,r,i,s,o){let a=e;if(L){const i=Ne(z,r,3);if(0===i.length)return e;if(P(D,z),e+=z.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(j,i),N&&zt(y||0,t,e,R,D,f,w,b,p[0],p[1],s,A,k,S,u),c>0&&!V&&(e=wl(D,z,r,j,e,R,0,c,n,N,m||0,g||0,v,p,b,M,o)),U.setLength(e/3),U.fill(1,a/3,e/3)}if(V){L&&(c=0),a=e,e=wl(D,z,r,j,e,R,c,i,n,N,m||0,g||0,v,p,b,M,o),U.setLength(e/3);const t=z.length/3;U.fill(1,a/3,a/3+t),U.fill(0,a/3+t,a/3+2*t),U.fill(1,a/3+2*t,a/3+3*t),U.fill(0,a/3+3*t,e/3)}return e}let W=0,q=0;const G=[-1,-1,n+1,n+1];let B=0,J=t.length;x(_)&&(B=_,J=_+1);let X=0,Y=!1;const Z=O.get();for(;B<J;B++){const u=t[B],l=u.id;x(l)&&(Math.abs(l)>X&&(X=Math.abs(l)),l<0&&(Y=!0));const h=u.geometry,c=u.properties[bl];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=pl.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);W=Math.max(Math.abs(d),W);const y=D.length;let m=0,g=q;Z.setLength(0),z.setLength(0);const v=pl.calculateSignedArea(h[0])<0;for(let t=0,e=h.length;t<e;t++){let r=h[t];v&&(r=r.reverse()),r=xl(r);const i=pl.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],q=H(g,q,Z,p*E,f,I),z.setLength(0),Z.setLength(0),g=q),n!==1/0&&(r=pl.clipPolygon(r,G)),!r.length){t===e-1&&(q=H(g,q,Z,p*E,f,I));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&&Z.push(z.length/3),ot(z,z.length,r,E,d,!1,F),t===e-1&&(q=H(g,q,Z,p*E,f,I))}const b=D.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)C.push(void 0===u[w]?B:u[w]),$.push(B),x(l)&&T.push(l)}const K=pl.getUnsignedArrayType(C.length?C[C.length-1]:0),Q={maxAltitude:W,vertices:D,verticeTypes:U,indices:j,pickingIds:Qo.createTypedArray(C,K),featureIndexes:$};if(T.length){const t=Y?pl.getPosArrayType(X):pl.getUnsignedArrayType(X);Q.featureIds=Qo.createTypedArray(T,t)}else Q.featureIds=[];return R&&(R.setLength(D.length/3*2),Q.uvs=R),Q}(t,e,{altitudeScale:b,altitudeProperty:w,defaultAltitude:M||0,heightProperty:F,minHeightProperty:A,defaultHeight:k||0},{center:v,top:C,side:T,topThickness:10*D||0,uv:O||_,uvSize:[i,i],uvOrigin:r,topUVMode:E,sideUVMode:I,sideVerticalUVMode:$,textureYOrigin:z,tileRatio:a,centimeterToPoint:u,verticalCentimeterToPoint:l,positionType:g,res:s,glScale:o,projectionCode:f},m,Fl),N=[],L=U.vertices.length/3,V=pl.getIndexArrayType(L),R=Qo.createTypedArray(U.indices,V);delete U.indices,N.push(R.buffer,U.pickingIds.buffer);const H=_?Fl.get():new Float32Array(3*L);H.setLength&&H.setLength(3*L);const W=ne(U.vertices,R,H);let q=!0;for(let t=0;t<W.length;t++){j||(W[t]=-W[t]);const n=W[t]%1;1-Math.abs(n)>1e-6?q=!1:0!==n&&(W[t]=Math.round(W[t]))}if(U.normals=W,_){let t=Fl.get();t.setLength(4*L),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 l=[0,0,0],h=[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 g(n,r,i){he(l,t,3*n),he(h,t,3*r),he(c,t,3*i),ce(f,e,2*n),ce(d,e,2*r),ce(p,e,2*i);const s=h[0]-l[0],o=c[0]-l[0],g=h[1]-l[1],v=c[1]-l[1],b=h[2]-l[2],w=c[2]-l[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],A=p[1]-f[1],k=1/(M*A-x*F);ft(y,(A*s-F*o)*k,(A*g-F*v)*k,(A*b-F*w)*k),ft(m,(M*o-x*s)*k,(M*v-x*g)*k,(M*w-x*b)*k),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)g(r[t+0],r[t+1],r[t+2]);const v=[],b=[],w=[],M=[];let x,F,A;function k(t){he(w,n,3*t),ct(M,w),F=a[t],ct(v,F),gt(v,v,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(v,v),mt(b,M,F),A=yt(b,u[t]),x=A<0?-1:1,o[4*t]=v[0],o[4*t+1]=v[1],o[4*t+2]=v[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)k(r[t+0]),k(r[t+1]),k(r[t+2]);return o}(U.vertices,U.normals,U.uvs,R,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),Qn(s,i,r),vt(e.subarray(o,o+4),s)}return e}(U.normals,t),U.tangents=t,N.push(t.buffer),delete U.normals}if(U.normals&&(q&&(U.normals=Qo.createTypedArray(U.normals,Int8Array)),N.push(U.normals.buffer)),U.uvs){const t=U.uvs;U.uvs=Qo.createTypedArray(t,Float32Array),N.push(U.uvs.buffer)}if(v){const t=U.vertices;for(let n=0;n<t.length;n+=3)t[n]-=v[0],t[n+1]-=v[1]}const G=g||pl.getPosArrayType(Math.max(512,U.maxAltitude)),B=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 l=o(e,u);d(l)&&(i.aColor=1,o=y(l),l=o(e,u)),delete u.$layer,delete u.$type,Ar.normalizeColor(kl,l),a[4*n]=kl[0],a[4*n+1]=kl[1],a[4*n+2]=kl[2],a[4*n+3]=kl[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 l=o(e,u);d(l)&&(i.aOpacity=1,o=y(l),l=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*l}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,h,c,U.featureIndexes),J=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 l=o&&y(r.topPolygonFill),h=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 g=1===t[r];if(g&&n[r]===c){t[r]=p;continue}if(!g&&n[r]===f){t[r]=m;continue}const v=e[n[r]],b=v.properties||{};b.$layer=v.layer,b.$type=v.type;let w=g?l:h,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,Ar.normalizeColor(kl,M),wt(kl,kl,u);let x=Pl(s,kl);x<0&&(x=s.length,s.push(vt([],kl))),t[r]=x,g?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(U.verticeTypes,U.featureIndexes,t,h,c),X={data:{data:{aVertexColorType:J.length<=252?Qo.createTypedArray(U.verticeTypes,Uint8Array):Qo.createTypedArray(U.verticeTypes,Uint16Array),aPosition:Qo.createTypedArray(U.vertices,G),aNormal:U.normals,aTexCoord0:U.uvs,aTangent:U.tangents,aPickingId:U.pickingIds},indices:R,properties:{maxAltitude:U.maxAltitude},dynamicAttributes:B.dynamicAttributes,vertexColors:J},buffers:N};return U.featureIds.length?(X.data.featureIds=U.featureIds,N.push(X.data.featureIds.buffer)):X.data.featureIds=[],B.aColor&&(X.data.data.aColor=B.aColor,X.buffers.push(B.aColor.buffer)),B.aOpacity&&(X.data.data.aOpacity=B.aOpacity,X.buffers.push(B.aOpacity.buffer)),X.buffers.push(X.data.data.aPosition.buffer),X.data.pickingIdIndiceMap=pl.generatePickingIndiceIndex(X.data.data.aPickingId,X.data.indices),X}const kl=[];function Pl(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function Sl(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:l,bottom:h}){const c=h,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),g=new Uint8Array(m.length/3*4);d(e)&&(e=Bo.compileFilter(e));const v=[];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 l,h;for(let t=a,e=u+a;t<e;t++)t<e-1?(l=t,h=t+1):(l=t,h=a),at(m,l,h,n)||(v.push(l,h),c&&v.push(l+u,h+u),_l(m,l,n)||v.push(l,l+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),A=[];for(let n=0,h=t.length;n<h;n++){const h=t[n],c=h.geometry;if(e){let t;t="function"==typeof e?e(h&&h.properties):e,Ar.normalizeColor(A,t)}else ft(A,255,255,255);const d=w/3*4,{altitude:p,height:x}=pl.getFeaAltitudeAndHeight(h,i,s,o,a,l,u);M=Math.max(Math.abs(p),M);let k=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,k,n,f,p),w=b(k,w,x*f),k=w}const P=k/3*4;for(let t=d;t<P;t+=4)g[t]=A[0],g[t+1]=A[1],g[t+2]=A[2],g[t+3]=255*(r||1);const S=v.length-y.length;for(let t=0;t<S;t++)y.push(h[F])}const k=v.reduce((t,n)=>Math.max(t,n),0),P=new(pl.getIndexArrayType(k))(v),S=pl.getUnsignedArrayType(t.length);return{aPosition:new(pl.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:g}}function _l(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Ol(t,n,e,r){const i=Sl(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 El=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),El=!0}catch(t){El=!1}var Il=El;const $l="__original_properties",Cl="__fn-type_properties";class Tl{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Wt(n.style),this.requests={},this.Nt=r,this.qt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.qt=t.styleCounter,this.Wt(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.Gt(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=A(s)?s[i[n].layer]:s,e=i[n].properties;i[n].id=e&&e[t]||null}if(n)this.Gt(u,n);else if(i&&i.length){if(u)for(let t=0;t<u.length;t++)this.Bt.call(u[t].ref,u[t].context,u[t].callback,r,o,i,a)}else this.Gt(u)})}Bt(t,n,e,r,i,s){this.Jt(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.Xt(t),n()}Xt(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]}Gt(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.Nt,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&Il){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.Yt||(this.Yt=new fl),this.Yt.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)}Jt(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.Zt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Vl(n,e.tileInfo.z,o[t],a);const u=[],l=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){l.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=l[i];r||(r=ql(e),l[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(l[n])}else u.push(e)}const h=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,g=[],v={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let A=!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}Jl(r.symbol,F,t),A=A||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:l}=this.Kt(c,r.type,r.filter,n,v,t);if(!u.length){a[x]=null;continue}const m=l[l.length-1],k=pl.getIndexArrayType(m);a[x]={styledFeatures:new k(l)},y.push({idx:t,typeIdx:x}),g.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:h,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.Qt(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++)g.push(t.buffers[n])}if(e!==this.qt)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||A){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=jl(t.properties)),t&&(m.features||A&&v[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[$l],e.customProps=w({},n),t=e}const i=w({},t);if(A&&v[r]&&(!m.features||"transient"===m.features)){const i=v[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[Cl]||(i[Cl]=new Set),i[Cl].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t],e=n.properties[Cl];if(e){delete n.properties[Cl],"transient"===m.features&&(n.fnTypeProps=w({},n.properties));for(const t in n.properties)e.has(t)||("transient"===m.features?delete n.fnTypeProps[t]:delete n.properties[t])}}}return{data:{schema:a,data:d,featureData:p,extent:h,features:s},buffers:g}}).catch(t=>{console.error(t)})}Qt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:l,zoom:h,tilePoint:c,centimeterToPoint:f,verticalCentimeterToPoint:d}=e,p=a/o,y=i.type,m=e.debugIndex;let g=w({},i,{EXTENT:a,zoom:h,debugIndex:m,features:this.options.features});if("3d-extrusion"===y){const t=Ul(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode,o=s.material&&s.material.textureWidth||23.25;return Promise.all([Promise.resolve(Al(r,i,a,c,o,e.tileInfo.res,u,a/this.options.tileSize,f,d,s,h,n,m))])}if("3d-wireframe"===y)return Promise.all([Promise.resolve(Ol(r,a,s,i))]);if("point"===y){g=w(g,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:l*a/this.options.tileSize/u});const t=bu.splitPointSymbol(s),n=aa.genFnTypes(t[0]);return bu.needMerge(t[0],n,h)&&(r=bu.mergeLineFeatures(r,t[0],n,h)),Promise.all(t.map((t,e)=>(0===e?g.fnTypes=n:delete g.fnTypes,new bu(r,t,g).load(p))))}if("native-point"===y){const t=l*a/this.options.tileSize/u;return g.altitudeToTileScale=t,Nl(r,s,g,Uu,a/o)}if("line"===y)return g=w(g,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:p}),Nl(r,s,g,Pu);if("native-line"===y)return Nl(r,s,g,Du);if("fill"===y)return g=w(g,{requestor:this.fetchIconGlyphs.bind(this)}),Nl(r,s,g,qu);if("line-extrusion"===y){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Ul(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),g=w(g,{tileSize:o,zScale:l,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},g);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(g.side=!0,g.top=!1,t.push(new Tu(r,s,g))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,g).load()])}if("circle"===y)return Nl(r,s,g,Bu);if("round-tube"===y||"square-tube"===y){const t="round-tube"===y?Ju:tl;return g=w(g,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===y?i.radialSegments||8:4,centimeterToPoint:f,verticalCentimeterToPoint:d,tileRatio:p,isTube:!0}),Nl(r,s,g,t)}return Promise.resolve([])}Kt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],l=r.length;for(let h=0;h<l;h++)if((1===n||void 0===r[h].id||!this.styledFeatures[r[h].id])&&((!e.def||"default"===e.def)&&!i[h]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[h],t))){const t=r[h];if(void 0===t[o]&&(t[o]=h),i[h]||(i[h]=[]),i[h].push(s),u.push(t),a.push(h),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Wt(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=Bo.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=Bo.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}Zt(t){let n=this.tn;this.tn||(n=this.tn={});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:zn(a),renderPlugin:zl(o),symbol:Dl(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function zl(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 Dl(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 jl(t){if(Array.isArray(t)||!A(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 Ul(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(A(t[e])){const r=Ul(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Nl(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]=Ll(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 Ll(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Vl(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=Bo.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];k(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Rl={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Hl={get:function(t,n){return n in t?t[n]:t[$l][n]},has:(t,n)=>n in t||n in t[$l]},Wl={};function ql(t){const n={};n.originalFeature=t;const e=new Proxy(n,Rl);return e.properties=new Proxy({},Hl),e.properties[$l]=t.properties||Wl,e}function Gl(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Bl=[];function Jl(t,n,e){if(!t)return Bl;for(const r in t){if(!t[r]||!Ar.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Gl(n,e,t[r].property);else{if("lineGradientProperty"===r){Gl(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ya.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Gl(n,e,i[t])}else if(Bo.isExpression(t[r])){const i=[];ya.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Gl(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])&&Gl(n,t,i[t][1].property)}return n[e]}function Xl(t,n){Yl(t.geometry,n)}function Yl(t,n){if(t)switch(t.type){case"Point":Zl(t.coordinates,n);break;case"MultiPoint":case"LineString":Kl(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Kl(t[e],n)}(t.coordinates,n);break;case"Polygon":Ql(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)Ql(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Yl(t.geometries[r],n)}}function Zl(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 Kl(t,n){for(let e=0,r=t.length;e<r;e++)Zl(t[e],n)}function Ql(t,n){t.length&&Kl(t[0],n)}function th(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),l=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*l*(o-l)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*l/o+h)),f=Math.min(i,Math.floor(e+(o-a)*l/o+h));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(nh(n,r,e),s(n[i],d)>0&&nh(n,r,i);p<y;){for(nh(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?nh(n,r,y):(y++,nh(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||eh)}function nh(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function eh(t,n){return t<n?-1:t>n?1:0}class rh{constructor(t=9){this.nn=Math.max(4,t),this.en=Math.max(2,Math.ceil(.4*this.nn)),this.clear()}all(){return this.rn(this.data,[])}search(t){let n=this.data;const e=[];if(!yh(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;yh(t,a)&&(n.leaf?e.push(o):ph(t,a)?this.rn(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!yh(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(yh(t,s)){if(n.leaf||ph(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.en){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.sn(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.an(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.un(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.un(t,this.data.height-1),this}clear(){return this.data=mh([]),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=ih(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.hn(i),this}u||e.leaf||!ph(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}rn(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}sn(t,n,e,r){const i=e-n+1;let s,o=this.nn;if(i<=o)return s=mh(t.slice(n,e+1)),sh(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=mh([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));gh(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);gh(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.sn(t,e,i,r-1))}}return sh(s,this.toBBox),s}cn(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=hh(o),u=fh(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}un(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.cn(r,this.data,n,i);for(s.children.push(t),ah(s,r);n>=0&&i[n].children.length>this.nn;)this.dn(i,n),n--;this.pn(r,i,n)}dn(t,n){const e=t[n],r=e.children.length,i=this.en;this.yn(e,i,r);const s=this.mn(e,i,r),o=mh(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,sh(e,this.toBBox),sh(o,this.toBBox),n?t[n-1].children.push(o):this.an(e,o)}an(t,n){this.data=mh([t,n]),this.data.height=t.height+1,this.data.leaf=!1,sh(this.data,this.toBBox)}mn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=oh(t,0,o,this.toBBox),a=oh(t,o,e,this.toBBox),u=dh(n,a),l=hh(n)+hh(a);u<i?(i=u,r=o,s=l<s?l:s):u===i&&l<s&&(s=l,r=o)}return r||e-n}yn(t,n,e){const r=t.leaf?this.compareMinX:uh,i=t.leaf?this.compareMinY:lh;this.gn(t,n,e,r)<this.gn(t,n,e,i)&&t.children.sort(r)}gn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=oh(t,0,n,i),o=oh(t,e-n,e,i);let a=ch(s)+ch(o);for(let r=n;r<e-n;r++){const n=t.children[r];ah(s,t.leaf?i(n):n),a+=ch(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ah(o,t.leaf?i(n):n),a+=ch(o)}return a}pn(t,n,e){for(let r=e;r>=0;r--)ah(n[r],t)}hn(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():sh(t[e],this.toBBox)}}function ih(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 sh(t,n){oh(t,0,t.children.length,n,t)}function oh(t,n,e,r,i){i||(i=mh(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];ah(i,t.leaf?r(n):n)}return i}function ah(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 uh(t,n){return t.minX-n.minX}function lh(t,n){return t.minY-n.minY}function hh(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function ch(t){return t.maxX-t.minX+(t.maxY-t.minY)}function fh(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 dh(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 ph(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function yh(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function mh(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function gh(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;th(t,o,n,e,i),s.push(n,o,o,e)}}var vh={exports:{}},bh=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,l=a-1;u<a;l=u++){var h=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*l+0],d=n[e+2*l+1];c>s!=d>s&&i<(f-h)*(s-c)/(d-c)+h&&(o=!o)}return o},wh=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,l=a-1;u<a;l=u++){var h=n[u+e][0],c=n[u+e][1],f=n[l+e][0],d=n[l+e][1];c>s!=d>s&&i<(f-h)*(s-c)/(d-c)+h&&(o=!o)}return o};vh.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?wh(t,n,e,r):bh(t,n,e,r)};var Mh=vh.exports.nested=wh;vh.exports.flat=bh;function xh(t,n,e,r,i){let s,o,a,u,l=n[0],h=r[0],c=0,f=0;h>l==h>-l?(s=l,l=n[++c]):(s=h,h=r[++f]);let d=0;if(c<t&&f<e)for(h>l==h>-l?(o=l+s,a=s-(o-l),l=n[++c]):(o=h+s,a=s-(o-h),h=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)h>l==h>-l?(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=n[++c]):(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Fh(t){return new Float64Array(t)}const Ah=Fh(4),kh=Fh(8),Ph=Fh(12),Sh=Fh(16),_h=Fh(4);function Oh(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 l=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*l?u:-function(t,n,e,r,i,s,o){let a,u,l,h,c,f,d,p,y,m,g,v,b,w,M,x,F,A;const k=t-i,P=e-i,S=n-s,_=r-s;w=k*_,f=134217729*k,d=f-(f-k),p=k-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),g=M-F,c=M-g,Ah[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Ah[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Ah[2]=v-(A-c)+(g-c),Ah[3]=A;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Ah),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-k,a=t-(k+c)+(c-i),c=e-P,l=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,h=r-(_+c)+(c-s),0===a&&0===u&&0===l&&0===h)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=k*h+_*a-(S*l+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),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const I=xh(4,Ah,4,_h,kh);w=k*h,f=134217729*k,d=f-(f-k),p=k-d,f=134217729*h,y=f-(f-h),m=h-y,M=p*m-(w-d*y-p*y-d*m),x=S*l,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*l,y=f-(f-l),m=l-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const $=xh(I,kh,4,_h,Ph);w=a*h,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*h,y=f-(f-h),m=h-y,M=p*m-(w-d*y-p*y-d*m),x=u*l,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*l,y=f-(f-l),m=l-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const C=xh($,Ph,4,_h,Sh);return Sh[C-1]}(t,n,e,r,i,s,l)}function Eh(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++)Mh(t[s],a)||u.push(t[s]);return function(t){t.sort(Rh);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Dh(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&&Dh(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 rh(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=Uh(u,s),o.push(s)}var l=new rh(16);for(a=0;a<o.length;a++)l.insert(jh(o[a]));for(var h=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Nh(d,p);if(!(y<c)){var m=y/h;(u=Ih(i,f.prev.p,d,p,f.next.next.p,m,l))&&Math.min(Nh(u,d),Nh(u,p))<=m&&(o.push(f),o.push(Uh(u,f)),i.remove(u),l.remove(f),l.insert(jh(f)),l.insert(jh(f.next)))}}f=s;var g=[];do{g.push(f.p),f=f.next}while(f!==s);return g.push(f.p),g}function Ih(t,n,e,r,i,s,o){for(var a=new Bn([],$h),u=t.data;u;){for(var l=0;l<u.children.length;l++){var h=u.children[l],c=u.leaf?Lh(h,e,r):Ch(e,r,h);c>s||a.push({node:h,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Lh(d,n,e),y=Lh(d,r,i);if(f.dist<p&&f.dist<y&&zh(e,d,o)&&zh(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function $h(t,n){return t.dist-n.dist}function Ch(t,n,e){if(Th(t,e)||Th(n,e))return 0;var r=Vh(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Vh(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Vh(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Vh(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 Th(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function zh(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),l=Math.max(t[0],n[0]),h=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:l,maxY:h}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Dh(r,i,s)>0!=Dh(r,i,o)>0&&Dh(s,o,r)>0!=Dh(s,o,i)>0)return!1;return!0}function Dh(t,n,e){return Oh(t[0],t[1],n[0],n[1],e[0],e[1])}function jh(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 Uh(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 Nh(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Lh(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 Vh(t,n,e,r,i,s,o,a){var u,l,h,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,g=n-s,v=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*g,x=p*m+y*g,F=v*w-b*b,A=F,k=F;0===F?(l=0,A=1,c=x,k=w):(c=v*x-b*M,(l=b*x-w*M)<0?(l=0,c=x,k=w):l>A&&(l=A,c=x+b,k=w)),c<0?(c=0,-M<0?l=0:-M>v?l=A:(l=-M,A=v)):c>k&&(c=k,-M+b<0?l=0:-M+b>v?l=A:(l=-M+b,A=v));var P=(1-(h=0===c?0:c/k))*i+h*o-((1-(u=0===l?0:l/A))*t+u*e),S=(1-h)*s+h*a-((1-u)*n+u*r);return P*P+S*S}function Rh(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Hh{constructor(t,n){this.x=t,this.y=n}clone(){return new Hh(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 Hh(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 Hh(this.y,-this.x)}}function Wh(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 Hh(t.x+a*n.x,t.y+a*n.y)}const qh=[],Gh=[];function Bh(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Gh[e]?(Gh[e][0]=t[r].x,Gh[e][1]=t[r].y):Gh[e]=[t[r].x,t[r].y],n.push(Gh[e]),e++;t=n}try{const n=Eh(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]||(Ct(i,n[t],"EPSG:3857"),qh[o]?(qh[o].x=i[0],qh[o].y=i[1]):qh[o]=new Hh(i[0],i[1]),s.push(qh[o]),o++);pl.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,l){var h=Wh(t,r,o,a),c=Wh(i,s,o,a),f=Wh(u,l,t,r),d=Wh(u,l,i,s),p=h.distance(c)*h.distance(f);0!==p&&p<e&&(n=[h,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,l=new Hh(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),h=new Hh(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<l.x&&(l.x=c.x,s=n),c.x>h.x&&(h.x=c.x,o=n),c.y<l.y&&(l.y=c.y,u=n),c.y>h.y&&(h.y=c.y,a=n)}var f=new Hh(0,-1),d=new Hh(0,1),p=new Hh(-1,0),y=new Hh(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]),l=a[1].distance(a[2]),h=a.map(t=>[t.x,t.y]);return h.push(+(l>u)),h}catch(t){return null}}const Jh=[];function Xh(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Xh(t[r]):(Ct(Jh,t[r],n),t[r][0]=Jh[0],t[r][1]=Jh[1]);return t}class Yh extends Tl{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.vn(o);const{sample1000:a,idMap:u}=this.bn(o);this.wn(a,u,s,e,n)})}else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features,i=r&&r.length;this.vn(r);let s=r;if(r&&i>1e3){s=[];for(let t=0;t<i;t++)Zh(r[t],s,t,i)}this.wn(s,null,t,e,n)}}vn(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=Bh(t,t.length);e.properties=e.properties||{},e.properties[bl]=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=Bh(r,r.length);e.properties=e.properties||{},e.properties[bl]=e.properties[bl]||[],e.properties[bl][n]=i}}}}wn(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++)Xl(t.features[r],n);break;case"Feature":Xl(t,n);break;default:Yl(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})}}bn(t){const n=[],e={};let r=0;const i=this.options.featureIdProperty;if(t){const s=t.length;t.forEach((t,o)=>{!function(t,s,o){if(t&&("Feature"!==t.type||t.geometry)){if(x(t.id)||(t.id=r++),i){let n=i;A(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),Zh(t,n,s,o)}}(t,o,s)})}return{sample1000: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||(pl.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}}function Zh(t,n,e,r){const i=Math.floor(r/998);(0===e||e===r-1||(0===i||e%i==0)&&n.length<999)&&n.push(t)}var Kh={\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,l=u>>1,h=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-h)-1,d>>=-h,h+=a;h>0;s=256*s+t[n+c],c+=f,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=r;h>0;o=256*o+t[n+c],c+=f,h-=8);if(0===s)s=1-l;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=l}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,l=8*s-i-1,h=(1<<l)-1,c=h>>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=h):(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>=h?(a=0,o=h):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,l+=i;l>0;t[e+d]=255&o,d+=p,o/=256,l-=8);t[e+d-p]|=128*y}},Qh=nc,tc=Kh;function nc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}nc.Varint=0,nc.Fixed64=1,nc.Bytes=2,nc.Fixed32=5;var ec="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function rc(t){return t.type===nc.Bytes?t.readVarint()+t.pos:t.pos+1}function ic(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function sc(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 oc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function ac(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function uc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function yc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function mc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function gc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}nc.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=yc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=gc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=yc(this.buf,this.pos)+4294967296*yc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=yc(this.buf,this.pos)+4294967296*gc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=tc.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=tc.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 ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return ic(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&&ec?function(t,n,e){return ec.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],l=null,h=u>239?4:u>223?3:u>191?2:1;if(i+h>e)break;1===h?u<128&&(l=u):2===h?128==(192&(s=t[i+1]))&&(l=(31&u)<<6|63&s)<=127&&(l=null):3===h?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((l=(15&u)<<12|(63&s)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):4===h&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((l=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,h=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=h}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!==nc.Bytes)return t.push(this.readVarint(n));var e=rc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==nc.Bytes)return t.push(this.readSVarint());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==nc.Bytes)return t.push(this.readBoolean());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==nc.Bytes)return t.push(this.readFloat());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==nc.Bytes)return t.push(this.readDouble());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==nc.Bytes)return t.push(this.readFixed32());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==nc.Bytes)return t.push(this.readSFixed32());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==nc.Bytes)return t.push(this.readFixed64());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==nc.Bytes)return t.push(this.readSFixed64());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===nc.Varint)for(;this.buf[this.pos++]>127;);else if(n===nc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===nc.Fixed32)this.pos+=4;else{if(n!==nc.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),mc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),mc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),mc(this.buf,-1&t,this.pos),mc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),mc(this.buf,-1&t,this.pos),mc(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&&sc(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),tc.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),tc.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&&sc(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,nc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,oc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,ac,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,pc,n)},writeBytesField:function(t,n){this.writeTag(t,nc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,nc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,nc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,nc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,nc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,nc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,nc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,nc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,nc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,nc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var vc=Ut,bc=wc;function wc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.Mn=t,this.xn=-1,this.Fn=r,this.An=i,t.readFields(Mc,this,n)}function Mc(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.Fn[t.readVarint()],i=n.An[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.xn=e.pos)}function xc(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}wc.types=["Unknown","Point","LineString","Polygon"],wc.prototype.loadGeometry=function(){var t=this.Mn;t.pos=this.xn;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 vc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},wc.prototype.bbox=function(){var t=this.Mn;t.pos=this.xn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,l=-1/0;t.pos<n;){if(r<=0){var h=t.readVarint();e=7&h,r=h>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>l&&(l=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,l]},wc.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(),l=wc.types[this.type];function h(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];h(u=c);break;case 2:for(r=0;r<u.length;r++)h(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=xc(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++)h(u[r][i])}1===u.length?u=u[0]:l="Multi"+l;var f={type:"Feature",geometry:{type:l,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Fc=bc,Ac=kc;function kc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.Mn=t,this.Fn=[],this.An=[],this.kn=[],t.readFields(Pc,this,n),this.length=this.kn.length}function Pc(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.kn.push(e.pos):3===t?n.Fn.push(e.readString()):4===t&&n.An.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))}kc.prototype.feature=function(t){if(t<0||t>=this.kn.length)throw new Error("feature index out of bounds");this.Mn.pos=this.kn[t];var n=this.Mn.readVarint()+this.Mn.pos;return new Fc(this.Mn,n,this.extent,this.Fn,this.An)};var Sc=Ac;function _c(t,n,e){if(3===t){var r=new Sc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Oc=function(t,n){this.layers=t.readFields(_c,{},n)};class Ec extends Tl{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.Nt.has(e)){const{err:t,data:r}=this.Nt.get(e);return setTimeout(()=>{this.Pn(e,t,r,n)},1)}return r.referrer=t.referrer,O.getArrayBuffer(e,r,(t,r)=>{this.Nt&&(t?t.loading||this.Nt.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Nt.add(e,{err:null,data:r.data}),this.Pn(e,t,r&&r.data,n))})}Pn(t,n,e,r){if(n)return void r(n);let i;try{i=new Oc(new Qh(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,l=t,Object.prototype.hasOwnProperty.call(u,l)){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[bl];o&&(M(o)&&(o=JSON.parse(o)),n.properties[bl]=Xh(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,l;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.Xt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let Ic=0;const $c=new ol(128);class Cc{constructor(t){this.Sn={},this._n={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.On(n,e))return;const s=this.En(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.Sn[s]="GeoJSONVectorTileLayer"===o?new Yh(e,a,u,$c,{},i):new Ec(e,a,u,$c,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.On(t,n),i=this.En(t,n);delete this.Sn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this._n[n];delete this._n[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${Ic++}`:null;i&&(this._n[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}En(t,n){return`${t}-${n}`}On(t,n){const e=this.En(t,n);return this.Sn[e]}In(){$c.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Cc(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,"$n",{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 l={width:100,height:1};function h(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,l);s.set(n,t)}t=s.get(n)}else t=new i(e,l);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 g(t,"exponential")}function y(t){return g(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 g(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=g(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 l,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)l=u;else if("interval"===m)l=a;else if("categorical"===m)l=o;else if("identity"===m)l=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');l=h}if(f){var g={},v=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===g[b[0].zoom]&&(g[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),g[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in g)v.push([g[n].zoom,t(g[n])]);r=function(t,e){const r=u({stops:v,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=l(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=l(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 v=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!k(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!k(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function A(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function k(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_"+v++;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;i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET";const s=new Request(t,i);return n.returnJSON&&s.headers.set("Accept","application/json"),fetch(s).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 C(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)T(t,e.features[n],r,n);else"Feature"===e.type?T(t,e,r):T(t,{geometry:e},r)}function T(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)z(i,a,e);else if("MultiPoint"===s)for(const t of i)z(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)T(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 z(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]),l=N(t[e][1],i.projection);n.push(u,l,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*l-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(l-o,2))),s=u,o=l}const u=i.hasAltitude?4:3,l=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,l=r-e;const h=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],h,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<l&&(u=t,l=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,l,e,u),n[l+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,l=0===i?n.maxX:n.maxY;if(o>=e&&l<r){u.push(n);continue}if(l<e||o>=r)continue;let h=[];if("Point"===s||"MultiPoint"===s)V(t,h,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,h,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,h,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,h,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&&h.push(t)}if(h.length){if(a.lineMetrics&&"LineString"===s){for(const t of h)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===h.length?(s="LineString",h=h[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===h.length?"Point":"MultiPoint"),u.push(I(n.id,s,h,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 l=0===i?G:B;let h,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],g=t[y+1],v=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:g,A=0===i?b:w;let k=!1;o&&(h=Math.sqrt(Math.pow(m-b,2)+Math.pow(g-w,2))),F<e?A>e&&(c=l(u,m,g,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+h*c)):F>r?A<r&&(c=l(u,m,g,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+h*c)):(q(u,m,g,v),a&&u.push(M)),A<e&&F>=e&&(c=l(u,m,g,b,w,e),a&&u.push(J(M,x,c)),k=!0),A>r&&F<=r&&(c=l(u,m,g,b,w,r),a&&u.push(J(M,x,c)),k=!0),!s&&k&&(o&&(u.end=f+h*c),n.push(u),u=H(t)),o&&(f+=h)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],l=0===i?n:s;if(l>=e&&l<=r&&q(u,n,s,o),l>=e&&l<=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 l=[];for(let a=0;a<t[u].length;a+=o)l.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&l[l.length-1].push(t[u][a+2]);a.geometry.push(l)}}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:l}=o,h=u?4:3;if(!l&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/h);const c=[];for(let t=0;t<n.length;t+=h)(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 l;e&&(l=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]=l)}}}(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++)C(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)T(e,t.features[r],n,r);else"Feature"===t.type?T(e,t,n):T(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,l=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const h=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(l>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),l)){l>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;l>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let g=null,v=null,b=null,w=null,M=L(t,h,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,h,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(g=L(M,h,r-d,r+y,1,f.minY,f.maxY,u),v=L(M,h,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,h,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,h,r+p,r+m,1,f.minY,f.maxY,u),x=null),l>1&&console.timeEnd("clipping"),a.push(g||[],n+1,2*e,2*r),a.push(v||[],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 l,h=t,c=n,f=e;for(;!l&&h>0;)h--,c>>=1,f>>=1,l=this.tiles[st(h,c,f)];return l&&l.source?(s>1&&(console.log("found parent tile z%d-%d-%d",h,c,f),console.time("drilling down")),this.splitTile(l.source,h,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,l=e.length;u<l;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 h=i||0;Array.isArray(i)&&(h=i[u]),h=h?Math.round(r*h):0,t[n+2]=h,n+=3,s&&0!==u&&u!==l-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 lt(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function ht(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 gt=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 vt(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 At(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=lt()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var kt,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)}lt(),ht(1,0,0),ht(0,1,0),Ft(),Ft(),kt=new ut(9),ut!=Float32Array&&(kt[1]=0,kt[2]=0,kt[3]=0,kt[5]=0,kt[6]=0,kt[7]=0),kt[0]=1,kt[4]=1,kt[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 Ct(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 Tt(t,n);if("baidu"===e)return Tt(t,n);throw new Error("unsupported projection:"+e)}function Tt(t,n){return t[0]=n[0],t[1]=n[1],t}function zt(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,l){const h=1/(100*s[0]),c=1/(100*s[1]),f=l&&l[0]||0,d=l&&l[1]||0,p=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-f,s=r[i+1]-d;e[t]=p[0]+n/o*h/a,e[t+1]=p[1]-s/o*c/u}}(n,e,r,i,0,o,a,u,l,p):1===t&&function(t,n,e,r,i,s,o,a,u,l,h){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),g=[],v=[],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+(h?i[t+1]:-i[t+1])/o*a;_t(g,e,d),"EPSG:4326"!==l&&"EPSG:4490"!==l||Ct(g,g,"EPSG:3857"),Dt(v,g,c,f),Dt(b,g,p,c),r[n]=Ot(c,v)/y,r[n+1]=Ot(c,b)/m}}(h,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 l=r,h=i,c=a,f=u,Math.sqrt((c-l)*(c-l)+(f-h)*(f-h));var l,h,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().A(t)},mult:function(t){return this.clone().k(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},k: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},A: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,l,h,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,((l=h=this.w)<=a||t>l)&&(h=2*Math.max(t,l)),(a<l||n>a)&&(u=2*Math.max(n,a)),this.resize(h,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 ln=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 hn in ln)if(ln.hasOwnProperty(hn)){if(!("channels"in ln[hn]))throw new Error("missing channels property: "+hn);if(!("labels"in ln[hn]))throw new Error("missing channel labels property: "+hn);if(ln[hn].labels.length!==ln[hn].channels)throw new Error("channel and label counts mismatch: "+hn);var cn=ln[hn].channels,fn=ln[hn].labels;delete ln[hn].channels,delete ln[hn].labels,Object.defineProperty(ln[hn],"channels",{value:cn}),Object.defineProperty(ln[hn],"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)}ln.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]},ln.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,l=Math.max(o,a,u),h=l-Math.min(o,a,u),c=function(t){return(l-t)/6/h+.5};return 0===h?i=s=0:(s=h/l,n=c(o),e=c(a),r=c(u),o===l?i=r-e:a===l?i=1/3+n-r:u===l&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*l]},ln.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[ln.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)))]},ln.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]},ln.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},ln.keyword.rgb=function(t){return on[t]},ln.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)]},ln.rgb.lab=function(t){var n=ln.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))]},ln.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 l=0;l<3;l++)(r=o+1/3*-(l-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[l]=255*s;return i},ln.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)]},ln.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]}},ln.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)]},ln.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,l=t[1]/100,h=t[2]/100,c=l+h;switch(c>1&&(l/=c,h/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=l+r*((e=1-h)-l),n){default:case 6:case 0:s=e,o=i,a=l;break;case 1:s=i,o=e,a=l;break;case 2:s=l,o=e,a=i;break;case 3:s=l,o=i,a=e;break;case 4:s=i,o=l,a=e;break;case 5:s=e,o=l,a=i}return[255*s,255*o,255*a]},ln.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))]},ln.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))]},ln.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))]},ln.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]},ln.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]},ln.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)]},ln.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:ln.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},ln.hsv.ansi16=function(t){return ln.rgb.ansi16(ln.hsv.rgb(t),t[2])},ln.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)},ln.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]},ln.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]},ln.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},ln.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]},ln.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)]},ln.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]},ln.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]},ln.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)]},ln.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]},ln.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]},ln.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)]},ln.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]},ln.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},ln.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},ln.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},ln.gray.hsl=ln.gray.hsv=function(t){return[0,0,t[0]]},ln.gray.hwb=function(t){return[0,100,t[0]]},ln.gray.cmyk=function(t){return[0,0,0,t[0]]},ln.gray.lab=function(t){return[t[0],0,0]},ln.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},ln.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 gn(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 vn=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]=gn(o,n))}return e},wn={};Object.keys(vn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:vn[t].channels}),Object.defineProperty(wn[t],"labels",{value:vn[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,An=[].slice,kn=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[An.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 kn&&(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=An.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,l=[];for(e=0;e<u.length;e++)l.push(t[u[e]]);this.color=$n(l)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var h=Sn[this.model][e];h&&(this.color[e]=h(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===kn.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(An.call(arguments),n)),new _n(e,t)}}}));var Cn=_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 Tn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function zn(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?Tn.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=>Tn.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,l=Math.log(a),h=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*h*(a-h)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*h/a+c)),d=Math.min(s,Math.floor(r+(a-u)*h/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;class Bn{constructor(t=[],n=Jn){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 Jn(t,n){return t<n?-1:t>n?1:0}\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Xn=[],Yn=[],Zn=[],Kn=[];function Qn(t,n,e){const r=mt(Yn,n,e);t=At(t,function(t,n,e,r,i,s,o,a,u,l){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]=l,t}(Xn,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(Zn,e,n):mt(Zn,n,e);return yt(mt(Kn,e,n),i)<0&&Pt(t,t,-1),t}const te=[];function ne(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=te;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?le(t,3*e,3*e+1,3*e+2,r,i):le(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 ee=[],re=[],ie=[],se=[],oe=[],ae=[],ue=[];function le(t,n,e,r,i,s){ft(se,t[3*n],t[3*n+1],t[3*n+2]),ft(oe,t[3*e],t[3*e+1],t[3*e+2]),ft(ae,t[3*r],t[3*r+1],t[3*r+2]);const o=gt(ee,ae,oe),a=gt(re,se,oe),u=mt(ie,o,a);pt(ue,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]+=ue[0],i[3*e]+=ue[0],i[3*r]+=ue[0],i[3*n+1]+=ue[1],i[3*e+1]+=ue[1],i[3*r+1]+=ue[1],i[3*n+2]+=ue[2],i[3*e+2]+=ue[2],i[3*r+2]+=ue[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 he(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function ce(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var fe={exports:{}};function de(t,n,e){e=e||2;var r,i,s,o,a,u,l,h=n&&n.length,c=h?n[0]*e:t.length,f=pe(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(h&&(f=function(t,n,e,r){var i,s,o,a,u,l=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=pe(t,o,a,r,!1))===u.next&&(u.steiner=!0),l.push(ke(u));for(l.sort(Me),i=0;i<l.length;i++)e=xe(l[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);l=0!==(l=Math.max(s-r,o-i))?32767/l:0}return me(f,d,e,r,i,l,0),d}function pe(t,n,e,r,i){var s,o;if(i===Ue(t,n,e,r)>0)for(s=n;s<e;s+=r)o=ze(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=ze(s,t[s],t[s+1],o);return o&&Oe(o,o.next)&&(De(o),o=o.next),o}function ye(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Oe(r,r.next)&&0!==_e(r.prev,r,r.next))r=r.next;else{if(De(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function me(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=Ae(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,l=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<l&&(a++,r=r.nextZ);n++);for(u=l;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,l*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,l=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?ve(t,r,i,s):ge(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),De(t),t=u.next,l=u.next;else if((t=u)===l){o?1===o?me(t=be(ye(t),n,e),n,e,r,i,s,2):2===o&&we(t,n,e,r,i,s):me(ye(t),n,e,r,i,s,1);break}}}function ge(t){var n=t.prev,e=t,r=t.next;if(_e(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,l=r.y,h=i<s?i<o?i:o:s<o?s:o,c=a<u?a<l?a:l:u<l?u:l,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>l?a:l:u>l?u:l,p=r.next;p!==n;){if(p.x>=h&&p.x<=f&&p.y>=c&&p.y<=d&&Pe(i,a,s,u,o,l,p.x,p.y)&&_e(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function ve(t,n,e,r){var i=t.prev,s=t,o=t.next;if(_e(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,l=o.x,h=i.y,c=s.y,f=o.y,d=a<u?a<l?a:l:u<l?u:l,p=h<c?h<f?h:f:c<f?c:f,y=a>u?a>l?a:l:u>l?u:l,m=h>c?h>f?h:f:c>f?c:f,g=Ae(d,p,n,e,r),v=Ae(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=g&&w&&w.z<=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&Pe(a,h,u,c,l,f,b.x,b.y)&&_e(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&&Pe(a,h,u,c,l,f,w.x,w.y)&&_e(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&Pe(a,h,u,c,l,f,b.x,b.y)&&_e(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=v;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&Pe(a,h,u,c,l,f,w.x,w.y)&&_e(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function be(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Oe(i,s)&&Ee(i,r,r.next,s)&&Ce(i,s)&&Ce(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),De(r),De(r.next),r=t=s),r=r.next}while(r!==t);return ye(r)}function we(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Se(o,a)){var u=Te(o,a);return o=ye(o,o.next),u=ye(u,u.next),me(o,n,e,r,i,s,0),void me(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Me(t,n){return t.x-n.x}function xe(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,l=e,h=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=h&&i!==r.x&&Pe(s<c?i:o,s,h,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Ce(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&Fe(e,r)))&&(e=r,f=u)),r=r.next}while(r!==l);return e}(t,n);if(!e)return n;var r=Te(e,t);return ye(r,r.next),ye(e,e.next)}function Fe(t,n){return _e(t.prev,t,n.prev)<0&&_e(n.next,t,t.next)<0}function Ae(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 ke(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 Pe(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 Se(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&&Ee(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Ce(t,n)&&Ce(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)&&(_e(t.prev,t,n.prev)||_e(t,n.prev,n))||Oe(t,n)&&_e(t.prev,t,t.next)>0&&_e(n.prev,n,n.next)>0)}function _e(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Oe(t,n){return t.x===n.x&&t.y===n.y}function Ee(t,n,e,r){var i=$e(_e(t,n,e)),s=$e(_e(t,n,r)),o=$e(_e(e,r,t)),a=$e(_e(e,r,n));return i!==s&&o!==a||(!(0!==i||!Ie(t,e,n))||(!(0!==s||!Ie(t,r,n))||(!(0!==o||!Ie(e,t,r))||!(0!==a||!Ie(e,n,r)))))}function Ie(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 $e(t){return t>0?1:t<0?-1:0}function Ce(t,n){return _e(t.prev,t,t.next)<0?_e(t,n,t.next)>=0&&_e(t,t.prev,n)>=0:_e(t,n,t.prev)<0||_e(t,t.next,n)<0}function Te(t,n){var e=new je(t.i,t.x,t.y),r=new je(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 ze(t,n,e,r){var i=new je(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 De(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 je(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 Ue(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}fe.exports=de,fe.exports.default=de,de.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Ue(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var l=n[a]*e,h=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Ue(t,l,h,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)},de.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 Ne=fe.exports;\n/*!\n * @maptalks/vector-packer v0.95.0\n * LICENSE : UNLICENSED\n * (c) 2016-2024 maptalks.com\n */const Le={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function Ve(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)Re(e,t.features[r],n,r);else Re(e,"Feature"===t.type?t:{geometry:t},n);return e}function Re(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)He(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)He(i[u],o);else if("LineString"===s)qe([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)We(i[u],o=[]),t.push(Ge(a,"LineString",o,n.properties));return}qe(i,o)}else if("Polygon"===s)qe(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)Re(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 l=[];qe(i[u],l),o.push(l)}}t.push(Ge(a,s,o,n.properties))}}function He(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function We(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 qe(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];We(t[i],s),n.push(s)}}function Ge(t,n,e,r){return{id:void 0===t?null:t,type:Le[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Be(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 Je(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Be({},{width:n,height:e},r);Xe(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 Xe(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 l=((e.y+u)*t.width+e.x)*s,h=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[h+t]=o[l+t]}return n}class Ye{constructor(t,n){Be(this,t,1,n)}resize(t){Je(this,t,1)}clone(){return new Ye({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Xe(t,n,e,r,i,1)}}class Ze{constructor(t,n){Be(this,t,4,n)}resize(t){Je(this,t,4)}clone(){return new Ze({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Xe(t,n,e,r,i,4)}}function Ke(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 Qe(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 tr(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function nr(t,n,e,r,i,s,o){n||0===n||(n=1);const a=tr(t.properties,e,r),u=a*n;let l=(s?100*s:0)||a;return i?l=tr(t.properties,i,s):o&&(l=a-tr(t.properties,o,s)),l*=n,{altitude:u,height:l}}function er(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function rr(t){return null==t}function ir(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function sr(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}function or(t){return 0==(t&t-1)&&0!==t}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */class ar{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 ur{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 ar(o,s,r)}if(r.pack(i,{inPlace:!0}),!or(r.w)||!or(r.h)){const t=lr(r.w),n=lr(r.h);r.resize(t,n)}const o=new Ze({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Ze.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 lr(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 hr{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 Ye({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;Ye.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 cr(t){return t<65536?Uint16Array:Uint32Array}function fr(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function dr(t){return t<256?Uint8Array:t<65536?Uint16Array:Float32Array}function pr(t,n){const e=t.length;t=t.U||t;const r=new n(e);for(let n=0;n<e;n++)r[n]=t[n];return r}function yr(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)He(t.geometry[n],e);else if(2===n)qe(t.geometry,e);else if(3===n)qe(t.geometry,e);else if(5===n)qe(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];qe(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function mr(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 gr(t){return null==t}function vr(t){return"number"==typeof t&&!isNaN(t)}function br(t){return"object"==typeof t&&!!t}function wr(t){return!gr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function Mr(t){return!gr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const xr=Object.prototype.hasOwnProperty;function Fr(t,n){return xr.call(t,n)}const Ar=Math.PI/180;function kr(t){return t&&d(t)&&t.property}function Pr(t){const{verticalCentimeterToPoint:n,tileRatio:e}=t;return n*e}function Sr(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const _r={};function Or(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=_r[n]=_r[n]||Cn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const Er={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,polygonPatternFileWidth:1,polygonPatternFileOrigin:1},Ir={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var $r=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:mr,isNil:gr,isNumber:vr,isInteger:function(t){return(0|t)===t},isObject:br,isString:wr,isFunction:Mr,hasOwn:Fr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*Ar},toDegree:function(t){return t/Ar},evaluate:function(t,n,e){return Mr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:kr,getAltitudeToLocal:Pr,getTubeSizeScale:Sr,normalizeColor:Or,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!Er[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!!Er[t]||!!Ir[t]}});class Cr{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.L(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.L(t,n)}L(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Tr(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),l=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=l,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const zr=Math.pow(2,14),Dr=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 jr,Ur,Nr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Lr={exports:{}};function Vr(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 */jr=Lr,Ur=Lr.exports,function(t){var n=Ur&&!Ur.nodeType&&Ur,e=jr&&!jr.nodeType&&jr,r="object"==typeof Nr&&Nr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,l=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,h={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(h[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(l,".")).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 g(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 v(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,l,h,f,p,y=[],m=t.length,v=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=v,a=1,u=36;i>=m&&d("invalid-input"),((l=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||l>c((o-v)/a))&&d("overflow"),v+=l*a,!(l<(h=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-h))&&d("overflow"),a*=f;M=b(v-s,n=y.length+1,0==s),c(v/n)>o-w&&d("overflow"),w+=c(v/n),v%=n,y.splice(v++,0,w)}return g(y)}function M(t){var n,e,r,i,s,a,u,l,h,p,y,g,w,M,x,F=[];for(g=(t=m(t)).length,n=128,e=0,s=72,a=0;a<g;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<g;){for(u=o,a=0;a<g;++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<g;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(l=e,h=36;!(l<(p=h<=s?1:h>=s+26?26:h-s));h+=36)F.push(f(v(p+(x=l-p)%(M=36-p),0))),l=c(x/M);F.push(f(v(l,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:g},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(jr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Nr);class Rr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var Hr=Rr;class Wr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Wr(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 qr=Wr;const Gr={kind:"null"},Br={kind:"number"},Jr={kind:"string"},Xr={kind:"boolean"},Yr={kind:"color"},Zr={kind:"object"},Kr={kind:"value"},Qr={kind:"collator"},ti={kind:"formatted"},ni={kind:"resolvedImage"};function ei(t,n){return{kind:"array",itemType:t,N:n}}function ri(t){if("array"===t.kind){const n=ri(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const ii=[Gr,Br,Jr,Xr,Yr,ti,Zr,ei(Kr),ni];function si(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!si(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 ii)if(!si(t,n))return null}return`Expected ${ri(t)} but found ${ri(n)} instead.`}function oi(t,n){return n.some(n=>n.kind===t.kind)}function ai(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 ui,li={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 hi(t){return(t=Math.round(t))<0?0:t>255?255:t}function ci(t){return hi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function fi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function di(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{ui={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in li)return li[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=fi(o.pop());case"rgb":return 3!==o.length?null:[ci(o[0]),ci(o[1]),ci(o[2]),a];case"hsla":if(4!==o.length)return null;a=fi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,l=fi(o[1]),h=fi(o[2]),c=h<=.5?h*(l+1):h+l-h*l,f=2*h-c;return[hi(255*di(f,c,u+1/3)),hi(255*di(f,c,u)),hi(255*di(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class pi{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 pi)return t;if("string"!=typeof t)return;const n=ui(t);return n?new pi(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]}}pi.black=new pi(0,0,0,1),pi.white=new pi(1,1,1,1),pi.transparent=new pi(0,0,0,0),pi.red=new pi(1,0,0,1),pi.blue=new pi(0,0,1,1);var yi=pi;class mi{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 gi{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 vi{constructor(t){this.sections=t}static fromString(t){return new vi([new gi(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 vi?t:vi.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 bi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new bi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function wi(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 Mi(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 yi)return!0;if(t instanceof mi)return!0;if(t instanceof vi)return!0;if(t instanceof bi)return!0;if(Array.isArray(t)){for(const n of t)if(!Mi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Mi(t[n]))return!1;return!0}return!1}function xi(t){if(null===t)return Gr;if("string"==typeof t)return Jr;if("boolean"==typeof t)return Xr;if("number"==typeof t)return Br;if(t instanceof yi)return Yr;if(t instanceof mi)return Qr;if(t instanceof vi)return ti;if(t instanceof bi)return ni;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=xi(n);if(e){if(e===t)continue;e=Kr;break}e=t}return ei(e||Kr,n)}return Zr}function Fi(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof yi||t instanceof vi||t instanceof bi?t.toString():JSON.stringify(t)}class Ai{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(!Mi(t[1]))return n.error("invalid value");const e=t[1];let r=xi(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 Ai(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 yi?["rgba"].concat(this.value.toArray()):this.value instanceof vi?this.value.serialize():this.value}}var ki=Ai,Pi=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Si={string:Jr,number:Br,boolean:Xr,object:Zr};class _i{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 Si)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Si[e],r++}else i=Kr;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=ei(i,s)}else e=Si[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,Kr);if(!e)return null;s.push(e)}return new _i(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!si(this.type,xi(e)))return e;if(n===this.args.length-1)throw new Pi(`Expected value to be of type ${ri(this.type)}, but found ${ri(xi(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 Oi=_i;class Ei{constructor(t){this.type=ti,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,Br),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ei(Jr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Yr),!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,Kr);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 Ei(r)}evaluate(t){return new vi(this.sections.map(n=>{const e=n.content.evaluate(t);return xi(e)===ni?new gi("",e,null,null,null):new gi(Fi(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 Ii{constructor(t){this.type=ni,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Jr);return e?new Ii(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=bi.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 $i={"to-boolean":Xr,"to-color":Yr,"to-number":Br,"to-string":Jr};class Ci{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=$i[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,Kr);if(!r)return null;i.push(r)}return new Ci(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 yi)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.`:wi(n[0],n[1],n[2],n[3]),!e))return new yi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new Pi(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 Pi(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?vi.fromString(Fi(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?bi.fromString(Fi(this.args[0].evaluate(t))):Fi(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 Ei([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new Ii(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ti=Ci;const zi=["Unknown","Point","LineString","Polygon"];var Di=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.V={},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?zi[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.V[t];return n||(n=this.V[t]=yi.parse(t)),n}};class ji{constructor(t,n,e,r){this.name=t,this.type=n,this.R=e,this.args=r}evaluate(t){return this.R(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=ji.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 ls(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 ji(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(ri).join(", ")})`:`(${ri(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(ri(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){ji.definitions=n;for(const e in n)t[e]=ji}}var Ui=ji;class Ni{constructor(t,n,e){this.type=Qr,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,Xr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Xr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Jr),!s)?null:new Ni(r,i,s)}evaluate(t){return new mi(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 Li(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 Vi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Ri(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 Hi(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 Wi(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(Hi(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 qi(t,n){for(let e=0;e<n.length;e++)if(Wi(t,n[e]))return!0;return!1}function Gi(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 Bi(t,n,e){for(const l of e)for(let e=0;e<l.length-1;++e)if(void 0,void 0,0!=(a=[(o=l[e+1])[0]-(s=l[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Gi(r,i,s,o)&&Gi(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Ji(t,n){for(let e=0;e<t.length;++e)if(!Wi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Bi(t[e],t[e+1],n))return!1;return!0}function Xi(t,n){for(let e=0;e<n.length;e++)if(Ji(t,n[e]))return!0;return!1}function Yi(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=Ri(t[i][r],e);Li(n,o),s.push(o)}r.push(s)}return r}function Zi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Yi(t[i],n,e);r.push(s)}return r}function Ki(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}Li(n,t)}function Qi(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]];Ki(r,n,e,i),o.push(r)}return o}function ts(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]];Li(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)Ki(r,n,e,i)}var a;return o}class ns{constructor(t,n){this.type=Xr,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(Mi(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 ns(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new ns(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new ns(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=Yi(n.coordinates,r,i),o=Qi(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Wi(t,s))return!1}if("MultiPolygon"===n.type){const s=Zi(n.coordinates,r,i),o=Qi(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!qi(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=Yi(n.coordinates,r,i),o=ts(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Ji(t,s))return!1}if("MultiPolygon"===n.type){const s=Zi(n.coordinates,r,i),o=ts(t.geometry(),e,r,i);if(!Vi(e,r))return!1;for(const t of o)if(!Xi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var es=ns;function rs(t){if(t instanceof Ui){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 es)return!1;let n=!0;return t.eachChild(t=>{n&&!rs(t)&&(n=!1)}),n}function is(t){if(t instanceof Ui&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!is(t)&&(n=!1)}),n}function ss(t,n){if(t instanceof Ui&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!ss(t,n)&&(e=!1)}),e}class os{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 os(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 as=os;class us{constructor(t,n=[],e,r=new qr,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).H(t,i):this.H(t,i)}H(t,n){function e(t,n,e){return"assert"===e?new Oi(n,[t]):"coerce"===e?new Ti(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 ki)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof as)return t(n.boundExpression);if(n instanceof Ui&&"error"===n.name)return!1;if(n instanceof Ni)return!1;if(n instanceof es)return!1;const e=n instanceof Ti||n instanceof Oi;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof ki}),!!r&&(rs(n)&&ss(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Di;try{r=new ki(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 us(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new Hr(e,t))}checkSubtype(t,n){const e=si(t,n);return e&&this.error(e),e}}var ls=us;function hs(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 Pi("Input is not a number.");o=a-1}return 0}class cs{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,Br);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 l=n.parse(o,u,i);if(!l)return null;i=i||l.type,r.push([s,l])}return new cs(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[hs(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 fs=cs,ds=ps;function ps(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 ys(t,n,e){return t*(1-e)+n*e}ps.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 ms=Object.freeze({__proto__:null,number:ys,color:function(t,n,e){return new yi(ys(t.r,n.r,e),ys(t.g,n.g,e),ys(t.b,n.b,e),ys(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>ys(t,n[r],e))}});const gs=6/29*3*(6/29),vs=Math.PI/180,bs=180/Math.PI;function ws(t){return t>.008856451679035631?Math.pow(t,1/3):t/gs+4/29}function Ms(t){return t>6/29?t*t*t:gs*(t-4/29)}function xs(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Fs(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function As(t){const n=Fs(t.r),e=Fs(t.g),r=Fs(t.b),i=ws((.4124564*n+.3575761*e+.1804375*r)/.95047),s=ws((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-ws((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function ks(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*Ms(n),e=.95047*Ms(e),r=1.08883*Ms(r),new yi(xs(3.2404542*e-1.5371385*n-.4985314*r),xs(-.969266*e+1.8760108*n+.041556*r),xs(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function Ps(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Ss={forward:As,reverse:ks,interpolate:function(t,n,e){return{l:ys(t.l,n.l,e),a:ys(t.a,n.a,e),b:ys(t.b,n.b,e),alpha:ys(t.alpha,n.alpha,e)}}},_s={forward:function(t){const{l:n,a:e,b:r}=As(t),i=Math.atan2(r,e)*bs;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*vs,e=t.c;return ks({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:Ps(t.h,n.h,e),c:ys(t.c,n.c,e),l:ys(t.l,n.l,e),alpha:ys(t.alpha,n.alpha,e)}}};var Os=Object.freeze({__proto__:null,lab:Ss,hcl:_s});class Es{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=Is(n,t.base,e,r);else if("linear"===t.name)i=Is(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ds(s[0],s[1],s[2],s[3]).solve(Is(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,Br),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Yr: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 l=n.parse(r,u,a);if(!l)return null;a=a||l.type,o.push([e,l])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new Es(a,e,r,i,o):n.error(`Type ${ri(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=hs(n,r),o=Es.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?ms[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?_s.reverse(_s.interpolate(_s.forward(a),_s.forward(u),o)):Ss.reverse(Ss.interpolate(Ss.forward(a),Ss.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 Is(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 $s=Es;class Cs{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=>si(r,t.type));return new Cs(s?Kr: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 bi&&!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 Ts=Cs;class zs{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 zs(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 Ds=zs;class js{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,Br),r=n.parse(t[2],2,ei(n.expectedType||Kr));return e&&r?new js(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new Pi(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new Pi(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new Pi(`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 Us=js;class Ns{constructor(t,n){this.type=Xr,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,Kr),r=n.parse(t[2],2,Kr);return e&&r?oi(e.type,[Xr,Jr,Br,Gr,Kr])?new Ns(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${ri(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!ai(n,["boolean","string","number","null"]))throw new Pi(`Expected first argument to be of type boolean, string, number or null, but found ${ri(xi(n))} instead.`);if(!ai(e,["string","array"]))throw new Pi(`Expected second argument to be of type array or string, but found ${ri(xi(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 Ls=Ns;class Vs{constructor(t,n,e){this.type=Br,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,Kr),r=n.parse(t[2],2,Kr);if(!e||!r)return null;if(!oi(e.type,[Xr,Jr,Br,Gr,Kr]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${ri(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Br);return i?new Vs(e,r,i):null}return new Vs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!ai(n,["boolean","string","number","null"]))throw new Pi(`Expected first argument to be of type boolean, string, number or null, but found ${ri(xi(n))} instead.`);if(!ai(e,["string","array"]))throw new Pi(`Expected second argument to be of type array or string, but found ${ri(xi(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 Rs=Vs;class Hs{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 l=n.concat(o);if(0===a.length)return l.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return l.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return l.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return l.error("Numeric branch labels must be integer values.");if(e){if(l.checkSubtype(e,xi(t)))return null}else e=xi(t);if(void 0!==i[String(t)])return l.error("Branch labels must be unique.");i[String(t)]=s.length}const h=n.parse(u,o,r);if(!h)return null;r=r||h.type,s.push(h)}const o=n.parse(t[1],1,Kr);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 Hs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(xi(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 Ws=Hs;class qs{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,Xr);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 qs(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 Gs=qs;class Bs{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,Kr),r=n.parse(t[2],2,Br);if(!e||!r)return null;if(!oi(e.type,[ei(Kr),Jr,Kr]))return n.error(`Expected first argument to be of type array or string, but found ${ri(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Br);return i?new Bs(e.type,e,r,i):null}return new Bs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!ai(n,["string","array"]))throw new Pi(`Expected first argument to be of type array or string, but found ${ri(xi(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 Js=Bs;function Xs(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 Ys(t,n,e,r){return 0===r.compare(n,e)}function Zs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Xr,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,Kr);if(!s)return null;if(!Xs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${ri(s.type)}\'.`);let o=n.parse(t[2],2,Kr);if(!o)return null;if(!Xs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${ri(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${ri(s.type)}\' and \'${ri(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Oi(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Oi(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,Qr),!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=xi(s),e=xi(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new Pi(`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=xi(s),e=xi(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 Ks=Zs("==",(function(t,n,e){return n===e}),Ys),Qs=Zs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ys(0,n,e,r)})),to=Zs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),no=Zs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),eo=Zs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),ro=Zs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class io{constructor(t,n,e,r,i,s){this.type=Jr,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,Br);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,Jr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Jr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Jr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Br),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Br),!u)?null:new io(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 so{constructor(t){this.type=Br,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 ${ri(e.type)} instead.`):new so(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 Pi(`Expected value to be of type string or array, but found ${ri(xi(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const oo={"==":Ks,"!=":Qs,">":no,"<":to,">=":ro,"<=":eo,array:Oi,at:Us,boolean:Oi,case:Gs,coalesce:Ts,collator:Ni,format:Ei,image:Ii,in:Ls,"index-of":Rs,interpolate:$s,"interpolate-hcl":$s,"interpolate-lab":$s,length:so,let:Ds,literal:ki,match:Ws,number:Oi,"number-format":io,object:Oi,slice:Js,step:fs,string:Oi,"to-boolean":Ti,"to-color":Ti,"to-number":Ti,"to-string":Ti,var:as,within:es};function ao(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=wi(n,e,r,s);if(o)throw new Pi(o);return new yi(n/255*s,e/255*s,r/255*s,s)}function uo(t,n){return t in n}function lo(t,n){const e=n[t];return void 0===e?null:e}function ho(t){return{type:t}}Ui.register(oo,{error:[{kind:"error"},[Jr],(t,[n])=>{throw new Pi(n.evaluate(t))}],typeof:[Jr,[Kr],(t,[n])=>ri(xi(n.evaluate(t)))],"to-rgba":[ei(Br,4),[Yr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Yr,[Br,Br,Br],ao],rgba:[Yr,[Br,Br,Br,Br],ao],has:{type:Xr,overloads:[[[Jr],(t,[n])=>uo(n.evaluate(t),t.properties())],[[Jr,Zr],(t,[n,e])=>uo(n.evaluate(t),e.evaluate(t))]]},get:{type:Kr,overloads:[[[Jr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Jr,Zr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},"feature-state":[Kr,[Jr],(t,[n])=>lo(n.evaluate(t),t.featureState||{})],properties:[Zr,[],t=>t.properties()],"geometry-type":[Jr,[],t=>t.geometryType()],id:[Kr,[],t=>t.id()],zoom:[Br,[],t=>t.globals.zoom],pitch:[Br,[],t=>t.globals.pitch||0],"distance-from-center":[Br,[],t=>t.distanceFromCenter()],"heatmap-density":[Br,[],t=>t.globals.heatmapDensity||0],"line-progress":[Br,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Br,[],t=>t.globals.skyRadialProgress||0],accumulated:[Kr,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Br,ho(Br),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Br,ho(Br),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Br,overloads:[[[Br,Br],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Br],(t,[n])=>-n.evaluate(t)]]},"/":[Br,[Br,Br],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Br,[Br,Br],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Br,[],()=>Math.LN2],pi:[Br,[],()=>Math.PI],e:[Br,[],()=>Math.E],"^":[Br,[Br,Br],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Br,[Br],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))],log2:[Br,[Br],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Br,[Br],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Br,[Br],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Br,[Br],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Br,[Br],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Br,[Br],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Br,[Br],(t,[n])=>Math.atan(n.evaluate(t))],min:[Br,ho(Br),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Br,ho(Br),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Br,[Br],(t,[n])=>Math.abs(n.evaluate(t))],round:[Br,[Br],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Br,[Br],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Br,[Br],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Xr,[Jr,Kr],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Xr,[Kr],(t,[n])=>t.id()===n.value],"filter-type-==":[Xr,[Jr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Xr,[Jr,Kr],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Xr,[Kr],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Xr,[Kr],(t,[n])=>n.value in t.properties()],"filter-has-id":[Xr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Xr,[ei(Jr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Xr,[ei(Kr)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Xr,[Jr,ei(Kr)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Xr,[Jr,ei(Kr)],(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:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[ho(Xr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[ho(Xr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Xr,[Xr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Xr,[Jr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Jr,[Jr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Jr,[Jr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Jr,ho(Kr),(t,n)=>n.map(n=>Fi(n.evaluate(t))).join("")],"resolved-locale":[Jr,[Qr],(t,[n])=>n.evaluate(t).resolvedLocale()]});var co=oo;function fo(t){return{result:"success",value:t}}function po(t){return{result:"error",value:t}}function yo(t){return!!t.expression&&t.expression.interpolated}function mo(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function go(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function vo(t){return t}function bo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function wo(t,n,e,r,i){return bo(typeof e===i?r[e]:void 0,t.default,n.default)}function Mo(t,n,e){if("number"!==mo(e))return bo(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=hs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function xo(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==mo(e))return bo(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=hs(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 l=ms[n.type]||vo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Os[t.colorSpace];l=(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 l(n,e,o)}}:l(a,u,o)}function Fo(t,n,e){return"color"===n.type?e=yi.parse(e):"formatted"===n.type?e=vi.fromString(e.toString()):"resolvedImage"===n.type?e=bi.fromString(e.toString()):mo(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),bo(e,t.default,n.default)}class Ao{constructor(t,n){this.expression=t,this.W={},this.q=new Di,this.G=n?function(t){return"color"===t.type&&(go(t.default)||Array.isArray(t.default))?new yi(0,0,0,0):"color"===t.type?yi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.B=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.q.globals=t,this.q.feature=n,this.q.featureState=e,this.q.canonical=r||null,this.q.availableImages=i||null,this.q.formattedSection=s,this.q.featureTileCoord=o||null,this.q.featureDistanceData=a||null,this.expression.evaluate(this.q)}evaluate(t,n,e,r,i,s,o,a){this.q.globals=t,this.q.feature=n||null,this.q.featureState=e||null,this.q.canonical=r||null,this.q.availableImages=i||null,this.q.formattedSection=s||null,this.q.featureTileCoord=o||null,this.q.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.q);if(null==t||"number"==typeof t&&t!=t)return this.G;if(this.B&&!(t in this.B))throw new Pi(`Expected value to be one of ${Object.keys(this.B).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.W[t.message]||(this.W[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.G}}}function ko(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in co}function Po(t,n){const e=new ls(co,[],n?function(t){const n={color:Yr,string:Jr,number:Br,enum:Jr,boolean:Xr,formatted:ti,resolvedImage:ni};return"array"===t.type?ei(n[t.value]||Kr,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?fo(new Ao(r,n)):po(e.errors)}class So{constructor(t,n){this.kind=t,this.J=n,this.isStateDependent="constant"!==t&&!is(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.J.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.J.evaluate(t,n,e,r,i,s)}}class _o{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.J=n,this.isStateDependent="camera"!==t&&!is(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.J.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.J.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?$s.interpolationFactor(this.interpolationType,t,n,e):0}}function Oo(t,n){if("error"===(t=Po(t,n)).result)return t;const e=t.value.expression,r=rs(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return po([new Hr("","data expressions not supported")]);const i=ss(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return po([new Hr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Ds)e=t(n.result);else if(n instanceof Ts){for(const r of n.args)if(e=t(r),e)break}else(n instanceof fs||n instanceof $s)&&n.input instanceof Ui&&"zoom"===n.input.name&&(e=n);return e instanceof Hr||n.eachChild(n=>{const r=t(n);r instanceof Hr?e=r:!e&&r?e=new Hr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new Hr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return po([new Hr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof Hr)return po([s]);if(s instanceof $s&&!yo(n))return po([new Hr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return fo(new So(r?"constant":"source",t.value));const o=s instanceof $s?s.interpolation:void 0;return fo(new _o(r?"camera":"composite",t.value,s.labels,o))}class Eo{constructor(t,n){this.X=t,this.Y=n,Vr(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||(yo(e)?"exponential":"interval");if(r&&((n=Vr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],yi.parse(t[1])])),n.default=yi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Os[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,l;if("exponential"===o)a=xo;else if("interval"===o)a=Mo;else if("categorical"===o){a=wo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];l=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=Fo}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:$s.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>xo({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:$s.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,l)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?bo(n.default,e.default):a(n,e,i,u,l)}}}(this.X,this.Y))}static deserialize(t){return new Eo(t.X,t.Y)}static serialize(t){return{X:t.X,Y:t.Y}}}function Io(t){if(Array.isArray(t))return t.map(Io);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=Io(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function $o(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($o(t[n]))return!0;return!1}const Co=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),To={StyleExpression:Ao,isExpression:ko,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:Po,createPropertyExpression:Oo,normalizePropertyExpression:function(t,n){if(go(t))return new Eo(t,n);if(ko(t)){const e=Oo(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=yi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:So,ZoomDependentExpression:_o,StylePropertyFunction:Eo},{isExpression:zo,createExpression:Do}=To,jo={};function Uo(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(Uo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Uo(t.condition);if(gr(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 zn(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(!$o(t))return t;let n=Io(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||$o(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||$o(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||$o(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(Co.has(t[0]))for(let n=1;n<t.length;n++)if($o(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=Po(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=Po(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=!rs(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)=>(jo.zoom=e,n&&n(jo,t))}}const No={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Lo(t,n){No.type=n||"number";const e=Do(t,No);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Vo(t){return zo(t)}const Ro={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 Ho(t){return Ro[t]}const Wo={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},qo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Go(t){return Wo[t]?"string":Ho(t)?"number":qo[t]?"array":"color"}var Bo=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}:Uo(n[t].filter),e.push(mr({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=mr({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Uo,createExpression:Lo,isExpression:Vo,isInterpolated:Ho,getExpressionType:Go});const Jo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Xo extends Array{pushIn(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Z++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Z&&(this.Z=e)}set(t,n){t>=this.Z&&(this.Z=t+1),this[t]=n}getLength(){return this.Z}setLength(t){this.Z=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Z&&this.setLength(t)}reset(){this.Z=0}}const Yo={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Zo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}getLength(){return super.length}}let Ko;class Qo{static createTypedArray(t,n){return pr(t,n)}static getInstance(){return Ko}static getArray(){const t=new Xo,n=new Proxy(t,Yo);return n.push=(...n)=>{t.pushIn(...n)},n.U=t,n}constructor(){this.K=[],this.Z=0}get(){if(!Jo)return new Zo;const t=this.K[this.Z]=this.K[this.Z]||Qo.getArray();return t.reset(),this.Z++,t}reset(){this.Z=0}}Ko=new Qo;const ta=[],na={},ea={},ra={},ia=[],sa=Qo.getInstance(),oa=Math.pow(2,17);class aa{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(Vo(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Go(e);n[r]=Lo(t[e],s),n[i]=(t,e)=>{let i;na.zoom=t,ea.properties=e;try{i=n[r].evaluateWithoutErrorHandling(na,ea,ra,null,ia)}catch(t){return null}return i}}else if(kr(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();Ho(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return kr(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return kr(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.tt=e.fnTypes||aa.genFnTypes(this.symbolDef),kr(this.symbolDef.visible)&&(this.nt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.et(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=oa||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){n<this.rt&&(this.rt=n),n>this.it&&(this.it=n),e<this.st&&(this.st=e),e>this.ot&&(this.ot=e),this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Tr(ta,n,e,r),t.aPosition.push(ta[0],ta[1],ta[2]))}et(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=mr({},t[n]);e.push(yr(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=Ve(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.tt;!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(Uo(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.tt,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},l=[],h=m(this.symbolDef,()=>(l[0]=u.zoom,l));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(vr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const l=this.createStyledVector(t,h,r,u,o,a);l&&l.feature.geometry&&(l.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(l))}}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 Ze({width:r,height:i},s)}this.iconAtlas=new ur(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 Ye({width:r,height:i},s)}}this.glyphAtlas=new hr(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=ua(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=ua(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Cr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.rt=this.st=1/0,this.it=this.ot=-1/0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.ut=sa,sa.reset();let r=this.elements=sa.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]=sa.get();let o=sa.get(),a=0;const u=sa.get();let l=0,h=!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!==ea.id?f&&(f.has(ea.id)?c=!1:f.add(ea.id)):c=!1),vr(i)&&(Math.abs(i)>l&&(l=Math.abs(i)),i<0&&(h=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.lt(t[r][e],n);else this.lt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),vr(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=this.options.center?Float32Array:dr(a);o=Qo.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:fr(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]:pr(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const g=cr(this.maxIndex);r=Qo.createTypedArray(r,g),m.push(r.buffer);const v={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,positionBounding:[this.rt,this.st,this.it,this.ot],buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.ht&&(v.markerPlacement=this.ht),this.ct&&(v.textPlacement=this.ct),u.length){const t=h?fr(l):dr(l);v.featureIds=Qo.createTypedArray(u,t),m.push(v.featureIds.buffer)}else v.featureIds=[];return v.pickingIdIndiceMap=sr(o,v.indices),v}lt(t,n){this.nt&&!this.nt(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=tr(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(Fr(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 ua(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof ur){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 ha(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(gr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=Mr(s)?s(r,e):s,d(o[0])){const n=o[0].ft=o[0].ft||JSON.stringify(o[0]);t.dt||(t.dt={}),t.dt[n]||(t.dt[n]=p(o[0])),o[0]=(0,t.dt[n])(r,e)}return o[1]=o[0],o}function ca(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];br(n[t][1])&&(r=ca(n[t][1])),r>e&&(e=r)}return e}function fa(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const da=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function pa(t,n){return wr(t)?t.replace(da,(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(!gr(r))return r}return""}const e=n[t];return gr(e)?"":Array.isArray(e)?e.join():e})):t}var ya=Object.freeze({__proto__:null,getSDFFont:fa,resolveText:pa,resolveVarNames:function(t){return t.match(da)},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 ma=t=>t>=11904&&t<=12031,ga=t=>t>=12032&&t<=12255,va=t=>t>=12272&&t<=12287,ba=t=>t>=12288&&t<=12351,wa=t=>t>=12352&&t<=12447,Ma=t=>t>=12448&&t<=12543,xa=t=>t>=12544&&t<=12591,Fa=t=>t>=12704&&t<=12735,Aa=t=>t>=12736&&t<=12783,ka=t=>t>=12784&&t<=12799,Pa=t=>t>=12800&&t<=13055,Sa=t=>t>=13056&&t<=13311,_a=t=>t>=13312&&t<=19903,Oa=t=>t>=19968&&t<=40959,Ea=t=>t>=40960&&t<=42127,Ia=t=>t>=42128&&t<=42191,$a=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,za=t=>t>=65072&&t<=65103,Da=t=>t>=65104&&t<=65135,ja=t=>t>=65136&&t<=65279,Ua=t=>t>=65280&&t<=65519;function Na(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||ja(t))}function La(t){return!!(746===t||747===t||!(t<4352)&&(Fa(t)||xa(t)||za(t)&&!(t>=65097&&t<=65103)||$a(t)||Sa(t)||ma(t)||Aa(t)||!(!ba(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||_a(t)||Oa(t)||Pa(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)||wa(t)||va(t)||(t=>t>=12688&&t<=12703)(t)||ga(t)||ka(t)||Ma(t)&&12540!==t||!(!Ua(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)||!(!Da(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)||Ea(t)||Ia(t)))}function Va(t){return!(La(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)||ba(t)||Ma(t)||(t=>t>=57344&&t<=63743)(t)||za(t)||Da(t)||Ua(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ra(t){return t>=1424&&t<=2303||Ca(t)||ja(t)}const Ha=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function Wa(t){for(const n of Ha)if(t>=n[0]&&t<=n[1])return!0;return!1}const qa={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",pt:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ga(t,n,e,r,i,s,o,a,u,l){let h=t.trim();2===l&&(h=function(t){let n="";const e=Array.from(t);for(let t=0;t<e.length;t++){const r=e[t+1].codePointAt(0)||null,i=e[t-1].codePointAt(0)||null;n+=r&&Va(r)&&!qa[e[t+1]]||i&&Va(i)&&!qa[e[t-1]]||!qa[e[t]]?e[t]:qa[e[t]]}return n}(h));const c=[],f={positionedGlyphs:c,text:h,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:l};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}(h,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.codePointAt(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.codePointAt(e),l=r[u];l&&(l&&!Ba[u]&&(o+=l.metrics.advance+n),e<t.length-1&&(Ja[u]||!((a=u)<11904)&&(Fa(a)||xa(a)||za(a)||$a(a)||Sa(a)||ma(a)||Aa(a)||ba(a)||_a(a)||Oa(a)||Pa(a)||Ua(a)||wa(a)||va(a)||ga(a)||ka(a)||Ma(a)||Ta(a)||Ia(a)||Ea(a)))&&i.push(Za(e+1,o,s,i,Ya(u,t.codePointAt(e+1)),!1)))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Za(t.length,o,s,i,0,!0))}(h,o,e,n)),function(t,n,e,r,i,s,o,a,u,l){let h=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.codePointAt(t),r=n[e];r&&(La(e)&&1!==o?(32!==e&&d.push({glyph:e,x:h,y:0,vertical:!0}),h+=u+a):(32!==e&&d.push({glyph:e,x:h,y:c,vertical:!1}),h+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(h-a,f),Qa(d,n,s,d.length-1,p)),h=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Ka(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 g=e.length*r;t.top+=-m*g,t.bottom=t.top+g,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,l,o,u),!!c.length&&f}const Ba={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Ja={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 Xa(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 Ya(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Za(t,n,e,r,i,s){let o=null,a=Xa(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],l=Xa(n-u.x,e,i,s)+u.badness;l<=a&&(o=u,a=l)}return{index:t,x:n,priorBreak:o,badness:a}}function Ka(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 Qa(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 tu(t){if(!function(t){for(const n of t)if(Ra(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);Wa(t)?(r.push(u),i++):(o=Ra(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 nu=/\\{ *([\\w_]+) *\\}/g;class eu{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.yt=this.gt.bind(this),this.tt=r}gt(t,n){return this.feature.properties[n]||""}getShape(t,n){if(this.vt)return this.vt;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.tt;let a;const u=this.symbol,l=this.getIconAndGlyph(),h=this.feature.properties;if(l&&l.glyph){const{font:t,text:i}=l.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=ru(e?e(null,h):u.textHorizontalAlignment,r?r(null,h):u.textVerticalAlignment),m=1.2*c,g=function(t){for(let n=0;n<t.length;n++)if(!Na(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),v=g&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,h):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ga(i,p,w,m,y,"center",v,b,c,1),g&&d&&f&&(a.vertical=Ga(i,p,w,m,y,"center",v,b,c,2))}else if(l&&l.icon){if(!t.positions[l.icon.url])return null;const n=ru(i?i(null,h):u.markerHorizontalAlignment,s?s(null,h):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Ka(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[l.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.vt=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:l,markerLineColorFn:h,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:g,markerPathHeightFn:v,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.tt,{zoom:F}=this.options,A={},k=this.symbol,P=this.feature.properties,S=t?t(null,P):k.markerFile,_=n?n(null,P):k.markerType,O=S||_||k.markerPath,E=!gr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(gr(n.markerWidth)&&gr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,l=n.markerHeight||0;return br(u)&&("identity"!==u.type?u=ca(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),br(u)&&(u="identity"===u.type?i(r,e):ca(u)))),br(l)&&("identity"!==l.type?l=ca(l):(l=t.markerHeight,t[a]&&(l=t[a](r,e)),br(l)&&(l="identity"===l.type?s(r,e):ca(l)))),[u,l]}(k,this.symbolDef,P,F,r,i)||[0,0];let t=k.markerTextFit;if(u&&(t=u(F,P)),t&&k.text&&"none"!==t){const n=k.text.textSize;let e=k.text.textName;d(e)&&(e=p(e)(F,P));const r=pa(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!k.text[e]&&(k.text[i]=p(n),k.text[e]=(t,n)=>{const e=k.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ha(k.text,k.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=k.markerTextFitPadding||[0,0,0,0];l&&(t=l(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ha(k,this.symbolDef,P,F)),!I)return A;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):k.markerPath,n.markerPathWidth=g?g(null,P):k.markerPathWidth,n.markerPathHeight=v?v(null,P):k.markerPathHeight),r){const t=r(null,P);gr(t)||(n.markerWidth=t)}else k.markerWidth>=0&&(n.markerWidth=k.markerWidth);if(i){const t=i(null,P);gr(t)||(n.markerHeight=t)}else k.markerHeight>=0&&(n.markerHeight=k.markerHeight);if(s){const t=s(null,P);gr(t)||(n.markerFill=t)}else k.markerFill&&(n.markerFill=k.markerFill);if(o){const t=o(null,P);gr(t)||(n.markerFillPatternFile=t)}else k.markerFillPatternFile&&(n.markerFillPatternFile=k.markerFillPatternFile);if(a){const t=a(null,P);gr(t)||(n.markerFillOpacity=t)}else k.markerFillOpacity>=0&&(n.markerFillOpacity=k.markerFillOpacity);if(h){const t=h(null,P);gr(t)||(n.markerLineColor=t)}else k.markerLineColor&&(n.markerLineColor=k.markerLineColor);if(c){const t=c(null,P);gr(t)||(n.markerLineWidth=t)}else k.markerLineWidth>=0&&(n.markerLineWidth=k.markerLineWidth);if(f){const t=f(null,P);gr(t)||(n.markerLineOpacity=t)}else k.markerLineOpacity>=0&&(n.markerLineOpacity=k.markerLineOpacity);if(y){const t=y(null,P);gr(t)||(n.markerLineDasharray=t)}else k.markerLineDasharray&&(n.markerLineDasharray=k.markerLineDasharray);if(m){const t=m(null,P);gr(t)||(n.markerLinePatternFile=t)}else k.markerLinePatternFile&&(n.markerLinePatternFile=k.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(nu,this.yt):k.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);vr(t.markerOpacity)&&(r=t.markerOpacity),vr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)Fr(i.stroke,t)&&(gr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)Fr(i.fill,t)&&(gr(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=wr(o[t])?{path:o[t]}:o[t],a=mr({},a,s),a.d=a.path,delete a.path,u.push(a);const l=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&l.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&l.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),l.push(\'preserveAspectRatio="none"\'),n&&l.push(\'width="\'+n+\'"\'),e&&l.push(\'height="\'+e+\'"\'),l.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])Fr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",l.push(n)}return l.push("</svg>"),"data:image/svg+xml;base64,"+btoa(l.join(" "))}(k,I[0],I[1]):null;A.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):k.textName;if(t||0===t){const n=fa(w?w(null,P):k.textFaceName,M?M(null,P):k.textStyle,x?x(null,P):k.textWeight);let e=pa(t,P);e&&e.length&&(e=tu(e),A.glyph={font:n,text:e})}}return this.iconGlyph=A,A}}function ru(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 iu(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let l,h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!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),h=!0),l&&a.equals(l[l.length-1])||(l=[a],s.push(l)),h&&(l.clipped=!0),l.push(c)))))}}return s}class su extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new su(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 ou(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 l=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}),l+=s;a-u[0].distance>r;)l-=u.shift().angleDelta;if(l>i)return!1;o++,a+=n.dist(e)}return!0}function au(t,n,e,r,i,s,o,a,u,l,h){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,l,h,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,g=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),v=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=uu(e.x,a.x,b),M=uu(e.y,a.y,b),x=uu(e.z||0,a.z||0,b);if(w>=0&&w<l&&M>=0&&M<l&&m-d>=0&&m+d<=p){const r=new su(w,M,v,t);r.z=x,h&&(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||ou(n,r,o,i,s)?g.push(r):i&&f++}}y+=u}return u||g.length||a||(g=t(n,y/2,r,i,s,o,a,!0,l,h,c)),g.countOutOfAngle=f,g}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,l,h)}function uu(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=Ke(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,hu),r[t]=r[t].slice(0,n));return r}function hu(t,n){return n.area-t.area}function cu(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).k(i).m(n))}function fu(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 l=u/2;const h=new Bn([],du);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)h.push(new pu(n+l,e+l,l,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 pu(e/n,r/n,0,t)}(t),f=h.length;for(;h.length;){const r=h.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||(l=r.h/2,h.push(new pu(r.p.x-l,r.p.y-l,l,t)),h.push(new pu(r.p.x+l,r.p.y-l,l,t)),h.push(new pu(r.p.x-l,r.p.y+l,l,t)),h.push(new pu(r.p.x+l,r.p.y+l,l,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function du(t,n){return n.max-t.max}function pu(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,cu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function yu(t,n,e,r,i,s,o,a,u,l){const{feature:h,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=h.geometry;s&&(i=iu(h.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const h=au(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,l);if(f.textPlacement&&!f.isIconText)for(let t=0;t<h.length;t++)h[t].startIndex=n.length/3;if(t.push.apply(t,h),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+=h.countOutOfAngle||0}return t}return mu(h,o,s)}function mu(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++)er(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]&&!er(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]&&!er(t[0],e)&&(s.push(t[0]),r&&gu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!er(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=fu(a,16);er(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++)er(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||er(a[0],e)||(s.push(a[0]),r&&gu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!er(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 er(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];er(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 vu(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 l(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let h=0;h<t.length;h++){const c=t[h],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(h);continue}const p=l(d,f),y=l(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[l(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(h),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class bu extends aa{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=aa.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!(rr(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 l=[],h={},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||rr(d)?c.push(t[o]):(void 0===h[d]&&(h[d]=l.length,l.push({features:[],property:d})),l[h[d]].features.push(t[o]))}return c.length&&l.push({features:c}),l}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?vu(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(...bu.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(const e of n)if(!t[e.codePointAt(0)])return!1}return!0}constructor(t,n,e){super(t,n,e),this.bt=n.textPlacement,this.tt.textPlacementFn&&(this.bt=this.tt.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new eu(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(const t of n)e[t.codePointAt(0)]=1;"line"===this.bt&&(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.wt()):e.push(...this.Mt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:l,textRotationFn:h,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.tt;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"}),(l||h)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}xt(){return this.hasMapPitchAlign}wt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.tt,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}Mt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.tt,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.Ft(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,l="line"===this.bt&&!a.isIconText,h=void 0!==a.textName,c=h&&l&&function(t){let n=0;for(let e=0;e<t.length;e++)if(La(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:g,textDxFn:v,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:A,textOpacityFn:k,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:C,markerIgnorePlacementFn:T,markerOpacityFn:z}=this.tt;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(h){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 l=4,h=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+h,0]:[0,0],d=n?[0,o.y-c]:[o.x+h,o.y-c],p=a.metrics.left-l-h+d[0],y=a.metrics.top-l+d[1],m=p+u.w,g=y+u.h,v=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,g),M=new Ut(m,g);if(n&&o.vertical){const t=new Ut(-h,h),n=-Math.PI/2,e=new Ut(5,0);v._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:v,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,l,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Or([],j)),p&&(U=p(this.options.zoom,u),rr(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Or([],N)),m&&(L=m(null,u)),g&&(V=255*g(null,u)),v&&(R=v(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=ir(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,l;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),l=new Ut(r,i),[{tl:o,tr:a,bl:l,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)),rr(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),rr(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=ir($(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=C||F;Q&&(Z=Q(null,u)||0);const tt=T||A;let nt;tt&&(K=tt(null,u)||0);const et=k||z;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}=nr(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&&er(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.At(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*d.x,10*d.y,y.x,y.y),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.At(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),h&&this.kt(i,l,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Pt(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)}}}At(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}kt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.xt()&&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)}}Pt(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p,y,m,g){const{textFillFn:v,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:A,textPitchAlignmentFn:k,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:C,markerDyFn:T,markerPitchAlignmentFn:z,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.tt;v&&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),A&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(l),C&&t.aMarkerDx.push(h),T&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(k||z)&&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)+g)),i>0&&(this.properties.hasHalo=1)}Ft(t,n,e){const{feature:r,symbol:i}=t,s=this.St(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:l}=this.tt,h=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=l?l(this.options.zoom,o):i.textMaxAngle;rr(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.xt();return yu(t,this.lineVertex,c,n,e,f,s,h,p,d)}St(t,n){let e;return e=this.tt.markerPlacementFn?this.tt.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.bt,this.ht||!n.markerPlacement&&!n.isIconText||(this.ht=e),!this.bt||n.isIconText||this.ct||(this.ct=e),e}getPackSDFFormat(t){if("line"!==this.bt||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.xt()&&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 wu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new wu(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().k(t)}k(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 Mu=Math.cos(Math.PI/180*37.5),xu=Math.pow(2,16)/1,Fu=new Ut,Au=new Ut,ku=new Ut;class Pu extends aa{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.tt;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=Ou(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Cr(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.tt,l=[...this.getPositionFormat()];if(l.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),l.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&l.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&l.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&l.push({type:Uint8Array,width:4,name:"aColor"}),e&&l.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&l.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&l.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&l.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();l.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&l.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&l.push({type:Int8Array,width:2,name:"aLinePattern"}),l}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:l,lineDyFn:h,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.tt,p=this.symbol,y=t.feature,m=y.properties;let g=p.lineJoin||"miter",v=p.lineCap||"butt";if(n&&(g=n(this.options.zoom,m)||"miter"),e&&(v=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),gr(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),gr(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),gr(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=Or([],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=Or([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),gr(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=Or([],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(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),gr(t)&&(t=0),this.feaLineDx=t}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),gr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),gr(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),gr(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=iu(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._t(w[t],y,g,v,2,1.05)}Ot(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}_t(t,n,e,r,i,s){const o=this.Ot()||Ou(this.feaDash)||Ou(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new wu(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&&vr(n.properties.mapbox_clip_start)&&vr(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 l=3===n.type&&!t.clipped;let h=t.length;for(;h>=2&&Cu(t[h-1],t[h-2]);)h--;let c=0;for(;c<h-1&&Cu(t[c],t[c+1]);)c++;if(h<(l?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,g,v;this.e1=this.e2=-1,l&&(p=t[h-2],v=t[c].sub(p).I().C());for(let n=c;n<h;n++){if(m=n===h-1?l?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;v&&(g=v),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),v=m?m.sub(p).I().C():g,d.dir=y?p.sub(y).I():m.sub(p).I(),g=g||v,d.currentNormal=g;let u=g.add(v);0===u.x&&0===u.y||u.I();const b=g.x*v.x+g.y*v.y,w=u.x*v.x+u.y*v.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<Mu&&y&&m,A=g.x*v.y-g.y*v.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).k(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,g,0,0,d),y=n}}const k=y&&m;d.middleVertex=k;let P=k?e:l?"butt":r;if(k&&"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,g,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,v,0,0,d)):(u.k(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=v,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=v.mult(-1);else{const t=M*g.add(v).mag()/g.sub(v).mag();u.C().k(t*(A?-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=A?t:0,e=A?0:t;if(y&&this.addCurrentVertex(p,g,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=v.sub(g).k(e).m(g).I().k(A?-1:1);this.addHalfVertex(p,r.x,r.y,!1,A,0,d)}}m&&(d.currentNormal=v,this.addCurrentVertex(p,v,-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,g,0,0,d),this.addCurrentVertex(p,g,1,1,d,!0)),m&&(this.addCurrentVertex(p,v,-1,-1,d,!0),this.addCurrentVertex(p,v,0,0,d)));if(!a&&F&&n<h-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).k(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,v,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,l=-n.y-n.x*r;let h=0,c=0;if(i.middleVertex){Fu.x=o,Fu.y=a,Au.x=u,Au.y=l;const t=i.currentNormal;if(h=$u(t,Fu),0===e&&0===r)c=-h;else{const n=ku;n.x=t.x,n.y=t.y,n.k(-1),c=$u(n,Au)}}this.addHalfVertex(t,o,a,s,!1,e,i,h),this.addHalfVertex(t,u,l,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>xu/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,l){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,l);const h=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,h),u.primitiveLength++),o?this.e2=h:this.e1=h}fillData(t,n,e,r,i,s,o,a,u,l){const{lineWidthFn:h,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:g,linePatternGapFn:v}=this.tt;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*l),t.aLinesofar.push(u),h&&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),(g||v)&&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)}Et(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(_u(this.data.aPosition,e[r],e[r+1],3,n)||_u(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}It(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=Su(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=Pr(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)*(xu-1):this.distance}}function Su(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 _u(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 Ou(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Eu=new Ut(0,0),Iu=new Ut(0,0);function $u(t,n){const e=t.mag(),r=n.mag();Eu.x=n.x,Eu.y=n.y;const i=t.angleTo(Iu),s=n.angleTo(Iu);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 Pu{constructor(t,n,e){super(t,n,e),this.$t=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.tt,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.$t&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.$t){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=nr(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}_t(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super._t(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 l=!1!==this.options.top,h=!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.Ct(t,n,e,i,s,o,a,u,p,y,f,d),h&&(l&&this.Ct(t,n,e,i,s,o,a,u,p,y,f,d),this.Ct(t,n,e,i,s,o,a,u,p,y,f,d),this.Tt(t,n,e,i,s,o,a,u,p,y,f,d),this.Tt(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}Ct(t,n,e,r,i,s,o,a,u,l,h,c){const{lineColorFn:f,lineWidthFn:d}=this.tt;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,l,1),t.aExtrude.push(h,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.$t&&t.aLineHeight.push(this.feaAltitude)}Tt(t,n,e,r,i,s,o,a,u,l,h,c){const{lineColorFn:f,lineWidthFn:d}=this.tt;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,l,1),t.aExtrude.push(h,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.$t&&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:l,aColor:h,aLineHeight:c,aLineWidth:f}=r,d={},p=ne(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=l,h&&(d.aColor=h),f&&(d.aLineWidth=f),c){const t=fr(this.maxAltitude);d.aLineHeight=new t(c)}const g=[];for(const t in d)g.push(d[t].buffer);return e.data=d,e.buffers=g,e}}const zu=Math.pow(2,16)/1;class Du extends aa{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._t(r[t],n),e&&(this.Et(i),this.elements=[]);e&&(this.elements=i)}_t(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>zu&&(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)}Et(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)Qe(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const ju=45*Math.PI/100;class Uu extends aa{getFormat(){const{markerFillFn:t}=this.tt;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.tt;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=Or([],r));const i="line"===this.symbol.markerRotationAlignment,s=this.Ft(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)}}Ft(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=iu(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=au(e[r],n,ju,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return mu(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 Nu=[],Lu=[];function Vu(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Hu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Hu(a=t[o],n)&r))!==s){const t=Ru(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 Ru(t,n,e,r){return Nu[0]=void 0===t.x?t[0]:t.x,Nu[1]=void 0===t.y?t[1]:t.y,t=Nu,Lu[0]=void 0===n.x?n[0]:n.x,Lu[1]=void 0===n.y?n[1]:n.y,n=Lu,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 Hu(t,n){Nu[0]=void 0===t.x?t[0]:t.x,Nu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Nu)[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 Wu=[0,0,0,0];class qu extends aa{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Cr(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,polygonPatternUVFn:s}=this.tt;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"}),s&&t.push({type:Float32Array,width:2,name:"aTexCoord"}),t}placeVector(t,n){const e=t.feature;this.zt(e.geometry,e,n)}zt(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:l,uvOffsetInMeterFn:h,polygonPatternUVFn:c}=this.tt,f=n.properties;o&&(e=o(this.options.zoom,f)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=Wu):e=Or([],e)),a&&(r=a(this.options.zoom,f),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(gr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,f),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(gr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),l&&(h&&h(null,f)?s=[0,0]:(s=l(this.options.zoom,f),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(gr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]])));const p=!!this.iconAtlas,y=lu(t,500),m=[0,0],g=[0,0];if(p){const{polygonPatternFileFn:t}=this.tt,n=t?t(null,f):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n],e=!or(t.displaySize[0])||!or(t.displaySize[1]);m[0]=t.tl[0]+(e?1:0),m[1]=t.tl[1]+(e?1:0),g[0]=t.displaySize[0]-1-(e?2:0),g[1]=t.displaySize[1]-1-(e?2:0)}}let v,b=0;c&&(v=c(this.options.zoom,f));const w=this.needAltitudeAttribute()?2:3,M=[-1,-1,n.extent+1,n.extent+1],x=this.Dt=this.Dt||this.ut.get(),F=this.jt=this.jt||this.ut.get();for(let t=0;t<y.length;t++){const n=y[t],o=this.data.aPosition.length/w;x.setLength(0),F.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Vu(o,M)),0!==o.length){0!==t&&F.push(x.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;if(this.fillPosition(this.data,n,a,u),p&&this.data.aTexInfo.push(m[0],m[1],g[0],g[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]),c){if(v){const t=gr(v[2*b])?v[0]:v[2*b],n=gr(v[2*b]+1)?v[1]:v[2*b+1];this.data.aTexCoord.push(t,n)}else this.data.aTexCoord.push(-9999999,-9999999);b++}const l=Math.abs(n),h=Math.abs(a);l>this.maxPos&&(this.maxPos=l),h>this.maxPos&&(this.maxPos=h),x.push(n,a,u)}}}let a=Ne(x,F,3);if(x.length&&!a.length){const t=[];for(let n=0;n<x.length;n+=3)t[n]=x[n],t[n+1]=x[n+2],t[n+2]=x[n+1];if(a=Ne(t,F,3),!a.length){for(let n=0;n<x.length;n+=3)t[n]=x[n+1],t[n+1]=x[n+2],t[n+2]=x[n];a=Ne(t,F,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Gu=[{type:Int16Array,width:3,name:"aPosition"}];class Bu extends aa{getFormat(){return Gu}placeVector(t,n){const e=this.Ft(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Gu[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)}}Ft(t,n){const{feature:e,symbol:r}=t,i=this.St(t,r),s=e.properties,{markerSpacingFn:o}=this.tt,a=((o?o(null,s):r.markerSpacing)||250)*n;return yu(t,null,null,n,this.options.EXTENT,i,a)}St(t,n){return this.tt.markerPlacementFn?this.tt.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Ju extends Pu{constructor(t,n,e){(n=mr({},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.tt,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:l,z:h}=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(Xu,e,r,i),ft(Yu,s,o,0),mt(Zu,Xu,Yu),pt(Yu,Yu),pt(Zu,Zu),Ku[n]||(Ku[n]=[]);const u=Ku[n];for(var l=0;l<n;l++){const t=Math.PI*l/n,e=1-Math.abs(t-0)/(Math.PI/2);u[l]=u[l]||[],Qu(Yu,Zu,u[l],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,l,h||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:l,lineOpacityFn:h,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.tt,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=Sr(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}l&&t.aColor.push(...this.feaColor),h&&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 Xu=[],Yu=[],Zu=[],Ku={};function Qu(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 tl extends Ju{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:l,z:h}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(el,e,r,i),ft(rl,s,o,0),mt(il,el,rl),pt(rl,rl),pt(il,il),_t(nl,t,n);const u=Et(nl)/t,l=Math.atan(n/t);let h=Math.PI/2+(Math.PI/2-l);return sl[0]||(sl[0]=[]),Qu(rl,il,sl[0],u,h,a?1:-1),h+=2*l,sl[1]||(sl[1]=[]),Qu(rl,il,sl[1],u,h,a?1:-1),sl}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,l,h||0,y,i,c,a)}}const nl=[],el=[],rl=[],il=[],sl=[];class ol{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 al=1e20;function ul(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 ll(t,n,e,r,i,s){for(var o=0;o<n;o++)hl(t,o,n,e,r,i,s);for(var a=0;a<e;a++)hl(t,a*n,1,n,r,i,s)}function hl(t,n,e,r,i,s,o){var a,u,l,h;for(s[0]=0,o[0]=-al,o[1]=al,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,l=0;a<r;a++){do{l=(i[a]-i[h=s[u]]+a*a-h*h)/(a-h)/2}while(l<=o[u]&&--u>-1);s[++u]=a,o[u]=l,o[u+1]=al}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[h=s[u]]+(a-h)*(a-h)}}ul.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?al:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?al:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(ll(this.gridOuter,n,e,this.f,this.v,this.z),ll(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 cl=0;class fl{constructor(t,n=15,e){this.entries={},this.Ut={},this.Nt=new ol(2048,(function(){})),this.Lt=t,this.Vt=n,this.Rt=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.Rt;const s=(r,s,a)=>{let u=0,l=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const h in t[n]){if(l++,l<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!La(+h),f=n+":"+h+":"+c;let d;if(this.Nt.has(f)?d=this.Nt.get(f):(d=this.Ht(e[n],t,h,c),this.Nt.add(f,d),u++),d=dl(d),s[n][h]=d,a.push(d.bitmap.data.buffer),this.Lt&&u>this.Vt)return void this.Lt(o(l,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ht(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 l=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 ul(24,u,8,.25,o,n,i)}const h=String.fromCodePoint(e),c=a.ctx.measureText(h),f=Math.round(c.width),d=a.draw(h,f+2*u,24+2*u);if(cl<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+cl++);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+l}}}}function dl(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:mr({},t.metrics)}}var pl=Object.freeze({__proto__:null,clipPolygon:Vu,calculateSignedArea:Ke,getFeaAltitudeAndHeight:nr,generatePickingIndiceIndex:sr,convertRTLText:tu,packPosition:Tr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%zr),s=(Math.sign(e)||1)*(Math.abs(e)%zr),o=Math.floor(Math.abs(n)/zr),a=Math.floor(Math.abs(e)/zr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Dr+r,t},convertGeometry:yr,getPosArrayType:fr,getUnsignedArrayType:dr,getIndexArrayType:cr});const yl={},ml={},gl=[];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)Fr(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})},l={},h=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Lo(this["_"+t],n));const r=e()[0];l.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(l,yl,ml,null,gl)}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(Vo(n[e])){r=!0;const t=Go(e);o["_"+e]=n[e],h(e,t)}else o[e]=n[e]}return r?o:n}});const vl={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},vl),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},vl);new Float32Array([-1e12])[0];const bl="maptalks_ombb";function wl(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p,y,m){const g=n.length,v=i/3;for(let e=2,r=g;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+=g;for(let e=2,r=g;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+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,(e=e||[]).push(g/3);for(let n=0;n<e.length;n++){Ml(v+(e[n-1]||0),v+e[n],t,g/3,u,r,l,h,c,f,s,d,p,y,m)}return i}function Ml(t,n,e,r,i,s,o,a,u,l,h,c,f,d,p){const y=s.length;let m,g;for(let o=t,a=n;o<a-1;o++)m=o,g=o+1,i!==1/0&&at(e,m,g,i)||((o-t)%2==1&&(m+=2*r,g+=2*r),p?(s.push(m+r,g,m),s.push(g+r,g,m+r)):(s.push(m+r,m,g),s.push(g,g+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,l,h){let c,f=0,d=0,p=0,y=0;const m=h?[1,3,4]:[2,3,4];for(let h=s.length-1;h>=0;h--){const g=s[h],v=3*g+1,b=3*g+2,w=i[3*g],M=i[v],x=i[b];f||d||(f=Math.max(i[b],i[3*s[h-3]+2]),d=Math.min(i[b],i[3*s[h-3]+2]),c=f-d);let F=p;const A=h%6;0===t?(5===A&&(y=jt(i,s,h,w,M)),F=A===m[0]||A===m[1]||A===m[2]?p:p+y):1===t&&(A===m[0]||A===m[1]||A===m[2]?F=0:5===A?(y=jt(i,s,h,w,M),F=y):F=y);const k=F/u*(1/(100*l))/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/a:0:x===f?0:-c/100/a,r[2*g]=k,r[2*g+1]=P,0===A&&(p+=y)}}(a,u,l,h,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function xl(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 Fl=Qo.getInstance();function Al(t,n,e,r,i,s,o,a,u,l,h,c,f,m,g,v){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),Fl.reset();const{altitudeScale:b,altitudeProperty:w,defaultAltitude:M,heightProperty:F,minHeightProperty:A,defaultHeight:k,tangent:_,uv:O,topUVMode:E,sideUVMode:I,sideVerticalUVMode:$,top:C,side:T,textureYOrigin:z,topThickness:D}=n,j=!!v,U=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:l,top:h,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:g,textureYOrigin:v,tileRatio:b,centimeterToPoint:w,verticalCentimeterToPoint:M,positionType:F,res:A,glScale:k,projectionCode:S},_,O){let E=n/t[0].extent;n===1/0&&(E=1);const I=n===1/0,$=O.get(),C=O.get(),T=O.get(),z=O.get(),D=O.get(),j=O.get(),U=O.get(),N=!!d,L=!!h,V=!!l,R=N?O.get():null;function H(t,e,r,i,s,o){let a=e;if(L){const i=Ne(z,r,3);if(0===i.length)return e;if(P(D,z),e+=z.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(j,i),N&&zt(y||0,t,e,R,D,f,w,b,p[0],p[1],s,A,k,S,u),c>0&&!V&&(e=wl(D,z,r,j,e,R,0,c,n,N,m||0,g||0,v,p,b,M,o)),U.setLength(e/3),U.fill(1,a/3,e/3)}if(V){L&&(c=0),a=e,e=wl(D,z,r,j,e,R,c,i,n,N,m||0,g||0,v,p,b,M,o),U.setLength(e/3);const t=z.length/3;U.fill(1,a/3,a/3+t),U.fill(0,a/3+t,a/3+2*t),U.fill(1,a/3+2*t,a/3+3*t),U.fill(0,a/3+3*t,e/3)}return e}let W=0,q=0;const G=[-1,-1,n+1,n+1];let B=0,J=t.length;x(_)&&(B=_,J=_+1);let X=0,Y=!1;const Z=O.get();for(;B<J;B++){const u=t[B],l=u.id;x(l)&&(Math.abs(l)>X&&(X=Math.abs(l)),l<0&&(Y=!0));const h=u.geometry,c=u.properties[bl];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=pl.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);W=Math.max(Math.abs(d),W);const y=D.length;let m=0,g=q;Z.setLength(0),z.setLength(0);const v=pl.calculateSignedArea(h[0])<0;for(let t=0,e=h.length;t<e;t++){let r=h[t];v&&(r=r.reverse()),r=xl(r);const i=pl.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],q=H(g,q,Z,p*E,f,I),z.setLength(0),Z.setLength(0),g=q),n!==1/0&&(r=pl.clipPolygon(r,G)),!r.length){t===e-1&&(q=H(g,q,Z,p*E,f,I));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&&Z.push(z.length/3),ot(z,z.length,r,E,d,!1,F),t===e-1&&(q=H(g,q,Z,p*E,f,I))}const b=D.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)C.push(void 0===u[w]?B:u[w]),$.push(B),x(l)&&T.push(l)}const K=pl.getUnsignedArrayType(C.length?C[C.length-1]:0),Q={maxAltitude:W,vertices:D,verticeTypes:U,indices:j,pickingIds:Qo.createTypedArray(C,K),featureIndexes:$};if(T.length){const t=Y?pl.getPosArrayType(X):pl.getUnsignedArrayType(X);Q.featureIds=Qo.createTypedArray(T,t)}else Q.featureIds=[];return R&&(R.setLength(D.length/3*2),Q.uvs=R),Q}(t,e,{altitudeScale:b,altitudeProperty:w,defaultAltitude:M||0,heightProperty:F,minHeightProperty:A,defaultHeight:k||0},{center:v,top:C,side:T,topThickness:10*D||0,uv:O||_,uvSize:[i,i],uvOrigin:r,topUVMode:E,sideUVMode:I,sideVerticalUVMode:$,textureYOrigin:z,tileRatio:a,centimeterToPoint:u,verticalCentimeterToPoint:l,positionType:g,res:s,glScale:o,projectionCode:f},m,Fl),N=[],L=U.vertices.length/3,V=pl.getIndexArrayType(L),R=Qo.createTypedArray(U.indices,V);delete U.indices,N.push(R.buffer,U.pickingIds.buffer);const H=_?Fl.get():new Float32Array(3*L);H.setLength&&H.setLength(3*L);const W=ne(U.vertices,R,H);let q=!0;for(let t=0;t<W.length;t++){j||(W[t]=-W[t]);const n=W[t]%1;1-Math.abs(n)>1e-6?q=!1:0!==n&&(W[t]=Math.round(W[t]))}if(U.normals=W,_){let t=Fl.get();t.setLength(4*L),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 l=[0,0,0],h=[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 g(n,r,i){he(l,t,3*n),he(h,t,3*r),he(c,t,3*i),ce(f,e,2*n),ce(d,e,2*r),ce(p,e,2*i);const s=h[0]-l[0],o=c[0]-l[0],g=h[1]-l[1],v=c[1]-l[1],b=h[2]-l[2],w=c[2]-l[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],A=p[1]-f[1],k=1/(M*A-x*F);ft(y,(A*s-F*o)*k,(A*g-F*v)*k,(A*b-F*w)*k),ft(m,(M*o-x*s)*k,(M*v-x*g)*k,(M*w-x*b)*k),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)g(r[t+0],r[t+1],r[t+2]);const v=[],b=[],w=[],M=[];let x,F,A;function k(t){he(w,n,3*t),ct(M,w),F=a[t],ct(v,F),gt(v,v,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(v,v),mt(b,M,F),A=yt(b,u[t]),x=A<0?-1:1,o[4*t]=v[0],o[4*t+1]=v[1],o[4*t+2]=v[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)k(r[t+0]),k(r[t+1]),k(r[t+2]);return o}(U.vertices,U.normals,U.uvs,R,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),Qn(s,i,r),vt(e.subarray(o,o+4),s)}return e}(U.normals,t),U.tangents=t,N.push(t.buffer),delete U.normals}if(U.normals&&(q&&(U.normals=Qo.createTypedArray(U.normals,Int8Array)),N.push(U.normals.buffer)),U.uvs){const t=U.uvs;U.uvs=Qo.createTypedArray(t,Float32Array),N.push(U.uvs.buffer)}if(v){const t=U.vertices;for(let n=0;n<t.length;n+=3)t[n]-=v[0],t[n+1]-=v[1]}const G=g||pl.getPosArrayType(Math.max(512,U.maxAltitude)),B=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 l=o(e,u);d(l)&&(i.aColor=1,o=y(l),l=o(e,u)),delete u.$layer,delete u.$type,$r.normalizeColor(kl,l),a[4*n]=kl[0],a[4*n+1]=kl[1],a[4*n+2]=kl[2],a[4*n+3]=kl[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 l=o(e,u);d(l)&&(i.aOpacity=1,o=y(l),l=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*l}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,h,c,U.featureIndexes),J=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 l=o&&y(r.topPolygonFill),h=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 g=1===t[r];if(g&&n[r]===c){t[r]=p;continue}if(!g&&n[r]===f){t[r]=m;continue}const v=e[n[r]],b=v.properties||{};b.$layer=v.layer,b.$type=v.type;let w=g?l:h,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,$r.normalizeColor(kl,M),wt(kl,kl,u);let x=Pl(s,kl);x<0&&(x=s.length,s.push(vt([],kl))),t[r]=x,g?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(U.verticeTypes,U.featureIndexes,t,h,c),X={data:{data:{aVertexColorType:J.length<=252?Qo.createTypedArray(U.verticeTypes,Uint8Array):Qo.createTypedArray(U.verticeTypes,Uint16Array),aPosition:Qo.createTypedArray(U.vertices,G),aNormal:U.normals,aTexCoord0:U.uvs,aTangent:U.tangents,aPickingId:U.pickingIds},indices:R,properties:{maxAltitude:U.maxAltitude},dynamicAttributes:B.dynamicAttributes,vertexColors:J},buffers:N};return U.featureIds.length?(X.data.featureIds=U.featureIds,N.push(X.data.featureIds.buffer)):X.data.featureIds=[],B.aColor&&(X.data.data.aColor=B.aColor,X.buffers.push(B.aColor.buffer)),B.aOpacity&&(X.data.data.aOpacity=B.aOpacity,X.buffers.push(B.aOpacity.buffer)),X.buffers.push(X.data.data.aPosition.buffer),X.data.pickingIdIndiceMap=pl.generatePickingIndiceIndex(X.data.data.aPickingId,X.data.indices),X}const kl=[];function Pl(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function Sl(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:l,bottom:h}){const c=h,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),g=new Uint8Array(m.length/3*4);d(e)&&(e=Bo.compileFilter(e));const v=[];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 l,h;for(let t=a,e=u+a;t<e;t++)t<e-1?(l=t,h=t+1):(l=t,h=a),at(m,l,h,n)||(v.push(l,h),c&&v.push(l+u,h+u),_l(m,l,n)||v.push(l,l+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),A=[];for(let n=0,h=t.length;n<h;n++){const h=t[n],c=h.geometry;if(e){let t;t="function"==typeof e?e(h&&h.properties):e,$r.normalizeColor(A,t)}else ft(A,255,255,255);const d=w/3*4,{altitude:p,height:x}=pl.getFeaAltitudeAndHeight(h,i,s,o,a,l,u);M=Math.max(Math.abs(p),M);let k=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,k,n,f,p),w=b(k,w,x*f),k=w}const P=k/3*4;for(let t=d;t<P;t+=4)g[t]=A[0],g[t+1]=A[1],g[t+2]=A[2],g[t+3]=255*(r||1);const S=v.length-y.length;for(let t=0;t<S;t++)y.push(h[F])}const k=v.reduce((t,n)=>Math.max(t,n),0),P=new(pl.getIndexArrayType(k))(v),S=pl.getUnsignedArrayType(t.length);return{aPosition:new(pl.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:g}}function _l(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Ol(t,n,e,r){const i=Sl(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 El=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),El=!0}catch(t){El=!1}var Il=El;const $l="__original_properties",Cl="__fn-type_properties";class Tl{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Wt(n.style),this.requests={},this.Nt=r,this.qt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.qt=t.styleCounter,this.Wt(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.Gt(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=A(s)?s[i[n].layer]:s,e=i[n].properties;i[n].id=e&&e[t]||null}if(n)this.Gt(u,n);else if(i&&i.length){if(u)for(let t=0;t<u.length;t++)this.Bt.call(u[t].ref,u[t].context,u[t].callback,r,o,i,a)}else this.Gt(u)})}Bt(t,n,e,r,i,s){this.Jt(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.Xt(t),n()}Xt(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]}Gt(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.Nt,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&Il){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.Yt||(this.Yt=new fl),this.Yt.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)}Jt(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.Zt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Vl(n,e.tileInfo.z,o[t],a);const u=[],l=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){l.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=l[i];r||(r=ql(e),l[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(l[n])}else u.push(e)}const h=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,g=[],v={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let A=!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}Jl(r.symbol,F,t),A=A||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:l}=this.Kt(c,r.type,r.filter,n,v,t);if(!u.length){a[x]=null;continue}const m=l[l.length-1],k=pl.getIndexArrayType(m);a[x]={styledFeatures:new k(l)},y.push({idx:t,typeIdx:x}),g.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:h,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.Qt(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++)g.push(t.buffers[n])}if(e!==this.qt)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||A){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=jl(t.properties)),t&&(m.features||A&&v[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[$l],e.customProps=w({},n),t=e}const i=w({},t);if(A&&v[r]&&(!m.features||"transient"===m.features)){const i=v[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[Cl]||(i[Cl]=new Set),i[Cl].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t],e=n.properties[Cl];if(e){delete n.properties[Cl],"transient"===m.features&&(n.fnTypeProps=w({},n.properties));for(const t in n.properties)e.has(t)||("transient"===m.features?delete n.fnTypeProps[t]:delete n.properties[t])}}}return{data:{schema:a,data:d,featureData:p,extent:h,features:s},buffers:g}}).catch(t=>{console.error(t)})}Qt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:l,zoom:h,tilePoint:c,centimeterToPoint:f,verticalCentimeterToPoint:d}=e,p=a/o,y=i.type,m=e.debugIndex;let g=w({},i,{EXTENT:a,zoom:h,debugIndex:m,features:this.options.features});if("3d-extrusion"===y){const t=Ul(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode,o=s.material&&s.material.textureWidth||23.25;return Promise.all([Promise.resolve(Al(r,i,a,c,o,e.tileInfo.res,u,a/this.options.tileSize,f,d,s,h,n,m))])}if("3d-wireframe"===y)return Promise.all([Promise.resolve(Ol(r,a,s,i))]);if("point"===y){g=w(g,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:l*a/this.options.tileSize/u});const t=bu.splitPointSymbol(s),n=aa.genFnTypes(t[0]);return bu.needMerge(t[0],n,h)&&(r=bu.mergeLineFeatures(r,t[0],n,h)),Promise.all(t.map((t,e)=>(0===e?g.fnTypes=n:delete g.fnTypes,new bu(r,t,g).load(p))))}if("native-point"===y){const t=l*a/this.options.tileSize/u;return g.altitudeToTileScale=t,Nl(r,s,g,Uu,a/o)}if("line"===y)return g=w(g,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:p}),Nl(r,s,g,Pu);if("native-line"===y)return Nl(r,s,g,Du);if("fill"===y)return g=w(g,{requestor:this.fetchIconGlyphs.bind(this)}),Nl(r,s,g,qu);if("line-extrusion"===y){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Ul(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),g=w(g,{tileSize:o,zScale:l,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},g);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(g.side=!0,g.top=!1,t.push(new Tu(r,s,g))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,g).load()])}if("circle"===y)return Nl(r,s,g,Bu);if("round-tube"===y||"square-tube"===y){const t="round-tube"===y?Ju:tl;return g=w(g,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===y?i.radialSegments||8:4,centimeterToPoint:f,verticalCentimeterToPoint:d,tileRatio:p,isTube:!0}),Nl(r,s,g,t)}return Promise.resolve([])}Kt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],l=r.length;for(let h=0;h<l;h++)if((1===n||void 0===r[h].id||!this.styledFeatures[r[h].id])&&((!e.def||"default"===e.def)&&!i[h]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[h],t))){const t=r[h];if(void 0===t[o]&&(t[o]=h),i[h]||(i[h]=[]),i[h].push(s),u.push(t),a.push(h),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Wt(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=Bo.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=Bo.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}Zt(t){let n=this.tn;this.tn||(n=this.tn={});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:zn(a),renderPlugin:zl(o),symbol:Dl(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function zl(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 Dl(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 jl(t){if(Array.isArray(t)||!A(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 Ul(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(A(t[e])){const r=Ul(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Nl(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]=Ll(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 Ll(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Vl(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=Bo.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];k(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Rl={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Hl={get:function(t,n){return n in t?t[n]:t[$l][n]},has:(t,n)=>n in t||n in t[$l]},Wl={};function ql(t){const n={};n.originalFeature=t;const e=new Proxy(n,Rl);return e.properties=new Proxy({},Hl),e.properties[$l]=t.properties||Wl,e}function Gl(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Bl=[];function Jl(t,n,e){if(!t)return Bl;for(const r in t){if(!t[r]||!$r.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Gl(n,e,t[r].property);else{if("lineGradientProperty"===r){Gl(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ya.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Gl(n,e,i[t])}else if(Bo.isExpression(t[r])){const i=[];ya.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Gl(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])&&Gl(n,t,i[t][1].property)}return n[e]}function Xl(t,n){Yl(t.geometry,n)}function Yl(t,n){if(t)switch(t.type){case"Point":Zl(t.coordinates,n);break;case"MultiPoint":case"LineString":Kl(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Kl(t[e],n)}(t.coordinates,n);break;case"Polygon":Ql(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)Ql(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Yl(t.geometries[r],n)}}function Zl(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 Kl(t,n){for(let e=0,r=t.length;e<r;e++)Zl(t[e],n)}function Ql(t,n){t.length&&Kl(t[0],n)}function th(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),l=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*l*(o-l)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*l/o+h)),f=Math.min(i,Math.floor(e+(o-a)*l/o+h));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(nh(n,r,e),s(n[i],d)>0&&nh(n,r,i);p<y;){for(nh(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?nh(n,r,y):(y++,nh(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||eh)}function nh(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function eh(t,n){return t<n?-1:t>n?1:0}class rh{constructor(t=9){this.nn=Math.max(4,t),this.en=Math.max(2,Math.ceil(.4*this.nn)),this.clear()}all(){return this.rn(this.data,[])}search(t){let n=this.data;const e=[];if(!yh(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;yh(t,a)&&(n.leaf?e.push(o):ph(t,a)?this.rn(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!yh(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(yh(t,s)){if(n.leaf||ph(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.en){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.sn(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.an(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.un(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.un(t,this.data.height-1),this}clear(){return this.data=mh([]),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=ih(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.hn(i),this}u||e.leaf||!ph(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}rn(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}sn(t,n,e,r){const i=e-n+1;let s,o=this.nn;if(i<=o)return s=mh(t.slice(n,e+1)),sh(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=mh([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));gh(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);gh(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.sn(t,e,i,r-1))}}return sh(s,this.toBBox),s}cn(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=hh(o),u=fh(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}un(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.cn(r,this.data,n,i);for(s.children.push(t),ah(s,r);n>=0&&i[n].children.length>this.nn;)this.dn(i,n),n--;this.pn(r,i,n)}dn(t,n){const e=t[n],r=e.children.length,i=this.en;this.yn(e,i,r);const s=this.mn(e,i,r),o=mh(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,sh(e,this.toBBox),sh(o,this.toBBox),n?t[n-1].children.push(o):this.an(e,o)}an(t,n){this.data=mh([t,n]),this.data.height=t.height+1,this.data.leaf=!1,sh(this.data,this.toBBox)}mn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=oh(t,0,o,this.toBBox),a=oh(t,o,e,this.toBBox),u=dh(n,a),l=hh(n)+hh(a);u<i?(i=u,r=o,s=l<s?l:s):u===i&&l<s&&(s=l,r=o)}return r||e-n}yn(t,n,e){const r=t.leaf?this.compareMinX:uh,i=t.leaf?this.compareMinY:lh;this.gn(t,n,e,r)<this.gn(t,n,e,i)&&t.children.sort(r)}gn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=oh(t,0,n,i),o=oh(t,e-n,e,i);let a=ch(s)+ch(o);for(let r=n;r<e-n;r++){const n=t.children[r];ah(s,t.leaf?i(n):n),a+=ch(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ah(o,t.leaf?i(n):n),a+=ch(o)}return a}pn(t,n,e){for(let r=e;r>=0;r--)ah(n[r],t)}hn(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():sh(t[e],this.toBBox)}}function ih(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 sh(t,n){oh(t,0,t.children.length,n,t)}function oh(t,n,e,r,i){i||(i=mh(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];ah(i,t.leaf?r(n):n)}return i}function ah(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 uh(t,n){return t.minX-n.minX}function lh(t,n){return t.minY-n.minY}function hh(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function ch(t){return t.maxX-t.minX+(t.maxY-t.minY)}function fh(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 dh(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 ph(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function yh(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function mh(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function gh(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;th(t,o,n,e,i),s.push(n,o,o,e)}}var vh={exports:{}},bh=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,l=a-1;u<a;l=u++){var h=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*l+0],d=n[e+2*l+1];c>s!=d>s&&i<(f-h)*(s-c)/(d-c)+h&&(o=!o)}return o},wh=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,l=a-1;u<a;l=u++){var h=n[u+e][0],c=n[u+e][1],f=n[l+e][0],d=n[l+e][1];c>s!=d>s&&i<(f-h)*(s-c)/(d-c)+h&&(o=!o)}return o};vh.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?wh(t,n,e,r):bh(t,n,e,r)};var Mh=vh.exports.nested=wh;vh.exports.flat=bh;function xh(t,n,e,r,i){let s,o,a,u,l=n[0],h=r[0],c=0,f=0;h>l==h>-l?(s=l,l=n[++c]):(s=h,h=r[++f]);let d=0;if(c<t&&f<e)for(h>l==h>-l?(o=l+s,a=s-(o-l),l=n[++c]):(o=h+s,a=s-(o-h),h=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)h>l==h>-l?(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=n[++c]):(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Fh(t){return new Float64Array(t)}const Ah=Fh(4),kh=Fh(8),Ph=Fh(12),Sh=Fh(16),_h=Fh(4);function Oh(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 l=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*l?u:-function(t,n,e,r,i,s,o){let a,u,l,h,c,f,d,p,y,m,g,v,b,w,M,x,F,A;const k=t-i,P=e-i,S=n-s,_=r-s;w=k*_,f=134217729*k,d=f-(f-k),p=k-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),g=M-F,c=M-g,Ah[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Ah[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Ah[2]=v-(A-c)+(g-c),Ah[3]=A;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Ah),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-k,a=t-(k+c)+(c-i),c=e-P,l=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,h=r-(_+c)+(c-s),0===a&&0===u&&0===l&&0===h)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=k*h+_*a-(S*l+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),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const I=xh(4,Ah,4,_h,kh);w=k*h,f=134217729*k,d=f-(f-k),p=k-d,f=134217729*h,y=f-(f-h),m=h-y,M=p*m-(w-d*y-p*y-d*m),x=S*l,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*l,y=f-(f-l),m=l-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const $=xh(I,kh,4,_h,Ph);w=a*h,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*h,y=f-(f-h),m=h-y,M=p*m-(w-d*y-p*y-d*m),x=u*l,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*l,y=f-(f-l),m=l-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,_h[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,_h[1]=b-(g+c)+(c-x),A=v+g,c=A-v,_h[2]=v-(A-c)+(g-c),_h[3]=A;const C=xh($,Ph,4,_h,Sh);return Sh[C-1]}(t,n,e,r,i,s,l)}function Eh(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++)Mh(t[s],a)||u.push(t[s]);return function(t){t.sort(Rh);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Dh(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&&Dh(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 rh(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=Uh(u,s),o.push(s)}var l=new rh(16);for(a=0;a<o.length;a++)l.insert(jh(o[a]));for(var h=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Nh(d,p);if(!(y<c)){var m=y/h;(u=Ih(i,f.prev.p,d,p,f.next.next.p,m,l))&&Math.min(Nh(u,d),Nh(u,p))<=m&&(o.push(f),o.push(Uh(u,f)),i.remove(u),l.remove(f),l.insert(jh(f)),l.insert(jh(f.next)))}}f=s;var g=[];do{g.push(f.p),f=f.next}while(f!==s);return g.push(f.p),g}function Ih(t,n,e,r,i,s,o){for(var a=new Bn([],$h),u=t.data;u;){for(var l=0;l<u.children.length;l++){var h=u.children[l],c=u.leaf?Lh(h,e,r):Ch(e,r,h);c>s||a.push({node:h,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Lh(d,n,e),y=Lh(d,r,i);if(f.dist<p&&f.dist<y&&zh(e,d,o)&&zh(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function $h(t,n){return t.dist-n.dist}function Ch(t,n,e){if(Th(t,e)||Th(n,e))return 0;var r=Vh(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Vh(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Vh(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Vh(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 Th(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function zh(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),l=Math.max(t[0],n[0]),h=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:l,maxY:h}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Dh(r,i,s)>0!=Dh(r,i,o)>0&&Dh(s,o,r)>0!=Dh(s,o,i)>0)return!1;return!0}function Dh(t,n,e){return Oh(t[0],t[1],n[0],n[1],e[0],e[1])}function jh(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 Uh(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 Nh(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Lh(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 Vh(t,n,e,r,i,s,o,a){var u,l,h,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,g=n-s,v=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*g,x=p*m+y*g,F=v*w-b*b,A=F,k=F;0===F?(l=0,A=1,c=x,k=w):(c=v*x-b*M,(l=b*x-w*M)<0?(l=0,c=x,k=w):l>A&&(l=A,c=x+b,k=w)),c<0?(c=0,-M<0?l=0:-M>v?l=A:(l=-M,A=v)):c>k&&(c=k,-M+b<0?l=0:-M+b>v?l=A:(l=-M+b,A=v));var P=(1-(h=0===c?0:c/k))*i+h*o-((1-(u=0===l?0:l/A))*t+u*e),S=(1-h)*s+h*a-((1-u)*n+u*r);return P*P+S*S}function Rh(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Hh{constructor(t,n){this.x=t,this.y=n}clone(){return new Hh(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 Hh(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 Hh(this.y,-this.x)}}function Wh(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 Hh(t.x+a*n.x,t.y+a*n.y)}const qh=[],Gh=[];function Bh(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Gh[e]?(Gh[e][0]=t[r].x,Gh[e][1]=t[r].y):Gh[e]=[t[r].x,t[r].y],n.push(Gh[e]),e++;t=n}try{const n=Eh(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]||(Ct(i,n[t],"EPSG:3857"),qh[o]?(qh[o].x=i[0],qh[o].y=i[1]):qh[o]=new Hh(i[0],i[1]),s.push(qh[o]),o++);pl.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,l){var h=Wh(t,r,o,a),c=Wh(i,s,o,a),f=Wh(u,l,t,r),d=Wh(u,l,i,s),p=h.distance(c)*h.distance(f);0!==p&&p<e&&(n=[h,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,l=new Hh(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),h=new Hh(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<l.x&&(l.x=c.x,s=n),c.x>h.x&&(h.x=c.x,o=n),c.y<l.y&&(l.y=c.y,u=n),c.y>h.y&&(h.y=c.y,a=n)}var f=new Hh(0,-1),d=new Hh(0,1),p=new Hh(-1,0),y=new Hh(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]),l=a[1].distance(a[2]),h=a.map(t=>[t.x,t.y]);return h.push(+(l>u)),h}catch(t){return null}}const Jh=[];function Xh(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Xh(t[r]):(Ct(Jh,t[r],n),t[r][0]=Jh[0],t[r][1]=Jh[1]);return t}class Yh extends Tl{constructor(t,n,e,r,i,s){super(t,n,e,r,i),(n=n||{}).extent||(n.extent=8192),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.vn(o);const{sample1000:a,idMap:u}=this.bn(o);this.wn(a,u,s,e,n)})}else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features,i=r&&r.length;this.vn(r);let s=r;if(r&&i>1e3){s=[];for(let t=0;t<i;t++)Zh(r[t],s,t,i)}this.wn(s,null,t,e,n)}}vn(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=Bh(t,t.length);e.properties=e.properties||{},e.properties[bl]=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=Bh(r,r.length);e.properties=e.properties||{},e.properties[bl]=e.properties[bl]||[],e.properties[bl][n]=i}}}}wn(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++)Xl(t.features[r],n);break;case"Feature":Xl(t,n);break;default:Yl(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})}}bn(t){const n=[],e={};let r=0;const i=this.options.featureIdProperty;if(t){const s=t.length;t.forEach((t,o)=>{!function(t,s,o){if(t&&("Feature"!==t.type||t.geometry)){if(x(t.id)||(t.id=r++),i){let n=i;A(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),Zh(t,n,s,o)}}(t,o,s)})}return{sample1000: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,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||(pl.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}}function Zh(t,n,e,r){const i=Math.floor(r/998);(0===e||e===r-1||(0===i||e%i==0)&&n.length<999)&&n.push(t)}var Kh={\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,l=u>>1,h=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-h)-1,d>>=-h,h+=a;h>0;s=256*s+t[n+c],c+=f,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=r;h>0;o=256*o+t[n+c],c+=f,h-=8);if(0===s)s=1-l;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=l}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,l=8*s-i-1,h=(1<<l)-1,c=h>>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=h):(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>=h?(a=0,o=h):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,l+=i;l>0;t[e+d]=255&o,d+=p,o/=256,l-=8);t[e+d-p]|=128*y}},Qh=nc,tc=Kh;function nc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}nc.Varint=0,nc.Fixed64=1,nc.Bytes=2,nc.Fixed32=5;var ec="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function rc(t){return t.type===nc.Bytes?t.readVarint()+t.pos:t.pos+1}function ic(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function sc(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 oc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function ac(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function uc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function yc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function mc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function gc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}nc.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=yc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=gc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=yc(this.buf,this.pos)+4294967296*yc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=yc(this.buf,this.pos)+4294967296*gc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=tc.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=tc.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 ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return ic(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return ic(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&&ec?function(t,n,e){return ec.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],l=null,h=u>239?4:u>223?3:u>191?2:1;if(i+h>e)break;1===h?u<128&&(l=u):2===h?128==(192&(s=t[i+1]))&&(l=(31&u)<<6|63&s)<=127&&(l=null):3===h?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((l=(15&u)<<12|(63&s)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):4===h&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((l=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,h=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=h}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!==nc.Bytes)return t.push(this.readVarint(n));var e=rc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==nc.Bytes)return t.push(this.readSVarint());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==nc.Bytes)return t.push(this.readBoolean());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==nc.Bytes)return t.push(this.readFloat());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==nc.Bytes)return t.push(this.readDouble());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==nc.Bytes)return t.push(this.readFixed32());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==nc.Bytes)return t.push(this.readSFixed32());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==nc.Bytes)return t.push(this.readFixed64());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==nc.Bytes)return t.push(this.readSFixed64());var n=rc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===nc.Varint)for(;this.buf[this.pos++]>127;);else if(n===nc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===nc.Fixed32)this.pos+=4;else{if(n!==nc.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),mc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),mc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),mc(this.buf,-1&t,this.pos),mc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),mc(this.buf,-1&t,this.pos),mc(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&&sc(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),tc.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),tc.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&&sc(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,nc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,oc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,ac,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,pc,n)},writeBytesField:function(t,n){this.writeTag(t,nc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,nc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,nc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,nc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,nc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,nc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,nc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,nc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,nc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,nc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var vc=Ut,bc=wc;function wc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.Mn=t,this.xn=-1,this.Fn=r,this.An=i,t.readFields(Mc,this,n)}function Mc(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.Fn[t.readVarint()],i=n.An[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.xn=e.pos)}function xc(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}wc.types=["Unknown","Point","LineString","Polygon"],wc.prototype.loadGeometry=function(){var t=this.Mn;t.pos=this.xn;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 vc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},wc.prototype.bbox=function(){var t=this.Mn;t.pos=this.xn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,l=-1/0;t.pos<n;){if(r<=0){var h=t.readVarint();e=7&h,r=h>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>l&&(l=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,l]},wc.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(),l=wc.types[this.type];function h(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];h(u=c);break;case 2:for(r=0;r<u.length;r++)h(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=xc(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++)h(u[r][i])}1===u.length?u=u[0]:l="Multi"+l;var f={type:"Feature",geometry:{type:l,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Fc=bc,Ac=kc;function kc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.Mn=t,this.Fn=[],this.An=[],this.kn=[],t.readFields(Pc,this,n),this.length=this.kn.length}function Pc(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.kn.push(e.pos):3===t?n.Fn.push(e.readString()):4===t&&n.An.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))}kc.prototype.feature=function(t){if(t<0||t>=this.kn.length)throw new Error("feature index out of bounds");this.Mn.pos=this.kn[t];var n=this.Mn.readVarint()+this.Mn.pos;return new Fc(this.Mn,n,this.extent,this.Fn,this.An)};var Sc=Ac;function _c(t,n,e){if(3===t){var r=new Sc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Oc=function(t,n){this.layers=t.readFields(_c,{},n)};class Ec extends Tl{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.Nt.has(e)){const{err:t,data:r}=this.Nt.get(e);return setTimeout(()=>{this.Pn(e,t,r,n)},1)}return r.referrer=t.referrer,O.getArrayBuffer(e,r,(t,r)=>{this.Nt&&(t?t.loading||this.Nt.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Nt.add(e,{err:null,data:r.data}),this.Pn(e,t,r&&r.data,n))})}Pn(t,n,e,r){if(n)return void r(n);let i;try{i=new Oc(new Qh(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,l=t,Object.prototype.hasOwnProperty.call(u,l)){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[bl];o&&(M(o)&&(o=JSON.parse(o)),n.properties[bl]=Xh(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,l;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.Xt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let Ic=0;const $c=new ol(128);class Cc{constructor(t){this.Sn={},this._n={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.On(n,e))return;const s=this.En(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.Sn[s]="GeoJSONVectorTileLayer"===o?new Yh(e,a,u,$c,{},i):new Ec(e,a,u,$c,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.On(t,n),i=this.En(t,n);delete this.Sn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.On(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this._n[n];delete this._n[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${Ic++}`:null;i&&(this._n[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}En(t,n){return`${t}-${n}`}On(t,n){const e=this.En(t,n);return this.Sn[e]}In(){$c.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Cc(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,"$n",{value:!0})}';
26
26
  let a;
27
27
  const l = {
28
28
  width: 100,
@@ -1807,7 +1807,7 @@
1807
1807
  };
1808
1808
  var rn = Oe.exports;
1809
1809
  /*!
1810
- * @maptalks/vector-packer v0.94.0
1810
+ * @maptalks/vector-packer v0.95.0
1811
1811
  * LICENSE : UNLICENSED
1812
1812
  * (c) 2016-2024 maptalks.com
1813
1813
  */ const sn = {
@@ -1952,11 +1952,61 @@
1952
1952
  pn(t, e, n, i, r, 4);
1953
1953
  }
1954
1954
  }
1955
+ function gn(t) {
1956
+ let e = 0;
1957
+ for (let n, i, r = 0, s = t.length, o = s - 1; r < s; o = r++) if (n = t[r], i = t[o],
1958
+ void 0 !== n.x) {
1959
+ if (n.z || i.z) return 1;
1960
+ e += (i.x - n.x) * (n.y + i.y);
1961
+ } else {
1962
+ if (n[2] || i[2]) return 1;
1963
+ e += (i[0] - n[0]) * (n[1] + i[1]);
1964
+ }
1965
+ return e;
1966
+ }
1967
+ function vn(t, e, n) {
1968
+ let i = n;
1969
+ return e && t && (i = +t[e]), isNaN(i) && (i = n || 0), 100 * i;
1970
+ }
1971
+ function xn(t, e, n, i, r, s, o) {
1972
+ e || 0 === e || (e = 1);
1973
+ const a = vn(t.properties, n, i), l = a * e;
1974
+ let h = (s ? 100 * s : 0) || a;
1975
+ return r ? h = vn(t.properties, r, s) : o && (h = a - vn(t.properties, o, s)), h *= e,
1976
+ {
1977
+ altitude: l,
1978
+ height: h
1979
+ };
1980
+ }
1981
+ function bn(t, e) {
1982
+ return e < 1 / 0 && (t.x < 0 || t.x > e || t.y < 0 || t.y > e);
1983
+ }
1984
+ function wn(t) {
1985
+ return null == t;
1986
+ }
1987
+ function An(t, e, n) {
1988
+ if (t === n || t === e) return t;
1989
+ const i = n - e;
1990
+ return ((t - e) % i + i) % i + e;
1991
+ }
1992
+ function Mn(t, e) {
1993
+ if (!e) return null;
1994
+ const n = new Map;
1995
+ for (let i = 0; i < e.length; i++) {
1996
+ const r = e[i], s = t[r];
1997
+ let o = n.get(s);
1998
+ o || (o = [], n.set(s, o)), o.push(r);
1999
+ }
2000
+ return n;
2001
+ }
2002
+ function _n(t) {
2003
+ return 0 == (t & t - 1) && 0 !== t;
2004
+ }
1955
2005
  /*!
1956
2006
  * Codes from mapbox-gl-js
1957
2007
  * github.com/mapbox/mapbox-gl-js
1958
2008
  * MIT License
1959
- */ class gn {
2009
+ */ class Sn {
1960
2010
  constructor(t, e, {pixelRatio: n}) {
1961
2011
  this.paddedRect = t, this.pixelRatio = n || 1, this.padding = e;
1962
2012
  }
@@ -1970,7 +2020,7 @@
1970
2020
  return [ (this.paddedRect.w - 2 * this.padding) / this.pixelRatio, (this.paddedRect.h - 2 * this.padding) / this.pixelRatio ];
1971
2021
  }
1972
2022
  }
1973
- class vn {
2023
+ class kn {
1974
2024
  constructor(t) {
1975
2025
  this.glyphMap = t, this.build();
1976
2026
  }
@@ -1985,12 +2035,12 @@
1985
2035
  w: i.data.width + 2 * s,
1986
2036
  h: i.data.height + 2 * s
1987
2037
  };
1988
- r.push(o), n[e] = new gn(o, s, i);
2038
+ r.push(o), n[e] = new Sn(o, s, i);
1989
2039
  }
1990
2040
  if (i.pack(r, {
1991
2041
  inPlace: !0
1992
- }), !xn(i.w) || !xn(i.h)) {
1993
- const t = bn(i.w), e = bn(i.h);
2042
+ }), !_n(i.w) || !_n(i.h)) {
2043
+ const t = Pn(i.w), e = Pn(i.h);
1994
2044
  i.resize(t, e);
1995
2045
  }
1996
2046
  const o = new mn({
@@ -2010,10 +2060,7 @@
2010
2060
  this.image = o, this.positions = n;
2011
2061
  }
2012
2062
  }
2013
- function xn(t) {
2014
- return 0 == (t & t - 1) && 0 !== t;
2015
- }
2016
- function bn(t) {
2063
+ function Pn(t) {
2017
2064
  return Math.pow(2, Math.ceil(Math.log(t) / Math.LN2));
2018
2065
  }
2019
2066
  /*!
@@ -2021,7 +2068,7 @@
2021
2068
  * github.com/mapbox/mapbox-gl-js
2022
2069
  * MIT License
2023
2070
  * TODO 升级为potpack
2024
- */ class wn {
2071
+ */ class Tn {
2025
2072
  constructor(t) {
2026
2073
  this.glyphMap = t, this.build();
2027
2074
  }
@@ -2071,23 +2118,23 @@
2071
2118
  this.image = r, this.positions = e;
2072
2119
  }
2073
2120
  }
2074
- function An(t) {
2121
+ function Fn(t) {
2075
2122
  return t < 65536 ? Uint16Array : Uint32Array;
2076
2123
  }
2077
- function Mn(t) {
2124
+ function On(t) {
2078
2125
  return (t = Math.abs(t)) < 128 ? Int8Array : t < 32768 ? Int16Array : Float32Array;
2079
2126
  }
2080
- function _n(t) {
2127
+ function In(t) {
2081
2128
  return t < 256 ? Uint8Array : t < 65536 ? Uint16Array : Float32Array;
2082
2129
  }
2083
- function Sn(t, e) {
2130
+ function Cn(t, e) {
2084
2131
  const n = t.length;
2085
2132
  t = t.D || t;
2086
2133
  const i = new e(n);
2087
2134
  for (let e = 0; e < n; e++) i[e] = t[e];
2088
2135
  return i;
2089
2136
  }
2090
- function kn(t) {
2137
+ function En(t) {
2091
2138
  const e = t.type, n = [];
2092
2139
  if (1 === e || 4 === e) for (let e = 0; e < t.geometry.length; e++) ln(t.geometry[e], n); else if (2 === e) un(t.geometry, n); else if (3 === e) un(t.geometry, n); else if (5 === e) un(t.geometry, n); else if (6 === e) for (let e = 0; e < t.geometry.length; e++) {
2093
2140
  const i = [];
@@ -2095,51 +2142,51 @@
2095
2142
  }
2096
2143
  return t.geometry = n, t;
2097
2144
  }
2098
- function Pn(t) {
2145
+ function Dn(t) {
2099
2146
  for (let e = 1; e < arguments.length; e++) {
2100
2147
  const n = arguments[e];
2101
2148
  for (const e in n) t[e] = n[e];
2102
2149
  }
2103
2150
  return t;
2104
2151
  }
2105
- function Tn(t) {
2152
+ function Nn(t) {
2106
2153
  return null == t;
2107
2154
  }
2108
- function Fn(t) {
2155
+ function Rn(t) {
2109
2156
  return "number" == typeof t && !isNaN(t);
2110
2157
  }
2111
- function On(t) {
2158
+ function Ln(t) {
2112
2159
  return "object" == typeof t && !!t;
2113
2160
  }
2114
- function In(t) {
2115
- return !Tn(t) && ("string" == typeof t || null !== t.constructor && t.constructor === String);
2161
+ function zn(t) {
2162
+ return !Nn(t) && ("string" == typeof t || null !== t.constructor && t.constructor === String);
2116
2163
  }
2117
- function Cn(t) {
2118
- return !Tn(t) && ("function" == typeof t || null !== t.constructor && t.constructor === Function);
2164
+ function Hn(t) {
2165
+ return !Nn(t) && ("function" == typeof t || null !== t.constructor && t.constructor === Function);
2119
2166
  }
2120
- const En = Object.prototype.hasOwnProperty;
2121
- function Dn(t, e) {
2122
- return En.call(t, e);
2167
+ const Un = Object.prototype.hasOwnProperty;
2168
+ function Vn(t, e) {
2169
+ return Un.call(t, e);
2123
2170
  }
2124
- const Nn = Math.PI / 180;
2125
- function Rn(t) {
2171
+ const jn = Math.PI / 180;
2172
+ function Bn(t) {
2126
2173
  return t && x(t) && t.property;
2127
2174
  }
2128
- function Ln(t) {
2175
+ function Gn(t) {
2129
2176
  const {verticalCentimeterToPoint: e, tileRatio: n} = t;
2130
2177
  return e * n;
2131
2178
  }
2132
- const zn = {};
2133
- function Hn(t, e) {
2179
+ const Wn = {};
2180
+ function $n(t, e) {
2134
2181
  if (!Array.isArray(e)) {
2135
2182
  if (e && void 0 !== e.r && void 0 !== e.g && void 0 !== e.b) return t[0] = 255 * e.r,
2136
2183
  t[1] = 255 * e.g, t[2] = 255 * e.b, t[3] = void 0 !== e.a ? 255 * e.a : 255, t;
2137
- e = zn[e] = zn[e] || It(e).unitArray();
2184
+ e = Wn[e] = Wn[e] || It(e).unitArray();
2138
2185
  }
2139
2186
  for (let n = 0; n < e.length; n++) t[n] = 255 * e[n];
2140
2187
  return 3 === e.length && (t[3] = 255), t;
2141
2188
  }
2142
- const Un = {
2189
+ const Xn = {
2143
2190
  textFill: 1,
2144
2191
  textSize: 1,
2145
2192
  textOpacity: 1,
@@ -2157,48 +2204,48 @@
2157
2204
  polygonOpacity: 1,
2158
2205
  polygonPatternFileWidth: 1,
2159
2206
  polygonPatternFileOrigin: 1
2160
- }, Vn = {
2207
+ }, qn = {
2161
2208
  textName: 1,
2162
2209
  markerTextFitPadding: 1,
2163
2210
  markerTextFit: 1,
2164
2211
  lineGradientProperty: 1
2165
2212
  };
2166
- var jn = Object.freeze({
2213
+ var Yn = Object.freeze({
2167
2214
  __proto__: null,
2168
2215
  now: function() {
2169
2216
  return Date.now();
2170
2217
  },
2171
- extend: Pn,
2172
- isNil: Tn,
2173
- isNumber: Fn,
2218
+ extend: Dn,
2219
+ isNil: Nn,
2220
+ isNumber: Rn,
2174
2221
  isInteger: function(t) {
2175
2222
  return (0 | t) === t;
2176
2223
  },
2177
- isObject: On,
2178
- isString: In,
2179
- isFunction: Cn,
2180
- hasOwn: Dn,
2224
+ isObject: Ln,
2225
+ isString: zn,
2226
+ isFunction: Hn,
2227
+ hasOwn: Vn,
2181
2228
  join: function(t, e) {
2182
2229
  return t.join ? t.join(e || ",") : Array.prototype.join.call(t, e || ",");
2183
2230
  },
2184
2231
  toRadian: function(t) {
2185
- return t * Nn;
2232
+ return t * jn;
2186
2233
  },
2187
2234
  toDegree: function(t) {
2188
- return t / Nn;
2235
+ return t / jn;
2189
2236
  },
2190
2237
  evaluate: function(t, e, n) {
2191
- return Cn(t) ? t(void 0 !== n ? n : null, e) : t;
2238
+ return Hn(t) ? t(void 0 !== n ? n : null, e) : t;
2192
2239
  },
2193
- isFnTypeSymbol: Rn,
2194
- getAltitudeToLocal: Ln,
2240
+ isFnTypeSymbol: Bn,
2241
+ getAltitudeToLocal: Gn,
2195
2242
  getTubeSizeScale: function(t) {
2196
2243
  return "centimeter" === t || "cm" === t ? 1 : "millimeter" === t || "mm" === t ? .1 : 100;
2197
2244
  },
2198
- normalizeColor: Hn,
2245
+ normalizeColor: $n,
2199
2246
  checkIfIdentityZoomDependent: function(t, e, n) {
2200
2247
  if (Array.isArray(n) || (n = Object.values(n)), !n || !n.length) return !1;
2201
- if (!Un[t]) return !1;
2248
+ if (!Xn[t]) return !1;
2202
2249
  for (let t = 0; t < n.length; t++) {
2203
2250
  const i = n[t] && (n[t].feature || n[t]);
2204
2251
  if (!i) continue;
@@ -2208,56 +2255,9 @@
2208
2255
  return !1;
2209
2256
  },
2210
2257
  checkIfZoomFnTypeSymbol: function(t) {
2211
- return !!Un[t] || !!Vn[t];
2258
+ return !!Xn[t] || !!qn[t];
2212
2259
  }
2213
2260
  });
2214
- function Bn(t) {
2215
- let e = 0;
2216
- for (let n, i, r = 0, s = t.length, o = s - 1; r < s; o = r++) if (n = t[r], i = t[o],
2217
- void 0 !== n.x) {
2218
- if (n.z || i.z) return 1;
2219
- e += (i.x - n.x) * (n.y + i.y);
2220
- } else {
2221
- if (n[2] || i[2]) return 1;
2222
- e += (i[0] - n[0]) * (n[1] + i[1]);
2223
- }
2224
- return e;
2225
- }
2226
- function Gn(t, e, n) {
2227
- let i = n;
2228
- return e && t && (i = +t[e]), isNaN(i) && (i = n || 0), 100 * i;
2229
- }
2230
- function Wn(t, e, n, i, r, s, o) {
2231
- e || 0 === e || (e = 1);
2232
- const a = Gn(t.properties, n, i), l = a * e;
2233
- let h = (s ? 100 * s : 0) || a;
2234
- return r ? h = Gn(t.properties, r, s) : o && (h = a - Gn(t.properties, o, s)), h *= e,
2235
- {
2236
- altitude: l,
2237
- height: h
2238
- };
2239
- }
2240
- function $n(t, e) {
2241
- return e < 1 / 0 && (t.x < 0 || t.x > e || t.y < 0 || t.y > e);
2242
- }
2243
- function Xn(t) {
2244
- return null == t;
2245
- }
2246
- function qn(t, e, n) {
2247
- if (t === n || t === e) return t;
2248
- const i = n - e;
2249
- return ((t - e) % i + i) % i + e;
2250
- }
2251
- function Yn(t, e) {
2252
- if (!e) return null;
2253
- const n = new Map;
2254
- for (let i = 0; i < e.length; i++) {
2255
- const r = e[i], s = t[r];
2256
- let o = n.get(s);
2257
- o || (o = [], n.set(s, o)), o.push(r);
2258
- }
2259
- return n;
2260
- }
2261
2261
  class Jn {
2262
2262
  constructor(t, e, n, i) {
2263
2263
  this.feature = t, this.symbol = e, this.fnTypes = n, this.options = i;
@@ -4711,7 +4711,7 @@
4711
4711
  };
4712
4712
  }
4713
4713
  const e = to(t.condition);
4714
- if (Tn(t.layer)) return e;
4714
+ if (Nn(t.layer)) return e;
4715
4715
  const n = e => e.layer === t.layer;
4716
4716
  return (t, i) => n(t) && e(t, i);
4717
4717
  }
@@ -4901,13 +4901,13 @@
4901
4901
  let i;
4902
4902
  i = !0 === e[t].filter ? function() {
4903
4903
  return !0;
4904
- } : to(e[t].filter), n.push(Pn({}, e[t], {
4904
+ } : to(e[t].filter), n.push(Dn({}, e[t], {
4905
4905
  filter: i
4906
4906
  }));
4907
4907
  }
4908
4908
  return n;
4909
4909
  }(t = t.map(t => {
4910
- const e = Pn({}, t);
4910
+ const e = Dn({}, t);
4911
4911
  return e.filter && e.filter.value && (e.filter = e.filter.value), e;
4912
4912
  }));
4913
4913
  },
@@ -4961,7 +4961,7 @@
4961
4961
  let yo;
4962
4962
  class mo {
4963
4963
  static createTypedArray(t, e) {
4964
- return Sn(t, e);
4964
+ return Cn(t, e);
4965
4965
  }
4966
4966
  static getInstance() {
4967
4967
  return yo;
@@ -5005,14 +5005,14 @@
5005
5005
  }
5006
5006
  return r;
5007
5007
  };
5008
- } else if (Rn(t[n])) {
5008
+ } else if (Bn(t[n])) {
5009
5009
  const i = (n + "_Fn_0").trim(), r = (n + "Fn").trim();
5010
5010
  so(n) ? (e[i] = b(t[n]), e[r] = (t, n) => {
5011
5011
  const r = e[i](t, n);
5012
- return Rn(r) ? b(r)(t, n) : r;
5012
+ return Bn(r) ? b(r)(t, n) : r;
5013
5013
  }) : (e[i] = w(t[n]), e[r] = (t, n) => {
5014
5014
  const r = e[i](t, n);
5015
- return Rn(r) ? w(r)(t, n) : r;
5015
+ return Bn(r) ? w(r)(t, n) : r;
5016
5016
  });
5017
5017
  }
5018
5018
  return e;
@@ -5021,7 +5021,7 @@
5021
5021
  this.options = n;
5022
5022
  const i = [];
5023
5023
  this.symbolDef = e, this.symbol = A(e, () => (i[0] = n.zoom, i)), this.styledVectors = [],
5024
- this.properties = {}, this.Z = n.fnTypes || _o.genFnTypes(this.symbolDef), Rn(this.symbolDef.visible) && (this.K = b(this.symbolDef.visible)),
5024
+ this.properties = {}, this.Z = n.fnTypes || _o.genFnTypes(this.symbolDef), Bn(this.symbolDef.visible) && (this.K = b(this.symbolDef.visible)),
5025
5025
  n.atlas && (this.iconAtlas = n.atlas.iconAtlas, this.glyphAtlas = n.atlas.glyphAtlas),
5026
5026
  this.features = this.tt(t);
5027
5027
  }
@@ -5059,8 +5059,8 @@
5059
5059
  e instanceof L && (n = t);
5060
5060
  }
5061
5061
  if (!n) if (n = [], Array.isArray(r.geometry)) for (let e = 0; e < t.length; e++) {
5062
- const i = Pn({}, t[e]);
5063
- n.push(kn(i));
5062
+ const i = Dn({}, t[e]);
5063
+ n.push(En(i));
5064
5064
  } else for (let i = 0; i < t.length; i++) {
5065
5065
  const r = t[i], s = on(r);
5066
5066
  for (let t = 0; t < s.length; t++) {
@@ -5110,7 +5110,7 @@
5110
5110
  for (;c < f; c++) {
5111
5111
  const t = s[c];
5112
5112
  if (!t || !t.geometry) continue;
5113
- if (Fn(d) && t[n].index !== d) continue;
5113
+ if (Rn(d) && t[n].index !== d) continue;
5114
5114
  t.properties || (t.properties = {}), t.properties.$layer = t.layer, t.properties.$type = t.type;
5115
5115
  const h = this.createStyledVector(t, u, i, l, o, a);
5116
5116
  h && h.feature.geometry && (h.featureIdx = void 0 === t[e] ? c : t[e], this.count++,
@@ -5135,7 +5135,7 @@
5135
5135
  height: r
5136
5136
  }, s);
5137
5137
  }
5138
- this.iconAtlas = new vn(t);
5138
+ this.iconAtlas = new kn(t);
5139
5139
  }
5140
5140
  if (n && Object.keys(n).length) {
5141
5141
  for (const t in n) {
@@ -5148,7 +5148,7 @@
5148
5148
  }, s);
5149
5149
  }
5150
5150
  }
5151
- this.glyphAtlas = new wn(n);
5151
+ this.glyphAtlas = new Tn(n);
5152
5152
  }
5153
5153
  }
5154
5154
  n({
@@ -5202,17 +5202,17 @@
5202
5202
  if (!t[i].feature.geometry) continue;
5203
5203
  const r = Array.isArray(t[i]) ? t[i][0].feature.id : t[i].feature.id;
5204
5204
  c && (void 0 !== xo.id ? f && (f.has(xo.id) ? c = !1 : f.add(xo.id)) : c = !1),
5205
- Fn(r) && (Math.abs(r) > h && (h = Math.abs(r)), r < 0 && (u = !0));
5205
+ Rn(r) && (Math.abs(r) > h && (h = Math.abs(r)), r < 0 && (u = !0));
5206
5206
  const d = this.data.aPosition.length;
5207
5207
  if (Array.isArray(t[i])) for (let n = 0; n < t[i].length; n++) this.ot(t[i][n], e); else this.ot(t[i], e);
5208
5208
  const p = (n.aPosition.length - d) / s;
5209
- for (let e = 0; e < p; e++) o.push(t[i].featureIdx), Fn(r) && l.push(r);
5209
+ for (let e = 0; e < p; e++) o.push(t[i].featureIdx), Rn(r) && l.push(r);
5210
5210
  a = Math.max(a, t[i].featureIdx);
5211
5211
  }
5212
5212
  if (this.countOutOfAngle > 0 && console.warn("text anchor along line is ignored as anchor's line angle is bigger than textMaxAngle."),
5213
5213
  this.hasElements() && !i.length) return null;
5214
- const d = this.options.center ? Float32Array : _n(a);
5215
- o = mo.createTypedArray(o, d), r[0].type = this.options.positionType ? this.options.positionType : Mn(this.maxPos);
5214
+ const d = this.options.center ? Float32Array : In(a);
5215
+ o = mo.createTypedArray(o, d), r[0].type = this.options.positionType ? this.options.positionType : On(this.maxPos);
5216
5216
  const p = this.options.center;
5217
5217
  if (p && (p[0] || p[1])) {
5218
5218
  const t = n.aPosition;
@@ -5222,14 +5222,14 @@
5222
5222
  const n = {};
5223
5223
  for (let i = 0; i < t.length; i++) {
5224
5224
  const r = t[i], s = r.type, o = r.name;
5225
- n[o] = s === Array ? e[o] : Sn(e[o], s);
5225
+ n[o] = s === Array ? e[o] : Cn(e[o], s);
5226
5226
  }
5227
5227
  return n;
5228
5228
  }(r, n);
5229
5229
  y.aPickingId = o;
5230
5230
  const m = [];
5231
5231
  for (const t in y) m.push(y[t].buffer);
5232
- const g = An(this.maxIndex);
5232
+ const g = Fn(this.maxIndex);
5233
5233
  i = mo.createTypedArray(i, g), m.push(i.buffer);
5234
5234
  const v = {
5235
5235
  data: y,
@@ -5246,10 +5246,10 @@
5246
5246
  };
5247
5247
  if (this.lt && (v.markerPlacement = this.lt), this.ht && (v.textPlacement = this.ht),
5248
5248
  l.length) {
5249
- const t = u ? Mn(h) : _n(h);
5249
+ const t = u ? On(h) : In(h);
5250
5250
  v.featureIds = mo.createTypedArray(l, t), m.push(v.featureIds.buffer);
5251
5251
  } else v.featureIds = [];
5252
- return v.pickingIdIndiceMap = Yn(o, v.indices), v;
5252
+ return v.pickingIdIndiceMap = Mn(o, v.indices), v;
5253
5253
  }
5254
5254
  ot(t, e) {
5255
5255
  this.K && !this.K(this.options.zoom, t.feature.properties) || this.placeVector(t, e, this.formatWidth);
@@ -5262,14 +5262,14 @@
5262
5262
  }
5263
5263
  getAltitude(t) {
5264
5264
  const {altitudeProperty: e, defaultAltitude: n, altitudeScale: i} = this.options;
5265
- let r = Gn(t, e, n);
5265
+ let r = vn(t, e, n);
5266
5266
  return i && (r *= i), this.maxAltitude = Math.max(this.maxAltitude, Math.abs(r)),
5267
5267
  r;
5268
5268
  }
5269
5269
  getIconAtlasMaxValue() {
5270
5270
  const t = this.iconAtlas.positions;
5271
5271
  let e = 0;
5272
- for (const n in t) if (Dn(t, n)) {
5272
+ for (const n in t) if (Vn(t, n)) {
5273
5273
  const {tl: i, displaySize: r} = t[n], s = Math.max(i[0], i[1], r[0] - 1, r[1] - 1);
5274
5274
  s > e && (e = s);
5275
5275
  }
@@ -5278,7 +5278,7 @@
5278
5278
  }
5279
5279
  function So(t) {
5280
5280
  let e = t.positions, n = t.image && t.image.format || "alpha";
5281
- if (t instanceof vn) {
5281
+ if (t instanceof kn) {
5282
5282
  e = {};
5283
5283
  for (const n in t.positions) {
5284
5284
  const i = t.positions[n];
@@ -5322,10 +5322,10 @@
5322
5322
  function Po(t, e, n, i) {
5323
5323
  const r = "__fn_textSize".trim();
5324
5324
  let s = t.textSize;
5325
- if (Tn(e.textSize)) return [ 16, 16 ];
5325
+ if (Nn(e.textSize)) return [ 16, 16 ];
5326
5326
  t[r] && (s = t[r]);
5327
5327
  const o = [];
5328
- if (o[0] = Cn(s) ? s(i, n) : s, x(o[0])) {
5328
+ if (o[0] = Hn(s) ? s(i, n) : s, x(o[0])) {
5329
5329
  const e = o[0].ut = o[0].ut || JSON.stringify(o[0]);
5330
5330
  t.ct || (t.ct = {}), t.ct[e] || (t.ct[e] = b(o[0])), o[0] = (0, t.ct[e])(i, n);
5331
5331
  }
@@ -5336,7 +5336,7 @@
5336
5336
  let n = -1 / 0;
5337
5337
  for (let t = 0; t < e.length; t++) {
5338
5338
  let i = e[t][1];
5339
- On(e[t][1]) && (i = To(e[t][1])), i > n && (n = i);
5339
+ Ln(e[t][1]) && (i = To(e[t][1])), i > n && (n = i);
5340
5340
  }
5341
5341
  return n;
5342
5342
  }
@@ -5345,18 +5345,18 @@
5345
5345
  }
5346
5346
  const Oo = /\{[\w-]+(?:\|[\w-]+)*\}/g;
5347
5347
  function Io(t, e) {
5348
- return In(t) ? t.replace(Oo, (function(t) {
5348
+ return zn(t) ? t.replace(Oo, (function(t) {
5349
5349
  if (!e) return "";
5350
5350
  if ((t = t.substring(1, t.length - 1)).indexOf("|") > 0) {
5351
5351
  const n = t.split("|");
5352
5352
  for (let t = 0; t < n.length; t++) {
5353
5353
  const i = e[n[t]];
5354
- if (!Tn(i)) return i;
5354
+ if (!Nn(i)) return i;
5355
5355
  }
5356
5356
  return "";
5357
5357
  }
5358
5358
  const n = e[t];
5359
- return Tn(n) ? "" : Array.isArray(n) ? n.join() : n;
5359
+ return Nn(n) ? "" : Array.isArray(n) ? n.join() : n;
5360
5360
  })) : t;
5361
5361
  }
5362
5362
  var Co = Object.freeze({
@@ -5479,9 +5479,10 @@
5479
5479
  let u = t.trim();
5480
5480
  2 === h && (u = function(t) {
5481
5481
  let e = "";
5482
- for (let n = 0; n < t.length; n++) {
5483
- const i = t.charCodeAt(n + 1) || null, r = t.charCodeAt(n - 1) || null;
5484
- e += i && ra(i) && !la[t[n + 1]] || r && ra(r) && !la[t[n - 1]] || !la[t[n]] ? t[n] : la[t[n]];
5482
+ const n = Array.from(t);
5483
+ for (let t = 0; t < n.length; t++) {
5484
+ const i = n[t + 1].codePointAt(0) || null, r = n[t - 1].codePointAt(0) || null;
5485
+ e += i && ra(i) && !la[n[t + 1]] || r && ra(r) && !la[n[t - 1]] || !la[n[t]] ? n[t] : la[n[t]];
5485
5486
  }
5486
5487
  return e;
5487
5488
  }(u));
@@ -5509,15 +5510,15 @@
5509
5510
  const r = [], s = function(t, e, n, i) {
5510
5511
  let r = 0;
5511
5512
  for (let n = 0; n < t.length; n++) {
5512
- const s = i[t.charCodeAt(n)];
5513
+ const s = i[t.codePointAt(n)];
5513
5514
  s && (r += s.metrics.advance + e);
5514
5515
  }
5515
5516
  return r / Math.max(1, Math.ceil(r / n));
5516
5517
  }(t, e, n, i);
5517
5518
  let o = 0;
5518
5519
  for (let n = 0; n < t.length; n++) {
5519
- const l = t.charCodeAt(n), h = i[l];
5520
- h && !ua[l] && (o += h.metrics.advance + e), n < t.length - 1 && (ca[l] || !((a = l) < 11904) && (Uo(a) || Ho(a) || Ko(a) || Yo(a) || Go(a) || Eo(a) || Vo(a) || Ro(a) || Wo(a) || $o(a) || Bo(a) || ea(a) || Lo(a) || No(a) || Do(a) || jo(a) || zo(a) || Zo(a) || qo(a) || Xo(a))) && r.push(pa(n + 1, o, s, r, da(l, t.charCodeAt(n + 1)), !1));
5520
+ const l = t.codePointAt(n), h = i[l];
5521
+ h && (h && !ua[l] && (o += h.metrics.advance + e), n < t.length - 1 && (ca[l] || !((a = l) < 11904) && (Uo(a) || Ho(a) || Ko(a) || Yo(a) || Go(a) || Eo(a) || Vo(a) || Ro(a) || Wo(a) || $o(a) || Bo(a) || ea(a) || Lo(a) || No(a) || Do(a) || jo(a) || zo(a) || Zo(a) || qo(a) || Xo(a))) && r.push(pa(n + 1, o, s, r, da(l, t.codePointAt(n + 1)), !1)));
5521
5522
  }
5522
5523
  var a;
5523
5524
  return function t(e) {
@@ -5534,7 +5535,7 @@
5534
5535
  }
5535
5536
  const s = d.length;
5536
5537
  for (let t = 0; t < r.length; t++) {
5537
- const n = r.charCodeAt(t), i = e[n];
5538
+ const n = r.codePointAt(t), i = e[n];
5538
5539
  i && (ia(n) && 1 !== o ? (32 !== n && d.push({
5539
5540
  glyph: n,
5540
5541
  x: u,
@@ -5667,7 +5668,7 @@
5667
5668
  this.Z = i;
5668
5669
  }
5669
5670
  pt(t, e) {
5670
- return this.feature.properties[e] || "default";
5671
+ return this.feature.properties[e] || "";
5671
5672
  }
5672
5673
  getShape(t, e) {
5673
5674
  if (this.yt) return this.yt;
@@ -5702,16 +5703,16 @@
5702
5703
  }
5703
5704
  getIconAndGlyph() {
5704
5705
  if (this.iconGlyph) return this.iconGlyph;
5705
- const {markerFileFn: t, markerTypeFn: e, markerPathFn: n, markerWidthFn: i, markerHeightFn: r, markerFillFn: s, markerFillPatternFileFn: o, markerFillOpacityFn: a, markerTextFitFn: l, markerTextFitPaddingFn: h, markerLineColorFn: u, markerLineWidthFn: c, markerLineOpacityFn: f, markerLineDasharrayFn: d, markerLinePatternFileFn: p, markerPathWidthFn: y, markerPathHeightFn: m, textNameFn: g, textFaceNameFn: v, textStyleFn: w, textWeightFn: A} = this.Z, {zoom: M} = this.options, _ = {}, S = this.symbol, k = this.feature.properties, P = t ? t(null, k) : S.markerFile, T = e ? e(null, k) : S.markerType, F = P || T || S.markerPath, O = !Tn(this.symbolDef.textName);
5706
+ const {markerFileFn: t, markerTypeFn: e, markerPathFn: n, markerWidthFn: i, markerHeightFn: r, markerFillFn: s, markerFillPatternFileFn: o, markerFillOpacityFn: a, markerTextFitFn: l, markerTextFitPaddingFn: h, markerLineColorFn: u, markerLineWidthFn: c, markerLineOpacityFn: f, markerLineDasharrayFn: d, markerLinePatternFileFn: p, markerPathWidthFn: y, markerPathHeightFn: m, textNameFn: g, textFaceNameFn: v, textStyleFn: w, textWeightFn: A} = this.Z, {zoom: M} = this.options, _ = {}, S = this.symbol, k = this.feature.properties, P = t ? t(null, k) : S.markerFile, T = e ? e(null, k) : S.markerType, F = P || T || S.markerPath, O = !Nn(this.symbolDef.textName);
5706
5707
  let I;
5707
5708
  if (F) {
5708
5709
  I = function(t, e, n, i, r, s) {
5709
- if (Tn(e.markerWidth) && Tn(e.markerHeight)) return null;
5710
+ if (Nn(e.markerWidth) && Nn(e.markerHeight)) return null;
5710
5711
  const o = "__fn_markerWidth".trim(), a = "__fn_markerHeight".trim();
5711
5712
  let l = e.markerWidth || 0, h = e.markerHeight || 0;
5712
- return On(l) && ("identity" !== l.type ? l = To(l) : (l = t.markerWidth, t[o] && (l = t[o](i, n)),
5713
- On(l) && (l = "identity" === l.type ? r(i, n) : To(l)))), On(h) && ("identity" !== h.type ? h = To(h) : (h = t.markerHeight,
5714
- t[a] && (h = t[a](i, n)), On(h) && (h = "identity" === h.type ? s(i, n) : To(h)))),
5713
+ return Ln(l) && ("identity" !== l.type ? l = To(l) : (l = t.markerWidth, t[o] && (l = t[o](i, n)),
5714
+ Ln(l) && (l = "identity" === l.type ? r(i, n) : To(l)))), Ln(h) && ("identity" !== h.type ? h = To(h) : (h = t.markerHeight,
5715
+ t[a] && (h = t[a](i, n)), Ln(h) && (h = "identity" === h.type ? s(i, n) : To(h)))),
5715
5716
  [ l, h ];
5716
5717
  }(S, this.symbolDef, k, M, i, r) || [ 0, 0 ];
5717
5718
  let t = S.markerTextFit;
@@ -5744,43 +5745,43 @@
5744
5745
  e.markerPathWidth = y ? y(null, k) : S.markerPathWidth, e.markerPathHeight = m ? m(null, k) : S.markerPathHeight),
5745
5746
  i) {
5746
5747
  const t = i(null, k);
5747
- Tn(t) || (e.markerWidth = t);
5748
+ Nn(t) || (e.markerWidth = t);
5748
5749
  } else S.markerWidth >= 0 && (e.markerWidth = S.markerWidth);
5749
5750
  if (r) {
5750
5751
  const t = r(null, k);
5751
- Tn(t) || (e.markerHeight = t);
5752
+ Nn(t) || (e.markerHeight = t);
5752
5753
  } else S.markerHeight >= 0 && (e.markerHeight = S.markerHeight);
5753
5754
  if (s) {
5754
5755
  const t = s(null, k);
5755
- Tn(t) || (e.markerFill = t);
5756
+ Nn(t) || (e.markerFill = t);
5756
5757
  } else S.markerFill && (e.markerFill = S.markerFill);
5757
5758
  if (o) {
5758
5759
  const t = o(null, k);
5759
- Tn(t) || (e.markerFillPatternFile = t);
5760
+ Nn(t) || (e.markerFillPatternFile = t);
5760
5761
  } else S.markerFillPatternFile && (e.markerFillPatternFile = S.markerFillPatternFile);
5761
5762
  if (a) {
5762
5763
  const t = a(null, k);
5763
- Tn(t) || (e.markerFillOpacity = t);
5764
+ Nn(t) || (e.markerFillOpacity = t);
5764
5765
  } else S.markerFillOpacity >= 0 && (e.markerFillOpacity = S.markerFillOpacity);
5765
5766
  if (u) {
5766
5767
  const t = u(null, k);
5767
- Tn(t) || (e.markerLineColor = t);
5768
+ Nn(t) || (e.markerLineColor = t);
5768
5769
  } else S.markerLineColor && (e.markerLineColor = S.markerLineColor);
5769
5770
  if (c) {
5770
5771
  const t = c(null, k);
5771
- Tn(t) || (e.markerLineWidth = t);
5772
+ Nn(t) || (e.markerLineWidth = t);
5772
5773
  } else S.markerLineWidth >= 0 && (e.markerLineWidth = S.markerLineWidth);
5773
5774
  if (f) {
5774
5775
  const t = f(null, k);
5775
- Tn(t) || (e.markerLineOpacity = t);
5776
+ Nn(t) || (e.markerLineOpacity = t);
5776
5777
  } else S.markerLineOpacity >= 0 && (e.markerLineOpacity = S.markerLineOpacity);
5777
5778
  if (d) {
5778
5779
  const t = d(null, k);
5779
- Tn(t) || (e.markerLineDasharray = t);
5780
+ Nn(t) || (e.markerLineDasharray = t);
5780
5781
  } else S.markerLineDasharray && (e.markerLineDasharray = S.markerLineDasharray);
5781
5782
  if (p) {
5782
5783
  const t = p(null, k);
5783
- Tn(t) || (e.markerLinePatternFile = t);
5784
+ Nn(t) || (e.markerLinePatternFile = t);
5784
5785
  } else S.markerLinePatternFile && (e.markerLinePatternFile = S.markerLinePatternFile);
5785
5786
  t = "vector://" + JSON.stringify(e);
5786
5787
  } else t = P ? P.replace(va, this.dt) : S.markerPath ? function(t, e, n) {
@@ -5803,25 +5804,25 @@
5803
5804
  };
5804
5805
  return 0 === e.stroke["stroke-width"] && (e.stroke["stroke-opacity"] = 0), e;
5805
5806
  }(t);
5806
- Fn(t.markerOpacity) && (i = t.markerOpacity), Fn(t.opacity) && (i *= t.opacity);
5807
+ Rn(t.markerOpacity) && (i = t.markerOpacity), Rn(t.opacity) && (i *= t.opacity);
5807
5808
  const s = {};
5808
5809
  if (r) {
5809
- for (const t in r.stroke) Dn(r.stroke, t) && (Tn(r.stroke[t]) || (s[t] = r.stroke[t]));
5810
- for (const t in r.fill) Dn(r.fill, t) && (Tn(r.fill[t]) || (s[t] = r.fill[t]));
5810
+ for (const t in r.stroke) Vn(r.stroke, t) && (Nn(r.stroke[t]) || (s[t] = r.stroke[t]));
5811
+ for (const t in r.fill) Vn(r.fill, t) && (Nn(r.fill[t]) || (s[t] = r.fill[t]));
5811
5812
  }
5812
5813
  const o = Array.isArray(t.markerPath) ? t.markerPath : [ t.markerPath ];
5813
5814
  let a;
5814
5815
  const l = [];
5815
- for (let t = 0; t < o.length; t++) a = In(o[t]) ? {
5816
+ for (let t = 0; t < o.length; t++) a = zn(o[t]) ? {
5816
5817
  path: o[t]
5817
- } : o[t], a = Pn({}, a, s), a.d = a.path, delete a.path, l.push(a);
5818
+ } : o[t], a = Dn({}, a, s), a.d = a.path, delete a.path, l.push(a);
5818
5819
  const h = [ '<svg version="1.1"', 'xmlns="http://www.w3.org/2000/svg"' ];
5819
5820
  i < 1 && h.push('opacity="' + i + '"'), t.markerPathWidth && t.markerPathHeight && h.push('viewBox="0 0 ' + t.markerPathWidth + " " + t.markerPathHeight + '"'),
5820
5821
  h.push('preserveAspectRatio="none"'), e && h.push('width="' + e + '"'), n && h.push('height="' + n + '"'),
5821
5822
  h.push("><defs></defs>");
5822
5823
  for (let t = 0; t < l.length; t++) {
5823
5824
  let e = "<path ";
5824
- for (const n in l[t]) Dn(l[t], n) && (e += " " + n + '="' + l[t][n] + '"');
5825
+ for (const n in l[t]) Vn(l[t], n) && (e += " " + n + '="' + l[t][n] + '"');
5825
5826
  e += "></path>", h.push(e);
5826
5827
  }
5827
5828
  return h.push("</svg>"), "data:image/svg+xml;base64," + btoa(h.join(" "));
@@ -5956,7 +5957,7 @@
5956
5957
  const i = [];
5957
5958
  let r, s;
5958
5959
  for (let e = 0; e < n; e++) {
5959
- const n = Bn(t[e]);
5960
+ const n = gn(t[e]);
5960
5961
  0 !== n && (t[e].area = Math.abs(n), void 0 === s && (s = n < 0), s === n < 0 ? (r && i.push(r),
5961
5962
  r = [ t[e] ]) : r.push(t[e]));
5962
5963
  }
@@ -6045,37 +6046,37 @@
6045
6046
  const a = o[t];
6046
6047
  if ("vertex" === e) for (let t = 0; t < a.length; t++) {
6047
6048
  const e = a[t];
6048
- for (let o = 0; o < e.length; o++) $n(e[o], n) || (s.push(e[o]), i && (0 === o ? Ea(e[o], e[o], e[t + 1], r) : Ea(e[o], e[o - 1], e[o], r)));
6049
+ for (let o = 0; o < e.length; o++) bn(e[o], n) || (s.push(e[o]), i && (0 === o ? Ea(e[o], e[o], e[t + 1], r) : Ea(e[o], e[o - 1], e[o], r)));
6049
6050
  } else if ("vertex-first" === e) {
6050
6051
  const t = a[0];
6051
- t && t[0] && !$n(t[0], n) && (s.push(t[0]), i && Ea(t[0], t[0], t[1], r));
6052
+ t && t[0] && !bn(t[0], n) && (s.push(t[0]), i && Ea(t[0], t[0], t[1], r));
6052
6053
  } else if ("vertex-last" === e || "vertex-firstlast" === e) {
6053
6054
  const t = a[0];
6054
- if ("vertex-firstlast" === e && t && t[0] && !$n(t[0], n) && (s.push(t[0]), i && Ea(t[0], t[0], t[1], r)),
6055
- t && t[t.length - 1] && !$n(t[t.length - 1], n)) {
6055
+ if ("vertex-firstlast" === e && t && t[0] && !bn(t[0], n) && (s.push(t[0]), i && Ea(t[0], t[0], t[1], r)),
6056
+ t && t[t.length - 1] && !bn(t[t.length - 1], n)) {
6056
6057
  const e = t.length - 1;
6057
6058
  s.push(t[e]), i && Ea(t[e], t[e - 1], t[e], r);
6058
6059
  }
6059
6060
  } else {
6060
6061
  const t = Fa(a, 16);
6061
- $n(t, n) || s.push(t);
6062
+ bn(t, n) || s.push(t);
6062
6063
  }
6063
6064
  }
6064
6065
  } else if (2 === t.type) for (let o = 0; o < t.geometry.length; o++) {
6065
6066
  const a = t.geometry[o];
6066
- if ("vertex" === e) for (let t = 0; t < a.length; t++) $n(a[t], n) || (s.push(a[t]),
6067
+ if ("vertex" === e) for (let t = 0; t < a.length; t++) bn(a[t], n) || (s.push(a[t]),
6067
6068
  i && (0 === t ? Ea(a[t], a[t], a[t + 1], r) : Ea(a[t], a[t - 1], a[t], r))); else if ("vertex-last" === e || "vertex-firstlast" === e) {
6068
- if ("vertex-firstlast" !== e || $n(a[0], n) || (s.push(a[0]), i && Ea(a[0], a[0], a[1], r)),
6069
- a && a[a.length - 1] && !$n(a[a.length - 1], n)) {
6069
+ if ("vertex-firstlast" !== e || bn(a[0], n) || (s.push(a[0]), i && Ea(a[0], a[0], a[1], r)),
6070
+ a && a[a.length - 1] && !bn(a[a.length - 1], n)) {
6070
6071
  const t = a.length - 1;
6071
6072
  s.push(a[t]), i && Ea(a[t], a[t - 1], a[t], r);
6072
6073
  }
6073
- } else $n(a[0], n) || (s.push(a[0]), i && Ea(a[0], a[0], a[1], r));
6074
+ } else bn(a[0], n) || (s.push(a[0]), i && Ea(a[0], a[0], a[1], r));
6074
6075
  } else if (1 === t.type) for (let e = 0; e < t.geometry.length; e++) {
6075
6076
  const r = t.geometry[e];
6076
6077
  for (let t = 0; t < r.length; t++) {
6077
6078
  const e = r[t];
6078
- $n(e, n) || (i && (e.xRotation = 0, e.yRotation = 0, e.zRotation = 0), s.push(e));
6079
+ bn(e, n) || (i && (e.xRotation = 0, e.yRotation = 0, e.zRotation = 0), s.push(e));
6079
6080
  }
6080
6081
  }
6081
6082
  return s;
@@ -6138,7 +6139,7 @@
6138
6139
  const a = function(t, e, n, i, r) {
6139
6140
  const s = "__index".trim(), o = _o.genFnTypes(e), {mergeOnPropertyFn: a} = o;
6140
6141
  if (!e.mergeOnProperty || "line" !== i && "line" !== n) return [];
6141
- if (!(Xn(l = e.mergeOnProperty) || "string" != typeof l && (null === l.constructor || l.constructor !== String) || "line" !== i && "line" !== n)) return [ {
6142
+ if (!(wn(l = e.mergeOnProperty) || "string" != typeof l && (null === l.constructor || l.constructor !== String) || "line" !== i && "line" !== n)) return [ {
6142
6143
  features: t,
6143
6144
  property: e.mergeOnProperty
6144
6145
  } ];
@@ -6151,7 +6152,7 @@
6151
6152
  let f = n;
6152
6153
  "line" !== f && (f = i);
6153
6154
  const d = a ? a(r, l) : e.mergeOnProperty;
6154
- "line" !== f || Xn(d) ? c.push(t[o]) : (void 0 === u[d] && (u[d] = h.length, h.push({
6155
+ "line" !== f || wn(d) ? c.push(t[o]) : (void 0 === u[d] && (u[d] = h.length, h.push({
6155
6156
  features: [],
6156
6157
  property: d
6157
6158
  })), h[u[d]].features.push(t[o]));
@@ -6200,7 +6201,7 @@
6200
6201
  if (i) {
6201
6202
  if (!s || !s.positions[i.font]) return !1;
6202
6203
  const t = s.positions[i.font], {text: e} = i;
6203
- for (let n = 0; n < e.length; n++) if (!t[e.charCodeAt(n)]) return !1;
6204
+ for (const n of e) if (!t[n.codePointAt(0)]) return !1;
6204
6205
  }
6205
6206
  return !0;
6206
6207
  }
@@ -6215,7 +6216,7 @@
6215
6216
  }
6216
6217
  if (a.glyph && !this.options.atlas) {
6217
6218
  const {font: t, text: e} = a.glyph, n = s[t] = s[t] || {};
6218
- for (let t = 0; t < e.length; t++) n[e.charCodeAt(t)] = 1;
6219
+ for (const t of e) n[t.codePointAt(0)] = 1;
6219
6220
  "line" === this.gt && (s.options = {
6220
6221
  isCharsCompact: !1
6221
6222
  });
@@ -6353,11 +6354,11 @@
6353
6354
  }
6354
6355
  return r;
6355
6356
  }(n.horizontal, h, this.glyphAtlas.positions[e]), f && (z = f(null, l), x(z) ? (this.dynamicAttrs.aTextFill = 1,
6356
- z = [ 0, 0, 0, 0 ]) : z = Hn([], z)), d && (H = d(this.options.zoom, l), Xn(H) && (H = 14)),
6357
- p && (U = p(null, l), x(U) ? (this.dynamicAttrs.aTextHaloFill = 1, U = [ 0, 0, 0, 0 ]) : U = Hn([], U)),
6357
+ z = [ 0, 0, 0, 0 ]) : z = $n([], z)), d && (H = d(this.options.zoom, l), wn(H) && (H = 14)),
6358
+ p && (U = p(null, l), x(U) ? (this.dynamicAttrs.aTextHaloFill = 1, U = [ 0, 0, 0, 0 ]) : U = $n([], U)),
6358
6359
  y && (V = y(null, l)), m && (j = 255 * m(null, l)), g && (B = g(null, l) || 0),
6359
6360
  v && (G = v(null, l) || 0), b && (Y = +("map" === b(null, l))), w && (J = +("map" === w(null, l))),
6360
- A && (Z = qn(A(null, l), 0, 360) * Math.PI / 180);
6361
+ A && (Z = An(A(null, l), 0, 360) * Math.PI / 180);
6361
6362
  } else R = n ? function(t) {
6362
6363
  const e = t.image, n = t.top - 1 / e.pixelRatio, i = t.left - 1 / e.pixelRatio, r = t.bottom + 1 / e.pixelRatio, s = t.right + 1 / e.pixelRatio;
6363
6364
  let o, a, l, h;
@@ -6391,9 +6392,9 @@
6391
6392
  writingMode: void 0,
6392
6393
  glyphOffset: [ 0, 0 ]
6393
6394
  } ];
6394
- }(), k && (W = k(null, l)), Xn(W) && (W = R[0].tex.w), P && ($ = P(null, l)), Xn($) && ($ = R[0].tex.h),
6395
+ }(), k && (W = k(null, l)), wn(W) && (W = R[0].tex.w), P && ($ = P(null, l)), wn($) && ($ = R[0].tex.h),
6395
6396
  T && (X = T(null, l)), F && (q = F(null, l)), O && (Y = +("map" === O(null, l))),
6396
- I && (J = +("map" === I(null, l))), C && (Z = qn(C(null, l), 0, 360) * Math.PI / 180);
6397
+ I && (J = +("map" === I(null, l))), C && (Z = An(C(null, l), 0, 360) * Math.PI / 180);
6397
6398
  x(H) && (this.dynamicAttrs.aTextSize = 1), x(V) && (this.dynamicAttrs.aTextHaloRadius = 1),
6398
6399
  x(j) && (this.dynamicAttrs.aTextHaloOpacity = 1), x(B) && (this.dynamicAttrs.aTextDx = 1),
6399
6400
  x(G) && (this.dynamicAttrs.aTextDy = 1), x(W) && (this.dynamicAttrs.aMarkerWidth = 1),
@@ -6407,10 +6408,10 @@
6407
6408
  et && (Q = et(null, l) || 0);
6408
6409
  const it = S || N;
6409
6410
  it && (nt = 255 * it(this.options.zoom, l));
6410
- const rt = this.options.EXTENT, st = R.length, {altitudeScale: ot, altitudeProperty: at, defaultAltitude: lt} = this.options, {altitude: ht} = Wn(t.feature, ot, at, lt);
6411
+ const rt = this.options.EXTENT, st = R.length, {altitudeScale: ot, altitudeProperty: at, defaultAltitude: lt} = this.options, {altitude: ht} = xn(t.feature, ot, at, lt);
6411
6412
  for (let t = 0; t < i.length; t++) {
6412
6413
  const e = i[t], n = e.z || ht || 0;
6413
- if (rt !== 1 / 0 && $n(e, rt)) continue;
6414
+ if (rt !== 1 / 0 && bn(e, rt)) continue;
6414
6415
  const s = e.x, a = e.y, l = R.length;
6415
6416
  for (let t = 0; t < l; t++) {
6416
6417
  const i = R[t], {tl: l, tr: f, bl: d, br: p, tex: y} = i;
@@ -6449,7 +6450,7 @@
6449
6450
  wt(t, e, n) {
6450
6451
  const {feature: i, symbol: r} = t, s = this.St(t, r), o = i.properties, {markerSpacingFn: a, textSpacingFn: l, textMaxAngleFn: h} = this.Z, u = ((a ? a(null, o) : r.markerSpacing) || (l ? l(null, o) : r.textSpacing) || 250) * n;
6451
6452
  let c = h ? h(this.options.zoom, o) : r.textMaxAngle;
6452
- Xn(c) && (c = 80), c *= Math.PI / 180;
6453
+ wn(c) && (c = 80), c *= Math.PI / 180;
6453
6454
  const f = this.options.EXTENT, d = this.options.altitudeToTileScale, p = this.bt();
6454
6455
  return Ca(t, this.lineVertex, c, e, n, f, s, u, p, d);
6455
6456
  }
@@ -6656,22 +6657,22 @@
6656
6657
  if (e && (m = e(this.options.zoom, y) || "miter"), n && (g = n(this.options.zoom, y) || "butt"),
6657
6658
  i) {
6658
6659
  let t = i(this.options.zoom, y);
6659
- x(t) && (this.dynamicAttrs.aLineWidth = 1, t = 4), Tn(t) && (t = 4), this.feaLineWidth = +t;
6660
+ x(t) && (this.dynamicAttrs.aLineWidth = 1, t = 4), Nn(t) && (t = 4), this.feaLineWidth = +t;
6660
6661
  } else this.feaLineWidth = +d.lineWidth;
6661
6662
  if (r) {
6662
6663
  let t = r(this.options.zoom, y);
6663
- x(t) && (this.dynamicAttrs.aLineHeight = 1), Tn(t) && (t = this.feaLineWidth), this.feaLineHeight = +t;
6664
+ x(t) && (this.dynamicAttrs.aLineHeight = 1), Nn(t) && (t = this.feaLineWidth), this.feaLineHeight = +t;
6664
6665
  } else this.feaLineHeight = +d.lineHeight || this.feaLineWidth;
6665
6666
  if (s) {
6666
6667
  let t = s(this.options.zoom, y);
6667
- x(t) && (this.dynamicAttrs.aLineStrokeWidth = 1, t = 0), Tn(t) && (t = 0), this.feaLineStrokeWidth = t;
6668
+ x(t) && (this.dynamicAttrs.aLineStrokeWidth = 1, t = 0), Nn(t) && (t = 0), this.feaLineStrokeWidth = t;
6668
6669
  } else this.feaLineStrokeWidth = d.lineStrokeWidth || 0;
6669
6670
  if (a && (this.feaColor = a(this.options.zoom, y) || [ 255, 255, 255, 255 ], x(this.feaColor) ? (this.dynamicAttrs.aColor = 1,
6670
- this.feaColor = [ 0, 0, 0, 0 ]) : this.feaColor = Hn([], this.feaColor)), o && (this.feaStrokeColor = o(this.options.zoom, y) || [ 0, 0, 0, 255 ],
6671
- x(this.feaStrokeColor) ? (this.dynamicAttrs.aStrokeColor = 1, this.feaStrokeColor = [ 0, 0, 0, 0 ]) : this.feaStrokeColor = Hn([], this.feaStrokeColor)),
6671
+ this.feaColor = [ 0, 0, 0, 0 ]) : this.feaColor = $n([], this.feaColor)), o && (this.feaStrokeColor = o(this.options.zoom, y) || [ 0, 0, 0, 255 ],
6672
+ x(this.feaStrokeColor) ? (this.dynamicAttrs.aStrokeColor = 1, this.feaStrokeColor = [ 0, 0, 0, 0 ]) : this.feaStrokeColor = $n([], this.feaStrokeColor)),
6672
6673
  l) {
6673
6674
  let t = l(this.options.zoom, y);
6674
- x(t) && (this.dynamicAttrs.aOpacity = 1, t = 1), Tn(t) && (t = 1), this.feaOpacity = 255 * t;
6675
+ x(t) && (this.dynamicAttrs.aOpacity = 1, t = 1), Nn(t) && (t = 1), this.feaOpacity = 255 * t;
6675
6676
  }
6676
6677
  if (this.dasharrayFn) {
6677
6678
  let t = this.dasharrayFn(this.options.zoom, y) || [ 0, 0, 0, 0 ];
@@ -6683,7 +6684,7 @@
6683
6684
  }
6684
6685
  if (this.dashColorFn) {
6685
6686
  let t = (this.dashColorFn ? this.dashColorFn(this.options.zoom, y) : this.symbol.lineDashColor) || [ 0, 0, 0, 0 ];
6686
- x(t) && (this.dynamicAttrs.aDashColor = 1, t = [ 0, 0, 0, 0 ]), t = Hn([], t), this.feaDashColor = t;
6687
+ x(t) && (this.dynamicAttrs.aDashColor = 1, t = [ 0, 0, 0, 0 ]), t = $n([], t), this.feaDashColor = t;
6687
6688
  }
6688
6689
  if (this.iconAtlas) {
6689
6690
  const e = t.getLineResource(), n = this.iconAtlas.glyphMap[e];
@@ -6695,20 +6696,20 @@
6695
6696
  }
6696
6697
  if (h) {
6697
6698
  let t = h(this.options.zoom, y);
6698
- x(t) && (this.dynamicAttrs.aLineDxDy = 1, t = 0), Tn(t) && (t = 0), this.feaLineDx = t;
6699
+ x(t) && (this.dynamicAttrs.aLineDxDy = 1, t = 0), Nn(t) && (t = 0), this.feaLineDx = t;
6699
6700
  }
6700
6701
  if (u) {
6701
6702
  let t = u(this.options.zoom, y);
6702
- x(t) && (this.dynamicAttrs.aLineDxDy = 1, t = 0), Tn(t) && (t = 0), this.feaLineDy = t;
6703
+ x(t) && (this.dynamicAttrs.aLineDxDy = 1, t = 0), Nn(t) && (t = 0), this.feaLineDy = t;
6703
6704
  }
6704
6705
  if (c) {
6705
6706
  let t = c(this.options.zoom, y);
6706
- x(t) && (this.dynamicAttrs.aLinePatternAnimSpeed = 1, t = 0), Tn(t) && (t = 0),
6707
+ x(t) && (this.dynamicAttrs.aLinePatternAnimSpeed = 1, t = 0), Nn(t) && (t = 0),
6707
6708
  0 !== t && (this.properties.hasPatternAnim = 1), this.feaPatternAnimSpeed = t;
6708
6709
  }
6709
6710
  if (f) {
6710
6711
  let t = f(this.options.zoom, y);
6711
- x(t) && (this.dynamicAttrs.aLinePatternGap = 1, t = 0), Tn(t) && (t = 0), this.feaLinePatternGap = t;
6712
+ x(t) && (this.dynamicAttrs.aLinePatternGap = 1, t = 0), Nn(t) && (t = 0), this.feaLinePatternGap = t;
6712
6713
  }
6713
6714
  const v = this.options.EXTENT;
6714
6715
  let b = p.geometry;
@@ -6737,7 +6738,7 @@
6737
6738
  a && (t = t.map(t => new Ra(t))), this.overscaling = 1;
6738
6739
  const l = this.options.EXTENT;
6739
6740
  if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.prevVertex = null,
6740
- this.symbol.lineGradientProperty && e.properties && Fn(e.properties.mapbox_clip_start) && Fn(e.properties.mapbox_clip_end)) {
6741
+ this.symbol.lineGradientProperty && e.properties && Rn(e.properties.mapbox_clip_start) && Rn(e.properties.mapbox_clip_end)) {
6741
6742
  this.clipStart = +e.properties.mapbox_clip_start, this.clipEnd = +e.properties.mapbox_clip_end;
6742
6743
  for (let e = 0; e < t.length - 1; e++) this.totalDistance += t[e].dist(t[e + 1]);
6743
6744
  this.updateScaledDistance();
@@ -6868,7 +6869,7 @@
6868
6869
  }
6869
6870
  updateDistance(t, e) {
6870
6871
  if (this.options.isTube) {
6871
- const n = t.dist(e), i = Ln(this.options) * (e.z - t.z);
6872
+ const n = t.dist(e), i = Gn(this.options) * (e.z - t.z);
6872
6873
  this.distance += Math.sqrt(n * n + i * i);
6873
6874
  } else this.distance += t.dist(e);
6874
6875
  this.updateScaledDistance();
@@ -6979,17 +6980,18 @@
6979
6980
  let n, i, r, s;
6980
6981
  const {polygonFillFn: o, polygonOpacityFn: a, uvScaleFn: l, uvOffsetFn: h, uvOffsetInMeterFn: u, polygonPatternUVFn: c} = this.Z, f = e.properties;
6981
6982
  o && (n = o(this.options.zoom, f) || re([], 255, 255, 255, 255), x(n) ? (this.dynamicAttrs.aColor = 1,
6982
- n = el) : n = Hn([], n)), a && (i = a(this.options.zoom, f), x(i) ? (this.dynamicAttrs.aOpacity = 1,
6983
- i = 255) : (Tn(i) && (i = 1), i *= 255)), l && (r = l(this.options.zoom, f), x(r) ? (r = [ 255, 255 ],
6984
- this.dynamicAttrs.aUVScale = 1) : (Tn(r) && (r = [ 1, 1 ]), r = [ 255 * r[0], 255 * r[1] ])),
6983
+ n = el) : n = $n([], n)), a && (i = a(this.options.zoom, f), x(i) ? (this.dynamicAttrs.aOpacity = 1,
6984
+ i = 255) : (Nn(i) && (i = 1), i *= 255)), l && (r = l(this.options.zoom, f), x(r) ? (r = [ 255, 255 ],
6985
+ this.dynamicAttrs.aUVScale = 1) : (Nn(r) && (r = [ 1, 1 ]), r = [ 255 * r[0], 255 * r[1] ])),
6985
6986
  h && (u && u(null, f) ? s = [ 0, 0 ] : (s = h(this.options.zoom, f), x(s) ? (s = [ 0, 0 ],
6986
- this.dynamicAttrs.aUVOffset = 1) : (Tn(s) && (s = [ 0, 0 ]), s = [ 255 * s[0], 255 * s[1] ])));
6987
+ this.dynamicAttrs.aUVOffset = 1) : (Nn(s) && (s = [ 0, 0 ]), s = [ 255 * s[0], 255 * s[1] ])));
6987
6988
  const d = !!this.iconAtlas, p = ka(t, 500), y = [ 0, 0 ], m = [ 0, 0 ];
6988
6989
  if (d) {
6989
6990
  const {polygonPatternFileFn: t} = this.Z, e = t ? t(null, f) : this.symbol.polygonPatternFile;
6990
6991
  if (this.iconAtlas.glyphMap[e]) {
6991
- const t = this.iconAtlas.positions[e];
6992
- y[0] = t.tl[0] + 1, y[1] = t.tl[1] + 1, m[0] = t.displaySize[0] - 3, m[1] = t.displaySize[1] - 3;
6992
+ const t = this.iconAtlas.positions[e], n = !_n(t.displaySize[0]) || !_n(t.displaySize[1]);
6993
+ y[0] = t.tl[0] + (n ? 1 : 0), y[1] = t.tl[1] + (n ? 1 : 0), m[0] = t.displaySize[0] - 1 - (n ? 2 : 0),
6994
+ m[1] = t.displaySize[1] - 1 - (n ? 2 : 0);
6993
6995
  }
6994
6996
  }
6995
6997
  let g, v = 0;
@@ -7009,7 +7011,7 @@
7009
7011
  void 0 !== r && this.data.aUVScale.push(r[0], r[1]), void 0 !== s && this.data.aUVOffset.push(s[0], s[1]),
7010
7012
  c) {
7011
7013
  if (g) {
7012
- const t = Tn(g[2 * v]) ? g[0] : g[2 * v], e = Tn(g[2 * v] + 1) ? g[1] : g[2 * v + 1];
7014
+ const t = Nn(g[2 * v]) ? g[0] : g[2 * v], e = Nn(g[2 * v] + 1) ? g[1] : g[2 * v + 1];
7013
7015
  this.data.aTexCoord.push(t, e);
7014
7016
  } else this.data.aTexCoord.push(-9999999, -9999999);
7015
7017
  v++;
@@ -7166,7 +7168,7 @@
7166
7168
  /bolder/i.test(s) ? e = "1000" : /bold/i.test(s) ? e = "900" : /medium/i.test(s) ? e = "500" : /light/i.test(s) && (e = "200"),
7167
7169
  a = t.tinySDF = new sl(24, l, 8, .25, o, e, r);
7168
7170
  }
7169
- const u = String.fromCharCode(n), c = a.ctx.measureText(u), f = Math.round(c.width), d = a.draw(String.fromCharCode(n), f + 2 * l, 24 + 2 * l);
7171
+ const u = String.fromCodePoint(n), c = a.ctx.measureText(u), f = Math.round(c.width), d = a.draw(u, f + 2 * l, 24 + 2 * l);
7170
7172
  if (ll < 4) {
7171
7173
  const t = "undefined" != typeof document && document.getElementById("sdf-debug-" + ll++);
7172
7174
  t && (t.width = f + 2 * l, t.height = a.canvas.height, t.getContext("2d").drawImage(a.canvas, 0, 0));
@@ -7197,7 +7199,7 @@
7197
7199
  return {
7198
7200
  charCode: t.charCode,
7199
7201
  bitmap: e,
7200
- metrics: Pn({}, t.metrics)
7202
+ metrics: Dn({}, t.metrics)
7201
7203
  };
7202
7204
  }
7203
7205
  class cl {
@@ -7232,10 +7234,11 @@
7232
7234
  let e, n;
7233
7235
  try {
7234
7236
  e = this.width, n = this.height, this.size[0] = e, this.size[1] = n, l.Vt(null, this.size),
7235
- e = this.size[0], n = this.size[1], t.canvas.width = e, t.canvas.height = n, t.imageSmoothingEnabled = !1,
7236
- t.drawImage(this, 0, 0, e, n);
7237
- const i = t.getImageData(0, 0, e, n).data;
7238
- l.jt(this.url, i, e, n);
7237
+ e = this.size[0], n = this.size[1];
7238
+ const i = t.canvas;
7239
+ i.width = e, i.height = n, t.imageSmoothingEnabled = !1, t.drawImage(this, 0, 0, e, n);
7240
+ const r = t.getImageData(0, 0, i.width, i.height).data;
7241
+ l.jt(this.url, r, i.width, i.height);
7239
7242
  } catch (t) {
7240
7243
  console.warn(t);
7241
7244
  }
@@ -7285,8 +7288,8 @@
7285
7288
  }
7286
7289
  this.Ht[a] = [], this.Ht[a].push(h);
7287
7290
  const t = new Image;
7288
- t.index = n, t.size = l, t.onload = c, t.onerror = f, t.onabort = f, t.url = d && d(a) || a,
7289
- t.crossOrigin = "Anonymous", y = !0, o++, t.src = g;
7291
+ t.index = n, t.size = l, t.onload = c, t.onerror = f, t.onabort = f, t.url = a,
7292
+ t.crossOrigin = "Anonymous", y = !0, o++, t.src = d && d(g) || g;
7290
7293
  }
7291
7294
  }
7292
7295
  y || n(null, {
@@ -7342,19 +7345,19 @@
7342
7345
  var dl = Object.freeze({
7343
7346
  __proto__: null,
7344
7347
  clipPolygon: Ka,
7345
- calculateSignedArea: Bn,
7346
- getFeaAltitudeAndHeight: Wn,
7347
- generatePickingIndiceIndex: Yn,
7348
+ calculateSignedArea: gn,
7349
+ getFeaAltitudeAndHeight: xn,
7350
+ generatePickingIndiceIndex: Mn,
7348
7351
  convertRTLText: ga,
7349
7352
  packPosition: Zn,
7350
7353
  unpackPosition: function(t, e, n, i) {
7351
7354
  const r = (Math.sign(e) || 1) * (Math.abs(e) % Kn), s = (Math.sign(n) || 1) * (Math.abs(n) % Kn), o = Math.floor(Math.abs(e) / Kn), a = Math.floor(Math.abs(n) / Kn);
7352
7355
  return t[0] = r, t[1] = s, t[2] = Math.sign(i + 1e-5) * (2 * o + a) * Qn + i, t;
7353
7356
  },
7354
- convertGeometry: kn,
7355
- getPosArrayType: Mn,
7356
- getUnsignedArrayType: _n,
7357
- getIndexArrayType: An
7357
+ convertGeometry: En,
7358
+ getPosArrayType: On,
7359
+ getUnsignedArrayType: In,
7360
+ getIndexArrayType: Fn
7358
7361
  });
7359
7362
  const pl = {}, yl = {}, ml = [];
7360
7363
  var gl = Object.freeze({
@@ -7371,7 +7374,7 @@
7371
7374
  __fn_types_loaded: !0
7372
7375
  };
7373
7376
  const a = [];
7374
- for (const t in e) Dn(e, t) && a.push(t);
7377
+ for (const t in e) Vn(e, t) && a.push(t);
7375
7378
  const l = function(t) {
7376
7379
  Object.defineProperty(o, t, {
7377
7380
  get: function() {
@@ -7846,11 +7849,19 @@
7846
7849
  function Kl(t, e) {
7847
7850
  return Object.prototype.hasOwnProperty.call(t, e);
7848
7851
  }
7849
- function Ql(t) {
7850
- const e = [ t[0] ];
7851
- let n = t[0];
7852
- for (let i = 1; i < t.length; i++) t[i] !== n && (e.push(t[i]), n = t[i]);
7853
- return e;
7852
+ function Ql(t, e) {
7853
+ if (e) {
7854
+ let e = t[t.length - 1];
7855
+ const n = [ e ];
7856
+ for (let i = t.length - 2; i >= 0; i--) t[i] !== e && (n.push(t[i]), e = t[i]);
7857
+ return n;
7858
+ }
7859
+ {
7860
+ let e = t[t[0]];
7861
+ const n = [ e ];
7862
+ for (let i = 1; i < t.length; i++) t[i] !== e && (n.push(t[i]), e = t[i]);
7863
+ return n;
7864
+ }
7854
7865
  }
7855
7866
  const th = new r.Coordinate(0, 0);
7856
7867
  function eh(t, e, n, i, r) {
@@ -9166,13 +9177,11 @@
9166
9177
  e && e.updateOptions(t);
9167
9178
  }
9168
9179
  getWorkerOptions() {
9169
- const t = this.getMap();
9170
9180
  return {
9171
9181
  debug: this.options.debug,
9172
9182
  debugTile: this.options.debugTile,
9173
9183
  altitudeProperty: this.options.altitudeProperty,
9174
9184
  tileSize: this.getTileSize().width,
9175
- baseRes: t.getGLRes(),
9176
9185
  style: this.isDefaultRender() ? {
9177
9186
  style: [],
9178
9187
  featureStyle: []
@@ -9683,7 +9692,42 @@
9683
9692
  constructor(t, e = {}) {
9684
9693
  e.spatialReference = null, super(t, e), this.setData(e.data);
9685
9694
  }
9686
- Ln() {}
9695
+ onAdd() {
9696
+ this.Ln();
9697
+ }
9698
+ Ln() {
9699
+ const t = this.getMap(), e = t.getMaxNativeZoom(), n = t.getProjection(), i = "EPSG:4326" === n.code || "EPSG:4490" === n.code;
9700
+ var r;
9701
+ i && (this.options.tileSystem = [ 1, -1, -180, 90 ]), this.options.spatialReference = i ? function(t, e) {
9702
+ return {
9703
+ projection: e,
9704
+ fullExtent: {
9705
+ top: 90,
9706
+ left: -180,
9707
+ bottom: -90,
9708
+ right: 180
9709
+ },
9710
+ resolutions: function() {
9711
+ const e = [];
9712
+ for (let n = 0; n <= t + 1; n++) e[n] = 90 / (128 * Math.pow(2, n));
9713
+ return e;
9714
+ }()
9715
+ };
9716
+ }(e, n.code) : (r = e, {
9717
+ projection: "EPSG:3857",
9718
+ resolutions: function() {
9719
+ const t = [], e = 6378137 * Math.PI;
9720
+ for (let n = 0; n <= r + 1; n++) t[n] = e / (256 * Math.pow(2, n));
9721
+ return t;
9722
+ }(),
9723
+ fullExtent: {
9724
+ top: 6378137 * Math.PI,
9725
+ left: -6378137 * Math.PI,
9726
+ bottom: -6378137 * Math.PI,
9727
+ right: 6378137 * Math.PI
9728
+ }
9729
+ });
9730
+ }
9687
9731
  getWorkerOptions() {
9688
9732
  const t = super.getWorkerOptions();
9689
9733
  let e = this.options.data;
@@ -9693,11 +9737,6 @@
9693
9737
  t.projection = this.getSpatialReference().getProjection().code, t.generateOMBB = this.options.generateOMBB,
9694
9738
  t.convertFn = this.options.convertFn ? this.options.convertFn + "" : null, t;
9695
9739
  }
9696
- _initTileConfig() {
9697
- const t = this.getSpatialReference();
9698
- t && t.getProjection() && ("EPSG:4326" === t.getProjection().code || "EPSG:4490" === t.getProjection().code) && (this.options.tileSystem = [ 1, -1, -180, 90 ]),
9699
- super._initTileConfig();
9700
- }
9701
9740
  setData(t) {
9702
9741
  if (this.options.data = t, t && (T(t) || t.url)) {
9703
9742
  return !!this.getRenderer() && this.ci(), this;
@@ -11566,7 +11605,7 @@
11566
11605
  l.$layer = s.layer, l.$type = s.type;
11567
11606
  let h = o(n, l);
11568
11607
  x(h) && (r.aColor = 1, o = w(h), h = o(n, l)), delete l.$layer, delete l.$type,
11569
- jn.normalizeColor(Fu, h), a[4 * e] = Fu[0], a[4 * e + 1] = Fu[1], a[4 * e + 2] = Fu[2],
11608
+ Yn.normalizeColor(Fu, h), a[4 * e] = Fu[0], a[4 * e + 1] = Fu[1], a[4 * e + 2] = Fu[2],
11570
11609
  a[4 * e + 3] = Fu[3];
11571
11610
  }
11572
11611
  s.aColor = a;
@@ -11603,7 +11642,7 @@
11603
11642
  const m = n[e[i]], g = m.properties || {};
11604
11643
  g.$layer = m.layer, g.$type = m.type;
11605
11644
  let v = y ? h : u, b = v(r, g);
11606
- x(b) && (v = w(b), b = v(r, g)), delete g.$layer, delete g.$type, jn.normalizeColor(Fu, b),
11645
+ x(b) && (v = w(b), b = v(r, g)), delete g.$layer, delete g.$type, Yn.normalizeColor(Fu, b),
11607
11646
  se(Fu, Fu, l);
11608
11647
  let A = Ou(s, Fu);
11609
11648
  A < 0 && (A = s.length, s.push(ie([], Fu))), t[i] = A, y ? (c = e[i], d = A) : (f = e[i],
@@ -13008,7 +13047,7 @@
13008
13047
  const e = [];
13009
13048
  for (let n = 0; n < t.length; n++) x(t[n][1]) && !b(t[n][1]).isZoomConstant && e.push(t[n][0]);
13010
13049
  return e;
13011
- }(e[r].stops), h = "identity" === e[r].type && jn.checkIfIdentityZoomDependent(r, e[r].property, s.features);
13050
+ }(e[r].stops), h = "identity" === e[r].type && Yn.checkIfIdentityZoomDependent(r, e[r].property, s.features);
13012
13051
  if (!h && !l.length) return void ef(t, i);
13013
13052
  const {features: u, aPickingId: c} = s, f = function(t, e, n, i, r) {
13014
13053
  const s = [];
@@ -13120,7 +13159,7 @@
13120
13159
  } else t[i] !== h && (Yl(t, h, i, r), t.dirty = !0);
13121
13160
  }
13122
13161
  function uf(t) {
13123
- return jn.isFnTypeSymbol(t);
13162
+ return Yn.isFnTypeSymbol(t);
13124
13163
  }
13125
13164
  const cf = [];
13126
13165
  function ff(t, e, i, r, s) {
@@ -13492,7 +13531,7 @@
13492
13531
  }
13493
13532
  Os(t, e) {
13494
13533
  for (const n in e) if (Kl(e, n)) {
13495
- if (jn.isFnTypeSymbol(e[n]) && !this.layer.options.features && (!t[n] || t[n].property !== e[n].property)) return !0;
13534
+ if (Yn.isFnTypeSymbol(e[n]) && !this.layer.options.features && (!t[n] || t[n].property !== e[n].property)) return !0;
13496
13535
  if (xl[n] && !gh(e[n], t[n])) return !0;
13497
13536
  }
13498
13537
  return !1;
@@ -13717,7 +13756,7 @@
13717
13756
  const n = t && t.length || 0;
13718
13757
  if (!n) return e;
13719
13758
  let i;
13720
- for (let r = 0; r < n; r++) i = t.charCodeAt(r), e = (e << 5) - e + i, e &= e;
13759
+ for (let r = 0; r < n; r++) i = t.codePointAt(r), e = (e << 5) - e + i, e &= e;
13721
13760
  return e;
13722
13761
  }(JSON.stringify(t));
13723
13762
  let a = s[o];
@@ -13968,9 +14007,12 @@
13968
14007
  Object.defineProperty(y, "uvOrigin", {
13969
14008
  enumerable: !0,
13970
14009
  get: () => {
13971
- if (a.data.aPatternOrigin) return o;
13972
- const e = m.polygonPatternFileOrigin;
13973
- return e ? (Gf.set(e[0], e[1]), s.coordToPointAtRes(Gf, d, Wf), n.vec2.set(t, o[0] - Wf.x, o[1] - Wf.y)) : o;
14010
+ const e = y.tileScale;
14011
+ if (a.data.aPatternOrigin) return t[0] = o[0] * e % 2048, t[1] = o[1] * e % 2048,
14012
+ t;
14013
+ const i = m.polygonPatternFileOrigin;
14014
+ return i ? (Gf.set(i[0], i[1]), s.coordToPointAtRes(Gf, d, Wf), n.vec2.set(t, o[0] - Wf.x, o[1] - Wf.y)) : (t[0] = o[0] * e % 2048,
14015
+ t[1] = o[1] * e % 2048, t);
13974
14016
  }
13975
14017
  });
13976
14018
  const e = [];
@@ -14213,7 +14255,7 @@
14213
14255
  }
14214
14256
  } ], s = {};
14215
14257
  this.fillIncludes(s, r, t), this.shader = new n.reshader.MeshShader({
14216
- vert: "#define SHADER_NAME FILL\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\n#ifdef HAS_OPACITY\nattribute float aOpacity;\nvarying float vOpacity;\n#endif\nuniform mat4 projViewModelMatrix;\n#ifndef IS_VT\nuniform mat4 modelMatrix;\n#endif\n#ifdef HAS_PATTERN\n#ifdef HAS_TEX_COORD\nattribute vec2 aTexCoord;\n#endif\nattribute vec4 aTexInfo;\nuniform vec2 patternWidth;\nuniform vec2 patternOffset;\nuniform vec2 uvOrigin;\nuniform vec2 uvScale;\n#ifdef IS_VT\nuniform float tileRatio;\nuniform float tileScale;\n#else\nuniform float glScale;\n#endif\n#ifdef HAS_UV_SCALE\nattribute vec2 aUVScale;\nvarying vec2 vUVScale;\n#endif\n#ifdef HAS_UV_OFFSET\nattribute vec2 aUVOffset;\nvarying vec2 vUVOffset;\n#endif\n#ifdef HAS_PATTERN_WIDTH\nattribute vec2 aPatternWidth;\n#endif\n#ifdef HAS_PATTERN_ORIGIN\nattribute vec2 aPatternOrigin;\n#endif\n#ifdef HAS_PATTERN_OFFSET\nattribute vec2 aPatternOffset;\n#endif\nvarying vec2 vTexCoord;\nvarying vec4 vTexInfo;\nvec2 c(vec2 d, vec2 e) {\n \n#ifdef IS_VT\nfloat f = d.x / e.x;\n float h = d.y / e.y;\n return vec2(f, h);\n#else\nfloat i = glScale;\n#ifdef HAS_PATTERN_WIDTH\nfloat j = sign(length(aPatternWidth));\n i = mix(glScale, 1., j);\n#endif\nvec2 k = uvOrigin;\n#ifdef HAS_PATTERN_ORIGIN\nk = aPatternOrigin;\n#endif\n#ifdef HAS_PATTERN_OFFSET\nvec2 l = aPatternOffset;\n#else\nvec2 l = patternOffset;\n#endif\nk += l;\n float f = (d.x - k.x) * i / e.x;\n float h = (d.y - k.y) * i / e.y;\n return vec2(f, -h);\n#endif\n}\nvec2 m(vec4 n, vec2 o) {\n \n#ifdef IS_VT\n#ifdef HAS_PATTERN_OFFSET\nvec2 l = aPatternOffset;\n#else\nvec2 l = patternOffset;\n#endif\nvec2 k = uvOrigin + l;\n#ifdef HAS_PATTERN_ORIGIN\nk = k - aPatternOrigin;\n#endif\nfloat j = sign(length(patternWidth));\n vec2 A = mix(o, patternWidth, j);\n#ifdef HAS_PATTERN_WIDTH\nA = aPatternWidth;\n#endif\n#ifdef HAS_UV_SCALE\nvec2 B = aUVScale / 255.;\n#else\nvec2 B = uvScale;\n#endif\nvec2 C = k * tileScale * B * vec2(1., -1.) / A;\n return C / B + c(n.xy * tileScale / tileRatio, A);\n#else\nvec2 A = o;\n#ifdef HAS_PATTERN_WIDTH\nfloat j = sign(length(aPatternWidth));\n A = mix(o, aPatternWidth, j);\n#endif\nvec4 D = modelMatrix * n;\n return c(D.xy, A);\n#endif\n}\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_vert>\n#endif\n#include <vt_position_vert>\n#include <highlight_vert>\nvoid main() {\n vec3 E = unpackVTPosition();\n vec4 n = vec4(E, 1.);\n gl_Position = projViewModelMatrix * n;\n#ifdef HAS_PATTERN\nvec2 o = aTexInfo.zw + 1.;\n vTexInfo = vec4(aTexInfo.xy, o);\n#ifdef HAS_TEX_COORD\nif(aTexCoord.x == INVALID_TEX_COORD) {\n vTexCoord = m(n, o);\n } else {\n vTexCoord = aTexCoord;\n }\n#else\nvTexCoord = m(n, o);\n#endif\n#ifdef HAS_UV_SCALE\nvUVScale = aUVScale / 255.;\n#endif\n#ifdef HAS_UV_OFFSET\nvUVOffset = aUVOffset / 255.;\n#endif\n#endif\n#ifdef HAS_COLOR\nvColor = aColor / 255.;\n#endif\nhighlight_setVarying();\n#ifdef HAS_OPACITY\nvOpacity = aOpacity / 255.;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nshadow_computeShadowPars(n);\n#endif\n}",
14258
+ vert: "#define SHADER_NAME FILL\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\n#ifdef HAS_OPACITY\nattribute float aOpacity;\nvarying float vOpacity;\n#endif\nuniform mat4 projViewModelMatrix;\n#ifndef IS_VT\nuniform mat4 modelMatrix;\n#endif\n#ifdef HAS_PATTERN\n#ifdef HAS_TEX_COORD\nattribute vec2 aTexCoord;\n#endif\nattribute vec4 aTexInfo;\nuniform vec2 patternWidth;\nuniform vec2 patternOffset;\nuniform vec2 uvOrigin;\nuniform vec2 uvScale;\n#ifdef IS_VT\nuniform float tileRatio;\nuniform float tileScale;\n#else\nuniform float glScale;\n#endif\n#ifdef HAS_UV_SCALE\nattribute vec2 aUVScale;\nvarying vec2 vUVScale;\n#endif\n#ifdef HAS_UV_OFFSET\nattribute vec2 aUVOffset;\nvarying vec2 vUVOffset;\n#endif\n#ifdef HAS_PATTERN_WIDTH\nattribute vec2 aPatternWidth;\n#endif\n#ifdef HAS_PATTERN_ORIGIN\nattribute vec2 aPatternOrigin;\n#endif\n#ifdef HAS_PATTERN_OFFSET\nattribute vec2 aPatternOffset;\n#endif\nvarying vec2 vTexCoord;\nvarying vec4 vTexInfo;\nvec2 c(vec2 d, vec2 e) {\n \n#ifdef IS_VT\nfloat f = d.x / e.x;\n float h = d.y / e.y;\n return vec2(f, h);\n#else\nfloat i = glScale;\n#ifdef HAS_PATTERN_WIDTH\nfloat j = sign(length(aPatternWidth));\n i = mix(glScale, 1., j);\n#endif\nvec2 k = uvOrigin;\n#ifdef HAS_PATTERN_ORIGIN\nk = aPatternOrigin;\n#endif\n#ifdef HAS_PATTERN_OFFSET\nvec2 l = aPatternOffset;\n#else\nvec2 l = patternOffset;\n#endif\nk += l;\n float f = (d.x - k.x) * i / e.x;\n float h = (d.y - k.y) * i / e.y;\n return vec2(f, -h);\n#endif\n}\nvec2 m(vec4 n, vec2 o) {\n \n#ifdef IS_VT\n#ifdef HAS_PATTERN_OFFSET\nvec2 l = aPatternOffset;\n#else\nvec2 l = patternOffset;\n#endif\nvec2 k = uvOrigin + l;\n#ifdef HAS_PATTERN_ORIGIN\nk = k - aPatternOrigin * tileScale;\n#endif\nfloat j = sign(length(patternWidth));\n vec2 A = mix(o, patternWidth, j);\n#ifdef HAS_PATTERN_WIDTH\nA = aPatternWidth;\n#endif\nvec2 B = k * vec2(1., -1.) / A;\n return mod(B, 1.) + c(n.xy * tileScale / tileRatio, A);\n#else\nvec2 A = o;\n#ifdef HAS_PATTERN_WIDTH\nfloat j = sign(length(aPatternWidth));\n A = mix(o, aPatternWidth, j);\n#endif\nvec4 C = modelMatrix * n;\n return c(C.xy, A);\n#endif\n}\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_vert>\n#endif\n#include <vt_position_vert>\n#include <highlight_vert>\nvoid main() {\n vec3 D = unpackVTPosition();\n vec4 n = vec4(D, 1.);\n gl_Position = projViewModelMatrix * n;\n#ifdef HAS_PATTERN\nvec2 o = aTexInfo.zw + 1.;\n vTexInfo = vec4(aTexInfo.xy, o);\n#ifdef HAS_TEX_COORD\nif(aTexCoord.x == INVALID_TEX_COORD) {\n vTexCoord = m(n, o);\n } else {\n vTexCoord = aTexCoord;\n }\n#else\nvTexCoord = m(n, o);\n#endif\n#ifdef HAS_UV_SCALE\nvUVScale = aUVScale / 255.;\n#endif\n#ifdef HAS_UV_OFFSET\nvUVOffset = aUVOffset / 255.;\n#endif\n#endif\n#ifdef HAS_COLOR\nvColor = aColor / 255.;\n#endif\nhighlight_setVarying();\n#ifdef HAS_OPACITY\nvOpacity = aOpacity / 255.;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nshadow_computeShadowPars(n);\n#endif\n}",
14217
14259
  frag: "#define SHADER_NAME FILL\nprecision mediump float;\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_frag>\n#endif\n#ifdef HAS_PATTERN\n#ifdef HAS_UV_SCALE\nvarying vec2 vUVScale;\n#else\nuniform highp vec2 uvScale;\n#endif\n#ifdef HAS_UV_OFFSET\nvarying vec2 vUVOffset;\n#else\nuniform vec2 uvOffset;\n#endif\n#endif\n#ifdef HAS_PATTERN\nuniform sampler2D polygonPatternFile;\nuniform vec2 atlasSize;\nvarying vec2 vTexCoord;\nvarying vec4 vTexInfo;\nvec2 c() {\n \n#ifdef HAS_UV_SCALE\nvec2 d = vUVScale;\n#else\nvec2 d = uvScale;\n#endif\n#ifdef HAS_UV_OFFSET\nvec2 e = vUVOffset;\n#else\nvec2 e = uvOffset;\n#endif\nvec2 f = mod(vTexCoord * d + e, 1.);\n vec2 h = vTexInfo.xy;\n vec2 i = vTexInfo.zw;\n return (h + f * i) / atlasSize;\n}\n#endif\n#ifdef HAS_COLOR\nvarying vec4 vColor;\n#else\nuniform vec4 polygonFill;\n#endif\n#include <highlight_frag>\n#ifdef HAS_OPACITY\nvarying float vOpacity;\n#else\nuniform lowp float polygonOpacity;\n#endif\nuniform float layerOpacity;\nuniform float tileExtent;\nvoid main() {\n \n#ifdef HAS_COLOR\nvec4 j = vColor;\n#else\nvec4 j = polygonFill;\n#endif\n#ifdef HAS_PATTERN\nif(vTexInfo.z * vTexInfo.w > 1.) {\n vec2 f = c();\n j = texture2D(polygonPatternFile, f);\n }\n#endif\n#ifdef HAS_OPACITY\ngl_FragColor = j * vOpacity;\n#else\ngl_FragColor = j * polygonOpacity;\n#endif\ngl_FragColor *= layerOpacity;\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nfloat k = shadow_computeShadow();\n gl_FragColor.rgb = shadow_blend(gl_FragColor.rgb, k);\n#endif\ngl_FragColor = highlight_blendColor(gl_FragColor);\n}",
14218
14260
  uniforms: r,
14219
14261
  defines: s,
@@ -14637,8 +14679,9 @@
14637
14679
  const e = super.createGeometry(...t);
14638
14680
  if (!e || !e.geometry) return e;
14639
14681
  const {geometry: n} = e, i = t[0];
14640
- return n.properties.collideIds = i.featureIds && i.featureIds.length && i.isIdUnique ? i.featureIds : i.data.aPickingId,
14641
- n.properties.uniqueCollideIds = Ql(n.properties.collideIds), e;
14682
+ n.properties.collideIds = i.featureIds && i.featureIds.length && i.isIdUnique ? i.featureIds : i.data.aPickingId;
14683
+ const s = this.layer instanceof r.TileLayer;
14684
+ return n.properties.uniqueCollideIds = Ql(n.properties.collideIds, !s), e;
14642
14685
  }
14643
14686
  supportRenderMode(t) {
14644
14687
  const e = this.sceneConfig.renderToPointRenderTarget;
@@ -14669,17 +14712,18 @@
14669
14712
  const t = this.getMap();
14670
14713
  this.ho || (this.ho = new r.Coordinate(0, 0), this.uo = new r.Coordinate(0, 0)),
14671
14714
  e.anchor0 = t.containerPointToCoord(this.co, this.ho), e.anchor1 = t.containerPointToCoord(this.fo, this.uo),
14672
- e.anchor0.z = t.getZoom(), e.anchor0.width = t.width, e.anchor0.height = t.height;
14715
+ e.anchor0.z = t.getZoom(), e.anchor0.width = t.width, e.anchor0.height = t.height,
14716
+ e.anchor0.pitch = t.getPitch();
14673
14717
  }
14674
14718
  this.getMap().collisionFrameTime += performance.now() - this.io;
14675
14719
  }
14676
14720
  ao(t) {
14677
- const e = this.getMap(), n = e.getZoom(), [i, r] = this.do(t);
14678
- return !i || !r || i.z !== n || i.width !== e.width || i.height !== e.height || i.distanceTo(this.co) > 3 || r.distanceTo(this.fo) > 3;
14721
+ const e = this.getMap(), n = e.getZoom(), i = e.getPitch(), [r, s] = this.do(t);
14722
+ return !r || !s || r.z !== n || r.width !== e.width || r.height !== e.height || r.pitch !== i || r.distanceTo(this.co) > 3 || s.distanceTo(this.fo) > 3;
14679
14723
  }
14680
14724
  po() {
14681
14725
  const t = this.getMap();
14682
- this.yo = {}, this.co = new r.Point(t.width / 2, t.height / 3), this.fo = new r.Point(t.width / 2, 2 * t.height / 3),
14726
+ this.yo = {}, this.co = new r.Point(t.width / 3, t.height / 2), this.fo = new r.Point(2 * t.width / 3, t.height / 2),
14683
14727
  delete this.ro, this.lo || (this.lo = {
14684
14728
  tags: {}
14685
14729
  }), this.no = {
@@ -15620,7 +15664,7 @@
15620
15664
  n.vec4.set(sp, s[0], s[1], s[2], 1);
15621
15665
  const o = n.vec4.transformMat4(sp, sp, r);
15622
15666
  let a = 0;
15623
- for (let t = 0; t < i.length; t++) a += i.charCodeAt(t);
15667
+ for (const t of i) a += t.codePointAt(0);
15624
15668
  return [ Math.floor(o[0]), Math.floor(o[1]), Math.floor(o[2]), a ];
15625
15669
  }(t, e, i) : null;
15626
15670
  }
@@ -16083,34 +16127,34 @@
16083
16127
  this.prepareCollideIndex(a), f;
16084
16128
  }
16085
16129
  ya(t, e) {
16086
- const {collideIds: n} = t.properties, i = new Uint16Array(n.length);
16130
+ const n = this.layer instanceof r.TileLayer, {collideIds: i} = t.properties, s = new Uint16Array(i.length);
16087
16131
  if (this.da(t)) {
16088
16132
  let r = 0;
16089
- for (let t = 0; t < n.length; t += 4) i.fill(r++, t, t + 4);
16090
- t.properties.collideIds = i, t.properties.uniqueCollideIds = Ql(i), e.markerCollideMap = {
16091
- old: n,
16092
- new: i
16133
+ for (let t = 0; t < i.length; t += 4) s.fill(r++, t, t + 4);
16134
+ t.properties.collideIds = s, t.properties.uniqueCollideIds = Ql(s, !n), e.markerCollideMap = {
16135
+ old: i,
16136
+ new: s
16093
16137
  };
16094
16138
  } else if (this.pa(t)) {
16095
- const {collideIds: n, aCount: i} = t.properties;
16096
- if (!i) return;
16139
+ const {collideIds: i, aCount: r} = t.properties;
16140
+ if (!r) return;
16097
16141
  if (e.markerCollideMap) {
16098
- const {markerCollideMap: r} = e;
16099
- let s = r.new[r.new.length - 1], o = 0, a = n[0], l = e.markerCollideMap.old.indexOf(a), h = i[0];
16100
- for (let t = 0; t < n.length; ) {
16101
- const r = n[t];
16102
- a !== r && (a = r, l = e.markerCollideMap.old.indexOf(a), o = 0);
16103
- const u = -1 === l ? ++s : e.markerCollideMap.new[l + 4 * o], c = t + 4 * h;
16104
- n.fill(u, t, c), t += 4 * h, o++, c < n.length && (h = i[c]);
16142
+ const {markerCollideMap: s} = e;
16143
+ let o = s.new[s.new.length - 1], a = 0, l = i[0], h = e.markerCollideMap.old.indexOf(l), u = r[0];
16144
+ for (let t = 0; t < i.length; ) {
16145
+ const n = i[t];
16146
+ l !== n && (l = n, h = e.markerCollideMap.old.indexOf(l), a = 0);
16147
+ const s = -1 === h ? ++o : e.markerCollideMap.new[h + 4 * a], c = t + 4 * u;
16148
+ i.fill(s, t, c), t += 4 * u, a++, c < i.length && (u = r[c]);
16105
16149
  }
16106
- t.properties.uniqueCollideIds = Ql(n);
16150
+ t.properties.uniqueCollideIds = Ql(i, !n);
16107
16151
  } else {
16108
- let e = 0, r = i[0];
16109
- for (let t = 0; t < n.length; ) {
16110
- const s = t + 4 * r;
16111
- n.fill(e++, t, s), t += 4 * r, s < n.length && (r = i[s]);
16152
+ let e = 0, s = r[0];
16153
+ for (let t = 0; t < i.length; ) {
16154
+ const n = t + 4 * s;
16155
+ i.fill(e++, t, n), t += 4 * s, n < i.length && (s = r[n]);
16112
16156
  }
16113
- t.properties.uniqueCollideIds = Ql(n);
16157
+ t.properties.uniqueCollideIds = Ql(i, !n);
16114
16158
  }
16115
16159
  }
16116
16160
  }
@@ -16630,8 +16674,8 @@
16630
16674
  }
16631
16675
  const d = this.isEnableCollision(), p = r.properties.visElemts = r.properties.visElemts || new f.constructor(f.length), y = r.properties.visCache = r.properties.visCache || [];
16632
16676
  d && (p.count = 0);
16633
- const m = void 0 === h || Math.abs(a - h) > 2 || Math.abs(l - u) > 2;
16634
- this.forEachBox(t, (t, n, i, r) => {
16677
+ const m = void 0 === h || !i.isInteracting() || Math.abs(a - h) > 2 || Math.abs(l - u) > 2;
16678
+ m && (this.oo = !0), this.forEachBox(t, (t, n, i, r) => {
16635
16679
  const {start: s, end: a} = n[0];
16636
16680
  let l = y[r];
16637
16681
  if ((void 0 === l || m) && (l = this.Ua(t, f, s, a, o, i, c ? e : null, r)), y[r] = l,
@@ -17030,8 +17074,8 @@
17030
17074
  return "lines";
17031
17075
  }
17032
17076
  }
17033
- const xy = [ 0, 0 ], by = [ 1, 1, 1 ], wy = [ 1, 1, 1, 1 ], Ay = [ 0, 0 ], My = [ 1, 1 ], _y = [], Sy = new r.Coordinate(0, 0), ky = new r.Coordinate(0, 0), Py = [], Ty = [];
17034
- class Fy extends Cf {
17077
+ const xy = [ 1, 1, 1 ], by = [ 1, 1, 1, 1 ], wy = [ 0, 0 ], Ay = [ 1, 1 ], My = [], _y = new r.Coordinate(0, 0), Sy = new r.Coordinate(0, 0), ky = [], Py = [];
17078
+ class Ty extends Cf {
17035
17079
  supportRenderMode(t) {
17036
17080
  return this.isAnimating() ? "fxaa" === t || "fxaaAfterTaa" === t : "taa" === t || "fxaa" === t;
17037
17081
  }
@@ -17048,9 +17092,9 @@
17048
17092
  if (!this.material) return this.setToRedraw(), null;
17049
17093
  const {geometry: s, symbolIndex: o} = t, a = this.layer instanceof r.TileLayer, l = new n.reshader.Mesh(s, this.material);
17050
17094
  if (this.sceneConfig.animation) {
17051
- by[2] = .01;
17095
+ xy[2] = .01;
17052
17096
  const t = [];
17053
- n.mat4.fromScaling(t, by), n.mat4.multiply(t, e, t), e = t;
17097
+ n.mat4.fromScaling(t, xy), n.mat4.multiply(t, e, t), e = t;
17054
17098
  }
17055
17099
  const h = this.getSymbolDef(o), u = this.getFnTypeConfig(o);
17056
17100
  Kc(s, h, u);
@@ -17072,12 +17116,12 @@
17072
17116
  }
17073
17117
  });
17074
17118
  } else {
17075
- Gl(l.uniforms, "polygonFill", d, "polygonFill", wy, p), Gl(l.uniforms, "polygonOpacity", d, "polygonOpacity", 1);
17119
+ Gl(l.uniforms, "polygonFill", d, "polygonFill", by, p), Gl(l.uniforms, "polygonOpacity", d, "polygonOpacity", 1);
17076
17120
  const t = [];
17077
17121
  Object.defineProperty(l.uniforms, "vertexColorsOfType", {
17078
17122
  enumerable: !0,
17079
17123
  get: () => {
17080
- const e = p(d.bottomPolygonFill || wy), n = p(d.topPolygonFill || wy);
17124
+ const e = p(d.bottomPolygonFill || by), n = p(d.topPolygonFill || by);
17081
17125
  t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = n[0], t[5] = n[1], t[6] = n[2],
17082
17126
  t[7] = n[3];
17083
17127
  const i = l.geometry.properties.vertexColors;
@@ -17116,42 +17160,31 @@
17116
17160
  }(m, 1, v, y), b = [];
17117
17161
  Object.defineProperty(l.uniforms, "uvOrigin", {
17118
17162
  enumerable: !0,
17119
- get: () => {
17120
- const t = this.Ba(w, o, i, y, x, a);
17121
- return n.vec2.set(b, t[0] - t[0] % 1, t[1] - t[1] % 1);
17122
- }
17123
- });
17124
- const w = [];
17125
- Object.defineProperty(l.uniforms, "uvOffset", {
17126
- enumerable: !0,
17127
- get: () => {
17128
- const t = this.Ba(w, o, i, y, x, a);
17129
- return n.vec2.set(b, t[0] % 1, t[1] % 1);
17130
- }
17131
- }), Object.defineProperty(l.uniforms, "hasAlpha", {
17163
+ get: () => this.Ba(b, o, i, y, x, a)
17164
+ }), l.setUniform("uvOffset", [ 0, 0 ]), Object.defineProperty(l.uniforms, "hasAlpha", {
17132
17165
  enumerable: !0,
17133
17166
  get: () => {
17134
17167
  const t = this.getSymbol(o);
17135
17168
  return s.properties.hasAlpha || t.polygonOpacity < 1 || t.lineOpacity < 1 || l.material && (l.material.uniforms.baseColorTexture || l.material.uniforms.emissiveTexture);
17136
17169
  }
17137
17170
  });
17138
- const A = this.layer.getMap().getMaxNativeZoom();
17171
+ const w = this.layer.getMap().getMaxNativeZoom();
17139
17172
  return Object.defineProperty(l.uniforms, "stencilRef", {
17140
17173
  enumerable: !0,
17141
- get: () => g.isForeground(l) ? 0 : A - l.properties.tile.z
17174
+ get: () => g.isForeground(l) ? 0 : w - l.properties.tile.z
17142
17175
  }), l.properties.symbolIndex = o, l;
17143
17176
  }
17144
17177
  Ba(t, e, i, r, s, o) {
17145
- if (1 === this.dataConfig.topUVMode) return xy;
17178
+ if (1 === this.dataConfig.topUVMode) return t[0] = 0, t[1] = 0, t;
17146
17179
  const a = this.getMap(), l = this.getSymbol(e).material;
17147
17180
  let h = i;
17148
- !this.dataConfig.side && l && l.textureOrigin && (Sy.set(l.textureOrigin[0], l.textureOrigin[1]),
17149
- a.coordToPointAtRes(Sy, r, ky), h = n.vec2.set(Py, i[0] - ky.x, i[1] - ky.y));
17181
+ !this.dataConfig.side && l && l.textureOrigin && (_y.set(l.textureOrigin[0], l.textureOrigin[1]),
17182
+ a.coordToPointAtRes(_y, r, Sy), h = n.vec2.set(ky, i[0] - Sy.x, i[1] - Sy.y));
17150
17183
  const u = !!l && l.uvOffsetInMeter;
17151
- let c = l && l.uvOffset || Ay;
17184
+ let c = l && l.uvOffset || wy;
17152
17185
  const f = this.getUVOffsetAnim();
17153
17186
  f && (c = this.getUVOffset(f));
17154
- const d = l && l.uvScale || My;
17187
+ const d = l && l.uvScale || Ay;
17155
17188
  let p = this.dataConfig.side ? 0 : h[0], y = this.dataConfig.side ? 0 : h[1];
17156
17189
  const m = l && l.textureWidth || 23.25, g = m * d[1] / d[0];
17157
17190
  u && (p += c[0] / s, y += c[1] / s);
@@ -17164,7 +17197,7 @@
17164
17197
  super.callShader(t, e);
17165
17198
  }
17166
17199
  getShadowMeshes() {
17167
- if (!this.isVisible()) return _y;
17200
+ if (!this.isVisible()) return My;
17168
17201
  this.shadowCount = this.scene.getMeshes().length;
17169
17202
  const t = this.scene.getMeshes().filter(t => 0 === t.properties.level);
17170
17203
  for (let e = 0; e < t.length; e++) {
@@ -17178,7 +17211,7 @@
17178
17211
  return t.material && t.material.uvOffsetAnim;
17179
17212
  }
17180
17213
  getUVOffset(t) {
17181
- const e = this.getSymbols()[0], i = e.material && e.material.uvOffset || Ay, r = !!e.material && e.material.uvOffsetInMeter, s = performance.now() / 1e3, o = n.vec2.set(Ty, i[0], i[1]);
17214
+ const e = this.getSymbols()[0], i = e.material && e.material.uvOffset || wy, r = !!e.material && e.material.uvOffsetInMeter, s = performance.now() / 1e3, o = n.vec2.set(Py, i[0], i[1]);
17182
17215
  return o[0] = s * t[0], o[1] = s * t[0], r || (o[0] %= 1, o[1] %= 1), o;
17183
17216
  }
17184
17217
  needPolygonOffset() {
@@ -17195,7 +17228,7 @@
17195
17228
  Qs(t, e) {
17196
17229
  if (null !== e) {
17197
17230
  const i = t.localTransform;
17198
- 0 === e && (e = .01), by[2] = e, n.mat4.fromScaling(i, by), n.mat4.multiply(i, t.properties.tileTransform, i),
17231
+ 0 === e && (e = .01), xy[2] = e, n.mat4.fromScaling(i, xy), n.mat4.multiply(i, t.properties.tileTransform, i),
17199
17232
  t.setLocalTransform(i);
17200
17233
  } else t.setLocalTransform(t.properties.tileTransform);
17201
17234
  t.material !== this.material && t.setMaterial(this.material), t.geometry.properties.maxAltitude <= 0 && (this.Ga = !0),
@@ -17250,26 +17283,26 @@
17250
17283
  updateSymbol(t, e) {
17251
17284
  let n = !1;
17252
17285
  t && t.material && (n = function(t, e) {
17253
- for (const n in e) if (Iy[n] && e[n] !== t[n] && (!t[n] || !e[n])) return !0;
17286
+ for (const n in e) if (Oy[n] && e[n] !== t[n] && (!t[n] || !e[n])) return !0;
17254
17287
  return !1;
17255
17288
  }(this.symbolDef[0].material || {}, t.material));
17256
17289
  const i = super.updateSymbol(t, e);
17257
17290
  return t && t.material && this.Xr(t.material), n || i;
17258
17291
  }
17259
17292
  Os(t, e) {
17260
- return Oy(t) !== Oy(e);
17293
+ return Fy(t) !== Fy(e);
17261
17294
  }
17262
17295
  }
17263
- function Oy(t) {
17296
+ function Fy(t) {
17264
17297
  if (!t || !t.material) return !1;
17265
17298
  for (const e in t.material) if (e.indexOf("Texture") > 0 && t.material[e]) return !0;
17266
17299
  return !1;
17267
17300
  }
17268
- const Iy = {
17301
+ const Oy = {
17269
17302
  normalTexture: 1,
17270
17303
  bumpTexture: 1
17271
17304
  };
17272
- class Cy extends Fy {
17305
+ class Iy extends Ty {
17273
17306
  createGeometry(t) {
17274
17307
  const e = t.data, i = this.getSymbols()[0];
17275
17308
  if (i.material && i.material.extrusionOpacity) {
@@ -17372,9 +17405,10 @@
17372
17405
  }
17373
17406
  Xr() {
17374
17407
  this.material && this.material.dispose();
17375
- const t = this.getSymbols()[0].material, e = {};
17376
- for (const n in t) Kl(t, n) && (e[n] = t[n]);
17377
- this.material = new n.reshader.PhongMaterial(e);
17408
+ const t = this.layer instanceof r.TileLayer, e = this.getSymbols()[0].material, i = {};
17409
+ for (const n in e) Kl(e, n) && (i[n] = e[n], "uvRotation" === n && (i[n] = i[n] * Math.PI / 180,
17410
+ t || (i[n] *= -1)));
17411
+ this.material = new n.reshader.PhongMaterial(i);
17378
17412
  }
17379
17413
  getUniformValues(t, e) {
17380
17414
  const n = t.viewMatrix, i = t.projMatrix, r = t.cameraPosition, s = this.$a(), o = Hl({
@@ -17400,8 +17434,8 @@
17400
17434
  };
17401
17435
  }
17402
17436
  }
17403
- const Ey = [ 1, 1, 1 ];
17404
- class Dy extends Cf {
17437
+ const Cy = [ 1, 1, 1 ];
17438
+ class Ey extends Cf {
17405
17439
  createGeometry(t) {
17406
17440
  const {data: e, indices: i} = t, r = new n.reshader.Geometry(e, i, 0, {
17407
17441
  primitive: "lines"
@@ -17416,9 +17450,9 @@
17416
17450
  createMesh(t, e) {
17417
17451
  const {geometry: i} = t, r = new n.reshader.Mesh(i);
17418
17452
  if (r.castShadow = !1, this.sceneConfig.animation) {
17419
- Ey[2] = .01;
17453
+ Cy[2] = .01;
17420
17454
  const t = [];
17421
- n.mat4.fromScaling(t, Ey), n.mat4.multiply(t, e, t), e = t;
17455
+ n.mat4.fromScaling(t, Cy), n.mat4.multiply(t, e, t), e = t;
17422
17456
  }
17423
17457
  return r.setLocalTransform(e), r.properties.symbolIndex = {
17424
17458
  index: 0
@@ -17427,7 +17461,7 @@
17427
17461
  addMesh(t, e) {
17428
17462
  if (!t.length) return this;
17429
17463
  let i;
17430
- null !== e ? (0 === e && (e = .01), i = t[0].localTransform, Ey[2] = e, n.mat4.fromScaling(i, Ey),
17464
+ null !== e ? (0 === e && (e = .01), i = t[0].localTransform, Cy[2] = e, n.mat4.fromScaling(i, Cy),
17431
17465
  n.mat4.multiply(i, t[0].properties.tileTransform, i)) : i = t[0].properties.tileTransform;
17432
17466
  for (let e = 0; e < t.length; e++) t[e].setLocalTransform(i);
17433
17467
  return this.scene.addMesh(t), this;
@@ -17483,8 +17517,8 @@
17483
17517
  };
17484
17518
  }
17485
17519
  }
17486
- const {getPBRUniforms: Ny} = n.reshader.pbr.PBRUtils;
17487
- class Ry extends Fy {
17520
+ const {getPBRUniforms: Dy} = n.reshader.pbr.PBRUtils;
17521
+ class Ny extends Ty {
17488
17522
  constructor(...t) {
17489
17523
  super(...t), this.Xa = new n.reshader.ResourceLoader(null, this.layer.getURLModifier()),
17490
17524
  this.scene.sortFunction = this.sortByCommandKey;
@@ -17628,39 +17662,39 @@
17628
17662
  const e = this.getSymbols()[0].material;
17629
17663
  e && Hl(e, t);
17630
17664
  }
17631
- const e = this.dataConfig, i = t || this.getSymbols()[0].material, r = {};
17632
- let s = !1;
17633
- for (const t in i) if (Kl(i, t)) if (t.indexOf("Texture") > 0) {
17634
- let o = i[t];
17635
- if (!o) {
17636
- r[t] = void 0;
17665
+ const e = this.layer instanceof r.TileLayer, i = this.dataConfig, s = t || this.getSymbols()[0].material, o = {};
17666
+ let a = !1;
17667
+ for (const t in s) if (Kl(s, t)) if (t.indexOf("Texture") > 0) {
17668
+ let e = s[t];
17669
+ if (!e) {
17670
+ o[t] = void 0;
17637
17671
  continue;
17638
17672
  }
17639
- const a = "string" == typeof o ? o : o.url, l = this.getCachedTexture(a);
17640
- l ? l.then ? a === o ? o = {
17673
+ const r = "string" == typeof e ? e : e.url, l = this.getCachedTexture(r);
17674
+ l ? l.then ? r === e ? e = {
17641
17675
  promise: l,
17642
17676
  wrap: "repeat"
17643
- } : o.promise = l : a === o ? o = {
17677
+ } : e.promise = l : r === e ? e = {
17644
17678
  data: l,
17645
17679
  wrap: "repeat"
17646
- } : o.data = l : a === o && (o = {
17647
- url: a,
17680
+ } : e.data = l : r === e && (e = {
17681
+ url: r,
17648
17682
  wrap: "repeat"
17649
- }), o.flipY = !e.upsideUpTexture, o.min = "linear mipmap linear", o.mag = "linear",
17650
- r[t] = new n.reshader.Texture2D(o, this.Xa), r[t].once("complete", this.Ka), r[t].once("disposed", this.el),
17651
- r[t].promise && this.addCachedTexture(a, r[t].promise), s = !0;
17652
- } else r[t] = i[t];
17653
- if (void 0 === r.alphaTest && this.getMaterialClazz && (r.alphaTest = .05), this.material) {
17654
- for (let t in r) this.material.set(t, r[t]);
17683
+ }), e.flipY = !i.upsideUpTexture, e.min = "linear mipmap linear", e.mag = "linear",
17684
+ o[t] = new n.reshader.Texture2D(e, this.Xa), o[t].once("complete", this.Ka), o[t].once("disposed", this.el),
17685
+ o[t].promise && this.addCachedTexture(r, o[t].promise), a = !0;
17686
+ } else o[t] = s[t], "uvRotation" === t && (o[t] = Math.PI * o[t] / 180, e || (o[t] *= -1));
17687
+ if (void 0 === o.alphaTest && this.getMaterialClazz && (o.alphaTest = .05), this.material) {
17688
+ for (let t in o) this.material.set(t, o[t]);
17655
17689
  this.setToRedraw(!0);
17656
- } else this.material = new n.reshader.pbr.StandardMaterial(r), this.material.once("complete", this.nl);
17657
- s || this.il();
17690
+ } else this.material = new n.reshader.pbr.StandardMaterial(o), this.material.once("complete", this.nl);
17691
+ a || this.il();
17658
17692
  }
17659
17693
  getShader() {
17660
17694
  return this.shader;
17661
17695
  }
17662
17696
  getUniformValues(t, e) {
17663
- const {iblTexes: n, dfgLUT: i} = this.getIBLRes(), r = Ny(t, n, i, e && e.ssr, e && e.jitter);
17697
+ const {iblTexes: n, dfgLUT: i} = this.getIBLRes(), r = Dy(t, n, i, e && e.ssr, e && e.jitter);
17664
17698
  return this.setIncludeUniformValues(r, e), r;
17665
17699
  }
17666
17700
  rl(t) {
@@ -17672,9 +17706,9 @@
17672
17706
  this.rl(t), this.shader.shaderDefines = t;
17673
17707
  }
17674
17708
  }
17675
- var Ly = "#include <gl2_vert>\n#define EXTRUDE_SCALE 63.0\n#define EXTRUDE_MOD 64.0\n#define MAX_LINE_DISTANCE 65535.0\nuniform mat4 projViewModelMatrix;\nuniform vec2 centiMeterToLocal;\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\nattribute vec4 aTubeNormal;\n#ifdef HAS_LINE_WIDTH\nattribute float aLineWidth;\n#else\nuniform float lineWidth;\n#endif\n#include <vt_position_vert>\n#ifdef PICKING_MODE\n#include <fbo_picking_vert>\n#else\nuniform mat4 modelViewMatrix;\nuniform mat3 modelNormalMatrix;\nuniform mat4 modelMatrix;\n#if defined(HAS_PATTERN)\nuniform float resolution;\nuniform float tileResolution;\nuniform float tileRatio;\nattribute float aLinesofar;\nvarying highp float vLinesofar;\nattribute vec4 aTexInfo;\nvarying vec4 vTexInfo;\nvarying float vNormalY;\nvarying float vPatternHeight;\nattribute float aNormalDistance;\n#if defined(HAS_PATTERN_ANIM)\nattribute float aLinePatternAnimSpeed;\nvarying float vLinePatternAnimSpeed;\n#endif\n#if defined(HAS_PATTERN_GAP)\nattribute float aLinePatternGap;\nvarying float vLinePatternGap;\n#endif\n#endif\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\n#ifdef HAS_OPACITY\nattribute float aOpacity;\n#endif\nvarying float vOpacity;\nvarying vec3 vModelNormal;\nvarying vec4 vViewVertex;\nvarying vec3 vModelVertex;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_vert>\n#endif\n#include <highlight_vert>\nvoid main() {\n \n#ifdef HAS_LINE_WIDTH\nfloat c = aLineWidth;\n#else\nfloat c = lineWidth;\n#endif\nfloat d = c / 2.;\n vec3 e = aTubeNormal.xyz / EXTRUDE_SCALE;\n vec3 f = unpackVTPosition();\n vec4 h = vec4(f, 1.);\n h.xy += e.xy * d * centiMeterToLocal;\n h.z += e.z * d;\n gl_Position = projViewModelMatrix * h;\n#ifdef PICKING_MODE\nfbo_picking_setData(gl_Position.w, true);\n#else\nvViewVertex = modelViewMatrix * h;\n vec3 i = normalize(e);\n vModelNormal = modelNormalMatrix * i;\n vModelVertex = (modelMatrix * h).xyz;\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nshadow_computeShadowPars(h);\n#endif\n#ifdef HAS_COLOR\nvColor = aColor / 255.;\n#endif\n#ifdef HAS_OPACITY\nvOpacity = aOpacity / 255.;\n#else\nvOpacity = 1.;\n#endif\n#ifdef HAS_PATTERN\nfloat j = tileResolution / resolution;\n float k = aLinesofar - d * centiMeterToLocal.y * aNormalDistance / EXTRUDE_SCALE;\n vLinesofar = k / tileRatio * j;\n vTexInfo = vec4(aTexInfo.xy, aTexInfo.zw + 1.);\n vPatternHeight = c * centiMeterToLocal.x / tileRatio * j;\n vNormalY = aTubeNormal.w / EXTRUDE_SCALE;\n#if defined(HAS_PATTERN_ANIM)\nvLinePatternAnimSpeed = aLinePatternAnimSpeed / 127.;\n#endif\n#if defined(HAS_PATTERN_GAP)\nvLinePatternGap = aLinePatternGap / 10.0;\n#endif\n#endif\nhighlight_setVarying();\n#endif\n}";
17676
- const {getPBRUniforms: zy} = n.reshader.pbr.PBRUtils;
17677
- class Hy extends Nf {
17709
+ var Ry = "#include <gl2_vert>\n#define EXTRUDE_SCALE 63.0\n#define EXTRUDE_MOD 64.0\n#define MAX_LINE_DISTANCE 65535.0\nuniform mat4 projViewModelMatrix;\nuniform vec2 centiMeterToLocal;\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\nattribute vec4 aTubeNormal;\n#ifdef HAS_LINE_WIDTH\nattribute float aLineWidth;\n#else\nuniform float lineWidth;\n#endif\n#include <vt_position_vert>\n#ifdef PICKING_MODE\n#include <fbo_picking_vert>\n#else\nuniform mat4 modelViewMatrix;\nuniform mat3 modelNormalMatrix;\nuniform mat4 modelMatrix;\n#if defined(HAS_PATTERN)\nuniform float resolution;\nuniform float tileResolution;\nuniform float tileRatio;\nattribute float aLinesofar;\nvarying highp float vLinesofar;\nattribute vec4 aTexInfo;\nvarying vec4 vTexInfo;\nvarying float vNormalY;\nvarying float vPatternHeight;\nattribute float aNormalDistance;\n#if defined(HAS_PATTERN_ANIM)\nattribute float aLinePatternAnimSpeed;\nvarying float vLinePatternAnimSpeed;\n#endif\n#if defined(HAS_PATTERN_GAP)\nattribute float aLinePatternGap;\nvarying float vLinePatternGap;\n#endif\n#endif\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\n#ifdef HAS_OPACITY\nattribute float aOpacity;\n#endif\nvarying float vOpacity;\nvarying vec3 vModelNormal;\nvarying vec4 vViewVertex;\nvarying vec3 vModelVertex;\n#endif\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\n#include <vsm_shadow_vert>\n#endif\n#include <highlight_vert>\nvoid main() {\n \n#ifdef HAS_LINE_WIDTH\nfloat c = aLineWidth;\n#else\nfloat c = lineWidth;\n#endif\nfloat d = c / 2.;\n vec3 e = aTubeNormal.xyz / EXTRUDE_SCALE;\n vec3 f = unpackVTPosition();\n vec4 h = vec4(f, 1.);\n h.xy += e.xy * d * centiMeterToLocal;\n h.z += e.z * d;\n gl_Position = projViewModelMatrix * h;\n#ifdef PICKING_MODE\nfbo_picking_setData(gl_Position.w, true);\n#else\nvViewVertex = modelViewMatrix * h;\n vec3 i = normalize(e);\n vModelNormal = modelNormalMatrix * i;\n vModelVertex = (modelMatrix * h).xyz;\n#if defined(HAS_SHADOWING) && !defined(HAS_BLOOM)\nshadow_computeShadowPars(h);\n#endif\n#ifdef HAS_COLOR\nvColor = aColor / 255.;\n#endif\n#ifdef HAS_OPACITY\nvOpacity = aOpacity / 255.;\n#else\nvOpacity = 1.;\n#endif\n#ifdef HAS_PATTERN\nfloat j = tileResolution / resolution;\n float k = aLinesofar - d * centiMeterToLocal.y * aNormalDistance / EXTRUDE_SCALE;\n vLinesofar = k / tileRatio * j;\n vTexInfo = vec4(aTexInfo.xy, aTexInfo.zw + 1.);\n vPatternHeight = c * centiMeterToLocal.x / tileRatio * j;\n vNormalY = aTubeNormal.w / EXTRUDE_SCALE;\n#if defined(HAS_PATTERN_ANIM)\nvLinePatternAnimSpeed = aLinePatternAnimSpeed / 127.;\n#endif\n#if defined(HAS_PATTERN_GAP)\nvLinePatternGap = aLinePatternGap / 10.0;\n#endif\n#endif\nhighlight_setVarying();\n#endif\n}";
17710
+ const {getPBRUniforms: Ly} = n.reshader.pbr.PBRUtils;
17711
+ class zy extends Nf {
17678
17712
  needToRedraw() {
17679
17713
  return super.needToRedraw() || this.isAnimating();
17680
17714
  }
@@ -17707,7 +17741,7 @@
17707
17741
  tileRatio: c
17708
17742
  };
17709
17743
  Gl(f, "lineColor", h, "lineColor", "#fff", Xl(this.colorCache)), Gl(f, "linePatternGapColor", h, "linePatternGapColor", [ 1, 1, 1, 1 ], Xl(this.colorCache)),
17710
- Gl(f, "lineWidth", h, "lineWidth", 2, t => jn.getTubeSizeScale(this.dataConfig.metric) * t),
17744
+ Gl(f, "lineWidth", h, "lineWidth", 2, t => Yn.getTubeSizeScale(this.dataConfig.metric) * t),
17711
17745
  Gl(f, "lineOpacity", h, "lineOpacity", 1), Gl(f, "linePatternAnimSpeed", h, "linePatternAnimSpeed", 0),
17712
17746
  Gl(f, "linePatternGap", h, "linePatternGap", 0), Gl(f, "metallicFactor", h, "metallicFactor", 0),
17713
17747
  Gl(f, "roughnessFactor", h, "roughnessFactor", .4), Gl(f, "emissiveFactor", h, "emissiveFactor", [ 0, 0, 0 ]),
@@ -17745,7 +17779,7 @@
17745
17779
  if (this.renderer = new n.reshader.Renderer(e), this.createShader(t), this.pickingFBO) {
17746
17780
  const t = [];
17747
17781
  this.picking = [ new n.reshader.FBORayPicking(this.renderer, {
17748
- vert: "#define PICKING_MODE 1\n" + Ly,
17782
+ vert: "#define PICKING_MODE 1\n" + Ry,
17749
17783
  uniforms: [ {
17750
17784
  name: "projViewModelMatrix",
17751
17785
  type: "function",
@@ -17773,7 +17807,7 @@
17773
17807
  return n.mat4.multiply(i, e.projViewMatrix, e.modelMatrix), i;
17774
17808
  }
17775
17809
  }), this.shader = new n.reshader.pbr.StandardShader({
17776
- vert: Ly,
17810
+ vert: Ry,
17777
17811
  uniforms: e,
17778
17812
  defines: this.rl(i),
17779
17813
  extraCommandProps: this.getExtraCommandProps()
@@ -17822,7 +17856,7 @@
17822
17856
  };
17823
17857
  }
17824
17858
  getUniformValues(t, e) {
17825
- const {iblTexes: n, dfgLUT: i} = this.getIBLRes(), r = zy(t, n, i, null, e && e.jitter), s = t.projViewMatrix, o = t.viewMatrix;
17859
+ const {iblTexes: n, dfgLUT: i} = this.getIBLRes(), r = Ly(t, n, i, null, e && e.jitter), s = t.projViewMatrix, o = t.viewMatrix;
17826
17860
  return r.projViewMatrix = s, r.viewMatrix = o, r.resolution = t.getResolution(),
17827
17861
  r.currentTime = this.layer.getRenderer().getFrameTimestamp() || 0, this.setIncludeUniformValues(r, e),
17828
17862
  r;
@@ -17903,7 +17937,7 @@
17903
17937
  delete this.shader);
17904
17938
  }
17905
17939
  }
17906
- const Uy = [], Vy = [], jy = [], By = [], Gy = [], Wy = [ 0, 0, 0 ], $y = [ 0, 0, 0 ], Xy = [ 1, 1, 1 ], qy = [], Yy = [ 1, 1, 1, 1 ], Jy = [], Zy = [ 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1 ], Ky = t => class extends t {
17940
+ const Hy = [], Uy = [], Vy = [], jy = [], By = [], Gy = [ 0, 0, 0 ], Wy = [ 0, 0, 0 ], $y = [ 1, 1, 1 ], Xy = [], qy = [ 1, 1, 1, 1 ], Yy = [], Jy = [ 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1 ], Zy = t => class extends t {
17907
17941
  constructor(t, e, i, r, s, o) {
17908
17942
  super(t, e, i, r, s, o), this.sl = !1, this.scene.sortFunction = this.sortByCommandKey;
17909
17943
  const a = r.fetchOptions || {};
@@ -17935,7 +17969,7 @@
17935
17969
  };
17936
17970
  }
17937
17971
  getFnTypeConfig() {
17938
- return qy;
17972
+ return Xy;
17939
17973
  }
17940
17974
  createMesh(t, e, {tileTranslationMatrix: i, tileExtent: r}, {timestamp: s}) {
17941
17975
  if (!this.sl) return null;
@@ -17968,8 +18002,8 @@
17968
18002
  let c = 0;
17969
18003
  r.forEach(t => {
17970
18004
  const {geometry: i, nodeMatrix: r} = t;
17971
- n.mat4.multiply(Jy, Zy, r), n.mat4.multiply(Jy, u, Jy);
17972
- const s = n.mat4.multiply(Jy, w, Jy), o = i.boundingBox.copy();
18005
+ n.mat4.multiply(Yy, Jy, r), n.mat4.multiply(Yy, u, Yy);
18006
+ const s = n.mat4.multiply(Yy, w, Yy), o = i.boundingBox.copy();
17973
18007
  o.transform(s);
17974
18008
  const a = this.ml(o, e);
17975
18009
  Math.abs(a) > Math.abs(c) && (c = a);
@@ -17988,15 +18022,15 @@
17988
18022
  k.properties.startTime = s, S.HAS_SKIN = 1;
17989
18023
  }
17990
18024
  b && (k.setUniform("morphWeights", b), S.HAS_MORPH = 1), k.setUniform("hasAlpha", A.alphaMode && "BLEND" === A.alphaMode.toUpperCase()),
17991
- Gl(k.uniforms, "polygonFill", e, "markerFill", Yy, Xl(this.colorCache)), Gl(k.uniforms, "polygonOpacity", e, "markerOpacity", 1);
18025
+ Gl(k.uniforms, "polygonFill", e, "markerFill", qy, Xl(this.colorCache)), Gl(k.uniforms, "polygonOpacity", e, "markerOpacity", 1);
17992
18026
  const P = [];
17993
18027
  k.setPositionMatrix(() => {
17994
18028
  const e = this.xl(t, d, M);
17995
- n.mat4.multiply(P, Zy, e), this.yl(u), n.mat4.multiply(P, u, P), n.mat4.multiply(P, w, P);
17996
- const i = n.mat4.identity(Jy);
18029
+ n.mat4.multiply(P, Jy, e), this.yl(u), n.mat4.multiply(P, u, P), n.mat4.multiply(P, w, P);
18030
+ const i = n.mat4.identity(Yy);
17997
18031
  if (0 !== c && (n.mat4.fromTranslation(i, f), n.mat4.multiply(P, i, P)), Jl(h)) {
17998
18032
  const t = o.getGLScale() / o.getGLScale(h);
17999
- return n.vec3.set(Uy, t, t, t), n.mat4.fromScaling(i, Uy), n.mat4.multiply(i, i, P);
18033
+ return n.vec3.set(Hy, t, t, t), n.mat4.fromScaling(i, Hy), n.mat4.multiply(i, i, P);
18000
18034
  }
18001
18035
  return P;
18002
18036
  });
@@ -18068,7 +18102,7 @@
18068
18102
  n && this.setToRedraw(!0), super.prepareRender(t);
18069
18103
  }
18070
18104
  getShadowMeshes() {
18071
- if (!this.isVisible()) return qy;
18105
+ if (!this.isVisible()) return Xy;
18072
18106
  this.shadowCount = this.scene.getMeshes().length;
18073
18107
  return this.scene.getMeshes().filter(t => 0 === t.properties.level);
18074
18108
  }
@@ -18095,13 +18129,13 @@
18095
18129
  const i = _[0], r = _[1], d = n.vec3.set(M, i * p - S, -r * p - k, (_[2] + m) * y - P), g = a && a[e] || 0, v = l && l[e] || 0;
18096
18130
  if (g || v) {
18097
18131
  n.mat4.fromRotation(T, v, O);
18098
- const t = n.vec3.set(Uy, i, r, 0), e = n.vec3.normalize(t, n.vec3.cross(t, t, O));
18132
+ const t = n.vec3.set(Hy, i, r, 0), e = n.vec3.normalize(t, n.vec3.cross(t, t, O));
18099
18133
  n.mat4.rotate(T, T, g, e);
18100
- const s = n.mat4.fromTranslation(Jy, d);
18134
+ const s = n.mat4.fromTranslation(Yy, d);
18101
18135
  n.mat4.multiply(T, s, T);
18102
18136
  } else n.mat4.fromTranslation(T, d);
18103
18137
  if (F) {
18104
- const t = this.yl(Jy, c, u, e);
18138
+ const t = this.yl(Yy, c, u, e);
18105
18139
  n.mat4.multiply(T, T, t);
18106
18140
  }
18107
18141
  f("instance_vectorA", e, T, 0), f("instance_vectorB", e, T, 1), f("instance_vectorC", e, T, 2),
@@ -18121,11 +18155,11 @@
18121
18155
  let l = o.translationX || 0, h = o.translationY || 0, u = o.translationZ || 0, c = o.rotationX || 0, f = o.rotationY || 0, d = o.rotationZ || 0, p = o.scaleX || 1, y = o.scaleY || 1, m = o.scaleZ || 1;
18122
18156
  const g = i && i[r], v = e && e[g], x = s.getZoom(), b = v && v.feature && v.feature.properties, w = this.Sl(x, b);
18123
18157
  this.kl && (l = this.kl(x, b)), this.Pl && (h = this.Pl(x, b)), this.Tl && (u = this.Tl(x, b));
18124
- const A = n.vec3.set(Vy, l * a, h * a, u * a);
18158
+ const A = n.vec3.set(Uy, l * a, h * a, u * a);
18125
18159
  this.Fl && (c = this.Fl(x, b)), this.Ol && (f = this.Ol(x, b)), this.Il && (d = this.Il(x, b));
18126
- const M = n.vec3.set(jy, c, f, d);
18160
+ const M = n.vec3.set(Vy, c, f, d);
18127
18161
  this.Cl && (p = this.Cl(x, b)), this.El && (y = this.El(x, b)), this.Dl && (m = this.Dl(x, b));
18128
- const _ = n.vec3.set(By, p * w, y * w, m * w);
18162
+ const _ = n.vec3.set(jy, p * w, y * w, m * w);
18129
18163
  return this.Nl(t, A, M, _);
18130
18164
  }
18131
18165
  Sl(t, e) {
@@ -18208,27 +18242,27 @@
18208
18242
  delete this.wl;
18209
18243
  }
18210
18244
  Nl(t, e, i, r) {
18211
- const s = n.vec3.set(Uy, ...e || Wy), o = i || $y, a = r || Xy, l = n.quat.fromEuler(Gy, o[0], o[1], o[2]);
18245
+ const s = n.vec3.set(Hy, ...e || Gy), o = i || Wy, a = r || $y, l = n.quat.fromEuler(By, o[0], o[1], o[2]);
18212
18246
  return n.mat4.fromRotationTranslationScale(t, l, s, a);
18213
18247
  }
18214
18248
  };
18215
- class Qy extends(Ky(Cy)){
18249
+ class Ky extends(Zy(Iy)){
18216
18250
  getMaterialClazz(t) {
18217
18251
  return t.diffuseFactor ? n.reshader.PhongSpecularGlossinessMaterial : n.reshader.PhongMaterial;
18218
18252
  }
18219
18253
  }
18220
- class tm extends(Ky(Ry)){
18254
+ class Qy extends(Zy(Ny)){
18221
18255
  getMaterialClazz(t) {
18222
18256
  return t.specularGlossinessTexture || t.diffuseTexture ? n.reshader.pbr.StandardSpecularGlossinessMaterial : n.reshader.pbr.StandardMaterial;
18223
18257
  }
18224
18258
  }
18225
- const {getPBRUniforms: em} = n.reshader.pbr.PBRUtils, nm = {
18259
+ const {getPBRUniforms: tm} = n.reshader.pbr.PBRUtils, em = {
18226
18260
  color: [ 2.0303, 2.028, 2.028 ],
18227
18261
  direction: [ 0, -.2717, -1 ]
18228
- }, im = {
18262
+ }, nm = {
18229
18263
  index: 0
18230
- }, rm = [ 0, 0, 0 ], sm = [ 2, 2 ];
18231
- class om extends Nf {
18264
+ }, im = [ 0, 0, 0 ], rm = [ 2, 2 ];
18265
+ class sm extends Nf {
18232
18266
  supportRenderMode(t) {
18233
18267
  return "fxaa" === t || "fxaaBeforeTaa" === t;
18234
18268
  }
@@ -18243,7 +18277,7 @@
18243
18277
  }
18244
18278
  needToRedraw() {
18245
18279
  if (super.needToRedraw()) return !0;
18246
- return this.getSymbol(im).animation;
18280
+ return this.getSymbol(nm).animation;
18247
18281
  }
18248
18282
  createMesh(t, e) {
18249
18283
  const {geometry: i} = t;
@@ -18252,7 +18286,7 @@
18252
18286
  castShadow: !1,
18253
18287
  picking: !0
18254
18288
  });
18255
- return r.properties.symbolIndex = im, r.setLocalTransform(e), r;
18289
+ return r.properties.symbolIndex = nm, r.setLocalTransform(e), r;
18256
18290
  }
18257
18291
  callShader(t, e) {
18258
18292
  super.callShader(t, e), this.transformWater();
@@ -18263,13 +18297,13 @@
18263
18297
  this.Qs(t, e), super.addMesh(...arguments);
18264
18298
  }
18265
18299
  Qs(t) {
18266
- const e = this.getSymbol(im).ssr;
18300
+ const e = this.getSymbol(nm).ssr;
18267
18301
  for (let n = 0; n < t.length; n++) t[n].ssr = e ? 1 : 0;
18268
18302
  }
18269
18303
  paint(t) {
18270
18304
  t.states && t.states.includesChanged && (this.shader.dispose(), this.Ul.dispose(),
18271
18305
  this.Js(t));
18272
- const e = !!t.ssr && this.getSymbol(im).ssr, n = this.Ul, i = n.shaderDefines;
18306
+ const e = !!t.ssr && this.getSymbol(nm).ssr, n = this.Ul, i = n.shaderDefines;
18273
18307
  if (e) {
18274
18308
  const e = Hl({}, i, t.ssr.defines);
18275
18309
  n.shaderDefines = e;
@@ -18446,24 +18480,24 @@
18446
18480
  };
18447
18481
  }
18448
18482
  Hl(t, e) {
18449
- const {iblTexes: i, dfgLUT: r} = this.getIBLRes(), s = em(t, i, r, e && e.ssr, e && e.jitter), o = t.getLightManager();
18483
+ const {iblTexes: i, dfgLUT: r} = this.getIBLRes(), s = tm(t, i, r, e && e.ssr, e && e.jitter), o = t.getLightManager();
18450
18484
  let a = o && o.getDirectionalLight() || {};
18451
- const l = o && o.getAmbientLight() || {}, h = this.getSymbol(im), u = this.ql = this.ql || [], c = this.Yl = this.Yl || [];
18485
+ const l = o && o.getAmbientLight() || {}, h = this.getSymbol(nm), u = this.ql = this.ql || [], c = this.Yl = this.Yl || [];
18452
18486
  n.vec4.set(c, .09, h.uvScale || 3, .03, -.5);
18453
18487
  Hl(s, {
18454
18488
  ambientColor: l.color || [ .2, .2, .2 ],
18455
18489
  viewMatrix: t.viewMatrix,
18456
- lightDirection: a.direction || nm.direction,
18457
- lightColor: a.color || nm.color,
18490
+ lightDirection: a.direction || em.direction,
18491
+ lightColor: a.color || em.color,
18458
18492
  camPos: t.cameraPosition,
18459
18493
  timeElapsed: h.animation ? (this.layer.getRenderer().getFrameTimestamp() || 0) / (1 / (h.waterSpeed || 1) * 1e4) : 0,
18460
18494
  normalTexture: this.Wl || this.Gl,
18461
18495
  heightTexture: this.Xl || this.Gl,
18462
18496
  waveParams: c,
18463
- waterDir: am(u, h.waterDirection || 0),
18497
+ waterDir: om(u, h.waterDirection || 0),
18464
18498
  waterBaseColor: h.waterBaseColor || [ .1451, .2588, .4863, 1 ],
18465
18499
  contrast: h.contrast || 1,
18466
- hsv: h.hsv || rm
18500
+ hsv: h.hsv || im
18467
18501
  });
18468
18502
  const f = this.layer.getRenderer();
18469
18503
  return s.layerOpacity = f.Cn(), this.setIncludeUniformValues(s, e), e && e.ssr && e.ssr.renderUniforms && Hl(s, e.ssr.renderUniforms),
@@ -18485,42 +18519,42 @@
18485
18519
  transformWater() {
18486
18520
  const t = this.getMap(), e = n.GroundPainter.getGroundTransform(this.jl.localTransform, t);
18487
18521
  this.jl.setLocalTransform(e);
18488
- const i = t._get2DExtentAtRes(t.getGLRes()), r = i.getWidth(), s = i.getHeight(), o = t.cameraLookAt, a = o[0] - r, l = o[1] + s, h = a / sm[0], u = l / sm[1], c = h % 1, f = u % 1, d = .3737 * h % 1, p = .3737 * u % 1, y = r / sm[0] * 2, m = s / sm[1] * 2;
18522
+ const i = t._get2DExtentAtRes(t.getGLRes()), r = i.getWidth(), s = i.getHeight(), o = t.cameraLookAt, a = o[0] - r, l = o[1] + s, h = a / rm[0], u = l / rm[1], c = h % 1, f = u % 1, d = .3737 * h % 1, p = .3737 * u % 1, y = r / rm[0] * 2, m = s / rm[1] * 2;
18489
18523
  this.jl.setUniform("uvOffset", [ c, f ]), this.jl.setUniform("noiseUvOffset", [ d, p ]),
18490
18524
  this.jl.setUniform("uvScale", [ y, -m ]);
18491
18525
  }
18492
18526
  }
18493
- function am(t, e) {
18527
+ function om(t, e) {
18494
18528
  return e = function(t) {
18495
18529
  return Math.PI * t / 180;
18496
18530
  }(e), t[0] = Math.sin(e), t[1] = Math.cos(e), t;
18497
18531
  }
18498
- const lm = qc("fill", qf);
18532
+ const am = qc("fill", qf);
18533
+ am.registerAt(Sh);
18534
+ const lm = qc("line", Kf);
18499
18535
  lm.registerAt(Sh);
18500
- const hm = qc("line", Kf);
18536
+ const hm = qc("line-gradient", Qf);
18501
18537
  hm.registerAt(Sh);
18502
- const um = qc("line-gradient", Qf);
18538
+ const um = qc("icon", Sp);
18503
18539
  um.registerAt(Sh);
18504
- const cm = qc("icon", Sp);
18540
+ const cm = qc("text", uy);
18505
18541
  cm.registerAt(Sh);
18506
- const fm = qc("text", uy);
18542
+ const fm = qc("native-line", vy);
18507
18543
  fm.registerAt(Sh);
18508
- const dm = qc("native-line", vy);
18509
- dm.registerAt(Sh);
18510
18544
  qc("native-point", yy).registerAt(Sh);
18511
- const pm = qc("phong", Cy);
18545
+ const dm = qc("phong", Iy);
18546
+ dm.registerAt(Sh);
18547
+ const pm = qc("wireframe", Ey);
18512
18548
  pm.registerAt(Sh);
18513
- const ym = qc("wireframe", Dy);
18549
+ const ym = qc("lit", Ny);
18514
18550
  ym.registerAt(Sh);
18515
- const mm = qc("lit", Ry);
18551
+ const mm = qc("tube", zy);
18516
18552
  mm.registerAt(Sh);
18517
- const gm = qc("tube", Hy);
18553
+ const gm = qc("gltf-phong", Ky);
18518
18554
  gm.registerAt(Sh);
18519
- const vm = qc("gltf-phong", Qy);
18555
+ const vm = qc("gltf-lit", Qy);
18520
18556
  vm.registerAt(Sh);
18521
- const xm = qc("gltf-lit", tm);
18522
- xm.registerAt(Sh);
18523
- const bm = qc("heatmap", class extends Nf {
18557
+ const xm = qc("heatmap", class extends Nf {
18524
18558
  createFnTypeConfig(t, e) {
18525
18559
  const n = b(e.heatmapWeight), i = new Int16Array(1);
18526
18560
  return [ {
@@ -18583,12 +18617,12 @@
18583
18617
  this.Jl = new n.HeatmapProcess(this.regl, this.sceneConfig, this.layer, i.heatmapColor, null, e);
18584
18618
  }
18585
18619
  });
18586
- bm.registerAt(Sh);
18587
- const wm = qc("water", om);
18588
- wm.registerAt(Sh), zh.registerPainter("lit", Ry), zh.registerPainter("icon", Sp),
18620
+ xm.registerAt(Sh);
18621
+ const bm = qc("water", sm);
18622
+ bm.registerAt(Sh), zh.registerPainter("lit", Ny), zh.registerPainter("icon", Sp),
18589
18623
  zh.registerPainter("fill", qf), zh.registerPainter("line", Kf), zh.registerPainter("line-gradient", Qf),
18590
- zh.registerPainter("water", om), zh.registerPainter("tube", Hy), 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"),
18591
- Sh.VERSION = "0.94.0", zh.VERSION = "0.94.0";
18624
+ zh.registerPainter("water", sm), zh.registerPainter("tube", zy), 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"),
18625
+ Sh.VERSION = "0.95.0", zh.VERSION = "0.95.0";
18592
18626
  if (s.mat4.create(), s.transcoders) {
18593
18627
  const t = r.Map.VERSION;
18594
18628
  if (t.indexOf("1.0.0-beta") >= 0 || t.indexOf("1.0.0-alpha") >= 0) {
@@ -18598,16 +18632,16 @@
18598
18632
  return s.transcoders.inject(o);
18599
18633
  }));
18600
18634
  } else r.registerWorkerAdapter("@maptalks/vt", o);
18601
- t.ExtrudePolygonLayer = Sc, t.FillPainter = qf, t.FillPlugin = lm, t.FilterUtil = ho,
18602
- t.GLTFPhongPlugin = vm, t.GLTFStandardPlugin = xm, t.GeoJSONVectorTileLayer = Dh,
18603
- t.HeatmapPlugin = bm, t.IconPainter = Sp, t.IconPlugin = cm, t.LineGradientPlugin = um,
18604
- t.LinePainter = Kf, t.LinePlugin = hm, t.LineStringLayer = uu, t.LitPlugin = mm,
18605
- t.MapboxVectorTileLayer = Ch, t.NativeLinePainter = vy, t.NativeLinePlugin = dm,
18606
- t.NativePointPainter = yy, t.PackUtil = dl, t.PhongPainter = Cy, t.PhongPlugin = pm,
18635
+ t.ExtrudePolygonLayer = Sc, t.FillPainter = qf, t.FillPlugin = am, t.FilterUtil = ho,
18636
+ t.GLTFPhongPlugin = gm, t.GLTFStandardPlugin = vm, t.GeoJSONVectorTileLayer = Dh,
18637
+ t.HeatmapPlugin = xm, t.IconPainter = Sp, t.IconPlugin = um, t.LineGradientPlugin = hm,
18638
+ t.LinePainter = Kf, t.LinePlugin = lm, t.LineStringLayer = uu, t.LitPlugin = ym,
18639
+ t.MapboxVectorTileLayer = Ch, t.NativeLinePainter = vy, t.NativeLinePlugin = fm,
18640
+ t.NativePointPainter = yy, t.PackUtil = dl, t.PhongPainter = Iy, t.PhongPlugin = dm,
18607
18641
  t.PointLayer = hu, t.PolygonLayer = fu, t.SYMBOLS_NEED_REBUILD_IN_VECTOR = bl, t.SYMBOLS_NEED_REBUILD_IN_VT = xl,
18608
- t.TextPainter = uy, t.TextPlugin = fm, t.TubePlugin = gm, t.Vector3DLayer = zh,
18609
- t.VectorTileLayer = Sh, t.VectorTileLayerRenderer = lh, t.WaterPlugin = wm, t.WireframePainter = Dy,
18610
- t.WireframePlugin = ym, Object.defineProperty(t, "t", {
18642
+ t.TextPainter = uy, t.TextPlugin = cm, t.TubePlugin = mm, t.Vector3DLayer = zh,
18643
+ t.VectorTileLayer = Sh, t.VectorTileLayerRenderer = lh, t.WaterPlugin = bm, t.WireframePainter = Ey,
18644
+ t.WireframePlugin = pm, Object.defineProperty(t, "t", {
18611
18645
  value: !0
18612
- }), "undefined" != typeof console && console.log("@maptalks/vt v0.94.0");
18646
+ }), "undefined" != typeof console && console.log("@maptalks/vt v0.95.0");
18613
18647
  }));