ol 7.1.1-dev.1663009085499 → 7.1.1-dev.1663009123507
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ol.js +2 -2
- package/dist/ol.js.map +1 -1
- package/package.json +1 -1
- package/util.js +1 -1
- package/worker/webgl.js +1 -1
package/dist/ol.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ol=function(){"use strict";const t={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class e extends Error{constructor(e){const i=t[e];super(i),this.code=e,this.name="AssertionError",this.message=i}}class i{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}}function n(t){t.stopPropagation()}var r="propertychange";class s{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}}function o(t,e,i){let n,r;i=i||a;let s=0,o=t.length,l=!1;for(;s<o;)n=s+(o-s>>1),r=+i(t[n],e),r<0?s=n+1:(o=n,l=!r);return l?s:~s}function a(t,e){return t>e?1:t<e?-1:0}function l(t,e,i){const n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;let r;if(i>0){for(r=1;r<n;++r)if(t[r]<e)return r-1}else if(i<0){for(r=1;r<n;++r)if(t[r]<=e)return r}else for(r=1;r<n;++r){if(t[r]==e)return r;if(t[r]<e)return"function"==typeof i?i(e,t[r-1],t[r])>0?r-1:r:t[r-1]-e<e-t[r]?r-1:r}return n-1}function h(t,e,i){for(;e<i;){const n=t[e];t[e]=t[i],t[i]=n,++e,--i}}function c(t,e){const i=Array.isArray(e)?e:[e],n=i.length;for(let e=0;e<n;e++)t[t.length]=i[e]}function u(t,e){const i=t.length;if(i!==e.length)return!1;for(let n=0;n<i;n++)if(t[n]!==e[n])return!1;return!0}function d(t,e,i){const n=e||a;return t.every((function(e,r){if(0===r)return!0;const s=n(t[r-1],e);return!(s>0||i&&0===s)}))}function g(){return!0}function f(){return!1}function p(){}function m(t){let e,i,n,r=!1;return function(){const s=Array.prototype.slice.call(arguments);return r&&this===n&&u(s,i)||(r=!0,n=this,i=s,e=t.apply(this,arguments)),e}}function _(t){return function(){let e;try{e=t()}catch(t){return Promise.reject(t)}return e instanceof Promise?e:Promise.resolve(e)}()}function y(t){for(const e in t)delete t[e]}function x(t){let e;for(e in t)return!1;return!e}class v extends s{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const e="string"==typeof t,n=e?t:t.type,r=this.listeners_&&this.listeners_[n];if(!r)return;const s=e?new i(t):t;s.target||(s.target=this.eventTarget_||this);const o=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});let l;n in o||(o[n]=0,a[n]=0),++o[n];for(let t=0,e=r.length;t<e;++t)if(l="handleEvent"in r[t]?r[t].handleEvent(s):r[t].call(this,s),!1===l||s.propagationStopped){l=!1;break}if(0==--o[n]){let t=a[n];for(delete a[n];t--;)this.removeEventListener(n,p);delete o[n]}return l}disposeInternal(){this.listeners_&&y(this.listeners_)}getListeners(t){return this.listeners_&&this.listeners_[t]||void 0}hasListener(t){return!!this.listeners_&&(t?t in this.listeners_:Object.keys(this.listeners_).length>0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=p,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}}var S="change",w="error",T="contextmenu",E="click",C="dblclick",b="dragenter",R="dragover",P="drop",I="keydown",L="keypress",F="load",M="resize",A="touchmove",O="wheel";function N(t,e,i,n,r){if(n&&n!==t&&(i=i.bind(n)),r){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function D(t,e,i,n){return N(t,e,i,n,!0)}function G(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),y(t))}class k extends v{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(S)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=N(this,t[r],e);return n}return N(this,t,e)}onceInternal(t,e){let i;if(Array.isArray(t)){const n=t.length;i=new Array(n);for(let r=0;r<n;++r)i[r]=D(this,t[r],e)}else i=D(this,t,e);return e.ol_key=i,i}unInternal(t,e){const i=e.ol_key;if(i)j(i);else if(Array.isArray(t))for(let i=0,n=t.length;i<n;++i)this.removeEventListener(t[i],e);else this.removeEventListener(t,e)}}function j(t){if(Array.isArray(t))for(let e=0,i=t.length;e<i;++e)G(t[e]);else G(t)}function B(){throw new Error("Unimplemented abstract method.")}k.prototype.on,k.prototype.once,k.prototype.un;let U=0;function z(t){return t.ol_uid||(t.ol_uid=String(++U))}class X extends i{constructor(t,e,i){super(t),this.key=e,this.oldValue=i}}class V extends k{constructor(t){super(),this.on,this.once,this.un,z(this),this.values_=null,void 0!==t&&this.setProperties(t)}get(t){let e;return this.values_&&this.values_.hasOwnProperty(t)&&(e=this.values_[t]),e}getKeys(){return this.values_&&Object.keys(this.values_)||[]}getProperties(){return this.values_&&Object.assign({},this.values_)||{}}hasProperties(){return!!this.values_}notify(t,e){let i;i=`change:${t}`,this.hasListener(i)&&this.dispatchEvent(new X(i,t,e)),i=r,this.hasListener(i)&&this.dispatchEvent(new X(i,t,e))}addChangeListener(t,e){this.addEventListener(`change:${t}`,e)}removeChangeListener(t,e){this.removeEventListener(`change:${t}`,e)}set(t,e,i){const n=this.values_||(this.values_={});if(i)n[t]=e;else{const i=n[t];n[t]=e,i!==e&&this.notify(t,i)}}setProperties(t,e){for(const i in t)this.set(i,t[i],e)}applyProperties(t){t.values_&&Object.assign(this.values_||(this.values_={}),t.values_)}unset(t,e){if(this.values_&&t in this.values_){const i=this.values_[t];delete this.values_[t],x(this.values_)&&(this.values_=null),e||this.notify(t,i)}}}var W="add",Z="remove";const Y="length";class K extends i{constructor(t,e,i){super(t),this.element=e,this.index=i}}class q extends V{constructor(t,e){if(super(),this.on,this.once,this.un,e=e||{},this.unique_=!!e.unique,this.array_=t||[],this.unique_)for(let t=0,e=this.array_.length;t<e;++t)this.assertUnique_(this.array_[t],t);this.updateLength_()}clear(){for(;this.getLength()>0;)this.pop()}extend(t){for(let e=0,i=t.length;e<i;++e)this.push(t[e]);return this}forEach(t){const e=this.array_;for(let i=0,n=e.length;i<n;++i)t(e[i],i,e)}getArray(){return this.array_}item(t){return this.array_[t]}getLength(){return this.get(Y)}insertAt(t,e){if(t<0||t>this.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new K(W,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i<n;++i)if(e[i]===t)return this.removeAt(i)}removeAt(t){if(t<0||t>=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new K(Z,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new K(Z,i,t)),this.dispatchEvent(new K(W,e,t))}updateLength_(){this.set(Y,this.array_.length)}assertUnique_(t,i){for(let n=0,r=this.array_.length;n<r;++n)if(this.array_[n]===t&&n!==i)throw new e(58)}}var H=0,$=1,J=2,Q=3,tt=4;function et(t){return Math.pow(t,3)}function it(t){return 1-et(1-t)}function nt(t){return 3*t*t-2*t*t*t}function rt(t){return t}class st extends v{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(S)}release(){this.state===Q&&this.setState(tt)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==J)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==J){t.interimTile=null;break}t.getState()==$?e=t:t.getState()==H?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==Q&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){B()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:et(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}}class ot extends st{constructor(t){const e=H;super(t.tileCoord,e,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||[256,256]}getSize(){return this.size_}getData(){return this.data_}getError(){return this.error_}load(){if(this.state!==H&&this.state!==Q)return;this.state=$,this.changed();const t=this;this.loader_().then((function(e){t.data_=e,t.state=J,t.changed()})).catch((function(e){t.error_=e,t.state=Q,t.changed()}))}}function at(t,i){if(!t)throw new e(i)}class lt extends V{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new lt(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(G(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=N(t,S,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?ht(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}function ht(t){if("function"==typeof t)return t;let e;if(Array.isArray(t))e=t;else{at("function"==typeof t.getZIndex,41);e=[t]}return function(){return e}}const ct="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"",ut=ct.includes("firefox"),dt=ct.includes("safari")&&!ct.includes("chrom"),gt=dt&&(ct.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(ct)),ft=ct.includes("webkit")&&!ct.includes("edge"),pt=ct.includes("macintosh"),mt="undefined"!=typeof devicePixelRatio?devicePixelRatio:1,_t="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,yt="undefined"!=typeof Image&&Image.prototype.decode,xt=function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}return t}(),vt=new Array(6);function St(){return[1,0,0,1,0,0]}function wt(t){return Et(t,1,0,0,1,0,0)}function Tt(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=e[0],h=e[1],c=e[2],u=e[3],d=e[4],g=e[5];return t[0]=i*l+r*h,t[1]=n*l+s*h,t[2]=i*c+r*u,t[3]=n*c+s*u,t[4]=i*d+r*g+o,t[5]=n*d+s*g+a,t}function Et(t,e,i,n,r,s,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t[4]=s,t[5]=o,t}function Ct(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function bt(t,e){const i=e[0],n=e[1];return e[0]=t[0]*i+t[2]*n+t[4],e[1]=t[1]*i+t[3]*n+t[5],e}function Rt(t,e){const i=Math.cos(e),n=Math.sin(e);return Tt(t,Et(vt,i,n,-n,i,0,0))}function Pt(t,e,i){return Tt(t,Et(vt,e,0,0,i,0,0))}function It(t,e,i){return Et(t,e,0,0,i,0,0)}function Lt(t,e,i){return Tt(t,Et(vt,1,0,0,1,e,i))}function Ft(t,e,i,n,r,s,o,a){const l=Math.sin(s),h=Math.cos(s);return t[0]=n*h,t[1]=r*l,t[2]=-n*l,t[3]=r*h,t[4]=o*n*h-a*n*l+e,t[5]=o*r*l+a*r*h+i,t}function Mt(t,e){const i=At(e);at(0!==i,32);const n=e[0],r=e[1],s=e[2],o=e[3],a=e[4],l=e[5];return t[0]=o/i,t[1]=-r/i,t[2]=-s/i,t[3]=n/i,t[4]=(s*l-o*a)/i,t[5]=-(n*l-r*a)/i,t}function At(t){return t[0]*t[3]-t[1]*t[2]}let Ot;function Nt(t){const e="matrix("+t.join(", ")+")";if(_t)return e;const i=Ot||(Ot=document.createElement("div"));return i.style.transform=e,i.style.transform}var Dt=0,Gt=1,kt=2,jt=4,Bt=8,Ut=16;function zt(t){const e=Ht();for(let i=0,n=t.length;i<n;++i)re(e,t[i]);return e}function Xt(t,e,i){return i?(i[0]=t[0]-e,i[1]=t[1]-e,i[2]=t[2]+e,i[3]=t[3]+e,i):[t[0]-e,t[1]-e,t[2]+e,t[3]+e]}function Vt(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t.slice()}function Wt(t,e,i){let n,r;return n=e<t[0]?t[0]-e:t[2]<e?e-t[2]:0,r=i<t[1]?t[1]-i:t[3]<i?i-t[3]:0,n*n+r*r}function Zt(t,e){return Kt(t,e[0],e[1])}function Yt(t,e){return t[0]<=e[0]&&e[2]<=t[2]&&t[1]<=e[1]&&e[3]<=t[3]}function Kt(t,e,i){return t[0]<=e&&e<=t[2]&&t[1]<=i&&i<=t[3]}function qt(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],o=e[0],a=e[1];let l=Dt;return o<i?l|=Ut:o>r&&(l|=jt),a<n?l|=Bt:a>s&&(l|=kt),l===Dt&&(l=Gt),l}function Ht(){return[1/0,1/0,-1/0,-1/0]}function $t(t,e,i,n,r){return r?(r[0]=t,r[1]=e,r[2]=i,r[3]=n,r):[t,e,i,n]}function Jt(t){return $t(1/0,1/0,-1/0,-1/0,t)}function Qt(t,e){const i=t[0],n=t[1];return $t(i,n,i,n,e)}function te(t,e,i,n,r){return oe(Jt(r),t,e,i,n)}function ee(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ie(t,e,i){return Math.abs(t[0]-e[0])<i&&Math.abs(t[2]-e[2])<i&&Math.abs(t[1]-e[1])<i&&Math.abs(t[3]-e[3])<i}function ne(t,e){return e[0]<t[0]&&(t[0]=e[0]),e[2]>t[2]&&(t[2]=e[2]),e[1]<t[1]&&(t[1]=e[1]),e[3]>t[3]&&(t[3]=e[3]),t}function re(t,e){e[0]<t[0]&&(t[0]=e[0]),e[0]>t[2]&&(t[2]=e[0]),e[1]<t[1]&&(t[1]=e[1]),e[1]>t[3]&&(t[3]=e[1])}function se(t,e){for(let i=0,n=e.length;i<n;++i)re(t,e[i]);return t}function oe(t,e,i,n,r){for(;i<n;i+=r)le(t,e[i],e[i+1]);return t}function ae(t,e){for(let i=0,n=e.length;i<n;++i)se(t,e[i]);return t}function le(t,e,i){t[0]=Math.min(t[0],e),t[1]=Math.min(t[1],i),t[2]=Math.max(t[2],e),t[3]=Math.max(t[3],i)}function he(t,e){let i;return i=e(ue(t)),i||(i=e(de(t)),i||(i=e(ve(t)),i||(i=e(xe(t)),i||!1)))}function ce(t){let e=0;return Te(t)||(e=Se(t)*_e(t)),e}function ue(t){return[t[0],t[1]]}function de(t){return[t[2],t[1]]}function ge(t){return[(t[0]+t[2])/2,(t[1]+t[3])/2]}function fe(t,e){let i;return"bottom-left"===e?i=ue(t):"bottom-right"===e?i=de(t):"top-left"===e?i=xe(t):"top-right"===e?i=ve(t):at(!1,13),i}function pe(t,e,i,n,r){const[s,o,a,l,h,c,u,d]=me(t,e,i,n);return $t(Math.min(s,a,h,u),Math.min(o,l,c,d),Math.max(s,a,h,u),Math.max(o,l,c,d),r)}function me(t,e,i,n){const r=e*n[0]/2,s=e*n[1]/2,o=Math.cos(i),a=Math.sin(i),l=r*o,h=r*a,c=s*o,u=s*a,d=t[0],g=t[1];return[d-l+u,g-h-c,d-l-u,g-h+c,d+l-u,g+h+c,d+l+u,g+h-c,d-l+u,g-h-c]}function _e(t){return t[3]-t[1]}function ye(t,e,i){const n=i||[1/0,1/0,-1/0,-1/0];return we(t,e)?(t[0]>e[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]<e[2]?n[2]=t[2]:n[2]=e[2],t[3]<e[3]?n[3]=t[3]:n[3]=e[3]):Jt(n),n}function xe(t){return[t[0],t[3]]}function ve(t){return[t[2],t[3]]}function Se(t){return t[2]-t[0]}function we(t,e){return t[0]<=e[2]&&t[2]>=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function Te(t){return t[2]<t[0]||t[3]<t[1]}function Ee(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}function Ce(t,e){const i=(t[2]-t[0])/2*(e-1),n=(t[3]-t[1])/2*(e-1);t[0]-=i,t[2]+=i,t[1]-=n,t[3]+=n}function be(t,e,i){let n=!1;const r=qt(t,e),s=qt(t,i);if(r===Gt||s===Gt)n=!0;else{const o=t[0],a=t[1],l=t[2],h=t[3],c=e[0],u=e[1],d=i[0],g=i[1],f=(g-u)/(d-c);let p,m;s&kt&&!(r&kt)&&(p=d-(g-h)/f,n=p>=o&&p<=l),n||!(s&jt)||r&jt||(m=g-(d-l)*f,n=m>=a&&m<=h),n||!(s&Bt)||r&Bt||(p=d-(g-a)/f,n=p>=o&&p<=l),n||!(s&Ut)||r&Ut||(m=g-(d-o)*f,n=m>=a&&m<=h)}return n}function Re(t,e,i,n){let r=[];if(n>1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s<n;++s)r.push(t[0]+e*s/n,t[1],t[2],t[1]+i*s/n,t[2]-e*s/n,t[3],t[0],t[3]-i*s/n)}else r=[t[0],t[1],t[2],t[1],t[2],t[3],t[0],t[3]];e(r,r,2);const s=[],o=[];for(let t=0,e=r.length;t<e;t+=2)s.push(r[t]),o.push(r[t+1]);return function(t,e,i){return $t(Math.min.apply(null,t),Math.min.apply(null,e),Math.max.apply(null,t),Math.max.apply(null,e),i)}(s,o,i)}function Pe(t,e){const i=e.getExtent(),n=ge(t);if(e.canWrapX()&&(n[0]<i[0]||n[0]>=i[2])){const e=Se(i),r=Math.floor((n[0]-i[0])/e)*e;t[0]-=r,t[2]-=r}return t}function Ie(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];Pe(t,e);const n=Se(i);if(Se(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]<i[0])return[[t[0]+n,t[1],i[2],t[3]],[i[0],t[1],t[2],t[3]]];if(t[2]>i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}const Le={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function Fe(t){return Le[t]}const Me={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};class Ae{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Me[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}}const Oe=6378137,Ne=Math.PI*Oe,De=[-Ne,-Ne,Ne,Ne],Ge=[-180,-85,180,85],ke=Oe*Math.log(Math.tan(Math.PI/2));class je extends Ae{constructor(t){super({code:t,units:"m",extent:De,global:!0,worldExtent:Ge,getPointResolution:function(t,e){return t/Math.cosh(e[1]/Oe)}})}}const Be=[new je("EPSG:3857"),new je("EPSG:102100"),new je("EPSG:102113"),new je("EPSG:900913"),new je("http://www.opengis.net/def/crs/EPSG/0/3857"),new je("http://www.opengis.net/gml/srs/epsg.xml#3857")];function Ue(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r<n;r+=i){e[r]=Ne*t[r]/180;let i=Oe*Math.log(Math.tan(Math.PI*(+t[r+1]+90)/360));i>ke?i=ke:i<-ke&&(i=-ke),e[r+1]=i}return e}function ze(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r<n;r+=i)e[r]=180*t[r]/Ne,e[r+1]=360*Math.atan(Math.exp(t[r+1]/Oe))/Math.PI-90;return e}const Xe=6378137,Ve=[-180,-90,180,90],We=Math.PI*Xe/180;class Ze extends Ae{constructor(t,e){super({code:t,units:"degrees",extent:Ve,axisOrientation:e,global:!0,metersPerUnit:We,worldExtent:Ve})}}const Ye=[new Ze("CRS:84"),new Ze("EPSG:4326","neu"),new Ze("urn:ogc:def:crs:OGC:1.3:CRS84"),new Ze("urn:ogc:def:crs:OGC:2:84"),new Ze("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new Ze("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new Ze("http://www.opengis.net/def/crs/EPSG/0/4326","neu")];let Ke={};function qe(){Ke={}}function He(t){return Ke[t]||Ke[t.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/,"EPSG:$3")]||null}function $e(t,e){Ke[t]=e}let Je={};function Qe(){Je={}}function ti(t,e,i){const n=t.getCode(),r=e.getCode();n in Je||(Je[n]={}),Je[n][r]=i}function ei(t,e){let i;return t in Je&&e in Je[t]&&(i=Je[t][e]),i}function ii(t,e,i){return Math.min(Math.max(t,e),i)}function ni(t,e,i,n,r,s){const o=r-i,a=s-n;if(0!==o||0!==a){const l=((t-i)*o+(e-n)*a)/(o*o+a*a);l>1?(i=r,n=s):l>0&&(i+=o*l,n+=a*l)}return ri(t,e,i,n)}function ri(t,e,i,n){const r=i-t,s=n-e;return r*r+s*s}function si(t){const e=t.length;for(let i=0;i<e;i++){let n=i,r=Math.abs(t[i][i]);for(let s=i+1;s<e;s++){const e=Math.abs(t[s][i]);e>r&&(r=e,n=s)}if(0===r)return null;const s=t[n];t[n]=t[i],t[i]=s;for(let n=i+1;n<e;n++){const r=-t[n][i]/t[i][i];for(let s=i;s<e+1;s++)i==s?t[n][s]=0:t[n][s]+=r*t[i][s]}}const i=new Array(e);for(let n=e-1;n>=0;n--){i[n]=t[n][e]/t[n][n];for(let r=n-1;r>=0;r--)t[r][e]-=t[r][n]*i[n]}return i}function oi(t){return 180*t/Math.PI}function ai(t){return t*Math.PI/180}function li(t,e){const i=t%e;return i*e<0?i+e:i}function hi(t,e,i){return t+i*(e-t)}function ci(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function ui(t,e){return Math.round(ci(t,e))}function di(t,e){return Math.floor(ci(t,e))}function gi(t,e){return Math.ceil(ci(t,e))}function fi(t,e,i){const n=void 0!==i?t.toFixed(i):""+t;let r=n.indexOf(".");return r=-1===r?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function pi(t,e){const i=(""+t).split("."),n=(""+e).split(".");for(let t=0;t<Math.max(i.length,n.length);t++){const e=parseInt(i[t]||"0",10),r=parseInt(n[t]||"0",10);if(e>r)return 1;if(r>e)return-1}return 0}function mi(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function _i(t,e){const i=e.getRadius(),n=e.getCenter(),r=n[0],s=n[1];let o=t[0]-r;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[r+i*o/l,s+i*a/l]}function yi(t,e){const i=t[0],n=t[1],r=e[0],s=e[1],o=r[0],a=r[1],l=s[0],h=s[1],c=l-o,u=h-a,d=0===c&&0===u?0:(c*(i-o)+u*(n-a))/(c*c+u*u||0);let g,f;return d<=0?(g=o,f=a):d>=1?(g=l,f=h):(g=o+d*c,f=a+d*u),[g,f]}function xi(t,e,i){const n=li(e+180,360)-180,r=Math.abs(3600*n),s=i||0;let o=Math.floor(r/3600),a=Math.floor((r-3600*o)/60),l=ci(r-3600*o-60*a,s);l>=60&&(l=0,a+=1),a>=60&&(a=0,o+=1);let h=o+"°";return 0===a&&0===l||(h+=" "+fi(a,2)+"′"),0!==l&&(h+=" "+fi(l,2,s)+"″"),0!==n&&(h+=" "+t.charAt(n<0?1:0)),h}function vi(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Si(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function wi(t,e){const i=Math.cos(e),n=Math.sin(e),r=t[0]*i-t[1]*n,s=t[1]*i+t[0]*n;return t[0]=r,t[1]=s,t}function Ti(t,e){return t[0]*=e,t[1]*=e,t}function Ei(t,e){const i=t[0]-e[0],n=t[1]-e[1];return i*i+n*n}function Ci(t,e){return Math.sqrt(Ei(t,e))}function bi(t,e){return Ei(t,yi(t,e))}function Ri(t,e){return vi(t,"{x}, {y}",e)}function Pi(t,e){if(e.canWrapX()){const i=Se(e.getExtent()),n=Ii(t,e,i);n&&(t[0]-=n*i)}return t}function Ii(t,e,i){const n=e.getExtent();let r=0;return e.canWrapX()&&(t[0]<n[0]||t[0]>n[2])&&(i=i||Se(n),r=Math.floor((t[0]-n[0])/i)),r}const Li=6371008.8;function Fi(t,e,i){i=i||Li;const n=ai(t[1]),r=ai(e[1]),s=(r-n)/2,o=ai(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(r);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function Mi(t,e){let i=0;for(let n=0,r=t.length;n<r-1;++n)i+=Fi(t[n],t[n+1],e);return i}function Ai(t,e){let i=0;const n=t.length;let r=t[n-1][0],s=t[n-1][1];for(let e=0;e<n;e++){const n=t[e][0],o=t[e][1];i+=ai(n-r)*(2+Math.sin(ai(s))+Math.sin(ai(o))),r=n,s=o}return i*e*e/2}function Oi(t,e,i,n){n=n||Li;const r=ai(t[1]),s=ai(t[0]),o=e/n,a=Math.asin(Math.sin(r)*Math.cos(o)+Math.cos(r)*Math.sin(o)*Math.cos(i));return[oi(s+Math.atan2(Math.sin(i)*Math.sin(o)*Math.cos(r),Math.cos(o)-Math.sin(r)*Math.sin(a))),oi(a)]}let Ni=!0;function Di(t){Ni=!(void 0===t||t)}function Gi(t,e,i){if(void 0!==e)for(let i=0,n=t.length;i<n;++i)e[i]=t[i];else e=t.slice();return e}function ki(t,e,i){if(void 0!==e&&t!==e){for(let i=0,n=t.length;i<n;++i)e[i]=t[i];t=e}return t}function ji(t){$e(t.getCode(),t),ti(t,t,Gi)}function Bi(t){t.forEach(ji)}function Ui(t){return"string"==typeof t?He(t):t||null}function zi(t,e,i,n){let r;const s=(t=Ui(t)).getPointResolutionFunc();if(s){if(r=s(e,i),n&&n!==t.getUnits()){const e=t.getMetersPerUnit();e&&(r=r*e/Me[n])}}else{const s=t.getUnits();if("degrees"==s&&!n||"degrees"==n)r=e;else{const o=qi(t,Ui("EPSG:4326"));if(o===ki&&"degrees"!==s)r=e*t.getMetersPerUnit();else{let t=[i[0]-e/2,i[1],i[0]+e/2,i[1],i[0],i[1]-e/2,i[0],i[1]+e/2];t=o(t,t,2);r=(Fi(t.slice(0,2),t.slice(2,4))+Fi(t.slice(4,6),t.slice(6,8)))/2}const a=n?Me[n]:t.getMetersPerUnit();void 0!==a&&(r/=a)}}return r}function Xi(t){Bi(t),t.forEach((function(e){t.forEach((function(t){e!==t&&ti(e,t,Gi)}))}))}function Vi(t,e,i,n){t.forEach((function(t){e.forEach((function(e){ti(t,e,i),ti(e,t,n)}))}))}function Wi(t,e){return t?"string"==typeof t?Ui(t):t:Ui(e)}function Zi(t){return function(e,i,n){const r=e.length;n=void 0!==n?n:2,i=void 0!==i?i:new Array(r);for(let s=0;s<r;s+=n){const r=t(e.slice(s,s+n)),o=r.length;for(let t=0,a=n;t<a;++t)i[s+t]=t>=o?e[s+t]:r[t]}return i}}function Yi(t,e,i,n){const r=Ui(t),s=Ui(e);ti(r,s,Zi(i)),ti(s,r,Zi(n))}function Ki(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return qi(t,e)===Gi&&i}function qi(t,e){let i=ei(t.getCode(),e.getCode());return i||(i=ki),i}function Hi(t,e){return qi(Ui(t),Ui(e))}function $i(t,e,i){return Hi(e,i)(t,void 0,t.length)}function Ji(t,e,i,n){return Re(t,Hi(e,i),void 0,n)}let Qi=null;function tn(t){Qi=Ui(t)}function en(){return Qi}function nn(t,e){return Qi?$i(t,e,Qi):t}function rn(t,e){return Qi?$i(t,Qi,e):(Ni&&!Si(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Ni=!1,console.warn("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function sn(t,e){return Qi?Ji(t,e,Qi):t}function on(t,e){return Qi?Ji(t,Qi,e):t}function an(t,e){if(!Qi)return t;const i=Ui(e).getUnits(),n=Qi.getUnits();return i&&n?t*Me[i]/Me[n]:t}function ln(t,e){if(!Qi)return t;const i=Ui(e).getUnits(),n=Qi.getUnits();return i&&n?t*Me[n]/Me[i]:t}function hn(t,e,i){return function(n){let r,s;if(t.canWrapX()){const e=t.getExtent(),o=Se(e);s=Ii(n=n.slice(0),t,o),s&&(n[0]=n[0]-s*o),n[0]=ii(n[0],e[0],e[2]),n[1]=ii(n[1],e[1],e[3]),r=i(n)}else r=i(n);return s&&e.canWrapX()&&(r[0]+=s*Se(e.getExtent())),r}}function cn(){Xi(Be),Xi(Ye),Vi(Ye,Be,Ue,ze)}function un(t,e,i,n,r,s){s=s||[];let o=0;for(let a=e;a<i;a+=n){const e=t[a],i=t[a+1];s[o++]=r[0]*e+r[2]*i+r[4],s[o++]=r[1]*e+r[3]*i+r[5]}return s&&s.length!=o&&(s.length=o),s}function dn(t,e,i,n,r,s,o){o=o||[];const a=Math.cos(r),l=Math.sin(r),h=s[0],c=s[1];let u=0;for(let r=e;r<i;r+=n){const e=t[r]-h,i=t[r+1]-c;o[u++]=h+e*a-i*l,o[u++]=c+e*l+i*a;for(let e=r+2;e<r+n;++e)o[u++]=t[e]}return o&&o.length!=u&&(o.length=u),o}function gn(t,e,i,n,r,s,o,a){a=a||[];const l=o[0],h=o[1];let c=0;for(let o=e;o<i;o+=n){const e=t[o]-l,i=t[o+1]-h;a[c++]=l+r*e,a[c++]=h+s*i;for(let e=o+2;e<o+n;++e)a[c++]=t[e]}return a&&a.length!=c&&(a.length=c),a}function fn(t,e,i,n,r,s,o){o=o||[];let a=0;for(let l=e;l<i;l+=n){o[a++]=t[l]+r,o[a++]=t[l+1]+s;for(let e=l+2;e<l+n;++e)o[a++]=t[e]}return o&&o.length!=a&&(o.length=a),o}cn();const pn=[1,0,0,1,0,0];class mn extends V{constructor(){super(),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0,this.simplifyTransformedInternal=m((function(t,e,i){if(!i)return this.getSimplifiedGeometry(e);const n=this.clone();return n.applyTransform(i),n.getSimplifiedGeometry(e)}))}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return B()}closestPointXY(t,e,i,n){return B()}containsXY(t,e){const i=this.getClosestPoint([t,e]);return i[0]===t&&i[1]===e}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return B()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&Jt(t),this.extentRevision_=this.getRevision()}return Ee(this.extent_,t)}rotate(t,e){B()}scale(t,e,i){B()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return B()}getType(){return B()}applyTransform(t){B()}intersectsExtent(t){return B()}translate(t,e){B()}transform(t,e){const i=Ui(t),n="tile-pixels"==i.getUnits()?function(t,n,r){const s=i.getExtent(),o=i.getWorldExtent(),a=_e(o)/_e(s);return Ft(pn,o[0],o[3],a,-a,0,0,0),un(t,0,t.length,r,pn,n),Hi(i,e)(t,n,r)}:Hi(i,e);return this.applyTransform(n),this}}class _n extends mn{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates=null}computeExtent(t){return te(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return B()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length<this.flatCoordinates.length?e:(this.simplifiedGeometryMaxMinSquaredTolerance=t,this)}getSimplifiedGeometryInternal(t){return this}getStride(){return this.stride}setFlatCoordinates(t,e){this.stride=yn(t),this.layout=t,this.flatCoordinates=e}setCoordinates(t,e){B()}setLayout(t,e,i){let n;if(t)n=yn(t);else{for(let t=0;t<i;++t){if(0===e.length)return this.layout="XY",void(this.stride=2);e=e[0]}n=e.length,t=function(t){let e;2==t?e="XY":3==t?e="XYZ":4==t&&(e="XYZM");return e}(n)}this.layout=t,this.stride=n}applyTransform(t){this.flatCoordinates&&(t(this.flatCoordinates,this.flatCoordinates,this.stride),this.changed())}rotate(t,e){const i=this.getFlatCoordinates();if(i){const n=this.getStride();dn(i,0,i.length,n,t,e,i),this.changed()}}scale(t,e,i){void 0===e&&(e=t),i||(i=ge(this.getExtent()));const n=this.getFlatCoordinates();if(n){const r=this.getStride();gn(n,0,n.length,r,t,e,i,n),this.changed()}}translate(t,e){const i=this.getFlatCoordinates();if(i){const n=this.getStride();fn(i,0,i.length,n,t,e,i),this.changed()}}}function yn(t){let e;return"XY"==t?e=2:"XYZ"==t||"XYM"==t?e=3:"XYZM"==t&&(e=4),e}function xn(t,e,i){const n=t.getFlatCoordinates();if(!n)return null;const r=t.getStride();return un(n,0,n.length,r,e,i)}function vn(t,e,i,n,r,s,o){const a=t[e],l=t[e+1],h=t[i]-a,c=t[i+1]-l;let u;if(0===h&&0===c)u=e;else{const d=((r-a)*h+(s-l)*c)/(h*h+c*c);if(d>1)u=i;else{if(d>0){for(let r=0;r<n;++r)o[r]=hi(t[e+r],t[i+r],d);return void(o.length=n)}u=e}}for(let e=0;e<n;++e)o[e]=t[u+e];o.length=n}function Sn(t,e,i,n,r){let s=t[e],o=t[e+1];for(e+=n;e<i;e+=n){const i=t[e],n=t[e+1],a=ri(s,o,i,n);a>r&&(r=a),s=i,o=n}return r}function wn(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];r=Sn(t,e,o,n,r),e=o}return r}function Tn(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];r=wn(t,e,o,n,r),e=o[o.length-1]}return r}function En(t,e,i,n,r,s,o,a,l,h,c){if(e==i)return h;let u,d;if(0===r){if(d=ri(o,a,t[e],t[e+1]),d<h){for(u=0;u<n;++u)l[u]=t[e+u];return l.length=n,d}return h}c=c||[NaN,NaN];let g=e+n;for(;g<i;)if(vn(t,g-n,g,n,o,a,c),d=ri(o,a,c[0],c[1]),d<h){for(h=d,u=0;u<n;++u)l[u]=c[u];l.length=n,g+=n}else g+=n*Math.max((Math.sqrt(d)-Math.sqrt(h))/r|0,1);if(s&&(vn(t,i-n,e,n,o,a,c),d=ri(o,a,c[0],c[1]),d<h)){for(h=d,u=0;u<n;++u)l[u]=c[u];l.length=n}return h}function Cn(t,e,i,n,r,s,o,a,l,h,c){c=c||[NaN,NaN];for(let u=0,d=i.length;u<d;++u){const d=i[u];h=En(t,e,d,n,r,s,o,a,l,h,c),e=d}return h}function bn(t,e,i,n,r,s,o,a,l,h,c){c=c||[NaN,NaN];for(let u=0,d=i.length;u<d;++u){const d=i[u];h=Cn(t,e,d,n,r,s,o,a,l,h,c),e=d[d.length-1]}return h}function Rn(t,e,i,n){for(let n=0,r=i.length;n<r;++n)t[e++]=i[n];return e}function Pn(t,e,i,n){for(let r=0,s=i.length;r<s;++r){const s=i[r];for(let i=0;i<n;++i)t[e++]=s[i]}return e}function In(t,e,i,n,r){r=r||[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=Pn(t,e,i[o],n);r[s++]=a,e=a}return r.length=s,r}function Ln(t,e,i,n,r){r=r||[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=In(t,e,i[o],n,r[s]);0===a.length&&(a[0]=e),r[s++]=a,e=a[a.length-1]}return r.length=s,r}function Fn(t,e,i,n,r,s,o){const a=(i-e)/n;if(a<3){for(;e<i;e+=n)s[o++]=t[e],s[o++]=t[e+1];return o}const l=new Array(a);l[0]=1,l[a-1]=1;const h=[e,i-n];let c=0;for(;h.length>0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],d=t[i],g=t[i+1];for(let e=s+n;e<i;e+=n){const i=ni(t[e],t[e+1],a,u,d,g);i>o&&(c=e,o=i)}o>r&&(l[(c-e)/n]=1,s+n<c&&h.push(s,c),c+n<i&&h.push(c,i))}for(let i=0;i<a;++i)l[i]&&(s[o++]=t[e+i*n],s[o++]=t[e+i*n+1]);return o}function Mn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l];o=Fn(t,e,h,n,r,s,o),a.push(o),e=h}return o}function An(t,e,i,n,r,s,o){if(i<=e+n){for(;e<i;e+=n)s[o++]=t[e],s[o++]=t[e+1];return o}let a=t[e],l=t[e+1];s[o++]=a,s[o++]=l;let h=a,c=l;for(e+=n;e<i;e+=n)h=t[e],c=t[e+1],ri(a,l,h,c)>r&&(s[o++]=h,s[o++]=c,a=h,l=c);return h==a&&c==l||(s[o++]=h,s[o++]=c),o}function On(t,e){return e*Math.round(t/e)}function Nn(t,e,i,n,r,s,o){if(e==i)return o;let a,l,h=On(t[e],r),c=On(t[e+1],r);e+=n,s[o++]=h,s[o++]=c;do{if(a=On(t[e],r),l=On(t[e+1],r),(e+=n)==i)return s[o++]=a,s[o++]=l,o}while(a==h&&l==c);for(;e<i;){const i=On(t[e],r),u=On(t[e+1],r);if(e+=n,i==a&&u==l)continue;const d=a-h,g=l-c,f=i-h,p=u-c;d*p==g*f&&(d<0&&f<d||d==f||d>0&&f>d)&&(g<0&&p<g||g==p||g>0&&p>g)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function Dn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l];o=Nn(t,e,h,n,r,s,o),a.push(o),e=h}return o}function Gn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l],c=[];o=Dn(t,e,h,n,r,s,o,c),a.push(c),e=h[h.length-1]}return o}function kn(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=e;o<i;o+=n)r[s++]=t.slice(o,o+n);return r.length=s,r}function jn(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=i[o];r[s++]=kn(t,e,a,n,r[s]),e=a}return r.length=s,r}function Bn(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=i[o];r[s++]=1===a.length&&a[0]===e?[]:jn(t,e,a,n,r[s]),e=a[a.length-1]}return r.length=s,r}function Un(t,e,i,n){let r=0,s=t[i-n],o=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];r+=o*i-s*n,s=i,o=n}return r/2}function zn(t,e,i,n){let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s];r+=Un(t,e,o,n),e=o}return r}function Xn(t,e,i,n){let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s];r+=zn(t,e,o,n),e=o[o.length-1]}return r}class Vn extends _n{constructor(t,e){super(),this.maxDelta_=-1,this.maxDeltaRevision_=-1,void 0===e||Array.isArray(t[0])?this.setCoordinates(t,e):this.setFlatCoordinates(e,t)}clone(){return new Vn(this.flatCoordinates.slice(),this.layout)}closestPointXY(t,e,i,n){return n<Wt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(Sn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),En(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!0,t,e,i,n))}getArea(){return Un(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getCoordinates(){return kn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getSimplifiedGeometryInternal(t){const e=[];return e.length=Fn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,0),new Vn(e,"XY")}getType(){return"LinearRing"}intersectsExtent(t){return!1}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Pn(this.flatCoordinates,0,t,this.stride),this.changed()}}class Wn extends _n{constructor(t,e){super(),this.setCoordinates(t,e)}clone(){const t=new Wn(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){const r=this.flatCoordinates,s=ri(t,e,r[0],r[1]);if(s<n){const t=this.stride;for(let e=0;e<t;++e)i[e]=r[e];return i.length=t,s}return n}getCoordinates(){return this.flatCoordinates?this.flatCoordinates.slice():[]}computeExtent(t){return Qt(this.flatCoordinates,t)}getType(){return"Point"}intersectsExtent(t){return Kt(t,this.flatCoordinates[0],this.flatCoordinates[1])}setCoordinates(t,e){this.setLayout(e,t,0),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Rn(this.flatCoordinates,0,t,this.stride),this.changed()}}function Zn(t,e,i,n,r){return!he(r,(function(r){return!Yn(t,e,i,n,r[0],r[1])}))}function Yn(t,e,i,n,r,s){let o=0,a=t[i-n],l=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];l<=s?n>s&&(i-a)*(s-l)-(r-a)*(n-l)>0&&o++:n<=s&&(i-a)*(s-l)-(r-a)*(n-l)<0&&o--,a=i,l=n}return 0!==o}function Kn(t,e,i,n,r,s){if(0===i.length)return!1;if(!Yn(t,e,i[0],n,r,s))return!1;for(let e=1,o=i.length;e<o;++e)if(Yn(t,i[e-1],i[e],n,r,s))return!1;return!0}function qn(t,e,i,n,r,s){if(0===i.length)return!1;for(let o=0,a=i.length;o<a;++o){const a=i[o];if(Kn(t,e,a,n,r,s))return!0;e=a[a.length-1]}return!1}function Hn(t,e,i,n,r,s,o){let l,h,c,u,d,g,f;const p=r[s+1],m=[];for(let r=0,s=i.length;r<s;++r){const s=i[r];for(u=t[s-n],g=t[s-n+1],l=e;l<s;l+=n)d=t[l],f=t[l+1],(p<=g&&f<=p||g<=p&&p<=f)&&(c=(p-g)/(f-g)*(d-u)+u,m.push(c)),u=d,g=f}let _=NaN,y=-1/0;for(m.sort(a),u=m[0],l=1,h=m.length;l<h;++l){d=m[l];const r=Math.abs(d-u);r>y&&(c=(u+d)/2,Kn(t,e,i,n,c,p)&&(_=c,y=r)),u=d}return isNaN(_)&&(_=r[s]),o?(o.push(_,p,y),o):[_,p,y]}function $n(t,e,i,n,r){let s=[];for(let o=0,a=i.length;o<a;++o){const a=i[o];s=Hn(t,e,a,n,r,2*o,s),e=a[a.length-1]}return s}function Jn(t,e,i,n,r){let s;for(e+=n;e<i;e+=n)if(s=r(t.slice(e-n,e),t.slice(e,e+n)),s)return s;return!1}function Qn(t,e,i,n,r){const s=oe([1/0,1/0,-1/0,-1/0],t,e,i,n);return!!we(r,s)&&(!!Yt(r,s)||(s[0]>=r[0]&&s[2]<=r[2]||(s[1]>=r[1]&&s[3]<=r[3]||Jn(t,e,i,n,(function(t,e){return be(r,t,e)})))))}function tr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){if(Qn(t,e,i[s],n,r))return!0;e=i[s]}return!1}function er(t,e,i,n,r){return!!Qn(t,e,i,n,r)||(!!Yn(t,e,i,n,r[0],r[1])||(!!Yn(t,e,i,n,r[0],r[3])||(!!Yn(t,e,i,n,r[2],r[1])||!!Yn(t,e,i,n,r[2],r[3]))))}function ir(t,e,i,n,r){if(!er(t,e,i[0],n,r))return!1;if(1===i.length)return!0;for(let e=1,s=i.length;e<s;++e)if(Zn(t,i[e-1],i[e],n,r)&&!Qn(t,i[e-1],i[e],n,r))return!1;return!0}function nr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];if(ir(t,e,o,n,r))return!0;e=o[o.length-1]}return!1}function rr(t,e,i,n){for(;e<i-n;){for(let r=0;r<n;++r){const s=t[e+r];t[e+r]=t[i-n+r],t[i-n+r]=s}e+=n,i-=n}}function sr(t,e,i,n){let r=0,s=t[i-n],o=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];r+=(i-s)*(n+o),s=i,o=n}return 0===r?void 0:r>0}function or(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=sr(t,e,o,n);if(0===s){if(r&&a||!r&&!a)return!1}else if(r&&!a||!r&&a)return!1;e=o}return!0}function ar(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];if(!or(t,e,o,n,r))return!1;o.length&&(e=o[o.length-1])}return!0}function lr(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=sr(t,e,o,n);(0===s?r&&a||!r&&!a:r&&!a||!r&&a)&&rr(t,e,o,n),e=o}return e}function hr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s)e=lr(t,e,i[s],n,r);return e}function cr(t,e){const i=[];let n=0,r=0;for(let s=0,o=e.length;s<o;++s){const o=e[s];if(sr(t,n,o,2)){if(0===i.length)continue;i[i.length-1].push(e[r])}else i.push(e.slice(r,s+1));r=s+1,n=o}return i}class ur extends _n{constructor(t,e,i){super(),this.ends_=[],this.flatInteriorPointRevision_=-1,this.flatInteriorPoint_=null,this.maxDelta_=-1,this.maxDeltaRevision_=-1,this.orientedRevision_=-1,this.orientedFlatCoordinates_=null,void 0!==e&&i?(this.setFlatCoordinates(e,t),this.ends_=i):this.setCoordinates(t,e)}appendLinearRing(t){this.flatCoordinates?c(this.flatCoordinates,t.getFlatCoordinates()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.ends_.push(this.flatCoordinates.length),this.changed()}clone(){const t=new ur(this.flatCoordinates.slice(),this.layout,this.ends_.slice());return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Wt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(wn(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Cn(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!0,t,e,i,n))}containsXY(t,e){return Kn(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t,e)}getArea(){return zn(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride)}getCoordinates(t){let e;return void 0!==t?(e=this.getOrientedFlatCoordinates().slice(),lr(e,0,this.ends_,this.stride,t)):e=this.flatCoordinates,jn(e,0,this.ends_,this.stride)}getEnds(){return this.ends_}getFlatInteriorPoint(){if(this.flatInteriorPointRevision_!=this.getRevision()){const t=ge(this.getExtent());this.flatInteriorPoint_=Hn(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t,0),this.flatInteriorPointRevision_=this.getRevision()}return this.flatInteriorPoint_}getInteriorPoint(){return new Wn(this.getFlatInteriorPoint(),"XYM")}getLinearRingCount(){return this.ends_.length}getLinearRing(t){return t<0||this.ends_.length<=t?null:new Vn(this.flatCoordinates.slice(0===t?0:this.ends_[t-1],this.ends_[t]),this.layout)}getLinearRings(){const t=this.layout,e=this.flatCoordinates,i=this.ends_,n=[];let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=new Vn(e.slice(r,o),t);n.push(a),r=o}return n}getOrientedFlatCoordinates(){if(this.orientedRevision_!=this.getRevision()){const t=this.flatCoordinates;or(t,0,this.ends_,this.stride)?this.orientedFlatCoordinates_=t:(this.orientedFlatCoordinates_=t.slice(),this.orientedFlatCoordinates_.length=lr(this.orientedFlatCoordinates_,0,this.ends_,this.stride)),this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=Dn(this.flatCoordinates,0,this.ends_,this.stride,Math.sqrt(t),e,0,i),new ur(e,"XY",i)}getType(){return"Polygon"}intersectsExtent(t){return ir(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,2),this.flatCoordinates||(this.flatCoordinates=[]);const i=In(this.flatCoordinates,0,t,this.stride,this.ends_);this.flatCoordinates.length=0===i.length?0:i[i.length-1],this.changed()}}function dr(t,e,i,n){i=i||32;const r=[];for(let s=0;s<i;++s)c(r,Oi(t,e,2*Math.PI*s/i,n));return r.push(r[0],r[1]),new ur(r,"XY",[r.length])}function gr(t){const e=t[0],i=t[1],n=t[2],r=t[3],s=[e,i,e,r,n,r,n,i,e,i];return new ur(s,"XY",[s.length])}function fr(t,e,i){e=e||32;const n=t.getStride(),r=t.getLayout(),s=t.getCenter(),o=n*(e+1),a=new Array(o);for(let t=0;t<o;t+=n){a[t]=0,a[t+1]=0;for(let e=2;e<n;e++)a[t+e]=s[e]}const l=[a.length],h=new ur(a,r,l);return pr(h,s,t.getRadius(),i),h}function pr(t,e,i,n){const r=t.getFlatCoordinates(),s=t.getStride(),o=r.length/s-1,a=n||0;for(let t=0;t<=o;++t){const n=t*s,l=a+2*li(t,o)*Math.PI/o;r[n]=e[0]+i*Math.cos(l),r[n+1]=e[1]+i*Math.sin(l)}t.changed()}const mr="accuracy",_r="accuracyGeometry",yr="altitude",xr="altitudeAccuracy",vr="heading",Sr="position",wr="projection",Tr="speed",Er="tracking",Cr="trackingOptions";class br extends i{constructor(t){super(w),this.code=t.code,this.message=t.message}}class Rr extends v{constructor(t,e,i,n){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state=n}changed(){this.dispatchEvent(S)}getExtent(){return this.extent}getImage(){return B()}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){B()}}var Pr=0,Ir=1,Lr=2,Fr=3,Mr=4;class Ar extends Rr{constructor(t,e,i,n,r,s){super(t,e,i,Pr),this.src_=n,this.image_=new Image,null!==r&&(this.image_.crossOrigin=r),this.unlisten_=null,this.state=Pr,this.imageLoadFunction_=s}getImage(){return this.image_}handleImageError_(){this.state=Fr,this.unlistenImage_(),this.changed()}handleImageLoad_(){void 0===this.resolution&&(this.resolution=_e(this.extent)/this.image_.height),this.state=Lr,this.unlistenImage_(),this.changed()}load(){this.state!=Pr&&this.state!=Fr||(this.state=Ir,this.changed(),this.imageLoadFunction_(this,this.src_),this.unlisten_=Or(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}setImage(t){this.image_=t,this.resolution=_e(this.extent)/this.image_.height}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function Or(t,e,i){const n=t;let r=!0,s=!1,o=!1;const a=[D(n,F,(function(){o=!0,s||e()}))];return n.src&&yt?(s=!0,n.decode().then((function(){r&&e()})).catch((function(t){r&&(o?e():i())}))):a.push(D(n,w,i)),function(){r=!1,a.forEach(G)}}class Nr extends Rr{constructor(t,e,i,n,r){super(t,e,i,void 0!==r?Pr:Lr),this.loader_=void 0!==r?r:null,this.canvas_=n,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=Fr):this.state=Lr,this.changed()}load(){this.state==Pr&&(this.state=Ir,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}}function Dr(t,e,i,n){let r;return r=i&&i.length?i.shift():_t?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(r.width=t),e&&(r.height=e),r.getContext("2d",n)}function Gr(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function kr(t){let e=t.offsetWidth;const i=getComputedStyle(t);return e+=parseInt(i.marginLeft,10)+parseInt(i.marginRight,10),e}function jr(t){let e=t.offsetHeight;const i=getComputedStyle(t);return e+=parseInt(i.marginTop,10)+parseInt(i.marginBottom,10),e}function Br(t,e){const i=e.parentNode;i&&i.replaceChild(t,e)}function Ur(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function zr(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function Xr(t,e){const i=t.childNodes;for(let n=0;;++n){const r=i[n],s=e[n];if(!r&&!s)break;r!==s&&(r?s?t.insertBefore(s,r):(t.removeChild(r),--n):t.appendChild(s))}}class Vr extends st{constructor(t,e,i,n,r,s){super(t,e,s),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=r}getImage(){return this.image_}setImage(t){this.image_=t,this.state=J,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=Q,this.unlistenImage_(),this.image_=function(){const t=Dr(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=J:this.state=tt,this.unlistenImage_(),this.changed()}load(){this.state==Q&&(this.state=H,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==H&&(this.state=$,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=Or(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}class Wr{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]<t)return!1;let i=e-3;for(;i>0&&this.points_[i+2]>t;)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const r=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,r),this.initialVelocity_=Math.sqrt(r*r+s*s)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}}const Zr=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,Yr=/^([a-z]*)$|^hsla?\(.*\)$/i;function Kr(t){return"string"==typeof t?t:Qr(t)}function qr(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}const Hr=function(){const t={};let e=0;return function(i){let n;if(t.hasOwnProperty(i))n=t[i];else{if(e>=1024){let i=0;for(const n in t)0==(3&i++)&&(delete t[n],--e)}n=function(t){let e,i,n,r,s;Yr.exec(t)&&(t=qr(t));if(Zr.exec(t)){const o=t.length-1;let a;a=o<=4?1:2;const l=4===o||8===o;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),r=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(r=(r<<4)+r)),s=[e,i,n,r/255]}else t.startsWith("rgba(")?(s=t.slice(5,-1).split(",").map(Number),Jr(s)):t.startsWith("rgb(")?(s=t.slice(4,-1).split(",").map(Number),s.push(1),Jr(s)):at(!1,14);return s}(i),t[i]=n,++e}return n}}();function $r(t){return Array.isArray(t)?t:Hr(t)}function Jr(t){return t[0]=ii(t[0]+.5|0,0,255),t[1]=ii(t[1]+.5|0,0,255),t[2]=ii(t[2]+.5|0,0,255),t[3]=ii(t[3],0,1),t}function Qr(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);return"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}function ts(t){return Yr.test(t)&&(t=qr(t)),Zr.test(t)||t.startsWith("rgba(")||t.startsWith("rgb(")}class es{constructor(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=is(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const r=is(t,e,i);this.cache_[r]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function is(t,e,i){return e+":"+t+":"+(i?Kr(i):"null")}const ns=new es;var rs="opacity",ss="visible",os="extent",as="zIndex",ls="maxResolution",hs="minResolution",cs="maxZoom",us="minZoom",ds="source",gs="map";class fs extends V{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[rs]=void 0!==t.opacity?t.opacity:1,at("number"==typeof e[rs],64),e[ss]=void 0===t.visible||t.visible,e[as]=t.zIndex,e[ls]=void 0!==t.maxResolution?t.maxResolution:1/0,e[hs]=void 0!==t.minResolution?t.minResolution:0,e[us]=void 0!==t.minZoom?t.minZoom:-1/0,e[cs]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=ii(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return B()}getLayerStatesArray(t){return B()}getExtent(){return this.get(os)}getMaxResolution(){return this.get(ls)}getMinResolution(){return this.get(hs)}getMinZoom(){return this.get(us)}getMaxZoom(){return this.get(cs)}getOpacity(){return this.get(rs)}getSourceState(){return B()}getVisible(){return this.get(ss)}getZIndex(){return this.get(as)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(os,t)}setMaxResolution(t){this.set(ls,t)}setMinResolution(t){this.set(hs,t)}setMaxZoom(t){this.set(cs,t)}setMinZoom(t){this.set(us,t)}setOpacity(t){at("number"==typeof t,64),this.set(rs,t)}setVisible(t){this.set(ss,t)}setZIndex(t){this.set(as,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}}var ps="prerender",ms="postrender",_s="precompose",ys="postcompose",xs="rendercomplete";class vs extends fs{constructor(t){const e=Object.assign({},t);delete e.source,super(e),this.on,this.once,this.un,this.mapPrecomposeKey_=null,this.mapRenderKey_=null,this.sourceChangeKey_=null,this.renderer_=null,this.rendered=!1,t.render&&(this.render=t.render),t.map&&this.setMap(t.map),this.addChangeListener(ds,this.handleSourcePropertyChange_);const i=t.source?t.source:null;this.setSource(i)}getLayersArray(t){return(t=t||[]).push(this),t}getLayerStatesArray(t){return(t=t||[]).push(this.getLayerState()),t}getSource(){return this.get(ds)||null}getRenderSource(){return this.getSource()}getSourceState(){const t=this.getSource();return t?t.getState():"undefined"}handleSourceChange_(){this.changed()}handleSourcePropertyChange_(){this.sourceChangeKey_&&(G(this.sourceChangeKey_),this.sourceChangeKey_=null);const t=this.getSource();t&&(this.sourceChangeKey_=N(t,S,this.handleSourceChange_,this)),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):new Promise((t=>t([])))}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}render(t,e){const i=this.getRenderer();if(i.prepareFrame(t))return this.rendered=!0,i.renderFrame(t,e)}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(gs,t)}getMapInternal(){return this.get(gs)}setMap(t){this.mapPrecomposeKey_&&(G(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(G(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=N(t,_s,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);at(!e.some((function(t){return t.layer===i.layer})),67),e.push(i)}),this),this.mapRenderKey_=N(this,S,t.render,t),this.changed())}setSource(t){this.set(ds,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}}function Ss(t,e){if(!t.visible)return!1;const i=e.resolution;if(i<t.minResolution||i>=t.maxResolution)return!1;const n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}class ws extends s{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){B()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Ft(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Mt(n,i)}forEachFeatureAtCoordinate(t,e,i,n,r,s,o,a){let l;const h=e.viewState;function c(t,e,i,n){return r.call(s,e,t?i:null,n)}const u=h.projection,d=Pi(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&n){const t=Se(u.getExtent());g.push([-t,0],[t,0])}const f=e.layerStatesArray,p=f.length,m=[],_=[];for(let n=0;n<g.length;n++)for(let r=p-1;r>=0;--r){const s=f[r],u=s.layer;if(u.hasRenderer()&&Ss(s,h)&&o.call(a,u)){const r=u.getRenderer(),o=u.getSource();if(r&&o){const a=o.getWrapX()?d:t,h=c.bind(null,s.managed);_[0]=a[0]+g[n][0],_[1]=a[1]+g[n][1],l=r.forEachFeatureAtCoordinate(_,e,i,h,m)}if(l)return l}}if(0===m.length)return;const y=1/m.length;return m.forEach(((t,e)=>t.distanceSq+=e*y)),m.sort(((t,e)=>t.distanceSq-e.distanceSq)),m.some((t=>l=t.callback(t.feature,t.layer,t.geometry))),l}hasFeatureAtCoordinate(t,e,i,n,r,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,n,g,this,r,s)}getMap(){return this.map_}renderFrame(t){B()}scheduleExpireIconCache(t){ns.canExpireCache()&&t.postRenderFunctions.push(Ts)}}function Ts(t,e){ns.expire()}class Es extends i{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}}const Cs="ol-hidden",bs="ol-selectable",Rs="ol-unselectable",Ps="ol-unsupported",Is="ol-control",Ls="ol-collapsed",Fs=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),Ms=["style","variant","weight","size","lineHeight","family"],As=function(t){const e=t.match(Fs);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,n=Ms.length;t<n;++t){const n=e[t+1];void 0!==n&&(i[Ms[t]]=n)}return i.families=i.family.split(/,\s?/),i},Os="10px sans-serif",Ns="#000",Ds="round",Gs=[],ks="round",js=10,Bs="#000",Us="center",zs="middle",Xs=[0,0,0,0],Vs=new V;let Ws,Zs=null;const Ys={},Ks=function(){const t="32px ",e=["monospace","serif"],i=e.length,n="wmytzilWMYTZIL@#/&?$%10";let r,s;function o(r,o,a){let l=!0;for(let h=0;h<i;++h){const i=e[h];if(s=$s(r+" "+o+" "+t+i,n),a!=i){const e=$s(r+" "+o+" "+t+a+","+i,n);l=l&&e!=s}}return!!l}function a(){let t=!0;const e=Vs.getKeys();for(let i=0,n=e.length;i<n;++i){const n=e[i];Vs.get(n)<100&&(o.apply(this,n.split("\n"))?(y(Ys),Zs=null,Ws=void 0,Vs.set(n,100)):(Vs.set(n,Vs.get(n)+1,!0),t=!1))}t&&(clearInterval(r),r=void 0)}return function(t){const e=As(t);if(!e)return;const i=e.families;for(let t=0,n=i.length;t<n;++t){const n=i[t],s=e.style+"\n"+e.weight+"\n"+n;void 0===Vs.get(s)&&(Vs.set(s,100,!0),o(e.style,e.weight,n)||(Vs.set(s,0,!0),void 0===r&&(r=setInterval(a,32))))}}}(),qs=function(){let t;return function(e){let i=Ys[e];if(null==i){if(_t){const t=As(e),n=Hs(e,"Žg");i=(isNaN(Number(t.lineHeight))?1.2:Number(t.lineHeight))*(n.actualBoundingBoxAscent+n.actualBoundingBoxDescent)}else t||(t=document.createElement("div"),t.innerHTML="M",t.style.minHeight="0",t.style.maxHeight="none",t.style.height="auto",t.style.padding="0",t.style.border="none",t.style.position="absolute",t.style.display="block",t.style.left="-99999px"),t.style.font=e,document.body.appendChild(t),i=t.offsetHeight,document.body.removeChild(t);Ys[e]=i}return i}}();function Hs(t,e){return Zs||(Zs=Dr(1,1)),t!=Ws&&(Zs.font=t,Ws=Zs.font),Zs.measureText(e)}function $s(t,e){return Hs(t,e).width}function Js(t,e,i){if(e in i)return i[e];const n=e.split("\n").reduce(((e,i)=>Math.max(e,$s(t,i))),0);return i[e]=n,n}function Qs(t,e){const i=[],n=[],r=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),r.push(o),o=0,a+=l;continue}const d=e[h+1]||t.font,g=$s(d,u);i.push(g),o+=g;const f=qs(d);n.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:i,heights:n,lineWidths:r}}function to(t,e,i,n,r,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.setTransform.apply(t,e),n.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,n=i.length;t<n;t+=2)Array.isArray(i[t+1])?e[i[t]].apply(e,i[t+1]):e[i[t]]=i[t+1]}(n,t)):c[0]<0||c[1]<0?(t.translate(l,h),t.scale(c[0],c[1]),t.drawImage(n,r,s,o,a,0,0,o,a)):t.drawImage(n,r,s,o,a,l,h,o*c[0],a*c[1]),t.restore()}class eo extends ws{constructor(t){super(t),this.fontChangeListenerKey_=N(Vs,r,t.redrawText.bind(t)),this.element_=document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className="ol-unselectable ol-layers";const i=t.getViewport();i.insertBefore(this.element_,i.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(t,e){const i=this.getMap();if(i.hasListener(t)){const n=new Es(t,void 0,e);i.dispatchEvent(n)}}disposeInternal(){G(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent(_s,t);const e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),i=t.viewState;this.children_.length=0;const n=[];let r=null;for(let s=0,o=e.length;s<o;++s){const o=e[s];t.layerIndex=s;const a=o.layer,l=a.getSourceState();if(!Ss(o,i)||"ready"!=l&&"undefined"!=l){a.unrender();continue}const h=a.render(t,r);h&&(h!==r&&(this.children_.push(h),r=h),"getDeclutter"in a&&n.push(a))}for(let e=n.length-1;e>=0;--e)n[e].renderDeclutter(t);Xr(this.element_,this.children_),this.dispatchRenderEvent(ys,t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}}class io extends i{constructor(t,e){super(t),this.layer=e}}const no="layers";class ro extends fs{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(no,this.handleLayersChanged_),i?Array.isArray(i)?i=new q(i.slice(),{unique:!0}):at("function"==typeof i.getArray,43):i=new q(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(G),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(N(t,W,this.handleLayersAdd_,this),N(t,Z,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(G);y(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t<i;t++){const i=e[t];this.registerLayerListeners_(i),this.dispatchEvent(new io("addlayer",i))}this.changed()}registerLayerListeners_(t){const e=[N(t,r,this.handleLayerChange_,this),N(t,S,this.handleLayerChange_,this)];t instanceof ro&&e.push(N(t,"addlayer",this.handleLayerGroupAdd_,this),N(t,"removelayer",this.handleLayerGroupRemove_,this)),this.listenerKeys_[z(t)]=e}handleLayerGroupAdd_(t){this.dispatchEvent(new io("addlayer",t.layer))}handleLayerGroupRemove_(t){this.dispatchEvent(new io("removelayer",t.layer))}handleLayersAdd_(t){const e=t.element;this.registerLayerListeners_(e),this.dispatchEvent(new io("addlayer",e)),this.changed()}handleLayersRemove_(t){const e=t.element,i=z(e);this.listenerKeys_[i].forEach(G),delete this.listenerKeys_[i],this.dispatchEvent(new io("removelayer",e)),this.changed()}getLayers(){return this.get(no)}setLayers(t){const e=this.getLayers();if(e){const t=e.getArray();for(let e=0,i=t.length;e<i;++e)this.dispatchEvent(new io("removelayer",t[e]))}this.set(no,t)}getLayersArray(t){return t=void 0!==t?t:[],this.getLayers().forEach((function(e){e.getLayersArray(t)})),t}getLayerStatesArray(t){const e=void 0!==t?t:[],i=e.length;this.getLayers().forEach((function(t){t.getLayerStatesArray(e)}));const n=this.getLayerState();let r=n.zIndex;t||void 0!==n.zIndex||(r=0);for(let t=i,s=e.length;t<s;t++){const i=e[t];i.opacity*=n.opacity,i.visible=i.visible&&n.visible,i.maxResolution=Math.min(i.maxResolution,n.maxResolution),i.minResolution=Math.max(i.minResolution,n.minResolution),i.minZoom=Math.max(i.minZoom,n.minZoom),i.maxZoom=Math.min(i.maxZoom,n.maxZoom),void 0!==n.extent&&(void 0!==i.extent?i.extent=ye(i.extent,n.extent):i.extent=n.extent),void 0===i.zIndex&&(i.zIndex=r)}return e}getSourceState(){return"ready"}}class so extends i{constructor(t,e,i){super(t),this.map=e,this.frameState=void 0!==i?i:null}}class oo extends so{constructor(t,e,i,n,r,s){super(t,e,r),this.originalEvent=i,this.pixel_=null,this.coordinate_=null,this.dragging=void 0!==n&&n,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(t){this.pixel_=t}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(t){this.coordinate_=t}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}}var ao={SINGLECLICK:"singleclick",CLICK:E,DBLCLICK:C,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},lo="pointermove",ho="pointerdown",co="pointerup",uo="pointerout";class go extends v{constructor(t,e){super(t),this.map_=t,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=void 0===e?1:e,this.down_=null;const i=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=i,this.pointerdownListenerKey_=N(i,ho,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=N(i,lo,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(A,this.boundHandleTouchMove_,!!xt&&{passive:!1})}emulateClick_(t){let e=new oo(ao.CLICK,this.map_,t);this.dispatchEvent(e),void 0!==this.clickTimeoutId_?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,e=new oo(ao.DBLCLICK,this.map_,t),this.dispatchEvent(e)):this.clickTimeoutId_=setTimeout(function(){this.clickTimeoutId_=void 0;const e=new oo(ao.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}.bind(this),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==ao.POINTERUP||e.type==ao.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=ao.POINTERDOWN&&e.type!=ao.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new oo(ao.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(G),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new oo(ao.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.down_={};for(const e in t){const i=t[e];this.down_[e]="function"==typeof i?p:i}if(0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(N(t,ao.POINTERMOVE,this.handlePointerMove_,this),N(t,ao.POINTERUP,this.handlePointerUp_,this),N(this.element_,ao.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(N(this.element_.getRootNode(),ao.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new oo(ao.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new oo(ao.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(G(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(A,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(G(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(G),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}}var fo="postrender",po="movestart",mo="moveend",_o="loadstart",yo="loadend",xo="layergroup",vo="size",So="target",wo="view";const To=1/0;class Eo{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,y(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){at(!(this.keyFunction_(t)in this.queuedElements_),31);const e=this.priorityFunction_(t);return e!=To&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,r=e[t],s=i[t],o=t;for(;t<n>>1;){const r=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=s<n&&i[s]<i[r]?s:r;e[t]=e[o],i[t]=i[o],t=o}e[t]=r,i[t]=s,this.siftDown_(o,t)}siftDown_(t,e){const i=this.elements_,n=this.priorities_,r=i[e],s=n[e];for(;e>t;){const t=this.getParentIndex_(e);if(!(n[t]>s))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=r,n[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const r=e.length;let s,o,a;for(o=0;o<r;++o)s=e[o],a=t(s),a==To?delete this.queuedElements_[this.keyFunction_(s)]:(i[n]=a,e[n++]=s);e.length=n,i.length=n,this.heapify_()}}class Co extends Eo{constructor(t,e){super((function(e){return t.apply(null,e)}),(function(t){return t[0].getKey()})),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=e,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(t){const e=super.enqueue(t);if(e){t[0].addEventListener(S,this.boundHandleTileChange_)}return e}getTilesLoading(){return this.tilesLoading_}handleTileChange(t){const e=t.target,i=e.getState();if(i===J||i===Q||i===tt){i!==Q&&e.removeEventListener(S,this.boundHandleTileChange_);const t=e.getKey();t in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[t],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(t,e){let i,n,r,s=0;for(;this.tilesLoading_<t&&s<e&&this.getCount()>0;)n=this.dequeue()[0],r=n.getKey(),i=n.getState(),i!==H||r in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[r]=!0,++this.tilesLoading_,++s,n.load())}}function bo(t,e,i,n,r){if(!t||!(i in t.wantedTiles))return To;if(!t.wantedTiles[i][e.getKey()])return To;const s=t.viewState.center,o=n[0]-s[0],a=n[1]-s[1];return 65536*Math.log(r)+Math.sqrt(o*o+a*a)/r}var Ro=0,Po=1,Io={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};const Lo=256;function Fo(t,e,i){return function(n,r,s,o,a){if(!n)return;if(!r&&!e)return n;const l=e?0:s[0]*r,h=e?0:s[1]*r,c=a?a[0]:0,u=a?a[1]:0;let d=t[0]+l/2+c,g=t[2]-l/2+c,f=t[1]+h/2+u,p=t[3]-h/2+u;d>g&&(d=(g+d)/2,g=d),f>p&&(f=(p+f)/2,p=f);let m=ii(n[0],d,g),_=ii(n[1],f,p);if(o&&i&&r){const t=30*r;m+=-t*Math.log(1+Math.max(0,d-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-g)/t),_+=-t*Math.log(1+Math.max(0,f-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-p)/t)}return[m,_]}}function Mo(t){return t}function Ao(t,e,i,n){const r=Se(e)/i[0],s=_e(e)/i[1];return n?Math.min(t,Math.max(r,s)):Math.min(t,Math.min(r,s))}function Oo(t,e,i){let n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(n=Math.max(n,i),n/=Math.log(1+50*Math.max(0,i/t-1))/50+1),ii(n,i/2,2*e)}function No(t,e,i,n){return e=void 0===e||e,function(r,s,o,a){if(void 0!==r){const h=t[0],c=t[t.length-1],u=i?Ao(h,i,o,n):h;if(a)return e?Oo(r,u,c):ii(r,c,u);const d=Math.min(u,r),g=Math.floor(l(t,d,s));return t[g]>u&&g<t.length-1?t[g+1]:t[g]}}}function Do(t,e,i,n,r,s){return n=void 0===n||n,i=void 0!==i?i:0,function(o,a,l,h){if(void 0!==o){const c=r?Ao(e,r,l,s):e;if(h)return n?Oo(o,c,i):ii(o,i,c);const u=1e-9,d=Math.ceil(Math.log(e/c)/Math.log(t)-u),g=-a*(.5-u)+.5,f=Math.min(c,o),p=Math.floor(Math.log(e/f)/Math.log(t)+g),m=Math.max(d,p);return ii(e/Math.pow(t,m),i,c)}}}function Go(t,e,i,n,r){return i=void 0===i||i,function(s,o,a,l){if(void 0!==s){const o=n?Ao(t,n,a,r):t;return i&&l?Oo(s,o,e):ii(s,e,o)}}}function ko(t){if(void 0!==t)return 0}function jo(t){if(void 0!==t)return t}function Bo(t){const e=2*Math.PI/t;return function(t,i){return i?t:void 0!==t?t=Math.floor(t/e+.5)*e:void 0}}function Uo(t){return t=t||ai(5),function(e,i){return i?e:void 0!==e?Math.abs(e)<=t?0:e:void 0}}class zo extends V{constructor(t){super(),this.on,this.once,this.un,t=Object.assign({},t),this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.projection_=Wi(t.projection,"EPSG:3857"),this.viewportSize_=[100,100],this.targetCenter_=null,this.targetResolution_,this.targetRotation_,this.nextCenter_=null,this.nextResolution_,this.nextRotation_,this.cancelAnchor_=void 0,t.projection&&Di(),t.center&&(t.center=rn(t.center,this.projection_)),t.extent&&(t.extent=on(t.extent,this.projection_)),this.applyOptions_(t)}applyOptions_(t){const e=Object.assign({},t);for(const t in Io)delete e[t];this.setProperties(e,!0);const i=Wo(t);this.maxResolution_=i.maxResolution,this.minResolution_=i.minResolution,this.zoomFactor_=i.zoomFactor,this.resolutions_=t.resolutions,this.padding_=t.padding,this.minZoom_=i.minZoom;const n=Vo(t),r=i.constraint,s=Zo(t);this.constraints_={center:n,resolution:r,rotation:s},this.setRotation(void 0!==t.rotation?t.rotation:0),this.setCenterInternal(void 0!==t.center?t.center:null),void 0!==t.resolution?this.setResolution(t.resolution):void 0!==t.zoom&&this.setZoom(t.zoom)}get padding(){return this.padding_}set padding(t){let e=this.padding_;this.padding_=t;const i=this.getCenter();if(i){const n=t||[0,0,0,0];e=e||[0,0,0,0];const r=this.getResolution(),s=r/2*(n[3]-e[3]+e[1]-n[1]),o=r/2*(n[0]-e[0]+e[2]-n[2]);this.setCenterInternal([i[0]+s,i[1]-o])}}getUpdatedOptions_(t){const e=this.getProperties();return void 0!==e.resolution?e.resolution=this.getResolution():e.zoom=this.getZoom(),e.center=this.getCenterInternal(),e.rotation=this.getRotation(),Object.assign({},e,t)}animate(t){this.isDef()&&!this.getAnimating()&&this.resolveConstraints(0);const e=new Array(arguments.length);for(let t=0;t<e.length;++t){let i=arguments[t];i.center&&(i=Object.assign({},i),i.center=rn(i.center,this.getProjection())),i.anchor&&(i=Object.assign({},i),i.anchor=rn(i.anchor,this.getProjection())),e[t]=i}this.animateInternal.apply(this,e)}animateInternal(t){let e,i=arguments.length;i>1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n<i&&!this.isDef();++n){const t=arguments[n];t.center&&this.setCenterInternal(t.center),void 0!==t.zoom?this.setZoom(t.zoom):t.resolution&&this.setResolution(t.resolution),void 0!==t.rotation&&this.setRotation(t.rotation)}if(n===i)return void(e&&Xo(e,!0));let r=Date.now(),s=this.targetCenter_.slice(),o=this.targetResolution_,a=this.targetRotation_;const l=[];for(;n<i;++n){const t=arguments[n],i={start:r,complete:!1,anchor:t.anchor,duration:void 0!==t.duration?t.duration:1e3,easing:t.easing||nt,callback:e};if(t.center&&(i.sourceCenter=s,i.targetCenter=t.center.slice(),s=i.targetCenter),void 0!==t.zoom?(i.sourceResolution=o,i.targetResolution=this.getResolutionForZoom(t.zoom),o=i.targetResolution):t.resolution&&(i.sourceResolution=o,i.targetResolution=t.resolution,o=i.targetResolution),void 0!==t.rotation){i.sourceRotation=a;const e=li(t.rotation-a+Math.PI,2*Math.PI)-Math.PI;i.targetRotation=a+e,a=i.targetRotation}Yo(i)?i.complete=!0:r+=i.duration,l.push(i)}this.animations_.push(l),this.setHint(Ro,1),this.updateAnimations_()}getAnimating(){return this.hints_[Ro]>0}getInteracting(){return this.hints_[Po]>0}cancelAnimations(){let t;this.setHint(Ro,-this.hints_[Ro]);for(let e=0,i=this.animations_.length;e<i;++e){const i=this.animations_[e];if(i[0].callback&&Xo(i[0].callback,!1),!t)for(let e=0,n=i.length;e<n;++e){const n=i[e];if(!n.complete){t=n.anchor;break}}}this.animations_.length=0,this.cancelAnchor_=t,this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN}updateAnimations_(){if(void 0!==this.updateAnimationKey_&&(cancelAnimationFrame(this.updateAnimationKey_),this.updateAnimationKey_=void 0),!this.getAnimating())return;const t=Date.now();let e=!1;for(let i=this.animations_.length-1;i>=0;--i){const n=this.animations_[i];let r=!0;for(let i=0,s=n.length;i<s;++i){const s=n[i];if(s.complete)continue;const o=t-s.start;let a=s.duration>0?o/s.duration:1;a>=1?(s.complete=!0,a=1):r=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],n=s.targetCenter[1];this.nextCenter_=s.targetCenter;const r=t+l*(i-t),o=e+l*(n-e);this.targetCenter_=[r,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?li(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(r){this.animations_[i]=null,this.setHint(Ro,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&Xo(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],wi(i,t-this.getRotation()),mi(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),r=this.getResolution();if(void 0!==n&&void 0!==r){i=[e[0]-t*(e[0]-n[0])/r,e[1]-t*(e[1]-n[1])/r]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?nn(t,this.getProjection()):t}getCenterInternal(){return this.get(Io.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return sn(this.calculateExtentInternal(t),this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();at(e,1);const i=this.getResolution();at(void 0!==i,2);const n=this.getRotation();return at(void 0!==n,3),pe(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(Io.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(on(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=Se(t)/e[0],n=_e(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*n)}}getRotation(){return this.get(Io.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(i/n)/e;return function(t){return Math.log(i/t)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const r=this.padding_;if(r){const t=this.getViewportSizeMinusPadding_();n=Ko(n,this.getViewportSize_(),[t[0]/2+r[3],t[1]/2+r[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const r=l(this.resolutions_,t,1);n=r,e=this.resolutions_[r],i=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=ii(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,ii(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(at(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)){at(!Te(t),25);i=gr(on(t,this.getProjection()))}else if("Circle"===t.getType()){const e=on(t.getExtent(),this.getProjection());i=gr(e),i.rotate(this.getRotation(),ge(e))}else{const e=en();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),r=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=r.length;t<e;t+=s){const e=r[t]*i-r[t+1]*n,s=r[t]*n+r[t+1]*i;o=Math.min(o,e),a=Math.min(a,s),l=Math.max(l,e),h=Math.max(h,s)}return[o,a,l,h]}fitInternal(t,e){let i=(e=e||{}).size;i||(i=this.getViewportSizeMinusPadding_());const n=void 0!==e.padding?e.padding:[0,0,0,0],r=void 0!==e.nearest&&e.nearest;let s;s=void 0!==e.minResolution?e.minResolution:void 0!==e.maxZoom?this.getResolutionForZoom(e.maxZoom):0;const o=this.rotatedExtentForGeometry(t);let a=this.getResolutionForExtentInternal(o,[i[0]-n[1]-n[3],i[1]-n[0]-n[2]]);a=isNaN(a)?s:Math.max(a,s),a=this.getConstrainedResolution(a,r?0:1);const l=this.getRotation(),h=Math.sin(l),c=Math.cos(l),u=ge(o);u[0]+=(n[1]-n[3])/2*a,u[1]+=(n[0]-n[2])/2*a;const d=u[0]*c-u[1]*h,g=u[1]*c+u[0]*h,f=this.getConstrainedCenter([d,g],a),m=e.callback?e.callback:p;void 0!==e.duration?this.animateInternal({resolution:a,center:f,duration:e.duration,easing:e.easing},m):(this.targetResolution_=a,this.targetCenter_=f,this.applyTargetState_(!1,!0),Xo(m,!0))}centerOn(t,e,i){this.centerOnInternal(rn(t,this.getProjection()),e,i)}centerOnInternal(t,e,i){this.setCenterInternal(Ko(t,e,i,this.getResolution(),this.getRotation()))}calculateCenterShift(t,e,i,n){let r;const s=this.padding_;if(s&&t){const o=this.getViewportSizeMinusPadding_(-i),a=Ko(t,n,[o[0]/2+s[3],o[1]/2+s[0]],e,i);r=[t[0]-a[0],t[1]-a[1]]}return r}isDef(){return!!this.getCenterInternal()&&void 0!==this.getResolution()}adjustCenter(t){const e=nn(this.targetCenter_,this.getProjection());this.setCenter([e[0]+t[0],e[1]+t[1]])}adjustCenterInternal(t){const e=this.targetCenter_;this.setCenterInternal([e[0]+t[0],e[1]+t[1]])}adjustResolution(t,e){e=e&&rn(e,this.getProjection()),this.adjustResolutionInternal(t,e)}adjustResolutionInternal(t,e){const i=this.getAnimating()||this.getInteracting(),n=this.getViewportSize_(this.getRotation()),r=this.constraints_.resolution(this.targetResolution_*t,0,n,i);e&&(this.targetCenter_=this.calculateCenterZoom(r,e)),this.targetResolution_*=t,this.applyTargetState_()}adjustZoom(t,e){this.adjustResolution(Math.pow(this.zoomFactor_,-t),e)}adjustRotation(t,e){e&&(e=rn(e,this.getProjection())),this.adjustRotationInternal(t,e)}adjustRotationInternal(t,e){const i=this.getAnimating()||this.getInteracting(),n=this.constraints_.rotation(this.targetRotation_+t,i);e&&(this.targetCenter_=this.calculateCenterRotate(n,e)),this.targetRotation_+=t,this.applyTargetState_()}setCenter(t){this.setCenterInternal(t?rn(t,this.getProjection()):t)}setCenterInternal(t){this.targetCenter_=t,this.applyTargetState_()}setHint(t,e){return this.hints_[t]+=e,this.changed(),this.hints_[t]}setResolution(t){this.targetResolution_=t,this.applyTargetState_()}setRotation(t){this.targetRotation_=t,this.applyTargetState_()}setZoom(t){this.setResolution(this.getResolutionForZoom(t))}applyTargetState_(t,e){const i=this.getAnimating()||this.getInteracting()||e,n=this.constraints_.rotation(this.targetRotation_,i),r=this.getViewportSize_(n),s=this.constraints_.resolution(this.targetResolution_,0,r,i),o=this.constraints_.center(this.targetCenter_,s,r,i,this.calculateCenterShift(this.targetCenter_,s,n,r));this.get(Io.ROTATION)!==n&&this.set(Io.ROTATION,n),this.get(Io.RESOLUTION)!==s&&(this.set(Io.RESOLUTION,s),this.set("zoom",this.getZoom(),!0)),o&&this.get(Io.CENTER)&&Si(this.get(Io.CENTER),o)||this.set(Io.CENTER,o),this.getAnimating()&&!t&&this.cancelAnimations(),this.cancelAnchor_=void 0}resolveConstraints(t,e,i){t=void 0!==t?t:200;const n=e||0,r=this.constraints_.rotation(this.targetRotation_),s=this.getViewportSize_(r),o=this.constraints_.resolution(this.targetResolution_,n,s),a=this.constraints_.center(this.targetCenter_,o,s,!1,this.calculateCenterShift(this.targetCenter_,o,r,s));if(0===t&&!this.cancelAnchor_)return this.targetResolution_=o,this.targetRotation_=r,this.targetCenter_=a,void this.applyTargetState_();i=i||(0===t?this.cancelAnchor_:void 0),this.cancelAnchor_=void 0,this.getResolution()===o&&this.getRotation()===r&&this.getCenterInternal()&&Si(this.getCenterInternal(),a)||(this.getAnimating()&&this.cancelAnimations(),this.animateInternal({rotation:r,center:a,resolution:o,duration:t,easing:it,anchor:i}))}beginInteraction(){this.resolveConstraints(0),this.setHint(Po,1)}endInteraction(t,e,i){i=i&&rn(i,this.getProjection()),this.endInteractionInternal(t,e,i)}endInteractionInternal(t,e,i){this.setHint(Po,-1),this.resolveConstraints(t,e,i)}getConstrainedCenter(t,e){const i=this.getViewportSize_(this.getRotation());return this.constraints_.center(t,e||this.getResolution(),i)}getConstrainedZoom(t,e){const i=this.getResolutionForZoom(t);return this.getZoomForResolution(this.getConstrainedResolution(i,e))}getConstrainedResolution(t,e){e=e||0;const i=this.getViewportSize_(this.getRotation());return this.constraints_.resolution(t,e,i)}}function Xo(t,e){setTimeout((function(){t(e)}),0)}function Vo(t){if(void 0!==t.extent){const e=void 0===t.smoothExtentConstraint||t.smoothExtentConstraint;return Fo(t.extent,t.constrainOnlyCenter,e)}const e=Wi(t.projection,"EPSG:3857");if(!0!==t.multiWorld&&e.isGlobal()){const t=e.getExtent().slice();return t[0]=-1/0,t[2]=1/0,Fo(t,!1,!1)}return Mo}function Wo(t){let e,i,n;let r=void 0!==t.minZoom?t.minZoom:0,s=void 0!==t.maxZoom?t.maxZoom:28;const o=void 0!==t.zoomFactor?t.zoomFactor:2,a=void 0!==t.multiWorld&&t.multiWorld,l=void 0===t.smoothResolutionConstraint||t.smoothResolutionConstraint,h=void 0!==t.showFullExtent&&t.showFullExtent,c=Wi(t.projection,"EPSG:3857"),u=c.getExtent();let d=t.constrainOnlyCenter,g=t.extent;if(a||g||!c.isGlobal()||(d=!1,g=u),void 0!==t.resolutions){const o=t.resolutions;i=o[r],n=void 0!==o[s]?o[s]:o[o.length-1],e=t.constrainResolution?No(o,l,!d&&g,h):Go(i,n,l,!d&&g,h)}else{const a=(u?Math.max(Se(u),_e(u)):360*Me.degrees/c.getMetersPerUnit())/Lo/Math.pow(2,0),f=a/Math.pow(2,28);i=t.maxResolution,void 0!==i?r=0:i=a/Math.pow(o,r),n=t.minResolution,void 0===n&&(n=void 0!==t.maxZoom?void 0!==t.maxResolution?i/Math.pow(o,s):a/Math.pow(o,s):f),s=r+Math.floor(Math.log(i/n)/Math.log(o)),n=i/Math.pow(o,s-r),e=t.constrainResolution?Do(o,i,n,l,!d&&g,h):Go(i,n,l,!d&&g,h)}return{constraint:e,maxResolution:i,minResolution:n,minZoom:r,zoomFactor:o}}function Zo(t){if(void 0===t.enableRotation||t.enableRotation){const e=t.constrainRotation;return void 0===e||!0===e?Uo():!1===e?jo:"number"==typeof e?Bo(e):jo}return ko}function Yo(t){return!(t.sourceCenter&&t.targetCenter&&!Si(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}function Ko(t,e,i,n,r){const s=Math.cos(-r);let o=Math.sin(-r),a=t[0]*s-t[1]*o,l=t[1]*s+t[0]*o;a+=(e[0]/2-i[0])*n,l+=(i[1]-e[1]/2)*n,o=-o;return[a*s-l*o,l*s+a*o]}class qo extends V{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){Ur(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&Ur(this.element);for(let t=0,e=this.listenerKeys.length;t<e;++t)G(this.listenerKeys[t]);if(this.listenerKeys.length=0,this.map_=t,t){(this.target_?this.target_:t.getOverlayContainerStopEvent()).appendChild(this.element),this.render!==p&&this.listenerKeys.push(N(t,fo,this.render,this)),t.render()}}render(t){}setTarget(t){this.target_="string"==typeof t?document.getElementById(t):t}}class Ho extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.ulElement_=document.createElement("ul"),this.collapsed_=void 0===t.collapsed||t.collapsed,this.userCollapsed_=this.collapsed_,this.overrideCollapsible_=void 0!==t.collapsible,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1);const e=void 0!==t.className?t.className:"ol-attribution",i=void 0!==t.tipLabel?t.tipLabel:"Attributions",n=void 0!==t.expandClassName?t.expandClassName:e+"-expand",r=void 0!==t.collapseLabel?t.collapseLabel:"›",s=void 0!==t.collapseClassName?t.collapseClassName:e+"-collapse";"string"==typeof r?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r,this.collapseLabel_.className=s):this.collapseLabel_=r;const o=void 0!==t.label?t.label:"i";"string"==typeof o?(this.label_=document.createElement("span"),this.label_.textContent=o,this.label_.className=n):this.label_=o;const a=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_;this.toggleButton_=document.createElement("button"),this.toggleButton_.setAttribute("type","button"),this.toggleButton_.setAttribute("aria-expanded",String(!this.collapsed_)),this.toggleButton_.title=i,this.toggleButton_.appendChild(a),this.toggleButton_.addEventListener(E,this.handleClick_.bind(this),!1);const l=e+" "+"ol-unselectable "+Is+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=l,h.appendChild(this.toggleButton_),h.appendChild(this.ulElement_),this.renderedAttributions_=[],this.renderedVisible_=!0}collectSourceAttributions_(t){const e={},i=[];let n=!0;const r=t.layerStatesArray;for(let s=0,o=r.length;s<o;++s){const o=r[s];if(!Ss(o,t.viewState))continue;const a=o.layer.getSource();if(!a)continue;const l=a.getAttributions();if(!l)continue;const h=l(t);if(h)if(n=n&&!1!==a.getAttributionsCollapsible(),Array.isArray(h))for(let t=0,n=h.length;t<n;++t)h[t]in e||(i.push(h[t]),e[h[t]]=!0);else h in e||(i.push(h),e[h]=!0)}return this.overrideCollapsible_||this.setCollapsible(n),i}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!u(e,this.renderedAttributions_)){zr(this.ulElement_);for(let t=0,i=e.length;t<i;++t){const i=document.createElement("li");i.innerHTML=e[t],this.ulElement_.appendChild(i)}this.renderedAttributions_=e}}handleClick_(t){t.preventDefault(),this.handleToggle_(),this.userCollapsed_=this.collapsed_}handleToggle_(){this.element.classList.toggle(Ls),this.collapsed_?Br(this.collapseLabel_,this.label_):Br(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_,this.toggleButton_.setAttribute("aria-expanded",String(!this.collapsed_))}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),this.userCollapsed_&&this.handleToggle_())}setCollapsed(t){this.userCollapsed_=t,this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}render(t){this.updateElement_(t.frameState)}}class $o extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target});const e=void 0!==t.className?t.className:"ol-rotate",i=void 0!==t.label?t.label:"⇧",n=void 0!==t.compassClassName?t.compassClassName:"ol-compass";this.label_=null,"string"==typeof i?(this.label_=document.createElement("span"),this.label_.className=n,this.label_.textContent=i):(this.label_=i,this.label_.classList.add(n));const r=t.tipLabel?t.tipLabel:"Reset rotation",s=document.createElement("button");s.className=e+"-reset",s.setAttribute("type","button"),s.title=r,s.appendChild(this.label_),s.addEventListener(E,this.handleClick_.bind(this),!1);const o=e+" "+"ol-unselectable "+Is,a=this.element;a.className=o,a.appendChild(s),this.callResetNorth_=t.resetNorth?t.resetNorth:void 0,this.duration_=void 0!==t.duration?t.duration:250,this.autoHide_=void 0===t.autoHide||t.autoHide,this.rotation_=void 0,this.autoHide_&&this.element.classList.add(Cs)}handleClick_(t){t.preventDefault(),void 0!==this.callResetNorth_?this.callResetNorth_():this.resetNorth_()}resetNorth_(){const t=this.getMap().getView();if(!t)return;const e=t.getRotation();void 0!==e&&(this.duration_>0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:it}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(Cs);t||0!==i?t&&0!==i&&this.element.classList.remove(Cs):this.element.classList.add(Cs)}this.label_.style.transform=t}this.rotation_=i}}class Jo extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",r=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=n,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(E,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(E,this.handleClick_.bind(this,-i),!1);const u=e+" "+"ol-unselectable "+Is,d=this.element;d.className=u,d.appendChild(h),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const n=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:it})):e.setZoom(n)}}}function Qo(t){t=t||{};const e=new q;(void 0===t.zoom||t.zoom)&&e.push(new Jo(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new $o(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new Ho(t.attributionOptions)),e}var ta="active";class ea extends V{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(ta)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(ta,t)}setMap(t){this.map_=t}}function ia(t,e,i){const n=t.getCenterInternal();if(n){const r=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:rt,center:t.getConstrainedCenter(r)})}}function na(t,e,i,n){const r=t.getZoom();if(void 0===r)return;const s=t.getConstrainedZoom(r+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:it})}class ra extends ea{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==ao.DBLCLICK){const i=t.originalEvent,n=t.map,r=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;na(n.getView(),s,r,this.duration_),i.preventDefault(),e=!0}return!e}}class sa extends ea{constructor(t){super(t=t||{}),t.handleDownEvent&&(this.handleDownEvent=t.handleDownEvent),t.handleDragEvent&&(this.handleDragEvent=t.handleDragEvent),t.handleMoveEvent&&(this.handleMoveEvent=t.handleMoveEvent),t.handleUpEvent&&(this.handleUpEvent=t.handleUpEvent),t.stopDown&&(this.stopDown=t.stopDown),this.handlingDownUpSequence=!1,this.targetPointers=[]}getPointerCount(){return this.targetPointers.length}handleDownEvent(t){return!1}handleDragEvent(t){}handleEvent(t){if(!t.originalEvent)return!0;let e=!1;if(this.updateTrackedPointers_(t),this.handlingDownUpSequence){if(t.type==ao.POINTERDRAG)this.handleDragEvent(t),t.originalEvent.preventDefault();else if(t.type==ao.POINTERUP){const e=this.handleUpEvent(t);this.handlingDownUpSequence=e&&this.targetPointers.length>0}}else if(t.type==ao.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==ao.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}}function oa(t){const e=t.length;let i=0,n=0;for(let r=0;r<e;r++)i+=t[r].clientX,n+=t[r].clientY;return[i/e,n/e]}function aa(t){const e=arguments;return function(t){let i=!0;for(let n=0,r=e.length;n<r&&(i=i&&e[n](t),i);++n);return i}}const la=function(t){const e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},ha=function(t){const e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ca=function(t){const e=t.map.getTargetElement(),i=t.map.getOwnerDocument().activeElement;return e.contains(i)},ua=function(t){return!t.map.getTargetElement().hasAttribute("tabindex")||ca(t)},da=g,ga=function(t){const e=t.originalEvent;return 0==e.button&&!(ft&&pt&&e.ctrlKey)},fa=f,pa=function(t){return t.type==ao.SINGLECLICK},ma=function(t){const e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},_a=function(t){const e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},ya=function(t){const e=t.originalEvent,i=e.target.tagName;return"INPUT"!==i&&"SELECT"!==i&&"TEXTAREA"!==i&&!e.target.isContentEditable},xa=function(t){const e=t.originalEvent;return at(void 0!==e,56),"mouse"==e.pointerType},va=function(t){const e=t.originalEvent;return at(void 0!==e,56),e.isPrimary&&0===e.button};class Sa extends sa{constructor(t){super({stopDown:f}),t=t||{},this.kinetic_=t.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1;const e=t.condition?t.condition:aa(ma,va);this.condition_=t.onFocusOnly?aa(ua,e):e,this.noKinetic_=!1}handleDragEvent(t){this.panning_||(this.panning_=!0,this.getMap().getView().beginInteraction());const e=this.targetPointers,i=oa(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){const e=[this.lastCentroid[0]-i[0],i[1]-this.lastCentroid[1]],n=t.map.getView();Ti(e,n.getResolution()),wi(e,n.getRotation()),n.adjustCenterInternal(e)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length,t.originalEvent.preventDefault()}handleUpEvent(t){const e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){const t=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),r=i.getCenterInternal(),s=e.getPixelFromCoordinateInternal(r),o=e.getCoordinateFromPixelInternal([s[0]-t*Math.cos(n),s[1]-t*Math.sin(n)]);i.animateInternal({center:i.getConstrainedCenter(o),duration:500,easing:it})}return this.panning_&&(this.panning_=!1,i.endInteraction()),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0}handleDownEvent(t){if(this.targetPointers.length>0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}}class wa extends sa{constructor(t){t=t||{},super({stopDown:f}),this.condition_=t.condition?t.condition:ha,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!xa(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===ko)return;const n=e.getSize(),r=t.pixel,s=Math.atan2(n[1]/2-r[1],r[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!xa(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!xa(t))return!1;if(ga(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}}class Ta extends s{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new ur([i])}getGeometry(){return this.geometry_}}const Ea="boxstart",Ca="boxdrag",ba="boxend",Ra="boxcancel";class Pa extends i{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}class Ia extends sa{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new Ta(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:ga,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],r=i[1]-e[1];return n*n+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new Pa(Ca,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new Pa(e?ba:Ra,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Pa(Ea,t.coordinate,t)),!0)}onBoxEnd(t){}}class La extends Ia{constructor(t){super({condition:(t=t||{}).condition?t.condition:_a,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),n=e.getResolutionForExtentInternal(t),r=e.getResolution()/n;i=i.clone(),i.scale(r*r)}e.fitInternal(i,{duration:this.duration_,easing:it})}}var Fa=37,Ma=38,Aa=39,Oa=40;class Na extends ea{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return ma(t)&&ya(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==I){const i=t.originalEvent,n=i.keyCode;if(this.condition_(t)&&(n==Oa||n==Fa||n==Aa||n==Ma)){const r=t.map.getView(),s=r.getResolution()*this.pixelDelta_;let o=0,a=0;n==Oa?a=-s:n==Fa?o=-s:n==Aa?o=s:a=s;const l=[o,a];wi(l,r.getRotation()),ia(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}}class Da extends ea{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:ya,this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==I||t.type==L){const i=t.originalEvent,n=i.charCode;if(this.condition_(t)&&(n=="+".charCodeAt(0)||n=="-".charCodeAt(0))){const r=t.map,s=n=="+".charCodeAt(0)?this.delta_:-this.delta_;na(r.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}}class Ga extends ea{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:da;this.condition_=t.onFocusOnly?aa(ua,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==O)return!0;const e=t.map,i=t.originalEvent;let n;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==O&&(n=i.deltaY,ut&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(n/=mt),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(n*=40)),0===n)return!1;this.lastDelta_=n;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(n)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-n/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=n;const o=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-ii(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),na(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}}class ka extends sa{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=f),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],r=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=r;const s=t.map,o=s.getView();if(o.getConstraints().rotation===ko)return;const a=s.getViewport().getBoundingClientRect(),l=oa(this.targetPointers);l[0]-=a.left,l[1]-=a.top,this.anchor_=s.getCoordinateFromPixelInternal(l),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}class ja extends sa{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=f),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],r=i.clientX-n.clientX,s=i.clientY-n.clientY,o=Math.sqrt(r*r+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e);const h=a.getViewport().getBoundingClientRect(),c=oa(this.targetPointers);c[0]-=h.left,c[1]-=h.top,this.anchor_=a.getCoordinateFromPixelInternal(c),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}function Ba(t){t=t||{};const e=new q,i=new Wr(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new wa);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new ra({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new Sa({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new ka);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new ja({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new Na),e.push(new Da({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new Ga({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new La({duration:t.zoomDuration})),e}function Ua(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]+2*e,i[1]=t[1]+2*e,i}function za(t){return t[0]>0&&t[1]>0}function Xa(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function Va(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}function Wa(t){t instanceof vs?t.setMapInternal(null):t instanceof ro&&t.getLayers().forEach(Wa)}function Za(t,e){if(t instanceof vs)t.setMapInternal(e);else if(t instanceof ro){const i=t.getLayers().getArray();for(let t=0,n=i.length;t<n;++t)Za(i[t],e)}}class Ya extends V{constructor(t){super(),t=t||{},this.on,this.once,this.un;const e=function(t){let e=null;void 0!==t.keyboardEventTarget&&(e="string"==typeof t.keyboardEventTarget?document.getElementById(t.keyboardEventTarget):t.keyboardEventTarget);const i={},n=t.layers&&"function"==typeof t.layers.getLayers?t.layers:new ro({layers:t.layers});let r,s,o;i[xo]=n,i[So]=t.target,i[wo]=t.view instanceof zo?t.view:new zo,void 0!==t.controls&&(Array.isArray(t.controls)?r=new q(t.controls.slice()):(at("function"==typeof t.controls.getArray,47),r=t.controls));void 0!==t.interactions&&(Array.isArray(t.interactions)?s=new q(t.interactions.slice()):(at("function"==typeof t.interactions.getArray,48),s=t.interactions));void 0!==t.overlays?Array.isArray(t.overlays)?o=new q(t.overlays.slice()):(at("function"==typeof t.overlays.getArray,49),o=t.overlays):o=new q;return{controls:r,interactions:s,keyboardEventTarget:e,overlays:o,values:i}}(t);this.renderComplete_,this.loaded_=!0,this.boundHandleBrowserEvent_=this.handleBrowserEvent.bind(this),this.maxTilesLoading_=void 0!==t.maxTilesLoading?t.maxTilesLoading:16,this.pixelRatio_=void 0!==t.pixelRatio?t.pixelRatio:mt,this.postRenderTimeoutHandle_,this.animationDelayKey_,this.animationDelay_=this.animationDelay_.bind(this),this.coordinateToPixelTransform_=[1,0,0,1,0,0],this.pixelToCoordinateTransform_=[1,0,0,1,0,0],this.frameIndex_=0,this.frameState_=null,this.previousExtent_=null,this.viewPropertyListenerKey_=null,this.viewChangeListenerKey_=null,this.layerGroupPropertyListenerKeys_=null,this.viewport_=document.createElement("div"),this.viewport_.className="ol-viewport"+("ontouchstart"in window?" ol-touch":""),this.viewport_.style.position="relative",this.viewport_.style.overflow="hidden",this.viewport_.style.width="100%",this.viewport_.style.height="100%",this.overlayContainer_=document.createElement("div"),this.overlayContainer_.style.position="absolute",this.overlayContainer_.style.zIndex="0",this.overlayContainer_.style.width="100%",this.overlayContainer_.style.height="100%",this.overlayContainer_.style.pointerEvents="none",this.overlayContainer_.className="ol-overlaycontainer",this.viewport_.appendChild(this.overlayContainer_),this.overlayContainerStopEvent_=document.createElement("div"),this.overlayContainerStopEvent_.style.position="absolute",this.overlayContainerStopEvent_.style.zIndex="0",this.overlayContainerStopEvent_.style.width="100%",this.overlayContainerStopEvent_.style.height="100%",this.overlayContainerStopEvent_.style.pointerEvents="none",this.overlayContainerStopEvent_.className="ol-overlaycontainer-stopevent",this.viewport_.appendChild(this.overlayContainerStopEvent_),this.mapBrowserEventHandler_=null,this.moveTolerance_=t.moveTolerance,this.keyboardEventTarget_=e.keyboardEventTarget,this.targetChangeHandlerKeys_=null,this.controls=e.controls||Qo(),this.interactions=e.interactions||Ba({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Co(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(xo,this.handleLayerGroupChanged_),this.addChangeListener(wo,this.handleViewChanged_),this.addChangeListener(vo,this.handleSizeChanged_),this.addChangeListener(So,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof zo||t.view.then((function(t){i.setView(new zo(t))})),this.controls.addEventListener(W,function(t){t.element.setMap(this)}.bind(this)),this.controls.addEventListener(Z,function(t){t.element.setMap(null)}.bind(this)),this.interactions.addEventListener(W,function(t){t.element.setMap(this)}.bind(this)),this.interactions.addEventListener(Z,function(t){t.element.setMap(null)}.bind(this)),this.overlays_.addEventListener(W,function(t){this.addOverlayInternal_(t.element)}.bind(this)),this.overlays_.addEventListener(Z,function(t){const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}.bind(this)),this.controls.forEach(function(t){t.setMap(this)}.bind(this)),this.interactions.forEach(function(t){t.setMap(this)}.bind(this)),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){Za(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:g,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,r,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof ro?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:g,r=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,r,s,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i="changedTouches"in t?t.changedTouches[0]:t;return[i.clientX-e.left,i.clientY-e.top]}getTarget(){return this.get(So)}getTargetElement(){const t=this.getTarget();return void 0!==t?"string"==typeof t?document.getElementById(t):t:null}getCoordinateFromPixel(t){return nn(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?bt(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(xo)}setLayers(t){const e=this.getLayerGroup();if(t instanceof q)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e<i;++e){const i=t[e];if(!i.visible)continue;const n=i.layer.getRenderer();if(n&&!n.ready)return!0;const r=i.layer.getSource();if(r&&r.loading)return!0}return!1}getPixelFromCoordinate(t){const e=rn(t,this.getView().getProjection());return this.getPixelFromCoordinateInternal(e)}getPixelFromCoordinateInternal(t){const e=this.frameState_;return e?bt(e.coordinateToPixelTransform,t.slice(0,2)):null}getRenderer(){return this.renderer_}getSize(){return this.get(vo)}getView(){return this.get(wo)}getViewport(){return this.viewport_}getOverlayContainer(){return this.overlayContainer_}getOverlayContainerStopEvent(){return this.overlayContainerStopEvent_}getOwnerDocument(){const t=this.getTargetElement();return t?t.ownerDocument:document}getTilePriority(t,e,i,n){return bo(this.frameState_,t,e,i,n)}handleBrowserEvent(t,e){e=e||t.type;const i=new oo(e,this,t);this.handleMapBrowserEvent(i)}handleMapBrowserEvent(t){if(!this.frameState_)return;const e=t.originalEvent,i=e.type;if(i===ho||i===O||i===I){const t=this.getOwnerDocument(),i=this.viewport_.getRootNode?this.viewport_.getRootNode():t,n=e.target;if(this.overlayContainerStopEvent_.contains(n)||!(i===t?t.documentElement:i).contains(n))return}if(t.frameState=this.frameState_,!1!==this.dispatchEvent(t)){const e=this.getInteractions().getArray().slice();for(let i=e.length-1;i>=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;if(!n.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Ro]||e[Po]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading()<i&&(e.reprioritize(),e.loadMoreTiles(i,n))}t&&this.renderer_&&!t.animate&&(!0===this.renderComplete_?(this.hasListener(xs)&&this.renderer_.dispatchRenderEvent(xs,t),!1===this.loaded_&&(this.loaded_=!0,this.dispatchEvent(new so(yo,this,t)))):!0===this.loaded_&&(this.loaded_=!1,this.dispatchEvent(new so(_o,this,t))));const i=this.postRenderFunctions_;for(let e=0,n=i.length;e<n;++e)i[e](this,t);i.length=0}handleSizeChanged_(){this.getView()&&!this.getView().getAnimating()&&this.getView().resolveConstraints(0),this.render()}handleTargetChanged_(){if(this.mapBrowserEventHandler_){for(let t=0,e=this.targetChangeHandlerKeys_.length;t<e;++t)G(this.targetChangeHandlerKeys_[t]);this.targetChangeHandlerKeys_=null,this.viewport_.removeEventListener(T,this.boundHandleBrowserEvent_),this.viewport_.removeEventListener(O,this.boundHandleBrowserEvent_),this.mapBrowserEventHandler_.dispose(),this.mapBrowserEventHandler_=null,Ur(this.viewport_)}const t=this.getTargetElement();if(t){t.appendChild(this.viewport_),this.renderer_||(this.renderer_=new eo(this)),this.mapBrowserEventHandler_=new go(this,this.moveTolerance_);for(const t in ao)this.mapBrowserEventHandler_.addEventListener(ao[t],this.handleMapBrowserEvent.bind(this));this.viewport_.addEventListener(T,this.boundHandleBrowserEvent_,!1),this.viewport_.addEventListener(O,this.boundHandleBrowserEvent_,!!xt&&{passive:!1});const e=this.getOwnerDocument().defaultView,i=this.keyboardEventTarget_?this.keyboardEventTarget_:t;this.targetChangeHandlerKeys_=[N(i,I,this.handleBrowserEvent,this),N(i,L,this.handleBrowserEvent,this),N(e,M,this.updateSize,this)]}else this.renderer_&&(clearTimeout(this.postRenderTimeoutHandle_),this.postRenderTimeoutHandle_=void 0,this.postRenderFunctions_.length=0,this.renderer_.dispose(),this.renderer_=null),this.animationDelayKey_&&(cancelAnimationFrame(this.animationDelayKey_),this.animationDelayKey_=void 0);this.updateSize()}handleTileChange_(){this.render()}handleViewPropertyChanged_(){this.render()}handleViewChanged_(){this.viewPropertyListenerKey_&&(G(this.viewPropertyListenerKey_),this.viewPropertyListenerKey_=null),this.viewChangeListenerKey_&&(G(this.viewChangeListenerKey_),this.viewChangeListenerKey_=null);const t=this.getView();t&&(this.updateViewportSize_(),this.viewPropertyListenerKey_=N(t,r,this.handleViewPropertyChanged_,this),this.viewChangeListenerKey_=N(t,S,this.handleViewPropertyChanged_,this),t.resolveConstraints(0)),this.render()}handleLayerGroupChanged_(){this.layerGroupPropertyListenerKeys_&&(this.layerGroupPropertyListenerKeys_.forEach(G),this.layerGroupPropertyListenerKeys_=null);const t=this.getLayerGroup();t&&(this.handleLayerAdd_(new io("addlayer",t)),this.layerGroupPropertyListenerKeys_=[N(t,r,this.render,this),N(t,S,this.render,this),N(t,"addlayer",this.handleLayerAdd_,this),N(t,"removelayer",this.handleLayerRemove_,this)]),this.render()}isRendered(){return!!this.frameState_}animationDelay_(){this.animationDelayKey_=void 0,this.renderFrame_(Date.now())}renderSync(){this.animationDelayKey_&&cancelAnimationFrame(this.animationDelayKey_),this.animationDelay_()}redrawText(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e<i;++e){const i=t[e].layer;i.hasRenderer()&&i.getRenderer().handleFontsChanged()}}render(){this.renderer_&&void 0===this.animationDelayKey_&&(this.animationDelayKey_=requestAnimationFrame(this.animationDelay_))}removeControl(t){return this.getControls().remove(t)}removeInteraction(t){return this.getInteractions().remove(t)}removeLayer(t){return this.getLayerGroup().getLayers().remove(t)}handleLayerRemove_(t){Wa(t.layer)}removeOverlay(t){return this.getOverlays().remove(t)}renderFrame_(t){const e=this.getSize(),i=this.getView(),n=this.frameState_;let r=null;if(void 0!==e&&za(e)&&i&&i.isDef()){const n=i.getHints(this.frameState_?this.frameState_.viewHints:void 0),s=i.getState();if(r={animate:!1,coordinateToPixelTransform:this.coordinateToPixelTransform_,declutterTree:null,extent:pe(s.center,s.resolution,s.rotation,e),index:this.frameIndex_++,layerIndex:0,layerStatesArray:this.getLayerGroup().getLayerStatesArray(),pixelRatio:this.pixelRatio_,pixelToCoordinateTransform:this.pixelToCoordinateTransform_,postRenderFunctions:[],size:e,tileQueue:this.tileQueue_,time:t,usedTiles:{},viewState:s,viewHints:n,wantedTiles:{},mapId:z(this),renderTargets:{}},s.nextCenter&&s.nextResolution){const t=isNaN(s.nextRotation)?s.rotation:s.nextRotation;r.nextExtent=pe(s.nextCenter,s.nextResolution,t,e)}}if(this.frameState_=r,this.renderer_.renderFrame(r),r){if(r.animate&&this.render(),Array.prototype.push.apply(this.postRenderFunctions_,r.postRenderFunctions),n){(!this.previousExtent_||!Te(this.previousExtent_)&&!ee(r.extent,this.previousExtent_))&&(this.dispatchEvent(new so(po,this,n)),this.previousExtent_=Jt(this.previousExtent_))}this.previousExtent_&&!r.viewHints[Ro]&&!r.viewHints[Po]&&!ee(r.extent,this.previousExtent_)&&(this.dispatchEvent(new so(mo,this,r)),Vt(r.extent,this.previousExtent_))}this.dispatchEvent(new so(fo,this,r)),this.renderComplete_=this.hasListener(_o)||this.hasListener(yo)||this.hasListener(xs)?!this.tileQueue_.getTilesLoading()&&!this.tileQueue_.getCount()&&!this.getLoadingOrNotReady():void 0,this.postRenderTimeoutHandle_||(this.postRenderTimeoutHandle_=setTimeout((()=>{this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new io("removelayer",e)),this.set(xo,t)}setSize(t){this.set(vo,t)}setTarget(t){this.set(So,t)}setView(t){if(!t||t instanceof zo)return void this.set(wo,t);this.set(wo,new zo);const e=this;t.then((function(t){e.setView(new zo(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),r=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(n)||isNaN(r)||(e=[n,r],!za(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&console.warn("No map visible because the map container's width or height are 0."))}this.setSize(e),this.updateViewportSize_()}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}}const Ka="element",qa="map",Ha="offset",$a="position",Ja="positioning";class Qa extends V{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(Ka,this.handleElementChanged),this.addChangeListener(qa,this.handleMapChanged),this.addChangeListener(Ha,this.handleOffsetChanged),this.addChangeListener($a,this.handlePositionChanged),this.addChangeListener(Ja,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(Ka)}getId(){return this.id}getMap(){return this.get(qa)||null}getOffset(){return this.get(Ha)}getPosition(){return this.get($a)}getPositioning(){return this.get(Ja)}handleElementChanged(){zr(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(Ur(this.element),G(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=N(t,fo,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(Ka,t)}setMap(t){this.set(qa,t)}setOffset(t){this.set(Ha,t)}setPosition(t){this.set($a,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get($a))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),r=this.getRect(n,[kr(n),jr(n)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!Yt(i,r)){const n=r[0]-i[0],o=i[2]-r[2],a=r[1]-i[1],l=i[3]-r[3],h=[0,0];if(n<0?h[0]=n-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const r=[n[0]+h[0],n[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(r),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,r=i.top+window.pageYOffset;return[n,r,n+e[0],r+e[1]]}setPositioning(t){this.set(Ja,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),r=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==r||"center-right"==r||"top-right"==r?s="-100%":"bottom-center"!=r&&"center-center"!=r&&"top-center"!=r||(s="-50%"),"bottom-left"==r||"bottom-center"==r||"bottom-right"==r?o="-100%":"center-left"!=r&&"center-center"!=r&&"center-right"!=r||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+n[0])+"px"}, ${Math.round(t[1]+n[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}}class tl{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return at(void 0!==i,15),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return at(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){at(!(t in this.entries_),16);const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}}function el(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function il(t,e,i){return t+"/"+e+"/"+i}function nl(t){return il(t[0],t[1],t[2])}function rl(t){const[e,i,n]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return il(e,i,n)}function sl(t){return t.split("/").map(Number)}function ol(t){return(t[1]<<t[0])+t[2]}function al(t,e){const i=t[0],n=t[1],r=t[2];if(e.getMinZoom()>i||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(n,r)}class ll extends tl{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=sl(this.peekFirstKey())[0];this.forEach(function(e){e.tileCoord[0]!==t&&(this.remove(nl(e.tileCoord)),e.release())}.bind(this))}}class hl{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minX<this.minX&&(this.minX=t.minX),t.maxX>this.maxX&&(this.maxX=t.maxX),t.minY<this.minY&&(this.minY=t.minY),t.maxY>this.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function cl(t,e,i,n,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=i,r.maxY=n,r):new hl(t,e,i,n)}const ul=[];class dl extends st{constructor(t,e,i,n){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=n.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=z(t);return e in this.context_||(this.context_[e]=Dr(1,1,ul)),this.context_[e]}hasContext(t){return z(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=z(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];Gr(e),ul.push(e.canvas),delete this.context_[t]}super.release()}}class gl extends st{constructor(t,e,i,n,r,s){super(t,e,s),this.extent=null,this.format_=n,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=r,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==H&&(this.setState($),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(Q)}setFeatures(t){this.features_=t,this.setState(J)}setLoader(t){this.loader_=t}}function fl(t){return Array.isArray(t)?Qr(t):t}let pl,ml=!1;function _l(t,e,i,n,r,s,o){const a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(i,n,r):t,!0),"arraybuffer"==e.getType()&&(a.responseType="arraybuffer"),a.withCredentials=ml,a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?s(e.readFeatures(n,{extent:i,featureProjection:r}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function yl(t,e){return function(i,n,r,s,o){const a=this;_l(t,e,i,n,r,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||p)}}function xl(t,e){return[[-1/0,-1/0,1/0,1/0]]}function vl(t,e,i,n){const r=document.createElement("script"),s="olc_"+z(e);function o(){delete window[s],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+(n||"callback")+"="+s;const a=setTimeout((function(){o(),i&&i()}),1e4);window[s]=function(t){clearTimeout(a),o(),e(t)},document.head.appendChild(r)}class Sl extends Error{constructor(t){super("Unexpected response status: "+t.status),this.name="ResponseError",this.response=t}}class wl extends Error{constructor(t){super("Failed to issue request"),this.name="ClientError",this.client=t}}function Tl(t){return new Promise((function(e,i){const n=new XMLHttpRequest;n.addEventListener("load",(function(t){const n=t.target;if(!n.status||n.status>=200&&n.status<300){let t;try{t=JSON.parse(n.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new Sl(n))})),n.addEventListener("error",(function(t){i(new wl(t.target))})),n.open("GET",t),n.setRequestHeader("Accept","application/json"),n.send()}))}function El(t,e){return e.includes("://")?e:new URL(e,t).href}class Cl{drawCustom(t,e,i,n){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}}class bl extends Cl{constructor(t,e,i,n,r,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=n,this.viewRotation_=r,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=[1,0,0,1,0,0]}drawImages_(t,e,i,n){if(!this.image_)return;const r=un(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=r.length;t<e;t+=2){const e=r[t]-this.imageAnchorX_,i=r[t+1]-this.imageAnchorY_;if(0!==l||1!=this.imageScale_[0]||1!=this.imageScale_[1]){const t=e+this.imageAnchorX_,n=i+this.imageAnchorY_;Ft(o,t,n,1,1,l,-t,-n),s.setTransform.apply(s,o),s.translate(t,n),s.scale(this.imageScale_[0],this.imageScale_[1]),s.drawImage(this.image_,this.imageOriginX_,this.imageOriginY_,this.imageWidth_,this.imageHeight_,-this.imageAnchorX_,-this.imageAnchorY_,this.imageWidth_,this.imageHeight_),s.setTransform(1,0,0,1,0,0)}else s.drawImage(this.image_,this.imageOriginX_,this.imageOriginY_,this.imageWidth_,this.imageHeight_,e,i,this.imageWidth_,this.imageHeight_)}1!=this.imageOpacity_&&(s.globalAlpha=a)}drawText_(t,e,i,n){if(!this.textState_||""===this.text_)return;this.textFillState_&&this.setContextFillState_(this.textFillState_),this.textStrokeState_&&this.setContextStrokeState_(this.textStrokeState_),this.setContextTextState_(this.textState_);const r=un(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_;let o=this.textRotation_;for(this.textRotateWithView_&&(o+=this.viewRotation_);e<i;e+=n){const t=r[e]+this.textOffsetX_,i=r[e+1]+this.textOffsetY_;0!==o||1!=this.textScale_[0]||1!=this.textScale_[1]?(s.translate(t-this.textOffsetX_,i-this.textOffsetY_),s.rotate(o),s.translate(this.textOffsetX_,this.textOffsetY_),s.scale(this.textScale_[0],this.textScale_[1]),this.textStrokeState_&&s.strokeText(this.text_,0,0),this.textFillState_&&s.fillText(this.text_,0,0),s.setTransform(1,0,0,1,0,0)):(this.textStrokeState_&&s.strokeText(this.text_,t,i),this.textFillState_&&s.fillText(this.text_,t,i))}}moveToLineTo_(t,e,i,n,r){const s=this.context_,o=un(t,e,i,n,this.transform_,this.pixelCoordinates_);s.moveTo(o[0],o[1]);let a=o.length;r&&(a-=2);for(let t=2;t<a;t+=2)s.lineTo(o[t],o[t+1]);return r&&s.closePath(),i}drawRings_(t,e,i,n){for(let r=0,s=i.length;r<s;++r)e=this.moveToLineTo_(t,e,i[r],n,!0);return e}drawCircle(t){if(we(this.extent_,t.getExtent())){if(this.fillState_||this.strokeState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=xn(t,this.transform_,this.pixelCoordinates_),i=e[2]-e[0],n=e[3]-e[1],r=Math.sqrt(i*i+n*n),s=this.context_;s.beginPath(),s.arc(e[0],e[1],r,0,2*Math.PI),this.fillState_&&s.fill(),this.strokeState_&&s.stroke()}""!==this.text_&&this.drawText_(t.getCenter(),0,2,2)}}setStyle(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())}setTransform(t){this.transform_=t}drawGeometry(t){switch(t.getType()){case"Point":this.drawPoint(t);break;case"LineString":this.drawLineString(t);break;case"Polygon":this.drawPolygon(t);break;case"MultiPoint":this.drawMultiPoint(t);break;case"MultiLineString":this.drawMultiLineString(t);break;case"MultiPolygon":this.drawMultiPolygon(t);break;case"GeometryCollection":this.drawGeometryCollection(t);break;case"Circle":this.drawCircle(t)}}drawFeature(t,e){const i=e.getGeometryFunction()(t);i&&we(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))}drawGeometryCollection(t){const e=t.getGeometriesArray();for(let t=0,i=e.length;t<i;++t)this.drawGeometry(e[t])}drawPoint(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getFlatCoordinates(),i=t.getStride();this.image_&&this.drawImages_(e,0,e.length,i),""!==this.text_&&this.drawText_(e,0,e.length,i)}drawMultiPoint(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getFlatCoordinates(),i=t.getStride();this.image_&&this.drawImages_(e,0,e.length,i),""!==this.text_&&this.drawText_(e,0,e.length,i)}drawLineString(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),we(this.extent_,t.getExtent())){if(this.strokeState_){this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getFlatCoordinates();e.beginPath(),this.moveToLineTo_(i,0,i.length,t.getStride(),!1),e.stroke()}if(""!==this.text_){const e=t.getFlatMidpoint();this.drawText_(e,0,2,2)}}}drawMultiLineString(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getExtent();if(we(this.extent_,e)){if(this.strokeState_){this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getFlatCoordinates();let n=0;const r=t.getEnds(),s=t.getStride();e.beginPath();for(let t=0,e=r.length;t<e;++t)n=this.moveToLineTo_(i,n,r[t],s,!1);e.stroke()}if(""!==this.text_){const e=t.getFlatMidpoints();this.drawText_(e,0,e.length,2)}}}drawPolygon(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),we(this.extent_,t.getExtent())){if(this.strokeState_||this.fillState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=this.context_;e.beginPath(),this.drawRings_(t.getOrientedFlatCoordinates(),0,t.getEnds(),t.getStride()),this.fillState_&&e.fill(),this.strokeState_&&e.stroke()}if(""!==this.text_){const e=t.getFlatInteriorPoint();this.drawText_(e,0,2,2)}}}drawMultiPolygon(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),we(this.extent_,t.getExtent())){if(this.strokeState_||this.fillState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getOrientedFlatCoordinates();let n=0;const r=t.getEndss(),s=t.getStride();e.beginPath();for(let t=0,e=r.length;t<e;++t){const e=r[t];n=this.drawRings_(i,n,e,s)}this.fillState_&&e.fill(),this.strokeState_&&e.stroke()}if(""!==this.text_){const e=t.getFlatInteriorPoints();this.drawText_(e,0,e.length,2)}}}setContextFillState_(t){const e=this.context_,i=this.contextFillState_;i?i.fillStyle!=t.fillStyle&&(i.fillStyle=t.fillStyle,e.fillStyle=t.fillStyle):(e.fillStyle=t.fillStyle,this.contextFillState_={fillStyle:t.fillStyle})}setContextStrokeState_(t){const e=this.context_,i=this.contextStrokeState_;i?(i.lineCap!=t.lineCap&&(i.lineCap=t.lineCap,e.lineCap=t.lineCap),u(i.lineDash,t.lineDash)||e.setLineDash(i.lineDash=t.lineDash),i.lineDashOffset!=t.lineDashOffset&&(i.lineDashOffset=t.lineDashOffset,e.lineDashOffset=t.lineDashOffset),i.lineJoin!=t.lineJoin&&(i.lineJoin=t.lineJoin,e.lineJoin=t.lineJoin),i.lineWidth!=t.lineWidth&&(i.lineWidth=t.lineWidth,e.lineWidth=t.lineWidth),i.miterLimit!=t.miterLimit&&(i.miterLimit=t.miterLimit,e.miterLimit=t.miterLimit),i.strokeStyle!=t.strokeStyle&&(i.strokeStyle=t.strokeStyle,e.strokeStyle=t.strokeStyle)):(e.lineCap=t.lineCap,e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset,e.lineJoin=t.lineJoin,e.lineWidth=t.lineWidth,e.miterLimit=t.miterLimit,e.strokeStyle=t.strokeStyle,this.contextStrokeState_={lineCap:t.lineCap,lineDash:t.lineDash,lineDashOffset:t.lineDashOffset,lineJoin:t.lineJoin,lineWidth:t.lineWidth,miterLimit:t.miterLimit,strokeStyle:t.strokeStyle})}setContextTextState_(t){const e=this.context_,i=this.contextTextState_,n=t.textAlign?t.textAlign:Us;i?(i.font!=t.font&&(i.font=t.font,e.font=t.font),i.textAlign!=n&&(i.textAlign=n,e.textAlign=n),i.textBaseline!=t.textBaseline&&(i.textBaseline=t.textBaseline,e.textBaseline=t.textBaseline)):(e.font=t.font,e.textAlign=n,e.textBaseline=t.textBaseline,this.contextTextState_={font:t.font,textAlign:n,textBaseline:t.textBaseline})}setFillStrokeStyle(t,e){if(t){const e=t.getColor();this.fillState_={fillStyle:fl(e||Ns)}}else this.fillState_=null;if(e){const t=e.getColor(),i=e.getLineCap(),n=e.getLineDash(),r=e.getLineDashOffset(),s=e.getLineJoin(),o=e.getWidth(),a=e.getMiterLimit(),l=n||Gs;this.strokeState_={lineCap:void 0!==i?i:Ds,lineDash:1===this.pixelRatio_?l:l.map((t=>t*this.pixelRatio_)),lineDashOffset:(r||0)*this.pixelRatio_,lineJoin:void 0!==s?s:ks,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:js,strokeStyle:fl(t||Bs)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:fl(t||Ns)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),r=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Ds,lineDash:n||Gs,lineDashOffset:r||0,lineJoin:void 0!==s?s:ks,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:js,strokeStyle:fl(t||Bs)}}else this.textStrokeState_=null;const n=t.getFont(),r=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:Os,textAlign:void 0!==c?c:Us,textBaseline:void 0!==u?u:zs},this.text_=void 0!==h?Array.isArray(h)?h.reduce(((t,e,i)=>t+(i%2?" ":e)),""):h:"",this.textOffsetX_=void 0!==r?this.pixelRatio_*r:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}}const Rl={Point:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Lr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},LineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},Polygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},MultiPoint:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Lr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawMultiPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},MultiLineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawMultiLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},MultiPolygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(o||s){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawMultiPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},GeometryCollection:function(t,e,i,n,r){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o<a;++o){(0,Rl[s[o].getType()])(t,s[o],i,n,r)}},Circle:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Circle");r.setFillStrokeStyle(s,o),r.drawCircle(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}}};function Pl(t,e){return parseInt(z(t),10)-parseInt(z(e),10)}function Il(t,e){const i=Ll(t,e);return i*i}function Ll(t,e){return.5*t/e}function Fl(t,e,i,n,r,s,o){let a=!1;const l=i.getImage();if(l){const t=l.getImageState();t==Lr||t==Fr?l.unlistenImageChange(r):(t==Pr&&l.load(),l.listenImageChange(r),a=!0)}return function(t,e,i,n,r,s){const o=i.getGeometryFunction()(e);if(!o)return;const a=o.simplifyTransformed(n,r);if(i.getRenderer())Ml(t,a,i,e);else{(0,Rl[a.getType()])(t,a,i,e,s)}}(t,e,i,n,s,o),a}function Ml(t,e,i,n){if("GeometryCollection"==e.getType()){const r=e.getGeometries();for(let e=0,s=r.length;e<s;++e)Ml(t,r[e],i,n);return}t.getBuilder(i.getZIndex(),"Default").drawCustom(e,n,i.getRenderer(),i.getHitDetectionRenderer())}function Al(t){if(!(t.context instanceof CanvasRenderingContext2D))throw new Error("Only works for render events from Canvas 2D layers");const e=t.inversePixelTransform[0],i=t.frameState,n=Tt(t.inversePixelTransform.slice(),i.coordinateToPixelTransform),r=Il(i.viewState.resolution,e);let s;const o=en();return o&&(s=qi(o,i.viewState.projection)),new bl(t.context,e,i.extent,n,i.viewState.rotation,r,s)}let Ol;const Nl=[];function Dl(t,e,i,n,r){t.beginPath(),t.moveTo(0,0),t.lineTo(e,i),t.lineTo(n,r),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,n)+1,Math.max(i,r)),t.restore()}function Gl(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function kl(t,e,i,n){const r=$i(i,e,t);let s=zi(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||Zt(l,r)){const e=zi(t,s,r)/s;isFinite(e)&&e>0&&(s/=e)}return s}function jl(t,e,i,n){const r=ge(i);let s=kl(t,e,r,n);return(!isFinite(s)||s<=0)&&he(i,(function(i){return s=kl(t,e,i,n),isFinite(s)&&s>0})),s}function Bl(t,e,i,n,r,s,o,a,l,h,c,u){const d=Dr(Math.round(i*t),Math.round(i*e),Nl);if(u||(d.imageSmoothingEnabled=!1),0===l.length)return d.canvas;function g(t){return Math.round(t*i)/i}d.scale(i,i),d.globalCompositeOperation="lighter";const f=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,i){ne(f,t.extent)}));const p=Se(f),m=_e(f),_=Dr(Math.round(i*p/n),Math.round(i*m/n),Nl);u||(_.imageSmoothingEnabled=!1);const y=i/n;l.forEach((function(t,e,i){const n=t.extent[0]-f[0],r=-(t.extent[3]-f[3]),s=Se(t.extent),o=_e(t.extent);t.image.width>0&&t.image.height>0&&_.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,n*y,r*y,s*y,o*y)}));const x=xe(o);return a.getTriangles().forEach((function(t,e,r){const o=t.source,a=t.target;let l=o[0][0],h=o[0][1],c=o[1][0],p=o[1][1],m=o[2][0],y=o[2][1];const v=g((a[0][0]-x[0])/s),S=g(-(a[0][1]-x[1])/s),w=g((a[1][0]-x[0])/s),T=g(-(a[1][1]-x[1])/s),E=g((a[2][0]-x[0])/s),C=g(-(a[2][1]-x[1])/s),b=l,R=h;l=0,h=0,c-=b,p-=R,m-=b,y-=R;const P=si([[c,p,0,0,w-v],[m,y,0,0,E-v],[0,0,c,p,T-S],[0,0,m,y,C-S]]);if(P){if(d.save(),d.beginPath(),function(){if(void 0===Ol){const t=Dr(6,6,Nl);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Dl(t,4,5,4,0),Dl(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;Ol=Gl(e,0)||Gl(e,4)||Gl(e,8),Gr(t),Nl.push(t.canvas)}return Ol}()||!u){d.moveTo(w,T);const t=4,e=v-w,i=S-T;for(let n=0;n<t;n++)d.lineTo(w+g((n+1)*e/t),T+g(n*i/(t-1))),n!=t-1&&d.lineTo(w+g((n+1)*e/t),T+g((n+1)*i/(t-1)));d.lineTo(E,C)}else d.moveTo(w,T),d.lineTo(v,S),d.lineTo(E,C);d.clip(),d.transform(P[0],P[2],P[1],P[3],v,S),d.translate(f[0]-b,f[3]-R),d.scale(n/i,-n/i),d.drawImage(_.canvas,0,0),d.restore()}})),Gr(_),Nl.push(_.canvas),c&&(d.save(),d.globalCompositeOperation="source-over",d.strokeStyle="black",d.lineWidth=1,a.getTriangles().forEach((function(t,e,i){const n=t.target,r=(n[0][0]-x[0])/s,o=-(n[0][1]-x[1])/s,a=(n[1][0]-x[0])/s,l=-(n[1][1]-x[1])/s,h=(n[2][0]-x[0])/s,c=-(n[2][1]-x[1])/s;d.beginPath(),d.moveTo(a,l),d.lineTo(r,o),d.lineTo(h,c),d.closePath(),d.stroke()})),d.restore()),d.canvas}const Ul=.5;class zl{constructor(t,e,i,n,r,s){this.sourceProj_=t,this.targetProj_=e;let o={};const a=Hi(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return o[e]||(o[e]=a(t)),o[e]},this.maxSourceExtent_=n,this.errorThresholdSquared_=r*r,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!n&&!!this.sourceProj_.getExtent()&&Se(n)==Se(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Se(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Se(this.targetProj_.getExtent()):null;const l=xe(i),h=ve(i),c=de(i),u=ue(i),d=this.transformInv_(l),g=this.transformInv_(h),f=this.transformInv_(c),p=this.transformInv_(u),m=10+(s?Math.max(0,Math.ceil(Math.log2(ce(i)/(s*s*256*256)))):0);if(this.addQuad_(l,h,c,u,d,g,f,p,m),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach(function(e){if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-n<this.sourceWorldWidth_/2&&(e.source=i)}}.bind(this))}o={}}addTriangle_(t,e,i,n,r,s){this.triangles_.push({source:[n,r,s],target:[t,e,i]})}addQuad_(t,e,i,n,r,s,o,a,l){const h=zt([r,s,o,a]),c=this.sourceWorldWidth_?Se(h)/this.sourceWorldWidth_:null,u=this.sourceWorldWidth_,d=this.sourceProj_.canWrapX()&&c>.5&&c<1;let g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){g=Se(zt([t,e,i,n]))/this.targetWorldWidth_>.25||g}!d&&this.sourceProj_.isGlobal()&&c&&(g=c>.25||g)}if(!g&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3])&&!we(h,this.maxSourceExtent_))return;let f=0;if(!(g||isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)g=!0;else if(f=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!g){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let s;if(d){s=(li(r[0],u)+li(o[0],u))/2-li(n[0],u)}else s=(r[0]+o[0])/2-n[0];const a=(r[1]+o[1])/2-n[1];g=s*s+a*a>this.errorThresholdSquared_}if(g){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const h=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(h),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],d=this.transformInv_(u);this.addQuad_(t,e,h,u,r,s,c,d,l-1),this.addQuad_(u,h,i,n,d,c,o,a,l-1)}else{const h=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(h),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],d=this.transformInv_(u);this.addQuad_(t,h,u,n,r,c,d,a,l-1),this.addQuad_(h,e,i,u,c,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&f)&&this.addTriangle_(t,i,n,r,o,a),0==(14&f)&&this.addTriangle_(t,i,e,r,o,s),f&&(0==(13&f)&&this.addTriangle_(e,n,t,s,a,r),0==(7&f)&&this.addTriangle_(e,n,i,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,i,n){const r=e.source;re(t,r[0]),re(t,r[1]),re(t,r[2])})),t}getTriangles(){return this.triangles_}}class Xl extends st{constructor(t,e,i,n,r,s,o,a,l,h,c,u){super(r,H,{interpolate:!!u}),this.renderEdges_=void 0!==c&&c,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=s||r,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const d=n.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const p=g?ye(d,g):d;if(0===ce(p))return void(this.state=tt);const m=t.getExtent();m&&(f=f?ye(f,m):m);const _=n.getResolution(this.wrappedTileCoord_[0]),y=jl(t,i,p,_);if(!isFinite(y)||y<=0)return void(this.state=tt);const x=void 0!==h?h:Ul;if(this.triangulation_=new zl(t,i,p,f,y*x,_),0===this.triangulation_.getTriangles().length)return void(this.state=tt);this.sourceZ_=e.getZForResolution(y);let v=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(v[1]=ii(v[1],f[1],f[3]),v[3]=ii(v[3],f[1],f[3])):v=ye(v,f)),ce(v)){const t=e.getTileRangeForExtentAndZ(v,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=l(this.sourceZ_,e,i,o);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=tt)}else this.state=tt}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(function(e,i,n){e&&e.getState()==J&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=Q;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Bl(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=J}this.changed()}load(){if(this.state==H){this.state=$,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,n){const r=e.getState();if(r==H||r==$){t++;const i=N(e,S,(function(n){const r=e.getState();r!=J&&r!=Q&&r!=tt||(G(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==H&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(G),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Gr(this.canvas_.getContext("2d")),Nl.push(this.canvas_),this.canvas_=null),super.release()}}var Vl="tileloadstart",Wl="tileloadend",Zl="tileloaderror";class Yl extends V{constructor(t){super(),this.projection=Ui(t.projection),this.attributions_=Kl(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(){return B()}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=Kl(t),this.changed()}setState(t){this.state_=t,this.changed()}}function Kl(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}const ql=[0,0,0];class Hl{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,at(d(this.resolutions_,(function(t,e){return e-t}),!0),17),!t.origins)for(let t=0,i=this.resolutions_.length-1;t<i;++t)if(e){if(this.resolutions_[t]/this.resolutions_[t+1]!==e){e=void 0;break}}else e=this.resolutions_[t]/this.resolutions_[t+1];this.zoomFactor_=e,this.maxZoom=this.resolutions_.length-1,this.origin_=void 0!==t.origin?t.origin:null,this.origins_=null,void 0!==t.origins&&(this.origins_=t.origins,at(this.origins_.length==this.resolutions_.length,20));const i=t.extent;void 0===i||this.origin_||this.origins_||(this.origin_=xe(i)),at(!this.origin_&&this.origins_||this.origin_&&!this.origins_,18),this.tileSizes_=null,void 0!==t.tileSizes&&(this.tileSizes_=t.tileSizes,at(this.tileSizes_.length==this.resolutions_.length,19)),this.tileSize_=void 0!==t.tileSize?t.tileSize:this.tileSizes_?null:Lo,at(!this.tileSize_&&this.tileSizes_||this.tileSize_&&!this.tileSizes_,22),this.extent_=void 0!==i?i:null,this.fullTileRanges_=null,this.tmpSize_=[0,0],this.tmpExtent_=[0,0,0,0],void 0!==t.sizes?this.fullTileRanges_=t.sizes.map((function(t,e){const n=new hl(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n}),this):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,i){const n=this.getTileRangeForExtentAndZ(t,e);for(let t=n.minX,r=n.maxX;t<=r;++t)for(let r=n.minY,s=n.maxY;r<=s;++r)i([e,t,r])}forEachTileCoordParentTileRange(t,e,i,n){let r,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,n);l>=this.minZoom;){if(2===this.zoomFactor_?(s=Math.floor(s/2),o=Math.floor(o/2),r=cl(s,s,o,o,i)):r=this.getTileRangeForExtentAndZ(a,l,i),e(l,r))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]<this.maxZoom){if(2===this.zoomFactor_){const i=2*t[1],n=2*t[2];return cl(i,i+1,n,n+1,e)}const n=this.getTileCoordExtent(t,i||this.tmpExtent_);return this.getTileRangeForExtentAndZ(n,t[0]+1,e)}return null}getTileRangeForTileCoordAndZ(t,e,i){if(e>this.maxZoom||e<this.minZoom)return null;const n=t[0],r=t[1],s=t[2];if(e===n)return cl(r,s,r,s,i);if(this.zoomFactor_){const t=Math.pow(this.zoomFactor_,e-n),o=Math.floor(r*t),a=Math.floor(s*t);if(e<n)return cl(o,o,a,a,i);return cl(o,Math.floor(t*(r+1))-1,a,Math.floor(t*(s+1))-1,i)}const o=this.getTileCoordExtent(t,this.tmpExtent_);return this.getTileRangeForExtentAndZ(o,e,i)}getTileRangeExtent(t,e,i){const n=this.getOrigin(t),r=this.getResolution(t),s=Va(this.getTileSize(t),this.tmpSize_),o=n[0]+e.minX*s[0]*r,a=n[0]+(e.maxX+1)*s[0]*r;return $t(o,n[1]+e.minY*s[1]*r,a,n[1]+(e.maxY+1)*s[1]*r,i)}getTileRangeForExtentAndZ(t,e,i){const n=ql;this.getTileCoordForXYAndZ_(t[0],t[3],e,!1,n);const r=n[1],s=n[2];return this.getTileCoordForXYAndZ_(t[2],t[1],e,!0,n),cl(r,n[1],s,n[2],i)}getTileCoordCenter(t){const e=this.getOrigin(t[0]),i=this.getResolution(t[0]),n=Va(this.getTileSize(t[0]),this.tmpSize_);return[e[0]+(t[1]+.5)*n[0]*i,e[1]-(t[2]+.5)*n[1]*i]}getTileCoordExtent(t,e){const i=this.getOrigin(t[0]),n=this.getResolution(t[0]),r=Va(this.getTileSize(t[0]),this.tmpSize_),s=i[0]+t[1]*r[0]*n,o=i[1]-(t[2]+1)*r[1]*n;return $t(s,o,s+r[0]*n,o+r[1]*n,e)}getTileCoordForCoordAndResolution(t,e,i){return this.getTileCoordForXYAndResolution_(t[0],t[1],e,!1,i)}getTileCoordForXYAndResolution_(t,e,i,n,r){const s=this.getZForResolution(i),o=i/this.getResolution(s),a=this.getOrigin(s),l=Va(this.getTileSize(s),this.tmpSize_);let h=o*(t-a[0])/i/l[0],c=o*(a[1]-e)/i/l[1];return n?(h=gi(h,5)-1,c=gi(c,5)-1):(h=di(h,5),c=di(c,5)),el(s,h,c,r)}getTileCoordForXYAndZ_(t,e,i,n,r){const s=this.getOrigin(i),o=this.getResolution(i),a=Va(this.getTileSize(i),this.tmpSize_);let l=(t-s[0])/o/a[0],h=(s[1]-e)/o/a[1];return n?(l=gi(l,5)-1,h=gi(h,5)-1):(l=di(l,5),h=di(h,5)),el(i,l,h,r)}getTileCoordForCoordAndZ(t,e,i){return this.getTileCoordForXYAndZ_(t[0],t[1],e,!1,i)}getTileCoordResolution(t){return this.resolutions_[t[0]]}getTileSize(t){return this.tileSize_?this.tileSize_:this.tileSizes_[t]}getFullTileRange(t){return this.fullTileRanges_?this.fullTileRanges_[t]:this.extent_?this.getTileRangeForExtentAndZ(this.extent_,t):null}getZForResolution(t,e){return ii(l(this.resolutions_,t,e||0),this.minZoom,this.maxZoom)}tileCoordIntersectsViewport(t,e){return er(e,0,e.length,2,this.getTileCoordExtent(t))}calculateTileRanges_(t){const e=this.resolutions_.length,i=new Array(e);for(let n=this.minZoom;n<e;++n)i[n]=this.getTileRangeForExtentAndZ(t,n);this.fullTileRanges_=i}}function $l(t){let e=t.getDefaultTileGrid();return e||(e=ih(t),t.setDefaultTileGrid(e)),e}function Jl(t,e,i){const n=e[0],r=t.getTileCoordCenter(e),s=nh(i);if(!Zt(s,r)){const e=Se(s),i=Math.ceil((s[0]-r[0])/e);return r[0]+=e*i,t.getTileCoordForCoordAndZ(r,n)}return e}function Ql(t,e,i,n){n=void 0!==n?n:"top-left";const r=eh(t,e,i);return new Hl({extent:t,origin:fe(t,n),resolutions:r,tileSize:i})}function th(t){const e=t||{},i=e.extent||Ui("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:eh(i,e.maxZoom,e.tileSize,e.maxResolution)};return new Hl(n)}function eh(t,e,i,n){e=void 0!==e?e:42,i=Va(void 0!==i?i:Lo);const r=_e(t),s=Se(t);n=n>0?n:Math.max(s/i[0],r/i[1]);const o=e+1,a=new Array(o);for(let t=0;t<o;++t)a[t]=n/Math.pow(2,t);return a}function ih(t,e,i,n){return Ql(nh(t),e,i,n)}function nh(t){let e=(t=Ui(t)).getExtent();if(!e){const i=180*Me.degrees/t.getMetersPerUnit();e=$t(-i,-i,i,i)}return e}class rh extends Yl{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:t.projection,state:t.state,wrapX:t.wrapX,interpolate:t.interpolate}),this.on,this.once,this.un,this.opaque_=void 0!==t.opaque&&t.opaque,this.tilePixelRatio_=void 0!==t.tilePixelRatio?t.tilePixelRatio:1,this.tileGrid=void 0!==t.tileGrid?t.tileGrid:null;const e=[256,256];this.tileGrid&&Va(this.tileGrid.getTileSize(this.tileGrid.getMinZoom()),e),this.tileCache=new ll(t.cacheSize||0),this.tmpSize=[0,0],this.key_=t.key||"",this.tileOptions={transition:t.transition,interpolate:t.interpolate},this.zDirection=t.zDirection?t.zDirection:0}canExpireCache(){return this.tileCache.canExpireCache()}expireCache(t,e){const i=this.getTileCacheForProjection(t);i&&i.expireCache(e)}forEachLoadedTile(t,e,i,n){const r=this.getTileCacheForProjection(t);if(!r)return!1;let s,o,a,l=!0;for(let t=i.minX;t<=i.maxX;++t)for(let h=i.minY;h<=i.maxY;++h)o=il(e,t,h),a=!1,r.containsKey(o)&&(s=r.get(o),a=s.getState()===J,a&&(a=!1!==n(s))),a||(l=!1);return l}getGutterForProjection(t){return 0}getKey(){return this.key_}setKey(t){this.key_!==t&&(this.key_=t,this.changed())}getOpaque(t){return this.opaque_}getResolutions(){return this.tileGrid?this.tileGrid.getResolutions():null}getTile(t,e,i,n,r){return B()}getTileGrid(){return this.tileGrid}getTileGridForProjection(t){return this.tileGrid?this.tileGrid:$l(t)}getTileCacheForProjection(t){const e=this.getProjection();return at(null===e||Ki(e,t),68),this.tileCache}getTilePixelRatio(t){return this.tilePixelRatio_}getTilePixelSize(t,e,i){const n=this.getTileGridForProjection(i),r=this.getTilePixelRatio(e),s=Va(n.getTileSize(t),this.tmpSize);return 1==r?s:Xa(s,r,this.tmpSize)}getTileCoordForTileUrlFunction(t,e){e=void 0!==e?e:this.getProjection();const i=this.getTileGridForProjection(e);return this.getWrapX()&&e.isGlobal()&&(t=Jl(i,t,e)),al(t,i)?t:null}clear(){this.tileCache.clear()}refresh(){this.clear(),super.refresh()}updateCacheSize(t,e){const i=this.getTileCacheForProjection(e);t>i.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}}class sh extends i{constructor(t,e){super(t),this.tile=e}}function oh(t,e){const i=/\{z\}/g,n=/\{x\}/g,r=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(r,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);at(i,55);return(i.getHeight()-o[2]-1).toString()}))}}function ah(t,e){const i=t.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=oh(t[r],e);return lh(n)}function lh(t){return 1===t.length?t[0]:function(e,i,n){if(!e)return;const r=li(ol(e),t.length);return t[r](e,i,n)}}function hh(t,e,i){}function ch(t){const e=[];let i=/\{([a-z])-([a-z])\}/.exec(t);if(i){const n=i[1].charCodeAt(0),r=i[2].charCodeAt(0);let s;for(s=n;s<=r;++s)e.push(t.replace(i[0],String.fromCharCode(s)));return e}if(i=/\{(\d+)-(\d+)\}/.exec(t),i){const n=parseInt(i[2],10);for(let r=parseInt(i[1],10);r<=n;r++)e.push(t.replace(i[0],r.toString()));return e}return e.push(t),e}class uh extends rh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,opaque:t.opaque,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tilePixelRatio:t.tilePixelRatio,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===uh.prototype.tileUrlFunction,this.tileLoadFunction=t.tileLoadFunction,t.tileUrlFunction&&(this.tileUrlFunction=t.tileUrlFunction),this.urls=null,t.urls?this.setUrls(t.urls):t.url&&this.setUrl(t.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(t){const e=t.target,i=z(e),n=e.getState();let r;n==$?(this.tileLoadingKeys_[i]=!0,r=Vl):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==Q?Zl:n==J?Wl:void 0),null!=r&&this.dispatchEvent(new sh(r,e))}setTileLoadFunction(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()}setTileUrlFunction(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()}setUrl(t){const e=ch(t);this.urls=e,this.setUrls(e)}setUrls(t){this.urls=t;const e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(ah(t,this.tileGrid),e):this.setKey(e)}tileUrlFunction(t,e,i){}useTile(t,e,i){const n=il(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}}class dh extends uh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,opaque:t.opaque,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:gh,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX,transition:t.transition,interpolate:void 0===t.interpolate||t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.crossOrigin=void 0!==t.crossOrigin?t.crossOrigin:null,this.tileClass=void 0!==t.tileClass?t.tileClass:Vr,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=t.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}canExpireCache(){if(this.tileCache.canExpireCache())return!0;for(const t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection){const n=this.tileCacheForProjection[t];n.expireCache(n==i?e:{})}}getGutterForProjection(t){return this.getProjection()&&t&&!Ki(this.getProjection(),t)?0:this.getGutter()}getGutter(){return 0}getKey(){let t=super.getKey();return this.getInterpolate()||(t+=":disable-interpolation"),t}getOpaque(t){return!(this.getProjection()&&t&&!Ki(this.getProjection(),t))&&super.getOpaque(t)}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||Ki(e,t)))return this.tileGrid;const i=z(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=$l(t)),this.tileGridForProjection[i]}getTileCacheForProjection(t){const e=this.getProjection();if(!e||Ki(e,t))return this.tileCache;const i=z(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new ll(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]}createTile_(t,e,i,n,r,s){const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=a?this.tileUrlFunction(a,n,r):void 0,h=new this.tileClass(o,void 0!==l?H:tt,void 0!==l?l:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return h.key=s,h.addEventListener(S,this.handleTileChange.bind(this)),h}getTile(t,e,i,n,r){const s=this.getProjection();if(!s||!r||Ki(s,r))return this.getTileInternal(t,e,i,n,s||r);const o=this.getTileCacheForProjection(r),a=[t,e,i];let l;const h=nl(a);o.containsKey(h)&&(l=o.get(h));const c=this.getKey();if(l&&l.key==c)return l;const u=this.getTileGridForProjection(s),d=this.getTileGridForProjection(r),g=this.getTileCoordForTileUrlFunction(a,r),f=new Xl(s,u,r,d,a,g,this.getTilePixelRatio(n),this.getGutter(),function(t,e,i,n){return this.getTileInternal(t,e,i,n,s)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return f.key=c,l?(f.interimTile=l,f.refreshInterimChain(),o.replace(h,f)):o.set(h,f),f}getTileInternal(t,e,i,n,r){let s=null;const o=il(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,n,r,a),l.getState()==H?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,n,r,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=Ui(t);if(i){const t=z(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}}function gh(t,e){t.getImage().src=e}function fh(t){const e=t[0],i=new Array(e);let n,r,s=1<<e-1;for(n=0;n<e;++n)r=48,t[1]&s&&(r+=1),t[2]&s&&(r+=2),i[n]=String.fromCharCode(r),s>>=1;return i.join("")}class ph extends dh{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:th({extent:nh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}}function mh(t,e,i,n,r){_h(t,e,i||0,n||t.length-1,r||xh)}function _h(t,e,i,n,r){for(;n>i;){if(n-i>600){var s=n-i+1,o=e-i+1,a=Math.log(s),l=.5*Math.exp(2*a/3),h=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);_h(t,e,Math.max(i,Math.floor(e-o*l/s+h)),Math.min(n,Math.floor(e+(s-o)*l/s+h)),r)}var c=t[e],u=i,d=n;for(yh(t,i,e),r(t[n],c)>0&&yh(t,i,n);u<d;){for(yh(t,u,d),u++,d--;r(t[u],c)<0;)u++;for(;r(t[d],c)>0;)d--}0===r(t[i],c)?yh(t,i,d):yh(t,++d,n),d<=e&&(i=d+1),e<=d&&(n=d-1)}}function yh(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function xh(t,e){return t<e?-1:t>e?1:0}class vh{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const i=[];if(!Fh(t,e))return i;const n=this.toBBox,r=[];for(;e;){for(let s=0;s<e.children.length;s++){const o=e.children[s],a=e.leaf?n(o):o;Fh(t,a)&&(e.leaf?i.push(o):Lh(t,a)?this._all(o,i):r.push(o))}e=r.pop()}return i}collides(t){let e=this.data;if(!Fh(t,e))return!1;const i=[];for(;e;){for(let n=0;n<e.children.length;n++){const r=e.children[n],s=e.leaf?this.toBBox(r):r;if(Fh(t,s)){if(e.leaf||Lh(t,s))return!0;i.push(r)}}e=i.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(let e=0;e<t.length;e++)this.insert(t[e]);return this}let e=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const t=this.data;this.data=e,e=t}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=Mh([]),this}remove(t,e){if(!t)return this;let i=this.data;const n=this.toBBox(t),r=[],s=[];let o,a,l;for(;i||r.length;){if(i||(i=r.pop(),a=r[r.length-1],o=s.pop(),l=!0),i.leaf){const n=Sh(t,i.children,e);if(-1!==n)return i.children.splice(n,1),r.push(i),this._condense(r),this}l||i.leaf||!Lh(i,n)?a?(o++,i=a.children[o],l=!1):i=null:(r.push(i),s.push(o),o=0,a=i,i=i.children[0])}return this}toBBox(t){return t}compareMinX(t,e){return t.minX-e.minX}compareMinY(t,e){return t.minY-e.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,e){const i=[];for(;t;)t.leaf?e.push(...t.children):i.push(...t.children),t=i.pop();return e}_build(t,e,i,n){const r=i-e+1;let s,o=this._maxEntries;if(r<=o)return s=Mh(t.slice(e,i+1)),wh(s,this.toBBox),s;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),s=Mh([]),s.leaf=!1,s.height=n;const a=Math.ceil(r/o),l=a*Math.ceil(Math.sqrt(o));Ah(t,e,i,l,this.compareMinX);for(let r=e;r<=i;r+=l){const e=Math.min(r+l-1,i);Ah(t,r,e,a,this.compareMinY);for(let i=r;i<=e;i+=a){const r=Math.min(i+a-1,e);s.children.push(this._build(t,i,r,n-1))}}return wh(s,this.toBBox),s}_chooseSubtree(t,e,i,n){for(;n.push(e),!e.leaf&&n.length-1!==i;){let i,n=1/0,o=1/0;for(let a=0;a<e.children.length;a++){const l=e.children[a],h=Rh(l),c=(r=t,s=l,(Math.max(s.maxX,r.maxX)-Math.min(s.minX,r.minX))*(Math.max(s.maxY,r.maxY)-Math.min(s.minY,r.minY))-h);c<o?(o=c,n=h<n?h:n,i=l):c===o&&h<n&&(n=h,i=l)}e=i||e.children[0]}var r,s;return e}_insert(t,e,i){const n=i?t:this.toBBox(t),r=[],s=this._chooseSubtree(n,this.data,e,r);for(s.children.push(t),Eh(s,n);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(t,e){const i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);const s=this._chooseSplitIndex(i,r,n),o=Mh(i.children.splice(s,i.children.length-s));o.height=i.height,o.leaf=i.leaf,wh(i,this.toBBox),wh(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(i,o)}_splitRoot(t,e){this.data=Mh([t,e]),this.data.height=t.height+1,this.data.leaf=!1,wh(this.data,this.toBBox)}_chooseSplitIndex(t,e,i){let n,r=1/0,s=1/0;for(let o=e;o<=i-e;o++){const e=Th(t,0,o,this.toBBox),a=Th(t,o,i,this.toBBox),l=Ih(e,a),h=Rh(e)+Rh(a);l<r?(r=l,n=o,s=h<s?h:s):l===r&&h<s&&(s=h,n=o)}return n||i-e}_chooseSplitAxis(t,e,i){const n=t.leaf?this.compareMinX:Ch,r=t.leaf?this.compareMinY:bh;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,r)&&t.children.sort(n)}_allDistMargin(t,e,i,n){t.children.sort(n);const r=this.toBBox,s=Th(t,0,e,r),o=Th(t,i-e,i,r);let a=Ph(s)+Ph(o);for(let n=e;n<i-e;n++){const e=t.children[n];Eh(s,t.leaf?r(e):e),a+=Ph(s)}for(let n=i-e-1;n>=e;n--){const e=t.children[n];Eh(o,t.leaf?r(e):e),a+=Ph(o)}return a}_adjustParentBBoxes(t,e,i){for(let n=i;n>=0;n--)Eh(e[n],t)}_condense(t){for(let e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children,e.splice(e.indexOf(t[i]),1)):this.clear():wh(t[i],this.toBBox)}}function Sh(t,e,i){if(!i)return e.indexOf(t);for(let n=0;n<e.length;n++)if(i(t,e[n]))return n;return-1}function wh(t,e){Th(t,0,t.children.length,e,t)}function Th(t,e,i,n,r){r||(r=Mh(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let s=e;s<i;s++){const e=t.children[s];Eh(r,t.leaf?n(e):e)}return r}function Eh(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function Ch(t,e){return t.minX-e.minX}function bh(t,e){return t.minY-e.minY}function Rh(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function Ph(t){return t.maxX-t.minX+(t.maxY-t.minY)}function Ih(t,e){const i=Math.max(t.minX,e.minX),n=Math.max(t.minY,e.minY),r=Math.min(t.maxX,e.maxX),s=Math.min(t.maxY,e.maxY);return Math.max(0,r-i)*Math.max(0,s-n)}function Lh(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function Fh(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.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 Ah(t,e,i,n,r){const s=[e,i];for(;s.length;){if((i=s.pop())-(e=s.pop())<=n)continue;const o=e+Math.ceil((i-e)/n/2)*n;mh(t,o,e,i,r),s.push(e,o,o,i)}}class Oh{constructor(t){this.rbush_=new vh(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[z(e)]=i}load(t,e){const i=new Array(e.length);for(let n=0,r=e.length;n<r;n++){const r=t[n],s=e[n],o={minX:r[0],minY:r[1],maxX:r[2],maxY:r[3],value:s};i[n]=o,this.items_[z(s)]=o}this.rbush_.load(i)}remove(t){const e=z(t),i=this.items_[e];return delete this.items_[e],null!==this.rbush_.remove(i)}update(t,e){const i=this.items_[z(e)];ee([i.minX,i.minY,i.maxX,i.maxY],t)||(this.remove(e),this.insert(t,e))}getAll(){return this.rbush_.all().map((function(t){return t.value}))}getInExtent(t){const e={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]};return this.rbush_.search(e).map((function(t){return t.value}))}forEach(t){return this.forEach_(this.getAll(),t)}forEachInExtent(t,e){return this.forEach_(this.getInExtent(t),e)}forEach_(t,e){let i;for(let n=0,r=t.length;n<r;n++)if(i=e(t[n]),i)return i;return i}isEmpty(){return x(this.items_)}clear(){this.rbush_.clear(),this.items_={}}getExtent(t){const e=this.rbush_.toJSON();return $t(e.minX,e.minY,e.maxX,e.maxY,t)}concat(t){this.rbush_.load(t.rbush_.all());for(const e in t.items_)this.items_[e]=t.items_[e]}}var Nh="addfeature",Dh="changefeature",Gh="clear",kh="removefeature",jh="featuresloadstart",Bh="featuresloadend",Uh="featuresloaderror";class zh extends i{constructor(t,e,i){super(t),this.feature=e,this.features=i}}class Xh extends Yl{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=p,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(at(this.format_,7),this.loader_=yl(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:xl;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Oh:null,this.loadedExtentsRtree_=new Oh,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new q(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=z(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new zh(Nh,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[N(e,S,this.handleFeatureChange_,this),N(e,r,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(at(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let e=0,n=t.length;e<n;e++){const n=t[e],r=z(n);this.addToIndex_(r,n)&&i.push(n)}for(let t=0,r=i.length;t<r;t++){const r=i[t],s=z(r);this.setupChangeEvents_(s,r);const o=r.getGeometry();if(o){const t=o.getExtent();e.push(t),n.push(r)}else this.nullGeometryFeatures_[s]=r}if(this.featuresRtree_&&this.featuresRtree_.load(e,n),this.hasListener(Nh))for(let t=0,e=i.length;t<e;t++)this.dispatchEvent(new zh(Nh,i[t]))}bindFeaturesCollection_(t){let e=!1;this.addEventListener(Nh,(function(i){e||(e=!0,t.push(i.feature),e=!1)})),this.addEventListener(kh,(function(i){e||(e=!0,t.remove(i.feature),e=!1)})),t.addEventListener(W,function(t){e||(e=!0,this.addFeature(t.element),e=!1)}.bind(this)),t.addEventListener(Z,function(t){e||(e=!0,this.removeFeature(t.element),e=!1)}.bind(this)),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(G)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=function(t){this.removeFeatureInternal(t)}.bind(this);this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new zh(Gh);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){if(i.getGeometry().intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){if(i.getGeometry().intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),x(this.nullGeometryFeatures_)||c(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=Ie(t,e);return[].concat(...i.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let r=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||g,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e.closestPointXY(i,n,s,o),o<l){r=t;const e=Math.sqrt(o);a[0]=i-e,a[1]=n-e,a[2]=i+e,a[3]=n+e}}})),r}getExtent(t){return this.featuresRtree_.getExtent(t)}getFeatureById(t){const e=this.idIndex_[t.toString()];return void 0!==e?e:null}getFeatureByUid(t){const e=this.uidIndex_[t];return void 0!==e?e:null}getFormat(){return this.format_}getOverlaps(){return this.overlaps_}getUrl(){return this.url_}handleFeatureChange_(t){const e=t.target,i=z(e),n=e.getGeometry();if(n){const t=n.getExtent();i in this.nullGeometryFeatures_?(delete this.nullGeometryFeatures_[i],this.featuresRtree_&&this.featuresRtree_.insert(t,e)):this.featuresRtree_&&this.featuresRtree_.update(t,e)}else i in this.nullGeometryFeatures_||(this.featuresRtree_&&this.featuresRtree_.remove(e),this.nullGeometryFeatures_[i]=e);const r=e.getId();if(void 0!==r){const t=r.toString();this.idIndex_[t]!==e&&(this.removeFromIdIndex_(e),this.idIndex_[t]=e)}else this.removeFromIdIndex_(e),this.uidIndex_[i]=e;this.changed(),this.dispatchEvent(new zh(Dh,e))}hasFeature(t){const e=t.getId();return void 0!==e?e in this.idIndex_:z(t)in this.uidIndex_}isEmpty(){return this.featuresRtree_?this.featuresRtree_.isEmpty()&&x(this.nullGeometryFeatures_):!this.featuresCollection_||0===this.featuresCollection_.getLength()}loadFeatures(t,e,i){const n=this.loadedExtentsRtree_,r=this.strategy_(t,e,i);for(let t=0,s=r.length;t<s;++t){const s=r[t];n.forEachInExtent(s,(function(t){return Yt(t.extent,s)}))||(++this.loadingExtentsCount_,this.dispatchEvent(new zh(jh)),this.loader_.call(this,s,e,i,function(t){--this.loadingExtentsCount_,this.dispatchEvent(new zh(Bh,void 0,t))}.bind(this),function(){--this.loadingExtentsCount_,this.dispatchEvent(new zh(Uh))}.bind(this)),n.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(ee(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=z(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=z(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(G),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new zh(kh,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){at(this.format_,7),this.url_=t,this.setLoader(yl(t,this.format_))}}class Vh extends ot{constructor(t,e,i,n,r,s,o,a,l,h,c){super({tileCoord:r,loader:function(){return _((function(){return new Uint8Array(4)}))},interpolate:h}),this.pixelRatio_=o,this.gutter_=a,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=s||r,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const u=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent();let g=this.sourceTileGrid_.getExtent();const f=d?ye(u,d):u;if(0===ce(f))return void(this.state=tt);const p=t.getExtent();p&&(g=g?ye(g,p):p);const m=n.getResolution(this.wrappedTileCoord_[0]),y=jl(t,i,f,m);if(!isFinite(y)||y<=0)return void(this.state=tt);const x=void 0!==c?c:Ul;if(this.triangulation_=new zl(t,i,f,g,y*x,m),0===this.triangulation_.getTriangles().length)return void(this.state=tt);this.sourceZ_=e.getZForResolution(y);let v=this.triangulation_.calculateSourceExtent();if(g&&(t.canWrapX()?(v[1]=ii(v[1],g[1],g[3]),v[3]=ii(v[3],g[1],g[3])):v=ye(v,g)),ce(v)){const t=e.getTileRangeForExtentAndZ(v,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=l(this.sourceZ_,e,i,o);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=tt)}else this.state=tt}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach(function(e,i,n){if(e&&e.getState()==J){const i=e.getSize(),n=this.gutter_,r=e.getData(),s=[i[0]+2*n,i[1]+2*n],o=r instanceof Float32Array,a=s[0]*s[1],l=o?Float32Array:Uint8Array,h=new l(r.buffer),c=l.BYTES_PER_ELEMENT,u=c*h.length/a,d=h.byteLength/s[1],g=Math.floor(d/c/s[0]),f=a*g;let p=h;if(h.length!==f){p=new l(f);let t=0,e=0;const i=s[0]*g;for(let n=0;n<s[1];++n){for(let n=0;n<i;++n)p[t++]=h[e+n];e+=d/c}}t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),data:new Uint8Array(p.buffer),dataType:l,bytesPerPixel:u,pixelSize:s})}}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=Q;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);let l,h;const c=t[0].bytesPerPixel;for(let e=Math.ceil(c/3)-1;e>=0;--e){const i=[];for(let n=0,r=t.length;n<r;++n){const r=t[n],s=r.data,o=r.pixelSize,a=o[0],l=o[1],h=Dr(a,l,Nl),u=h.getImageData(0,0,a,l),d=u.data;let g=3*e;for(let t=0,e=d.length;t<e;t+=4)d[t]=s[g],d[t+1]=s[g+1],d[t+2]=s[g+2],d[t+3]=255,g+=c;h.putImageData(u,0,0),i.push({extent:r.extent,image:h.canvas})}const u=Bl(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,i,this.gutter_,!1,!1);for(let t=0,e=i.length;t<e;++t){const e=i[t].image.getContext("2d");Gr(e),Nl.push(e.canvas)}const d=u.getContext("2d"),g=d.getImageData(0,0,u.width,u.height);Gr(d),Nl.push(u),l||(h=new Uint8Array(c*g.width*g.height),l=new t[0].dataType(h.buffer));const f=g.data;let p=3*e;for(let t=0,e=f.length;t<e;t+=4)255===f[t+3]?(h[p]=f[t],h[p+1]=f[t+1],h[p+2]=f[t+2]):(h[p]=0,h[p+1]=0,h[p+2]=0),p+=c}this.reprojData_=l,this.reprojSize_=[Math.round(n*this.pixelRatio_),Math.round(r*this.pixelRatio_)],this.state=J}this.changed()}load(){if(this.state!==H&&this.state!==Q)return;this.state=$,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,n){const r=e.getState();if(r==H||r==$){t++;const i=N(e,S,(function(n){const r=e.getState();r!=J&&r!=Q&&r!=tt||(G(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==H&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(G),this.sourcesListenerKeys_=null}}class Wh extends rh{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=th({extent:nh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?Va(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?Va(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||Ki(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,n,r){const s=this.getTileCacheForProjection(n),o=il(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((t,e)=>{const i=Va(a.getTileSize(e)),n=this.getTileSize(e);return Math.max(n[0]/i[0],n[1]/i[1])}))),h=this.getTileGridForProjection(r),c=this.getTileGridForProjection(n),u=[t,e,i],d=this.getTileCoordForTileUrlFunction(u,n),g=new Vh(r,h,n,c,u,d,l,this.getGutterForProjection(r),function(t,e,i,n){return this.getTile(t,e,i,n,r)}.bind(this),this.getInterpolate());return g.key=this.getKey(),g}getTile(t,e,i,n,r){const s=this.getProjection();if(s&&r&&!Ki(s,r))return this.getReprojTile_(t,e,i,r,s);const o=this.getTileSize(t),a=il(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const h=Object.assign({tileCoord:[t,e,i],loader:function(){return _((function(){return l(t,e,i)}))},size:o},this.tileOptions),c=new ot(h);return c.key=this.getKey(),c.addEventListener(S,this.handleTileChange_),this.tileCache.set(a,c),c}handleTileChange_(t){const e=t.target,i=z(e),n=e.getState();let r;n==$?(this.tileLoadingKeys_[i]=!0,r=Vl):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==Q?Zl:n==J?Wl:void 0),r&&this.dispatchEvent(new sh(r,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||Ki(e,t)))return this.tileGrid;const i=z(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=$l(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=Ui(t);if(i){const t=z(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||Ki(e,t))return this.tileCache;const i=z(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new ll(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const n=this.tileCacheForProjection_[t];n.expireCache(n==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}}function Zh(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,n=GeoTIFF.globals.photometricInterpretations;return i===n.CMYK||i===n.YCbCr||i===n.CIELab||i===n.ICCLab}const Yh="STATISTICS_MAXIMUM",Kh="STATISTICS_MINIMUM";let qh;function Hh(t){try{return t.getBoundingBox()}catch(e){const i=t.fileDirectory;return[0,0,i.ImageWidth,i.ImageLength]}}function $h(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.fileDirectory.ImageLength]}}function Jh(t,e){try{return t.getResolution(e)}catch(i){return[e.fileDirectory.ImageWidth/t.fileDirectory.ImageWidth,e.fileDirectory.ImageHeight/t.fileDirectory.ImageHeight]}}function Qh(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=Ui(t);if(!i){const n=Fe(e.ProjLinearUnitsGeoKey);n&&(i=new Ae({code:t,units:n}))}return i}if(e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=Ui(t);if(!i){const n=Fe(e.GeogAngularUnitsGeoKey);n&&(i=new Ae({code:t,units:n}))}return i}return null}function tc(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let n=0;n<e;++n)i[n]=t.getImage(n);return Promise.all(i)}))}function ec(t,e){let i;return i=t.blob?GeoTIFF.fromBlob(t.blob):t.overviews?GeoTIFF.fromUrls(t.url,t.overviews,e):GeoTIFF.fromUrl(t.url,e),i.then(tc)}function ic(t,e,i,n,r){if(Array.isArray(t)){const s=t.length;if(!Array.isArray(e)||s!=e.length){const t=new Error(n);throw r(t),t}for(let o=0;o<s;++o)ic(t[o],e[o],i,n,r)}else if(Math.abs(t-e)>i*t)throw new Error(n)}function nc(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class rc extends Wh{constructor(t){super({state:"loading",tileGrid:null,projection:null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map((t=>t.url)).join(","));const i=this,n=new Array(e);for(let t=0;t<e;++t)n[t]=ec(this.sourceInfo_[t],this.sourceOptions_);Promise.all(n).then((function(t){i.configure_(t)})).catch((function(t){console.error(t),i.error_=t,i.setState("error")}))}getError(){return this.error_}configure_(t){let e,i,n,r,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let h=0;const c=t.length;for(let u=0;u<c;++u){const c=[],d=[];t[u].forEach((t=>{4==(4&(t.fileDirectory.NewSubfileType||0))?d.push(t):c.push(t)}));const g=c.length;if(d.length>0&&d.length!==g)throw new Error(`Expected one mask per image found ${d.length} masks and ${g} images`);let f,p;const m=new Array(g),_=new Array(g),y=new Array(g);a[u]=new Array(g),l[u]=new Array(g);for(let t=0;t<g;++t){const e=c[t],i=e.getGDALNoData();l[u][t]=e.getGDALMetadata(0),a[u][t]=i;const n=this.sourceInfo_[u].bands;o[u]=n?n.length:e.getSamplesPerPixel();const r=g-(t+1);f||(f=Hh(e)),p||(p=$h(e));const s=Jh(e,c[0]);y[r]=s[0];const h=[e.getTileWidth(),e.getTileHeight()];m[r]=h;const d=s[0]/Math.abs(s[1]);_[r]=[h[0],h[1]/d]}if(e?ye(e,f,e):e=f,i){ic(i,p,0,`Origin mismatch for source ${u}, got [${p}] but expected [${i}]`,this.viewRejector)}else i=p;if(s){s.length-h>y.length&&(h=s.length-y.length);const t=s[s.length-1]/y[y.length-1];this.resolutionFactors_[u]=t;const e=y.map((e=>e*t)),i=`Resolution mismatch for source ${u}, got [${e}] but expected [${s}]`;ic(s.slice(h,s.length),e,.02,i,this.viewRejector)}else s=y,this.resolutionFactors_[u]=1;n?ic(n.slice(h,n.length),_,.01,`Tile size mismatch for source ${u}`,this.viewRejector):n=_,r?ic(r.slice(h,r.length),m,0,`Tile size mismatch for source ${u}`,this.viewRejector):r=m,this.sourceImagery_[u]=c.reverse(),this.sourceMasks_[u]=d.reverse()}for(let t=0,e=this.sourceImagery_.length;t<e;++t){const e=this.sourceImagery_[t];for(;e.length<s.length;)e.unshift(void 0)}if(!this.getProjection()){const e=t[0];for(let t=e.length-1;t>=0;--t){const i=Qh(e[t]);if(i){this.projection=i;break}}}this.samplesPerPixel_=o,this.nodataValues_=a,this.metadata_=l;t:for(let t=0;t<c;++t){if(void 0!==this.sourceInfo_[t].nodata){this.addAlpha_=!0;break}if(this.sourceMasks_[t].length){this.addAlpha_=!0;break}const e=a[t],i=this.sourceInfo_[t].bands;if(i){for(let t=0;t<i.length;++t)if(null!==e[i[t]-1]){this.addAlpha_=!0;break t}}else for(let t=0;t<e.length;++t)if(null!==e[t]){this.addAlpha_=!0;break t}}let u=this.addAlpha_?1:0;for(let t=0;t<c;++t)u+=o[t];this.bandCount=u;const d=new Hl({extent:e,minZoom:h,origin:i,resolutions:s,tileSizes:n});this.tileGrid=d,this.setTileSizes(r),this.setLoader(this.loadTile_.bind(this)),this.setState("ready");let g=0;1===s.length&&(s=[2*s[0],s[0]],g=1),this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:nn(ge(e),this.projection),extent:sn(e,this.projection),zoom:g})}loadTile_(t,e,i){const n=this.getTileSize(t),r=this.sourceImagery_.length,s=new Array(2*r),o=this.nodataValues_,a=this.sourceInfo_,l=(qh||(qh=new GeoTIFF.Pool),qh);for(let h=0;h<r;++h){const c=a[h],u=this.resolutionFactors_[h],d=[Math.round(e*(n[0]*u)),Math.round(i*(n[1]*u)),Math.round((e+1)*(n[0]*u)),Math.round((i+1)*(n[1]*u))],g=this.sourceImagery_[h][t];let f,p;c.bands&&(f=c.bands.map((function(t){return t-1}))),p="nodata"in c&&null!==c.nodata?c.nodata:f?f.map((function(t){return o[h][t]})):o[h];const m={window:d,width:n[0],height:n[1],samples:f,fillValue:p,pool:l,interleave:!1};Zh(this.convertToRGB_,g)?s[h]=g.readRGB(m):s[h]=g.readRasters(m);const _=r+h,y=this.sourceMasks_[h][t];y?s[_]=y.readRasters({window:d,width:n[0],height:n[1],samples:[0],pool:l,interleave:!1}):s[_]=Promise.resolve(null)}return Promise.all(s).then(this.composeTile_.bind(this,n)).catch((function(t){throw console.error(t),t}))}composeTile_(t,e){const i=this.metadata_,n=this.sourceInfo_,r=this.sourceImagery_.length,s=this.bandCount,o=this.samplesPerPixel_,a=this.nodataValues_,l=this.normalize_,h=this.addAlpha_,c=t[0]*t[1],u=c*s;let d;d=l?new Uint8Array(u):new Float32Array(u);let g=0;for(let t=0;t<c;++t){let s=h;for(let c=0;c<r;++c){const u=n[c];let p,m,_=u.min,y=u.max;if(l){const t=i[c][0];void 0===_&&(_=t&&Kh in t?parseFloat(t.STATISTICS_MINIMUM):(f=e[c][0])instanceof Int8Array?-128:f instanceof Int16Array?-32768:f instanceof Int32Array?-2147483648:f instanceof Float32Array?12e-39:0),void 0===y&&(y=t&&Yh in t?parseFloat(t.STATISTICS_MAXIMUM):nc(e[c][0])),p=255/(y-_),m=-_*p}for(let i=0;i<o[c];++i){const n=e[c][i][t];let r;if(r=l?ii(p*n+m,0,255):n,h){let t=u.nodata;if(void 0===t){let e;e=u.bands?u.bands[i]-1:i,t=a[c][e]}const e=isNaN(t);(!e&&n!==t||e&&!isNaN(n))&&(s=!1,d[g]=r)}else d[g]=r;g++}if(!s){const i=e[r+c];i&&!i[0][t]&&(s=!0)}}h&&(s||(d[g]=255),g++)}var f;return d}}rc.prototype.getView;class sc extends Vr{constructor(t,e,i,n,r,s,o){super(e,i,n,r,s,o),this.zoomifyImage_=null,this.tileSize_=t}getImage(){if(this.zoomifyImage_)return this.zoomifyImage_;const t=super.getImage();if(this.state==J){const e=this.tileSize_;if(t.width==e[0]&&t.height==e[1])return this.zoomifyImage_=t,t;const i=Dr(e[0],e[1]);return i.drawImage(t,0,0),this.zoomifyImage_=i.canvas,i.canvas}return t}}const oc="version1",ac="version2",lc="version3",hc={};hc[oc]={level0:{supports:[],formats:[],qualities:["native"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["native"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["native","color","grey","bitonal"]}},hc[ac]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByDistortedWh","sizeByWh"],formats:["jpg","png"],qualities:["default","bitonal"]}},hc[lc]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","regionSquare","sizeByW","sizeByH","sizeByWh"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionSquare","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["default"]}},hc.none={none:{supports:[],formats:[],qualities:[]}};const cc=/^https?:\/\/library\.stanford\.edu\/iiif\/image-api\/(?:1\.1\/)?compliance\.html#level[0-2]$/,uc=/^https?:\/\/iiif\.io\/api\/image\/2\/level[0-2](?:\.json)?$/,dc=/(^https?:\/\/iiif\.io\/api\/image\/3\/level[0-2](?:\.json)?$)|(^level[0-2]$)/;const gc={};gc[oc]=function(t){let e=t.getComplianceLevelSupportedFeatures();return void 0===e&&(e=hc[oc].level0),{url:void 0===t.imageInfo["@id"]?void 0:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),supports:e.supports,formats:[...e.formats,void 0===t.imageInfo.formats?[]:t.imageInfo.formats],qualities:[...e.qualities,void 0===t.imageInfo.qualities?[]:t.imageInfo.qualities],resolutions:t.imageInfo.scale_factors,tileSize:void 0!==t.imageInfo.tile_width?void 0!==t.imageInfo.tile_height?[t.imageInfo.tile_width,t.imageInfo.tile_height]:[t.imageInfo.tile_width,t.imageInfo.tile_width]:null!=t.imageInfo.tile_height?[t.imageInfo.tile_height,t.imageInfo.tile_height]:void 0}},gc[ac]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=Array.isArray(t.imageInfo.profile)&&t.imageInfo.profile.length>1,n=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],r=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...n],formats:[...e.formats,...r],qualities:[...e.qualities,...s]}},gc[lc]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:n}};function fc(t){return t.toLocaleString("en",{maximumFractionDigits:10})}class pc extends Rr{constructor(t,e,i,n,r,s,o){const a=t.getExtent(),l=e.getExtent(),h=l?ye(i,l):i,c=kl(t,e,ge(h),n),u=new zl(t,e,h,a,.5*c,n),d=s(u.calculateSourceExtent(),c,r),g=d?Pr:Mr,f=d?d.getPixelRatio():1;super(i,n,f,g),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=u,this.targetResolution_=n,this.targetExtent_=i,this.sourceImage_=d,this.sourcePixelRatio_=f,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){this.state==Ir&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(t==Lr){const t=Se(this.targetExtent_)/this.targetResolution_,e=_e(this.targetExtent_)/this.targetResolution_;this.canvas_=Bl(t,e,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_)}this.state=t,this.changed()}load(){if(this.state==Pr){this.state=Ir,this.changed();const t=this.sourceImage_.getState();t==Lr||t==Fr?this.reproject_():(this.sourceListenerKey_=N(this.sourceImage_,S,(function(t){const e=this.sourceImage_.getState();e!=Lr&&e!=Fr||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}}unlistenSource_(){G(this.sourceListenerKey_),this.sourceListenerKey_=null}}const mc="imageloadstart",_c="imageloadend",yc="imageloaderror";class xc extends i{constructor(t,e){super(t),this.image=e}}class vc extends Yl{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}getResolutions(){return this.resolutions_}findNearestResolution(t){if(this.resolutions_){const e=l(this.resolutions_,t,0);t=this.resolutions_[e]}return t}getImage(t,e,i,n){const r=this.getProjection();if(!r||!n||Ki(r,n))return r&&(n=r),this.getImageInternal(t,e,i,n);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Ki(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&ee(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new pc(r,n,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,r)}.bind(this),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,n){return B()}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case Ir:this.loading=!0,i=mc;break;case Lr:this.loading=!1,i=_c;break;case Fr:this.loading=!1,i=yc;break;default:return}this.hasListener(i)&&this.dispatchEvent(new xc(i,e))}}function Sc(t,e){t.getImage().src=e}function wc(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const n=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+n}const Tc="1.3.0",Ec=[101,101];const Cc='© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors.';class bc extends vs{constructor(t){super(t=t||{})}}class Rc extends k{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return B()}getData(t){return null}prepareFrame(t){return B()}renderFrame(t,e){return B()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return function(n,r){const s=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,r,s)}.bind(this)}forEachFeatureAtCoordinate(t,e,i,n,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){t.target.getState()===Lr&&this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=Lr&&e!=Fr&&t.addEventListener(S,this.boundHandleImageChange_),e==Pr&&(t.load(),e=t.getState()),e==Lr}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}}const Pc=[];let Ic=null;class Lc extends Rc{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=[1,0,0,1,0,0],this.pixelTransform=[1,0,0,1,0,0],this.inversePixelTransform=[1,0,0,1,0,0],this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;Ic||function(){const t=document.createElement("canvas");t.width=1,t.height=1,Ic=t.getContext("2d")}(),Ic.clearRect(0,0,1,1);try{Ic.drawImage(t,e,i,1,1,0,0,1,1),n=Ic.getImageData(0,0,1,1).data}catch(t){return Ic=null,null}return n}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let r,s;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&u($r(t.style.backgroundColor),$r(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused&&(this.container=null,this.context=null,this.containerReused=!1),!this.container){r=document.createElement("div"),r.className=n;let t=r.style;t.position="absolute",t.width="100%",t.height="100%",s=Dr();const e=s.canvas;r.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=r,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=xe(i),r=ve(i),s=de(i),o=ue(i);bt(e.coordinateToPixelTransform,n),bt(e.coordinateToPixelTransform,r),bt(e.coordinateToPixelTransform,s),bt(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;bt(a,n),bt(a,r),bt(a,s),bt(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const r=new Es(t,this.inversePixelTransform,i,e);n.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(ps,t,e)}postRender(t,e){this.dispatchRenderEvent_(ms,t,e)}getRenderTransform(t,e,i,n,r,s,o){const a=r/2,l=s/2,h=n/e,c=-h,u=-t[0]+o,d=-t[1];return Ft(this.tempTransform,a,l,h,c,-i,u,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}}class Fc extends Lc{constructor(t){super(t),this.image_=null}getImage(){return this.image_?this.image_.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],i=t.pixelRatio,n=t.viewState,r=n.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=ye(a,on(e.extent,n.projection))),!o[Ro]&&!o[Po]&&!Te(a))if(s){const t=n.projection,e=s.getImage(a,r,i,t);e&&(this.loadImage(e)?this.image_=e:e.getState()===Mr&&(this.image_=null))}else this.image_=null;return!!this.image_}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=bt(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!Zt(r,n))return null;const s=this.image_.getExtent(),o=this.image_.getImage(),a=Se(s),l=Math.floor(o.width*((n[0]-s[0])/a));if(l<0||l>=o.width)return null;const h=_e(s),c=Math.floor(o.height*((s[3]-n[1])/h));return c<0||c>=o.height?null:this.getImageData(o,l,c)}renderFrame(t,e){const i=this.image_,n=i.getExtent(),r=i.getResolution(),s=i.getPixelRatio(),o=t.layerStatesArray[t.layerIndex],a=t.pixelRatio,l=t.viewState,h=l.center,c=a*r/(l.resolution*s),u=t.extent,d=l.resolution,g=l.rotation,f=Math.round(Se(u)/d*a),p=Math.round(_e(u)/d*a);Ft(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/a,1/a,g,-f/2,-p/2),Mt(this.inversePixelTransform,this.pixelTransform);const m=Nt(this.pixelTransform);this.useContainer(e,m,this.getBackground(t));const _=this.context,y=_.canvas;y.width!=f||y.height!=p?(y.width=f,y.height=p):this.containerReused||_.clearRect(0,0,f,p);let x=!1,v=!0;if(o.extent){const e=on(o.extent,l.projection);v=we(e,t.extent),x=v&&!Yt(e,t.extent),x&&this.clipUnrotated(_,t,e)}const S=i.getImage(),w=Ft(this.tempTransform,f/2,p/2,c,c,0,s*(n[0]-h[0])/r,s*(h[1]-n[3])/r);this.renderedResolution=r*a/s;const T=S.width*w[0],E=S.height*w[3];if(this.getLayer().getSource().getInterpolate()||(_.imageSmoothingEnabled=!1),this.preRender(_,t),v&&T>=.5&&E>=.5){const t=w[4],e=w[5],i=o.opacity;let n;1!==i&&(n=_.globalAlpha,_.globalAlpha=i),_.drawImage(S,0,0,+S.width,+S.height,t,e,T,E),1!==i&&(_.globalAlpha=n)}return this.postRender(_,t),x&&_.restore(),_.imageSmoothingEnabled=!0,m!==y.style.transform&&(y.style.transform=m),this.container}}class Mc extends bc{constructor(t){super(t)}createRenderer(){return new Fc(this)}getData(t){return super.getData(t)}}var Ac="preload",Oc="useInterimTilesOnError";class Nc extends vs{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(Ac)}setPreload(t){this.set(Ac,t)}getUseInterimTilesOnError(){return this.get(Oc)}setUseInterimTilesOnError(t){this.set(Oc,t)}getData(t){return super.getData(t)}}class Dc extends Lc{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new hl(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==J||i==tt||i==Q&&!n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState.projection,o=this.getLayer();let a=o.getSource().getTile(t,e,i,r,s);return a.getState()==Q&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(a)||(a=a.getInterimTile()),a}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=bt(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!Zt(r,n))return null;const s=e.pixelRatio,o=e.viewState.projection,a=e.viewState,l=i.getRenderSource(),h=l.getTileGridForProjection(a.projection),c=l.getTilePixelRatio(e.pixelRatio);for(let t=h.getZForResolution(a.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=l.getTile(t,e[1],e[2],s,o);if(!(i instanceof Vr||i instanceof Xl)||i instanceof Xl&&i.getState()===tt)return null;if(i.getState()!==J)continue;const r=h.getOrigin(t),u=Va(h.getTileSize(t)),d=h.getResolution(t),g=Math.floor(c*((n[0]-r[0])/d-e[1]*u[0])),f=Math.floor(c*((r[1]-n[1])/d-e[2]*u[1])),p=Math.round(c*l.getGutterForProjection(a.projection));return this.getImageData(i.getImage(),g+p,f+p)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,r=n.projection,s=n.resolution,o=n.center,l=n.rotation,h=t.pixelRatio,c=this.getLayer(),u=c.getSource(),d=u.getRevision(),g=u.getTileGridForProjection(r),f=g.getZForResolution(s,u.zDirection),p=g.getResolution(f);let m=t.extent;const _=t.viewState.resolution,y=u.getTilePixelRatio(h),x=Math.round(Se(m)/_*h),v=Math.round(_e(m)/_*h),S=i.extent&&on(i.extent,r);S&&(m=ye(m,on(i.extent,r)));const w=p*x/2/y,T=p*v/2/y,E=[o[0]-w,o[1]-T,o[0]+w,o[1]+T],C=g.getTileRangeForExtentAndZ(m,f),b={};b[f]={};const R=this.createLoadedTileFinder(u,r,b),P=this.tmpExtent,I=this.tmpTileRange_;this.newTiles_=!1;const L=l?me(n.center,_,l,t.size):void 0;for(let e=C.minX;e<=C.maxX;++e)for(let n=C.minY;n<=C.maxY;++n){if(l&&!g.tileCoordIntersectsViewport([f,e,n],L))continue;const r=this.getTile(f,e,n,t);if(this.isDrawableTile(r)){const e=z(this);if(r.getState()==J){b[f][r.tileCoord.toString()]=r;let t=r.inTransition(e);t&&1!==i.opacity&&(r.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(r)||(this.newTiles_=!0)}if(1===r.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(r.tileCoord,I,P);let o=!1;s&&(o=R(f+1,s)),o||g.forEachTileCoordParentTileRange(r.tileCoord,R,I,P)}const F=p/s*h/y;Ft(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,l,-x/2,-v/2);const M=Nt(this.pixelTransform);this.useContainer(e,M,this.getBackground(t));const A=this.context,O=A.canvas;Mt(this.inversePixelTransform,this.pixelTransform),Ft(this.tempTransform,x/2,v/2,F,F,0,-x/2,-v/2),O.width!=x||O.height!=v?(O.width=x,O.height=v):this.containerReused||A.clearRect(0,0,x,v),S&&this.clipUnrotated(A,t,S),u.getInterpolate()||(A.imageSmoothingEnabled=!1),this.preRender(A,t),this.renderedTiles.length=0;let N,D,G,k=Object.keys(b).map(Number);k.sort(a),1!==i.opacity||this.containerReused&&!u.getOpaque(t.viewState.projection)?(N=[],D=[]):k=k.reverse();for(let e=k.length-1;e>=0;--e){const i=k[e],n=u.getTilePixelSize(i,h,r),s=g.getResolution(i)/p,o=n[0]*s*F,a=n[1]*s*F,l=g.getTileCoordForCoordAndZ(xe(E),i),c=g.getTileCoordExtent(l),d=bt(this.tempTransform,[y*(c[0]-E[0])/p,y*(E[3]-c[3])/p]),m=y*u.getGutterForProjection(r),_=b[i];for(const e in _){const n=_[e],r=n.tileCoord,s=l[1]-r[1],h=Math.round(d[0]-(s-1)*o),c=l[2]-r[2],g=Math.round(d[1]-(c-1)*a),p=Math.round(d[0]-s*o),y=Math.round(d[1]-c*a),x=h-p,v=g-y,S=f===i,w=S&&1!==n.getAlpha(z(this),t.time);let T=!1;if(!w)if(N){G=[p,y,p+x,y,p+x,y+v,p,y+v];for(let t=0,e=N.length;t<e;++t)if(f!==i&&i<D[t]){const e=N[t];we([p,y,p+x,y+v],[e[0],e[3],e[4],e[7]])&&(T||(A.save(),T=!0),A.beginPath(),A.moveTo(G[0],G[1]),A.lineTo(G[2],G[3]),A.lineTo(G[4],G[5]),A.lineTo(G[6],G[7]),A.moveTo(e[6],e[7]),A.lineTo(e[4],e[5]),A.lineTo(e[2],e[3]),A.lineTo(e[0],e[1]),A.clip())}N.push(G),D.push(i)}else A.clearRect(p,y,x,v);this.drawTileImage(n,t,p,y,x,v,m,S),N&&!w?(T&&A.restore(),this.renderedTiles.unshift(n)):this.renderedTiles.push(n),this.updateUsedTiles(t.usedTiles,u,n)}}return this.renderedRevision=d,this.renderedResolution=p,this.extentChanged=!this.renderedExtent_||!ee(this.renderedExtent_,E),this.renderedExtent_=E,this.renderedPixelRatio=h,this.renderedProjection=r,this.manageTilePyramid(t,u,g,h,r,m,f,c.getPreload()),this.scheduleExpireCache(t,u),this.postRender(A,t),i.extent&&A.restore(),A.imageSmoothingEnabled=!0,M!==O.style.transform&&(O.style.transform=M),this.container}drawTileImage(t,e,i,n,r,s,o,a){const l=this.getTileImage(t);if(!l)return;const h=z(this),c=e.layerStatesArray[e.layerIndex],u=c.opacity*(a?t.getAlpha(h,e.time):1),d=u!==this.context.globalAlpha;d&&(this.context.save(),this.context.globalAlpha=u),this.context.drawImage(l,o,o,l.width-2*o,l.height-2*o,i,n,r,s),d&&this.context.restore(),u!==c.opacity?e.animate=!0:a&&t.endTransition(h)}getImage(){const t=this.context;return t?t.canvas:null}getTileImage(t){return t.getImage()}scheduleExpireCache(t,e){if(e.canExpireCache()){const i=function(t,e,i){const n=z(t);n in i.usedTiles&&t.expireCache(i.viewState.projection,i.usedTiles[n])}.bind(null,e);t.postRenderFunctions.push(i)}}updateUsedTiles(t,e,i){const n=z(e);n in t||(t[n]={}),t[n][i.getKey()]=!0}manageTilePyramid(t,e,i,n,r,s,o,a,l){const h=z(e);h in t.wantedTiles||(t.wantedTiles[h]={});const c=t.wantedTiles[h],u=t.tileQueue,d=i.getMinZoom(),g=t.viewState.rotation,f=g?me(t.viewState.center,t.viewState.resolution,g,t.size):void 0;let p,m,_,y,x,v,S=0;for(v=d;v<=o;++v)for(m=i.getTileRangeForExtentAndZ(s,v,m),_=i.getResolution(v),y=m.minX;y<=m.maxX;++y)for(x=m.minY;x<=m.maxY;++x)g&&!i.tileCoordIntersectsViewport([v,y,x],f)||(o-v<=a?(++S,p=e.getTile(v,y,x,n,r),p.getState()==H&&(c[p.getKey()]=!0,u.isKeyQueued(p.getKey())||u.enqueue([p,h,i.getTileCoordCenter(p.tileCoord),_])),void 0!==l&&l(p)):e.useTile(v,y,x,r));e.updateCacheSize(S,r)}}class Gc extends Nc{constructor(t){super(t)}createRenderer(){return new Dc(this)}}let kc,jc=!0;try{new ImageData(10,10)}catch(t){jc=!1}function Bc(t,e,i){if(jc)return new ImageData(t,e,i);kc||(kc=document.createElement("canvas").getContext("2d"));const n=kc.createImageData(e,i);return n.data.set(t),n}function Uc(t){let e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,n){return e?new ImageData(t,i,n):{data:t,width:i,height:n}}return function(e){const n=e.buffers,r=e.meta,s=e.imageOps,o=e.width,a=e.height,l=n.length,h=n[0].byteLength;if(s){const e=new Array(l);for(let t=0;t<l;++t)e[t]=i(new Uint8ClampedArray(n[t]),o,a);return t(e,r).data.buffer}const c=new Uint8ClampedArray(h),u=new Array(l),d=new Array(l);for(let t=0;t<l;++t)u[t]=new Uint8ClampedArray(n[t]),d[t]=[0,0,0,0];for(let e=0;e<h;e+=4){for(let t=0;t<l;++t){const i=u[t];d[t][0]=i[e],d[t][1]=i[e+1],d[t][2]=i[e+2],d[t][3]=i[e+3]}const i=t(d,r);c[e]=i[0],c[e+1]=i[1],c[e+2]=i[2],c[e+3]=i[3]}return c.buffer}}function zc(t,e){const i=Object.keys(t.lib||{}).map((function(e){return"const "+e+" = "+t.lib[e].toString()+";"})).concat(["const __minion__ = ("+Uc.toString()+")(",t.operation.toString(),");",'self.addEventListener("message", function(event) {'," const buffer = __minion__(event.data);"," self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);","});"]),n=new Worker("undefined"==typeof Blob?"data:text/javascript;base64,"+Buffer.from(i.join("\n"),"binary").toString("base64"):URL.createObjectURL(new Blob(i,{type:"text/javascript"})));return n.addEventListener("message",e),n}class Xc extends s{constructor(t){let e;super(),this._imageOps=!!t.imageOps,e=0===t.threads?0:this._imageOps?1:t.threads||1;const i=new Array(e);if(e)for(let n=0;n<e;++n)i[n]=zc(t,this._onWorkerMessage.bind(this,n));else i[0]=function(t,e){const i=Uc(t.operation);let n=!1;return{postMessage:function(t){setTimeout((function(){n||e({data:{buffer:i(t),meta:t.meta}})}),0)},terminate:function(){n=!0}}}(t,this._onWorkerMessage.bind(this,0));this._workers=i,this._queue=[],this._maxQueueLength=t.queue||1/0,this._running=0,this._dataLookup={},this._job=null}process(t,e,i){this._enqueue({inputs:t,meta:e,callback:i}),this._dispatch()}_enqueue(t){for(this._queue.push(t);this._queue.length>this._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),r=this._workers.length;if(this._running=r,1===r)return void this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:i},n);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/r);for(let s=0;s<r;++s){const r=s*o,a=[];for(let t=0,e=n.length;t<e;++t)a.push(n[t].slice(r,r+o));this._workers[s].postMessage({buffers:a,meta:t.meta,imageOps:this._imageOps,width:e,height:i},a)}}_onWorkerMessage(t,e){this.disposed||(this._dataLookup[t]=e.data,--this._running,0===this._running&&this._resolveJob())}_resolveJob(){const t=this._job,e=this._workers.length;let i,n;if(1===e)i=new Uint8ClampedArray(this._dataLookup[0].buffer),n=this._dataLookup[0].meta;else{const r=t.inputs[0].data.length;i=new Uint8ClampedArray(r),n=new Array(e);const s=4*Math.ceil(r/4/e);for(let t=0;t<e;++t){const e=this._dataLookup[t].buffer,r=t*s;i.set(new Uint8ClampedArray(e),r),n[t]=this._dataLookup[t].meta}}this._job=null,this._dataLookup={},t.callback(null,Bc(i,t.inputs[0].width,t.inputs[0].height),n),this._dispatch()}disposeInternal(){for(let t=0;t<this._workers.length;++t)this._workers[t].terminate();this._workers.length=0}}const Vc="beforeoperations",Wc="afteroperations";class Zc extends i{constructor(t,e,i){super(t),this.extent=e.extent,this.resolution=e.viewState.resolution/e.pixelRatio,this.data=i}}class Yc extends vc{constructor(t){super({projection:null}),this.on,this.once,this.un,this.processor_=null,this.operationType_=void 0!==t.operationType?t.operationType:"pixel",this.threads_=void 0!==t.threads?t.threads:1,this.layers_=function(t){const e=t.length,i=new Array(e);for(let n=0;n<e;++n)i[n]=Hc(t[n]);return i}(t.sources);const e=this.changed.bind(this);for(let t=0,i=this.layers_.length;t<i;++t)this.layers_[t].addEventListener(S,e);var i;this.tileQueue_=new Co((function(){return 1}),this.changed.bind(this)),this.requestedFrameState_,this.renderedImageCanvas_=null,this.renderedRevision_,this.frameState_={animate:!1,coordinateToPixelTransform:[1,0,0,1,0,0],declutterTree:null,extent:null,index:0,layerIndex:0,layerStatesArray:(i=this.layers_,i.map((function(t){return t.getLayerState()}))),pixelRatio:1,pixelToCoordinateTransform:[1,0,0,1,0,0],postRenderFunctions:[],size:[0,0],tileQueue:this.tileQueue_,time:Date.now(),usedTiles:{},viewState:{rotation:0},viewHints:[],wantedTiles:{},mapId:z(this),renderTargets:{}},this.setAttributions((function(e){const i=[];for(let n=0,r=t.sources.length;n<r;++n){const r=t.sources[n],s=(r instanceof Yl?r:r.getSource()).getAttributions();if("function"==typeof s){const t=s(e);i.push.apply(i,t)}}return 0!==i.length?i:null})),void 0!==t.operation&&this.setOperation(t.operation,t.lib)}setOperation(t,e){this.processor_&&this.processor_.dispose(),this.processor_=new Xc({operation:t,imageOps:"image"===this.operationType_,queue:1,lib:e,threads:this.threads_}),this.changed()}updateFrameState_(t,e,i){const n=Object.assign({},this.frameState_);n.viewState=Object.assign({},n.viewState);const r=ge(t);n.extent=t.slice(),n.size[0]=Math.round(Se(t)/e),n.size[1]=Math.round(_e(t)/e),n.time=Date.now();const s=n.viewState;return s.center=r,s.projection=i,s.resolution=e,n}allSourcesReady_(){let t,e=!0;for(let i=0,n=this.layers_.length;i<n;++i)if(t=this.layers_[i].getSource(),"ready"!==t.getState()){e=!1;break}return e}getImage(t,e,i,n){if(!this.allSourcesReady_())return null;const r=this.updateFrameState_(t,e,n);if(this.requestedFrameState_=r,this.renderedImageCanvas_){const i=this.renderedImageCanvas_.getResolution(),n=this.renderedImageCanvas_.getExtent();e===i&&ee(t,n)||(this.renderedImageCanvas_=null)}return this.renderedImageCanvas_&&this.getRevision()===this.renderedRevision_||this.processSources_(),r.tileQueue.loadMoreTiles(16,16),r.animate&&requestAnimationFrame(this.changed.bind(this)),this.renderedImageCanvas_}processSources_(){const t=this.requestedFrameState_,e=this.layers_.length,i=new Array(e);for(let n=0;n<e;++n){t.layerIndex=n;const e=qc(this.layers_[n],t);if(!e)return;i[n]=e}const n={};this.dispatchEvent(new Zc(Vc,t,n)),this.processor_.process(i,n,this.onWorkerComplete_.bind(this,t))}onWorkerComplete_(t,e,i,n){if(e||!i)return;const r=t.extent,s=t.viewState.resolution;if(s!==this.requestedFrameState_.viewState.resolution||!ee(r,this.requestedFrameState_.extent))return;let o;if(this.renderedImageCanvas_)o=this.renderedImageCanvas_.getImage().getContext("2d");else{o=Dr(Math.round(Se(r)/s),Math.round(_e(r)/s)),this.renderedImageCanvas_=new Nr(r,s,1,o.canvas)}o.putImageData(i,0,0),this.changed(),this.renderedRevision_=this.getRevision(),this.dispatchEvent(new Zc(Wc,t,n)),t.animate&&requestAnimationFrame(this.changed.bind(this))}disposeInternal(){this.processor_&&this.processor_.dispose(),super.disposeInternal()}}Yc.prototype.dispose;let Kc=null;function qc(t,e){const i=t.getRenderer();if(!i)throw new Error("Unsupported layer type: "+t);if(!i.prepareFrame(e))return null;const n=e.size[0],r=e.size[1];if(0===n||0===r)return null;const s=i.renderFrame(e,null);let o;if(s instanceof HTMLCanvasElement)o=s;else{if(s&&(o=s.firstElementChild),!(o instanceof HTMLCanvasElement))throw new Error("Unsupported rendered element: "+o);if(o.width===n&&o.height===r){return o.getContext("2d").getImageData(0,0,n,r)}}if(Kc){const t=Kc.canvas;t.width!==n||t.height!==r?Kc=Dr(n,r):Kc.clearRect(0,0,n,r)}else Kc=Dr(n,r);return Kc.drawImage(o,0,0,n,r),Kc.getImageData(0,0,n,r)}function Hc(t){let e;return t instanceof Yl?t instanceof rh?e=new Gc({source:t}):t instanceof vc&&(e=new Mc({source:t})):e=t,e}const $c=['Map tiles by <a href="https://stamen.com/" target="_blank">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.',Cc],Jc={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Qc={terrain:{minZoom:0,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:0,maxZoom:18}};class tu extends st{constructor(t,e,i,n,r,s){super(t,e),this.src_=i,this.extent_=n,this.preemptive_=r,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof n)return null;let r=n.charCodeAt(Math.floor(e*n.length));r>=93&&r--,r>=35&&r--,r-=32;let s=null;if(r in this.keys_){const t=this.keys_[r];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==tt&&!0===i?(this.state=H,D(this,S,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout(function(){e(this.getData(t))}.bind(this),0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=Q,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=J,this.changed()}loadInternal_(){if(this.state==H)if(this.state=$,this.jsonp_)vl(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(tt)}}class eu extends uh{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||nh(e),n=t.tileGrid||th({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:n,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:iu,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new ll(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:gl,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const n=sl(i.peekFirstKey())[0],r=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==n||i.getState()!==J)return;const s=i.getSourceTiles();for(let i=0,n=s.length;i<n;++i){const n=s[i],o=n.tileCoord;if(we(t,r.getTileCoordExtent(o))){const i=n.getFeatures();if(i)for(let n=0,r=i.length;n<r;++n){const r=i[n],s=r.getGeometry();we(t,s.getExtent())&&e.push(r)}}}})),e}getOverlaps(){return this.overlaps_}clear(){this.tileCache.clear(),this.sourceTileCache.clear()}expireCache(t,e){const i=this.getTileCacheForProjection(t),n=Object.keys(e).reduce(((t,e)=>{const n=rl(e),r=i.peek(n);if(r){const e=r.sourceTiles;for(let i=0,n=e.length;i<n;++i)t[e[i].getKey()]=!0}return t}),{});super.expireCache(t,e),this.sourceTileCache.expireCache(n)}getSourceTiles(t,e,i){if(i.getState()===H){i.setState($);const n=i.wrappedTileCoord,r=this.getTileGridForProjection(e),s=r.getTileCoordExtent(n),o=n[0],a=r.getResolution(o);Xt(s,-a,s);const l=this.tileGrid,h=l.getExtent();h&&ye(s,h,s);const c=l.getZForResolution(a,this.zDirection);l.forEachTileCoord(s,c,(n=>{const r=this.tileUrlFunction(n,t,e),s=this.sourceTileCache.containsKey(r)?this.sourceTileCache.get(r):new this.tileClass(n,r?H:tt,r,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o<J){const t=e=>{this.handleTileChange(e);const n=s.getState();if(n===J||n===Q){const e=s.getKey();e in i.errorTileKeys?s.getState()===J&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,n===Q?i.errorTileKeys[e]=!0:s.removeEventListener(S,t),0===i.loadingSourceTiles&&i.setState(x(i.errorTileKeys)?J:Q)}};s.addEventListener(S,t),i.loadingSourceTiles++}o===H&&(s.extent=l.getTileCoordExtent(n),s.projection=e,s.resolution=l.getResolution(n[0]),this.sourceTileCache.set(r,s),s.load())})),i.loadingSourceTiles||i.setState(i.sourceTiles.some((t=>t.getState()===Q))?Q:J)}return i.sourceTiles}getTile(t,e,i,n,r){const s=il(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,r);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(r);if(h&&c){const e=u.getTileCoordExtent(h);Xt(e,-u.getResolution(t),e),we(c,e)||(h=null)}let d=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);Xt(o,-i,o),e.forEachTileCoord(o,s,function(t){d=d&&!this.tileUrlFunction(t,n,r)}.bind(this))}const g=new dl(l,d?tt:H,h,this.getSourceTiles.bind(this,n,r));return g.key=o,a?(g.interimTile=a,g.refreshInterimChain(),this.tileCache.replace(s,g)):this.tileCache.set(s,g),g}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,n=t.getResolutions().slice(),r=n.map((function(e,i){return t.getOrigin(i)})),s=n.map((function(e,i){return t.getTileSize(i)})),o=43;for(let t=n.length;t<o;++t)n.push(n[t-1]/2),r.push(r[t-1]),s.push(s[t-1]);i=new Hl({extent:t.getExtent(),origins:r,resolutions:n,tileSizes:s}),this.tileGrids_[e]=i}return i}getTilePixelRatio(t){return t}getTilePixelSize(t,e,i){const n=Va(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(n[0]*e),Math.round(n[1]*e)]}updateCacheSize(t,e){super.updateCacheSize(2*t,e),this.sourceTileCache.highWaterMark=this.getTileCacheForProjection(e).highWaterMark}}function iu(t,e){t.setLoader((function(i,n,r){_l(e,t.getFormat(),i,n,r,t.onLoad.bind(t),t.onError.bind(t))}))}class nu extends Hl{constructor(t){super({extent:t.extent,origin:t.origin,origins:t.origins,resolutions:t.resolutions,tileSize:t.tileSize,tileSizes:t.tileSizes,sizes:t.sizes}),this.matrixIds_=t.matrixIds}getMatrixId(t){return this.matrixIds_[t]}getMatrixIds(){return this.matrixIds_}}function ru(t,e,i){const n=[],r=[],s=[],o=[],a=[];i=void 0!==i?i:[];const l=Ui(t.SupportedCRS),h=l.getMetersPerUnit(),c="ne"==l.getAxisOrientation().substr(0,2);return t.TileMatrix.sort((function(t,e){return e.ScaleDenominator-t.ScaleDenominator})),t.TileMatrix.forEach((function(e){let l;if(l=!(i.length>0)||i.find((function(i){return e.Identifier==i.TileMatrix||!e.Identifier.includes(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})),l){r.push(e.Identifier);const t=28e-5*e.ScaleDenominator/h,i=e.TileWidth,l=e.TileHeight;c?s.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):s.push(e.TopLeftCorner),n.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new nu({extent:e,origins:s,resolutions:n,matrixIds:r,tileSizes:o,sizes:a})}const su=34962,ou=34963,au=35044,lu=35048,hu=5126,cu=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function uu(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!gt},e);const i=cu.length;for(let n=0;n<i;++n)try{const i=t.getContext(cu[n],e);if(i)return i}catch(t){}return null}let du;const gu="http://www.w3.org/2001/XMLSchema-instance";function fu(t,e){return ku().createElementNS(t,e)}function pu(t,e){return mu(t,e,[]).join("")}function mu(t,e,i){if(t.nodeType==Node.CDATA_SECTION_NODE||t.nodeType==Node.TEXT_NODE)e?i.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(t.nodeValue);else{let n;for(n=t.firstChild;n;n=n.nextSibling)mu(n,e,i)}return i}function _u(t){return"documentElement"in t}function yu(t,e,i){return t.getAttributeNS(e,i)||""}function xu(t){return(new DOMParser).parseFromString(t,"application/xml")}function vu(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){c(n[n.length-1],r)}}}function Su(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){n[n.length-1].push(r)}}}function wu(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);void 0!==r&&(n[n.length-1]=r)}}function Tu(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){const t=r[r.length-1],i=void 0!==e?e:n.localName;let o;i in t?o=t[i]:(o=[],t[i]=o),o.push(s)}}}function Eu(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){r[r.length-1][void 0!==e?e:n.localName]=s}}}function Cu(t,e){return function(i,n,r){t.call(void 0!==e?e:this,i,n,r);r[r.length-1].node.appendChild(i)}}function bu(t,e){let i,n;return function(e,r,s){if(void 0===i){i={};const r={};r[e.localName]=t,i[e.namespaceURI]=r,n=Ru(e.localName)}Au(i,n,r,s)}}function Ru(t,e){return function(i,n,r){const s=n[n.length-1].node;let o=t;void 0===o&&(o=r);return fu(void 0!==e?e:s.namespaceURI,o)}}const Pu=Ru();function Iu(t,e){const i=e.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=t[e[r]];return n}function Lu(t,e,i){let n,r;for(i=void 0!==i?i:{},n=0,r=t.length;n<r;++n)i[t[n]]=e;return i}function Fu(t,e,i,n){let r;for(r=e.firstElementChild;r;r=r.nextElementSibling){const e=t[r.namespaceURI];if(void 0!==e){const t=e[r.localName];void 0!==t&&t.call(n,r,i)}}}function Mu(t,e,i,n,r){return n.push(t),Fu(e,i,n,r),n.pop()}function Au(t,e,i,n,r,s){const o=(void 0!==r?r:i).length;let a,l;for(let h=0;h<o;++h)a=i[h],void 0!==a&&(l=e.call(void 0!==s?s:this,a,n,void 0!==r?r[h]:void 0),void 0!==l&&t[l.namespaceURI][l.localName].call(s,l,a,n))}function Ou(t,e,i,n,r,s,o){return r.push(t),Au(e,i,n,r,s,o),r.pop()}let Nu,Du;function Gu(){return void 0===Nu&&"undefined"!=typeof XMLSerializer&&(Nu=new XMLSerializer),Nu}function ku(){return void 0===Du&&"undefined"!=typeof document&&(Du=document.implementation.createDocument("","",null)),Du}const ju=au;class Bu{constructor(t,e){this.array=null,this.type=t,at(t===su||t===ou,62),this.usage=void 0!==e?e:ju}ofSize(t){this.array=new(Uu(this.type))(t)}fromArray(t){this.array=Uu(this.type).from(t)}fromArrayBuffer(t){this.array=new(Uu(this.type))(t)}getType(){return this.type}getArray(){return this.array}getUsage(){return this.usage}getSize(){return this.array?this.array.length:0}}function Uu(t){switch(t){case su:return Float32Array;case ou:return Uint32Array;default:return Float32Array}}var zu="webglcontextlost",Xu="webglcontextrestored";class Vu{constructor(t){this.gl_=t.webGlContext;const e=this.gl_;this.scaleRatio_=t.scaleRatio||1,this.renderTargetTexture_=e.createTexture(),this.renderTargetTextureSize_=null,this.frameBuffer_=e.createFramebuffer();const i=e.createShader(e.VERTEX_SHADER);e.shaderSource(i,t.vertexShader||"\n precision mediump float;\n \n attribute vec2 a_position;\n varying vec2 v_texCoord;\n varying vec2 v_screenCoord;\n \n uniform vec2 u_screenSize;\n \n void main() {\n v_texCoord = a_position * 0.5 + 0.5;\n v_screenCoord = v_texCoord * u_screenSize;\n gl_Position = vec4(a_position, 0.0, 1.0);\n }\n"),e.compileShader(i);const n=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(n,t.fragmentShader||"\n precision mediump float;\n \n uniform sampler2D u_image;\n uniform float u_opacity;\n \n varying vec2 v_texCoord;\n \n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord) * u_opacity;\n }\n"),e.compileShader(n),this.renderTargetProgram_=e.createProgram(),e.attachShader(this.renderTargetProgram_,i),e.attachShader(this.renderTargetProgram_,n),e.linkProgram(this.renderTargetProgram_),this.renderTargetVerticesBuffer_=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,-1,1,1,-1,1]),e.STATIC_DRAW),this.renderTargetAttribLocation_=e.getAttribLocation(this.renderTargetProgram_,"a_position"),this.renderTargetUniformLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_screenSize"),this.renderTargetOpacityLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_opacity"),this.renderTargetTextureLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_image"),this.uniforms_=[],t.uniforms&&Object.keys(t.uniforms).forEach(function(i){this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})}.bind(this))}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,n=e.RGBA,r=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,n,i[0],i[1],r,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0)}}apply(t,e,i,n){const r=this.getGL(),s=t.size;if(r.bindFramebuffer(r.FRAMEBUFFER,e?e.getFrameBuffer():null),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.renderTargetTexture_),!e){const e=z(r.canvas);if(!t.renderTargets[e]){const i=r.getContextAttributes();i&&i.preserveDrawingBuffer&&(r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT)),t.renderTargets[e]=!0}}r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.bindBuffer(r.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),r.useProgram(this.renderTargetProgram_),r.enableVertexAttribArray(this.renderTargetAttribLocation_),r.vertexAttribPointer(this.renderTargetAttribLocation_,2,r.FLOAT,!1,0,0),r.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),r.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;r.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(r,t),r.drawArrays(r.TRIANGLES,0,6),n&&n(r,t)}getFrameBuffer(){return this.frameBuffer_}applyUniforms(t){const e=this.getGL();let i,n=1;this.uniforms_.forEach((function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof ImageData)r.texture||(r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(r.location,n++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(r.location,i[0],i[1]);case 3:return void e.uniform3f(r.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(r.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(r.location,i)}))}}function Wu(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Zu(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const Yu="u_projectionMatrix",Ku="u_offsetScaleMatrix",qu="u_offsetRotateMatrix",Hu="u_time",$u="u_zoom",Ju="u_resolution",Qu="u_sizePx",td="u_pixelRatio",ed={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:hu},id={};function nd(t){return"shared/"+t}let rd=0;class sd extends s{constructor(t){super(),t=t||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=t.canvasCacheKey?nd(t.canvasCacheKey):function(){const t="unique/"+rd;return rd+=1,t}(),this.canvas_=function(t){let e=id[t];if(!e){const i=document.createElement("canvas");i.style.position="absolute",i.style.left="0",e={users:0,canvas:i},id[t]=e}return e.users+=1,e.canvas}(this.canvasCacheKey_),this.gl_=uu(this.canvas_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.canvas_.addEventListener(zu,this.boundHandleWebGLContextLost_),this.canvas_.addEventListener(Xu,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.uniformLocations_={},this.attribLocations_={},this.uniforms_=[],t.uniforms&&this.setUniforms(t.uniforms);const e=this.getGL();this.postProcessPasses_=t.postProcesses?t.postProcesses.map((function(t){return new Vu({webGlContext:e,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms})})):[new Vu({webGlContext:e})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[];for(const e in t)this.uniforms_.push({name:e,value:t[e]});this.uniformLocations_={}}canvasCacheKeyMatches(t){return this.canvasCacheKey_===nd(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.getGL(),i=z(t);let n=this.bufferCache_[i];if(!n){n={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=n}e.bindBuffer(t.getType(),n.webGlBuffer)}flushBufferData(t){const e=this.getGL();this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.getGL(),i=z(t),n=this.bufferCache_[i];n&&!e.isContextLost()&&e.deleteBuffer(n.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){this.canvas_.removeEventListener(zu,this.boundHandleWebGLContextLost_),this.canvas_.removeEventListener(Xu,this.boundHandleWebGLContextRestored_),function(t){const e=id[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=uu(e.canvas).getExtension("WEBGL_lose_context");i&&i.loseContext(),delete id[t]}(this.canvasCacheKey_),delete this.gl_,delete this.canvas_}prepareDraw(t,e){const i=this.getGL(),n=this.getCanvas(),r=t.size,s=t.pixelRatio;n.width=r[0]*s,n.height=r[1]*s,n.style.width=r[0]+"px",n.style.height=r[1]+"px";for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);i.bindTexture(i.TEXTURE_2D,null),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.enable(i.BLEND),i.blendFunc(i.ONE,e?i.ZERO:i.ONE_MINUS_SRC_ALPHA)}prepareDrawToRenderTarget(t,e,i){const n=this.getGL(),r=e.getSize();n.bindFramebuffer(n.FRAMEBUFFER,e.getFramebuffer()),n.viewport(0,0,r[0],r[1]),n.bindTexture(n.TEXTURE_2D,e.getTexture()),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,i?n.ZERO:n.ONE_MINUS_SRC_ALPHA)}drawElements(t,e){const i=this.getGL();this.getExtension("OES_element_index_uint");const n=i.UNSIGNED_INT,r=e-t,s=4*t;i.drawElements(i.TRIANGLES,r,n,s)}finalizeDraw(t,e,i){for(let n=0,r=this.postProcessPasses_.length;n<r;n++)n===r-1?this.postProcessPasses_[n].apply(t,null,e,i):this.postProcessPasses_[n].apply(t,this.postProcessPasses_[n+1])}getCanvas(){return this.canvas_}getGL(){return this.gl_}applyFrameState(t){const e=t.size,i=t.viewState.rotation,n=t.pixelRatio,r=wt(this.offsetScaleMatrix_);Pt(r,2/e[0],2/e[1]);const s=wt(this.offsetRotateMatrix_);0!==i&&Rt(s,-i),this.setUniformMatrixValue(Ku,Zu(this.tmpMat4_,r)),this.setUniformMatrixValue(qu,Zu(this.tmpMat4_,s)),this.setUniformFloatValue(Hu,.001*(Date.now()-this.startTime_)),this.setUniformFloatValue($u,t.viewState.zoom),this.setUniformFloatValue(Ju,t.viewState.resolution),this.setUniformFloatValue(td,n),this.setUniformFloatVec2(Qu,[e[0],e[1]])}applyUniforms(t){const e=this.getGL();let i,n=0;this.uniforms_.forEach(function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){r.texture||(r.prevValue=void 0,r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&r.prevValue!==i&&(r.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),e.uniform1i(this.getUniformLocation(r.name),n++)}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(r.name,Zu(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(r.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(r.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(r.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(r.name),i)}.bind(this))}useProgram(t,e){this.getGL().useProgram(t),this.currentProgram_=t,this.uniformLocations_={},this.attribLocations_={},this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.getGL(),n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}getProgram(t,e){const i=this.getGL(),n=this.compileShader(t,i.FRAGMENT_SHADER),r=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,n),i.attachShader(s,r),i.linkProgram(s),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t=`Fragment shader compliation failed: ${i.getShaderInfoLog(n)}`;throw new Error(t)}if(i.deleteShader(n),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t=`Vertex shader compilation failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}if(i.deleteShader(r),!i.getProgramParameter(s,i.LINK_STATUS)){const t=`GL program linking failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}return s}getUniformLocation(t){return void 0===this.uniformLocations_[t]&&(this.uniformLocations_[t]=this.getGL().getUniformLocation(this.currentProgram_,t)),this.uniformLocations_[t]}getAttributeLocation(t){return void 0===this.attribLocations_[t]&&(this.attribLocations_[t]=this.getGL().getAttribLocation(this.currentProgram_,t)),this.attribLocations_[t]}makeProjectionTransform(t,e){const i=t.size,n=t.viewState.rotation,r=t.viewState.resolution,s=t.viewState.center;return wt(e),Ft(e,0,0,2/(r*i[0]),2/(r*i[1]),-n,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.getGL().uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.getGL().uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.getGL().uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.getGL().uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,n,r){const s=this.getAttributeLocation(t);s<0||(this.getGL().enableVertexAttribArray(s),this.getGL().vertexAttribPointer(s,e,i,!1,n,r))}enableAttributes(t){const e=od(t);let i=0;for(let n=0;n<t.length;n++){const r=t[n];this.enableAttributeArray_(r.name,r.size,r.type||hu,e,i),i+=r.size*ad(r.type)}}handleWebGLContextLost(){y(this.bufferCache_),this.currentProgram_=null}handleWebGLContextRestored(){}createTexture(t,e,i){const n=this.getGL();i=i||n.createTexture();const r=n.RGBA,s=n.RGBA,o=n.UNSIGNED_BYTE;return n.bindTexture(n.TEXTURE_2D,i),e?n.texImage2D(n.TEXTURE_2D,0,r,s,o,e):n.texImage2D(n.TEXTURE_2D,0,r,t[0],t[1],0,s,o,null),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),i}}function od(t){let e=0;for(let i=0;i<t.length;i++){const n=t[i];e+=n.size*ad(n.type)}return e}function ad(t){switch(t){case ed.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case ed.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case ed.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case ed.FLOAT:default:return Float32Array.BYTES_PER_ELEMENT}}class ld{constructor(t,e){this.name=t,this.data=e,this.texture_=null}getTexture(t){if(!this.texture_){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.data.length/4,1,0,t.RGBA,t.UNSIGNED_BYTE,this.data),this.texture_=e}return this.texture_}}const hd=new Uint8Array(4);class cd{constructor(t,e){this.helper_=t;const i=t.getGL();this.texture_=i.createTexture(),this.framebuffer_=i.createFramebuffer(),this.size_=e||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(t){u(t,this.size_)||(this.size_[0]=t[0],this.size_[1]=t[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){const t=this.size_,e=this.helper_.getGL();e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.readPixels(0,0,t[0],t[1],e.RGBA,e.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(t,e){if(t<0||e<0||t>this.size_[0]||e>=this.size_[1])return hd[0]=0,hd[1]=0,hd[2]=0,hd[3]=0,hd;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return hd[0]=this.data_[4*i],hd[1]=this.data_[4*i+1],hd[2]=this.data_[4*i+2],hd[3]=this.data_[4*i+3],hd}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),this.data_=new Uint8Array(t[0]*t[1]*4)}}function ud(t,e,i){const n=i?t.LINEAR:t.NEAREST;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n)}function dd(t,e,i,n,r,s){const o=t.getGL();let a,l;if(i instanceof Float32Array){a=o.FLOAT,t.getExtension("OES_texture_float");l=null!==t.getExtension("OES_texture_float_linear")}else a=o.UNSIGNED_BYTE,l=!0;ud(o,e,s&&l);const h=i.byteLength/n[1];let c,u=1;switch(h%8==0?u=8:h%4==0?u=4:h%2==0&&(u=2),r){case 1:c=o.LUMINANCE;break;case 2:c=o.LUMINANCE_ALPHA;break;case 3:c=o.RGB;break;case 4:c=o.RGBA;break;default:throw new Error(`Unsupported number of bands: ${r}`)}const d=o.getParameter(o.UNPACK_ALIGNMENT);o.pixelStorei(o.UNPACK_ALIGNMENT,u),o.texImage2D(o.TEXTURE_2D,0,c,n[0],n[1],0,c,a,i),o.pixelStorei(o.UNPACK_ALIGNMENT,d)}let gd=null;class fd extends v{constructor(t){super(),this.tile,this.textures=[],this.handleTileChange_=this.handleTileChange_.bind(this),this.renderSize_=Va(t.grid.getTileSize(t.tile.tileCoord[0])),this.gutter_=t.gutter||0,this.bandCount=NaN,this.helper_=t.helper;const e=new Bu(su,au);e.fromArray([0,1,1,1,1,0,0,0]),this.helper_.flushBufferData(e),this.coords=e,this.setTile(t.tile)}setTile(t){if(t!==this.tile)if(this.tile&&this.tile.removeEventListener(S,this.handleTileChange_),this.tile=t,this.textures.length=0,this.loaded=t.getState()===J,this.loaded)this.uploadTile_();else{if(t instanceof Vr){const e=t.getImage();e instanceof Image&&!e.crossOrigin&&(e.crossOrigin="anonymous")}t.addEventListener(S,this.handleTileChange_)}}uploadTile_(){const t=this.helper_,e=t.getGL(),i=this.tile;if(i instanceof Vr||i instanceof Xl){const t=e.createTexture();return this.textures.push(t),this.bandCount=4,void function(t,e,i,n){ud(t,e,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)}(e,t,i.getImage(),i.interpolate)}const n=i.getSize(),r=[n[0]+2*this.gutter_,n[1]+2*this.gutter_],s=i.getData(),o=s instanceof Float32Array,a=r[0]*r[1],l=o?Float32Array:Uint8Array,h=l.BYTES_PER_ELEMENT,c=s.byteLength/r[1];this.bandCount=Math.floor(c/h/r[0]);const u=Math.ceil(this.bandCount/4);if(1===u){const n=e.createTexture();return this.textures.push(n),void dd(t,n,s,r,this.bandCount,i.interpolate)}const d=new Array(u);for(let t=0;t<u;++t){const i=e.createTexture();this.textures.push(i);const n=t<u-1?4:(this.bandCount-1)%4+1;d[t]=new l(a*n)}let g=0,f=0;const p=r[0]*this.bandCount;for(let t=0;t<r[1];++t){for(let t=0;t<p;++t){const e=s[f+t],i=Math.floor(g/this.bandCount),n=t%this.bandCount,r=d[Math.floor(n/4)];r[i*(r.length/a)+n%4]=e,++g}f+=c/h}for(let e=0;e<u;++e){const n=this.textures[e],s=d[e];dd(t,n,s,r,s.length/a,i.interpolate)}}handleTileChange_(){this.tile.getState()===J&&(this.loaded=!0,this.uploadTile_(),this.dispatchEvent(S))}disposeInternal(){const t=this.helper_.getGL();this.helper_.deleteBuffer(this.coords);for(let e=0;e<this.textures.length;++e)t.deleteTexture(this.textures[e]);this.tile.removeEventListener(S,this.handleTileChange_)}getPixelData(t,e){if(!this.loaded)return null;const i=this.renderSize_[0],n=this.renderSize_[1],r=this.gutter_;if(this.tile instanceof ot){const s=this.tile.getSize(),o=s[0],a=s[1],l=o+2*r,h=a+2*r,c=r+Math.floor(o*(t/i)),u=r+Math.floor(a*(e/n)),d=this.tile.getData();if(d instanceof DataView){const t=d.byteLength/(l*h),e=t*(u*l+c),i=d.buffer.slice(e,e+t);return new DataView(i)}const g=this.bandCount*(u*l+c);return d.slice(g,g+this.bandCount)}gd||function(){const t=document.createElement("canvas");t.width=1,t.height=1,gd=t.getContext("2d")}(),gd.clearRect(0,0,1,1);const s=this.tile.getImage(),o=s.width-2*r,a=s.height-2*r,l=r+Math.floor(o*(t/i)),h=r+Math.floor(a*(e/n));let c;try{gd.drawImage(s,l,h,1,1,0,0,1,1),c=gd.getImageData(0,0,1,1).data}catch(t){return gd=null,null}return c}}class pd extends Rc{constructor(t,e){super(t),e=e||{},this.inversePixelTransform_=[1,0,0,1,0,0],this.pixelContext_=null,this.postProcesses_=e.postProcesses,this.uniforms_=e.uniforms,this.helper,t.addChangeListener(gs,this.removeHelper.bind(this)),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(t,e){const i=this.getLayer();if(i.hasListener(_s)){const n=new Es(_s,void 0,e,t);i.dispatchEvent(n)}}dispatchPostComposeEvent(t,e){const i=this.getLayer();if(i.hasListener(ys)){const n=new Es(ys,void 0,e,t);i.dispatchEvent(n)}}reset(t){this.uniforms_=t.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(t){if(this.getLayer().getRenderSource()){let e,i=!0,n=-1;for(let r=0,s=t.layerStatesArray.length;r<s;r++){const s=t.layerStatesArray[r].layer,o=s.getRenderer();if(!(o instanceof pd)){i=!0;continue}const a=s.getClassName();if((i||a!==e)&&(n+=1,i=!1),e=a,o===this)break}const r="map/"+t.mapId+"/group/"+n;this.helper&&this.helper.canvasCacheKeyMatches(r)||(this.removeHelper(),this.helper=new sd({postProcesses:this.postProcesses_,uniforms:this.uniforms_,canvasCacheKey:r}),e&&(this.helper.getCanvas().className=e),this.afterHelperCreated())}return this.prepareFrameInternal(t)}afterHelperCreated(){}prepareFrameInternal(t){return!0}disposeInternal(){this.removeHelper(),super.disposeInternal()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){Ft(this.inversePixelTransform_,0,0,i.pixelRatio,-i.pixelRatio,0,0,-i.size[1]);const r=new Es(t,this.inversePixelTransform_,i,e);n.dispatchEvent(r)}}preRender(t,e){this.dispatchRenderEvent_(ps,t,e)}postRender(t,e){this.dispatchRenderEvent_(ms,t,e)}}const md={TILE_TEXTURE_ARRAY:"u_tileTextures",TILE_TRANSFORM:"u_tileTransform",TRANSITION_ALPHA:"u_transitionAlpha",DEPTH:"u_depth",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY",RENDER_EXTENT:"u_renderExtent",RESOLUTION:"u_resolution",ZOOM:"u_zoom"},_d={TEXTURE_COORD:"a_textureCoord"},yd=[{name:_d.TEXTURE_COORD,size:2,type:ed.FLOAT}],xd={};function vd(t){return 2*(1-1/(t+1))-1}function Sd(t,e,i){i in t||(t[i]=[]),t[i].push(e)}function wd(t,e){const i=t.layerStatesArray[t.layerIndex];i.extent&&(e=ye(e,on(i.extent,t.viewState.projection)));const n=i.layer.getRenderSource();if(!n.getWrapX()){const i=n.getTileGridForProjection(t.viewState.projection).getExtent();i&&(e=ye(e,i))}return e}function Td(t,e){return`${t.getKey()},${nl(e)}`}class Ed extends pd{constructor(t,e){super(t,{uniforms:e.uniforms}),this.renderComplete=!1,this.tileTransform_=[1,0,0,1,0,0],this.tempMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.tempTileRange_=new hl(0,0,0,0),this.tempTileCoord_=el(0,0,0),this.tempSize_=[0,0],this.program_,this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.indices_=new Bu(ou,au),this.indices_.fromArray([0,1,3,1,2,3]);const i=void 0!==e.cacheSize?e.cacheSize:512;this.tileTextureCache_=new tl(i),this.paletteTextures_=e.paletteTextures||[],this.frameState_=null,this.projection_=void 0}reset(t){super.reset({uniforms:t.uniforms}),this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.paletteTextures_=t.paletteTextures||[],this.helper&&(this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}isDrawableTile_(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==J||i==tt||i==Q&&!n}prepareFrameInternal(t){this.projection_?t.viewState.projection!==this.projection_&&(this.clearCache(),this.projection_=t.viewState.projection):this.projection_=t.viewState.projection;const e=this.getLayer().getRenderSource();return!!e&&(!Te(wd(t,t.extent))&&"ready"===e.getState())}enqueueTiles(t,e,i,n,r){const s=t.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),h=a.getGutterForProjection(s.projection),c=z(a);c in t.wantedTiles||(t.wantedTiles[c]={});const u=t.wantedTiles[c],d=this.tileTextureCache_,g=o.getMapInternal(),f=Math.max(i-r,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),g?g.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection));for(let r=i;r>=f;--r){const i=l.getTileRangeForExtentAndZ(e,r,this.tempTileRange_),o=l.getResolution(r);for(let e=i.minX;e<=i.maxX;++e)for(let g=i.minY;g<=i.maxY;++g){const i=el(r,e,g,this.tempTileCoord_),f=Td(a,i);let p,m;if(d.containsKey(f)&&(p=d.get(f),m=p.tile),!p||p.tile.key!==a.getKey())if(m=a.getTile(r,e,g,t.pixelRatio,s.projection),p)if(this.isDrawableTile_(m))p.setTile(m);else{const t=m.getInterimTile();p.setTile(t)}else p=new fd({tile:m,grid:l,helper:this.helper,gutter:h}),d.set(f,p);Sd(n,p,r);const _=m.getKey();u[_]=!0,m.getState()===H&&(t.tileQueue.isKeyQueued(_)||t.tileQueue.enqueue([m,c,l.getTileCoordCenter(i),o]))}}}renderFrame(t){this.frameState_=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,n=this.getLayer(),r=n.getRenderSource(),s=r.getTileGridForProjection(i.projection),o=r.getGutterForProjection(i.projection),l=wd(t,t.extent),h=s.getZForResolution(i.resolution,r.zDirection),c={},u=n.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,r.zDirection),n=wd(t,t.nextExtent);this.enqueueTiles(t,n,e,c,u)}this.enqueueTiles(t,l,h,c,0),u>0&&setTimeout((()=>{this.enqueueTiles(t,l,h-1,c,u-1)}),0);const d={},g=z(this),f=t.time;let p=!1;const m=c[h];for(let t=0,e=m.length;t<e;++t){const e=m[t],i=e.tile;if((i instanceof Xl||i instanceof Vh)&&i.getState()===tt)continue;const n=i.tileCoord;if(e.loaded){const t=i.getAlpha(g,f);if(1===t){i.endTransition(g);continue}p=!0;d[nl(n)]=t}this.renderComplete=!1;if(this.findAltTiles_(s,n,h+1,c))continue;const r=s.getMinZoom();for(let t=h-1;t>=r;--t){if(this.findAltTiles_(s,n,t,c))break}}this.helper.useProgram(this.program_,t),this.helper.prepareDraw(t,!p);const _=Object.keys(c).map(Number).sort(a),y=i.center[0],x=i.center[1];for(let n=0,r=_.length;n<r;++n){const r=_[n],a=s.getResolution(r),h=Va(s.getTileSize(r),this.tempSize_),u=s.getOrigin(r),g=h[0]+2*o,f=h[1]+2*o,p=g/f,m=(y-u[0])/(h[0]*a),v=(u[1]-x)/(h[1]*a),S=i.resolution/a,w=vd(r),T=c[r];for(let n=0,r=T.length;n<r;++n){const r=T[n];if(!r.loaded)continue;const c=r.tile.tileCoord,_=nl(c),y=c[1],x=c[2];wt(this.tileTransform_),Pt(this.tileTransform_,2/(t.size[0]*S/g),-2/(t.size[1]*S/g)),Rt(this.tileTransform_,i.rotation),Pt(this.tileTransform_,1,1/p),Lt(this.tileTransform_,(h[0]*(y-m)-o)/g,(h[1]*(x-v)-o)/f),this.helper.setUniformMatrixValue(md.TILE_TRANSFORM,Zu(this.tempMat4_,this.tileTransform_)),this.helper.bindBuffer(r.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(yd);let E=0;for(;E<r.textures.length;){const t="TEXTURE"+E,i=`${md.TILE_TEXTURE_ARRAY}[${E}]`;e.activeTexture(e[t]),e.bindTexture(e.TEXTURE_2D,r.textures[E]),e.uniform1i(this.helper.getUniformLocation(i),E),++E}for(let t=0;t<this.paletteTextures_.length;++t){const i=this.paletteTextures_[t];e.activeTexture(e["TEXTURE"+E]);const n=i.getTexture(e);e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(this.helper.getUniformLocation(i.name),E),++E}const C=_ in d?d[_]:1;C<1&&(t.animate=!0),this.helper.setUniformFloatValue(md.TRANSITION_ALPHA,C),this.helper.setUniformFloatValue(md.DEPTH,w),this.helper.setUniformFloatValue(md.TEXTURE_PIXEL_WIDTH,g),this.helper.setUniformFloatValue(md.TEXTURE_PIXEL_HEIGHT,f),this.helper.setUniformFloatValue(md.TEXTURE_RESOLUTION,a),this.helper.setUniformFloatValue(md.TEXTURE_ORIGIN_X,u[0]+y*h[0]*a-o*a),this.helper.setUniformFloatValue(md.TEXTURE_ORIGIN_Y,u[1]-x*h[1]*a+o*a);let b=l;o>0&&(b=s.getTileCoordExtent(c),ye(b,l,b)),this.helper.setUniformFloatVec4(md.RENDER_EXTENT,b),this.helper.setUniformFloatValue(md.RESOLUTION,i.resolution),this.helper.setUniformFloatValue(md.ZOOM,i.zoom),this.helper.drawElements(0,this.indices_.getSize())}}this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const v=this.helper.getCanvas(),S=this.tileTextureCache_;for(;S.canExpireCache();){S.pop().dispose()}return t.postRenderFunctions.push((function(t,e){r.updateCacheSize(.1,e.viewState.projection),r.expireCache(e.viewState.projection,xd)})),this.postRender(e,t),v}getData(t){if(!this.helper.getGL())return null;const e=this.frameState_;if(!e)return null;const i=this.getLayer(),n=bt(e.pixelToCoordinateTransform,t.slice()),r=e.viewState,s=i.getExtent();if(s&&!Zt(on(s,r.projection),n))return null;const o=i.getSources(zt([n]),r.resolution);let a,l,h;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(h=l.getTileGridForProjection(r.projection),l.getWrapX())break;const t=h.getExtent();if(!t||Zt(t,n))break}if(a<0)return null;const c=this.tileTextureCache_;for(let t=h.getZForResolution(r.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=Td(l,e);if(!c.containsKey(i))continue;const r=c.get(i),s=r.tile;if((s instanceof Xl||s instanceof Vh)&&s.getState()===tt)return null;if(!r.loaded)continue;const o=h.getOrigin(t),a=Va(h.getTileSize(t)),u=h.getResolution(t),d=(n[0]-o[0])/u-e[1]*a[0],g=(o[1]-n[1])/u-e[2]*a[1];return r.getPixelData(d,g)}return null}findAltTiles_(t,e,i,n){const r=t.getTileRangeForTileCoordAndZ(e,i,this.tempTileRange_);if(!r)return!1;let s=!0;const o=this.tileTextureCache_,a=this.getLayer().getRenderSource();for(let t=r.minX;t<=r.maxX;++t)for(let e=r.minY;e<=r.maxY;++e){const r=Td(a,[i,t,e]);let l=!1;if(o.containsKey(r)){const t=o.get(r);t.loaded&&(Sd(n,t,i),l=!0)}l||(s=!1)}return s}clearCache(){const t=this.tileTextureCache_;t.forEach((t=>t.dispose())),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_,delete this.tileTextureCache_,delete this.frameState_}}const Cd=1,bd=2,Rd=4,Pd=8,Id=16,Ld=31,Fd=0,Md={};function Ad(t){if("number"==typeof t)return Cd;if("boolean"==typeof t)return Pd;if("string"==typeof t)return ts(t)?Rd|bd:bd;if(!Array.isArray(t))throw new Error(`Unhandled value type: ${JSON.stringify(t)}`);const e=t;if(e.every((function(t){return"number"==typeof t})))return 3===e.length||4===e.length?Rd|Id:Id;if("string"!=typeof e[0])throw new Error(`Expected an expression operator but received: ${JSON.stringify(e)}`);const i=Md[e[0]];if(void 0===i)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return i.getReturnType(e.slice(1))}function Od(t){return Math.log2(t)%1==0}function Nd(t){const e=t.toString();return e.includes(".")?e:e+".0"}function Dd(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(Nd).join(", ")})`}function Gd(t){const e=$r(t).slice();return e.length<4&&e.push(1),Dd(e.map((function(t,e){return e<3?t/255:t})))}function kd(t,e){return void 0===t.stringLiteralsMap[e]&&(t.stringLiteralsMap[e]=Object.keys(t.stringLiteralsMap).length),t.stringLiteralsMap[e]}function jd(t,e){return Nd(kd(t,e))}function Bd(t,e,i){if(Array.isArray(e)&&"string"==typeof e[0]){const n=Md[e[0]];if(void 0===n)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return n.toGlsl(t,e.slice(1),i)}const n=Ad(e);if((n&Cd)>0)return Nd(e);if((n&Pd)>0)return e.toString();if((n&bd)>0&&(void 0===i||i==bd))return jd(t,e.toString());if((n&Rd)>0&&(void 0===i||i==Rd))return Gd(e);if((n&Id)>0)return Dd(e);throw new Error(`Unexpected expression ${e} (expected type ${i})`)}function Ud(t){if(!(Ad(t)&Cd))throw new Error(`A numeric value was expected, got ${JSON.stringify(t)} instead`)}function zd(t){for(let e=0;e<t.length;e++)Ud(t[e])}function Xd(t){if(!(Ad(t)&bd))throw new Error(`A string value was expected, got ${JSON.stringify(t)} instead`)}function Vd(t){if(!(Ad(t)&Pd))throw new Error(`A boolean value was expected, got ${JSON.stringify(t)} instead`)}function Wd(t,e){if(t.length!==e)throw new Error(`Exactly ${e} arguments were expected, got ${t.length} instead`)}function Zd(t,e){if(t.length<e)throw new Error(`At least ${e} arguments were expected, got ${t.length} instead`)}function Yd(t,e){if(t.length>e)throw new Error(`At most ${e} arguments were expected, got ${t.length} instead`)}function Kd(t){if(t.length%2!=0)throw new Error(`An even amount of arguments was expected, got ${t} instead`)}function qd(t,e){if(!Od(e))throw new Error(`Could not infer only one type from the following expression: ${JSON.stringify(t)}`)}function Hd(t){return"u_var_"+t}Md.get={getReturnType:function(t){return Ld},toGlsl:function(t,e){Wd(e,1),Xd(e[0]);const i=e[0].toString();t.attributes.includes(i)||t.attributes.push(i);return(t.inFragmentShader?"v_":"a_")+i}},Md.var={getReturnType:function(t){return Ld},toGlsl:function(t,e){Wd(e,1),Xd(e[0]);const i=e[0].toString();return t.variables.includes(i)||t.variables.push(i),Hd(i)}};const $d="u_paletteTextures";Md.palette={getReturnType:function(t){return Rd},toGlsl:function(t,e){Wd(e,2),Ud(e[0]);const i=Bd(t,e[0]),n=e[1];if(!Array.isArray(n))throw new Error("The second argument of palette must be an array");const r=n.length,s=new Uint8Array(4*r);for(let t=0;t<r;t++){const e=n[t];let i;if("string"==typeof e)i=Hr(e);else{if(!Array.isArray(e))throw new Error("The second argument of palette must be an array of strings or colors");const t=e.length;if(4===t)i=e;else{if(3!==t)throw new Error(`Expected palette color to have 3 or 4 values, got ${t}`);i=[e[0],e[1],e[2],1]}}const r=4*t;s[r]=i[0],s[r+1]=i[1],s[r+2]=i[2],s[r+3]=255*i[3]}t.paletteTextures||(t.paletteTextures=[]);const o=`u_paletteTextures[${t.paletteTextures.length}]`,a=new ld(o,s);return t.paletteTextures.push(a),`texture2D(${o}, vec2((${i} + 0.5) / ${r}.0, 0.5))`}};const Jd="getBandValue";function Qd(t){return{getReturnType:function(t){return Pd},toGlsl:function(e,i){Wd(i,2);let n=Ld;for(let t=0;t<i.length;t++)n&=Ad(i[t]);if(n===Fd)throw new Error(`All arguments should be of compatible type, got ${JSON.stringify(i)} instead`);return n&=~Rd,`(${Bd(e,i[0],n)} ${t} ${Bd(e,i[1],n)})`}}}function tg(t){return{getReturnType:function(t){return Pd},toGlsl:function(e,i){Zd(i,2);for(let t=0;t<i.length;t++)Vd(i[t]);let n="";return n=i.map((t=>Bd(e,t))).join(` ${t} `),n=`(${n})`,n}}}Md.band={getReturnType:function(t){return Cd},toGlsl:function(t,e){Zd(e,1),Yd(e,3);const i=e[0];if(!(Jd in t.functions)){let e="";const i=t.bandCount||1;for(let t=0;t<i;t++){const n=Math.floor(t/4);let r=t%4;t===i-1&&1===r&&(r=3);e+=`\n if (band == ${t+1}.0) {\n return texture2D(${`${md.TILE_TEXTURE_ARRAY}[${n}]`}, v_textureCoord + vec2(dx, dy))[${r}];\n }\n `}t.functions.getBandValue=`\n float getBandValue(float band, float xOffset, float yOffset) {\n float dx = xOffset / ${md.TEXTURE_PIXEL_WIDTH};\n float dy = yOffset / ${md.TEXTURE_PIXEL_HEIGHT};\n ${e}\n }\n `}return`getBandValue(${Bd(t,i)}, ${Bd(t,e[1]||0)}, ${Bd(t,e[2]||0)})`}},Md.time={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,0),"u_time"}},Md.zoom={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,0),"u_zoom"}},Md.resolution={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,0),"u_resolution"}},Md["*"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} * ${Bd(t,e[1])})`}},Md["/"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} / ${Bd(t,e[1])})`}},Md["+"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} + ${Bd(t,e[1])})`}},Md["-"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} - ${Bd(t,e[1])})`}},Md.clamp={getReturnType:function(t){return Cd},toGlsl:function(t,e){Wd(e,3),zd(e);const i=Bd(t,e[1]),n=Bd(t,e[2]);return`clamp(${Bd(t,e[0])}, ${i}, ${n})`}},Md["%"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`mod(${Bd(t,e[0])}, ${Bd(t,e[1])})`}},Md["^"]={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,2),zd(e),`pow(${Bd(t,e[0])}, ${Bd(t,e[1])})`}},Md.abs={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`abs(${Bd(t,e[0])})`}},Md.floor={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`floor(${Bd(t,e[0])})`}},Md.round={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`floor(${Bd(t,e[0])} + 0.5)`}},Md.ceil={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`ceil(${Bd(t,e[0])})`}},Md.sin={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`sin(${Bd(t,e[0])})`}},Md.cos={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Wd(e,1),zd(e),`cos(${Bd(t,e[0])})`}},Md.atan={getReturnType:function(t){return Cd},toGlsl:function(t,e){return Zd(e,1),Yd(e,2),zd(e),2===e.length?`atan(${Bd(t,e[0])}, ${Bd(t,e[1])})`:`atan(${Bd(t,e[0])})`}},Md[">"]={getReturnType:function(t){return Pd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} > ${Bd(t,e[1])})`}},Md[">="]={getReturnType:function(t){return Pd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} >= ${Bd(t,e[1])})`}},Md["<"]={getReturnType:function(t){return Pd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} < ${Bd(t,e[1])})`}},Md["<="]={getReturnType:function(t){return Pd},toGlsl:function(t,e){return Wd(e,2),zd(e),`(${Bd(t,e[0])} <= ${Bd(t,e[1])})`}},Md["=="]=Qd("=="),Md["!="]=Qd("!="),Md["!"]={getReturnType:function(t){return Pd},toGlsl:function(t,e){return Wd(e,1),Vd(e[0]),`(!${Bd(t,e[0])})`}},Md.all=tg("&&"),Md.any=tg("||"),Md.between={getReturnType:function(t){return Pd},toGlsl:function(t,e){Wd(e,3),zd(e);const i=Bd(t,e[1]),n=Bd(t,e[2]),r=Bd(t,e[0]);return`(${r} >= ${i} && ${r} <= ${n})`}},Md.array={getReturnType:function(t){return Id},toGlsl:function(t,e){Zd(e,2),Yd(e,4),zd(e);const i=e.map((function(e){return Bd(t,e,Cd)}));return`vec${e.length}(${i.join(", ")})`}},Md.color={getReturnType:function(t){return Rd},toGlsl:function(t,e){Zd(e,3),Yd(e,4),zd(e);const i=e;3===e.length&&i.push(1);const n=e.map((function(e,i){return Bd(t,e,Cd)+(i<3?" / 255.0":"")}));return`vec${e.length}(${n.join(", ")})`}},Md.interpolate={getReturnType:function(t){let e=Rd|Cd;for(let i=3;i<t.length;i+=2)e&=Ad(t[i]);return e},toGlsl:function(t,e,i){Kd(e),Zd(e,6);const n=e[0];let r;switch(n[0]){case"linear":r=1;break;case"exponential":r=n[1];break;default:r=null}if(!r)throw new Error(`Invalid interpolation type for "interpolate" operator, received: ${JSON.stringify(n)}`);i=void 0!==i?i:Ld;const s=Md.interpolate.getReturnType(e)&i;qd(e,s);const o=Bd(t,e[1]),a=Nd(r);let l="";for(let i=2;i<e.length-2;i+=2){const n=Bd(t,e[i]),r=l||Bd(t,e[i+1],s),h=Bd(t,e[i+2]);l=`mix(${r}, ${Bd(t,e[i+3],s)}, pow(clamp((${o} - ${n}) / (${h} - ${n}), 0.0, 1.0), ${a}))`}return l}},Md.match={getReturnType:function(t){let e=Ld;for(let i=2;i<t.length;i+=2)e&=Ad(t[i]);return e&=Ad(t[t.length-1]),e},toGlsl:function(t,e,i){Kd(e),Zd(e,4),i=void 0!==i?i:Ld;const n=Md.match.getReturnType(e)&i;qd(e,n);const r=Bd(t,e[0]),s=Bd(t,e[e.length-1],n);let o=null;for(let i=e.length-3;i>=1;i-=2){o=`(${r} == ${Bd(t,e[i])} ? ${Bd(t,e[i+1],n)} : ${o||s})`}return o}},Md.case={getReturnType:function(t){let e=Ld;for(let i=1;i<t.length;i+=2)e&=Ad(t[i]);return e&=Ad(t[t.length-1]),e},toGlsl:function(t,e,i){!function(t){if(t.length%2==0)throw new Error(`An odd amount of arguments was expected, got ${t} instead`)}(e),Zd(e,3),i=void 0!==i?i:Ld;const n=Md.case.getReturnType(e)&i;qd(e,n);for(let t=0;t<e.length-1;t+=2)Vd(e[t]);const r=Bd(t,e[e.length-1],n);let s=null;for(let i=e.length-3;i>=0;i-=2){s=`(${Bd(t,e[i])} ? ${Bd(t,e[i+1],n)} : ${s||r})`}return s}};class eg{constructor(){this.uniforms=[],this.attributes=[],this.varyings=[],this.sizeExpression="vec2(1.0)",this.rotationExpression="0.0",this.offsetExpression="vec2(0.0)",this.colorExpression="vec4(1.0)",this.texCoordExpression="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression="false",this.rotateWithView=!1}addUniform(t){return this.uniforms.push(t),this}addAttribute(t){return this.attributes.push(t),this}addVarying(t,e,i){return this.varyings.push({name:t,type:e,expression:i}),this}setSizeExpression(t){return this.sizeExpression=t,this}setRotationExpression(t){return this.rotationExpression=t,this}setSymbolOffsetExpression(t){return this.offsetExpression=t,this}setColorExpression(t){return this.colorExpression=t,this}setTextureCoordinateExpression(t){return this.texCoordExpression=t,this}setFragmentDiscardExpression(t){return this.discardExpression=t,this}setSymbolRotateWithView(t){return this.rotateWithView=t,this}getSizeExpression(){return this.sizeExpression}getOffsetExpression(){return this.offsetExpression}getColorExpression(){return this.colorExpression}getTextureCoordinateExpression(){return this.texCoordExpression}getFragmentDiscardExpression(){return this.discardExpression}getSymbolVertexShader(t){const e=this.rotateWithView?"u_offsetScaleMatrix * u_offsetRotateMatrix":"u_offsetScaleMatrix";let i=this.attributes,n=this.varyings;return t&&(i=i.concat("vec4 a_hitColor"),n=n.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),`precision mediump float;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n${this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\n${i.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n${n.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\nvoid main(void) {\n mat4 offsetMatrix = ${e};\n vec2 halfSize = ${this.sizeExpression} * 0.5;\n vec2 offset = ${this.offsetExpression};\n float angle = ${this.rotationExpression};\n float offsetX;\n float offsetY;\n if (a_index == 0.0) {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n } else if (a_index == 1.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else if (a_index == 2.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n }\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n vec4 texCoord = ${this.texCoordExpression};\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\n v_texCoord = vec2(u, v);\n u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n v = a_index == 2.0 || a_index == 3.0 ? 0.0 : 1.0;\n v_quadCoord = vec2(u, v);\n${n.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`}getSymbolFragmentShader(t){const e=t?" if (gl_FragColor.a < 0.1) { discard; } gl_FragColor = v_hitColor;":"";let i=this.varyings;return t&&(i=i.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),`precision mediump float;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n${this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n${i.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\nvoid main(void) {\n if (${this.discardExpression}) { discard; }\n gl_FragColor = ${this.colorExpression};\n gl_FragColor.rgb *= gl_FragColor.a;\n${e}\n}`}}function ig(t){const e=t.symbol,i=void 0!==e.size?e.size:1,n=e.color||"white",r=e.textureCoord||[0,0,1,1],s=e.offset||[0,0],o=void 0!==e.opacity?e.opacity:1,a=void 0!==e.rotation?e.rotation:0,l={inFragmentShader:!1,variables:[],attributes:[],stringLiteralsMap:{},functions:{}},h=Bd(l,i,Id|Cd),c=Bd(l,s,Id),u=Bd(l,r,Id),d=Bd(l,a,Cd),g={inFragmentShader:!0,variables:l.variables,attributes:[],stringLiteralsMap:l.stringLiteralsMap,functions:{}},f=Bd(g,n,Rd),p=Bd(g,o,Cd);let m="1.0";const _=`vec2(${Bd(g,i,Id|Cd)}).x`;switch(e.symbolType){case"square":case"image":break;case"circle":m=`(1.0-smoothstep(1.-4./${_},1.,dot(v_quadCoord-.5,v_quadCoord-.5)*4.))`;break;case"triangle":const t="(v_quadCoord*2.-1.)",i=`(atan(${t}.x,${t}.y))`;m=`(1.0-smoothstep(.5-3./${_},.5,cos(floor(.5+${i}/2.094395102)*2.094395102-${i})*length(${t})))`;break;default:throw new Error("Unexpected symbol type: "+e.symbolType)}const y=(new eg).setSizeExpression(`vec2(${h})`).setRotationExpression(d).setSymbolOffsetExpression(c).setTextureCoordinateExpression(u).setSymbolRotateWithView(!!e.rotateWithView).setColorExpression(`vec4(${f}.rgb, ${f}.a * ${p} * ${m})`);if(t.filter){const e=Bd(g,t.filter,Pd);y.setFragmentDiscardExpression(`!${e}`)}const x={};if(g.variables.forEach((function(e){const i=Hd(e);y.addUniform(`float ${i}`),x[i]=function(){if(!t.variables||void 0===t.variables[e])throw new Error(`The following variable is missing from the style: ${e}`);let i=t.variables[e];return"string"==typeof i&&(i=kd(l,i)),void 0!==i?i:-9999999}})),"image"===e.symbolType&&e.src){const t=new Image;t.crossOrigin=void 0===e.crossOrigin?"anonymous":e.crossOrigin,t.src=e.src,y.addUniform("sampler2D u_texture").setColorExpression(y.getColorExpression()+" * texture2D(u_texture, v_texCoord)"),x.u_texture=t}return g.attributes.forEach((function(t){l.attributes.includes(t)||l.attributes.push(t),y.addVarying(`v_${t}`,"float",`a_${t}`)})),l.attributes.forEach((function(t){y.addAttribute(`float a_${t}`)})),{builder:y,attributes:l.attributes.map((function(t){return{name:t,callback:function(e,i){let n=i[t];return"string"==typeof n&&(n=kd(l,n)),void 0!==n?n:-9999999}}})),uniforms:x}}class ng{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=Va(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new ng({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return B()}getImage(t){return B()}getHitDetectionImage(){return B()}getPixelRatio(t){return 1}getImageState(){return B()}getImageSize(){return B()}getOrigin(){return B()}getSize(){return B()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=Va(t)}listenImageChange(t){B()}load(){B()}unlistenImageChange(t){B()}}class rg extends ng{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.canvas_=void 0,this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius_=void 0!==t.radius?t.radius:t.radius1,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_=null,this.renderOptions_=null,this.render()}clone(){const t=this.getScale(),e=new rg({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}getAnchor(){const t=this.size_;if(!t)return null;const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]/2-e[0]/i[0],t[1]/2+e[1]/i[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||this.createHitDetectionCanvas_(this.renderOptions_),this.hitDetectionCanvas_}getImage(t){let e=this.canvas_[t];if(!e){const i=this.renderOptions_,n=Dr(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvas_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return Lr}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius_}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,i){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let n=this.radius_,r=void 0===this.radius2_?n:this.radius2_;if(n<r){const t=n;n=r,r=t}const s=void 0===this.radius2_?this.points_:2*this.points_,o=2*Math.PI/s,a=r*Math.sin(o),l=n-Math.sqrt(r*r-a*a),h=Math.sqrt(a*a+l*l),c=h/a;if("miter"===t&&c<=i)return c*e;const u=e/2/c,d=e/2*(l/h),g=Math.sqrt((n+u)*(n+u)+d*d)-n;if(void 0===this.radius2_||"bevel"===t)return 2*g;const f=n*Math.sin(o),p=r-Math.sqrt(n*n-f*f),m=Math.sqrt(f*f+p*p)/f;if(m<=i){const t=m*e/2-r-n;return 2*Math.max(g,t)}return 2*g}createRenderOptions(){let t,e=ks,i=0,n=null,r=0,s=0;this.stroke_&&(t=this.stroke_.getColor(),null===t&&(t=Bs),t=fl(t),s=this.stroke_.getWidth(),void 0===s&&(s=1),n=this.stroke_.getLineDash(),r=this.stroke_.getLineDashOffset(),e=this.stroke_.getLineJoin(),void 0===e&&(e=ks),i=this.stroke_.getMiterLimit(),void 0===i&&(i=js));const o=this.calculateLineJoinSize_(e,s,i),a=Math.max(this.radius_,this.radius2_||0);return{strokeStyle:t,strokeWidth:s,size:Math.ceil(2*a+o),lineDash:n,lineDashOffset:r,lineJoin:e,miterLimit:i}}render(){this.renderOptions_=this.createRenderOptions();const t=this.renderOptions_.size;this.canvas_={},this.size_=[t,t]}draw_(t,e,i){if(e.scale(i,i),e.translate(t.size/2,t.size/2),this.createPath_(e),this.fill_){let t=this.fill_.getColor();null===t&&(t=Ns),e.fillStyle=fl(t),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}createHitDetectionCanvas_(t){if(this.fill_){let e=this.fill_.getColor(),i=0;if("string"==typeof e&&(e=$r(e)),null===e?i=1:Array.isArray(e)&&(i=4===e.length?e[3]:1),0===i){const e=Dr(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e)}}this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.getImage(1))}createPath_(t){let e=this.points_;const i=this.radius_;if(e===1/0)t.arc(0,0,i,0,2*Math.PI);else{const n=void 0===this.radius2_?i:this.radius2_;void 0!==this.radius2_&&(e*=2);const r=this.angle_-Math.PI/2,s=2*Math.PI/e;for(let o=0;o<e;o++){const e=r+o*s,a=o%2==0?i:n;t.lineTo(a*Math.cos(e),a*Math.sin(e))}t.closePath()}}drawHitDetectionCanvas_(t,e){e.translate(t.size/2,t.size/2),this.createPath_(e),e.fillStyle=Ns,e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}}class sg extends rg{constructor(t){super({points:1/0,fill:(t=t||{radius:5}).fill,radius:t.radius,stroke:t.stroke,scale:void 0!==t.scale?t.scale:1,rotation:void 0!==t.rotation?t.rotation:0,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode})}clone(){const t=this.getScale(),e=new sg({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}setRadius(t){this.radius_=t,this.render()}}class og{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null}clone(){const t=this.getColor();return new og({color:Array.isArray(t)?t.slice():t||void 0})}getColor(){return this.color_}setColor(t){this.color_=t}}let ag=null;class lg extends v{constructor(t,e,i,n,r,s){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=n,this.canvas_={},this.color_=s,this.unlisten_=null,this.imageState_=r,this.size_=i,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===Lr){ag||(ag=Dr(1,1)),ag.drawImage(this.image_,0,0);try{ag.getImageData(0,0,1,1),this.tainted_=!1}catch(t){ag=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(S)}handleImageError_(){this.imageState_=Fr,this.unlistenImage_(),this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=Lr,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=Dr(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Pr){this.image_||this.initializeImage_(),this.imageState_=Ir;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=Or(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==Lr)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=Kr(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function hg(t,e,i,n,r,s){let o=ns.get(e,n,s);return o||(o=new lg(t,e,i,n,r,s),ns.set(e,n,s,o)),o}class cg extends ng{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,r=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;this.imgSize_=t.imgSize;let o=t.src;at(!(void 0!==o&&s),4),at(!s||s&&this.imgSize_,5),void 0!==o&&0!==o.length||!s||(o=s.src||z(s)),at(void 0!==o&&o.length>0,6);const a=void 0!==t.src?Pr:Lr;this.color_=void 0!==t.color?$r(t.color):null,this.iconImage_=hg(s,o,void 0!==this.imgSize_?this.imgSize_:null,this.crossOrigin_,a,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null}clone(){const t=this.getScale();return new cg({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,imgSize:this.imgSize_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:Array.isArray(t)?t.slice():t,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}listenImageChange(t){this.iconImage_.addEventListener(S,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(S,t)}}class ug{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new ug({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}class dg{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=_g,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new dg({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer(),stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=_g,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function gg(t){let e;if("function"==typeof t)e=t;else{let i;if(Array.isArray(t))i=t;else{at("function"==typeof t.getZIndex,41);i=[t]}e=function(){return i}}return e}let fg=null;function pg(t,e){if(!fg){const t=new og({color:"rgba(255,255,255,0.4)"}),e=new ug({color:"#3399CC",width:1.25});fg=[new dg({image:new sg({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return fg}function mg(){const t={},e=[255,255,255,1],i=[0,153,255,1];return t.Polygon=[new dg({fill:new og({color:[255,255,255,.5]})})],t.MultiPolygon=t.Polygon,t.LineString=[new dg({stroke:new ug({color:e,width:5})}),new dg({stroke:new ug({color:i,width:3})})],t.MultiLineString=t.LineString,t.Circle=t.Polygon.concat(t.LineString),t.Point=[new dg({image:new sg({radius:6,fill:new og({color:i}),stroke:new ug({color:e,width:1.5})}),zIndex:1/0})],t.MultiPoint=t.Point,t.GeometryCollection=t.Polygon.concat(t.LineString,t.Point),t}function _g(t){return t.getGeometry()}class yg{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.scale_=t.scale,this.scaleArray_=Va(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new og({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding}clone(){const t=this.getScale();return new yg({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRotateWithView(t){this.rotateWithView_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=Va(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}}function xg(t){return new dg({fill:vg(t,""),stroke:Sg(t,""),text:wg(t),image:Tg(t)})}function vg(t,e){const i=t[e+"fill-color"];if(i)return new og({color:i})}function Sg(t,e){const i=t[e+"stroke-width"],n=t[e+"stroke-color"];if(i||n)return new ug({width:i,color:n,lineCap:t[e+"stroke-line-cap"],lineJoin:t[e+"stroke-line-join"],lineDash:t[e+"stroke-line-dash"],lineDashOffset:t[e+"stroke-line-dash-offset"],miterLimit:t[e+"stroke-miter-limit"]})}function wg(t){const e=t["text-value"];if(!e)return;return new yg({text:e,font:t["text-font"],maxAngle:t["text-max-angle"],offsetX:t["text-offset-x"],offsetY:t["text-offset-y"],overflow:t["text-overflow"],placement:t["text-placement"],scale:t["text-scale"],rotateWithView:t["text-rotate-with-view"],rotation:t["text-rotation"],textAlign:t["text-align"],justify:t["text-justify"],textBaseline:t["text-baseline"],padding:t["text-padding"],fill:vg(t,"text-"),backgroundFill:vg(t,"text-background-"),stroke:Sg(t,"text-"),backgroundStroke:Sg(t,"text-background-")})}function Tg(t){const e=t["icon-src"],i=t["icon-img"];if(e||i){return new cg({src:e,img:i,imgSize:t["icon-img-size"],anchor:t["icon-anchor"],anchorOrigin:t["icon-anchor-origin"],anchorXUnits:t["icon-anchor-x-units"],anchorYUnits:t["icon-anchor-y-units"],color:t["icon-color"],crossOrigin:t["icon-cross-origin"],offset:t["icon-offset"],displacement:t["icon-displacement"],opacity:t["icon-opacity"],scale:t["icon-scale"],rotation:t["icon-rotation"],rotateWithView:t["icon-rotate-with-view"],size:t["icon-size"],declutterMode:t["icon-declutter-mode"]})}const n=t["shape-points"];if(n){const e="shape-";return new rg({points:n,fill:vg(t,e),stroke:Sg(t,e),radius:t["shape-radius"],radius1:t["shape-radius1"],radius2:t["shape-radius2"],angle:t["shape-angle"],displacement:t["shape-displacement"],rotation:t["shape-rotation"],rotateWithView:t["shape-rotate-with-view"],scale:t["shape-scale"],declutterMode:t["shape-declutter-mode"]})}const r=t["circle-radius"];if(r){const e="circle-";return new sg({radius:r,fill:vg(t,e),stroke:Sg(t,e),displacement:t["circle-displacement"],scale:t["circle-scale"],rotation:t["circle-rotation"],rotateWithView:t["circle-rotate-with-view"],declutterMode:t["circle-declutter-mode"]})}}const Eg={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},Cg={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function bg(t,e){let i,n;for(let r=0;r<t.length;++r){const s=t[r];if("item"===s.rel){if(s.type===e){i=s.href;break}(Eg[s.type]||!n&&s.type.startsWith("image/"))&&(n=s.href)}}if(!i){if(!n)throw new Error('Could not find "item" link');i=n}return i}function Rg(t,e,i){let n,r;const s={};for(let i=0;i<t.length;++i){const o=t[i];if(s[o.type]=o.href,"item"===o.rel){if(o.type===e){n=o.href;break}Cg[o.type]&&(r=o.href)}}if(!n&&i)for(let t=0;t<i.length;++t){const e=i[t];if(s[e]){n=s[e];break}}if(!n){if(!r)throw new Error('Could not find "item" link');n=r}return n}function Pg(t,e,i,n){let r=t.projection;if(!r&&(r=Ui(e.crs),!r))throw new Error(`Unsupported CRS: ${e.crs}`);const s="en"!==r.getAxisOrientation().substr(0,2),o=e.tileMatrices,a={};for(let t=0;t<o.length;++t){const e=o[t];a[e.id]=e}const l={},h=[];if(n)for(let t=0;t<n.length;++t){const e=n[t],i=e.tileMatrix;h.push(i),l[i]=e}else for(let t=0;t<o.length;++t){const e=o[t].id;h.push(e)}const c=h.length,u=new Array(c),d=new Array(c),g=new Array(c),f=new Array(c),p=[-1/0,-1/0,1/0,1/0];for(let t=0;t<c;++t){const e=h[t],i=a[e],n=i.pointOfOrigin;u[t]=s?[n[1],n[0]]:n,d[t]=i.cellSize,g[t]=[i.matrixWidth,i.matrixHeight],f[t]=[i.tileWidth,i.tileHeight];const r=l[e];if(r){const e=i.cellSize*i.tileWidth,n=u[t][0]+r.minTileCol*e,s=u[t][0]+(r.maxTileCol+1)*e,o=i.cellSize*i.tileHeight;let a,l;"bottomLeft"===i.cornerOfOrigin?(a=u[t][1]+r.minTileRow*o,l=u[t][1]+(r.maxTileRow+1)*o):(a=u[t][1]-(r.maxTileRow+1)*o,l=u[t][1]-r.minTileRow*o),ye(p,[n,a,s,l],p)}}const m=new Hl({origins:u,resolutions:d,sizes:g,tileSizes:f,extent:n?p:void 0}),_=t.context,y=t.url;return{grid:m,urlTemplate:i,urlFunction:function(t,e,r){if(!t)return;const s=h[t[0]],o=a[s],c="bottomLeft"===o.cornerOfOrigin,u={tileMatrix:s,tileCol:t[1],tileRow:c?-t[2]-1:t[2]};if(n){const t=l[o.id];if(u.tileCol<t.minTileCol||u.tileCol>t.maxTileCol||u.tileRow<t.minTileRow||u.tileRow>t.maxTileRow)return}Object.assign(u,_);const d=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return El(y,d)}}}function Ig(t){return Tl(t.url).then((function(e){return function(t,e){const i=e.tileMatrixSetLimits;let n;if("map"===e.dataType)n=bg(e.links,t.mediaType);else{if("vector"!==e.dataType)throw new Error('Expected tileset data type to be "map" or "vector"');n=Rg(e.links,t.mediaType,t.supportedMediaTypes)}if(e.tileMatrixSet)return Pg(t,e.tileMatrixSet,n,i);const r=e.links.find((t=>"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel));if(!r)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=r.href;return Tl(El(t.url,s)).then((function(e){return Pg(t,e,n,i)}))}(t,e)}))}const Lg="renderOrder";class Fg extends vs{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Lg)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new vh(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(Lg,t)}setStyle(t){let e;if(void 0===t)e=pg;else if(null===t)e=null;else if("function"==typeof t)e=t;else if(t instanceof dg)e=t;else if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let e=0;e<i;++e){const i=t[e];n[e]=i instanceof dg?i:xg(i)}e=n}else e=xg(t);this.style_=e,this.styleFunction_=null===t?void 0:gg(this.style_),this.changed()}}const Mg="GENERATE_POLYGON_BUFFERS",Ag="GENERATE_POINT_BUFFERS",Og="GENERATE_LINE_STRING_BUFFERS";var Ng={exports:{}};function Dg(t,e,i){i=i||2;var n,r,s,o,a,l,h,c=e&&e.length,u=c?e[0]*i:t.length,d=Gg(t,0,u,i,!0),g=[];if(!d||d.next===d.prev)return g;if(c&&(d=function(t,e,i,n){var r,s,o,a=[];for(r=0,s=e.length;r<s;r++)(o=Gg(t,e[r]*n,r<s-1?e[r+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),a.push(Kg(o));for(a.sort(Vg),r=0;r<a.length;r++)i=Wg(a[r],i);return i}(t,e,d,i)),t.length>80*i){n=s=t[0],r=o=t[1];for(var f=i;f<u;f+=i)(a=t[f])<n&&(n=a),(l=t[f+1])<r&&(r=l),a>s&&(s=a),l>o&&(o=l);h=0!==(h=Math.max(s-n,o-r))?32767/h:0}return jg(d,g,i,n,r,h,0),g}function Gg(t,e,i,n,r){var s,o;if(r===lf(t,e,i,n)>0)for(s=e;s<i;s+=n)o=sf(s,t[s],t[s+1],o);else for(s=i-n;s>=e;s-=n)o=sf(s,t[s],t[s+1],o);return o&&Jg(o,o.next)&&(of(o),o=o.next),o}function kg(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!Jg(n,n.next)&&0!==$g(n.prev,n,n.next))n=n.next;else{if(of(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function jg(t,e,i,n,r,s,o){if(t){!o&&s&&function(t,e,i,n){var r=t;do{0===r.z&&(r.z=Yg(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e<h&&(a++,n=n.nextZ);e++);for(l=h;a>0||l>0&&n;)0!==a&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,h*=2}while(o>1)}(r)}(t,n,r,s);for(var a,l,h=t;t.prev!==t.next;)if(a=t.prev,l=t.next,s?Ug(t,n,r,s):Bg(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),of(t),t=l.next,h=l.next;else if((t=l)===h){o?1===o?jg(t=zg(kg(t),e,i),e,i,n,r,s,2):2===o&&Xg(t,e,i,n,r,s):jg(kg(t),e,i,n,r,s,1);break}}}function Bg(t){var e=t.prev,i=t,n=t.next;if($g(e,i,n)>=0)return!1;for(var r=e.x,s=i.x,o=n.x,a=e.y,l=i.y,h=n.y,c=r<s?r<o?r:o:s<o?s:o,u=a<l?a<h?a:h:l<h?l:h,d=r>s?r>o?r:o:s>o?s:o,g=a>l?a>h?a:h:l>h?l:h,f=n.next;f!==e;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=g&&qg(r,a,s,l,o,h,f.x,f.y)&&$g(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Ug(t,e,i,n){var r=t.prev,s=t,o=t.next;if($g(r,s,o)>=0)return!1;for(var a=r.x,l=s.x,h=o.x,c=r.y,u=s.y,d=o.y,g=a<l?a<h?a:h:l<h?l:h,f=c<u?c<d?c:d:u<d?u:d,p=a>l?a>h?a:h:l>h?l:h,m=c>u?c>d?c:d:u>d?u:d,_=Yg(g,f,e,i,n),y=Yg(p,m,e,i,n),x=t.prevZ,v=t.nextZ;x&&x.z>=_&&v&&v.z<=y;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&qg(a,c,l,u,h,d,x.x,x.y)&&$g(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&qg(a,c,l,u,h,d,v.x,v.y)&&$g(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;x&&x.z>=_;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&qg(a,c,l,u,h,d,x.x,x.y)&&$g(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;v&&v.z<=y;){if(v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&qg(a,c,l,u,h,d,v.x,v.y)&&$g(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function zg(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!Jg(r,s)&&Qg(r,n,n.next,s)&&nf(r,s)&&nf(s,r)&&(e.push(r.i/i|0),e.push(n.i/i|0),e.push(s.i/i|0),of(n),of(n.next),n=t=s),n=n.next}while(n!==t);return kg(n)}function Xg(t,e,i,n,r,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Hg(o,a)){var l=rf(o,a);return o=kg(o,o.next),l=kg(l,l.next),jg(o,e,i,n,r,s,0),void jg(l,e,i,n,r,s,0)}a=a.next}o=o.next}while(o!==t)}function Vg(t,e){return t.x-e.x}function Wg(t,e){var i=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o&&(o=a,i=n.x<n.next.x?n:n.next,a===r))return i}n=n.next}while(n!==e);if(!i)return null;var l,h=i,c=i.x,u=i.y,d=1/0;n=i;do{r>=n.x&&n.x>=c&&r!==n.x&&qg(s<u?r:o,s,c,u,s<u?o:r,s,n.x,n.y)&&(l=Math.abs(s-n.y)/(r-n.x),nf(n,t)&&(l<d||l===d&&(n.x>i.x||n.x===i.x&&Zg(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}(t,e);if(!i)return e;var n=rf(i,t);return kg(n,n.next),kg(i,i.next)}function Zg(t,e){return $g(t.prev,t,e.prev)<0&&$g(e.next,t,t.next)<0}function Yg(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Kg(t){var e=t,i=t;do{(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next}while(e!==t);return i}function qg(t,e,i,n,r,s,o,a){return(r-o)*(e-a)>=(t-o)*(s-a)&&(t-o)*(n-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(r-o)*(n-a)}function Hg(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&Qg(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(nf(t,e)&&nf(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&($g(t.prev,t,e.prev)||$g(t,e.prev,e))||Jg(t,e)&&$g(t.prev,t,t.next)>0&&$g(e.prev,e,e.next)>0)}function $g(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Jg(t,e){return t.x===e.x&&t.y===e.y}function Qg(t,e,i,n){var r=ef($g(t,e,i)),s=ef($g(t,e,n)),o=ef($g(i,n,t)),a=ef($g(i,n,e));return r!==s&&o!==a||(!(0!==r||!tf(t,i,e))||(!(0!==s||!tf(t,n,e))||(!(0!==o||!tf(i,t,n))||!(0!==a||!tf(i,e,n)))))}function tf(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function ef(t){return t>0?1:t<0?-1:0}function nf(t,e){return $g(t.prev,t,t.next)<0?$g(t,e,t.next)>=0&&$g(t,t.prev,e)>=0:$g(t,e,t.prev)<0||$g(t,t.next,e)<0}function rf(t,e){var i=new af(t.i,t.x,t.y),n=new af(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function sf(t,e,i,n){var r=new af(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function of(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 af(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function lf(t,e,i,n){for(var r=0,s=e,o=i-n;s<i;s+=n)r+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return r}Ng.exports=Dg,Ng.exports.default=Dg,Dg.deviation=function(t,e,i,n){var r=e&&e.length,s=r?e[0]*i:t.length,o=Math.abs(lf(t,0,s,i));if(r)for(var a=0,l=e.length;a<l;a++){var h=e[a]*i,c=a<l-1?e[a+1]*i:t.length;o-=Math.abs(lf(t,h,c,i))}var u=0;for(a=0;a<n.length;a+=3){var d=n[a]*i,g=n[a+1]*i,f=n[a+2]*i;u+=Math.abs((t[d]-t[f])*(t[g+1]-t[d+1])-(t[d]-t[g])*(t[f+1]-t[d+1]))}return 0===o&&0===u?0:Math.abs((u-o)/o)},Dg.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},n=0,r=0;r<t.length;r++){for(var s=0;s<t[r].length;s++)for(var o=0;o<e;o++)i.vertices.push(t[r][s][o]);r>0&&(n+=t[r-1].length,i.holes.push(n))}return i};const hf=[],cf={vertexPosition:0,indexPosition:0};function uf(t,e,i,n,r){t[e+0]=i,t[e+1]=n,t[e+2]=r}function df(t,e){const i=256,n=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/n,e[1]=Math.floor(t/i/i)%i/n,e[2]=Math.floor(t/i)%i/n,e[3]=t%i/n,e}function gf(t){let e=0;const i=256,n=255;return e+=Math.round(t[0]*i*i*i*n),e+=Math.round(t[1]*i*i*n),e+=Math.round(t[2]*i*n),e+=Math.round(t[3]*n),e}function ff(){const t='const e="GENERATE_POLYGON_BUFFERS",t="GENERATE_POINT_BUFFERS",n="GENERATE_LINE_STRING_BUFFERS",r="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"";r.includes("firefox");r.includes("safari")&&!r.includes("chrom")&&(r.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(r)),r.includes("webkit")&&r.includes("edge"),r.includes("macintosh"),"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&(self,WorkerGlobalScope),function(){let e=!1;try{const t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("_",null,t),window.removeEventListener("_",null,t)}catch(e){}}();const o={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:\'`renderMode` must be `"hybrid"` or `"vector"`\',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class i extends Error{constructor(e){const t=o[e];super(t),this.code=e,this.name="AssertionError",this.message=t}}function s(e,t){const n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function a(e,t){const n=(r=t)[0]*r[3]-r[1]*r[2];var r;!function(e,t){if(!e)throw new i(t)}(0!==n,32);const o=t[0],s=t[1],a=t[2],u=t[3],f=t[4],x=t[5];return e[0]=u/n,e[1]=-s/n,e[2]=-a/n,e[3]=o/n,e[4]=(a*x-u*f)/n,e[5]=-(o*x-s*f)/n,e}new Array(6);var u={exports:{}};function f(e,t,n){n=n||2;var r,o,i,s,a,u,f,l=t&&t.length,d=l?t[0]*n:e.length,h=x(e,0,d,n,!0),v=[];if(!h||h.next===h.prev)return v;if(l&&(h=function(e,t,n,r){var o,i,s,a=[];for(o=0,i=t.length;o<i;o++)(s=x(e,t[o]*r,o<i-1?t[o+1]*r:e.length,r,!1))===s.next&&(s.steiner=!0),a.push(w(s));for(a.sort(y),o=0;o<a.length;o++)n=g(a[o],n);return n}(e,t,h,n)),e.length>80*n){r=i=e[0],o=s=e[1];for(var p=n;p<d;p+=n)(a=e[p])<r&&(r=a),(u=e[p+1])<o&&(o=u),a>i&&(i=a),u>s&&(s=u);f=0!==(f=Math.max(i-r,s-o))?32767/f:0}return c(h,v,n,r,o,f,0),v}function x(e,t,n,r,o){var i,s;if(o===B(e,t,n,r)>0)for(i=t;i<n;i+=r)s=U(i,e[i],e[i+1],s);else for(i=n-r;i>=t;i-=r)s=U(i,e[i],e[i+1],s);return s&&M(s,s.next)&&(z(s),s=s.next),s}function l(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!M(r,r.next)&&0!==Z(r.prev,r,r.next))r=r.next;else{if(z(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function c(e,t,n,r,o,i,s){if(e){!s&&i&&function(e,t,n,r){var o=e;do{0===o.z&&(o.z=m(o.x,o.y,t,n,r)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next}while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,function(e){var t,n,r,o,i,s,a,u,f=1;do{for(n=e,e=null,i=null,s=0;n;){for(s++,r=n,a=0,t=0;t<f&&(a++,r=r.nextZ);t++);for(u=f;a>0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(o=n,n=n.nextZ,a--):(o=r,r=r.nextZ,u--),i?i.nextZ=o:e=o,o.prevZ=i,i=o;n=r}i.nextZ=null,f*=2}while(s>1)}(o)}(e,r,o,i);for(var a,u,f=e;e.prev!==e.next;)if(a=e.prev,u=e.next,i?h(e,r,o,i):d(e))t.push(a.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),z(e),e=u.next,f=u.next;else if((e=u)===f){s?1===s?c(e=v(l(e),t,n),t,n,r,o,i,2):2===s&&p(e,t,n,r,o,i):c(l(e),t,n,r,o,i,1);break}}}function d(e){var t=e.prev,n=e,r=e.next;if(Z(t,n,r)>=0)return!1;for(var o=t.x,i=n.x,s=r.x,a=t.y,u=n.y,f=r.y,x=o<i?o<s?o:s:i<s?i:s,l=a<u?a<f?a:f:u<f?u:f,c=o>i?o>s?o:s:i>s?i:s,d=a>u?a>f?a:f:u>f?u:f,h=r.next;h!==t;){if(h.x>=x&&h.x<=c&&h.y>=l&&h.y<=d&&A(o,a,i,u,s,f,h.x,h.y)&&Z(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function h(e,t,n,r){var o=e.prev,i=e,s=e.next;if(Z(o,i,s)>=0)return!1;for(var a=o.x,u=i.x,f=s.x,x=o.y,l=i.y,c=s.y,d=a<u?a<f?a:f:u<f?u:f,h=x<l?x<c?x:c:l<c?l:c,v=a>u?a>f?a:f:u>f?u:f,p=x>l?x>c?x:c:l>c?l:c,y=m(d,h,t,n,r),g=m(v,p,t,n,r),b=e.prevZ,w=e.nextZ;b&&b.z>=y&&w&&w.z<=g;){if(b.x>=d&&b.x<=v&&b.y>=h&&b.y<=p&&b!==o&&b!==s&&A(a,x,u,l,f,c,b.x,b.y)&&Z(b.prev,b,b.next)>=0)return!1;if(b=b.prevZ,w.x>=d&&w.x<=v&&w.y>=h&&w.y<=p&&w!==o&&w!==s&&A(a,x,u,l,f,c,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=y;){if(b.x>=d&&b.x<=v&&b.y>=h&&b.y<=p&&b!==o&&b!==s&&A(a,x,u,l,f,c,b.x,b.y)&&Z(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=g;){if(w.x>=d&&w.x<=v&&w.y>=h&&w.y<=p&&w!==o&&w!==s&&A(a,x,u,l,f,c,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function v(e,t,n){var r=e;do{var o=r.prev,i=r.next.next;!M(o,i)&&F(o,r,r.next,i)&&k(o,i)&&k(i,o)&&(t.push(o.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),z(r),z(r.next),r=e=i),r=r.next}while(r!==e);return l(r)}function p(e,t,n,r,o,i){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&E(s,a)){var u=S(s,a);return s=l(s,s.next),u=l(u,u.next),c(s,t,n,r,o,i,0),void c(u,t,n,r,o,i,0)}a=a.next}s=s.next}while(s!==e)}function y(e,t){return e.x-t.x}function g(e,t){var n=function(e,t){var n,r=t,o=e.x,i=e.y,s=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var a=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=o&&a>s&&(s=a,n=r.x<r.next.x?r:r.next,a===o))return n}r=r.next}while(r!==t);if(!n)return null;var u,f=n,x=n.x,l=n.y,c=1/0;r=n;do{o>=r.x&&r.x>=x&&o!==r.x&&A(i<l?o:s,i,x,l,i<l?s:o,i,r.x,r.y)&&(u=Math.abs(i-r.y)/(o-r.x),k(r,e)&&(u<c||u===c&&(r.x>n.x||r.x===n.x&&b(n,r)))&&(n=r,c=u)),r=r.next}while(r!==f);return n}(e,t);if(!n)return t;var r=S(n,e);return l(r,r.next),l(n,n.next)}function b(e,t){return Z(e.prev,e,t.prev)<0&&Z(t.next,e,e.next)<0}function m(e,t,n,r,o){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*o|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function w(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function A(e,t,n,r,o,i,s,a){return(o-s)*(t-a)>=(e-s)*(i-a)&&(e-s)*(r-a)>=(n-s)*(t-a)&&(n-s)*(i-a)>=(o-s)*(r-a)}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&F(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(k(e,t)&&k(t,e)&&function(e,t){var n=e,r=!1,o=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&o<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(Z(e.prev,e,t.prev)||Z(e,t.prev,t))||M(e,t)&&Z(e.prev,e,e.next)>0&&Z(t.prev,t,t.next)>0)}function Z(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function M(e,t){return e.x===t.x&&e.y===t.y}function F(e,t,n,r){var o=I(Z(e,t,n)),i=I(Z(e,t,r)),s=I(Z(n,r,e)),a=I(Z(n,r,t));return o!==i&&s!==a||(!(0!==o||!T(e,n,t))||(!(0!==i||!T(e,r,t))||(!(0!==s||!T(n,e,r))||!(0!==a||!T(n,t,r)))))}function T(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function I(e){return e>0?1:e<0?-1:0}function k(e,t){return Z(e.prev,e,e.next)<0?Z(e,t,e.next)>=0&&Z(e,e.prev,t)>=0:Z(e,t,e.prev)<0||Z(e,e.next,t)<0}function S(e,t){var n=new R(e.i,e.x,e.y),r=new R(t.i,t.x,t.y),o=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function U(e,t,n,r){var o=new R(e,t,n);return r?(o.next=r.next,o.prev=r,r.next.prev=o,r.next=o):(o.prev=o,o.next=o),o}function z(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function R(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function B(e,t,n,r){for(var o=0,i=t,s=n-r;i<n;i+=r)o+=(e[s]-e[i])*(e[i+1]+e[s+1]),s=i;return o}u.exports=f,u.exports.default=f,f.deviation=function(e,t,n,r){var o=t&&t.length,i=o?t[0]*n:e.length,s=Math.abs(B(e,0,i,n));if(o)for(var a=0,u=t.length;a<u;a++){var f=t[a]*n,x=a<u-1?t[a+1]*n:e.length;s-=Math.abs(B(e,f,x,n))}var l=0;for(a=0;a<r.length;a+=3){var c=r[a]*n,d=r[a+1]*n,h=r[a+2]*n;l+=Math.abs((e[c]-e[h])*(e[d+1]-e[c+1])-(e[c]-e[d])*(e[h+1]-e[c+1]))}return 0===s&&0===l?0:Math.abs((l-s)/s)},f.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,o=0;o<e.length;o++){for(var i=0;i<e[o].length;i++)for(var s=0;s<t;s++)n.vertices.push(e[o][i][s]);o>0&&(r+=e[o-1].length,n.holes.push(r))}return n};const P=[],C={vertexPosition:0,indexPosition:0};function N(e,t,n,r,o){e[t+0]=n,e[t+1]=r,e[t+2]=o}function _(e,t,n,r,o,i){const s=3+o,a=e[t+0],u=e[t+1],f=P;f.length=o;for(let n=0;n<f.length;n++)f[n]=e[t+2+n];let x=i?i.vertexPosition:0,l=i?i.indexPosition:0;const c=x/s;return N(n,x,a,u,0),f.length&&n.set(f,x+3),x+=s,N(n,x,a,u,1),f.length&&n.set(f,x+3),x+=s,N(n,x,a,u,2),f.length&&n.set(f,x+3),x+=s,N(n,x,a,u,3),f.length&&n.set(f,x+3),x+=s,r[l++]=c,r[l++]=c+1,r[l++]=c+3,r[l++]=c+1,r[l++]=c+2,r[l++]=c+3,C.vertexPosition=x,C.indexPosition=l,C}function L(e,t,n,r,o,i,a,u,f,x){const l=5+u.length,c=i.length/l,d=[e[t+0],e[t+1]],h=[e[n],e[n+1]],v=s(x,[...d]),p=s(x,[...h]);function y(e,t,n){const r=1e4;return Math.round(1500*t)+Math.round(1500*n)*r+e*r*r}function g(e,t,n){const r=Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])),o=[(t[0]-e[0])/r,(t[1]-e[1])/r],i=[-o[1],o[0]],s=Math.sqrt((n[0]-e[0])*(n[0]-e[0])+(n[1]-e[1])*(n[1]-e[1])),a=[(n[0]-e[0])/s,(n[1]-e[1])/s],u=0===r||0===s?0:Math.acos((f=a[0]*o[0]+a[1]*o[1],x=-1,l=1,Math.min(Math.max(f,x),l)));var f,x,l;return a[0]*i[0]+a[1]*i[1]>0?u:2*Math.PI-u}const b=null!==o;let m=0,w=0;if(null!==r){m=g(v,p,s(x,[...[e[r],e[r+1]]]))}if(b){w=g(p,v,s(x,[...[e[o],e[o+1]]]))}i.push(d[0],d[1],h[0],h[1],y(0,m,w)),i.push(...u),i.push(d[0],d[1],h[0],h[1],y(1,m,w)),i.push(...u),i.push(d[0],d[1],h[0],h[1],y(2,m,w)),i.push(...u),i.push(d[0],d[1],h[0],h[1],y(3,m,w)),i.push(...u),a.push(c,c+1,c+2,c+1,c+3,c+2)}function G(e,t,n,r,o){const i=2+o;let s=t;const a=e.slice(s,s+o);s+=o;const f=e[s++];let x=0;const l=new Array(f-1);for(let t=0;t<f;t++)x+=e[s++],t<f-1&&(l[t]=x);const c=e.slice(s,s+2*x),d=u.exports(c,l,2);for(let e=0;e<d.length;e++)r.push(d[e]+n.length/i);for(let e=0;e<c.length;e+=2)n.push(c[e],c[e+1],...a);return s+2*x}const O=self;O.onmessage=r=>{const o=r.data;switch(o.type){case t:{const e=3,t=2,n=o.customAttributesCount,r=t+n,i=new Float32Array(o.renderInstructions),s=i.length/r,a=4*s*(n+e),u=new Uint32Array(6*s),f=new Float32Array(a);let x;for(let e=0;e<i.length;e+=r)x=_(i,e,f,u,n,x);const l=Object.assign({vertexBuffer:f.buffer,indexBuffer:u.buffer,renderInstructions:i.buffer},o);O.postMessage(l,[f.buffer,u.buffer,i.buffer]);break}case n:{const e=[],t=[],n=o.customAttributesCount,r=2,i=new Float32Array(o.renderInstructions);let s=0;const u=o.renderInstructionsTransform,f=[1,0,0,1,0,0];let x,l;for(a(f,u);s<i.length;){l=Array.from(i.slice(s,s+n)),s+=n,x=i[s++];for(let n=0;n<x-1;n++)L(i,s+n*r,s+(n+1)*r,n>0?s+(n-1)*r:null,n<x-2?s+(n+2)*r:null,e,t,l,0,f);s+=x*r}const c=Uint32Array.from(t),d=Float32Array.from(e),h=Object.assign({vertexBuffer:d.buffer,indexBuffer:c.buffer,renderInstructions:i.buffer},o);O.postMessage(h,[d.buffer,c.buffer,i.buffer]);break}case e:{const e=[],t=[],n=o.customAttributesCount,r=new Float32Array(o.renderInstructions);let i=0;for(;i<r.length;)i=G(r,i,e,t,n);const s=Uint32Array.from(t),a=Float32Array.from(e),u=Object.assign({vertexBuffer:a.buffer,indexBuffer:s.buffer,renderInstructions:r.buffer},o);O.postMessage(u,[a.buffer,s.buffer,r.buffer]);break}}};';return new Worker("undefined"==typeof Blob?"data:application/javascript;base64,"+Buffer.from(t,"binary").toString("base64"):URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}class pf extends pd{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[Yu]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.ready=!1,this.sourceRevision_=-1,this.verticesBuffer_=new Bu(su,lu),this.hitVerticesBuffer_=new Bu(su,lu),this.indicesBuffer_=new Bu(ou,lu),this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.program_,this.hitDetectionEnabled_=!(!e.hitFragmentShader||!e.hitVertexShader),this.hitVertexShader_=e.hitVertexShader,this.hitFragmentShader_=e.hitFragmentShader,this.hitProgram_;const r=e.attributes?e.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:ed.FLOAT}})):[];this.attributes=[{name:"a_position",size:2,type:ed.FLOAT},{name:"a_index",size:1,type:ed.FLOAT}].concat(r),this.hitDetectionAttributes=[{name:"a_position",size:2,type:ed.FLOAT},{name:"a_index",size:1,type:ed.FLOAT},{name:"a_hitColor",size:4,type:ed.FLOAT},{name:"a_featureUid",size:1,type:ed.FLOAT}].concat(r),this.customAttributes=e.attributes?e.attributes:[],this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n,this.renderTransform_=[1,0,0,1,0,0],this.invertRenderTransform_=[1,0,0,1,0,0],this.renderInstructions_=new Float32Array(0),this.hitRenderInstructions_=new Float32Array(0),this.hitRenderTarget_,this.generateBuffersRun_=0,this.worker_=ff(),this.worker_.addEventListener("message",function(t){const e=t.data;if(e.type===Ag){const i=e.projectionTransform;e.hitDetection?(this.hitVerticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.hitVerticesBuffer_)):(this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_)),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Mt(this.invertRenderTransform_,this.renderTransform_),e.hitDetection?this.hitRenderInstructions_=new Float32Array(t.data.renderInstructions):(this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.generateBuffersRun===this.generateBuffersRun_&&(this.ready=!0)),this.getLayer().changed()}}.bind(this)),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[N(s,Nh,this.handleSourceFeatureAdded_,this),N(s,Dh,this.handleSourceFeatureChanged_,this),N(s,kh,this.handleSourceFeatureDelete_,this),N(s,Gh,this.handleSourceFeatureClear_,this)],s.forEachFeature(function(t){this.featureCache_[z(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}.bind(this))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitProgram_=this.helper.getProgram(this.hitFragmentShader_,this.hitVertexShader_),this.hitRenderTarget_=new cd(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[z(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[z(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[z(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState.projection,n=this.getLayer().getSource().getWrapX()&&i.canWrapX(),r=i.getExtent(),s=t.extent,o=n?Se(r):null,a=n?Math.ceil((s[2]-r[2])/o)+1:1,l=n?Math.floor((s[0]-r[0])/o):0;let h=l;const c=this.indicesBuffer_.getSize();do{this.helper.makeProjectionTransform(t,this.currentTransform_),Lt(this.currentTransform_,h*o,0),Tt(this.currentTransform_,this.invertRenderTransform_),this.helper.applyUniforms(t),this.helper.drawElements(0,c)}while(++h<a);this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const u=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderHitDetection(t,l,a,o),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t),u}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Ro]&&!t.viewHints[Po],s=!ee(this.previousExtent_,t.extent),o=this.sourceRevision_<i.getRevision();if(o&&(this.sourceRevision_=i.getRevision()),r&&(s||o)){const r=n.projection,s=n.resolution,o=e instanceof Fg?e.getRenderBuffer():0,a=Xt(t.extent,o*s);i.loadFeatures(a,s,r),this.rebuildBuffers_(t),this.previousExtent_=t.extent.slice()}return this.helper.useProgram(this.program_,t),this.helper.prepareDraw(t),this.helper.bindBuffer(this.verticesBuffer_),this.helper.bindBuffer(this.indicesBuffer_),this.helper.enableAttributes(this.attributes),!0}rebuildBuffers_(t){const e=[1,0,0,1,0,0];this.helper.makeProjectionTransform(t,e);const i=(2+this.customAttributes.length)*this.featureCount_;if(this.renderInstructions_&&this.renderInstructions_.length===i||(this.renderInstructions_=new Float32Array(i)),this.hitDetectionEnabled_){const t=(7+this.customAttributes.length)*this.featureCount_;this.hitRenderInstructions_&&this.hitRenderInstructions_.length===t||(this.hitRenderInstructions_=new Float32Array(t))}let n,r;const s=[],o=[];let a,l=0,h=0;for(const t in this.featureCache_){if(n=this.featureCache_[t],r=n.geometry,!r||"Point"!==r.getType())continue;let i;s[0]=r.getFlatCoordinates()[0],s[1]=r.getFlatCoordinates()[1],bt(e,s),a=df(h+6,o),this.renderInstructions_[l++]=s[0],this.renderInstructions_[l++]=s[1],this.hitDetectionEnabled_&&(this.hitRenderInstructions_[h++]=s[0],this.hitRenderInstructions_[h++]=s[1],this.hitRenderInstructions_[h++]=a[0],this.hitRenderInstructions_[h++]=a[1],this.hitRenderInstructions_[h++]=a[2],this.hitRenderInstructions_[h++]=a[3],this.hitRenderInstructions_[h++]=Number(t));for(let t=0;t<this.customAttributes.length;t++)i=this.customAttributes[t].callback(n.feature,n.properties),this.renderInstructions_[l++]=i,this.hitDetectionEnabled_&&(this.hitRenderInstructions_[h++]=i)}const c={id:0,type:Ag,renderInstructions:this.renderInstructions_.buffer,customAttributesCount:this.customAttributes.length};if(c.projectionTransform=e,c.generateBuffersRun=++this.generateBuffersRun_,this.ready=!1,this.worker_.postMessage(c,[this.renderInstructions_.buffer]),this.renderInstructions_=null,this.hitDetectionEnabled_){const t={id:0,type:Ag,renderInstructions:this.hitRenderInstructions_.buffer,customAttributesCount:5+this.customAttributes.length};t.projectionTransform=e,t.hitDetection=!0,this.worker_.postMessage(t,[this.hitRenderInstructions_.buffer]),this.hitRenderInstructions_=null}}forEachFeatureAtCoordinate(t,e,i,n,r){if(at(this.hitDetectionEnabled_,66),!this.hitRenderInstructions_)return;const s=bt(e.coordinateToPixelTransform,t.slice()),o=this.hitRenderTarget_.readPixel(s[0]/2,s[1]/2),a=gf([o[0]/255,o[1]/255,o[2]/255,o[3]/255]),l=this.hitRenderInstructions_[a],h=Math.floor(l).toString(),c=this.getLayer().getSource().getFeatureByUid(h);return c?n(c,this.getLayer(),null):void 0}renderHitDetection(t,e,i,n){if(!this.hitVerticesBuffer_.getSize())return;let r=e;this.hitRenderTarget_.setSize([Math.floor(t.size[0]/2),Math.floor(t.size[1]/2)]),this.helper.useProgram(this.hitProgram_,t),this.helper.prepareDrawToRenderTarget(t,this.hitRenderTarget_,!0),this.helper.bindBuffer(this.hitVerticesBuffer_),this.helper.bindBuffer(this.indicesBuffer_),this.helper.enableAttributes(this.hitDetectionAttributes);do{this.helper.makeProjectionTransform(t,this.currentTransform_),Lt(this.currentTransform_,r*n,0),Tt(this.currentTransform_,this.invertRenderTransform_),this.helper.applyUniforms(t);const e=this.indicesBuffer_.getSize();this.helper.drawElements(0,e)}while(++r<i)}disposeInternal(){this.worker_.terminate(),this.layer_=null,this.sourceListenKeys_.forEach((function(t){G(t)})),this.sourceListenKeys_=null,super.disposeInternal()}}let mf=0;class _f{constructor(t,e,i,n,r){this.helper_=t,this.worker_=e,this.program_=this.helper_.getProgram(n,i),this.attributes=[],this.customAttributes=r}rebuild(t,e,i,n){t.renderInstructionsTransform=this.helper_.makeProjectionTransform(e,[1,0,0,1,0,0]),this.generateRenderInstructions(t),this.generateBuffers_(t,i,n)}render(t,e,i,n){this.helper_.makeProjectionTransform(i,e),Lt(e,n,0),Tt(e,t.invertVerticesBufferTransform),this.helper_.useProgram(this.program_,i),this.helper_.bindBuffer(t.verticesBuffer),this.helper_.bindBuffer(t.indicesBuffer),this.helper_.enableAttributes(this.attributes);const r=t.indicesBuffer.getSize();this.helper_.drawElements(0,r)}generateRenderInstructions(t){B()}generateBuffers_(t,e,i){const n=mf++;let r;switch(e){case"Polygon":r=Mg;break;case"Point":r=Ag;break;case"LineString":r=Og}const s={id:n,type:r,renderInstructions:t.renderInstructions.buffer,renderInstructionsTransform:t.renderInstructionsTransform,customAttributesCount:this.customAttributes.length};this.worker_.postMessage(s,[t.renderInstructions.buffer]),t.renderInstructions=null;const o=function(e){const r=e.data;r.id===n&&(this.worker_.removeEventListener("message",o),t.verticesBufferTransform=r.renderInstructionsTransform,Mt(t.invertVerticesBufferTransform,t.verticesBufferTransform),t.verticesBuffer.fromArrayBuffer(r.vertexBuffer),this.helper_.flushBufferData(t.verticesBuffer),t.indicesBuffer.fromArrayBuffer(r.indexBuffer),this.helper_.flushBufferData(t.indicesBuffer),t.renderInstructions=new Float32Array(r.renderInstructions),i())}.bind(this);this.worker_.addEventListener("message",o)}}const yf={SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",PARAMETERS:"a_parameters"};class xf extends _f{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:yf.SEGMENT_START,size:2,type:ed.FLOAT},{name:yf.SEGMENT_END,size:2,type:ed.FLOAT},{name:yf.PARAMETERS,size:1,type:ed.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:ed.FLOAT}})))}generateRenderInstructions(t){const e=2*t.verticesCount+(1+this.customAttributes.length)*t.geometriesCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n.length=i.flatCoordss[e].length,un(i.flatCoordss[e],0,n.length,2,t.renderInstructionsTransform,n);for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r;t.renderInstructions[s++]=n.length/2;for(let e=0,i=n.length;e<i;e+=2)t.renderInstructions[s++]=n[e],t.renderInstructions[s++]=n[e+1]}}}}class vf{constructor(){this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new Bu(su,lu),indicesBuffer:new Bu(ou,lu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]},this.pointBatch={entries:{},geometriesCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new Bu(su,lu),indicesBuffer:new Bu(ou,lu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new Bu(su,lu),indicesBuffer:new Bu(ou,lu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]}}addFeatures(t){for(let e=0;e<t.length;e++)this.addFeature(t[e])}addFeature(t){const e=t.getGeometry();e&&this.addGeometry_(e,t)}addFeatureEntryInPointBatch_(t){const e=z(t);return e in this.pointBatch.entries||(this.pointBatch.entries[e]={feature:t,flatCoordss:[]}),this.pointBatch.entries[e]}addFeatureEntryInLineStringBatch_(t){const e=z(t);return e in this.lineStringBatch.entries||(this.lineStringBatch.entries[e]={feature:t,flatCoordss:[],verticesCount:0}),this.lineStringBatch.entries[e]}addFeatureEntryInPolygonBatch_(t){const e=z(t);return e in this.polygonBatch.entries||(this.polygonBatch.entries[e]={feature:t,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]}),this.polygonBatch.entries[e]}clearFeatureEntryInPointBatch_(t){const e=this.pointBatch.entries[z(t)];e&&(this.pointBatch.geometriesCount-=e.flatCoordss.length,delete this.pointBatch.entries[z(t)])}clearFeatureEntryInLineStringBatch_(t){const e=this.lineStringBatch.entries[z(t)];e&&(this.lineStringBatch.verticesCount-=e.verticesCount,this.lineStringBatch.geometriesCount-=e.flatCoordss.length,delete this.lineStringBatch.entries[z(t)])}clearFeatureEntryInPolygonBatch_(t){const e=this.polygonBatch.entries[z(t)];e&&(this.polygonBatch.verticesCount-=e.verticesCount,this.polygonBatch.ringsCount-=e.ringsCount,this.polygonBatch.geometriesCount-=e.flatCoordss.length,delete this.polygonBatch.entries[z(t)])}addGeometry_(t,e){let i,n,r;switch(t.getType()){case"GeometryCollection":t.getGeometries().map((t=>this.addGeometry_(t,e)));break;case"MultiPolygon":t.getPolygons().map((t=>this.addGeometry_(t,e)));break;case"MultiLineString":t.getLineStrings().map((t=>this.addGeometry_(t,e)));break;case"MultiPoint":t.getPoints().map((t=>this.addGeometry_(t,e)));break;case"Polygon":const s=t;r=this.addFeatureEntryInPolygonBatch_(e),i=s.getFlatCoordinates(),n=i.length/2;const o=s.getLinearRingCount(),a=s.getEnds().map(((t,e,i)=>e>0?(t-i[e-1])/2:t/2));this.polygonBatch.verticesCount+=n,this.polygonBatch.ringsCount+=o,this.polygonBatch.geometriesCount++,r.flatCoordss.push(i),r.ringsVerticesCounts.push(a),r.verticesCount+=n,r.ringsCount+=o,s.getLinearRings().map((t=>this.addGeometry_(t,e)));break;case"Point":const l=t;r=this.addFeatureEntryInPointBatch_(e),i=l.getFlatCoordinates(),this.pointBatch.geometriesCount++,r.flatCoordss.push(i);break;case"LineString":case"LinearRing":const h=t;r=this.addFeatureEntryInLineStringBatch_(e),i=h.getFlatCoordinates(),n=i.length/2,this.lineStringBatch.verticesCount+=n,this.lineStringBatch.geometriesCount++,r.flatCoordss.push(i),r.verticesCount+=n}}changeFeature(t){this.clearFeatureEntryInPointBatch_(t),this.clearFeatureEntryInPolygonBatch_(t),this.clearFeatureEntryInLineStringBatch_(t);const e=t.getGeometry();e&&this.addGeometry_(e,t)}removeFeature(t){this.clearFeatureEntryInPointBatch_(t),this.clearFeatureEntryInPolygonBatch_(t),this.clearFeatureEntryInLineStringBatch_(t)}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0}}const Sf={POSITION:"a_position",INDEX:"a_index"};class wf extends _f{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:Sf.POSITION,size:2,type:ed.FLOAT},{name:Sf.INDEX,size:1,type:ed.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:ed.FLOAT}})))}generateRenderInstructions(t){const e=(2+this.customAttributes.length)*t.geometriesCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n[0]=i.flatCoordss[e][0],n[1]=i.flatCoordss[e][1],bt(t.renderInstructionsTransform,n),t.renderInstructions[s++]=n[0],t.renderInstructions[s++]=n[1];for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r}}}}const Tf={POSITION:"a_position"};class Ef extends _f{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:Tf.POSITION,size:2,type:ed.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:ed.FLOAT}})))}generateRenderInstructions(t){const e=2*t.verticesCount+(1+this.customAttributes.length)*t.geometriesCount+t.ringsCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n.length=i.flatCoordss[e].length,un(i.flatCoordss[e],0,n.length,2,t.renderInstructionsTransform,n);for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r;t.renderInstructions[s++]=i.ringsVerticesCounts[e].length;for(let n=0,r=i.ringsVerticesCounts[e].length;n<r;n++)t.renderInstructions[s++]=i.ringsVerticesCounts[e][n];for(let e=0,i=n.length;e<i;e+=2)t.renderInstructions[s++]=n[e],t.renderInstructions[s++]=n[e+1]}}}}function Cf(t){const e=$r(t);return 256*e[0]*256+256*e[1]+e[2]}const bf="vec3(\n fract(floor(a_color / 256.0 / 256.0) / 256.0),\n fract(floor(a_color / 256.0) / 256.0),\n fract(a_color / 256.0)\n);",Rf=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n attribute vec2 a_position;\n attribute float a_color;\n attribute float a_opacity;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n v_color = ${bf}\n v_opacity = a_opacity;\n }`,Pf="\n precision mediump float;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n }",If=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform vec2 u_sizePx;\n attribute vec2 a_segmentStart;\n attribute vec2 a_segmentEnd;\n attribute float a_parameters;\n attribute float a_color;\n attribute float a_opacity;\n attribute float a_width;\n varying vec2 v_segmentStart;\n varying vec2 v_segmentEnd;\n varying float v_angleStart;\n varying float v_angleEnd;\n varying vec3 v_color;\n varying float v_opacity;\n varying float v_width;\n\n vec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_sizePx;\n }\n\n vec4 pxToScreen(vec2 pxPos) {\n vec2 screenPos = pxPos * 4.0 / u_sizePx;\n return vec4(screenPos.xy, 0.0, 0.0);\n }\n\n vec2 getOffsetDirection(vec2 normalPx, vec2 tangentPx, float joinAngle) {\n if (cos(joinAngle) > 0.93) return normalPx - tangentPx;\n float halfAngle = joinAngle / 2.0;\n vec2 angleBisectorNormal = vec2(\n sin(halfAngle) * normalPx.x + cos(halfAngle) * normalPx.y,\n -cos(halfAngle) * normalPx.x + sin(halfAngle) * normalPx.y\n );\n float length = 1.0 / sin(halfAngle);\n return angleBisectorNormal * length;\n }\n\n void main(void) {\n float anglePrecision = 1500.0;\n float paramShift = 10000.0;\n v_angleStart = fract(a_parameters / paramShift) * paramShift / anglePrecision;\n v_angleEnd = fract(floor(a_parameters / paramShift + 0.5) / paramShift) * paramShift / anglePrecision;\n float vertexNumber = floor(a_parameters / paramShift / paramShift + 0.0001);\n vec2 tangentPx = worldToPx(a_segmentEnd) - worldToPx(a_segmentStart);\n tangentPx = normalize(tangentPx);\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\n vec2 offsetPx = getOffsetDirection(normalPx * normalDir, tangentDir * tangentPx, angle) * a_width * 0.5;\n vec2 position = vertexNumber < 1.5 ? a_segmentStart : a_segmentEnd;\n gl_Position = u_projectionMatrix * vec4(position, 0.0, 1.0) + pxToScreen(offsetPx);\n v_segmentStart = worldToPx(a_segmentStart);\n v_segmentEnd = worldToPx(a_segmentEnd);\n v_color = ${bf}\n v_opacity = a_opacity;\n v_width = a_width;\n }`,Lf="\n precision mediump float;\n uniform float u_pixelRatio;\n varying vec2 v_segmentStart;\n varying vec2 v_segmentEnd;\n varying float v_angleStart;\n varying float v_angleEnd;\n varying vec3 v_color;\n varying float v_opacity;\n varying float v_width;\n\n float segmentDistanceField(vec2 point, vec2 start, vec2 end, float radius) {\n vec2 startToPoint = point - start;\n vec2 startToEnd = end - start;\n float ratio = clamp(dot(startToPoint, startToEnd) / dot(startToEnd, startToEnd), 0.0, 1.0);\n float dist = length(startToPoint - ratio * startToEnd);\n return 1.0 - smoothstep(radius - 1.0, radius, dist);\n }\n\n void main(void) {\n vec2 v_currentPoint = gl_FragCoord.xy / u_pixelRatio;\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n gl_FragColor *= segmentDistanceField(v_currentPoint, v_segmentStart, v_segmentEnd, v_width);\n }",Ff=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_color;\n attribute float a_opacity;\n varying vec2 v_texCoord;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float size = 6.0;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -size / 2.0 : size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -size / 2.0 : size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_color = ${bf}\n v_opacity = a_opacity;\n }`,Mf="\n precision mediump float;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n }";function Af(t){return Object.keys(t).map((e=>({name:e,callback:t[e]})))}const Of=0,Nf=1,Df=2,Gf=3,kf=4,jf=5,Bf=6,Uf=7,zf=8,Xf=9,Vf=10,Wf=11,Zf=12,Yf=[zf],Kf=[Zf],qf=[Nf],Hf=[Gf];class $f extends Cl{constructor(t,e,i,n){super(),this.tolerance=t,this.maxExtent=e,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=i,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.tmpCoordinate_=[],this.hitDetectionInstructions=[],this.state={}}applyPixelRatio(t){const e=this.pixelRatio;return 1==e?t:t.map((function(t){return t*e}))}appendFlatPointCoordinates(t,e){const i=this.getBufferedMaxExtent(),n=this.tmpCoordinate_,r=this.coordinates;let s=r.length;for(let o=0,a=t.length;o<a;o+=e)n[0]=t[o],n[1]=t[o+1],Zt(i,n)&&(r[s++]=n[0],r[s++]=n[1]);return s}appendFlatLineCoordinates(t,e,i,n,r,s){const o=this.coordinates;let a=o.length;const l=this.getBufferedMaxExtent();s&&(e+=n);let h=t[e],c=t[e+1];const u=this.tmpCoordinate_;let d,g,f,p=!0;for(d=e+n;d<i;d+=n)u[0]=t[d],u[1]=t[d+1],f=qt(l,u),f!==g?(p&&(o[a++]=h,o[a++]=c,p=!1),o[a++]=u[0],o[a++]=u[1]):f===Gt?(o[a++]=u[0],o[a++]=u[1],p=!1):p=!0,h=u[0],c=u[1],g=f;return(r&&p||d===e+n)&&(o[a++]=h,o[a++]=c),a}drawCustomCoordinates_(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s],a=this.appendFlatLineCoordinates(t,e,o,n,!1,!1);r.push(a),e=o}return e}drawCustom(t,e,i,n){this.beginGeometry(t,e);const r=t.getType(),s=t.getStride(),o=this.coordinates.length;let a,l,h,c,u;switch(r){case"MultiPolygon":a=t.getOrientedFlatCoordinates(),c=[];const e=t.getEndss();u=0;for(let t=0,i=e.length;t<i;++t){const i=[];u=this.drawCustomCoordinates_(a,u,e[t],s,i),c.push(i)}this.instructions.push([kf,o,c,t,i,Bn]),this.hitDetectionInstructions.push([kf,o,c,t,n||i,Bn]);break;case"Polygon":case"MultiLineString":h=[],a="Polygon"==r?t.getOrientedFlatCoordinates():t.getFlatCoordinates(),u=this.drawCustomCoordinates_(a,0,t.getEnds(),s,h),this.instructions.push([kf,o,h,t,i,jn]),this.hitDetectionInstructions.push([kf,o,h,t,n||i,jn]);break;case"LineString":case"Circle":a=t.getFlatCoordinates(),l=this.appendFlatLineCoordinates(a,0,a.length,s,!1,!1),this.instructions.push([kf,o,l,t,i,kn]),this.hitDetectionInstructions.push([kf,o,l,t,n||i,kn]);break;case"MultiPoint":a=t.getFlatCoordinates(),l=this.appendFlatPointCoordinates(a,s),l>o&&(this.instructions.push([kf,o,l,t,i,kn]),this.hitDetectionInstructions.push([kf,o,l,t,n||i,kn]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([kf,o,l,t,i]),this.hitDetectionInstructions.push([kf,o,l,t,n||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[Of,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[Of,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,r,s=-1;for(e=0;e<i;++e)n=t[e],r=n[0],r==Uf?s=e:r==Of&&(n[2]=e,h(this.hitDetectionInstructions,s,e),s=-1)}setFillStrokeStyle(t,e){const i=this.state;if(t){const e=t.getColor();i.fillStyle=fl(e||Ns)}else i.fillStyle=void 0;if(e){const t=e.getColor();i.strokeStyle=fl(t||Bs);const n=e.getLineCap();i.lineCap=void 0!==n?n:Ds;const r=e.getLineDash();i.lineDash=r?r.slice():Gs;const s=e.getLineDashOffset();i.lineDashOffset=s||0;const o=e.getLineJoin();i.lineJoin=void 0!==o?o:ks;const a=e.getWidth();i.lineWidth=void 0!==a?a:1;const l=e.getMiterLimit();i.miterLimit=void 0!==l?l:js,i.lineWidth>this.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[Vf,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[Wf,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,r=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||r!=t.currentLineDash&&!u(t.currentLineDash,r)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=r,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[Uf,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Vt(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;Xt(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}}class Jf extends $f{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([Bf,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Bf,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([Bf,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Bf,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}}class Qf extends $f{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const r=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[Xf,r,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Wf,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Gs,0],qf);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(Kf),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Wf,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],qf);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t<e;++t)l=this.drawFlatCoordinates_(o,l,s[t],a);this.hitDetectionInstructions.push(Kf),this.endGeometry(e)}finish(){const t=this.state;return null!=t.lastStroke&&t.lastStroke!=this.coordinates.length&&this.instructions.push(Kf),this.reverseHitDetectionInstructions(),this.state=null,super.finish()}applyStroke(t){null!=t.lastStroke&&t.lastStroke!=this.coordinates.length&&(this.instructions.push(Kf),t.lastStroke=this.coordinates.length),t.lastStroke=0,super.applyStroke(t),this.instructions.push(qf)}}class tp extends $f{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinatess_(t,e,i,n){const r=this.state,s=void 0!==r.fillStyle,o=void 0!==r.strokeStyle,a=i.length;this.instructions.push(qf),this.hitDetectionInstructions.push(qf);for(let r=0;r<a;++r){const s=i[r],a=this.coordinates.length,l=this.appendFlatLineCoordinates(t,e,s,n,!0,!o),h=[Xf,a,l];this.instructions.push(h),this.hitDetectionInstructions.push(h),o&&(this.instructions.push(Hf),this.hitDetectionInstructions.push(Hf)),e=s}return s&&(this.instructions.push(Yf),this.hitDetectionInstructions.push(Yf)),o&&(this.instructions.push(Kf),this.hitDetectionInstructions.push(Kf)),e}drawCircle(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Vf,Ns]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([Wf,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getFlatCoordinates(),o=t.getStride(),a=this.coordinates.length;this.appendFlatLineCoordinates(s,0,s.length,o,!1,!1);const l=[Df,a];this.instructions.push(qf,l),this.hitDetectionInstructions.push(qf,l),void 0!==i.fillStyle&&(this.instructions.push(Yf),this.hitDetectionInstructions.push(Yf)),void 0!==i.strokeStyle&&(this.instructions.push(Kf),this.hitDetectionInstructions.push(Kf)),this.endGeometry(e)}drawPolygon(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Vf,Ns]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([Wf,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getEnds(),o=t.getOrientedFlatCoordinates(),a=t.getStride();this.drawFlatCoordinatess_(o,0,s,a),this.endGeometry(e)}drawMultiPolygon(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Vf,Ns]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([Wf,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getEndss(),o=t.getOrientedFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t<e;++t)l=this.drawFlatCoordinatess_(o,l,s[t],a);this.endGeometry(e)}finish(){this.reverseHitDetectionInstructions(),this.state=null;const t=this.tolerance;if(0!==t){const e=this.coordinates;for(let i=0,n=e.length;i<n;++i)e[i]=On(e[i],t)}return super.finish()}setFillStrokeStyles_(){const t=this.state;void 0!==t.fillStyle&&this.updateFillStyle(t,this.createFill),void 0!==t.strokeStyle&&this.updateStrokeStyle(t,this.applyStroke)}}function ep(t,e,i,n,r){let s,o,a,l,h,c,u,d,g,f,p=i,m=i,_=0,y=0,x=i;for(o=i;o<n;o+=r){const i=e[o],n=e[o+1];void 0!==h&&(g=i-h,f=n-c,l=Math.sqrt(g*g+f*f),void 0!==u&&(y+=a,s=Math.acos((u*g+d*f)/(a*l)),s>t&&(y>_&&(_=y,p=x,m=o),y=0,x=o-r)),a=l,u=g,d=f),h=i,c=n}return y+=l,y>_?[x,o]:[p,m]}const ip={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};class np extends $f{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,r=this.textState_;if(""===this.text_||!r||!i&&!n)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==r.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=r.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),r.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,n=e.length;t<n;t+=3)r.overflow||i.push(e[t+2]/this.resolution),l.push(e[t],e[t+1]);if(0===l.length)return;h=2}const n=this.appendFlatPointCoordinates(l,h);if(n===o)return;if(i&&(n-o)/2!=l.length/h){let t=o/2;i=i.filter(((e,i)=>{const n=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return n||--t,n}))}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&(this.updateFillStyle(this.state,this.createFill),this.hitDetectionInstructions.push(this.createFill(this.state))),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=r.padding;if(c!=Xs&&(r.scale[0]<0||r.scale[1]<0)){let t=r.padding[0],e=r.padding[1],i=r.padding[2],n=r.padding[3];r.scale[0]<0&&(e=-e,n=-n),r.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([Bf,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==Xs?Xs:c.map((function(t){return t*u})),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const d=1/u;this.hitDetectionInstructions.push([Bf,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[d,d],NaN,void 0,this.declutterImageWithText_,c,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),this.endGeometry(e)}else{if(!we(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;t<n;++t)i.push(e[t][0])}this.beginGeometry(t,e);const n=r.textAlign;let c,u=0;for(let t=0,e=i.length;t<e;++t){if(null==n){const e=ep(r.maxAngle,l,u,i[t],h);u=e[0],c=e[1]}else c=i[t];for(let t=u;t<c;t+=h)s.push(l[t],l[t+1]);const e=s.length;u=i[t],this.drawChars_(o,e),o=e}this.endGeometry(e)}}saveTextStates_(){const t=this.textStrokeState_,e=this.textState_,i=this.textFillState_,n=this.strokeKey_;t&&(n in this.strokeStates||(this.strokeStates[n]={strokeStyle:t.strokeStyle,lineCap:t.lineCap,lineDashOffset:t.lineDashOffset,lineWidth:t.lineWidth,lineJoin:t.lineJoin,miterLimit:t.miterLimit,lineDash:t.lineDash}));const r=this.textKey_;r in this.textStates||(this.textStates[r]={font:e.font,textAlign:e.textAlign||Us,justify:e.justify,textBaseline:e.textBaseline||zs,scale:e.scale});const s=this.fillKey_;i&&(s in this.fillStates||(this.fillStates[s]={fillStyle:i.fillStyle}))}drawChars_(t,e){const i=this.textStrokeState_,n=this.textState_,r=this.strokeKey_,s=this.textKey_,o=this.fillKey_;this.saveTextStates_();const a=this.pixelRatio,l=ip[n.textBaseline],h=this.textOffsetY_*a,c=this.text_,u=i?i.lineWidth*Math.abs(n.scale[0])/2:0;this.instructions.push([jf,t,e,l,n.overflow,o,n.maxAngle,a,h,r,u*a,c,s,1]),this.hitDetectionInstructions.push([jf,t,e,l,n.overflow,o,n.maxAngle,1,h,r,u,c,s,1/a])}setTextStyle(t,e){let i,n,r;if(t){const e=t.getFill();e?(n=this.textFillState_,n||(n={},this.textFillState_=n),n.fillStyle=fl(e.getColor()||Ns)):(n=null,this.textFillState_=n);const s=t.getStroke();if(s){r=this.textStrokeState_,r||(r={},this.textStrokeState_=r);const t=s.getLineDash(),e=s.getLineDashOffset(),i=s.getWidth(),n=s.getMiterLimit();r.lineCap=s.getLineCap()||Ds,r.lineDash=t?t.slice():Gs,r.lineDashOffset=void 0===e?0:e,r.lineJoin=s.getLineJoin()||ks,r.lineWidth=void 0===i?1:i,r.miterLimit=void 0===n?js:n,r.strokeStyle=fl(s.getColor()||Bs)}else r=null,this.textStrokeState_=r;i=this.textState_;const o=t.getFont()||Os;Ks(o);const a=t.getScaleArray();i.overflow=t.getOverflow(),i.font=o,i.maxAngle=t.getMaxAngle(),i.placement=t.getPlacement(),i.textAlign=t.getTextAlign(),i.justify=t.getJustify(),i.textBaseline=t.getTextBaseline()||zs,i.backgroundFill=t.getBackgroundFill(),i.backgroundStroke=t.getBackgroundStroke(),i.padding=t.getPadding()||Xs,i.scale=void 0===a?[1,1]:a;const l=t.getOffsetX(),h=t.getOffsetY(),c=t.getRotateWithView(),u=t.getRotation();this.text_=t.getText()||"",this.textOffsetX_=void 0===l?0:l,this.textOffsetY_=void 0===h?0:h,this.textRotateWithView_=void 0!==c&&c,this.textRotation_=void 0===u?0:u,this.strokeKey_=r?("string"==typeof r.strokeStyle?r.strokeStyle:z(r.strokeStyle))+r.lineCap+r.lineDashOffset+"|"+r.lineWidth+r.lineJoin+r.miterLimit+"["+r.lineDash.join()+"]":"",this.textKey_=i.font+i.scale+(i.textAlign||"?")+(i.justify||"?")+(i.textBaseline||"?"),this.fillKey_=n?"string"==typeof n.fillStyle?n.fillStyle:"|"+z(n.fillStyle):""}else this.text_="";this.declutterImageWithText_=e}}const rp={Circle:tp,Default:$f,Image:Jf,LineString:Qf,Polygon:tp,Text:np};class sp{constructor(t,e,i,n){this.tolerance_=t,this.maxExtent_=e,this.pixelRatio_=n,this.resolution_=i,this.buildersByZIndex_={}}finish(){const t={};for(const e in this.buildersByZIndex_){t[e]=t[e]||{};const i=this.buildersByZIndex_[e];for(const n in i){const r=i[n].finish();t[e][n]=r}}return t}getBuilder(t,e){const i=void 0!==t?t.toString():"0";let n=this.buildersByZIndex_[i];void 0===n&&(n={},this.buildersByZIndex_[i]=n);let r=n[e];if(void 0===r){r=new(0,rp[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),n[e]=r}return r}}function op(t,e,i,n,r,s,o,a,l,h,c,u){let d=t[e],g=t[e+1],f=0,p=0,m=0,_=0;function y(){f=d,p=g,d=t[e+=n],g=t[e+1],_+=m,m=Math.sqrt((d-f)*(d-f)+(g-p)*(g-p))}do{y()}while(e<i-n&&_+m<s);let x=0===m?0:(s-_)/m;const v=hi(f,d,x),S=hi(p,g,x),w=e-n,T=_,E=s+a*l(h,r,c);for(;e<i-n&&_+m<E;)y();x=0===m?0:(E-_)/m;const C=hi(f,d,x),b=hi(p,g,x);let R;if(u){const t=[v,S,C,b];dn(t,0,4,2,u,t,t),R=t[0]>t[2]}else R=v>C;const P=Math.PI,I=[],L=w+n===e;let F;if(m=0,_=T,d=t[e=w],g=t[e+1],L){y(),F=Math.atan2(g-p,d-f),R&&(F+=F>0?-P:P);const t=(C+v)/2,e=(b+S)/2;return I[0]=[t,e,(E-s)/2,F,r],I}for(let t=0,u=(r=r.replace(/\n/g," ")).length;t<u;){y();let v=Math.atan2(g-p,d-f);if(R&&(v+=v>0?-P:P),void 0!==F){let t=v-F;if(t+=t>P?-2*P:t<-P?2*P:0,Math.abs(t)>o)return null}F=v;const S=t;let w=0;for(;t<u;++t){const o=a*l(h,r[R?u-t-1:t],c);if(e+n<i&&_+m<s+w+o/2)break;w+=o}if(t===S)continue;const T=R?r.substring(u-S,u-t):r.substring(S,t);x=0===m?0:(s+w/2-_)/m;const E=hi(f,d,x),C=hi(p,g,x);I.push([E,C,w/2,v,T]),s+=w}return I}function ap(t,e,i,n){let r=t[e],s=t[e+1],o=0;for(let a=e+n;a<i;a+=n){const e=t[a],i=t[a+1];o+=Math.sqrt((e-r)*(e-r)+(i-s)*(i-s)),r=e,s=i}return o}const lp=[1/0,1/0,-1/0,-1/0],hp=[],cp=[],up=[],dp=[];function gp(t){return t[3].declutterBox}const fp=new RegExp("["+String.fromCharCode(1425)+"-"+String.fromCharCode(2303)+String.fromCharCode(64285)+"-"+String.fromCharCode(65023)+String.fromCharCode(65136)+"-"+String.fromCharCode(65276)+String.fromCharCode(67584)+"-"+String.fromCharCode(69631)+String.fromCharCode(124928)+"-"+String.fromCharCode(126975)+"]");function pp(t,e){return"start"!==e&&"end"!==e||fp.test(t)||(e="start"===e?"left":"right"),ip[e]}function mp(t,e,i){return i>0&&t.push("\n",""),t.push(e,""),t}class _p{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const r=t+e+i+n;if(this.labels_[r])return this.labels_[r];const s=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?ip[a.justify]:pp(Array.isArray(t)?t[0]:t,a.textAlign||Us),d=n&&s.lineWidth?s.lineWidth:0,g=c?t:t.split("\n").reduce(mp,[]),{width:f,height:p,widths:m,heights:_,lineWidths:y}=Qs(a,g),x=f+d,v=[],S=(x+2)*h[0],w=(p+d)*h[1],T={width:S<0?Math.floor(S):Math.ceil(S),height:w<0?Math.floor(w):Math.ceil(w),contextInstructions:v};1==h[0]&&1==h[1]||v.push("scale",h),n&&(v.push("strokeStyle",s.strokeStyle),v.push("lineWidth",d),v.push("lineCap",s.lineCap),v.push("lineJoin",s.lineJoin),v.push("miterLimit",s.miterLimit),v.push("setLineDash",[s.lineDash]),v.push("lineDashOffset",s.lineDashOffset)),i&&v.push("fillStyle",o.fillStyle),v.push("textBaseline","middle"),v.push("textAlign","center");const E=.5-u;let C=u*x+E*d;const b=[],R=[];let P,I=0,L=0,F=0,M=0;for(let t=0,e=g.length;t<e;t+=2){const e=g[t];if("\n"===e){L+=I,I=0,C=u*x+E*d,++M;continue}const r=g[t+1]||a.font;r!==P&&(n&&b.push("font",r),i&&R.push("font",r),P=r),I=Math.max(I,_[F]);const s=[e,C+E*m[F]+u*(m[F]-y[M]),.5*(d+I)+L];C+=m[F],n&&b.push("strokeText",s),i&&R.push("fillText",s),++F}return Array.prototype.push.apply(v,b),Array.prototype.push.apply(v,R),this.labels_[r]=T,T}replayTextBackground_(t,e,i,n,r,s,o){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,n),t.lineTo.apply(t,r),t.lineTo.apply(t,e),s&&(this.alignFill_=s[2],this.fill_(t)),o&&(this.setStrokeStyle_(t,o),t.stroke())}calculateImageOrLabelDimensions_(t,e,i,n,r,s,o,a,l,h,c,u,d,g,f,p){let m=i-(o*=u[0]),_=n-(a*=u[1]);const y=r+l>t?t-l:r,x=s+h>e?e-h:s,v=g[3]+y*u[0]+g[1],S=g[0]+x*u[1]+g[2],w=m-g[3],T=_-g[0];let E;return(f||0!==c)&&(hp[0]=w,dp[0]=w,hp[1]=T,cp[1]=T,cp[0]=w+v,up[0]=cp[0],up[1]=T+S,dp[1]=up[1]),0!==c?(E=Ft([1,0,0,1,0,0],i,n,1,1,c,-i,-n),bt(E,hp),bt(E,cp),bt(E,up),bt(E,dp),$t(Math.min(hp[0],cp[0],up[0],dp[0]),Math.min(hp[1],cp[1],up[1],dp[1]),Math.max(hp[0],cp[0],up[0],dp[0]),Math.max(hp[1],cp[1],up[1],dp[1]),lp)):$t(Math.min(w,w+v),Math.min(T,T+S),Math.max(w,w+v),Math.max(T,T+S),lp),d&&(m=Math.round(m),_=Math.round(_)),{drawImageX:m,drawImageY:_,drawImageW:y,drawImageH:x,originX:l,originY:h,declutterBox:{minX:lp[0],minY:lp[1],maxX:lp[2],maxY:lp[3],value:p},canvasTransform:E,scale:u}}replayImageOrLabel_(t,e,i,n,r,s,o){const a=!(!s&&!o),l=n.declutterBox,h=t.canvas,c=o?o[2]*n.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,hp,cp,up,dp,s,o),to(t,n.canvasTransform,r,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=bt(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const r=this.textStates[e],s=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,l=pp(Array.isArray(t)?t[0]:t,r.textAlign||Us),h=ip[r.textBaseline||zs],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*r.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,n,r,s,o,a){let l;this.pixelCoordinates_&&u(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=un(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),Ct(this.renderedTransform_,i));let h=0;const c=n.length;let d,g,f,p,m,_,y,x,v,S,w,T,E=0,C=0,b=0,R=null,P=null;const I=this.coordinateCache_,L=this.viewRotation_,F=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:L},A=this.instructions!=n||this.overlaps?0:200;let O,N,D,G;for(;h<c;){const i=n[h];switch(i[0]){case Of:O=i[1],G=i[3],O.getGeometry()?void 0===o||we(o,G.getExtent())?++h:h=i[2]+1:h=i[2];break;case Nf:C>A&&(this.fill_(t),C=0),b>A&&(t.stroke(),b=0),C||b||(t.beginPath(),p=NaN,m=NaN),++h;break;case Df:E=i[1];const n=l[E],c=l[E+1],u=l[E+2]-n,k=l[E+3]-c,j=Math.sqrt(u*u+k*k);t.moveTo(n+j,c),t.arc(n,c,j,0,2*Math.PI,!0),++h;break;case Gf:t.closePath(),++h;break;case kf:E=i[1],d=i[2];const B=i[3],U=i[4],z=6==i.length?i[5]:void 0;M.geometry=B,M.feature=O,h in I||(I[h]=[]);const X=I[h];z?z(l,E,d,2,X):(X[0]=l[E],X[1]=l[E+1],X.length=2),U(X,M),++h;break;case Bf:E=i[1],d=i[2],x=i[3],g=i[4],f=i[5];let V=i[6];const W=i[7],Z=i[8],Y=i[9],K=i[10];let q=i[11];const H=i[12];let $=i[13];const J=i[14],Q=i[15];if(!x&&i.length>=20){v=i[19],S=i[20],w=i[21],T=i[22];const t=this.drawLabelWithPointPlacement_(v,S,w,T);x=t.label,i[3]=x;const e=i[23];g=(t.anchorX-e)*this.pixelRatio,i[4]=g;const n=i[24];f=(t.anchorY-n)*this.pixelRatio,i[5]=f,V=x.height,i[6]=V,$=x.width,i[13]=$}let tt,et,it,nt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],nt=i[18]):(et=Xs,it=!1,nt=!1),K&&F?q+=L:K||F||(q-=L);let rt=0;for(;E<d;E+=2){if(tt&&tt[rt++]<$/this.pixelRatio)continue;const i=this.calculateImageOrLabelDimensions_(x.width,x.height,l[E],l[E+1],$,V,g,f,Z,Y,q,H,r,et,it||nt,O),n=[t,e,x,i,W,it?R:null,nt?P:null];if(a){if("none"===J)continue;if("obstacle"===J){a.insert(i.declutterBox);continue}{let t,e;if(Q){const i=d-E;if(!Q[i]){Q[i]=n;continue}if(t=Q[i],delete Q[i],e=gp(t),a.collides(e))continue}if(a.collides(i.declutterBox))continue;t&&(a.insert(e),this.replayImageOrLabel_.apply(this,t)),a.insert(i.declutterBox)}}this.replayImageOrLabel_.apply(this,n)}++h;break;case jf:const st=i[1],ot=i[2],at=i[3],lt=i[4];T=i[5];const ht=i[6],ct=i[7],ut=i[8];w=i[9];const dt=i[10];v=i[11],S=i[12];const gt=[i[13],i[13]],ft=this.textStates[S],pt=ft.font,mt=[ft.scale[0]*ct,ft.scale[1]*ct];let _t;pt in this.widths_?_t=this.widths_[pt]:(_t={},this.widths_[pt]=_t);const yt=ap(l,st,ot,2),xt=Math.abs(mt[0])*Js(pt,v,_t);if(lt||xt<=yt){const i=this.textStates[S].textAlign,n=op(l,st,ot,2,v,(yt-xt)*ip[i],ht,Math.abs(mt[0]),Js,pt,_t,F?0:this.viewRotation_);t:if(n){const i=[];let r,s,o,l,h;if(w)for(r=0,s=n.length;r<s;++r){h=n[r],o=h[4],l=this.createLabel(o,S,"",w),g=h[2]+(mt[0]<0?-dt:dt),f=at*l.height+2*(.5-at)*dt*mt[1]/mt[0]-ut;const s=this.calculateImageOrLabelDimensions_(l.width,l.height,h[0],h[1],l.width,l.height,g,f,0,0,h[3],gt,!1,Xs,!1,O);if(a&&a.collides(s.declutterBox))break t;i.push([t,e,l,s,1,null,null])}if(T)for(r=0,s=n.length;r<s;++r){h=n[r],o=h[4],l=this.createLabel(o,S,T,""),g=h[2],f=at*l.height-ut;const s=this.calculateImageOrLabelDimensions_(l.width,l.height,h[0],h[1],l.width,l.height,g,f,0,0,h[3],gt,!1,Xs,!1,O);if(a&&a.collides(s.declutterBox))break t;i.push([t,e,l,s,1,null,null])}a&&a.load(i.map(gp));for(let t=0,e=i.length;t<e;++t)this.replayImageOrLabel_.apply(this,i[t])}}++h;break;case Uf:if(void 0!==s){O=i[1];const t=s(O,G);if(t)return t}++h;break;case zf:A?C++:this.fill_(t),++h;break;case Xf:for(E=i[1],d=i[2],N=l[E],D=l[E+1],_=N+.5|0,y=D+.5|0,_===p&&y===m||(t.moveTo(N,D),p=_,m=y),E+=2;E<d;E+=2)N=l[E],D=l[E+1],_=N+.5|0,y=D+.5|0,E!=d-2&&_===p&&y===m||(t.lineTo(N,D),p=_,m=y);++h;break;case Vf:R=i,this.alignFill_=i[2],C&&(this.fill_(t),C=0,b&&(t.stroke(),b=0)),t.fillStyle=i[1],++h;break;case Wf:P=i,b&&(t.stroke(),b=0),this.setStrokeStyle_(t,i),++h;break;case Zf:A?b++:t.stroke(),++h;break;default:++h}}C&&this.fill_(t),b&&t.stroke()}execute(t,e,i,n,r,s){this.viewRotation_=n,this.execute_(t,e,i,this.instructions,r,void 0,void 0,s)}executeHitDetection(t,e,i,n,r){return this.viewRotation_=i,this.execute_(t,1,e,this.hitDetectionInstructions,!0,n,r)}}const yp=["Polygon","Circle","LineString","Image","Text","Default"];class xp{constructor(t,e,i,n,r,s){this.maxExtent_=t,this.overlaps_=n,this.pixelRatio_=i,this.resolution_=e,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=[1,0,0,1,0,0],this.createExecutors_(r)}clip(t,e){const i=this.getClipCoords(e);t.beginPath(),t.moveTo(i[0],i[1]),t.lineTo(i[2],i[3]),t.lineTo(i[4],i[5]),t.lineTo(i[6],i[7]),t.clip()}createExecutors_(t){for(const e in t){let i=this.executorsByZIndex_[e];void 0===i&&(i={},this.executorsByZIndex_[e]=i);const n=t[e];for(const t in n){const e=n[t];i[t]=new _p(this.resolution_,this.pixelRatio_,this.overlaps_,e)}}}hasExecutors(t){for(const e in this.executorsByZIndex_){const i=this.executorsByZIndex_[e];for(let e=0,n=t.length;e<n;++e)if(t[e]in i)return!0}return!1}forEachFeatureAtCoordinate(t,e,i,n,r,s){const o=2*(n=Math.round(n))+1,l=Ft(this.hitDetectionTransform_,n+.5,n+.5,1/e,-1/e,-i,-t[0],-t[1]),h=!this.hitDetectionContext_;h&&(this.hitDetectionContext_=Dr(o,o));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):h||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],re(u,t),Xt(u,e*(this.renderBuffer_+n),u));const d=Sp(n);let g;function f(t,e){const i=c.getImageData(0,0,o,o).data;for(let a=0,l=d.length;a<l;a++)if(i[d[a]]>0){if(!s||"Image"!==g&&"Text"!==g||s.includes(t)){const i=(d[a]-3)/4,s=n-i%o,l=n-(i/o|0),h=r(t,e,s*s+l*l);if(h)return h}c.clearRect(0,0,o,o);break}}const p=Object.keys(this.executorsByZIndex_).map(Number);let m,_,y,x,v;for(p.sort(a),m=p.length-1;m>=0;--m){const t=p[m].toString();for(y=this.executorsByZIndex_[t],_=yp.length-1;_>=0;--_)if(g=yp[_],x=y[g],void 0!==x&&(v=x.executeHitDetection(c,l,i,f,u),v))return v}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],r=e[2],s=e[3],o=[i,n,i,s,r,s,r,n];return un(o,0,8,2,t,o),o}isEmpty(){return x(this.executorsByZIndex_)}execute(t,e,i,n,r,s,o){const l=Object.keys(this.executorsByZIndex_).map(Number);let h,c,u,d,g,f;for(l.sort(a),this.maxExtent_&&(t.save(),this.clip(t,i)),s=s||yp,o&&l.reverse(),h=0,c=l.length;h<c;++h){const a=l[h].toString();for(g=this.executorsByZIndex_[a],u=0,d=s.length;u<d;++u){f=g[s[u]],void 0!==f&&f.execute(t,e,i,n,r,o)}}this.maxExtent_&&t.restore()}}const vp={};function Sp(t){if(void 0!==vp[t])return vp[t];const e=2*t+1,i=t*t,n=new Array(i+1);for(let r=0;r<=t;++r)for(let s=0;s<=t;++s){const o=r*r+s*s;if(o>i)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const r=[];for(let t=0,e=n.length;t<e;++t)n[t]&&r.push(...n[t]);return vp[t]=r,r}const wp=.5;function Tp(t,e,i,n,r,s,o){const l=Dr(t[0]*wp,t[1]*wp);l.imageSmoothingEnabled=!1;const h=l.canvas,c=new bl(l,wp,r,null,o),u=i.length,d=Math.floor(16777215/u),g={};for(let t=1;t<=u;++t){const e=i[t-1],o=e.getStyleFunction()||n;if(!n)continue;let a=o(e,s);if(!a)continue;Array.isArray(a)||(a=[a]);const l="#"+("000000"+(t*d).toString(16)).slice(-6);for(let t=0,i=a.length;t<i;++t){const i=a[t],n=i.getGeometryFunction()(e);if(!n||!we(r,n.getExtent()))continue;const s=i.clone(),o=s.getFill();o&&o.setColor(l);const h=s.getStroke();h&&(h.setColor(l),h.setLineDash(null)),s.setText(void 0);const c=i.getImage();if(c&&0!==c.getOpacity()){const t=c.getImageSize();if(!t)continue;const e=Dr(t[0],t[1],void 0,{alpha:!1}),i=e.canvas;e.fillStyle=l,e.fillRect(0,0,i.width,i.height),s.setImage(new cg({img:i,imgSize:t,anchor:c.getAnchor(),anchorXUnits:"pixels",anchorYUnits:"pixels",offset:c.getOrigin(),opacity:1,size:c.getSize(),scale:c.getScale(),rotation:c.getRotation(),rotateWithView:c.getRotateWithView()}))}const u=s.getZIndex()||0;let d=g[u];d||(d={},g[u]=d,d.Polygon=[],d.Circle=[],d.LineString=[],d.Point=[]),d[n.getType().replace("Multi","")].push(n,s)}}const f=Object.keys(g).map(Number).sort(a);for(let t=0,i=f.length;t<i;++t){const i=g[f[t]];for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t+=2){c.setStyle(n[t+1]);for(let i=0,r=e.length;i<r;++i)c.setTransform(e[i]),c.drawGeometry(n[t])}}}return l.getImageData(0,0,h.width,h.height)}function Ep(t,e,i){const n=[];if(i){const r=Math.floor(Math.round(t[0])*wp),s=Math.floor(Math.round(t[1])*wp),o=4*(ii(r,0,i.width-1)+ii(s,0,i.height-1)*i.width),a=i.data[o],l=i.data[o+1],h=i.data[o+2]+256*(l+256*a),c=Math.floor(16777215/e.length);h&&h%c==0&&n.push(e[h/c-1])}return n}class Cp extends Lc{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedRenderOrder_=null,this.replayGroup_=null,this.replayGroupChanged=!0,this.declutterExecutorGroup=null,this.clipping=!0,this.compositionContext_=null,this.opacity_=1}renderWorlds(t,e,i){const n=e.extent,r=e.viewState,s=r.center,o=r.resolution,a=r.projection,l=r.rotation,h=a.getExtent(),c=this.getLayer().getSource(),u=e.pixelRatio,d=e.viewHints,g=!(d[Ro]||d[Po]),f=this.compositionContext_,p=Math.round(e.size[0]*u),m=Math.round(e.size[1]*u),_=c.getWrapX()&&a.canWrapX(),y=_?Se(h):null,x=_?Math.ceil((n[2]-h[2])/y)+1:1;let v=_?Math.floor((n[0]-h[0])/y):0;do{const e=this.getRenderTransform(s,o,l,u,p,m,v*y);t.execute(f,1,e,l,g,void 0,i)}while(++v<x)}setupCompositionContext_(){if(1!==this.opacity_){const t=Dr(this.context.canvas.width,this.context.canvas.height,Pc);this.compositionContext_=t}else this.compositionContext_=this.context}releaseCompositionContext_(){if(1!==this.opacity_){const t=this.context.globalAlpha;this.context.globalAlpha=this.opacity_,this.context.drawImage(this.compositionContext_.canvas,0,0),this.context.globalAlpha=t,Gr(this.compositionContext_),Pc.push(this.compositionContext_.canvas),this.compositionContext_=null}}renderDeclutter(t){this.declutterExecutorGroup&&(this.setupCompositionContext_(),this.renderWorlds(this.declutterExecutorGroup,t,t.declutterTree),this.releaseCompositionContext_())}renderFrame(t,e){const i=t.pixelRatio,n=t.layerStatesArray[t.layerIndex];It(this.pixelTransform,1/i,1/i),Mt(this.inversePixelTransform,this.pixelTransform);const r=Nt(this.pixelTransform);this.useContainer(e,r,this.getBackground(t));const s=this.context,o=s.canvas,a=this.replayGroup_,l=this.declutterExecutorGroup;if((!a||a.isEmpty())&&(!l||l.isEmpty()))return null;const h=Math.round(t.size[0]*i),c=Math.round(t.size[1]*i);o.width!=h||o.height!=c?(o.width=h,o.height=c,o.style.transform!==r&&(o.style.transform=r)):this.containerReused||s.clearRect(0,0,h,c),this.preRender(s,t);const u=t.viewState,d=u.projection;this.opacity_=n.opacity,this.setupCompositionContext_();let g=!1,f=!0;if(n.extent&&this.clipping){const e=on(n.extent,d);f=we(e,t.extent),g=f&&!Yt(e,t.extent),g&&this.clipUnrotated(this.compositionContext_,t,e)}return f&&this.renderWorlds(a,t),g&&this.compositionContext_.restore(),this.releaseCompositionContext_(),this.postRender(s,t),this.renderedRotation_!==u.rotation&&(this.renderedRotation_=u.rotation,this.hitDetectionImageData_=null),this.container}getFeatures(t){return new Promise(function(e){if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];bt(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,r=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*wp,h=t[1]*wp;a.push(this.getRenderTransform(e,i,n,wp,l,h,0).slice());const c=o.getSource(),u=r.getExtent();if(c.getWrapX()&&r.canWrapX()&&!Yt(u,s)){let t=s[0];const r=Se(u);let o,c=0;for(;t<u[0];)--c,o=r*c,a.push(this.getRenderTransform(e,i,n,wp,l,h,o).slice()),t+=r;for(c=0,t=s[2];t>u[2];)++c,o=r*c,a.push(this.getRenderTransform(e,i,n,wp,l,h,o).slice()),t-=r}this.hitDetectionImageData_=Tp(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,n)}e(Ep(t,this.renderedFeatures_,this.hitDetectionImageData_))}.bind(this))}forEachFeatureAtCoordinate(t,e,i,n,r){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=z(t),o=l[s];if(o){if(!0!==o&&i<o.distanceSq){if(0===i)return l[s]=!0,r.splice(r.lastIndexOf(o),1),n(t,a,e);o.geometry=e,o.distanceSq=i}}else{if(0===i)return l[s]=!0,n(t,a,e);r.push(l[s]={feature:t,layer:a,geometry:e,distanceSq:i,callback:n})}};let c;const u=[this.replayGroup_];return this.declutterExecutorGroup&&u.push(this.declutterExecutorGroup),u.some((n=>c=n.forEachFeatureAtCoordinate(t,s,o,i,h,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Ro],r=t.viewHints[Po],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&n||!o&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,h=l.projection,c=l.resolution,d=t.pixelRatio,g=e.getRevision(),f=e.getRenderBuffer();let p=e.getRenderOrder();void 0===p&&(p=Pl);const m=l.center.slice(),_=Xt(a,f*c),y=_.slice(),x=[_.slice()],v=h.getExtent();if(i.getWrapX()&&h.canWrapX()&&!Yt(v,t.extent)){const t=Se(v),e=Math.max(Se(_)/2,t);_[0]=v[0]-e,_[2]=v[2]+e,Pi(m,h);const i=Pe(x[0],h);i[0]<v[0]&&i[2]<v[2]?x.push([i[0]+t,i[1],i[2]+t,i[3]]):i[0]>v[0]&&i[2]>v[2]&&x.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==g&&this.renderedRenderOrder_==p&&Yt(this.wrappedRenderedExtent_,_))return u(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=m,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const S=new sp(Ll(c,d),_,c,d);let w;this.getLayer().getDeclutter()&&(w=new sp(Ll(c,d),_,c,d));const T=en();let E;if(T){for(let t=0,e=x.length;t<e;++t){const e=sn(x[t],h);i.loadFeatures(e,an(c,h),T)}E=qi(T,h)}else for(let t=0,e=x.length;t<e;++t)i.loadFeatures(x[t],c,h);const C=Il(c,d);let b=!0;const R=function(t){let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,C,i,S,E,w);b=b&&!e}}.bind(this),P=sn(_,h),I=i.getFeaturesInExtent(P);p&&I.sort(p);for(let t=0,e=I.length;t<e;++t)R(I[t]);this.renderedFeatures_=I,this.ready=b;const L=S.finish(),F=new xp(_,c,d,i.getOverlaps(),L,e.getRenderBuffer());return w&&(this.declutterExecutorGroup=new xp(_,c,d,i.getOverlaps(),w.finish(),e.getRenderBuffer())),this.renderedResolution_=c,this.renderedRevision_=g,this.renderedRenderOrder_=p,this.renderedExtent_=y,this.wrappedRenderedExtent_=_,this.renderedCenter_=m,this.renderedProjection_=h,this.replayGroup_=F,this.hitDetectionImageData_=null,this.replayGroupChanged=!0,!0}renderFeature(t,e,i,n,r,s){if(!i)return!1;let o=!1;if(Array.isArray(i))for(let a=0,l=i.length;a<l;++a)o=Fl(n,t,i[a],e,this.boundHandleStyleImageChange_,r,s)||o;else o=Fl(n,t,i,e,this.boundHandleStyleImageChange_,r,s);return o}}class bp extends Fc{constructor(t){super(t),this.vectorRenderer_=new Cp(t),this.layerImageRatio_=t.getImageRatio(),this.coordinateToVectorPixelTransform_=[1,0,0,1,0,0],this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(t){if(!this.vectorRenderer_)return new Promise((t=>t([])));const e=bt(this.coordinateToVectorPixelTransform_,bt(this.renderedPixelToCoordinateTransform_,t.slice()));return this.vectorRenderer_.getFeatures(e)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(t){const e=t.pixelRatio,i=t.viewState,n=i.resolution,r=t.viewHints,s=this.vectorRenderer_;let o=t.extent;1!==this.layerImageRatio_&&(o=o.slice(0),Ce(o,this.layerImageRatio_));const a=Se(o)/n,l=_e(o)/n;if(!r[Ro]&&!r[Po]&&!Te(o)){s.useContainer(null,null);const r=s.context,h=t.layerStatesArray[t.layerIndex];r.globalAlpha=h.opacity;const c=Object.assign({},h,{opacity:1}),u=Object.assign({},t,{declutterTree:new vh(9),extent:o,size:[a,l],viewState:Object.assign({},t.viewState,{rotation:0}),layerStatesArray:[c],layerIndex:0});let d=!0;const g=new Nr(o,n,e,r.canvas,(function(t){s.prepareFrame(u)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(u,null)&&(s.renderDeclutter(u),d=!1),t())}));g.addEventListener(S,function(){if(g.getState()!==Lr)return;this.image_=d?null:g;const t=g.getResolution(),n=g.getPixelRatio(),r=t*e/n;this.renderedResolution=r,this.coordinateToVectorPixelTransform_=Ft(this.coordinateToVectorPixelTransform_,a/2,l/2,1/r,-1/r,0,-i.center[0],-i.center[1])}.bind(this)),g.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,n,r){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,n,r):super.forEachFeatureAtCoordinate(t,e,i,n,r)}}const Rp={image:["Polygon","Circle","LineString","Image","Text"],hybrid:["Polygon","LineString"],vector:[]},Pp={hybrid:["Image","Text","Default"],vector:["Polygon","Circle","LineString","Image","Text","Default"]};class Ip extends Dc{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.renderedLayerRevision_,this.renderedPixelToCoordinateTransform_=null,this.renderedRotation_,this.tmpTransform_=[1,0,0,1,0,0]}prepareTile(t,e,i){let n;const r=t.getState();return r!==J&&r!==Q||(this.updateExecutorGroup_(t,e,i),this.tileImageNeedsRender_(t)&&(n=!0)),n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState,o=s.resolution,a=s.projection,l=this.getLayer(),h=l.getSource().getTile(t,e,i,r,a),c=n.viewHints,u=!(c[Ro]||c[Po]);!u&&h.wantedResolution||(h.wantedResolution=o);return this.prepareTile(h,r,a)&&(u||Date.now()-n.time<8)&&"vector"!==l.getRenderMode()&&this.renderTileImage_(h,n),super.getTile(t,e,i,n)}isDrawableTile(t){const e=this.getLayer();return super.isDrawableTile(t)&&("vector"===e.getRenderMode()?z(e)in t.executorGroups:t.hasContext(e))}getTileImage(t){return t.getImage(this.getLayer())}prepareFrame(t){const e=this.getLayer().getRevision();return this.renderedLayerRevision_!==e&&(this.renderedLayerRevision_=e,this.renderedTiles.length=0),super.prepareFrame(t)}updateExecutorGroup_(t,e,i){const n=this.getLayer(),r=n.getRevision(),s=n.getRenderOrder()||null,o=t.wantedResolution,a=t.getReplayState(n);if(!a.dirty&&a.renderedResolution===o&&a.renderedRevision==r&&a.renderedRenderOrder==s)return;const l=n.getSource(),h=n.getDeclutter(),c=l.getTileGrid(),u=l.getTileGridForProjection(i).getTileCoordExtent(t.wrappedTileCoord),d=l.getSourceTiles(e,i,t),g=z(n);delete t.hitDetectionImageData[g],t.executorGroups[g]=[],h&&(t.declutterExecutorGroups[g]=[]),a.dirty=!1;for(let i=0,r=d.length;i<r;++i){const r=d[i];if(r.getState()!=J)continue;const f=r.tileCoord,p=c.getTileCoordExtent(f),m=ye(u,p),_=Xt(m,n.getRenderBuffer()*o,this.tmpExtent),y=ee(p,m)?null:_,x=new sp(0,_,o,e),v=h?new sp(0,m,o,e):void 0,S=Il(o,e),w=function(t){let e;const i=t.getStyleFunction()||n.getStyleFunction();if(i&&(e=i(t,o)),e){const i=this.renderFeature(t,S,e,x,v);a.dirty=a.dirty||i}},T=r.getFeatures();s&&s!==a.renderedRenderOrder&&T.sort(s);for(let t=0,e=T.length;t<e;++t){const e=T[t];y&&!we(y,e.getGeometry().getExtent())||w.call(this,e)}const E=x.finish(),C="vector"!==n.getRenderMode()&&h&&1===d.length?null:m,b=new xp(C,o,e,l.getOverlaps(),E,n.getRenderBuffer());if(t.executorGroups[g].push(b),v){const i=new xp(null,o,e,l.getOverlaps(),v.finish(),n.getRenderBuffer());t.declutterExecutorGroups[g].push(i)}}a.renderedRevision=r,a.renderedRenderOrder=s,a.renderedResolution=o}forEachFeatureAtCoordinate(t,e,i,n,r){const s=e.viewState.resolution,o=e.viewState.rotation;i=null==i?0:i;const a=this.getLayer(),l=a.getSource().getTileGridForProjection(e.viewState.projection),h=zt([t]);Xt(h,s*i,h);const c={},u=function(t,e,i){let s=t.getId();void 0===s&&(s=z(t));const o=c[s];if(o){if(!0!==o&&i<o.distanceSq){if(0===i)return c[s]=!0,r.splice(r.lastIndexOf(o),1),n(t,a,e);o.geometry=e,o.distanceSq=i}}else{if(0===i)return c[s]=!0,n(t,a,e);r.push(c[s]={feature:t,layer:a,geometry:e,distanceSq:i,callback:n})}},d=this.renderedTiles;let g;for(let n=0,r=d.length;!g&&n<r;++n){const r=d[n];if(!we(l.getTileCoordExtent(r.wrappedTileCoord),h))continue;const c=z(a),f=[r.executorGroups[c]],p=r.declutterExecutorGroups[c];p&&f.push(p),f.some((n=>{const r=n===p?e.declutterTree.all().map((t=>t.value)):null;for(let e=0,a=n.length;e<a;++e){const a=n[e];if(g=a.forEachFeatureAtCoordinate(t,s,o,i,u,r),g)return!0}}))}return g}getFeatures(t){return new Promise(function(e,i){const n=this.getLayer(),r=z(n),s=n.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=bt(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let d;for(let t=0,e=this.renderedTiles.length;t<e;++t)if(u.toString()===this.renderedTiles[t].tileCoord.toString()){if(d=this.renderedTiles[t],d.getState()===J){const t=h.getTileCoordExtent(d.tileCoord);s.getWrapX()&&o.canWrapX()&&!Yt(a,t)&&Pi(c,o);break}d=void 0}if(!d||d.loadingSourceTiles>0)return void e([]);const g=xe(h.getTileCoordExtent(d.wrappedTileCoord)),f=[(c[0]-g[0])/l,(g[1]-c[1])/l],p=d.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let m=d.hitDetectionImageData[r];if(!m&&!this.animatingOrInteracting_){const t=Va(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;m=Tp(t,[this.getRenderTransform(h.getTileCoordCenter(d.wrappedTileCoord),l,0,wp,t[0]*wp,t[1]*wp,0)],p,n.getStyleFunction(),h.getTileCoordExtent(d.wrappedTileCoord),d.getReplayState(n).renderedResolution,e),d.hitDetectionImageData[r]=m}e(Ep(f,p,m))}.bind(this))}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const n=t.viewHints,r=!(n[Ro]||n[Po]),s=this.renderedTiles;for(let e=0,i=s.length;e<i;++e){const i=s[e],n=i.declutterExecutorGroups[z(this.getLayer())];if(n)for(let e=n.length-1;e>=0;--e)n[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,r,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,n=e.viewState,r=n.center,s=n.resolution,o=n.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,d=c.getTileCoordExtent(t.wrappedTileCoord),g=c.getTileCoordExtent(u,this.tmpExtent)[0]-d[0];return Tt(Pt(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(r,s,o,i,l,h,g))}postRender(t,e){const i=e.viewHints,n=!(i[Ro]||i[Po]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const r=this.getLayer(),s=r.getRenderMode(),o=t.globalAlpha;t.globalAlpha=r.getOpacity();const a=Pp[s],l=e.viewState,h=l.rotation,c=r.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),d=this.renderedTiles,g=[],f=[];let p=!0;for(let i=d.length-1;i>=0;--i){const s=d[i];p=p&&!s.getReplayState(r).dirty;const o=s.executorGroups[z(r)].filter((t=>t.hasExecutors(a)));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let m=!1;const _=o[0].getClipCoords(l);if(_){for(let e=0,i=g.length;e<i;++e)if(u!==c&&c<f[e]){const i=g[e];we([_[0],_[3],_[4],_[7]],[i[0],i[3],i[4],i[7]])&&(m||(t.save(),m=!0),t.beginPath(),t.moveTo(_[0],_[1]),t.lineTo(_[2],_[3]),t.lineTo(_[4],_[5]),t.lineTo(_[6],_[7]),t.moveTo(i[6],i[7]),t.lineTo(i[4],i[5]),t.lineTo(i[2],i[3]),t.lineTo(i[0],i[1]),t.clip())}g.push(_),f.push(c)}for(let e=0,i=o.length;e<i;++e){o[e].execute(t,1,l,h,n,a)}m&&t.restore()}t.globalAlpha=o,this.ready=p,super.postRender(t,e)}renderFeature(t,e,i,n,r){if(!i)return!1;let s=!1;if(Array.isArray(i))for(let o=0,a=i.length;o<a;++o)s=Fl(n,t,i[o],e,this.boundHandleStyleImageChange_,void 0,r)||s;else s=Fl(n,t,i,e,this.boundHandleStyleImageChange_,void 0,r);return s}tileImageNeedsRender_(t){const e=this.getLayer();if("vector"===e.getRenderMode())return!1;const i=t.getReplayState(e),n=e.getRevision(),r=t.wantedResolution;return i.renderedTileResolution!==r||i.renderedTileRevision!==n}renderTileImage_(t,e){const i=this.getLayer(),n=t.getReplayState(i),r=i.getRevision(),s=t.executorGroups[z(i)];n.renderedTileRevision=r;const o=t.wrappedTileCoord,a=o[0],l=i.getSource();let h=e.pixelRatio;const c=e.viewState.projection,u=l.getTileGridForProjection(c),d=u.getResolution(t.tileCoord[0]),g=e.pixelRatio/t.wantedResolution*d,f=u.getResolution(a),p=t.getContext(i);h=Math.round(Math.max(h,g/h));const m=l.getTilePixelSize(a,h,c);p.canvas.width=m[0],p.canvas.height=m[1];const _=h/g;if(1!==_){const t=wt(this.tmpTransform_);Pt(t,_,_),p.setTransform.apply(p,t)}const y=u.getTileCoordExtent(o,this.tmpExtent),x=g/f,v=wt(this.tmpTransform_);Pt(v,x,-x),Lt(v,-y[0],-y[3]);for(let t=0,e=s.length;t<e;++t){s[t].execute(p,_,v,0,!0,Rp[i.getRenderMode()])}n.renderedTileResolution=t.wantedResolution}}class Lp extends _n{constructor(t,e,i){super(),void 0!==i&&void 0===e?this.setFlatCoordinates(i,t):(e=e||0,this.setCenterAndRadius(t,e,i))}clone(){const t=new Lp(this.flatCoordinates.slice(),void 0,this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){const r=this.flatCoordinates,s=t-r[0],o=e-r[1],a=s*s+o*o;if(a<n){if(0===a)for(let t=0;t<this.stride;++t)i[t]=r[t];else{const t=this.getRadius()/Math.sqrt(a);i[0]=r[0]+t*s,i[1]=r[1]+t*o;for(let t=2;t<this.stride;++t)i[t]=r[t]}return i.length=this.stride,a}return n}containsXY(t,e){const i=this.flatCoordinates,n=t-i[0],r=e-i[1];return n*n+r*r<=this.getRadiusSquared_()}getCenter(){return this.flatCoordinates.slice(0,this.stride)}computeExtent(t){const e=this.flatCoordinates,i=e[this.stride]-e[0];return $t(e[0]-i,e[1]-i,e[0]+i,e[1]+i,t)}getRadius(){return Math.sqrt(this.getRadiusSquared_())}getRadiusSquared_(){const t=this.flatCoordinates[this.stride]-this.flatCoordinates[0],e=this.flatCoordinates[this.stride+1]-this.flatCoordinates[1];return t*t+e*e}getType(){return"Circle"}intersectsExtent(t){if(we(t,this.getExtent())){const e=this.getCenter();return t[0]<=e[0]&&t[2]>=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||he(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+i;for(let i=1;i<e;++i)n[e+i]=t[i];this.setFlatCoordinates(this.layout,n),this.changed()}setCenterAndRadius(t,e,i){this.setLayout(i,t,0),this.flatCoordinates||(this.flatCoordinates=[]);const n=this.flatCoordinates;let r=Rn(n,0,t,this.stride);n[r++]=n[0]+e;for(let t=1,e=this.stride;t<e;++t)n[r++]=n[t];n.length=r,this.changed()}getCoordinates(){return null}setCoordinates(t,e){}setRadius(t){this.flatCoordinates[this.stride]=this.flatCoordinates[0]+t,this.changed()}rotate(t,e){const i=this.getCenter(),n=this.getStride();this.setCenter(dn(i,0,i.length,n,t,e,i)),this.changed()}translate(t,e){const i=this.getCenter(),n=this.getStride();this.setCenter(fn(i,0,i.length,n,t,e,i)),this.changed()}}Lp.prototype.transform;class Fp extends mn{constructor(t){super(),this.geometries_=t||null,this.changeEventsKeys_=[],this.listenGeometriesChange_()}unlistenGeometriesChange_(){this.changeEventsKeys_.forEach(G),this.changeEventsKeys_.length=0}listenGeometriesChange_(){if(this.geometries_)for(let t=0,e=this.geometries_.length;t<e;++t)this.changeEventsKeys_.push(N(this.geometries_[t],S,this.changed,this))}clone(){const t=new Fp(null);return t.setGeometries(this.geometries_),t.applyProperties(this),t}closestPointXY(t,e,i,n){if(n<Wt(this.getExtent(),t,e))return n;const r=this.geometries_;for(let s=0,o=r.length;s<o;++s)n=r[s].closestPointXY(t,e,i,n);return n}containsXY(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)if(i[n].containsXY(t,e))return!0;return!1}computeExtent(t){Jt(t);const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)ne(t,e[i].getExtent());return t}getGeometries(){return Mp(this.geometries_)}getGeometriesArray(){return this.geometries_}getGeometriesArrayRecursive(){let t=[];const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)e[i].getType()===this.getType()?t=t.concat(e[i].getGeometriesArrayRecursive()):t.push(e[i]);return t}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=[],i=this.geometries_;let n=!1;for(let r=0,s=i.length;r<s;++r){const s=i[r],o=s.getSimplifiedGeometry(t);e.push(o),o!==s&&(n=!0)}if(n){const t=new Fp(null);return t.setGeometriesArray(e),t}return this.simplifiedGeometryMaxMinSquaredTolerance=t,this}getType(){return"GeometryCollection"}intersectsExtent(t){const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)if(e[i].intersectsExtent(t))return!0;return!1}isEmpty(){return 0===this.geometries_.length}rotate(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)i[n].rotate(t,e);this.changed()}scale(t,e,i){i||(i=ge(this.getExtent()));const n=this.geometries_;for(let r=0,s=n.length;r<s;++r)n[r].scale(t,e,i);this.changed()}setGeometries(t){this.setGeometriesArray(Mp(t))}setGeometriesArray(t){this.unlistenGeometriesChange_(),this.geometries_=t,this.listenGeometriesChange_(),this.changed()}applyTransform(t){const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)e[i].applyTransform(t);this.changed()}translate(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)i[n].translate(t,e);this.changed()}disposeInternal(){this.unlistenGeometriesChange_(),super.disposeInternal()}}function Mp(t){const e=[];for(let i=0,n=t.length;i<n;++i)e.push(t[i].clone());return e}function Ap(t,e,i,n,r,s,a){let l,h;const c=(i-e)/n;if(1===c)l=e;else if(2===c)l=e,h=r;else if(0!==c){let s=t[e],a=t[e+1],c=0;const u=[0];for(let r=e+n;r<i;r+=n){const e=t[r],i=t[r+1];c+=Math.sqrt((e-s)*(e-s)+(i-a)*(i-a)),u.push(c),s=e,a=i}const d=r*c,g=o(u,d);g<0?(h=(d-u[-g-2])/(u[-g-1]-u[-g-2]),l=e+(-g-2)*n):l=e+g*n}a=a>1?a:2,s=s||new Array(a);for(let e=0;e<a;++e)s[e]=void 0===l?NaN:void 0===h?t[l+e]:hi(t[l+e],t[l+n+e],h);return s}function Op(t,e,i,n,r,s){if(i==e)return null;let o;if(r<t[e+n-1])return s?(o=t.slice(e,e+n),o[n-1]=r,o):null;if(t[i-1]<r)return s?(o=t.slice(i-n,i),o[n-1]=r,o):null;if(r==t[e+n-1])return t.slice(e,e+n);let a=e/n,l=i/n;for(;a<l;){const e=a+l>>1;r<t[(e+1)*n-1]?l=e:a=e+1}const h=t[a*n-1];if(r==h)return t.slice((a-1)*n,(a-1)*n+n);const c=(r-h)/(t[(a+1)*n-1]-h);o=[];for(let e=0;e<n-1;++e)o.push(hi(t[(a-1)*n+e],t[a*n+e],c));return o.push(r),o}function Np(t,e,i,n,r,s,o){if(o)return Op(t,e,i[i.length-1],n,r,s);let a;if(r<t[n-1])return s?(a=t.slice(0,n),a[n-1]=r,a):null;if(t[t.length-1]<r)return s?(a=t.slice(t.length-n),a[n-1]=r,a):null;for(let s=0,o=i.length;s<o;++s){const o=i[s];if(e!=o){if(r<t[e+n-1])return null;if(r<=t[o-1])return Op(t,e,o,n,r,!1);e=o}}return null}class Dp extends _n{constructor(t,e){super(),this.flatMidpoint_=null,this.flatMidpointRevision_=-1,this.maxDelta_=-1,this.maxDeltaRevision_=-1,void 0===e||Array.isArray(t[0])?this.setCoordinates(t,e):this.setFlatCoordinates(e,t)}appendCoordinate(t){this.flatCoordinates?c(this.flatCoordinates,t):this.flatCoordinates=t.slice(),this.changed()}clone(){const t=new Dp(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Wt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(Sn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),En(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!1,t,e,i,n))}forEachSegment(t){return Jn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinateAtM(t,e){return"XYM"!=this.layout&&"XYZM"!=this.layout?null:(e=void 0!==e&&e,Op(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e))}getCoordinates(){return kn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getCoordinateAt(t,e){return Ap(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,this.stride)}getLength(){return ap(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getFlatMidpoint(){return this.flatMidpointRevision_!=this.getRevision()&&(this.flatMidpoint_=this.getCoordinateAt(.5,this.flatMidpoint_),this.flatMidpointRevision_=this.getRevision()),this.flatMidpoint_}getSimplifiedGeometryInternal(t){const e=[];return e.length=Fn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,0),new Dp(e,"XY")}getType(){return"LineString"}intersectsExtent(t){return Qn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Pn(this.flatCoordinates,0,t,this.stride),this.changed()}}class Gp extends _n{constructor(t,e,i){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(t[0]))this.setCoordinates(t,e);else if(void 0!==e&&i)this.setFlatCoordinates(e,t),this.ends_=i;else{let e=this.getLayout();const i=t,n=[],r=[];for(let t=0,s=i.length;t<s;++t){const s=i[t];0===t&&(e=s.getLayout()),c(n,s.getFlatCoordinates()),r.push(n.length)}this.setFlatCoordinates(e,n),this.ends_=r}}appendLineString(t){this.flatCoordinates?c(this.flatCoordinates,t.getFlatCoordinates().slice()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.ends_.push(this.flatCoordinates.length),this.changed()}clone(){const t=new Gp(this.flatCoordinates.slice(),this.layout,this.ends_.slice());return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Wt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(wn(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Cn(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!1,t,e,i,n))}getCoordinateAtM(t,e,i){return"XYM"!=this.layout&&"XYZM"!=this.layout||0===this.flatCoordinates.length?null:(e=void 0!==e&&e,i=void 0!==i&&i,Np(this.flatCoordinates,0,this.ends_,this.stride,t,e,i))}getCoordinates(){return jn(this.flatCoordinates,0,this.ends_,this.stride)}getEnds(){return this.ends_}getLineString(t){return t<0||this.ends_.length<=t?null:new Dp(this.flatCoordinates.slice(0===t?0:this.ends_[t-1],this.ends_[t]),this.layout)}getLineStrings(){const t=this.flatCoordinates,e=this.ends_,i=this.layout,n=[];let r=0;for(let s=0,o=e.length;s<o;++s){const o=e[s],a=new Dp(t.slice(r,o),i);n.push(a),r=o}return n}getFlatMidpoints(){const t=[],e=this.flatCoordinates;let i=0;const n=this.ends_,r=this.stride;for(let s=0,o=n.length;s<o;++s){const o=n[s];c(t,Ap(e,i,o,r,.5)),i=o}return t}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=Mn(this.flatCoordinates,0,this.ends_,this.stride,t,e,0,i),new Gp(e,"XY",i)}getType(){return"MultiLineString"}intersectsExtent(t){return tr(this.flatCoordinates,0,this.ends_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,2),this.flatCoordinates||(this.flatCoordinates=[]);const i=In(this.flatCoordinates,0,t,this.stride,this.ends_);this.flatCoordinates.length=0===i.length?0:i[i.length-1],this.changed()}}class kp extends _n{constructor(t,e){super(),e&&!Array.isArray(t[0])?this.setFlatCoordinates(e,t):this.setCoordinates(t,e)}appendPoint(t){this.flatCoordinates?c(this.flatCoordinates,t.getFlatCoordinates()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.changed()}clone(){const t=new kp(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){if(n<Wt(this.getExtent(),t,e))return n;const r=this.flatCoordinates,s=this.stride;for(let o=0,a=r.length;o<a;o+=s){const a=ri(t,e,r[o],r[o+1]);if(a<n){n=a;for(let t=0;t<s;++t)i[t]=r[o+t];i.length=s}}return n}getCoordinates(){return kn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getPoint(t){const e=this.flatCoordinates?this.flatCoordinates.length/this.stride:0;return t<0||e<=t?null:new Wn(this.flatCoordinates.slice(t*this.stride,(t+1)*this.stride),this.layout)}getPoints(){const t=this.flatCoordinates,e=this.layout,i=this.stride,n=[];for(let r=0,s=t.length;r<s;r+=i){const s=new Wn(t.slice(r,r+i),e);n.push(s)}return n}getType(){return"MultiPoint"}intersectsExtent(t){const e=this.flatCoordinates,i=this.stride;for(let n=0,r=e.length;n<r;n+=i){if(Kt(t,e[n],e[n+1]))return!0}return!1}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Pn(this.flatCoordinates,0,t,this.stride),this.changed()}}function jp(t,e,i,n){const r=[];let s=[1/0,1/0,-1/0,-1/0];for(let o=0,a=i.length;o<a;++o){const a=i[o];s=te(t,e,a[0],n),r.push((s[0]+s[2])/2,(s[1]+s[3])/2),e=a[a.length-1]}return r}class Bp extends _n{constructor(t,e,i){if(super(),this.endss_=[],this.flatInteriorPointsRevision_=-1,this.flatInteriorPoints_=null,this.maxDelta_=-1,this.maxDeltaRevision_=-1,this.orientedRevision_=-1,this.orientedFlatCoordinates_=null,!i&&!Array.isArray(t[0])){let n=this.getLayout();const r=t,s=[],o=[];for(let t=0,e=r.length;t<e;++t){const e=r[t];0===t&&(n=e.getLayout());const i=s.length,a=e.getEnds();for(let t=0,e=a.length;t<e;++t)a[t]+=i;c(s,e.getFlatCoordinates()),o.push(a)}e=n,t=s,i=o}void 0!==e&&i?(this.setFlatCoordinates(e,t),this.endss_=i):this.setCoordinates(t,e)}appendPolygon(t){let e;if(this.flatCoordinates){const i=this.flatCoordinates.length;c(this.flatCoordinates,t.getFlatCoordinates()),e=t.getEnds().slice();for(let t=0,n=e.length;t<n;++t)e[t]+=i}else this.flatCoordinates=t.getFlatCoordinates().slice(),e=t.getEnds().slice(),this.endss_.push();this.endss_.push(e),this.changed()}clone(){const t=this.endss_.length,e=new Array(t);for(let i=0;i<t;++i)e[i]=this.endss_[i].slice();const i=new Bp(this.flatCoordinates.slice(),this.layout,e);return i.applyProperties(this),i}closestPointXY(t,e,i,n){return n<Wt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(Tn(this.flatCoordinates,0,this.endss_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),bn(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,this.maxDelta_,!0,t,e,i,n))}containsXY(t,e){return qn(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t,e)}getArea(){return Xn(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride)}getCoordinates(t){let e;return void 0!==t?(e=this.getOrientedFlatCoordinates().slice(),hr(e,0,this.endss_,this.stride,t)):e=this.flatCoordinates,Bn(e,0,this.endss_,this.stride)}getEndss(){return this.endss_}getFlatInteriorPoints(){if(this.flatInteriorPointsRevision_!=this.getRevision()){const t=jp(this.flatCoordinates,0,this.endss_,this.stride);this.flatInteriorPoints_=$n(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t),this.flatInteriorPointsRevision_=this.getRevision()}return this.flatInteriorPoints_}getInteriorPoints(){return new kp(this.getFlatInteriorPoints().slice(),"XYM")}getOrientedFlatCoordinates(){if(this.orientedRevision_!=this.getRevision()){const t=this.flatCoordinates;ar(t,0,this.endss_,this.stride)?this.orientedFlatCoordinates_=t:(this.orientedFlatCoordinates_=t.slice(),this.orientedFlatCoordinates_.length=hr(this.orientedFlatCoordinates_,0,this.endss_,this.stride)),this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=Gn(this.flatCoordinates,0,this.endss_,this.stride,Math.sqrt(t),e,0,i),new Bp(e,"XY",i)}getPolygon(t){if(t<0||this.endss_.length<=t)return null;let e;if(0===t)e=0;else{const i=this.endss_[t-1];e=i[i.length-1]}const i=this.endss_[t].slice(),n=i[i.length-1];if(0!==e)for(let t=0,n=i.length;t<n;++t)i[t]-=e;return new ur(this.flatCoordinates.slice(e,n),this.layout,i)}getPolygons(){const t=this.layout,e=this.flatCoordinates,i=this.endss_,n=[];let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s].slice(),a=o[o.length-1];if(0!==r)for(let t=0,e=o.length;t<e;++t)o[t]-=r;const l=new ur(e.slice(r,a),t,o);n.push(l),r=a}return n}getType(){return"MultiPolygon"}intersectsExtent(t){return nr(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,3),this.flatCoordinates||(this.flatCoordinates=[]);const i=Ln(this.flatCoordinates,0,t,this.stride,this.endss_);if(0===i.length)this.flatCoordinates.length=0;else{const t=i[i.length-1];this.flatCoordinates.length=0===t.length?0:t[t.length-1]}this.changed()}}const Up=[1,0,0,1,0,0];class zp{constructor(t,e,i,n,r){this.styleFunction,this.extent_,this.id_=r,this.type_=t,this.flatCoordinates_=e,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=i,this.properties_=n}get(t){return this.properties_[t]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?Qt(this.flatCoordinates_):te(this.flatCoordinates_,0,this.flatCoordinates_.length,2)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const t=ge(this.getExtent());this.flatInteriorPoints_=Hn(this.flatCoordinates_,0,this.ends_,2,t,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const t=jp(this.flatCoordinates_,0,this.ends_,2);this.flatInteriorPoints_=$n(this.flatCoordinates_,0,this.ends_,2,t)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=Ap(this.flatCoordinates_,0,this.flatCoordinates_.length,2,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const t=this.flatCoordinates_;let e=0;const i=this.ends_;for(let n=0,r=i.length;n<r;++n){const r=i[n],s=Ap(t,e,r,2,.5);c(this.flatMidpoints_,s),e=r}}return this.flatMidpoints_}getId(){return this.id_}getOrientedFlatCoordinates(){return this.flatCoordinates_}getGeometry(){return this}getSimplifiedGeometry(t){return this}simplifyTransformed(t,e){return this}getProperties(){return this.properties_}getStride(){return 2}getStyleFunction(){return this.styleFunction}getType(){return this.type_}transform(t){const e=(t=Ui(t)).getExtent(),i=t.getWorldExtent();if(e&&i){const t=_e(i)/_e(e);Ft(Up,i[0],i[3],t,-t,0,0,0),un(this.flatCoordinates_,0,this.flatCoordinates_.length,2,Up,this.flatCoordinates_)}}getEnds(){return this.ends_}}function Xp(t){const e=t.getType();switch(e){case"Point":return new Wn(t.getFlatCoordinates());case"MultiPoint":return new kp(t.getFlatCoordinates(),"XY");case"LineString":return new Dp(t.getFlatCoordinates(),"XY");case"MultiLineString":return new Gp(t.getFlatCoordinates(),"XY",t.getEnds());case"Polygon":const i=t.getFlatCoordinates(),n=t.getEnds(),r=cr(i,n);return r.length>1?new Bp(i,"XY",r):new ur(i,"XY",n);default:throw new Error("Invalid geometry type:"+e)}}zp.prototype.getEndss=zp.prototype.getEnds,zp.prototype.getFlatCoordinates=zp.prototype.getOrientedFlatCoordinates;class Vp extends Fg{constructor(t){super(t)}createRenderer(){return new Cp(this)}}function Wp(t,e,i){const n=[];let r=t(0),s=t(1),o=e(r),a=e(s);const l=[s,r],h=[a,o],c=[1,0],u={};let d,g,f,p,m,_,y=1e5;for(;--y>0&&c.length>0;)f=c.pop(),r=l.pop(),o=h.pop(),_=f.toString(),_ in u||(n.push(o[0],o[1]),u[_]=!0),p=c.pop(),s=l.pop(),a=h.pop(),m=(f+p)/2,d=t(m),g=e(d),ni(g[0],g[1],o[0],o[1],a[0],a[1])<i?(n.push(a[0],a[1]),_=p.toString(),u[_]=!0):(c.push(p,m,m,f),h.push(a,g,g,o),l.push(s,d,d,r));return n}function Zp(t,e,i,n,r){return Wp((function(n){return[t,e+(i-e)*n]}),Hi(Ui("EPSG:4326"),n),r)}function Yp(t,e,i,n,r){return Wp((function(n){return[e+(i-e)*n,t]}),Hi(Ui("EPSG:4326"),n),r)}const Kp=new ug({color:"rgba(0,0,0,0.2)"}),qp=[90,45,30,20,10,5,2,1,.5,20/60,10/60,5/60,2/60,1/60,30/3600,20/3600,10/3600,5/3600,2/3600,1/3600];const Hp="blur",$p="gradient",Jp="radius",Qp=["#00f","#0ff","#0f0","#ff0","#f00"];class tm{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let i=e.dataProjection?Ui(e.dataProjection):this.readProjection(t);e.extent&&i&&"tile-pixels"===i.getUnits()&&(i=Ui(i),i.setWorldExtent(e.extent)),e={dataProjection:i,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection},t)}getType(){return B()}readFeature(t,e){return B()}readFeatures(t,e){return B()}readGeometry(t,e){return B()}readProjection(t){return B()}writeFeature(t,e){return B()}writeFeatures(t,e){return B()}writeGeometry(t,e){return B()}}function em(t,e,i){const n=i?Ui(i.featureProjection):null,r=i?Ui(i.dataProjection):null;let s;if(s=n&&r&&!Ki(n,r)?(e?t.clone():t).transform(e?n:r,e?r:n):t,e&&i&&void 0!==i.decimals){const e=Math.pow(10,i.decimals),n=function(t){for(let i=0,n=t.length;i<n;++i)t[i]=Math.round(t[i]*e)/e;return t};s===t&&(s=t.clone()),s.applyTransform(n)}return s}function im(t,e){const i=e?Ui(e.featureProjection):null,n=e?Ui(e.dataProjection):null;return i&&n&&!Ki(i,n)?Ji(t,n,i):t}var nm={
|
|
1
|
+
var ol=function(){"use strict";const t={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class e extends Error{constructor(e){const i=t[e];super(i),this.code=e,this.name="AssertionError",this.message=i}}var i=e;function n(t){t.stopPropagation()}var r=class{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},s="propertychange";var o=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function a(t,e,i){let n,r;i=i||l;let s=0,o=t.length,a=!1;for(;s<o;)n=s+(o-s>>1),r=+i(t[n],e),r<0?s=n+1:(o=n,a=!r);return a?s:~s}function l(t,e){return t>e?1:t<e?-1:0}function h(t,e,i){const n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;let r;if(i>0){for(r=1;r<n;++r)if(t[r]<e)return r-1}else if(i<0){for(r=1;r<n;++r)if(t[r]<=e)return r}else for(r=1;r<n;++r){if(t[r]==e)return r;if(t[r]<e)return"function"==typeof i?i(e,t[r-1],t[r])>0?r-1:r:t[r-1]-e<e-t[r]?r-1:r}return n-1}function c(t,e,i){for(;e<i;){const n=t[e];t[e]=t[i],t[i]=n,++e,--i}}function u(t,e){const i=Array.isArray(e)?e:[e],n=i.length;for(let e=0;e<n;e++)t[t.length]=i[e]}function d(t,e){const i=t.length;if(i!==e.length)return!1;for(let n=0;n<i;n++)if(t[n]!==e[n])return!1;return!0}function g(t,e,i){const n=e||l;return t.every((function(e,r){if(0===r)return!0;const s=n(t[r-1],e);return!(s>0||i&&0===s)}))}function f(){return!0}function p(){return!1}function m(){}function _(t){let e,i,n,r=!1;return function(){const s=Array.prototype.slice.call(arguments);return r&&this===n&&d(s,i)||(r=!0,n=this,i=s,e=t.apply(this,arguments)),e}}function y(t){return function(){let e;try{e=t()}catch(t){return Promise.reject(t)}return e instanceof Promise?e:Promise.resolve(e)}()}function x(t){for(const e in t)delete t[e]}function v(t){let e;for(e in t)return!1;return!e}var S=class extends o{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const e="string"==typeof t,i=e?t:t.type,n=this.listeners_&&this.listeners_[i];if(!n)return;const s=e?new r(t):t;s.target||(s.target=this.eventTarget_||this);const o=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});let l;i in o||(o[i]=0,a[i]=0),++o[i];for(let t=0,e=n.length;t<e;++t)if(l="handleEvent"in n[t]?n[t].handleEvent(s):n[t].call(this,s),!1===l||s.propagationStopped){l=!1;break}if(0==--o[i]){let t=a[i];for(delete a[i];t--;)this.removeEventListener(i,m);delete o[i]}return l}disposeInternal(){this.listeners_&&x(this.listeners_)}getListeners(t){return this.listeners_&&this.listeners_[t]||void 0}hasListener(t){return!!this.listeners_&&(t?t in this.listeners_:Object.keys(this.listeners_).length>0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=m,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}},w="change",T="error",E="contextmenu",C="click",b="dblclick",R="dragenter",P="dragover",I="drop",L="keydown",F="keypress",M="load",A="resize",O="touchmove",N="wheel";function D(t,e,i,n,r){if(n&&n!==t&&(i=i.bind(n)),r){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function G(t,e,i,n){return D(t,e,i,n,!0)}function k(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),x(t))}class j extends S{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(w)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=D(this,t[r],e);return n}return D(this,t,e)}onceInternal(t,e){let i;if(Array.isArray(t)){const n=t.length;i=new Array(n);for(let r=0;r<n;++r)i[r]=G(this,t[r],e)}else i=G(this,t,e);return e.ol_key=i,i}unInternal(t,e){const i=e.ol_key;if(i)B(i);else if(Array.isArray(t))for(let i=0,n=t.length;i<n;++i)this.removeEventListener(t[i],e);else this.removeEventListener(t,e)}}function B(t){if(Array.isArray(t))for(let e=0,i=t.length;e<i;++e)k(t[e]);else k(t)}j.prototype.on,j.prototype.once,j.prototype.un;var U=j;function z(){throw new Error("Unimplemented abstract method.")}let X=0;function V(t){return t.ol_uid||(t.ol_uid=String(++X))}class W extends r{constructor(t,e,i){super(t),this.key=e,this.oldValue=i}}var Z=class extends U{constructor(t){super(),this.on,this.once,this.un,V(this),this.values_=null,void 0!==t&&this.setProperties(t)}get(t){let e;return this.values_&&this.values_.hasOwnProperty(t)&&(e=this.values_[t]),e}getKeys(){return this.values_&&Object.keys(this.values_)||[]}getProperties(){return this.values_&&Object.assign({},this.values_)||{}}hasProperties(){return!!this.values_}notify(t,e){let i;i=`change:${t}`,this.hasListener(i)&&this.dispatchEvent(new W(i,t,e)),i=s,this.hasListener(i)&&this.dispatchEvent(new W(i,t,e))}addChangeListener(t,e){this.addEventListener(`change:${t}`,e)}removeChangeListener(t,e){this.removeEventListener(`change:${t}`,e)}set(t,e,i){const n=this.values_||(this.values_={});if(i)n[t]=e;else{const i=n[t];n[t]=e,i!==e&&this.notify(t,i)}}setProperties(t,e){for(const i in t)this.set(i,t[i],e)}applyProperties(t){t.values_&&Object.assign(this.values_||(this.values_={}),t.values_)}unset(t,e){if(this.values_&&t in this.values_){const i=this.values_[t];delete this.values_[t],v(this.values_)&&(this.values_=null),e||this.notify(t,i)}}},Y="add",K="remove";const q="length";class H extends r{constructor(t,e,i){super(t),this.element=e,this.index=i}}class $ extends Z{constructor(t,e){if(super(),this.on,this.once,this.un,e=e||{},this.unique_=!!e.unique,this.array_=t||[],this.unique_)for(let t=0,e=this.array_.length;t<e;++t)this.assertUnique_(this.array_[t],t);this.updateLength_()}clear(){for(;this.getLength()>0;)this.pop()}extend(t){for(let e=0,i=t.length;e<i;++e)this.push(t[e]);return this}forEach(t){const e=this.array_;for(let i=0,n=e.length;i<n;++i)t(e[i],i,e)}getArray(){return this.array_}item(t){return this.array_[t]}getLength(){return this.get(q)}insertAt(t,e){if(t<0||t>this.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new H(Y,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i<n;++i)if(e[i]===t)return this.removeAt(i)}removeAt(t){if(t<0||t>=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new H(K,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new H(K,i,t)),this.dispatchEvent(new H(Y,e,t))}updateLength_(){this.set(q,this.array_.length)}assertUnique_(t,e){for(let n=0,r=this.array_.length;n<r;++n)if(this.array_[n]===t&&n!==e)throw new i(58)}}var J=0,Q=1,tt=2,et=3,it=4;function nt(t){return Math.pow(t,3)}function rt(t){return 1-nt(1-t)}function st(t){return 3*t*t-2*t*t*t}function ot(t){return t}var at=class extends S{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(w)}release(){this.state===et&&this.setState(it)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==tt)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==tt){t.interimTile=null;break}t.getState()==Q?e=t:t.getState()==J?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==et&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){z()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:nt(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}};var lt=class extends at{constructor(t){const e=J;super(t.tileCoord,e,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||[256,256]}getSize(){return this.size_}getData(){return this.data_}getError(){return this.error_}load(){if(this.state!==J&&this.state!==et)return;this.state=Q,this.changed();const t=this;this.loader_().then((function(e){t.data_=e,t.state=tt,t.changed()})).catch((function(e){t.error_=e,t.state=et,t.changed()}))}};function ht(t,e){if(!t)throw new i(e)}class ct extends Z{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new ct(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(k(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=D(t,w,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?ut(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}function ut(t){if("function"==typeof t)return t;let e;if(Array.isArray(t))e=t;else{ht("function"==typeof t.getZIndex,41);e=[t]}return function(){return e}}var dt=ct;const gt="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"",ft=gt.includes("firefox"),pt=gt.includes("safari")&&!gt.includes("chrom"),mt=pt&&(gt.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(gt)),_t=gt.includes("webkit")&&!gt.includes("edge"),yt=gt.includes("macintosh"),xt="undefined"!=typeof devicePixelRatio?devicePixelRatio:1,vt="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,St="undefined"!=typeof Image&&Image.prototype.decode,wt=function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}return t}(),Tt=new Array(6);function Et(){return[1,0,0,1,0,0]}function Ct(t){return Rt(t,1,0,0,1,0,0)}function bt(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=e[0],h=e[1],c=e[2],u=e[3],d=e[4],g=e[5];return t[0]=i*l+r*h,t[1]=n*l+s*h,t[2]=i*c+r*u,t[3]=n*c+s*u,t[4]=i*d+r*g+o,t[5]=n*d+s*g+a,t}function Rt(t,e,i,n,r,s,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t[4]=s,t[5]=o,t}function Pt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function It(t,e){const i=e[0],n=e[1];return e[0]=t[0]*i+t[2]*n+t[4],e[1]=t[1]*i+t[3]*n+t[5],e}function Lt(t,e){const i=Math.cos(e),n=Math.sin(e);return bt(t,Rt(Tt,i,n,-n,i,0,0))}function Ft(t,e,i){return bt(t,Rt(Tt,e,0,0,i,0,0))}function Mt(t,e,i){return Rt(t,e,0,0,i,0,0)}function At(t,e,i){return bt(t,Rt(Tt,1,0,0,1,e,i))}function Ot(t,e,i,n,r,s,o,a){const l=Math.sin(s),h=Math.cos(s);return t[0]=n*h,t[1]=r*l,t[2]=-n*l,t[3]=r*h,t[4]=o*n*h-a*n*l+e,t[5]=o*r*l+a*r*h+i,t}function Nt(t,e){const i=Dt(e);ht(0!==i,32);const n=e[0],r=e[1],s=e[2],o=e[3],a=e[4],l=e[5];return t[0]=o/i,t[1]=-r/i,t[2]=-s/i,t[3]=n/i,t[4]=(s*l-o*a)/i,t[5]=-(n*l-r*a)/i,t}function Dt(t){return t[0]*t[3]-t[1]*t[2]}let Gt;function kt(t){const e="matrix("+t.join(", ")+")";if(vt)return e;const i=Gt||(Gt=document.createElement("div"));return i.style.transform=e,i.style.transform}var jt=0,Bt=1,Ut=2,zt=4,Xt=8,Vt=16;function Wt(t){const e=Qt();for(let i=0,n=t.length;i<n;++i)ae(e,t[i]);return e}function Zt(t,e,i){return i?(i[0]=t[0]-e,i[1]=t[1]-e,i[2]=t[2]+e,i[3]=t[3]+e,i):[t[0]-e,t[1]-e,t[2]+e,t[3]+e]}function Yt(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t.slice()}function Kt(t,e,i){let n,r;return n=e<t[0]?t[0]-e:t[2]<e?e-t[2]:0,r=i<t[1]?t[1]-i:t[3]<i?i-t[3]:0,n*n+r*r}function qt(t,e){return $t(t,e[0],e[1])}function Ht(t,e){return t[0]<=e[0]&&e[2]<=t[2]&&t[1]<=e[1]&&e[3]<=t[3]}function $t(t,e,i){return t[0]<=e&&e<=t[2]&&t[1]<=i&&i<=t[3]}function Jt(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],o=e[0],a=e[1];let l=jt;return o<i?l|=Vt:o>r&&(l|=zt),a<n?l|=Xt:a>s&&(l|=Ut),l===jt&&(l=Bt),l}function Qt(){return[1/0,1/0,-1/0,-1/0]}function te(t,e,i,n,r){return r?(r[0]=t,r[1]=e,r[2]=i,r[3]=n,r):[t,e,i,n]}function ee(t){return te(1/0,1/0,-1/0,-1/0,t)}function ie(t,e){const i=t[0],n=t[1];return te(i,n,i,n,e)}function ne(t,e,i,n,r){return he(ee(r),t,e,i,n)}function re(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function se(t,e,i){return Math.abs(t[0]-e[0])<i&&Math.abs(t[2]-e[2])<i&&Math.abs(t[1]-e[1])<i&&Math.abs(t[3]-e[3])<i}function oe(t,e){return e[0]<t[0]&&(t[0]=e[0]),e[2]>t[2]&&(t[2]=e[2]),e[1]<t[1]&&(t[1]=e[1]),e[3]>t[3]&&(t[3]=e[3]),t}function ae(t,e){e[0]<t[0]&&(t[0]=e[0]),e[0]>t[2]&&(t[2]=e[0]),e[1]<t[1]&&(t[1]=e[1]),e[1]>t[3]&&(t[3]=e[1])}function le(t,e){for(let i=0,n=e.length;i<n;++i)ae(t,e[i]);return t}function he(t,e,i,n,r){for(;i<n;i+=r)ue(t,e[i],e[i+1]);return t}function ce(t,e){for(let i=0,n=e.length;i<n;++i)le(t,e[i]);return t}function ue(t,e,i){t[0]=Math.min(t[0],e),t[1]=Math.min(t[1],i),t[2]=Math.max(t[2],e),t[3]=Math.max(t[3],i)}function de(t,e){let i;return i=e(fe(t)),i||(i=e(pe(t)),i||(i=e(Te(t)),i||(i=e(we(t)),i||!1)))}function ge(t){let e=0;return be(t)||(e=Ee(t)*ve(t)),e}function fe(t){return[t[0],t[1]]}function pe(t){return[t[2],t[1]]}function me(t){return[(t[0]+t[2])/2,(t[1]+t[3])/2]}function _e(t,e){let i;return"bottom-left"===e?i=fe(t):"bottom-right"===e?i=pe(t):"top-left"===e?i=we(t):"top-right"===e?i=Te(t):ht(!1,13),i}function ye(t,e,i,n,r){const[s,o,a,l,h,c,u,d]=xe(t,e,i,n);return te(Math.min(s,a,h,u),Math.min(o,l,c,d),Math.max(s,a,h,u),Math.max(o,l,c,d),r)}function xe(t,e,i,n){const r=e*n[0]/2,s=e*n[1]/2,o=Math.cos(i),a=Math.sin(i),l=r*o,h=r*a,c=s*o,u=s*a,d=t[0],g=t[1];return[d-l+u,g-h-c,d-l-u,g-h+c,d+l-u,g+h+c,d+l+u,g+h-c,d-l+u,g-h-c]}function ve(t){return t[3]-t[1]}function Se(t,e,i){const n=i||[1/0,1/0,-1/0,-1/0];return Ce(t,e)?(t[0]>e[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]<e[2]?n[2]=t[2]:n[2]=e[2],t[3]<e[3]?n[3]=t[3]:n[3]=e[3]):ee(n),n}function we(t){return[t[0],t[3]]}function Te(t){return[t[2],t[3]]}function Ee(t){return t[2]-t[0]}function Ce(t,e){return t[0]<=e[2]&&t[2]>=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function be(t){return t[2]<t[0]||t[3]<t[1]}function Re(t,e){return e?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):t}function Pe(t,e){const i=(t[2]-t[0])/2*(e-1),n=(t[3]-t[1])/2*(e-1);t[0]-=i,t[2]+=i,t[1]-=n,t[3]+=n}function Ie(t,e,i){let n=!1;const r=Jt(t,e),s=Jt(t,i);if(r===Bt||s===Bt)n=!0;else{const o=t[0],a=t[1],l=t[2],h=t[3],c=e[0],u=e[1],d=i[0],g=i[1],f=(g-u)/(d-c);let p,m;s&Ut&&!(r&Ut)&&(p=d-(g-h)/f,n=p>=o&&p<=l),n||!(s&zt)||r&zt||(m=g-(d-l)*f,n=m>=a&&m<=h),n||!(s&Xt)||r&Xt||(p=d-(g-a)/f,n=p>=o&&p<=l),n||!(s&Vt)||r&Vt||(m=g-(d-o)*f,n=m>=a&&m<=h)}return n}function Le(t,e,i,n){let r=[];if(n>1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s<n;++s)r.push(t[0]+e*s/n,t[1],t[2],t[1]+i*s/n,t[2]-e*s/n,t[3],t[0],t[3]-i*s/n)}else r=[t[0],t[1],t[2],t[1],t[2],t[3],t[0],t[3]];e(r,r,2);const s=[],o=[];for(let t=0,e=r.length;t<e;t+=2)s.push(r[t]),o.push(r[t+1]);return function(t,e,i){return te(Math.min.apply(null,t),Math.min.apply(null,e),Math.max.apply(null,t),Math.max.apply(null,e),i)}(s,o,i)}function Fe(t,e){const i=e.getExtent(),n=me(t);if(e.canWrapX()&&(n[0]<i[0]||n[0]>=i[2])){const e=Ee(i),r=Math.floor((n[0]-i[0])/e)*e;t[0]-=r,t[2]-=r}return t}function Me(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];Fe(t,e);const n=Ee(i);if(Ee(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]<i[0])return[[t[0]+n,t[1],i[2],t[3]],[i[0],t[1],t[2],t[3]]];if(t[2]>i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}const Ae={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function Oe(t){return Ae[t]}const Ne={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var De=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ne[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}};const Ge=6378137,ke=Math.PI*Ge,je=[-ke,-ke,ke,ke],Be=[-180,-85,180,85],Ue=Ge*Math.log(Math.tan(Math.PI/2));class ze extends De{constructor(t){super({code:t,units:"m",extent:je,global:!0,worldExtent:Be,getPointResolution:function(t,e){return t/Math.cosh(e[1]/Ge)}})}}const Xe=[new ze("EPSG:3857"),new ze("EPSG:102100"),new ze("EPSG:102113"),new ze("EPSG:900913"),new ze("http://www.opengis.net/def/crs/EPSG/0/3857"),new ze("http://www.opengis.net/gml/srs/epsg.xml#3857")];function Ve(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r<n;r+=i){e[r]=ke*t[r]/180;let i=Ge*Math.log(Math.tan(Math.PI*(+t[r+1]+90)/360));i>Ue?i=Ue:i<-Ue&&(i=-Ue),e[r+1]=i}return e}function We(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r<n;r+=i)e[r]=180*t[r]/ke,e[r+1]=360*Math.atan(Math.exp(t[r+1]/Ge))/Math.PI-90;return e}const Ze=6378137,Ye=[-180,-90,180,90],Ke=Math.PI*Ze/180;class qe extends De{constructor(t,e){super({code:t,units:"degrees",extent:Ye,axisOrientation:e,global:!0,metersPerUnit:Ke,worldExtent:Ye})}}const He=[new qe("CRS:84"),new qe("EPSG:4326","neu"),new qe("urn:ogc:def:crs:OGC:1.3:CRS84"),new qe("urn:ogc:def:crs:OGC:2:84"),new qe("http://www.opengis.net/def/crs/OGC/1.3/CRS84"),new qe("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new qe("http://www.opengis.net/def/crs/EPSG/0/4326","neu")];let $e={};function Je(){$e={}}function Qe(t){return $e[t]||$e[t.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/,"EPSG:$3")]||null}function ti(t,e){$e[t]=e}let ei={};function ii(){ei={}}function ni(t,e,i){const n=t.getCode(),r=e.getCode();n in ei||(ei[n]={}),ei[n][r]=i}function ri(t,e){let i;return t in ei&&e in ei[t]&&(i=ei[t][e]),i}function si(t,e,i){return Math.min(Math.max(t,e),i)}function oi(t,e,i,n,r,s){const o=r-i,a=s-n;if(0!==o||0!==a){const l=((t-i)*o+(e-n)*a)/(o*o+a*a);l>1?(i=r,n=s):l>0&&(i+=o*l,n+=a*l)}return ai(t,e,i,n)}function ai(t,e,i,n){const r=i-t,s=n-e;return r*r+s*s}function li(t){const e=t.length;for(let i=0;i<e;i++){let n=i,r=Math.abs(t[i][i]);for(let s=i+1;s<e;s++){const e=Math.abs(t[s][i]);e>r&&(r=e,n=s)}if(0===r)return null;const s=t[n];t[n]=t[i],t[i]=s;for(let n=i+1;n<e;n++){const r=-t[n][i]/t[i][i];for(let s=i;s<e+1;s++)i==s?t[n][s]=0:t[n][s]+=r*t[i][s]}}const i=new Array(e);for(let n=e-1;n>=0;n--){i[n]=t[n][e]/t[n][n];for(let r=n-1;r>=0;r--)t[r][e]-=t[r][n]*i[n]}return i}function hi(t){return 180*t/Math.PI}function ci(t){return t*Math.PI/180}function ui(t,e){const i=t%e;return i*e<0?i+e:i}function di(t,e,i){return t+i*(e-t)}function gi(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function fi(t,e){return Math.round(gi(t,e))}function pi(t,e){return Math.floor(gi(t,e))}function mi(t,e){return Math.ceil(gi(t,e))}function _i(t,e,i){const n=void 0!==i?t.toFixed(i):""+t;let r=n.indexOf(".");return r=-1===r?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function yi(t,e){const i=(""+t).split("."),n=(""+e).split(".");for(let t=0;t<Math.max(i.length,n.length);t++){const e=parseInt(i[t]||"0",10),r=parseInt(n[t]||"0",10);if(e>r)return 1;if(r>e)return-1}return 0}function xi(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function vi(t,e){const i=e.getRadius(),n=e.getCenter(),r=n[0],s=n[1];let o=t[0]-r;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[r+i*o/l,s+i*a/l]}function Si(t,e){const i=t[0],n=t[1],r=e[0],s=e[1],o=r[0],a=r[1],l=s[0],h=s[1],c=l-o,u=h-a,d=0===c&&0===u?0:(c*(i-o)+u*(n-a))/(c*c+u*u||0);let g,f;return d<=0?(g=o,f=a):d>=1?(g=l,f=h):(g=o+d*c,f=a+d*u),[g,f]}function wi(t,e,i){const n=ui(e+180,360)-180,r=Math.abs(3600*n),s=i||0;let o=Math.floor(r/3600),a=Math.floor((r-3600*o)/60),l=gi(r-3600*o-60*a,s);l>=60&&(l=0,a+=1),a>=60&&(a=0,o+=1);let h=o+"°";return 0===a&&0===l||(h+=" "+_i(a,2)+"′"),0!==l&&(h+=" "+_i(l,2,s)+"″"),0!==n&&(h+=" "+t.charAt(n<0?1:0)),h}function Ti(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Ei(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function Ci(t,e){const i=Math.cos(e),n=Math.sin(e),r=t[0]*i-t[1]*n,s=t[1]*i+t[0]*n;return t[0]=r,t[1]=s,t}function bi(t,e){return t[0]*=e,t[1]*=e,t}function Ri(t,e){const i=t[0]-e[0],n=t[1]-e[1];return i*i+n*n}function Pi(t,e){return Math.sqrt(Ri(t,e))}function Ii(t,e){return Ri(t,Si(t,e))}function Li(t,e){return Ti(t,"{x}, {y}",e)}function Fi(t,e){if(e.canWrapX()){const i=Ee(e.getExtent()),n=Mi(t,e,i);n&&(t[0]-=n*i)}return t}function Mi(t,e,i){const n=e.getExtent();let r=0;return e.canWrapX()&&(t[0]<n[0]||t[0]>n[2])&&(i=i||Ee(n),r=Math.floor((t[0]-n[0])/i)),r}const Ai=6371008.8;function Oi(t,e,i){i=i||Ai;const n=ci(t[1]),r=ci(e[1]),s=(r-n)/2,o=ci(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(r);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function Ni(t,e){let i=0;for(let n=0,r=t.length;n<r-1;++n)i+=Oi(t[n],t[n+1],e);return i}function Di(t,e){let i=0;const n=t.length;let r=t[n-1][0],s=t[n-1][1];for(let e=0;e<n;e++){const n=t[e][0],o=t[e][1];i+=ci(n-r)*(2+Math.sin(ci(s))+Math.sin(ci(o))),r=n,s=o}return i*e*e/2}function Gi(t,e,i,n){n=n||Ai;const r=ci(t[1]),s=ci(t[0]),o=e/n,a=Math.asin(Math.sin(r)*Math.cos(o)+Math.cos(r)*Math.sin(o)*Math.cos(i));return[hi(s+Math.atan2(Math.sin(i)*Math.sin(o)*Math.cos(r),Math.cos(o)-Math.sin(r)*Math.sin(a))),hi(a)]}let ki=!0;function ji(t){ki=!(void 0===t||t)}function Bi(t,e,i){if(void 0!==e)for(let i=0,n=t.length;i<n;++i)e[i]=t[i];else e=t.slice();return e}function Ui(t,e,i){if(void 0!==e&&t!==e){for(let i=0,n=t.length;i<n;++i)e[i]=t[i];t=e}return t}function zi(t){ti(t.getCode(),t),ni(t,t,Bi)}function Xi(t){t.forEach(zi)}function Vi(t){return"string"==typeof t?Qe(t):t||null}function Wi(t,e,i,n){let r;const s=(t=Vi(t)).getPointResolutionFunc();if(s){if(r=s(e,i),n&&n!==t.getUnits()){const e=t.getMetersPerUnit();e&&(r=r*e/Ne[n])}}else{const s=t.getUnits();if("degrees"==s&&!n||"degrees"==n)r=e;else{const o=Ji(t,Vi("EPSG:4326"));if(o===Ui&&"degrees"!==s)r=e*t.getMetersPerUnit();else{let t=[i[0]-e/2,i[1],i[0]+e/2,i[1],i[0],i[1]-e/2,i[0],i[1]+e/2];t=o(t,t,2);r=(Oi(t.slice(0,2),t.slice(2,4))+Oi(t.slice(4,6),t.slice(6,8)))/2}const a=n?Ne[n]:t.getMetersPerUnit();void 0!==a&&(r/=a)}}return r}function Zi(t){Xi(t),t.forEach((function(e){t.forEach((function(t){e!==t&&ni(e,t,Bi)}))}))}function Yi(t,e,i,n){t.forEach((function(t){e.forEach((function(e){ni(t,e,i),ni(e,t,n)}))}))}function Ki(t,e){return t?"string"==typeof t?Vi(t):t:Vi(e)}function qi(t){return function(e,i,n){const r=e.length;n=void 0!==n?n:2,i=void 0!==i?i:new Array(r);for(let s=0;s<r;s+=n){const r=t(e.slice(s,s+n)),o=r.length;for(let t=0,a=n;t<a;++t)i[s+t]=t>=o?e[s+t]:r[t]}return i}}function Hi(t,e,i,n){const r=Vi(t),s=Vi(e);ni(r,s,qi(i)),ni(s,r,qi(n))}function $i(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return Ji(t,e)===Bi&&i}function Ji(t,e){let i=ri(t.getCode(),e.getCode());return i||(i=Ui),i}function Qi(t,e){return Ji(Vi(t),Vi(e))}function tn(t,e,i){return Qi(e,i)(t,void 0,t.length)}function en(t,e,i,n){return Le(t,Qi(e,i),void 0,n)}let nn=null;function rn(t){nn=Vi(t)}function sn(){return nn}function on(t,e){return nn?tn(t,e,nn):t}function an(t,e){return nn?tn(t,nn,e):(ki&&!Ei(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(ki=!1,console.warn("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function ln(t,e){return nn?en(t,e,nn):t}function hn(t,e){return nn?en(t,nn,e):t}function cn(t,e){if(!nn)return t;const i=Vi(e).getUnits(),n=nn.getUnits();return i&&n?t*Ne[i]/Ne[n]:t}function un(t,e){if(!nn)return t;const i=Vi(e).getUnits(),n=nn.getUnits();return i&&n?t*Ne[n]/Ne[i]:t}function dn(t,e,i){return function(n){let r,s;if(t.canWrapX()){const e=t.getExtent(),o=Ee(e);s=Mi(n=n.slice(0),t,o),s&&(n[0]=n[0]-s*o),n[0]=si(n[0],e[0],e[2]),n[1]=si(n[1],e[1],e[3]),r=i(n)}else r=i(n);return s&&e.canWrapX()&&(r[0]+=s*Ee(e.getExtent())),r}}function gn(){Zi(Xe),Zi(He),Yi(He,Xe,Ve,We)}function fn(t,e,i,n,r,s){s=s||[];let o=0;for(let a=e;a<i;a+=n){const e=t[a],i=t[a+1];s[o++]=r[0]*e+r[2]*i+r[4],s[o++]=r[1]*e+r[3]*i+r[5]}return s&&s.length!=o&&(s.length=o),s}function pn(t,e,i,n,r,s,o){o=o||[];const a=Math.cos(r),l=Math.sin(r),h=s[0],c=s[1];let u=0;for(let r=e;r<i;r+=n){const e=t[r]-h,i=t[r+1]-c;o[u++]=h+e*a-i*l,o[u++]=c+e*l+i*a;for(let e=r+2;e<r+n;++e)o[u++]=t[e]}return o&&o.length!=u&&(o.length=u),o}function mn(t,e,i,n,r,s,o,a){a=a||[];const l=o[0],h=o[1];let c=0;for(let o=e;o<i;o+=n){const e=t[o]-l,i=t[o+1]-h;a[c++]=l+r*e,a[c++]=h+s*i;for(let e=o+2;e<o+n;++e)a[c++]=t[e]}return a&&a.length!=c&&(a.length=c),a}function _n(t,e,i,n,r,s,o){o=o||[];let a=0;for(let l=e;l<i;l+=n){o[a++]=t[l]+r,o[a++]=t[l+1]+s;for(let e=l+2;e<l+n;++e)o[a++]=t[e]}return o&&o.length!=a&&(o.length=a),o}gn();const yn=[1,0,0,1,0,0];var xn=class extends Z{constructor(){super(),this.extent_=[1/0,1/0,-1/0,-1/0],this.extentRevision_=-1,this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=0,this.simplifyTransformedInternal=_((function(t,e,i){if(!i)return this.getSimplifiedGeometry(e);const n=this.clone();return n.applyTransform(i),n.getSimplifiedGeometry(e)}))}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return z()}closestPointXY(t,e,i,n){return z()}containsXY(t,e){const i=this.getClosestPoint([t,e]);return i[0]===t&&i[1]===e}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return z()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&ee(t),this.extentRevision_=this.getRevision()}return Re(this.extent_,t)}rotate(t,e){z()}scale(t,e,i){z()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return z()}getType(){return z()}applyTransform(t){z()}intersectsExtent(t){return z()}translate(t,e){z()}transform(t,e){const i=Vi(t),n="tile-pixels"==i.getUnits()?function(t,n,r){const s=i.getExtent(),o=i.getWorldExtent(),a=ve(o)/ve(s);return Ot(yn,o[0],o[3],a,-a,0,0,0),fn(t,0,t.length,r,yn,n),Qi(i,e)(t,n,r)}:Qi(i,e);return this.applyTransform(n),this}};function vn(t){let e;return"XY"==t?e=2:"XYZ"==t||"XYM"==t?e=3:"XYZM"==t&&(e=4),e}function Sn(t,e,i){const n=t.getFlatCoordinates();if(!n)return null;const r=t.getStride();return fn(n,0,n.length,r,e,i)}var wn=class extends xn{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates=null}computeExtent(t){return ne(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return z()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length<this.flatCoordinates.length?e:(this.simplifiedGeometryMaxMinSquaredTolerance=t,this)}getSimplifiedGeometryInternal(t){return this}getStride(){return this.stride}setFlatCoordinates(t,e){this.stride=vn(t),this.layout=t,this.flatCoordinates=e}setCoordinates(t,e){z()}setLayout(t,e,i){let n;if(t)n=vn(t);else{for(let t=0;t<i;++t){if(0===e.length)return this.layout="XY",void(this.stride=2);e=e[0]}n=e.length,t=function(t){let e;2==t?e="XY":3==t?e="XYZ":4==t&&(e="XYZM");return e}(n)}this.layout=t,this.stride=n}applyTransform(t){this.flatCoordinates&&(t(this.flatCoordinates,this.flatCoordinates,this.stride),this.changed())}rotate(t,e){const i=this.getFlatCoordinates();if(i){const n=this.getStride();pn(i,0,i.length,n,t,e,i),this.changed()}}scale(t,e,i){void 0===e&&(e=t),i||(i=me(this.getExtent()));const n=this.getFlatCoordinates();if(n){const r=this.getStride();mn(n,0,n.length,r,t,e,i,n),this.changed()}}translate(t,e){const i=this.getFlatCoordinates();if(i){const n=this.getStride();_n(i,0,i.length,n,t,e,i),this.changed()}}};function Tn(t,e,i,n,r,s,o){const a=t[e],l=t[e+1],h=t[i]-a,c=t[i+1]-l;let u;if(0===h&&0===c)u=e;else{const d=((r-a)*h+(s-l)*c)/(h*h+c*c);if(d>1)u=i;else{if(d>0){for(let r=0;r<n;++r)o[r]=di(t[e+r],t[i+r],d);return void(o.length=n)}u=e}}for(let e=0;e<n;++e)o[e]=t[u+e];o.length=n}function En(t,e,i,n,r){let s=t[e],o=t[e+1];for(e+=n;e<i;e+=n){const i=t[e],n=t[e+1],a=ai(s,o,i,n);a>r&&(r=a),s=i,o=n}return r}function Cn(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];r=En(t,e,o,n,r),e=o}return r}function bn(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];r=Cn(t,e,o,n,r),e=o[o.length-1]}return r}function Rn(t,e,i,n,r,s,o,a,l,h,c){if(e==i)return h;let u,d;if(0===r){if(d=ai(o,a,t[e],t[e+1]),d<h){for(u=0;u<n;++u)l[u]=t[e+u];return l.length=n,d}return h}c=c||[NaN,NaN];let g=e+n;for(;g<i;)if(Tn(t,g-n,g,n,o,a,c),d=ai(o,a,c[0],c[1]),d<h){for(h=d,u=0;u<n;++u)l[u]=c[u];l.length=n,g+=n}else g+=n*Math.max((Math.sqrt(d)-Math.sqrt(h))/r|0,1);if(s&&(Tn(t,i-n,e,n,o,a,c),d=ai(o,a,c[0],c[1]),d<h)){for(h=d,u=0;u<n;++u)l[u]=c[u];l.length=n}return h}function Pn(t,e,i,n,r,s,o,a,l,h,c){c=c||[NaN,NaN];for(let u=0,d=i.length;u<d;++u){const d=i[u];h=Rn(t,e,d,n,r,s,o,a,l,h,c),e=d}return h}function In(t,e,i,n,r,s,o,a,l,h,c){c=c||[NaN,NaN];for(let u=0,d=i.length;u<d;++u){const d=i[u];h=Pn(t,e,d,n,r,s,o,a,l,h,c),e=d[d.length-1]}return h}function Ln(t,e,i,n){for(let n=0,r=i.length;n<r;++n)t[e++]=i[n];return e}function Fn(t,e,i,n){for(let r=0,s=i.length;r<s;++r){const s=i[r];for(let i=0;i<n;++i)t[e++]=s[i]}return e}function Mn(t,e,i,n,r){r=r||[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=Fn(t,e,i[o],n);r[s++]=a,e=a}return r.length=s,r}function An(t,e,i,n,r){r=r||[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=Mn(t,e,i[o],n,r[s]);0===a.length&&(a[0]=e),r[s++]=a,e=a[a.length-1]}return r.length=s,r}function On(t,e,i,n,r,s,o){const a=(i-e)/n;if(a<3){for(;e<i;e+=n)s[o++]=t[e],s[o++]=t[e+1];return o}const l=new Array(a);l[0]=1,l[a-1]=1;const h=[e,i-n];let c=0;for(;h.length>0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],d=t[i],g=t[i+1];for(let e=s+n;e<i;e+=n){const i=oi(t[e],t[e+1],a,u,d,g);i>o&&(c=e,o=i)}o>r&&(l[(c-e)/n]=1,s+n<c&&h.push(s,c),c+n<i&&h.push(c,i))}for(let i=0;i<a;++i)l[i]&&(s[o++]=t[e+i*n],s[o++]=t[e+i*n+1]);return o}function Nn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l];o=On(t,e,h,n,r,s,o),a.push(o),e=h}return o}function Dn(t,e,i,n,r,s,o){if(i<=e+n){for(;e<i;e+=n)s[o++]=t[e],s[o++]=t[e+1];return o}let a=t[e],l=t[e+1];s[o++]=a,s[o++]=l;let h=a,c=l;for(e+=n;e<i;e+=n)h=t[e],c=t[e+1],ai(a,l,h,c)>r&&(s[o++]=h,s[o++]=c,a=h,l=c);return h==a&&c==l||(s[o++]=h,s[o++]=c),o}function Gn(t,e){return e*Math.round(t/e)}function kn(t,e,i,n,r,s,o){if(e==i)return o;let a,l,h=Gn(t[e],r),c=Gn(t[e+1],r);e+=n,s[o++]=h,s[o++]=c;do{if(a=Gn(t[e],r),l=Gn(t[e+1],r),(e+=n)==i)return s[o++]=a,s[o++]=l,o}while(a==h&&l==c);for(;e<i;){const i=Gn(t[e],r),u=Gn(t[e+1],r);if(e+=n,i==a&&u==l)continue;const d=a-h,g=l-c,f=i-h,p=u-c;d*p==g*f&&(d<0&&f<d||d==f||d>0&&f>d)&&(g<0&&p<g||g==p||g>0&&p>g)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function jn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l];o=kn(t,e,h,n,r,s,o),a.push(o),e=h}return o}function Bn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l],c=[];o=jn(t,e,h,n,r,s,o,c),a.push(c),e=h[h.length-1]}return o}function Un(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=e;o<i;o+=n)r[s++]=t.slice(o,o+n);return r.length=s,r}function zn(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=i[o];r[s++]=Un(t,e,a,n,r[s]),e=a}return r.length=s,r}function Xn(t,e,i,n,r){r=void 0!==r?r:[];let s=0;for(let o=0,a=i.length;o<a;++o){const a=i[o];r[s++]=1===a.length&&a[0]===e?[]:zn(t,e,a,n,r[s]),e=a[a.length-1]}return r.length=s,r}function Vn(t,e,i,n){let r=0,s=t[i-n],o=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];r+=o*i-s*n,s=i,o=n}return r/2}function Wn(t,e,i,n){let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s];r+=Vn(t,e,o,n),e=o}return r}function Zn(t,e,i,n){let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s];r+=Wn(t,e,o,n),e=o[o.length-1]}return r}class Yn extends wn{constructor(t,e){super(),this.maxDelta_=-1,this.maxDeltaRevision_=-1,void 0===e||Array.isArray(t[0])?this.setCoordinates(t,e):this.setFlatCoordinates(e,t)}clone(){return new Yn(this.flatCoordinates.slice(),this.layout)}closestPointXY(t,e,i,n){return n<Kt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(En(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Rn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!0,t,e,i,n))}getArea(){return Vn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getCoordinates(){return Un(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getSimplifiedGeometryInternal(t){const e=[];return e.length=On(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,0),new Yn(e,"XY")}getType(){return"LinearRing"}intersectsExtent(t){return!1}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Fn(this.flatCoordinates,0,t,this.stride),this.changed()}}var Kn=Yn;class qn extends wn{constructor(t,e){super(),this.setCoordinates(t,e)}clone(){const t=new qn(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){const r=this.flatCoordinates,s=ai(t,e,r[0],r[1]);if(s<n){const t=this.stride;for(let e=0;e<t;++e)i[e]=r[e];return i.length=t,s}return n}getCoordinates(){return this.flatCoordinates?this.flatCoordinates.slice():[]}computeExtent(t){return ie(this.flatCoordinates,t)}getType(){return"Point"}intersectsExtent(t){return $t(t,this.flatCoordinates[0],this.flatCoordinates[1])}setCoordinates(t,e){this.setLayout(e,t,0),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Ln(this.flatCoordinates,0,t,this.stride),this.changed()}}var Hn=qn;function $n(t,e,i,n,r){return!de(r,(function(r){return!Jn(t,e,i,n,r[0],r[1])}))}function Jn(t,e,i,n,r,s){let o=0,a=t[i-n],l=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];l<=s?n>s&&(i-a)*(s-l)-(r-a)*(n-l)>0&&o++:n<=s&&(i-a)*(s-l)-(r-a)*(n-l)<0&&o--,a=i,l=n}return 0!==o}function Qn(t,e,i,n,r,s){if(0===i.length)return!1;if(!Jn(t,e,i[0],n,r,s))return!1;for(let e=1,o=i.length;e<o;++e)if(Jn(t,i[e-1],i[e],n,r,s))return!1;return!0}function tr(t,e,i,n,r,s){if(0===i.length)return!1;for(let o=0,a=i.length;o<a;++o){const a=i[o];if(Qn(t,e,a,n,r,s))return!0;e=a[a.length-1]}return!1}function er(t,e,i,n,r,s,o){let a,h,c,u,d,g,f;const p=r[s+1],m=[];for(let r=0,s=i.length;r<s;++r){const s=i[r];for(u=t[s-n],g=t[s-n+1],a=e;a<s;a+=n)d=t[a],f=t[a+1],(p<=g&&f<=p||g<=p&&p<=f)&&(c=(p-g)/(f-g)*(d-u)+u,m.push(c)),u=d,g=f}let _=NaN,y=-1/0;for(m.sort(l),u=m[0],a=1,h=m.length;a<h;++a){d=m[a];const r=Math.abs(d-u);r>y&&(c=(u+d)/2,Qn(t,e,i,n,c,p)&&(_=c,y=r)),u=d}return isNaN(_)&&(_=r[s]),o?(o.push(_,p,y),o):[_,p,y]}function ir(t,e,i,n,r){let s=[];for(let o=0,a=i.length;o<a;++o){const a=i[o];s=er(t,e,a,n,r,2*o,s),e=a[a.length-1]}return s}function nr(t,e,i,n,r){let s;for(e+=n;e<i;e+=n)if(s=r(t.slice(e-n,e),t.slice(e,e+n)),s)return s;return!1}function rr(t,e,i,n,r){const s=he([1/0,1/0,-1/0,-1/0],t,e,i,n);return!!Ce(r,s)&&(!!Ht(r,s)||(s[0]>=r[0]&&s[2]<=r[2]||(s[1]>=r[1]&&s[3]<=r[3]||nr(t,e,i,n,(function(t,e){return Ie(r,t,e)})))))}function sr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){if(rr(t,e,i[s],n,r))return!0;e=i[s]}return!1}function or(t,e,i,n,r){return!!rr(t,e,i,n,r)||(!!Jn(t,e,i,n,r[0],r[1])||(!!Jn(t,e,i,n,r[0],r[3])||(!!Jn(t,e,i,n,r[2],r[1])||!!Jn(t,e,i,n,r[2],r[3]))))}function ar(t,e,i,n,r){if(!or(t,e,i[0],n,r))return!1;if(1===i.length)return!0;for(let e=1,s=i.length;e<s;++e)if($n(t,i[e-1],i[e],n,r)&&!rr(t,i[e-1],i[e],n,r))return!1;return!0}function lr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];if(ar(t,e,o,n,r))return!0;e=o[o.length-1]}return!1}function hr(t,e,i,n){for(;e<i-n;){for(let r=0;r<n;++r){const s=t[e+r];t[e+r]=t[i-n+r],t[i-n+r]=s}e+=n,i-=n}}function cr(t,e,i,n){let r=0,s=t[i-n],o=t[i-n+1];for(;e<i;e+=n){const i=t[e],n=t[e+1];r+=(i-s)*(n+o),s=i,o=n}return 0===r?void 0:r>0}function ur(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=cr(t,e,o,n);if(0===s){if(r&&a||!r&&!a)return!1}else if(r&&!a||!r&&a)return!1;e=o}return!0}function dr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s];if(!ur(t,e,o,n,r))return!1;o.length&&(e=o[o.length-1])}return!0}function gr(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=cr(t,e,o,n);(0===s?r&&a||!r&&!a:r&&!a||!r&&a)&&hr(t,e,o,n),e=o}return e}function fr(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s)e=gr(t,e,i[s],n,r);return e}function pr(t,e){const i=[];let n=0,r=0;for(let s=0,o=e.length;s<o;++s){const o=e[s];if(cr(t,n,o,2)){if(0===i.length)continue;i[i.length-1].push(e[r])}else i.push(e.slice(r,s+1));r=s+1,n=o}return i}class mr extends wn{constructor(t,e,i){super(),this.ends_=[],this.flatInteriorPointRevision_=-1,this.flatInteriorPoint_=null,this.maxDelta_=-1,this.maxDeltaRevision_=-1,this.orientedRevision_=-1,this.orientedFlatCoordinates_=null,void 0!==e&&i?(this.setFlatCoordinates(e,t),this.ends_=i):this.setCoordinates(t,e)}appendLinearRing(t){this.flatCoordinates?u(this.flatCoordinates,t.getFlatCoordinates()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.ends_.push(this.flatCoordinates.length),this.changed()}clone(){const t=new mr(this.flatCoordinates.slice(),this.layout,this.ends_.slice());return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Kt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(Cn(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Pn(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!0,t,e,i,n))}containsXY(t,e){return Qn(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t,e)}getArea(){return Wn(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride)}getCoordinates(t){let e;return void 0!==t?(e=this.getOrientedFlatCoordinates().slice(),gr(e,0,this.ends_,this.stride,t)):e=this.flatCoordinates,zn(e,0,this.ends_,this.stride)}getEnds(){return this.ends_}getFlatInteriorPoint(){if(this.flatInteriorPointRevision_!=this.getRevision()){const t=me(this.getExtent());this.flatInteriorPoint_=er(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t,0),this.flatInteriorPointRevision_=this.getRevision()}return this.flatInteriorPoint_}getInteriorPoint(){return new Hn(this.getFlatInteriorPoint(),"XYM")}getLinearRingCount(){return this.ends_.length}getLinearRing(t){return t<0||this.ends_.length<=t?null:new Kn(this.flatCoordinates.slice(0===t?0:this.ends_[t-1],this.ends_[t]),this.layout)}getLinearRings(){const t=this.layout,e=this.flatCoordinates,i=this.ends_,n=[];let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s],a=new Kn(e.slice(r,o),t);n.push(a),r=o}return n}getOrientedFlatCoordinates(){if(this.orientedRevision_!=this.getRevision()){const t=this.flatCoordinates;ur(t,0,this.ends_,this.stride)?this.orientedFlatCoordinates_=t:(this.orientedFlatCoordinates_=t.slice(),this.orientedFlatCoordinates_.length=gr(this.orientedFlatCoordinates_,0,this.ends_,this.stride)),this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=jn(this.flatCoordinates,0,this.ends_,this.stride,Math.sqrt(t),e,0,i),new mr(e,"XY",i)}getType(){return"Polygon"}intersectsExtent(t){return ar(this.getOrientedFlatCoordinates(),0,this.ends_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,2),this.flatCoordinates||(this.flatCoordinates=[]);const i=Mn(this.flatCoordinates,0,t,this.stride,this.ends_);this.flatCoordinates.length=0===i.length?0:i[i.length-1],this.changed()}}var _r=mr;function yr(t,e,i,n){i=i||32;const r=[];for(let s=0;s<i;++s)u(r,Gi(t,e,2*Math.PI*s/i,n));return r.push(r[0],r[1]),new mr(r,"XY",[r.length])}function xr(t){const e=t[0],i=t[1],n=t[2],r=t[3],s=[e,i,e,r,n,r,n,i,e,i];return new mr(s,"XY",[s.length])}function vr(t,e,i){e=e||32;const n=t.getStride(),r=t.getLayout(),s=t.getCenter(),o=n*(e+1),a=new Array(o);for(let t=0;t<o;t+=n){a[t]=0,a[t+1]=0;for(let e=2;e<n;e++)a[t+e]=s[e]}const l=[a.length],h=new mr(a,r,l);return Sr(h,s,t.getRadius(),i),h}function Sr(t,e,i,n){const r=t.getFlatCoordinates(),s=t.getStride(),o=r.length/s-1,a=n||0;for(let t=0;t<=o;++t){const n=t*s,l=a+2*ui(t,o)*Math.PI/o;r[n]=e[0]+i*Math.cos(l),r[n+1]=e[1]+i*Math.sin(l)}t.changed()}const wr="accuracy",Tr="accuracyGeometry",Er="altitude",Cr="altitudeAccuracy",br="heading",Rr="position",Pr="projection",Ir="speed",Lr="tracking",Fr="trackingOptions";class Mr extends r{constructor(t){super(T),this.code=t.code,this.message=t.message}}var Ar=class extends Z{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.position_=null,this.transform_=Ui,this.watchId_=void 0,this.addChangeListener(Pr,this.handleProjectionChanged_),this.addChangeListener(Lr,this.handleTrackingChanged_),void 0!==t.projection&&this.setProjection(t.projection),void 0!==t.trackingOptions&&this.setTrackingOptions(t.trackingOptions),this.setTracking(void 0!==t.tracking&&t.tracking)}disposeInternal(){this.setTracking(!1),super.disposeInternal()}handleProjectionChanged_(){const t=this.getProjection();t&&(this.transform_=Ji(Vi("EPSG:4326"),t),this.position_&&this.set(Rr,this.transform_(this.position_)))}handleTrackingChanged_(){if("geolocation"in navigator){const t=this.getTracking();t&&void 0===this.watchId_?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):t||void 0===this.watchId_||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=void 0)}}positionChange_(t){const e=t.coords;this.set(wr,e.accuracy),this.set(Er,null===e.altitude?void 0:e.altitude),this.set(Cr,null===e.altitudeAccuracy?void 0:e.altitudeAccuracy),this.set(br,null===e.heading?void 0:ci(e.heading)),this.position_?(this.position_[0]=e.longitude,this.position_[1]=e.latitude):this.position_=[e.longitude,e.latitude];const i=this.transform_(this.position_);this.set(Rr,i),this.set(Ir,null===e.speed?void 0:e.speed);const n=yr(this.position_,e.accuracy);n.applyTransform(this.transform_),this.set(Tr,n),this.changed()}positionError_(t){this.dispatchEvent(new Mr(t))}getAccuracy(){return this.get(wr)}getAccuracyGeometry(){return this.get(Tr)||null}getAltitude(){return this.get(Er)}getAltitudeAccuracy(){return this.get(Cr)}getHeading(){return this.get(br)}getPosition(){return this.get(Rr)}getProjection(){return this.get(Pr)}getSpeed(){return this.get(Ir)}getTracking(){return this.get(Lr)}getTrackingOptions(){return this.get(Fr)}setProjection(t){this.set(Pr,Vi(t))}setTracking(t){this.set(Lr,t)}setTrackingOptions(t){this.set(Fr,t)}};var Or=class extends S{constructor(t,e,i,n){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state=n}changed(){this.dispatchEvent(w)}getExtent(){return this.extent}getImage(){return z()}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){z()}},Nr=0,Dr=1,Gr=2,kr=3,jr=4;function Br(t,e,i){const n=t;let r=!0,s=!1,o=!1;const a=[G(n,M,(function(){o=!0,s||e()}))];return n.src&&St?(s=!0,n.decode().then((function(){r&&e()})).catch((function(t){r&&(o?e():i())}))):a.push(G(n,T,i)),function(){r=!1,a.forEach(k)}}var Ur=class extends Or{constructor(t,e,i,n,r,s){super(t,e,i,Nr),this.src_=n,this.image_=new Image,null!==r&&(this.image_.crossOrigin=r),this.unlisten_=null,this.state=Nr,this.imageLoadFunction_=s}getImage(){return this.image_}handleImageError_(){this.state=kr,this.unlistenImage_(),this.changed()}handleImageLoad_(){void 0===this.resolution&&(this.resolution=ve(this.extent)/this.image_.height),this.state=Gr,this.unlistenImage_(),this.changed()}load(){this.state!=Nr&&this.state!=kr||(this.state=Dr,this.changed(),this.imageLoadFunction_(this,this.src_),this.unlisten_=Br(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}setImage(t){this.image_=t,this.resolution=ve(this.extent)/this.image_.height}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}};var zr=class extends Or{constructor(t,e,i,n,r){super(t,e,i,void 0!==r?Nr:Gr),this.loader_=void 0!==r?r:null,this.canvas_=n,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=kr):this.state=Gr,this.changed()}load(){this.state==Nr&&(this.state=Dr,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};function Xr(t,e,i,n){let r;return r=i&&i.length?i.shift():vt?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(r.width=t),e&&(r.height=e),r.getContext("2d",n)}function Vr(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function Wr(t){let e=t.offsetWidth;const i=getComputedStyle(t);return e+=parseInt(i.marginLeft,10)+parseInt(i.marginRight,10),e}function Zr(t){let e=t.offsetHeight;const i=getComputedStyle(t);return e+=parseInt(i.marginTop,10)+parseInt(i.marginBottom,10),e}function Yr(t,e){const i=e.parentNode;i&&i.replaceChild(t,e)}function Kr(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function qr(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function Hr(t,e){const i=t.childNodes;for(let n=0;;++n){const r=i[n],s=e[n];if(!r&&!s)break;r!==s&&(r?s?t.insertBefore(s,r):(t.removeChild(r),--n):t.appendChild(s))}}var $r=class extends at{constructor(t,e,i,n,r,s){super(t,e,s),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=r}getImage(){return this.image_}setImage(t){this.image_=t,this.state=tt,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=et,this.unlistenImage_(),this.image_=function(){const t=Xr(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=tt:this.state=it,this.unlistenImage_(),this.changed()}load(){this.state==et&&(this.state=J,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==J&&(this.state=Q,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=Br(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}};var Jr=class{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]<t)return!1;let i=e-3;for(;i>0&&this.points_[i+2]>t;)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const r=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,r),this.initialVelocity_=Math.sqrt(r*r+s*s)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}};const Qr=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,ts=/^([a-z]*)$|^hsla?\(.*\)$/i;function es(t){return"string"==typeof t?t:os(t)}function is(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}const ns=function(){const t={};let e=0;return function(i){let n;if(t.hasOwnProperty(i))n=t[i];else{if(e>=1024){let i=0;for(const n in t)0==(3&i++)&&(delete t[n],--e)}n=function(t){let e,i,n,r,s;ts.exec(t)&&(t=is(t));if(Qr.exec(t)){const o=t.length-1;let a;a=o<=4?1:2;const l=4===o||8===o;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),r=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(r=(r<<4)+r)),s=[e,i,n,r/255]}else t.startsWith("rgba(")?(s=t.slice(5,-1).split(",").map(Number),ss(s)):t.startsWith("rgb(")?(s=t.slice(4,-1).split(",").map(Number),s.push(1),ss(s)):ht(!1,14);return s}(i),t[i]=n,++e}return n}}();function rs(t){return Array.isArray(t)?t:ns(t)}function ss(t){return t[0]=si(t[0]+.5|0,0,255),t[1]=si(t[1]+.5|0,0,255),t[2]=si(t[2]+.5|0,0,255),t[3]=si(t[3],0,1),t}function os(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);return"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}function as(t){return ts.test(t)&&(t=is(t)),Qr.test(t)||t.startsWith("rgba(")||t.startsWith("rgb(")}class ls{constructor(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=hs(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const r=hs(t,e,i);this.cache_[r]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function hs(t,e,i){return e+":"+t+":"+(i?es(i):"null")}var cs=ls;const us=new ls;var ds="opacity",gs="visible",fs="extent",ps="zIndex",ms="maxResolution",_s="minResolution",ys="maxZoom",xs="minZoom",vs="source",Ss="map";var ws=class extends Z{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[ds]=void 0!==t.opacity?t.opacity:1,ht("number"==typeof e[ds],64),e[gs]=void 0===t.visible||t.visible,e[ps]=t.zIndex,e[ms]=void 0!==t.maxResolution?t.maxResolution:1/0,e[_s]=void 0!==t.minResolution?t.minResolution:0,e[xs]=void 0!==t.minZoom?t.minZoom:-1/0,e[ys]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=si(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return z()}getLayerStatesArray(t){return z()}getExtent(){return this.get(fs)}getMaxResolution(){return this.get(ms)}getMinResolution(){return this.get(_s)}getMinZoom(){return this.get(xs)}getMaxZoom(){return this.get(ys)}getOpacity(){return this.get(ds)}getSourceState(){return z()}getVisible(){return this.get(gs)}getZIndex(){return this.get(ps)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(fs,t)}setMaxResolution(t){this.set(ms,t)}setMinResolution(t){this.set(_s,t)}setMaxZoom(t){this.set(ys,t)}setMinZoom(t){this.set(xs,t)}setOpacity(t){ht("number"==typeof t,64),this.set(ds,t)}setVisible(t){this.set(gs,t)}setZIndex(t){this.set(ps,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},Ts="prerender",Es="postrender",Cs="precompose",bs="postcompose",Rs="rendercomplete";function Ps(t,e){if(!t.visible)return!1;const i=e.resolution;if(i<t.minResolution||i>=t.maxResolution)return!1;const n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}var Is=class extends ws{constructor(t){const e=Object.assign({},t);delete e.source,super(e),this.on,this.once,this.un,this.mapPrecomposeKey_=null,this.mapRenderKey_=null,this.sourceChangeKey_=null,this.renderer_=null,this.rendered=!1,t.render&&(this.render=t.render),t.map&&this.setMap(t.map),this.addChangeListener(vs,this.handleSourcePropertyChange_);const i=t.source?t.source:null;this.setSource(i)}getLayersArray(t){return(t=t||[]).push(this),t}getLayerStatesArray(t){return(t=t||[]).push(this.getLayerState()),t}getSource(){return this.get(vs)||null}getRenderSource(){return this.getSource()}getSourceState(){const t=this.getSource();return t?t.getState():"undefined"}handleSourceChange_(){this.changed()}handleSourcePropertyChange_(){this.sourceChangeKey_&&(k(this.sourceChangeKey_),this.sourceChangeKey_=null);const t=this.getSource();t&&(this.sourceChangeKey_=D(t,w,this.handleSourceChange_,this)),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):new Promise((t=>t([])))}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}render(t,e){const i=this.getRenderer();if(i.prepareFrame(t))return this.rendered=!0,i.renderFrame(t,e)}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(Ss,t)}getMapInternal(){return this.get(Ss)}setMap(t){this.mapPrecomposeKey_&&(k(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(k(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=D(t,Cs,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);ht(!e.some((function(t){return t.layer===i.layer})),67),e.push(i)}),this),this.mapRenderKey_=D(this,w,t.render,t),this.changed())}setSource(t){this.set(vs,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}};function Ls(t,e){us.expire()}var Fs=class extends o{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){z()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Ot(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Nt(n,i)}forEachFeatureAtCoordinate(t,e,i,n,r,s,o,a){let l;const h=e.viewState;function c(t,e,i,n){return r.call(s,e,t?i:null,n)}const u=h.projection,d=Fi(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&n){const t=Ee(u.getExtent());g.push([-t,0],[t,0])}const f=e.layerStatesArray,p=f.length,m=[],_=[];for(let n=0;n<g.length;n++)for(let r=p-1;r>=0;--r){const s=f[r],u=s.layer;if(u.hasRenderer()&&Ps(s,h)&&o.call(a,u)){const r=u.getRenderer(),o=u.getSource();if(r&&o){const a=o.getWrapX()?d:t,h=c.bind(null,s.managed);_[0]=a[0]+g[n][0],_[1]=a[1]+g[n][1],l=r.forEachFeatureAtCoordinate(_,e,i,h,m)}if(l)return l}}if(0===m.length)return;const y=1/m.length;return m.forEach(((t,e)=>t.distanceSq+=e*y)),m.sort(((t,e)=>t.distanceSq-e.distanceSq)),m.some((t=>l=t.callback(t.feature,t.layer,t.geometry))),l}hasFeatureAtCoordinate(t,e,i,n,r,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,n,f,this,r,s)}getMap(){return this.map_}renderFrame(t){z()}scheduleExpireIconCache(t){us.canExpireCache()&&t.postRenderFunctions.push(Ls)}};var Ms=class extends r{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}};const As="ol-hidden",Os="ol-selectable",Ns="ol-unselectable",Ds="ol-unsupported",Gs="ol-control",ks="ol-collapsed",js=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),Bs=["style","variant","weight","size","lineHeight","family"],Us=function(t){const e=t.match(js);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,n=Bs.length;t<n;++t){const n=e[t+1];void 0!==n&&(i[Bs[t]]=n)}return i.families=i.family.split(/,\s?/),i},zs="10px sans-serif",Xs="#000",Vs="round",Ws=[],Zs="round",Ys=10,Ks="#000",qs="center",Hs="middle",$s=[0,0,0,0],Js=new Z;let Qs,to=null;const eo={},io=function(){const t="32px ",e=["monospace","serif"],i=e.length,n="wmytzilWMYTZIL@#/&?$%10";let r,s;function o(r,o,a){let l=!0;for(let h=0;h<i;++h){const i=e[h];if(s=so(r+" "+o+" "+t+i,n),a!=i){const e=so(r+" "+o+" "+t+a+","+i,n);l=l&&e!=s}}return!!l}function a(){let t=!0;const e=Js.getKeys();for(let i=0,n=e.length;i<n;++i){const n=e[i];Js.get(n)<100&&(o.apply(this,n.split("\n"))?(x(eo),to=null,Qs=void 0,Js.set(n,100)):(Js.set(n,Js.get(n)+1,!0),t=!1))}t&&(clearInterval(r),r=void 0)}return function(t){const e=Us(t);if(!e)return;const i=e.families;for(let t=0,n=i.length;t<n;++t){const n=i[t],s=e.style+"\n"+e.weight+"\n"+n;void 0===Js.get(s)&&(Js.set(s,100,!0),o(e.style,e.weight,n)||(Js.set(s,0,!0),void 0===r&&(r=setInterval(a,32))))}}}(),no=function(){let t;return function(e){let i=eo[e];if(null==i){if(vt){const t=Us(e),n=ro(e,"Žg");i=(isNaN(Number(t.lineHeight))?1.2:Number(t.lineHeight))*(n.actualBoundingBoxAscent+n.actualBoundingBoxDescent)}else t||(t=document.createElement("div"),t.innerHTML="M",t.style.minHeight="0",t.style.maxHeight="none",t.style.height="auto",t.style.padding="0",t.style.border="none",t.style.position="absolute",t.style.display="block",t.style.left="-99999px"),t.style.font=e,document.body.appendChild(t),i=t.offsetHeight,document.body.removeChild(t);eo[e]=i}return i}}();function ro(t,e){return to||(to=Xr(1,1)),t!=Qs&&(to.font=t,Qs=to.font),to.measureText(e)}function so(t,e){return ro(t,e).width}function oo(t,e,i){if(e in i)return i[e];const n=e.split("\n").reduce(((e,i)=>Math.max(e,so(t,i))),0);return i[e]=n,n}function ao(t,e){const i=[],n=[],r=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),r.push(o),o=0,a+=l;continue}const d=e[h+1]||t.font,g=so(d,u);i.push(g),o+=g;const f=no(d);n.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:i,heights:n,lineWidths:r}}function lo(t,e,i,n,r,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.setTransform.apply(t,e),n.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,n=i.length;t<n;t+=2)Array.isArray(i[t+1])?e[i[t]].apply(e,i[t+1]):e[i[t]]=i[t+1]}(n,t)):c[0]<0||c[1]<0?(t.translate(l,h),t.scale(c[0],c[1]),t.drawImage(n,r,s,o,a,0,0,o,a)):t.drawImage(n,r,s,o,a,l,h,o*c[0],a*c[1]),t.restore()}var ho=class extends Fs{constructor(t){super(t),this.fontChangeListenerKey_=D(Js,s,t.redrawText.bind(t)),this.element_=document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className="ol-unselectable ol-layers";const i=t.getViewport();i.insertBefore(this.element_,i.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(t,e){const i=this.getMap();if(i.hasListener(t)){const n=new Ms(t,void 0,e);i.dispatchEvent(n)}}disposeInternal(){k(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent(Cs,t);const e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),i=t.viewState;this.children_.length=0;const n=[];let r=null;for(let s=0,o=e.length;s<o;++s){const o=e[s];t.layerIndex=s;const a=o.layer,l=a.getSourceState();if(!Ps(o,i)||"ready"!=l&&"undefined"!=l){a.unrender();continue}const h=a.render(t,r);h&&(h!==r&&(this.children_.push(h),r=h),"getDeclutter"in a&&n.push(a))}for(let e=n.length-1;e>=0;--e)n[e].renderDeclutter(t);Hr(this.element_,this.children_),this.dispatchRenderEvent(bs,t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}};class co extends r{constructor(t,e){super(t),this.layer=e}}const uo="layers";class go extends ws{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(uo,this.handleLayersChanged_),i?Array.isArray(i)?i=new $(i.slice(),{unique:!0}):ht("function"==typeof i.getArray,43):i=new $(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(k),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(D(t,Y,this.handleLayersAdd_,this),D(t,K,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(k);x(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t<i;t++){const i=e[t];this.registerLayerListeners_(i),this.dispatchEvent(new co("addlayer",i))}this.changed()}registerLayerListeners_(t){const e=[D(t,s,this.handleLayerChange_,this),D(t,w,this.handleLayerChange_,this)];t instanceof go&&e.push(D(t,"addlayer",this.handleLayerGroupAdd_,this),D(t,"removelayer",this.handleLayerGroupRemove_,this)),this.listenerKeys_[V(t)]=e}handleLayerGroupAdd_(t){this.dispatchEvent(new co("addlayer",t.layer))}handleLayerGroupRemove_(t){this.dispatchEvent(new co("removelayer",t.layer))}handleLayersAdd_(t){const e=t.element;this.registerLayerListeners_(e),this.dispatchEvent(new co("addlayer",e)),this.changed()}handleLayersRemove_(t){const e=t.element,i=V(e);this.listenerKeys_[i].forEach(k),delete this.listenerKeys_[i],this.dispatchEvent(new co("removelayer",e)),this.changed()}getLayers(){return this.get(uo)}setLayers(t){const e=this.getLayers();if(e){const t=e.getArray();for(let e=0,i=t.length;e<i;++e)this.dispatchEvent(new co("removelayer",t[e]))}this.set(uo,t)}getLayersArray(t){return t=void 0!==t?t:[],this.getLayers().forEach((function(e){e.getLayersArray(t)})),t}getLayerStatesArray(t){const e=void 0!==t?t:[],i=e.length;this.getLayers().forEach((function(t){t.getLayerStatesArray(e)}));const n=this.getLayerState();let r=n.zIndex;t||void 0!==n.zIndex||(r=0);for(let t=i,s=e.length;t<s;t++){const i=e[t];i.opacity*=n.opacity,i.visible=i.visible&&n.visible,i.maxResolution=Math.min(i.maxResolution,n.maxResolution),i.minResolution=Math.max(i.minResolution,n.minResolution),i.minZoom=Math.max(i.minZoom,n.minZoom),i.maxZoom=Math.min(i.maxZoom,n.maxZoom),void 0!==n.extent&&(void 0!==i.extent?i.extent=Se(i.extent,n.extent):i.extent=n.extent),void 0===i.zIndex&&(i.zIndex=r)}return e}getSourceState(){return"ready"}}var fo=go;var po=class extends r{constructor(t,e,i){super(t),this.map=e,this.frameState=void 0!==i?i:null}};var mo=class extends po{constructor(t,e,i,n,r,s){super(t,e,r),this.originalEvent=i,this.pixel_=null,this.coordinate_=null,this.dragging=void 0!==n&&n,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(t){this.pixel_=t}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(t){this.coordinate_=t}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}},_o={SINGLECLICK:"singleclick",CLICK:C,DBLCLICK:b,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"},yo="pointermove",xo="pointerdown",vo="pointerup",So="pointerout";var wo=class extends S{constructor(t,e){super(t),this.map_=t,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=void 0===e?1:e,this.down_=null;const i=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=i,this.pointerdownListenerKey_=D(i,xo,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=D(i,yo,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(O,this.boundHandleTouchMove_,!!wt&&{passive:!1})}emulateClick_(t){let e=new mo(_o.CLICK,this.map_,t);this.dispatchEvent(e),void 0!==this.clickTimeoutId_?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,e=new mo(_o.DBLCLICK,this.map_,t),this.dispatchEvent(e)):this.clickTimeoutId_=setTimeout(function(){this.clickTimeoutId_=void 0;const e=new mo(_o.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}.bind(this),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==_o.POINTERUP||e.type==_o.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=_o.POINTERDOWN&&e.type!=_o.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new mo(_o.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(k),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new mo(_o.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.down_={};for(const e in t){const i=t[e];this.down_[e]="function"==typeof i?m:i}if(0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(D(t,_o.POINTERMOVE,this.handlePointerMove_,this),D(t,_o.POINTERUP,this.handlePointerUp_,this),D(this.element_,_o.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(D(this.element_.getRootNode(),_o.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new mo(_o.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new mo(_o.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(k(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(O,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(k(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(k),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},To="postrender",Eo="movestart",Co="moveend",bo="loadstart",Ro="loadend",Po="layergroup",Io="size",Lo="target",Fo="view";const Mo=1/0;var Ao=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,x(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){ht(!(this.keyFunction_(t)in this.queuedElements_),31);const e=this.priorityFunction_(t);return e!=Mo&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,r=e[t],s=i[t],o=t;for(;t<n>>1;){const r=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=s<n&&i[s]<i[r]?s:r;e[t]=e[o],i[t]=i[o],t=o}e[t]=r,i[t]=s,this.siftDown_(o,t)}siftDown_(t,e){const i=this.elements_,n=this.priorities_,r=i[e],s=n[e];for(;e>t;){const t=this.getParentIndex_(e);if(!(n[t]>s))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=r,n[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const r=e.length;let s,o,a;for(o=0;o<r;++o)s=e[o],a=t(s),a==Mo?delete this.queuedElements_[this.keyFunction_(s)]:(i[n]=a,e[n++]=s);e.length=n,i.length=n,this.heapify_()}};var Oo=class extends Ao{constructor(t,e){super((function(e){return t.apply(null,e)}),(function(t){return t[0].getKey()})),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=e,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(t){const e=super.enqueue(t);if(e){t[0].addEventListener(w,this.boundHandleTileChange_)}return e}getTilesLoading(){return this.tilesLoading_}handleTileChange(t){const e=t.target,i=e.getState();if(i===tt||i===et||i===it){i!==et&&e.removeEventListener(w,this.boundHandleTileChange_);const t=e.getKey();t in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[t],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(t,e){let i,n,r,s=0;for(;this.tilesLoading_<t&&s<e&&this.getCount()>0;)n=this.dequeue()[0],r=n.getKey(),i=n.getState(),i!==J||r in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[r]=!0,++this.tilesLoading_,++s,n.load())}};function No(t,e,i,n,r){if(!t||!(i in t.wantedTiles))return Mo;if(!t.wantedTiles[i][e.getKey()])return Mo;const s=t.viewState.center,o=n[0]-s[0],a=n[1]-s[1];return 65536*Math.log(r)+Math.sqrt(o*o+a*a)/r}var Do=0,Go=1,ko={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};const jo=256;function Bo(t,e,i){return function(n,r,s,o,a){if(!n)return;if(!r&&!e)return n;const l=e?0:s[0]*r,h=e?0:s[1]*r,c=a?a[0]:0,u=a?a[1]:0;let d=t[0]+l/2+c,g=t[2]-l/2+c,f=t[1]+h/2+u,p=t[3]-h/2+u;d>g&&(d=(g+d)/2,g=d),f>p&&(f=(p+f)/2,p=f);let m=si(n[0],d,g),_=si(n[1],f,p);if(o&&i&&r){const t=30*r;m+=-t*Math.log(1+Math.max(0,d-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-g)/t),_+=-t*Math.log(1+Math.max(0,f-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-p)/t)}return[m,_]}}function Uo(t){return t}function zo(t,e,i,n){const r=Ee(e)/i[0],s=ve(e)/i[1];return n?Math.min(t,Math.max(r,s)):Math.min(t,Math.min(r,s))}function Xo(t,e,i){let n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(n=Math.max(n,i),n/=Math.log(1+50*Math.max(0,i/t-1))/50+1),si(n,i/2,2*e)}function Vo(t,e,i,n){return e=void 0===e||e,function(r,s,o,a){if(void 0!==r){const l=t[0],c=t[t.length-1],u=i?zo(l,i,o,n):l;if(a)return e?Xo(r,u,c):si(r,c,u);const d=Math.min(u,r),g=Math.floor(h(t,d,s));return t[g]>u&&g<t.length-1?t[g+1]:t[g]}}}function Wo(t,e,i,n,r,s){return n=void 0===n||n,i=void 0!==i?i:0,function(o,a,l,h){if(void 0!==o){const c=r?zo(e,r,l,s):e;if(h)return n?Xo(o,c,i):si(o,i,c);const u=1e-9,d=Math.ceil(Math.log(e/c)/Math.log(t)-u),g=-a*(.5-u)+.5,f=Math.min(c,o),p=Math.floor(Math.log(e/f)/Math.log(t)+g),m=Math.max(d,p);return si(e/Math.pow(t,m),i,c)}}}function Zo(t,e,i,n,r){return i=void 0===i||i,function(s,o,a,l){if(void 0!==s){const o=n?zo(t,n,a,r):t;return i&&l?Xo(s,o,e):si(s,e,o)}}}function Yo(t){if(void 0!==t)return 0}function Ko(t){if(void 0!==t)return t}function qo(t){const e=2*Math.PI/t;return function(t,i){return i?t:void 0!==t?t=Math.floor(t/e+.5)*e:void 0}}function Ho(t){return t=t||ci(5),function(e,i){return i?e:void 0!==e?Math.abs(e)<=t?0:e:void 0}}function $o(t,e){setTimeout((function(){t(e)}),0)}function Jo(t){if(void 0!==t.extent){const e=void 0===t.smoothExtentConstraint||t.smoothExtentConstraint;return Bo(t.extent,t.constrainOnlyCenter,e)}const e=Ki(t.projection,"EPSG:3857");if(!0!==t.multiWorld&&e.isGlobal()){const t=e.getExtent().slice();return t[0]=-1/0,t[2]=1/0,Bo(t,!1,!1)}return Uo}function Qo(t){let e,i,n;let r=void 0!==t.minZoom?t.minZoom:0,s=void 0!==t.maxZoom?t.maxZoom:28;const o=void 0!==t.zoomFactor?t.zoomFactor:2,a=void 0!==t.multiWorld&&t.multiWorld,l=void 0===t.smoothResolutionConstraint||t.smoothResolutionConstraint,h=void 0!==t.showFullExtent&&t.showFullExtent,c=Ki(t.projection,"EPSG:3857"),u=c.getExtent();let d=t.constrainOnlyCenter,g=t.extent;if(a||g||!c.isGlobal()||(d=!1,g=u),void 0!==t.resolutions){const o=t.resolutions;i=o[r],n=void 0!==o[s]?o[s]:o[o.length-1],e=t.constrainResolution?Vo(o,l,!d&&g,h):Zo(i,n,l,!d&&g,h)}else{const a=(u?Math.max(Ee(u),ve(u)):360*Ne.degrees/c.getMetersPerUnit())/jo/Math.pow(2,0),f=a/Math.pow(2,28);i=t.maxResolution,void 0!==i?r=0:i=a/Math.pow(o,r),n=t.minResolution,void 0===n&&(n=void 0!==t.maxZoom?void 0!==t.maxResolution?i/Math.pow(o,s):a/Math.pow(o,s):f),s=r+Math.floor(Math.log(i/n)/Math.log(o)),n=i/Math.pow(o,s-r),e=t.constrainResolution?Wo(o,i,n,l,!d&&g,h):Zo(i,n,l,!d&&g,h)}return{constraint:e,maxResolution:i,minResolution:n,minZoom:r,zoomFactor:o}}function ta(t){if(void 0===t.enableRotation||t.enableRotation){const e=t.constrainRotation;return void 0===e||!0===e?Ho():!1===e?Ko:"number"==typeof e?qo(e):Ko}return Yo}function ea(t){return!(t.sourceCenter&&t.targetCenter&&!Ei(t.sourceCenter,t.targetCenter))&&(t.sourceResolution===t.targetResolution&&t.sourceRotation===t.targetRotation)}function ia(t,e,i,n,r){const s=Math.cos(-r);let o=Math.sin(-r),a=t[0]*s-t[1]*o,l=t[1]*s+t[0]*o;a+=(e[0]/2-i[0])*n,l+=(i[1]-e[1]/2)*n,o=-o;return[a*s-l*o,l*s+a*o]}var na=class extends Z{constructor(t){super(),this.on,this.once,this.un,t=Object.assign({},t),this.hints_=[0,0],this.animations_=[],this.updateAnimationKey_,this.projection_=Ki(t.projection,"EPSG:3857"),this.viewportSize_=[100,100],this.targetCenter_=null,this.targetResolution_,this.targetRotation_,this.nextCenter_=null,this.nextResolution_,this.nextRotation_,this.cancelAnchor_=void 0,t.projection&&ji(),t.center&&(t.center=an(t.center,this.projection_)),t.extent&&(t.extent=hn(t.extent,this.projection_)),this.applyOptions_(t)}applyOptions_(t){const e=Object.assign({},t);for(const t in ko)delete e[t];this.setProperties(e,!0);const i=Qo(t);this.maxResolution_=i.maxResolution,this.minResolution_=i.minResolution,this.zoomFactor_=i.zoomFactor,this.resolutions_=t.resolutions,this.padding_=t.padding,this.minZoom_=i.minZoom;const n=Jo(t),r=i.constraint,s=ta(t);this.constraints_={center:n,resolution:r,rotation:s},this.setRotation(void 0!==t.rotation?t.rotation:0),this.setCenterInternal(void 0!==t.center?t.center:null),void 0!==t.resolution?this.setResolution(t.resolution):void 0!==t.zoom&&this.setZoom(t.zoom)}get padding(){return this.padding_}set padding(t){let e=this.padding_;this.padding_=t;const i=this.getCenter();if(i){const n=t||[0,0,0,0];e=e||[0,0,0,0];const r=this.getResolution(),s=r/2*(n[3]-e[3]+e[1]-n[1]),o=r/2*(n[0]-e[0]+e[2]-n[2]);this.setCenterInternal([i[0]+s,i[1]-o])}}getUpdatedOptions_(t){const e=this.getProperties();return void 0!==e.resolution?e.resolution=this.getResolution():e.zoom=this.getZoom(),e.center=this.getCenterInternal(),e.rotation=this.getRotation(),Object.assign({},e,t)}animate(t){this.isDef()&&!this.getAnimating()&&this.resolveConstraints(0);const e=new Array(arguments.length);for(let t=0;t<e.length;++t){let i=arguments[t];i.center&&(i=Object.assign({},i),i.center=an(i.center,this.getProjection())),i.anchor&&(i=Object.assign({},i),i.anchor=an(i.anchor,this.getProjection())),e[t]=i}this.animateInternal.apply(this,e)}animateInternal(t){let e,i=arguments.length;i>1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n<i&&!this.isDef();++n){const t=arguments[n];t.center&&this.setCenterInternal(t.center),void 0!==t.zoom?this.setZoom(t.zoom):t.resolution&&this.setResolution(t.resolution),void 0!==t.rotation&&this.setRotation(t.rotation)}if(n===i)return void(e&&$o(e,!0));let r=Date.now(),s=this.targetCenter_.slice(),o=this.targetResolution_,a=this.targetRotation_;const l=[];for(;n<i;++n){const t=arguments[n],i={start:r,complete:!1,anchor:t.anchor,duration:void 0!==t.duration?t.duration:1e3,easing:t.easing||st,callback:e};if(t.center&&(i.sourceCenter=s,i.targetCenter=t.center.slice(),s=i.targetCenter),void 0!==t.zoom?(i.sourceResolution=o,i.targetResolution=this.getResolutionForZoom(t.zoom),o=i.targetResolution):t.resolution&&(i.sourceResolution=o,i.targetResolution=t.resolution,o=i.targetResolution),void 0!==t.rotation){i.sourceRotation=a;const e=ui(t.rotation-a+Math.PI,2*Math.PI)-Math.PI;i.targetRotation=a+e,a=i.targetRotation}ea(i)?i.complete=!0:r+=i.duration,l.push(i)}this.animations_.push(l),this.setHint(Do,1),this.updateAnimations_()}getAnimating(){return this.hints_[Do]>0}getInteracting(){return this.hints_[Go]>0}cancelAnimations(){let t;this.setHint(Do,-this.hints_[Do]);for(let e=0,i=this.animations_.length;e<i;++e){const i=this.animations_[e];if(i[0].callback&&$o(i[0].callback,!1),!t)for(let e=0,n=i.length;e<n;++e){const n=i[e];if(!n.complete){t=n.anchor;break}}}this.animations_.length=0,this.cancelAnchor_=t,this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN}updateAnimations_(){if(void 0!==this.updateAnimationKey_&&(cancelAnimationFrame(this.updateAnimationKey_),this.updateAnimationKey_=void 0),!this.getAnimating())return;const t=Date.now();let e=!1;for(let i=this.animations_.length-1;i>=0;--i){const n=this.animations_[i];let r=!0;for(let i=0,s=n.length;i<s;++i){const s=n[i];if(s.complete)continue;const o=t-s.start;let a=s.duration>0?o/s.duration:1;a>=1?(s.complete=!0,a=1):r=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],n=s.targetCenter[1];this.nextCenter_=s.targetCenter;const r=t+l*(i-t),o=e+l*(n-e);this.targetCenter_=[r,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?ui(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(r){this.animations_[i]=null,this.setHint(Do,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&$o(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],Ci(i,t-this.getRotation()),xi(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),r=this.getResolution();if(void 0!==n&&void 0!==r){i=[e[0]-t*(e[0]-n[0])/r,e[1]-t*(e[1]-n[1])/r]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?on(t,this.getProjection()):t}getCenterInternal(){return this.get(ko.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return ln(this.calculateExtentInternal(t),this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();ht(e,1);const i=this.getResolution();ht(void 0!==i,2);const n=this.getRotation();return ht(void 0!==n,3),ye(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(ko.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(hn(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=Ee(t)/e[0],n=ve(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*n)}}getRotation(){return this.get(ko.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(i/n)/e;return function(t){return Math.log(i/t)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const r=this.padding_;if(r){const t=this.getViewportSizeMinusPadding_();n=ia(n,this.getViewportSize_(),[t[0]/2+r[3],t[1]/2+r[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const r=h(this.resolutions_,t,1);n=r,e=this.resolutions_[r],i=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=si(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,si(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(ht(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)){ht(!be(t),25);i=xr(hn(t,this.getProjection()))}else if("Circle"===t.getType()){const e=hn(t.getExtent(),this.getProjection());i=xr(e),i.rotate(this.getRotation(),me(e))}else{const e=sn();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),r=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=r.length;t<e;t+=s){const e=r[t]*i-r[t+1]*n,s=r[t]*n+r[t+1]*i;o=Math.min(o,e),a=Math.min(a,s),l=Math.max(l,e),h=Math.max(h,s)}return[o,a,l,h]}fitInternal(t,e){let i=(e=e||{}).size;i||(i=this.getViewportSizeMinusPadding_());const n=void 0!==e.padding?e.padding:[0,0,0,0],r=void 0!==e.nearest&&e.nearest;let s;s=void 0!==e.minResolution?e.minResolution:void 0!==e.maxZoom?this.getResolutionForZoom(e.maxZoom):0;const o=this.rotatedExtentForGeometry(t);let a=this.getResolutionForExtentInternal(o,[i[0]-n[1]-n[3],i[1]-n[0]-n[2]]);a=isNaN(a)?s:Math.max(a,s),a=this.getConstrainedResolution(a,r?0:1);const l=this.getRotation(),h=Math.sin(l),c=Math.cos(l),u=me(o);u[0]+=(n[1]-n[3])/2*a,u[1]+=(n[0]-n[2])/2*a;const d=u[0]*c-u[1]*h,g=u[1]*c+u[0]*h,f=this.getConstrainedCenter([d,g],a),p=e.callback?e.callback:m;void 0!==e.duration?this.animateInternal({resolution:a,center:f,duration:e.duration,easing:e.easing},p):(this.targetResolution_=a,this.targetCenter_=f,this.applyTargetState_(!1,!0),$o(p,!0))}centerOn(t,e,i){this.centerOnInternal(an(t,this.getProjection()),e,i)}centerOnInternal(t,e,i){this.setCenterInternal(ia(t,e,i,this.getResolution(),this.getRotation()))}calculateCenterShift(t,e,i,n){let r;const s=this.padding_;if(s&&t){const o=this.getViewportSizeMinusPadding_(-i),a=ia(t,n,[o[0]/2+s[3],o[1]/2+s[0]],e,i);r=[t[0]-a[0],t[1]-a[1]]}return r}isDef(){return!!this.getCenterInternal()&&void 0!==this.getResolution()}adjustCenter(t){const e=on(this.targetCenter_,this.getProjection());this.setCenter([e[0]+t[0],e[1]+t[1]])}adjustCenterInternal(t){const e=this.targetCenter_;this.setCenterInternal([e[0]+t[0],e[1]+t[1]])}adjustResolution(t,e){e=e&&an(e,this.getProjection()),this.adjustResolutionInternal(t,e)}adjustResolutionInternal(t,e){const i=this.getAnimating()||this.getInteracting(),n=this.getViewportSize_(this.getRotation()),r=this.constraints_.resolution(this.targetResolution_*t,0,n,i);e&&(this.targetCenter_=this.calculateCenterZoom(r,e)),this.targetResolution_*=t,this.applyTargetState_()}adjustZoom(t,e){this.adjustResolution(Math.pow(this.zoomFactor_,-t),e)}adjustRotation(t,e){e&&(e=an(e,this.getProjection())),this.adjustRotationInternal(t,e)}adjustRotationInternal(t,e){const i=this.getAnimating()||this.getInteracting(),n=this.constraints_.rotation(this.targetRotation_+t,i);e&&(this.targetCenter_=this.calculateCenterRotate(n,e)),this.targetRotation_+=t,this.applyTargetState_()}setCenter(t){this.setCenterInternal(t?an(t,this.getProjection()):t)}setCenterInternal(t){this.targetCenter_=t,this.applyTargetState_()}setHint(t,e){return this.hints_[t]+=e,this.changed(),this.hints_[t]}setResolution(t){this.targetResolution_=t,this.applyTargetState_()}setRotation(t){this.targetRotation_=t,this.applyTargetState_()}setZoom(t){this.setResolution(this.getResolutionForZoom(t))}applyTargetState_(t,e){const i=this.getAnimating()||this.getInteracting()||e,n=this.constraints_.rotation(this.targetRotation_,i),r=this.getViewportSize_(n),s=this.constraints_.resolution(this.targetResolution_,0,r,i),o=this.constraints_.center(this.targetCenter_,s,r,i,this.calculateCenterShift(this.targetCenter_,s,n,r));this.get(ko.ROTATION)!==n&&this.set(ko.ROTATION,n),this.get(ko.RESOLUTION)!==s&&(this.set(ko.RESOLUTION,s),this.set("zoom",this.getZoom(),!0)),o&&this.get(ko.CENTER)&&Ei(this.get(ko.CENTER),o)||this.set(ko.CENTER,o),this.getAnimating()&&!t&&this.cancelAnimations(),this.cancelAnchor_=void 0}resolveConstraints(t,e,i){t=void 0!==t?t:200;const n=e||0,r=this.constraints_.rotation(this.targetRotation_),s=this.getViewportSize_(r),o=this.constraints_.resolution(this.targetResolution_,n,s),a=this.constraints_.center(this.targetCenter_,o,s,!1,this.calculateCenterShift(this.targetCenter_,o,r,s));if(0===t&&!this.cancelAnchor_)return this.targetResolution_=o,this.targetRotation_=r,this.targetCenter_=a,void this.applyTargetState_();i=i||(0===t?this.cancelAnchor_:void 0),this.cancelAnchor_=void 0,this.getResolution()===o&&this.getRotation()===r&&this.getCenterInternal()&&Ei(this.getCenterInternal(),a)||(this.getAnimating()&&this.cancelAnimations(),this.animateInternal({rotation:r,center:a,resolution:o,duration:t,easing:rt,anchor:i}))}beginInteraction(){this.resolveConstraints(0),this.setHint(Go,1)}endInteraction(t,e,i){i=i&&an(i,this.getProjection()),this.endInteractionInternal(t,e,i)}endInteractionInternal(t,e,i){this.setHint(Go,-1),this.resolveConstraints(t,e,i)}getConstrainedCenter(t,e){const i=this.getViewportSize_(this.getRotation());return this.constraints_.center(t,e||this.getResolution(),i)}getConstrainedZoom(t,e){const i=this.getResolutionForZoom(t);return this.getZoomForResolution(this.getConstrainedResolution(i,e))}getConstrainedResolution(t,e){e=e||0;const i=this.getViewportSize_(this.getRotation());return this.constraints_.resolution(t,e,i)}};var ra=class extends Z{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){Kr(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&Kr(this.element);for(let t=0,e=this.listenerKeys.length;t<e;++t)k(this.listenerKeys[t]);if(this.listenerKeys.length=0,this.map_=t,t){(this.target_?this.target_:t.getOverlayContainerStopEvent()).appendChild(this.element),this.render!==m&&this.listenerKeys.push(D(t,To,this.render,this)),t.render()}}render(t){}setTarget(t){this.target_="string"==typeof t?document.getElementById(t):t}};var sa=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.ulElement_=document.createElement("ul"),this.collapsed_=void 0===t.collapsed||t.collapsed,this.userCollapsed_=this.collapsed_,this.overrideCollapsible_=void 0!==t.collapsible,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1);const e=void 0!==t.className?t.className:"ol-attribution",i=void 0!==t.tipLabel?t.tipLabel:"Attributions",n=void 0!==t.expandClassName?t.expandClassName:e+"-expand",r=void 0!==t.collapseLabel?t.collapseLabel:"›",s=void 0!==t.collapseClassName?t.collapseClassName:e+"-collapse";"string"==typeof r?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r,this.collapseLabel_.className=s):this.collapseLabel_=r;const o=void 0!==t.label?t.label:"i";"string"==typeof o?(this.label_=document.createElement("span"),this.label_.textContent=o,this.label_.className=n):this.label_=o;const a=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_;this.toggleButton_=document.createElement("button"),this.toggleButton_.setAttribute("type","button"),this.toggleButton_.setAttribute("aria-expanded",String(!this.collapsed_)),this.toggleButton_.title=i,this.toggleButton_.appendChild(a),this.toggleButton_.addEventListener(C,this.handleClick_.bind(this),!1);const l=e+" "+"ol-unselectable "+Gs+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=l,h.appendChild(this.toggleButton_),h.appendChild(this.ulElement_),this.renderedAttributions_=[],this.renderedVisible_=!0}collectSourceAttributions_(t){const e={},i=[];let n=!0;const r=t.layerStatesArray;for(let s=0,o=r.length;s<o;++s){const o=r[s];if(!Ps(o,t.viewState))continue;const a=o.layer.getSource();if(!a)continue;const l=a.getAttributions();if(!l)continue;const h=l(t);if(h)if(n=n&&!1!==a.getAttributionsCollapsible(),Array.isArray(h))for(let t=0,n=h.length;t<n;++t)h[t]in e||(i.push(h[t]),e[h[t]]=!0);else h in e||(i.push(h),e[h]=!0)}return this.overrideCollapsible_||this.setCollapsible(n),i}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!d(e,this.renderedAttributions_)){qr(this.ulElement_);for(let t=0,i=e.length;t<i;++t){const i=document.createElement("li");i.innerHTML=e[t],this.ulElement_.appendChild(i)}this.renderedAttributions_=e}}handleClick_(t){t.preventDefault(),this.handleToggle_(),this.userCollapsed_=this.collapsed_}handleToggle_(){this.element.classList.toggle(ks),this.collapsed_?Yr(this.collapseLabel_,this.label_):Yr(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_,this.toggleButton_.setAttribute("aria-expanded",String(!this.collapsed_))}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),this.userCollapsed_&&this.handleToggle_())}setCollapsed(t){this.userCollapsed_=t,this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}render(t){this.updateElement_(t.frameState)}};var oa=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target});const e=void 0!==t.className?t.className:"ol-rotate",i=void 0!==t.label?t.label:"⇧",n=void 0!==t.compassClassName?t.compassClassName:"ol-compass";this.label_=null,"string"==typeof i?(this.label_=document.createElement("span"),this.label_.className=n,this.label_.textContent=i):(this.label_=i,this.label_.classList.add(n));const r=t.tipLabel?t.tipLabel:"Reset rotation",s=document.createElement("button");s.className=e+"-reset",s.setAttribute("type","button"),s.title=r,s.appendChild(this.label_),s.addEventListener(C,this.handleClick_.bind(this),!1);const o=e+" "+"ol-unselectable "+Gs,a=this.element;a.className=o,a.appendChild(s),this.callResetNorth_=t.resetNorth?t.resetNorth:void 0,this.duration_=void 0!==t.duration?t.duration:250,this.autoHide_=void 0===t.autoHide||t.autoHide,this.rotation_=void 0,this.autoHide_&&this.element.classList.add(As)}handleClick_(t){t.preventDefault(),void 0!==this.callResetNorth_?this.callResetNorth_():this.resetNorth_()}resetNorth_(){const t=this.getMap().getView();if(!t)return;const e=t.getRotation();void 0!==e&&(this.duration_>0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:rt}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(As);t||0!==i?t&&0!==i&&this.element.classList.remove(As):this.element.classList.add(As)}this.label_.style.transform=t}this.rotation_=i}};var aa=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",r=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=n,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(C,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(C,this.handleClick_.bind(this,-i),!1);const u=e+" "+"ol-unselectable "+Gs,d=this.element;d.className=u,d.appendChild(h),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const n=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:rt})):e.setZoom(n)}}};function la(t){t=t||{};const e=new $;(void 0===t.zoom||t.zoom)&&e.push(new aa(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new oa(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new sa(t.attributionOptions)),e}var ha="active";function ca(t,e,i){const n=t.getCenterInternal();if(n){const r=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:ot,center:t.getConstrainedCenter(r)})}}function ua(t,e,i,n){const r=t.getZoom();if(void 0===r)return;const s=t.getConstrainedZoom(r+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:rt})}var da=class extends Z{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(ha)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(ha,t)}setMap(t){this.map_=t}};var ga=class extends da{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==_o.DBLCLICK){const i=t.originalEvent,n=t.map,r=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;ua(n.getView(),s,r,this.duration_),i.preventDefault(),e=!0}return!e}};function fa(t){const e=t.length;let i=0,n=0;for(let r=0;r<e;r++)i+=t[r].clientX,n+=t[r].clientY;return[i/e,n/e]}var pa=class extends da{constructor(t){super(t=t||{}),t.handleDownEvent&&(this.handleDownEvent=t.handleDownEvent),t.handleDragEvent&&(this.handleDragEvent=t.handleDragEvent),t.handleMoveEvent&&(this.handleMoveEvent=t.handleMoveEvent),t.handleUpEvent&&(this.handleUpEvent=t.handleUpEvent),t.stopDown&&(this.stopDown=t.stopDown),this.handlingDownUpSequence=!1,this.targetPointers=[]}getPointerCount(){return this.targetPointers.length}handleDownEvent(t){return!1}handleDragEvent(t){}handleEvent(t){if(!t.originalEvent)return!0;let e=!1;if(this.updateTrackedPointers_(t),this.handlingDownUpSequence){if(t.type==_o.POINTERDRAG)this.handleDragEvent(t),t.originalEvent.preventDefault();else if(t.type==_o.POINTERUP){const e=this.handleUpEvent(t);this.handlingDownUpSequence=e&&this.targetPointers.length>0}}else if(t.type==_o.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==_o.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function ma(t){const e=arguments;return function(t){let i=!0;for(let n=0,r=e.length;n<r&&(i=i&&e[n](t),i);++n);return i}}const _a=function(t){const e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},ya=function(t){const e=t.originalEvent;return e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},xa=function(t){const e=t.map.getTargetElement(),i=t.map.getOwnerDocument().activeElement;return e.contains(i)},va=function(t){return!t.map.getTargetElement().hasAttribute("tabindex")||xa(t)},Sa=f,wa=function(t){const e=t.originalEvent;return 0==e.button&&!(_t&&yt&&e.ctrlKey)},Ta=p,Ea=function(t){return t.type==_o.SINGLECLICK},Ca=function(t){const e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&!e.shiftKey},ba=function(t){const e=t.originalEvent;return!e.altKey&&!(e.metaKey||e.ctrlKey)&&e.shiftKey},Ra=function(t){const e=t.originalEvent,i=e.target.tagName;return"INPUT"!==i&&"SELECT"!==i&&"TEXTAREA"!==i&&!e.target.isContentEditable},Pa=function(t){const e=t.originalEvent;return ht(void 0!==e,56),"mouse"==e.pointerType},Ia=function(t){const e=t.originalEvent;return ht(void 0!==e,56),e.isPrimary&&0===e.button};var La=class extends pa{constructor(t){super({stopDown:p}),t=t||{},this.kinetic_=t.kinetic,this.lastCentroid=null,this.lastPointersCount_,this.panning_=!1;const e=t.condition?t.condition:ma(Ca,Ia);this.condition_=t.onFocusOnly?ma(va,e):e,this.noKinetic_=!1}handleDragEvent(t){this.panning_||(this.panning_=!0,this.getMap().getView().beginInteraction());const e=this.targetPointers,i=fa(e);if(e.length==this.lastPointersCount_){if(this.kinetic_&&this.kinetic_.update(i[0],i[1]),this.lastCentroid){const e=[this.lastCentroid[0]-i[0],i[1]-this.lastCentroid[1]],n=t.map.getView();bi(e,n.getResolution()),Ci(e,n.getRotation()),n.adjustCenterInternal(e)}}else this.kinetic_&&this.kinetic_.begin();this.lastCentroid=i,this.lastPointersCount_=e.length,t.originalEvent.preventDefault()}handleUpEvent(t){const e=t.map,i=e.getView();if(0===this.targetPointers.length){if(!this.noKinetic_&&this.kinetic_&&this.kinetic_.end()){const t=this.kinetic_.getDistance(),n=this.kinetic_.getAngle(),r=i.getCenterInternal(),s=e.getPixelFromCoordinateInternal(r),o=e.getCoordinateFromPixelInternal([s[0]-t*Math.cos(n),s[1]-t*Math.sin(n)]);i.animateInternal({center:i.getConstrainedCenter(o),duration:500,easing:rt})}return this.panning_&&(this.panning_=!1,i.endInteraction()),!1}return this.kinetic_&&this.kinetic_.begin(),this.lastCentroid=null,!0}handleDownEvent(t){if(this.targetPointers.length>0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};var Fa=class extends pa{constructor(t){t=t||{},super({stopDown:p}),this.condition_=t.condition?t.condition:ya,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!Pa(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===Yo)return;const n=e.getSize(),r=t.pixel,s=Math.atan2(n[1]/2-r[1],r[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!Pa(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!Pa(t))return!1;if(wa(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}};var Ma=class extends o{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new _r([i])}getGeometry(){return this.geometry_}};const Aa="boxstart",Oa="boxdrag",Na="boxend",Da="boxcancel";class Ga extends r{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}var ka=class extends pa{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new Ma(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:wa,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],r=i[1]-e[1];return n*n+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new Ga(Oa,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new Ga(e?Na:Da,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Ga(Aa,t.coordinate,t)),!0)}onBoxEnd(t){}};var ja=class extends ka{constructor(t){super({condition:(t=t||{}).condition?t.condition:ba,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),n=e.getResolutionForExtentInternal(t),r=e.getResolution()/n;i=i.clone(),i.scale(r*r)}e.fitInternal(i,{duration:this.duration_,easing:rt})}},Ba=37,Ua=38,za=39,Xa=40;var Va=class extends da{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Ca(t)&&Ra(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==L){const i=t.originalEvent,n=i.keyCode;if(this.condition_(t)&&(n==Xa||n==Ba||n==za||n==Ua)){const r=t.map.getView(),s=r.getResolution()*this.pixelDelta_;let o=0,a=0;n==Xa?a=-s:n==Ba?o=-s:n==za?o=s:a=s;const l=[o,a];Ci(l,r.getRotation()),ca(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}};var Wa=class extends da{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:Ra,this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==L||t.type==F){const i=t.originalEvent,n=i.charCode;if(this.condition_(t)&&(n=="+".charCodeAt(0)||n=="-".charCodeAt(0))){const r=t.map,s=n=="+".charCodeAt(0)?this.delta_:-this.delta_;ua(r.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}};var Za=class extends da{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Sa;this.condition_=t.onFocusOnly?ma(va,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==N)return!0;const e=t.map,i=t.originalEvent;let n;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==N&&(n=i.deltaY,ft&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(n/=xt),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(n*=40)),0===n)return!1;this.lastDelta_=n;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(n)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-n/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=n;const o=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-si(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),ua(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}};var Ya=class extends pa{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=p),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],r=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=r;const s=t.map,o=s.getView();if(o.getConstraints().rotation===Yo)return;const a=s.getViewport().getBoundingClientRect(),l=fa(this.targetPointers);l[0]-=a.left,l[1]-=a.top,this.anchor_=s.getCoordinateFromPixelInternal(l),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};var Ka=class extends pa{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=p),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],r=i.clientX-n.clientX,s=i.clientY-n.clientY,o=Math.sqrt(r*r+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e);const h=a.getViewport().getBoundingClientRect(),c=fa(this.targetPointers);c[0]-=h.left,c[1]-=h.top,this.anchor_=a.getCoordinateFromPixelInternal(c),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function qa(t){t=t||{};const e=new $,i=new Jr(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new Fa);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new ga({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new La({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new Ya);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new Ka({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new Va),e.push(new Wa({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new Za({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new ja({duration:t.zoomDuration})),e}function Ha(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]+2*e,i[1]=t[1]+2*e,i}function $a(t){return t[0]>0&&t[1]>0}function Ja(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function Qa(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}function tl(t){t instanceof Is?t.setMapInternal(null):t instanceof fo&&t.getLayers().forEach(tl)}function el(t,e){if(t instanceof Is)t.setMapInternal(e);else if(t instanceof fo){const i=t.getLayers().getArray();for(let t=0,n=i.length;t<n;++t)el(i[t],e)}}var il=class extends Z{constructor(t){super(),t=t||{},this.on,this.once,this.un;const e=function(t){let e=null;void 0!==t.keyboardEventTarget&&(e="string"==typeof t.keyboardEventTarget?document.getElementById(t.keyboardEventTarget):t.keyboardEventTarget);const i={},n=t.layers&&"function"==typeof t.layers.getLayers?t.layers:new fo({layers:t.layers});let r,s,o;i[Po]=n,i[Lo]=t.target,i[Fo]=t.view instanceof na?t.view:new na,void 0!==t.controls&&(Array.isArray(t.controls)?r=new $(t.controls.slice()):(ht("function"==typeof t.controls.getArray,47),r=t.controls));void 0!==t.interactions&&(Array.isArray(t.interactions)?s=new $(t.interactions.slice()):(ht("function"==typeof t.interactions.getArray,48),s=t.interactions));void 0!==t.overlays?Array.isArray(t.overlays)?o=new $(t.overlays.slice()):(ht("function"==typeof t.overlays.getArray,49),o=t.overlays):o=new $;return{controls:r,interactions:s,keyboardEventTarget:e,overlays:o,values:i}}(t);this.renderComplete_,this.loaded_=!0,this.boundHandleBrowserEvent_=this.handleBrowserEvent.bind(this),this.maxTilesLoading_=void 0!==t.maxTilesLoading?t.maxTilesLoading:16,this.pixelRatio_=void 0!==t.pixelRatio?t.pixelRatio:xt,this.postRenderTimeoutHandle_,this.animationDelayKey_,this.animationDelay_=this.animationDelay_.bind(this),this.coordinateToPixelTransform_=[1,0,0,1,0,0],this.pixelToCoordinateTransform_=[1,0,0,1,0,0],this.frameIndex_=0,this.frameState_=null,this.previousExtent_=null,this.viewPropertyListenerKey_=null,this.viewChangeListenerKey_=null,this.layerGroupPropertyListenerKeys_=null,this.viewport_=document.createElement("div"),this.viewport_.className="ol-viewport"+("ontouchstart"in window?" ol-touch":""),this.viewport_.style.position="relative",this.viewport_.style.overflow="hidden",this.viewport_.style.width="100%",this.viewport_.style.height="100%",this.overlayContainer_=document.createElement("div"),this.overlayContainer_.style.position="absolute",this.overlayContainer_.style.zIndex="0",this.overlayContainer_.style.width="100%",this.overlayContainer_.style.height="100%",this.overlayContainer_.style.pointerEvents="none",this.overlayContainer_.className="ol-overlaycontainer",this.viewport_.appendChild(this.overlayContainer_),this.overlayContainerStopEvent_=document.createElement("div"),this.overlayContainerStopEvent_.style.position="absolute",this.overlayContainerStopEvent_.style.zIndex="0",this.overlayContainerStopEvent_.style.width="100%",this.overlayContainerStopEvent_.style.height="100%",this.overlayContainerStopEvent_.style.pointerEvents="none",this.overlayContainerStopEvent_.className="ol-overlaycontainer-stopevent",this.viewport_.appendChild(this.overlayContainerStopEvent_),this.mapBrowserEventHandler_=null,this.moveTolerance_=t.moveTolerance,this.keyboardEventTarget_=e.keyboardEventTarget,this.targetChangeHandlerKeys_=null,this.controls=e.controls||la(),this.interactions=e.interactions||qa({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Oo(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Po,this.handleLayerGroupChanged_),this.addChangeListener(Fo,this.handleViewChanged_),this.addChangeListener(Io,this.handleSizeChanged_),this.addChangeListener(Lo,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof na||t.view.then((function(t){i.setView(new na(t))})),this.controls.addEventListener(Y,function(t){t.element.setMap(this)}.bind(this)),this.controls.addEventListener(K,function(t){t.element.setMap(null)}.bind(this)),this.interactions.addEventListener(Y,function(t){t.element.setMap(this)}.bind(this)),this.interactions.addEventListener(K,function(t){t.element.setMap(null)}.bind(this)),this.overlays_.addEventListener(Y,function(t){this.addOverlayInternal_(t.element)}.bind(this)),this.overlays_.addEventListener(K,function(t){const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}.bind(this)),this.controls.forEach(function(t){t.setMap(this)}.bind(this)),this.interactions.forEach(function(t){t.setMap(this)}.bind(this)),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){el(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:f,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,r,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof fo?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:f,r=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,r,s,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i="changedTouches"in t?t.changedTouches[0]:t;return[i.clientX-e.left,i.clientY-e.top]}getTarget(){return this.get(Lo)}getTargetElement(){const t=this.getTarget();return void 0!==t?"string"==typeof t?document.getElementById(t):t:null}getCoordinateFromPixel(t){return on(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?It(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Po)}setLayers(t){const e=this.getLayerGroup();if(t instanceof $)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e<i;++e){const i=t[e];if(!i.visible)continue;const n=i.layer.getRenderer();if(n&&!n.ready)return!0;const r=i.layer.getSource();if(r&&r.loading)return!0}return!1}getPixelFromCoordinate(t){const e=an(t,this.getView().getProjection());return this.getPixelFromCoordinateInternal(e)}getPixelFromCoordinateInternal(t){const e=this.frameState_;return e?It(e.coordinateToPixelTransform,t.slice(0,2)):null}getRenderer(){return this.renderer_}getSize(){return this.get(Io)}getView(){return this.get(Fo)}getViewport(){return this.viewport_}getOverlayContainer(){return this.overlayContainer_}getOverlayContainerStopEvent(){return this.overlayContainerStopEvent_}getOwnerDocument(){const t=this.getTargetElement();return t?t.ownerDocument:document}getTilePriority(t,e,i,n){return No(this.frameState_,t,e,i,n)}handleBrowserEvent(t,e){e=e||t.type;const i=new mo(e,this,t);this.handleMapBrowserEvent(i)}handleMapBrowserEvent(t){if(!this.frameState_)return;const e=t.originalEvent,i=e.type;if(i===xo||i===N||i===L){const t=this.getOwnerDocument(),i=this.viewport_.getRootNode?this.viewport_.getRootNode():t,n=e.target;if(this.overlayContainerStopEvent_.contains(n)||!(i===t?t.documentElement:i).contains(n))return}if(t.frameState=this.frameState_,!1!==this.dispatchEvent(t)){const e=this.getInteractions().getArray().slice();for(let i=e.length-1;i>=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;if(!n.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Do]||e[Go]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading()<i&&(e.reprioritize(),e.loadMoreTiles(i,n))}t&&this.renderer_&&!t.animate&&(!0===this.renderComplete_?(this.hasListener(Rs)&&this.renderer_.dispatchRenderEvent(Rs,t),!1===this.loaded_&&(this.loaded_=!0,this.dispatchEvent(new po(Ro,this,t)))):!0===this.loaded_&&(this.loaded_=!1,this.dispatchEvent(new po(bo,this,t))));const i=this.postRenderFunctions_;for(let e=0,n=i.length;e<n;++e)i[e](this,t);i.length=0}handleSizeChanged_(){this.getView()&&!this.getView().getAnimating()&&this.getView().resolveConstraints(0),this.render()}handleTargetChanged_(){if(this.mapBrowserEventHandler_){for(let t=0,e=this.targetChangeHandlerKeys_.length;t<e;++t)k(this.targetChangeHandlerKeys_[t]);this.targetChangeHandlerKeys_=null,this.viewport_.removeEventListener(E,this.boundHandleBrowserEvent_),this.viewport_.removeEventListener(N,this.boundHandleBrowserEvent_),this.mapBrowserEventHandler_.dispose(),this.mapBrowserEventHandler_=null,Kr(this.viewport_)}const t=this.getTargetElement();if(t){t.appendChild(this.viewport_),this.renderer_||(this.renderer_=new ho(this)),this.mapBrowserEventHandler_=new wo(this,this.moveTolerance_);for(const t in _o)this.mapBrowserEventHandler_.addEventListener(_o[t],this.handleMapBrowserEvent.bind(this));this.viewport_.addEventListener(E,this.boundHandleBrowserEvent_,!1),this.viewport_.addEventListener(N,this.boundHandleBrowserEvent_,!!wt&&{passive:!1});const e=this.getOwnerDocument().defaultView,i=this.keyboardEventTarget_?this.keyboardEventTarget_:t;this.targetChangeHandlerKeys_=[D(i,L,this.handleBrowserEvent,this),D(i,F,this.handleBrowserEvent,this),D(e,A,this.updateSize,this)]}else this.renderer_&&(clearTimeout(this.postRenderTimeoutHandle_),this.postRenderTimeoutHandle_=void 0,this.postRenderFunctions_.length=0,this.renderer_.dispose(),this.renderer_=null),this.animationDelayKey_&&(cancelAnimationFrame(this.animationDelayKey_),this.animationDelayKey_=void 0);this.updateSize()}handleTileChange_(){this.render()}handleViewPropertyChanged_(){this.render()}handleViewChanged_(){this.viewPropertyListenerKey_&&(k(this.viewPropertyListenerKey_),this.viewPropertyListenerKey_=null),this.viewChangeListenerKey_&&(k(this.viewChangeListenerKey_),this.viewChangeListenerKey_=null);const t=this.getView();t&&(this.updateViewportSize_(),this.viewPropertyListenerKey_=D(t,s,this.handleViewPropertyChanged_,this),this.viewChangeListenerKey_=D(t,w,this.handleViewPropertyChanged_,this),t.resolveConstraints(0)),this.render()}handleLayerGroupChanged_(){this.layerGroupPropertyListenerKeys_&&(this.layerGroupPropertyListenerKeys_.forEach(k),this.layerGroupPropertyListenerKeys_=null);const t=this.getLayerGroup();t&&(this.handleLayerAdd_(new co("addlayer",t)),this.layerGroupPropertyListenerKeys_=[D(t,s,this.render,this),D(t,w,this.render,this),D(t,"addlayer",this.handleLayerAdd_,this),D(t,"removelayer",this.handleLayerRemove_,this)]),this.render()}isRendered(){return!!this.frameState_}animationDelay_(){this.animationDelayKey_=void 0,this.renderFrame_(Date.now())}renderSync(){this.animationDelayKey_&&cancelAnimationFrame(this.animationDelayKey_),this.animationDelay_()}redrawText(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e<i;++e){const i=t[e].layer;i.hasRenderer()&&i.getRenderer().handleFontsChanged()}}render(){this.renderer_&&void 0===this.animationDelayKey_&&(this.animationDelayKey_=requestAnimationFrame(this.animationDelay_))}removeControl(t){return this.getControls().remove(t)}removeInteraction(t){return this.getInteractions().remove(t)}removeLayer(t){return this.getLayerGroup().getLayers().remove(t)}handleLayerRemove_(t){tl(t.layer)}removeOverlay(t){return this.getOverlays().remove(t)}renderFrame_(t){const e=this.getSize(),i=this.getView(),n=this.frameState_;let r=null;if(void 0!==e&&$a(e)&&i&&i.isDef()){const n=i.getHints(this.frameState_?this.frameState_.viewHints:void 0),s=i.getState();if(r={animate:!1,coordinateToPixelTransform:this.coordinateToPixelTransform_,declutterTree:null,extent:ye(s.center,s.resolution,s.rotation,e),index:this.frameIndex_++,layerIndex:0,layerStatesArray:this.getLayerGroup().getLayerStatesArray(),pixelRatio:this.pixelRatio_,pixelToCoordinateTransform:this.pixelToCoordinateTransform_,postRenderFunctions:[],size:e,tileQueue:this.tileQueue_,time:t,usedTiles:{},viewState:s,viewHints:n,wantedTiles:{},mapId:V(this),renderTargets:{}},s.nextCenter&&s.nextResolution){const t=isNaN(s.nextRotation)?s.rotation:s.nextRotation;r.nextExtent=ye(s.nextCenter,s.nextResolution,t,e)}}if(this.frameState_=r,this.renderer_.renderFrame(r),r){if(r.animate&&this.render(),Array.prototype.push.apply(this.postRenderFunctions_,r.postRenderFunctions),n){(!this.previousExtent_||!be(this.previousExtent_)&&!re(r.extent,this.previousExtent_))&&(this.dispatchEvent(new po(Eo,this,n)),this.previousExtent_=ee(this.previousExtent_))}this.previousExtent_&&!r.viewHints[Do]&&!r.viewHints[Go]&&!re(r.extent,this.previousExtent_)&&(this.dispatchEvent(new po(Co,this,r)),Yt(r.extent,this.previousExtent_))}this.dispatchEvent(new po(To,this,r)),this.renderComplete_=this.hasListener(bo)||this.hasListener(Ro)||this.hasListener(Rs)?!this.tileQueue_.getTilesLoading()&&!this.tileQueue_.getCount()&&!this.getLoadingOrNotReady():void 0,this.postRenderTimeoutHandle_||(this.postRenderTimeoutHandle_=setTimeout((()=>{this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new co("removelayer",e)),this.set(Po,t)}setSize(t){this.set(Io,t)}setTarget(t){this.set(Lo,t)}setView(t){if(!t||t instanceof na)return void this.set(Fo,t);this.set(Fo,new na);const e=this;t.then((function(t){e.setView(new na(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),r=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(n)||isNaN(r)||(e=[n,r],!$a(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&console.warn("No map visible because the map container's width or height are 0."))}this.setSize(e),this.updateViewportSize_()}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}};const nl="element",rl="map",sl="offset",ol="position",al="positioning";var ll=class extends Z{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(nl,this.handleElementChanged),this.addChangeListener(rl,this.handleMapChanged),this.addChangeListener(sl,this.handleOffsetChanged),this.addChangeListener(ol,this.handlePositionChanged),this.addChangeListener(al,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(nl)}getId(){return this.id}getMap(){return this.get(rl)||null}getOffset(){return this.get(sl)}getPosition(){return this.get(ol)}getPositioning(){return this.get(al)}handleElementChanged(){qr(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(Kr(this.element),k(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=D(t,To,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(nl,t)}setMap(t){this.set(rl,t)}setOffset(t){this.set(sl,t)}setPosition(t){this.set(ol,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(ol))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),r=this.getRect(n,[Wr(n),Zr(n)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!Ht(i,r)){const n=r[0]-i[0],o=i[2]-r[2],a=r[1]-i[1],l=i[3]-r[3],h=[0,0];if(n<0?h[0]=n-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const r=[n[0]+h[0],n[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(r),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,r=i.top+window.pageYOffset;return[n,r,n+e[0],r+e[1]]}setPositioning(t){this.set(al,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),r=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==r||"center-right"==r||"top-right"==r?s="-100%":"bottom-center"!=r&&"center-center"!=r&&"top-center"!=r||(s="-50%"),"bottom-left"==r||"bottom-center"==r||"bottom-right"==r?o="-100%":"center-left"!=r&&"center-center"!=r&&"center-right"!=r||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+n[0])+"px"}, ${Math.round(t[1]+n[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}};var hl=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return ht(void 0!==i,15),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return ht(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){ht(!(t in this.entries_),16);const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}};function cl(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function ul(t,e,i){return t+"/"+e+"/"+i}function dl(t){return ul(t[0],t[1],t[2])}function gl(t){const[e,i,n]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return ul(e,i,n)}function fl(t){return t.split("/").map(Number)}function pl(t){return(t[1]<<t[0])+t[2]}function ml(t,e){const i=t[0],n=t[1],r=t[2];if(e.getMinZoom()>i||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(n,r)}var _l=class extends hl{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=fl(this.peekFirstKey())[0];this.forEach(function(e){e.tileCoord[0]!==t&&(this.remove(dl(e.tileCoord)),e.release())}.bind(this))}};class yl{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minX<this.minX&&(this.minX=t.minX),t.maxX>this.maxX&&(this.maxX=t.maxX),t.minY<this.minY&&(this.minY=t.minY),t.maxY>this.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function xl(t,e,i,n,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=i,r.maxY=n,r):new yl(t,e,i,n)}var vl=yl;const Sl=[];var wl=class extends at{constructor(t,e,i,n){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=n.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=V(t);return e in this.context_||(this.context_[e]=Xr(1,1,Sl)),this.context_[e]}hasContext(t){return V(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=V(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];Vr(e),Sl.push(e.canvas),delete this.context_[t]}super.release()}};var Tl=class extends at{constructor(t,e,i,n,r,s){super(t,e,s),this.extent=null,this.format_=n,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=r,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==J&&(this.setState(Q),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(et)}setFeatures(t){this.features_=t,this.setState(tt)}setLoader(t){this.loader_=t}};function El(t){return Array.isArray(t)?os(t):t}let Cl,bl=!1;function Rl(t,e,i,n,r,s,o){const a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(i,n,r):t,!0),"arraybuffer"==e.getType()&&(a.responseType="arraybuffer"),a.withCredentials=bl,a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?s(e.readFeatures(n,{extent:i,featureProjection:r}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Pl(t,e){return function(i,n,r,s,o){const a=this;Rl(t,e,i,n,r,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||m)}}function Il(t,e){return[[-1/0,-1/0,1/0,1/0]]}function Ll(t,e,i,n){const r=document.createElement("script"),s="olc_"+V(e);function o(){delete window[s],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+(n||"callback")+"="+s;const a=setTimeout((function(){o(),i&&i()}),1e4);window[s]=function(t){clearTimeout(a),o(),e(t)},document.head.appendChild(r)}class Fl extends Error{constructor(t){super("Unexpected response status: "+t.status),this.name="ResponseError",this.response=t}}class Ml extends Error{constructor(t){super("Failed to issue request"),this.name="ClientError",this.client=t}}function Al(t){return new Promise((function(e,i){const n=new XMLHttpRequest;n.addEventListener("load",(function(t){const n=t.target;if(!n.status||n.status>=200&&n.status<300){let t;try{t=JSON.parse(n.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new Fl(n))})),n.addEventListener("error",(function(t){i(new Ml(t.target))})),n.open("GET",t),n.setRequestHeader("Accept","application/json"),n.send()}))}function Ol(t,e){return e.includes("://")?e:new URL(e,t).href}var Nl=class{drawCustom(t,e,i,n){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}};var Dl=class extends Nl{constructor(t,e,i,n,r,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=n,this.viewRotation_=r,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=[1,0,0,1,0,0]}drawImages_(t,e,i,n){if(!this.image_)return;const r=fn(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=r.length;t<e;t+=2){const e=r[t]-this.imageAnchorX_,i=r[t+1]-this.imageAnchorY_;if(0!==l||1!=this.imageScale_[0]||1!=this.imageScale_[1]){const t=e+this.imageAnchorX_,n=i+this.imageAnchorY_;Ot(o,t,n,1,1,l,-t,-n),s.setTransform.apply(s,o),s.translate(t,n),s.scale(this.imageScale_[0],this.imageScale_[1]),s.drawImage(this.image_,this.imageOriginX_,this.imageOriginY_,this.imageWidth_,this.imageHeight_,-this.imageAnchorX_,-this.imageAnchorY_,this.imageWidth_,this.imageHeight_),s.setTransform(1,0,0,1,0,0)}else s.drawImage(this.image_,this.imageOriginX_,this.imageOriginY_,this.imageWidth_,this.imageHeight_,e,i,this.imageWidth_,this.imageHeight_)}1!=this.imageOpacity_&&(s.globalAlpha=a)}drawText_(t,e,i,n){if(!this.textState_||""===this.text_)return;this.textFillState_&&this.setContextFillState_(this.textFillState_),this.textStrokeState_&&this.setContextStrokeState_(this.textStrokeState_),this.setContextTextState_(this.textState_);const r=fn(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_;let o=this.textRotation_;for(this.textRotateWithView_&&(o+=this.viewRotation_);e<i;e+=n){const t=r[e]+this.textOffsetX_,i=r[e+1]+this.textOffsetY_;0!==o||1!=this.textScale_[0]||1!=this.textScale_[1]?(s.translate(t-this.textOffsetX_,i-this.textOffsetY_),s.rotate(o),s.translate(this.textOffsetX_,this.textOffsetY_),s.scale(this.textScale_[0],this.textScale_[1]),this.textStrokeState_&&s.strokeText(this.text_,0,0),this.textFillState_&&s.fillText(this.text_,0,0),s.setTransform(1,0,0,1,0,0)):(this.textStrokeState_&&s.strokeText(this.text_,t,i),this.textFillState_&&s.fillText(this.text_,t,i))}}moveToLineTo_(t,e,i,n,r){const s=this.context_,o=fn(t,e,i,n,this.transform_,this.pixelCoordinates_);s.moveTo(o[0],o[1]);let a=o.length;r&&(a-=2);for(let t=2;t<a;t+=2)s.lineTo(o[t],o[t+1]);return r&&s.closePath(),i}drawRings_(t,e,i,n){for(let r=0,s=i.length;r<s;++r)e=this.moveToLineTo_(t,e,i[r],n,!0);return e}drawCircle(t){if(Ce(this.extent_,t.getExtent())){if(this.fillState_||this.strokeState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=Sn(t,this.transform_,this.pixelCoordinates_),i=e[2]-e[0],n=e[3]-e[1],r=Math.sqrt(i*i+n*n),s=this.context_;s.beginPath(),s.arc(e[0],e[1],r,0,2*Math.PI),this.fillState_&&s.fill(),this.strokeState_&&s.stroke()}""!==this.text_&&this.drawText_(t.getCenter(),0,2,2)}}setStyle(t){this.setFillStrokeStyle(t.getFill(),t.getStroke()),this.setImageStyle(t.getImage()),this.setTextStyle(t.getText())}setTransform(t){this.transform_=t}drawGeometry(t){switch(t.getType()){case"Point":this.drawPoint(t);break;case"LineString":this.drawLineString(t);break;case"Polygon":this.drawPolygon(t);break;case"MultiPoint":this.drawMultiPoint(t);break;case"MultiLineString":this.drawMultiLineString(t);break;case"MultiPolygon":this.drawMultiPolygon(t);break;case"GeometryCollection":this.drawGeometryCollection(t);break;case"Circle":this.drawCircle(t)}}drawFeature(t,e){const i=e.getGeometryFunction()(t);i&&Ce(this.extent_,i.getExtent())&&(this.setStyle(e),this.drawGeometry(i))}drawGeometryCollection(t){const e=t.getGeometriesArray();for(let t=0,i=e.length;t<i;++t)this.drawGeometry(e[t])}drawPoint(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getFlatCoordinates(),i=t.getStride();this.image_&&this.drawImages_(e,0,e.length,i),""!==this.text_&&this.drawText_(e,0,e.length,i)}drawMultiPoint(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getFlatCoordinates(),i=t.getStride();this.image_&&this.drawImages_(e,0,e.length,i),""!==this.text_&&this.drawText_(e,0,e.length,i)}drawLineString(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),Ce(this.extent_,t.getExtent())){if(this.strokeState_){this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getFlatCoordinates();e.beginPath(),this.moveToLineTo_(i,0,i.length,t.getStride(),!1),e.stroke()}if(""!==this.text_){const e=t.getFlatMidpoint();this.drawText_(e,0,2,2)}}}drawMultiLineString(t){this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_));const e=t.getExtent();if(Ce(this.extent_,e)){if(this.strokeState_){this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getFlatCoordinates();let n=0;const r=t.getEnds(),s=t.getStride();e.beginPath();for(let t=0,e=r.length;t<e;++t)n=this.moveToLineTo_(i,n,r[t],s,!1);e.stroke()}if(""!==this.text_){const e=t.getFlatMidpoints();this.drawText_(e,0,e.length,2)}}}drawPolygon(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),Ce(this.extent_,t.getExtent())){if(this.strokeState_||this.fillState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=this.context_;e.beginPath(),this.drawRings_(t.getOrientedFlatCoordinates(),0,t.getEnds(),t.getStride()),this.fillState_&&e.fill(),this.strokeState_&&e.stroke()}if(""!==this.text_){const e=t.getFlatInteriorPoint();this.drawText_(e,0,2,2)}}}drawMultiPolygon(t){if(this.squaredTolerance_&&(t=t.simplifyTransformed(this.squaredTolerance_,this.userTransform_)),Ce(this.extent_,t.getExtent())){if(this.strokeState_||this.fillState_){this.fillState_&&this.setContextFillState_(this.fillState_),this.strokeState_&&this.setContextStrokeState_(this.strokeState_);const e=this.context_,i=t.getOrientedFlatCoordinates();let n=0;const r=t.getEndss(),s=t.getStride();e.beginPath();for(let t=0,e=r.length;t<e;++t){const e=r[t];n=this.drawRings_(i,n,e,s)}this.fillState_&&e.fill(),this.strokeState_&&e.stroke()}if(""!==this.text_){const e=t.getFlatInteriorPoints();this.drawText_(e,0,e.length,2)}}}setContextFillState_(t){const e=this.context_,i=this.contextFillState_;i?i.fillStyle!=t.fillStyle&&(i.fillStyle=t.fillStyle,e.fillStyle=t.fillStyle):(e.fillStyle=t.fillStyle,this.contextFillState_={fillStyle:t.fillStyle})}setContextStrokeState_(t){const e=this.context_,i=this.contextStrokeState_;i?(i.lineCap!=t.lineCap&&(i.lineCap=t.lineCap,e.lineCap=t.lineCap),d(i.lineDash,t.lineDash)||e.setLineDash(i.lineDash=t.lineDash),i.lineDashOffset!=t.lineDashOffset&&(i.lineDashOffset=t.lineDashOffset,e.lineDashOffset=t.lineDashOffset),i.lineJoin!=t.lineJoin&&(i.lineJoin=t.lineJoin,e.lineJoin=t.lineJoin),i.lineWidth!=t.lineWidth&&(i.lineWidth=t.lineWidth,e.lineWidth=t.lineWidth),i.miterLimit!=t.miterLimit&&(i.miterLimit=t.miterLimit,e.miterLimit=t.miterLimit),i.strokeStyle!=t.strokeStyle&&(i.strokeStyle=t.strokeStyle,e.strokeStyle=t.strokeStyle)):(e.lineCap=t.lineCap,e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset,e.lineJoin=t.lineJoin,e.lineWidth=t.lineWidth,e.miterLimit=t.miterLimit,e.strokeStyle=t.strokeStyle,this.contextStrokeState_={lineCap:t.lineCap,lineDash:t.lineDash,lineDashOffset:t.lineDashOffset,lineJoin:t.lineJoin,lineWidth:t.lineWidth,miterLimit:t.miterLimit,strokeStyle:t.strokeStyle})}setContextTextState_(t){const e=this.context_,i=this.contextTextState_,n=t.textAlign?t.textAlign:qs;i?(i.font!=t.font&&(i.font=t.font,e.font=t.font),i.textAlign!=n&&(i.textAlign=n,e.textAlign=n),i.textBaseline!=t.textBaseline&&(i.textBaseline=t.textBaseline,e.textBaseline=t.textBaseline)):(e.font=t.font,e.textAlign=n,e.textBaseline=t.textBaseline,this.contextTextState_={font:t.font,textAlign:n,textBaseline:t.textBaseline})}setFillStrokeStyle(t,e){if(t){const e=t.getColor();this.fillState_={fillStyle:El(e||Xs)}}else this.fillState_=null;if(e){const t=e.getColor(),i=e.getLineCap(),n=e.getLineDash(),r=e.getLineDashOffset(),s=e.getLineJoin(),o=e.getWidth(),a=e.getMiterLimit(),l=n||Ws;this.strokeState_={lineCap:void 0!==i?i:Vs,lineDash:1===this.pixelRatio_?l:l.map((t=>t*this.pixelRatio_)),lineDashOffset:(r||0)*this.pixelRatio_,lineJoin:void 0!==s?s:Zs,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:Ys,strokeStyle:El(t||Ks)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:El(t||Xs)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),r=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Vs,lineDash:n||Ws,lineDashOffset:r||0,lineJoin:void 0!==s?s:Zs,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:Ys,strokeStyle:El(t||Ks)}}else this.textStrokeState_=null;const n=t.getFont(),r=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:zs,textAlign:void 0!==c?c:qs,textBaseline:void 0!==u?u:Hs},this.text_=void 0!==h?Array.isArray(h)?h.reduce(((t,e,i)=>t+(i%2?" ":e)),""):h:"",this.textOffsetX_=void 0!==r?this.pixelRatio_*r:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}};const Gl={Point:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Gr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},LineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},Polygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},MultiPoint:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Gr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawMultiPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},MultiLineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawMultiLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},MultiPolygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(o||s){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawMultiPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},GeometryCollection:function(t,e,i,n,r){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o<a;++o){(0,Gl[s[o].getType()])(t,s[o],i,n,r)}},Circle:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Circle");r.setFillStrokeStyle(s,o),r.drawCircle(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}}};function kl(t,e){return parseInt(V(t),10)-parseInt(V(e),10)}function jl(t,e){const i=Bl(t,e);return i*i}function Bl(t,e){return.5*t/e}function Ul(t,e,i,n,r,s,o){let a=!1;const l=i.getImage();if(l){const t=l.getImageState();t==Gr||t==kr?l.unlistenImageChange(r):(t==Nr&&l.load(),l.listenImageChange(r),a=!0)}return function(t,e,i,n,r,s){const o=i.getGeometryFunction()(e);if(!o)return;const a=o.simplifyTransformed(n,r);if(i.getRenderer())zl(t,a,i,e);else{(0,Gl[a.getType()])(t,a,i,e,s)}}(t,e,i,n,s,o),a}function zl(t,e,i,n){if("GeometryCollection"==e.getType()){const r=e.getGeometries();for(let e=0,s=r.length;e<s;++e)zl(t,r[e],i,n);return}t.getBuilder(i.getZIndex(),"Default").drawCustom(e,n,i.getRenderer(),i.getHitDetectionRenderer())}function Xl(t){if(!(t.context instanceof CanvasRenderingContext2D))throw new Error("Only works for render events from Canvas 2D layers");const e=t.inversePixelTransform[0],i=t.frameState,n=bt(t.inversePixelTransform.slice(),i.coordinateToPixelTransform),r=jl(i.viewState.resolution,e);let s;const o=sn();return o&&(s=Ji(o,i.viewState.projection)),new Dl(t.context,e,i.extent,n,i.viewState.rotation,r,s)}let Vl;const Wl=[];function Zl(t,e,i,n,r){t.beginPath(),t.moveTo(0,0),t.lineTo(e,i),t.lineTo(n,r),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,n)+1,Math.max(i,r)),t.restore()}function Yl(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function Kl(t,e,i,n){const r=tn(i,e,t);let s=Wi(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||qt(l,r)){const e=Wi(t,s,r)/s;isFinite(e)&&e>0&&(s/=e)}return s}function ql(t,e,i,n){const r=me(i);let s=Kl(t,e,r,n);return(!isFinite(s)||s<=0)&&de(i,(function(i){return s=Kl(t,e,i,n),isFinite(s)&&s>0})),s}function Hl(t,e,i,n,r,s,o,a,l,h,c,u){const d=Xr(Math.round(i*t),Math.round(i*e),Wl);if(u||(d.imageSmoothingEnabled=!1),0===l.length)return d.canvas;function g(t){return Math.round(t*i)/i}d.scale(i,i),d.globalCompositeOperation="lighter";const f=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,i){oe(f,t.extent)}));const p=Ee(f),m=ve(f),_=Xr(Math.round(i*p/n),Math.round(i*m/n),Wl);u||(_.imageSmoothingEnabled=!1);const y=i/n;l.forEach((function(t,e,i){const n=t.extent[0]-f[0],r=-(t.extent[3]-f[3]),s=Ee(t.extent),o=ve(t.extent);t.image.width>0&&t.image.height>0&&_.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,n*y,r*y,s*y,o*y)}));const x=we(o);return a.getTriangles().forEach((function(t,e,r){const o=t.source,a=t.target;let l=o[0][0],h=o[0][1],c=o[1][0],p=o[1][1],m=o[2][0],y=o[2][1];const v=g((a[0][0]-x[0])/s),S=g(-(a[0][1]-x[1])/s),w=g((a[1][0]-x[0])/s),T=g(-(a[1][1]-x[1])/s),E=g((a[2][0]-x[0])/s),C=g(-(a[2][1]-x[1])/s),b=l,R=h;l=0,h=0,c-=b,p-=R,m-=b,y-=R;const P=li([[c,p,0,0,w-v],[m,y,0,0,E-v],[0,0,c,p,T-S],[0,0,m,y,C-S]]);if(P){if(d.save(),d.beginPath(),function(){if(void 0===Vl){const t=Xr(6,6,Wl);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Zl(t,4,5,4,0),Zl(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;Vl=Yl(e,0)||Yl(e,4)||Yl(e,8),Vr(t),Wl.push(t.canvas)}return Vl}()||!u){d.moveTo(w,T);const t=4,e=v-w,i=S-T;for(let n=0;n<t;n++)d.lineTo(w+g((n+1)*e/t),T+g(n*i/(t-1))),n!=t-1&&d.lineTo(w+g((n+1)*e/t),T+g((n+1)*i/(t-1)));d.lineTo(E,C)}else d.moveTo(w,T),d.lineTo(v,S),d.lineTo(E,C);d.clip(),d.transform(P[0],P[2],P[1],P[3],v,S),d.translate(f[0]-b,f[3]-R),d.scale(n/i,-n/i),d.drawImage(_.canvas,0,0),d.restore()}})),Vr(_),Wl.push(_.canvas),c&&(d.save(),d.globalCompositeOperation="source-over",d.strokeStyle="black",d.lineWidth=1,a.getTriangles().forEach((function(t,e,i){const n=t.target,r=(n[0][0]-x[0])/s,o=-(n[0][1]-x[1])/s,a=(n[1][0]-x[0])/s,l=-(n[1][1]-x[1])/s,h=(n[2][0]-x[0])/s,c=-(n[2][1]-x[1])/s;d.beginPath(),d.moveTo(a,l),d.lineTo(r,o),d.lineTo(h,c),d.closePath(),d.stroke()})),d.restore()),d.canvas}const $l=.5;var Jl=class{constructor(t,e,i,n,r,s){this.sourceProj_=t,this.targetProj_=e;let o={};const a=Qi(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return o[e]||(o[e]=a(t)),o[e]},this.maxSourceExtent_=n,this.errorThresholdSquared_=r*r,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!n&&!!this.sourceProj_.getExtent()&&Ee(n)==Ee(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ee(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ee(this.targetProj_.getExtent()):null;const l=we(i),h=Te(i),c=pe(i),u=fe(i),d=this.transformInv_(l),g=this.transformInv_(h),f=this.transformInv_(c),p=this.transformInv_(u),m=10+(s?Math.max(0,Math.ceil(Math.log2(ge(i)/(s*s*256*256)))):0);if(this.addQuad_(l,h,c,u,d,g,f,p,m),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach(function(e){if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-n<this.sourceWorldWidth_/2&&(e.source=i)}}.bind(this))}o={}}addTriangle_(t,e,i,n,r,s){this.triangles_.push({source:[n,r,s],target:[t,e,i]})}addQuad_(t,e,i,n,r,s,o,a,l){const h=Wt([r,s,o,a]),c=this.sourceWorldWidth_?Ee(h)/this.sourceWorldWidth_:null,u=this.sourceWorldWidth_,d=this.sourceProj_.canWrapX()&&c>.5&&c<1;let g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){g=Ee(Wt([t,e,i,n]))/this.targetWorldWidth_>.25||g}!d&&this.sourceProj_.isGlobal()&&c&&(g=c>.25||g)}if(!g&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3])&&!Ce(h,this.maxSourceExtent_))return;let f=0;if(!(g||isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)g=!0;else if(f=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!g){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let s;if(d){s=(ui(r[0],u)+ui(o[0],u))/2-ui(n[0],u)}else s=(r[0]+o[0])/2-n[0];const a=(r[1]+o[1])/2-n[1];g=s*s+a*a>this.errorThresholdSquared_}if(g){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const h=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(h),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],d=this.transformInv_(u);this.addQuad_(t,e,h,u,r,s,c,d,l-1),this.addQuad_(u,h,i,n,d,c,o,a,l-1)}else{const h=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(h),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],d=this.transformInv_(u);this.addQuad_(t,h,u,n,r,c,d,a,l-1),this.addQuad_(h,e,i,u,c,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&f)&&this.addTriangle_(t,i,n,r,o,a),0==(14&f)&&this.addTriangle_(t,i,e,r,o,s),f&&(0==(13&f)&&this.addTriangle_(e,n,t,s,a,r),0==(7&f)&&this.addTriangle_(e,n,i,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,i,n){const r=e.source;ae(t,r[0]),ae(t,r[1]),ae(t,r[2])})),t}getTriangles(){return this.triangles_}};var Ql=class extends at{constructor(t,e,i,n,r,s,o,a,l,h,c,u){super(r,J,{interpolate:!!u}),this.renderEdges_=void 0!==c&&c,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=s||r,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const d=n.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const p=g?Se(d,g):d;if(0===ge(p))return void(this.state=it);const m=t.getExtent();m&&(f=f?Se(f,m):m);const _=n.getResolution(this.wrappedTileCoord_[0]),y=ql(t,i,p,_);if(!isFinite(y)||y<=0)return void(this.state=it);const x=void 0!==h?h:$l;if(this.triangulation_=new Jl(t,i,p,f,y*x,_),0===this.triangulation_.getTriangles().length)return void(this.state=it);this.sourceZ_=e.getZForResolution(y);let v=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(v[1]=si(v[1],f[1],f[3]),v[3]=si(v[3],f[1],f[3])):v=Se(v,f)),ge(v)){const t=e.getTileRangeForExtentAndZ(v,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=l(this.sourceZ_,e,i,o);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=it)}else this.state=it}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(function(e,i,n){e&&e.getState()==tt&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=et;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Hl(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=tt}this.changed()}load(){if(this.state==J){this.state=Q,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,n){const r=e.getState();if(r==J||r==Q){t++;const i=D(e,w,(function(n){const r=e.getState();r!=tt&&r!=et&&r!=it||(k(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==J&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(k),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Vr(this.canvas_.getContext("2d")),Wl.push(this.canvas_),this.canvas_=null),super.release()}},th="tileloadstart",eh="tileloadend",ih="tileloaderror";function nh(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}var rh=class extends Z{constructor(t){super(),this.projection=Vi(t.projection),this.attributions_=nh(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(){return z()}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=nh(t),this.changed()}setState(t){this.state_=t,this.changed()}};const sh=[0,0,0];var oh=class{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,ht(g(this.resolutions_,(function(t,e){return e-t}),!0),17),!t.origins)for(let t=0,i=this.resolutions_.length-1;t<i;++t)if(e){if(this.resolutions_[t]/this.resolutions_[t+1]!==e){e=void 0;break}}else e=this.resolutions_[t]/this.resolutions_[t+1];this.zoomFactor_=e,this.maxZoom=this.resolutions_.length-1,this.origin_=void 0!==t.origin?t.origin:null,this.origins_=null,void 0!==t.origins&&(this.origins_=t.origins,ht(this.origins_.length==this.resolutions_.length,20));const i=t.extent;void 0===i||this.origin_||this.origins_||(this.origin_=we(i)),ht(!this.origin_&&this.origins_||this.origin_&&!this.origins_,18),this.tileSizes_=null,void 0!==t.tileSizes&&(this.tileSizes_=t.tileSizes,ht(this.tileSizes_.length==this.resolutions_.length,19)),this.tileSize_=void 0!==t.tileSize?t.tileSize:this.tileSizes_?null:jo,ht(!this.tileSize_&&this.tileSizes_||this.tileSize_&&!this.tileSizes_,22),this.extent_=void 0!==i?i:null,this.fullTileRanges_=null,this.tmpSize_=[0,0],this.tmpExtent_=[0,0,0,0],void 0!==t.sizes?this.fullTileRanges_=t.sizes.map((function(t,e){const n=new vl(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n}),this):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,i){const n=this.getTileRangeForExtentAndZ(t,e);for(let t=n.minX,r=n.maxX;t<=r;++t)for(let r=n.minY,s=n.maxY;r<=s;++r)i([e,t,r])}forEachTileCoordParentTileRange(t,e,i,n){let r,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,n);l>=this.minZoom;){if(2===this.zoomFactor_?(s=Math.floor(s/2),o=Math.floor(o/2),r=xl(s,s,o,o,i)):r=this.getTileRangeForExtentAndZ(a,l,i),e(l,r))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]<this.maxZoom){if(2===this.zoomFactor_){const i=2*t[1],n=2*t[2];return xl(i,i+1,n,n+1,e)}const n=this.getTileCoordExtent(t,i||this.tmpExtent_);return this.getTileRangeForExtentAndZ(n,t[0]+1,e)}return null}getTileRangeForTileCoordAndZ(t,e,i){if(e>this.maxZoom||e<this.minZoom)return null;const n=t[0],r=t[1],s=t[2];if(e===n)return xl(r,s,r,s,i);if(this.zoomFactor_){const t=Math.pow(this.zoomFactor_,e-n),o=Math.floor(r*t),a=Math.floor(s*t);if(e<n)return xl(o,o,a,a,i);return xl(o,Math.floor(t*(r+1))-1,a,Math.floor(t*(s+1))-1,i)}const o=this.getTileCoordExtent(t,this.tmpExtent_);return this.getTileRangeForExtentAndZ(o,e,i)}getTileRangeExtent(t,e,i){const n=this.getOrigin(t),r=this.getResolution(t),s=Qa(this.getTileSize(t),this.tmpSize_),o=n[0]+e.minX*s[0]*r,a=n[0]+(e.maxX+1)*s[0]*r;return te(o,n[1]+e.minY*s[1]*r,a,n[1]+(e.maxY+1)*s[1]*r,i)}getTileRangeForExtentAndZ(t,e,i){const n=sh;this.getTileCoordForXYAndZ_(t[0],t[3],e,!1,n);const r=n[1],s=n[2];return this.getTileCoordForXYAndZ_(t[2],t[1],e,!0,n),xl(r,n[1],s,n[2],i)}getTileCoordCenter(t){const e=this.getOrigin(t[0]),i=this.getResolution(t[0]),n=Qa(this.getTileSize(t[0]),this.tmpSize_);return[e[0]+(t[1]+.5)*n[0]*i,e[1]-(t[2]+.5)*n[1]*i]}getTileCoordExtent(t,e){const i=this.getOrigin(t[0]),n=this.getResolution(t[0]),r=Qa(this.getTileSize(t[0]),this.tmpSize_),s=i[0]+t[1]*r[0]*n,o=i[1]-(t[2]+1)*r[1]*n;return te(s,o,s+r[0]*n,o+r[1]*n,e)}getTileCoordForCoordAndResolution(t,e,i){return this.getTileCoordForXYAndResolution_(t[0],t[1],e,!1,i)}getTileCoordForXYAndResolution_(t,e,i,n,r){const s=this.getZForResolution(i),o=i/this.getResolution(s),a=this.getOrigin(s),l=Qa(this.getTileSize(s),this.tmpSize_);let h=o*(t-a[0])/i/l[0],c=o*(a[1]-e)/i/l[1];return n?(h=mi(h,5)-1,c=mi(c,5)-1):(h=pi(h,5),c=pi(c,5)),cl(s,h,c,r)}getTileCoordForXYAndZ_(t,e,i,n,r){const s=this.getOrigin(i),o=this.getResolution(i),a=Qa(this.getTileSize(i),this.tmpSize_);let l=(t-s[0])/o/a[0],h=(s[1]-e)/o/a[1];return n?(l=mi(l,5)-1,h=mi(h,5)-1):(l=pi(l,5),h=pi(h,5)),cl(i,l,h,r)}getTileCoordForCoordAndZ(t,e,i){return this.getTileCoordForXYAndZ_(t[0],t[1],e,!1,i)}getTileCoordResolution(t){return this.resolutions_[t[0]]}getTileSize(t){return this.tileSize_?this.tileSize_:this.tileSizes_[t]}getFullTileRange(t){return this.fullTileRanges_?this.fullTileRanges_[t]:this.extent_?this.getTileRangeForExtentAndZ(this.extent_,t):null}getZForResolution(t,e){return si(h(this.resolutions_,t,e||0),this.minZoom,this.maxZoom)}tileCoordIntersectsViewport(t,e){return or(e,0,e.length,2,this.getTileCoordExtent(t))}calculateTileRanges_(t){const e=this.resolutions_.length,i=new Array(e);for(let n=this.minZoom;n<e;++n)i[n]=this.getTileRangeForExtentAndZ(t,n);this.fullTileRanges_=i}};function ah(t){let e=t.getDefaultTileGrid();return e||(e=dh(t),t.setDefaultTileGrid(e)),e}function lh(t,e,i){const n=e[0],r=t.getTileCoordCenter(e),s=gh(i);if(!qt(s,r)){const e=Ee(s),i=Math.ceil((s[0]-r[0])/e);return r[0]+=e*i,t.getTileCoordForCoordAndZ(r,n)}return e}function hh(t,e,i,n){n=void 0!==n?n:"top-left";const r=uh(t,e,i);return new oh({extent:t,origin:_e(t,n),resolutions:r,tileSize:i})}function ch(t){const e=t||{},i=e.extent||Vi("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:uh(i,e.maxZoom,e.tileSize,e.maxResolution)};return new oh(n)}function uh(t,e,i,n){e=void 0!==e?e:42,i=Qa(void 0!==i?i:jo);const r=ve(t),s=Ee(t);n=n>0?n:Math.max(s/i[0],r/i[1]);const o=e+1,a=new Array(o);for(let t=0;t<o;++t)a[t]=n/Math.pow(2,t);return a}function dh(t,e,i,n){return hh(gh(t),e,i,n)}function gh(t){let e=(t=Vi(t)).getExtent();if(!e){const i=180*Ne.degrees/t.getMetersPerUnit();e=te(-i,-i,i,i)}return e}class fh extends r{constructor(t,e){super(t),this.tile=e}}var ph=class extends rh{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:t.projection,state:t.state,wrapX:t.wrapX,interpolate:t.interpolate}),this.on,this.once,this.un,this.opaque_=void 0!==t.opaque&&t.opaque,this.tilePixelRatio_=void 0!==t.tilePixelRatio?t.tilePixelRatio:1,this.tileGrid=void 0!==t.tileGrid?t.tileGrid:null;const e=[256,256];this.tileGrid&&Qa(this.tileGrid.getTileSize(this.tileGrid.getMinZoom()),e),this.tileCache=new _l(t.cacheSize||0),this.tmpSize=[0,0],this.key_=t.key||"",this.tileOptions={transition:t.transition,interpolate:t.interpolate},this.zDirection=t.zDirection?t.zDirection:0}canExpireCache(){return this.tileCache.canExpireCache()}expireCache(t,e){const i=this.getTileCacheForProjection(t);i&&i.expireCache(e)}forEachLoadedTile(t,e,i,n){const r=this.getTileCacheForProjection(t);if(!r)return!1;let s,o,a,l=!0;for(let t=i.minX;t<=i.maxX;++t)for(let h=i.minY;h<=i.maxY;++h)o=ul(e,t,h),a=!1,r.containsKey(o)&&(s=r.get(o),a=s.getState()===tt,a&&(a=!1!==n(s))),a||(l=!1);return l}getGutterForProjection(t){return 0}getKey(){return this.key_}setKey(t){this.key_!==t&&(this.key_=t,this.changed())}getOpaque(t){return this.opaque_}getResolutions(){return this.tileGrid?this.tileGrid.getResolutions():null}getTile(t,e,i,n,r){return z()}getTileGrid(){return this.tileGrid}getTileGridForProjection(t){return this.tileGrid?this.tileGrid:ah(t)}getTileCacheForProjection(t){const e=this.getProjection();return ht(null===e||$i(e,t),68),this.tileCache}getTilePixelRatio(t){return this.tilePixelRatio_}getTilePixelSize(t,e,i){const n=this.getTileGridForProjection(i),r=this.getTilePixelRatio(e),s=Qa(n.getTileSize(t),this.tmpSize);return 1==r?s:Ja(s,r,this.tmpSize)}getTileCoordForTileUrlFunction(t,e){e=void 0!==e?e:this.getProjection();const i=this.getTileGridForProjection(e);return this.getWrapX()&&e.isGlobal()&&(t=lh(i,t,e)),ml(t,i)?t:null}clear(){this.tileCache.clear()}refresh(){this.clear(),super.refresh()}updateCacheSize(t,e){const i=this.getTileCacheForProjection(e);t>i.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}};function mh(t,e){const i=/\{z\}/g,n=/\{x\}/g,r=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(r,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);ht(i,55);return(i.getHeight()-o[2]-1).toString()}))}}function _h(t,e){const i=t.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=mh(t[r],e);return yh(n)}function yh(t){return 1===t.length?t[0]:function(e,i,n){if(!e)return;const r=ui(pl(e),t.length);return t[r](e,i,n)}}function xh(t,e,i){}function vh(t){const e=[];let i=/\{([a-z])-([a-z])\}/.exec(t);if(i){const n=i[1].charCodeAt(0),r=i[2].charCodeAt(0);let s;for(s=n;s<=r;++s)e.push(t.replace(i[0],String.fromCharCode(s)));return e}if(i=/\{(\d+)-(\d+)\}/.exec(t),i){const n=parseInt(i[2],10);for(let r=parseInt(i[1],10);r<=n;r++)e.push(t.replace(i[0],r.toString()));return e}return e.push(t),e}class Sh extends ph{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,opaque:t.opaque,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tilePixelRatio:t.tilePixelRatio,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.generateTileUrlFunction_=this.tileUrlFunction===Sh.prototype.tileUrlFunction,this.tileLoadFunction=t.tileLoadFunction,t.tileUrlFunction&&(this.tileUrlFunction=t.tileUrlFunction),this.urls=null,t.urls?this.setUrls(t.urls):t.url&&this.setUrl(t.url),this.tileLoadingKeys_={}}getTileLoadFunction(){return this.tileLoadFunction}getTileUrlFunction(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction}getUrls(){return this.urls}handleTileChange(t){const e=t.target,i=V(e),n=e.getState();let r;n==Q?(this.tileLoadingKeys_[i]=!0,r=th):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==et?ih:n==tt?eh:void 0),null!=r&&this.dispatchEvent(new fh(r,e))}setTileLoadFunction(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()}setTileUrlFunction(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()}setUrl(t){const e=vh(t);this.urls=e,this.setUrls(e)}setUrls(t){this.urls=t;const e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(_h(t,this.tileGrid),e):this.setKey(e)}tileUrlFunction(t,e,i){}useTile(t,e,i){const n=ul(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}}var wh=Sh;function Th(t,e){t.getImage().src=e}var Eh=class extends wh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,opaque:t.opaque,projection:t.projection,state:t.state,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:Th,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:t.wrapX,transition:t.transition,interpolate:void 0===t.interpolate||t.interpolate,key:t.key,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.crossOrigin=void 0!==t.crossOrigin?t.crossOrigin:null,this.tileClass=void 0!==t.tileClass?t.tileClass:$r,this.tileCacheForProjection={},this.tileGridForProjection={},this.reprojectionErrorThreshold_=t.reprojectionErrorThreshold,this.renderReprojectionEdges_=!1}canExpireCache(){if(this.tileCache.canExpireCache())return!0;for(const t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection){const n=this.tileCacheForProjection[t];n.expireCache(n==i?e:{})}}getGutterForProjection(t){return this.getProjection()&&t&&!$i(this.getProjection(),t)?0:this.getGutter()}getGutter(){return 0}getKey(){let t=super.getKey();return this.getInterpolate()||(t+=":disable-interpolation"),t}getOpaque(t){return!(this.getProjection()&&t&&!$i(this.getProjection(),t))&&super.getOpaque(t)}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||$i(e,t)))return this.tileGrid;const i=V(t);return i in this.tileGridForProjection||(this.tileGridForProjection[i]=ah(t)),this.tileGridForProjection[i]}getTileCacheForProjection(t){const e=this.getProjection();if(!e||$i(e,t))return this.tileCache;const i=V(t);return i in this.tileCacheForProjection||(this.tileCacheForProjection[i]=new _l(this.tileCache.highWaterMark)),this.tileCacheForProjection[i]}createTile_(t,e,i,n,r,s){const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=a?this.tileUrlFunction(a,n,r):void 0,h=new this.tileClass(o,void 0!==l?J:it,void 0!==l?l:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return h.key=s,h.addEventListener(w,this.handleTileChange.bind(this)),h}getTile(t,e,i,n,r){const s=this.getProjection();if(!s||!r||$i(s,r))return this.getTileInternal(t,e,i,n,s||r);const o=this.getTileCacheForProjection(r),a=[t,e,i];let l;const h=dl(a);o.containsKey(h)&&(l=o.get(h));const c=this.getKey();if(l&&l.key==c)return l;const u=this.getTileGridForProjection(s),d=this.getTileGridForProjection(r),g=this.getTileCoordForTileUrlFunction(a,r),f=new Ql(s,u,r,d,a,g,this.getTilePixelRatio(n),this.getGutter(),function(t,e,i,n){return this.getTileInternal(t,e,i,n,s)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return f.key=c,l?(f.interimTile=l,f.refreshInterimChain(),o.replace(h,f)):o.set(h,f),f}getTileInternal(t,e,i,n,r){let s=null;const o=ul(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,n,r,a),l.getState()==J?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,n,r,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=Vi(t);if(i){const t=V(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}};function Ch(t){const e=t[0],i=new Array(e);let n,r,s=1<<e-1;for(n=0;n<e;++n)r=48,t[1]&s&&(r+=1),t[2]&s&&(r+=2),i[n]=String.fromCharCode(r),s>>=1;return i.join("")}var bh=class extends Eh{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:Vi("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet;Ll("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=gh(this.getProjection()),r=this.hidpi_?2:1,s=e.imageWidth==e.imageHeight?e.imageWidth/r:[e.imageWidth/r,e.imageHeight/r],o=ch({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:s});this.tileGrid=o;const a=this.culture_,l=this.hidpi_;if(this.tileUrlFunction=yh(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,r){if(!t)return;cl(t[0],t[1],t[2],i);let s=n;return l&&(s+="&dpi=d1&device=mobile"),s.replace("{quadkey}",Ch(i))}}))),e.imageryProviders){const t=Ji(Vi("EPSG:4326"),this.getProjection());this.setAttributions(function(i){const n=[],r=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(r.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(r.center,o)[0];return e.imageryProviders.map((function(e){let r=!1;const s=e.coverageAreas;for(let e=0,n=s.length;e<n;++e){const n=s[e];if(a>=n.zoomMin&&a<=n.zoomMax){const e=n.bbox;if(Ce(Le([e[1],e[0],e[3],e[2]],t),i.extent)){r=!0;break}}}r&&n.push(e.attribution)})),n.push('<a class="ol-attribution-bing-tos" href="https://www.microsoft.com/maps/product/terms.html" target="_blank">Terms of Use</a>'),n}.bind(this))}this.setState("ready")}};var Rh=class extends Eh{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:ch({extent:gh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}};var Ph=class extends Rh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}};function Ih(t,e,i,n,r){Lh(t,e,i||0,n||t.length-1,r||Mh)}function Lh(t,e,i,n,r){for(;n>i;){if(n-i>600){var s=n-i+1,o=e-i+1,a=Math.log(s),l=.5*Math.exp(2*a/3),h=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);Lh(t,e,Math.max(i,Math.floor(e-o*l/s+h)),Math.min(n,Math.floor(e+(s-o)*l/s+h)),r)}var c=t[e],u=i,d=n;for(Fh(t,i,e),r(t[n],c)>0&&Fh(t,i,n);u<d;){for(Fh(t,u,d),u++,d--;r(t[u],c)<0;)u++;for(;r(t[d],c)>0;)d--}0===r(t[i],c)?Fh(t,i,d):Fh(t,++d,n),d<=e&&(i=d+1),e<=d&&(n=d-1)}}function Fh(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function Mh(t,e){return t<e?-1:t>e?1:0}class Ah{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const i=[];if(!Vh(t,e))return i;const n=this.toBBox,r=[];for(;e;){for(let s=0;s<e.children.length;s++){const o=e.children[s],a=e.leaf?n(o):o;Vh(t,a)&&(e.leaf?i.push(o):Xh(t,a)?this._all(o,i):r.push(o))}e=r.pop()}return i}collides(t){let e=this.data;if(!Vh(t,e))return!1;const i=[];for(;e;){for(let n=0;n<e.children.length;n++){const r=e.children[n],s=e.leaf?this.toBBox(r):r;if(Vh(t,s)){if(e.leaf||Xh(t,s))return!0;i.push(r)}}e=i.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(let e=0;e<t.length;e++)this.insert(t[e]);return this}let e=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===e.height)this._splitRoot(this.data,e);else{if(this.data.height<e.height){const t=this.data;this.data=e,e=t}this._insert(e,this.data.height-e.height-1,!0)}else this.data=e;return this}insert(t){return t&&this._insert(t,this.data.height-1),this}clear(){return this.data=Wh([]),this}remove(t,e){if(!t)return this;let i=this.data;const n=this.toBBox(t),r=[],s=[];let o,a,l;for(;i||r.length;){if(i||(i=r.pop(),a=r[r.length-1],o=s.pop(),l=!0),i.leaf){const n=Oh(t,i.children,e);if(-1!==n)return i.children.splice(n,1),r.push(i),this._condense(r),this}l||i.leaf||!Xh(i,n)?a?(o++,i=a.children[o],l=!1):i=null:(r.push(i),s.push(o),o=0,a=i,i=i.children[0])}return this}toBBox(t){return t}compareMinX(t,e){return t.minX-e.minX}compareMinY(t,e){return t.minY-e.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}_all(t,e){const i=[];for(;t;)t.leaf?e.push(...t.children):i.push(...t.children),t=i.pop();return e}_build(t,e,i,n){const r=i-e+1;let s,o=this._maxEntries;if(r<=o)return s=Wh(t.slice(e,i+1)),Nh(s,this.toBBox),s;n||(n=Math.ceil(Math.log(r)/Math.log(o)),o=Math.ceil(r/Math.pow(o,n-1))),s=Wh([]),s.leaf=!1,s.height=n;const a=Math.ceil(r/o),l=a*Math.ceil(Math.sqrt(o));Zh(t,e,i,l,this.compareMinX);for(let r=e;r<=i;r+=l){const e=Math.min(r+l-1,i);Zh(t,r,e,a,this.compareMinY);for(let i=r;i<=e;i+=a){const r=Math.min(i+a-1,e);s.children.push(this._build(t,i,r,n-1))}}return Nh(s,this.toBBox),s}_chooseSubtree(t,e,i,n){for(;n.push(e),!e.leaf&&n.length-1!==i;){let i,n=1/0,o=1/0;for(let a=0;a<e.children.length;a++){const l=e.children[a],h=Bh(l),c=(r=t,s=l,(Math.max(s.maxX,r.maxX)-Math.min(s.minX,r.minX))*(Math.max(s.maxY,r.maxY)-Math.min(s.minY,r.minY))-h);c<o?(o=c,n=h<n?h:n,i=l):c===o&&h<n&&(n=h,i=l)}e=i||e.children[0]}var r,s;return e}_insert(t,e,i){const n=i?t:this.toBBox(t),r=[],s=this._chooseSubtree(n,this.data,e,r);for(s.children.push(t),Gh(s,n);e>=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(t,e){const i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);const s=this._chooseSplitIndex(i,r,n),o=Wh(i.children.splice(s,i.children.length-s));o.height=i.height,o.leaf=i.leaf,Nh(i,this.toBBox),Nh(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(i,o)}_splitRoot(t,e){this.data=Wh([t,e]),this.data.height=t.height+1,this.data.leaf=!1,Nh(this.data,this.toBBox)}_chooseSplitIndex(t,e,i){let n,r=1/0,s=1/0;for(let o=e;o<=i-e;o++){const e=Dh(t,0,o,this.toBBox),a=Dh(t,o,i,this.toBBox),l=zh(e,a),h=Bh(e)+Bh(a);l<r?(r=l,n=o,s=h<s?h:s):l===r&&h<s&&(s=h,n=o)}return n||i-e}_chooseSplitAxis(t,e,i){const n=t.leaf?this.compareMinX:kh,r=t.leaf?this.compareMinY:jh;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,r)&&t.children.sort(n)}_allDistMargin(t,e,i,n){t.children.sort(n);const r=this.toBBox,s=Dh(t,0,e,r),o=Dh(t,i-e,i,r);let a=Uh(s)+Uh(o);for(let n=e;n<i-e;n++){const e=t.children[n];Gh(s,t.leaf?r(e):e),a+=Uh(s)}for(let n=i-e-1;n>=e;n--){const e=t.children[n];Gh(o,t.leaf?r(e):e),a+=Uh(o)}return a}_adjustParentBBoxes(t,e,i){for(let n=i;n>=0;n--)Gh(e[n],t)}_condense(t){for(let e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children,e.splice(e.indexOf(t[i]),1)):this.clear():Nh(t[i],this.toBBox)}}function Oh(t,e,i){if(!i)return e.indexOf(t);for(let n=0;n<e.length;n++)if(i(t,e[n]))return n;return-1}function Nh(t,e){Dh(t,0,t.children.length,e,t)}function Dh(t,e,i,n,r){r||(r=Wh(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(let s=e;s<i;s++){const e=t.children[s];Gh(r,t.leaf?n(e):e)}return r}function Gh(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function kh(t,e){return t.minX-e.minX}function jh(t,e){return t.minY-e.minY}function Bh(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function Uh(t){return t.maxX-t.minX+(t.maxY-t.minY)}function zh(t,e){const i=Math.max(t.minX,e.minX),n=Math.max(t.minY,e.minY),r=Math.min(t.maxX,e.maxX),s=Math.min(t.maxY,e.maxY);return Math.max(0,r-i)*Math.max(0,s-n)}function Xh(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function Vh(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function Wh(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Zh(t,e,i,n,r){const s=[e,i];for(;s.length;){if((i=s.pop())-(e=s.pop())<=n)continue;const o=e+Math.ceil((i-e)/n/2)*n;Ih(t,o,e,i,r),s.push(e,o,o,i)}}var Yh=class{constructor(t){this.rbush_=new Ah(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[V(e)]=i}load(t,e){const i=new Array(e.length);for(let n=0,r=e.length;n<r;n++){const r=t[n],s=e[n],o={minX:r[0],minY:r[1],maxX:r[2],maxY:r[3],value:s};i[n]=o,this.items_[V(s)]=o}this.rbush_.load(i)}remove(t){const e=V(t),i=this.items_[e];return delete this.items_[e],null!==this.rbush_.remove(i)}update(t,e){const i=this.items_[V(e)];re([i.minX,i.minY,i.maxX,i.maxY],t)||(this.remove(e),this.insert(t,e))}getAll(){return this.rbush_.all().map((function(t){return t.value}))}getInExtent(t){const e={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]};return this.rbush_.search(e).map((function(t){return t.value}))}forEach(t){return this.forEach_(this.getAll(),t)}forEachInExtent(t,e){return this.forEach_(this.getInExtent(t),e)}forEach_(t,e){let i;for(let n=0,r=t.length;n<r;n++)if(i=e(t[n]),i)return i;return i}isEmpty(){return v(this.items_)}clear(){this.rbush_.clear(),this.items_={}}getExtent(t){const e=this.rbush_.toJSON();return te(e.minX,e.minY,e.maxX,e.maxY,t)}concat(t){this.rbush_.load(t.rbush_.all());for(const e in t.items_)this.items_[e]=t.items_[e]}},Kh="addfeature",qh="changefeature",Hh="clear",$h="removefeature",Jh="featuresloadstart",Qh="featuresloadend",tc="featuresloaderror";class ec extends r{constructor(t,e,i){super(t),this.feature=e,this.features=i}}var ic=class extends rh{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=m,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(ht(this.format_,7),this.loader_=Pl(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:Il;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Yh:null,this.loadedExtentsRtree_=new Yh,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new $(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=V(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new ec(Kh,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[D(e,w,this.handleFeatureChange_,this),D(e,s,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(ht(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let e=0,n=t.length;e<n;e++){const n=t[e],r=V(n);this.addToIndex_(r,n)&&i.push(n)}for(let t=0,r=i.length;t<r;t++){const r=i[t],s=V(r);this.setupChangeEvents_(s,r);const o=r.getGeometry();if(o){const t=o.getExtent();e.push(t),n.push(r)}else this.nullGeometryFeatures_[s]=r}if(this.featuresRtree_&&this.featuresRtree_.load(e,n),this.hasListener(Kh))for(let t=0,e=i.length;t<e;t++)this.dispatchEvent(new ec(Kh,i[t]))}bindFeaturesCollection_(t){let e=!1;this.addEventListener(Kh,(function(i){e||(e=!0,t.push(i.feature),e=!1)})),this.addEventListener($h,(function(i){e||(e=!0,t.remove(i.feature),e=!1)})),t.addEventListener(Y,function(t){e||(e=!0,this.addFeature(t.element),e=!1)}.bind(this)),t.addEventListener(K,function(t){e||(e=!0,this.removeFeature(t.element),e=!1)}.bind(this)),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(k)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=function(t){this.removeFeatureInternal(t)}.bind(this);this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new ec(Hh);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){if(i.getGeometry().intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){if(i.getGeometry().intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),v(this.nullGeometryFeatures_)||u(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=Me(t,e);return[].concat(...i.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let r=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||f,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e.closestPointXY(i,n,s,o),o<l){r=t;const e=Math.sqrt(o);a[0]=i-e,a[1]=n-e,a[2]=i+e,a[3]=n+e}}})),r}getExtent(t){return this.featuresRtree_.getExtent(t)}getFeatureById(t){const e=this.idIndex_[t.toString()];return void 0!==e?e:null}getFeatureByUid(t){const e=this.uidIndex_[t];return void 0!==e?e:null}getFormat(){return this.format_}getOverlaps(){return this.overlaps_}getUrl(){return this.url_}handleFeatureChange_(t){const e=t.target,i=V(e),n=e.getGeometry();if(n){const t=n.getExtent();i in this.nullGeometryFeatures_?(delete this.nullGeometryFeatures_[i],this.featuresRtree_&&this.featuresRtree_.insert(t,e)):this.featuresRtree_&&this.featuresRtree_.update(t,e)}else i in this.nullGeometryFeatures_||(this.featuresRtree_&&this.featuresRtree_.remove(e),this.nullGeometryFeatures_[i]=e);const r=e.getId();if(void 0!==r){const t=r.toString();this.idIndex_[t]!==e&&(this.removeFromIdIndex_(e),this.idIndex_[t]=e)}else this.removeFromIdIndex_(e),this.uidIndex_[i]=e;this.changed(),this.dispatchEvent(new ec(qh,e))}hasFeature(t){const e=t.getId();return void 0!==e?e in this.idIndex_:V(t)in this.uidIndex_}isEmpty(){return this.featuresRtree_?this.featuresRtree_.isEmpty()&&v(this.nullGeometryFeatures_):!this.featuresCollection_||0===this.featuresCollection_.getLength()}loadFeatures(t,e,i){const n=this.loadedExtentsRtree_,r=this.strategy_(t,e,i);for(let t=0,s=r.length;t<s;++t){const s=r[t];n.forEachInExtent(s,(function(t){return Ht(t.extent,s)}))||(++this.loadingExtentsCount_,this.dispatchEvent(new ec(Jh)),this.loader_.call(this,s,e,i,function(t){--this.loadingExtentsCount_,this.dispatchEvent(new ec(Qh,void 0,t))}.bind(this),function(){--this.loadingExtentsCount_,this.dispatchEvent(new ec(tc))}.bind(this)),n.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(re(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=V(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=V(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(k),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new ec($h,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){ht(this.format_,7),this.url_=t,this.setLoader(Pl(t,this.format_))}};var nc=class extends ic{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return ht("Point"==e.getType(),10),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(w,this.boundRefresh_),this.source=t,t&&t.addEventListener(w,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,n=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,n&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=[1/0,1/0,-1/0,-1/0],e=this.distance*this.resolution,i=this.source.getFeatures(),n={};for(let r=0,s=i.length;r<s;r++){const s=i[r];if(!(V(s)in n)){const i=this.geometryFunction(s);if(i){ie(i.getCoordinates(),t),Zt(t,e,t);const r=this.source.getFeaturesInExtent(t).filter((function(t){const e=V(t);return!(e in n)&&(n[e]=!0,!0)}));this.features.push(this.createCluster(r,t))}}}}createCluster(t,e){const i=[0,0];for(let e=t.length-1;e>=0;--e){const n=this.geometryFunction(t[e]);n?xi(i,n.getCoordinates()):t.splice(e,1)}bi(i,1/t.length);const n=me(e),r=this.interpolationRatio,s=new Hn([i[0]*(1-r)+n[0]*r,i[1]*(1-r)+n[1]*r]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new dt({geometry:s,features:t})}};var rc=class extends lt{constructor(t,e,i,n,r,s,o,a,l,h,c){super({tileCoord:r,loader:function(){return y((function(){return new Uint8Array(4)}))},interpolate:h}),this.pixelRatio_=o,this.gutter_=a,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=s||r,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const u=n.getTileCoordExtent(this.wrappedTileCoord_),d=this.targetTileGrid_.getExtent();let g=this.sourceTileGrid_.getExtent();const f=d?Se(u,d):u;if(0===ge(f))return void(this.state=it);const p=t.getExtent();p&&(g=g?Se(g,p):p);const m=n.getResolution(this.wrappedTileCoord_[0]),_=ql(t,i,f,m);if(!isFinite(_)||_<=0)return void(this.state=it);const x=void 0!==c?c:$l;if(this.triangulation_=new Jl(t,i,f,g,_*x,m),0===this.triangulation_.getTriangles().length)return void(this.state=it);this.sourceZ_=e.getZForResolution(_);let v=this.triangulation_.calculateSourceExtent();if(g&&(t.canWrapX()?(v[1]=si(v[1],g[1],g[3]),v[3]=si(v[3],g[1],g[3])):v=Se(v,g)),ge(v)){const t=e.getTileRangeForExtentAndZ(v,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=l(this.sourceZ_,e,i,o);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=it)}else this.state=it}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach(function(e,i,n){if(e&&e.getState()==tt){const i=e.getSize(),n=this.gutter_,r=e.getData(),s=[i[0]+2*n,i[1]+2*n],o=r instanceof Float32Array,a=s[0]*s[1],l=o?Float32Array:Uint8Array,h=new l(r.buffer),c=l.BYTES_PER_ELEMENT,u=c*h.length/a,d=h.byteLength/s[1],g=Math.floor(d/c/s[0]),f=a*g;let p=h;if(h.length!==f){p=new l(f);let t=0,e=0;const i=s[0]*g;for(let n=0;n<s[1];++n){for(let n=0;n<i;++n)p[t++]=h[e+n];e+=d/c}}t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),data:new Uint8Array(p.buffer),dataType:l,bytesPerPixel:u,pixelSize:s})}}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=et;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);let l,h;const c=t[0].bytesPerPixel;for(let e=Math.ceil(c/3)-1;e>=0;--e){const i=[];for(let n=0,r=t.length;n<r;++n){const r=t[n],s=r.data,o=r.pixelSize,a=o[0],l=o[1],h=Xr(a,l,Wl),u=h.getImageData(0,0,a,l),d=u.data;let g=3*e;for(let t=0,e=d.length;t<e;t+=4)d[t]=s[g],d[t+1]=s[g+1],d[t+2]=s[g+2],d[t+3]=255,g+=c;h.putImageData(u,0,0),i.push({extent:r.extent,image:h.canvas})}const u=Hl(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,i,this.gutter_,!1,!1);for(let t=0,e=i.length;t<e;++t){const e=i[t].image.getContext("2d");Vr(e),Wl.push(e.canvas)}const d=u.getContext("2d"),g=d.getImageData(0,0,u.width,u.height);Vr(d),Wl.push(u),l||(h=new Uint8Array(c*g.width*g.height),l=new t[0].dataType(h.buffer));const f=g.data;let p=3*e;for(let t=0,e=f.length;t<e;t+=4)255===f[t+3]?(h[p]=f[t],h[p+1]=f[t+1],h[p+2]=f[t+2]):(h[p]=0,h[p+1]=0,h[p+2]=0),p+=c}this.reprojData_=l,this.reprojSize_=[Math.round(n*this.pixelRatio_),Math.round(r*this.pixelRatio_)],this.state=tt}this.changed()}load(){if(this.state!==J&&this.state!==et)return;this.state=Q,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,i,n){const r=e.getState();if(r==J||r==Q){t++;const i=D(e,w,(function(n){const r=e.getState();r!=tt&&r!=et&&r!=it||(k(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}}.bind(this)),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==J&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(k),this.sourcesListenerKeys_=null}};var sc=class extends ph{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=ch({extent:gh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?Qa(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?Qa(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||$i(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,n,r){const s=this.getTileCacheForProjection(n),o=ul(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((t,e)=>{const i=Qa(a.getTileSize(e)),n=this.getTileSize(e);return Math.max(n[0]/i[0],n[1]/i[1])}))),h=this.getTileGridForProjection(r),c=this.getTileGridForProjection(n),u=[t,e,i],d=this.getTileCoordForTileUrlFunction(u,n),g=new rc(r,h,n,c,u,d,l,this.getGutterForProjection(r),function(t,e,i,n){return this.getTile(t,e,i,n,r)}.bind(this),this.getInterpolate());return g.key=this.getKey(),g}getTile(t,e,i,n,r){const s=this.getProjection();if(s&&r&&!$i(s,r))return this.getReprojTile_(t,e,i,r,s);const o=this.getTileSize(t),a=ul(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const h=Object.assign({tileCoord:[t,e,i],loader:function(){return y((function(){return l(t,e,i)}))},size:o},this.tileOptions),c=new lt(h);return c.key=this.getKey(),c.addEventListener(w,this.handleTileChange_),this.tileCache.set(a,c),c}handleTileChange_(t){const e=t.target,i=V(e),n=e.getState();let r;n==Q?(this.tileLoadingKeys_[i]=!0,r=th):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==et?ih:n==tt?eh:void 0),r&&this.dispatchEvent(new fh(r,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||$i(e,t)))return this.tileGrid;const i=V(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=ah(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=Vi(t);if(i){const t=V(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||$i(e,t))return this.tileCache;const i=V(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new _l(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const n=this.tileCacheForProjection_[t];n.expireCache(n==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}};function oc(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,n=GeoTIFF.globals.photometricInterpretations;return i===n.CMYK||i===n.YCbCr||i===n.CIELab||i===n.ICCLab}const ac="STATISTICS_MAXIMUM",lc="STATISTICS_MINIMUM";let hc;function cc(t){try{return t.getBoundingBox()}catch(e){const i=t.fileDirectory;return[0,0,i.ImageWidth,i.ImageLength]}}function uc(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.fileDirectory.ImageLength]}}function dc(t,e){try{return t.getResolution(e)}catch(i){return[e.fileDirectory.ImageWidth/t.fileDirectory.ImageWidth,e.fileDirectory.ImageHeight/t.fileDirectory.ImageHeight]}}function gc(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=Vi(t);if(!i){const n=Oe(e.ProjLinearUnitsGeoKey);n&&(i=new De({code:t,units:n}))}return i}if(e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=Vi(t);if(!i){const n=Oe(e.GeogAngularUnitsGeoKey);n&&(i=new De({code:t,units:n}))}return i}return null}function fc(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let n=0;n<e;++n)i[n]=t.getImage(n);return Promise.all(i)}))}function pc(t,e){let i;return i=t.blob?GeoTIFF.fromBlob(t.blob):t.overviews?GeoTIFF.fromUrls(t.url,t.overviews,e):GeoTIFF.fromUrl(t.url,e),i.then(fc)}function mc(t,e,i,n,r){if(Array.isArray(t)){const s=t.length;if(!Array.isArray(e)||s!=e.length){const t=new Error(n);throw r(t),t}for(let o=0;o<s;++o)mc(t[o],e[o],i,n,r)}else if(Math.abs(t-e)>i*t)throw new Error(n)}function _c(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class yc extends sc{constructor(t){super({state:"loading",tileGrid:null,projection:null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map((t=>t.url)).join(","));const i=this,n=new Array(e);for(let t=0;t<e;++t)n[t]=pc(this.sourceInfo_[t],this.sourceOptions_);Promise.all(n).then((function(t){i.configure_(t)})).catch((function(t){console.error(t),i.error_=t,i.setState("error")}))}getError(){return this.error_}configure_(t){let e,i,n,r,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let h=0;const c=t.length;for(let u=0;u<c;++u){const c=[],d=[];t[u].forEach((t=>{4==(4&(t.fileDirectory.NewSubfileType||0))?d.push(t):c.push(t)}));const g=c.length;if(d.length>0&&d.length!==g)throw new Error(`Expected one mask per image found ${d.length} masks and ${g} images`);let f,p;const m=new Array(g),_=new Array(g),y=new Array(g);a[u]=new Array(g),l[u]=new Array(g);for(let t=0;t<g;++t){const e=c[t],i=e.getGDALNoData();l[u][t]=e.getGDALMetadata(0),a[u][t]=i;const n=this.sourceInfo_[u].bands;o[u]=n?n.length:e.getSamplesPerPixel();const r=g-(t+1);f||(f=cc(e)),p||(p=uc(e));const s=dc(e,c[0]);y[r]=s[0];const h=[e.getTileWidth(),e.getTileHeight()];m[r]=h;const d=s[0]/Math.abs(s[1]);_[r]=[h[0],h[1]/d]}if(e?Se(e,f,e):e=f,i){mc(i,p,0,`Origin mismatch for source ${u}, got [${p}] but expected [${i}]`,this.viewRejector)}else i=p;if(s){s.length-h>y.length&&(h=s.length-y.length);const t=s[s.length-1]/y[y.length-1];this.resolutionFactors_[u]=t;const e=y.map((e=>e*t)),i=`Resolution mismatch for source ${u}, got [${e}] but expected [${s}]`;mc(s.slice(h,s.length),e,.02,i,this.viewRejector)}else s=y,this.resolutionFactors_[u]=1;n?mc(n.slice(h,n.length),_,.01,`Tile size mismatch for source ${u}`,this.viewRejector):n=_,r?mc(r.slice(h,r.length),m,0,`Tile size mismatch for source ${u}`,this.viewRejector):r=m,this.sourceImagery_[u]=c.reverse(),this.sourceMasks_[u]=d.reverse()}for(let t=0,e=this.sourceImagery_.length;t<e;++t){const e=this.sourceImagery_[t];for(;e.length<s.length;)e.unshift(void 0)}if(!this.getProjection()){const e=t[0];for(let t=e.length-1;t>=0;--t){const i=gc(e[t]);if(i){this.projection=i;break}}}this.samplesPerPixel_=o,this.nodataValues_=a,this.metadata_=l;t:for(let t=0;t<c;++t){if(void 0!==this.sourceInfo_[t].nodata){this.addAlpha_=!0;break}if(this.sourceMasks_[t].length){this.addAlpha_=!0;break}const e=a[t],i=this.sourceInfo_[t].bands;if(i){for(let t=0;t<i.length;++t)if(null!==e[i[t]-1]){this.addAlpha_=!0;break t}}else for(let t=0;t<e.length;++t)if(null!==e[t]){this.addAlpha_=!0;break t}}let u=this.addAlpha_?1:0;for(let t=0;t<c;++t)u+=o[t];this.bandCount=u;const d=new oh({extent:e,minZoom:h,origin:i,resolutions:s,tileSizes:n});this.tileGrid=d,this.setTileSizes(r),this.setLoader(this.loadTile_.bind(this)),this.setState("ready");let g=0;1===s.length&&(s=[2*s[0],s[0]],g=1),this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:on(me(e),this.projection),extent:ln(e,this.projection),zoom:g})}loadTile_(t,e,i){const n=this.getTileSize(t),r=this.sourceImagery_.length,s=new Array(2*r),o=this.nodataValues_,a=this.sourceInfo_,l=(hc||(hc=new GeoTIFF.Pool),hc);for(let h=0;h<r;++h){const c=a[h],u=this.resolutionFactors_[h],d=[Math.round(e*(n[0]*u)),Math.round(i*(n[1]*u)),Math.round((e+1)*(n[0]*u)),Math.round((i+1)*(n[1]*u))],g=this.sourceImagery_[h][t];let f,p;c.bands&&(f=c.bands.map((function(t){return t-1}))),p="nodata"in c&&null!==c.nodata?c.nodata:f?f.map((function(t){return o[h][t]})):o[h];const m={window:d,width:n[0],height:n[1],samples:f,fillValue:p,pool:l,interleave:!1};oc(this.convertToRGB_,g)?s[h]=g.readRGB(m):s[h]=g.readRasters(m);const _=r+h,y=this.sourceMasks_[h][t];y?s[_]=y.readRasters({window:d,width:n[0],height:n[1],samples:[0],pool:l,interleave:!1}):s[_]=Promise.resolve(null)}return Promise.all(s).then(this.composeTile_.bind(this,n)).catch((function(t){throw console.error(t),t}))}composeTile_(t,e){const i=this.metadata_,n=this.sourceInfo_,r=this.sourceImagery_.length,s=this.bandCount,o=this.samplesPerPixel_,a=this.nodataValues_,l=this.normalize_,h=this.addAlpha_,c=t[0]*t[1],u=c*s;let d;d=l?new Uint8Array(u):new Float32Array(u);let g=0;for(let t=0;t<c;++t){let s=h;for(let c=0;c<r;++c){const u=n[c];let p,m,_=u.min,y=u.max;if(l){const t=i[c][0];void 0===_&&(_=t&&lc in t?parseFloat(t.STATISTICS_MINIMUM):(f=e[c][0])instanceof Int8Array?-128:f instanceof Int16Array?-32768:f instanceof Int32Array?-2147483648:f instanceof Float32Array?12e-39:0),void 0===y&&(y=t&&ac in t?parseFloat(t.STATISTICS_MAXIMUM):_c(e[c][0])),p=255/(y-_),m=-_*p}for(let i=0;i<o[c];++i){const n=e[c][i][t];let r;if(r=l?si(p*n+m,0,255):n,h){let t=u.nodata;if(void 0===t){let e;e=u.bands?u.bands[i]-1:i,t=a[c][e]}const e=isNaN(t);(!e&&n!==t||e&&!isNaN(n))&&(s=!1,d[g]=r)}else d[g]=r;g++}if(!s){const i=e[r+c];i&&!i[0][t]&&(s=!0)}}h&&(s||(d[g]=255),g++)}var f;return d}}yc.prototype.getView;var xc=yc;class vc extends $r{constructor(t,e,i,n,r,s,o){super(e,i,n,r,s,o),this.zoomifyImage_=null,this.tileSize_=t}getImage(){if(this.zoomifyImage_)return this.zoomifyImage_;const t=super.getImage();if(this.state==tt){const e=this.tileSize_;if(t.width==e[0]&&t.height==e[1])return this.zoomifyImage_=t,t;const i=Xr(e[0],e[1]);return i.drawImage(t,0,0),this.zoomifyImage_=i.canvas,i.canvas}return t}}var Sc=class extends Eh{constructor(t){const e=t.size,i=void 0!==t.tierSizeCalculation?t.tierSizeCalculation:"default",n=t.tilePixelRatio||1,r=e[0],s=e[1],o=[],a=t.tileSize||jo;let l=a*n;switch(i){case"default":for(;r>l||s>l;)o.push([Math.ceil(r/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=r,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:ht(!1,53)}o.push([1,1]),o.reverse();const h=[n],c=[0];for(let t=1,e=o.length;t<e;t++)h.push(n<<t),c.push(o[t-1][0]*o[t-1][1]+c[t-1]);h.reverse();const u=new oh({tileSize:a,extent:t.extent||[0,-s,r,0],resolutions:h});let d=t.url;!d||d.includes("{TileGroup}")||d.includes("{tileIndex}")||(d+="{TileGroup}/{z}-{x}-{y}.jpg");const g=vh(d);let f=a*n;const p=yh(g.map((function(t){return function(e,i,n){if(!e)return;const r=e[0],s=e[1],a=e[2],l=s+a*o[r][0],h={z:r,x:s,y:a,tileIndex:l,TileGroup:"TileGroup"+((l+c[r])/f|0)};return t.replace(/\{(\w+?)\}/g,(function(t,e){return h[e]}))}}))),m=vc.bind(null,Qa(a*n));super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,tilePixelRatio:n,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:m,tileGrid:u,tileUrlFunction:p,transition:t.transition}),this.zDirection=t.zDirection;const _=p(u.getTileCoordForCoordAndResolution(me(u.getExtent()),h[h.length-1]),1,null),y=new Image;y.addEventListener("error",function(){f=a,this.changed()}.bind(this)),y.src=_}};const wc="version1",Tc="version2",Ec="version3",Cc={};Cc[wc]={level0:{supports:[],formats:[],qualities:["native"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["native"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["native","color","grey","bitonal"]}},Cc[Tc]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByDistortedWh","sizeByWh"],formats:["jpg","png"],qualities:["default","bitonal"]}},Cc[Ec]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","regionSquare","sizeByW","sizeByH","sizeByWh"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionSquare","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["default"]}},Cc.none={none:{supports:[],formats:[],qualities:[]}};const bc=/^https?:\/\/library\.stanford\.edu\/iiif\/image-api\/(?:1\.1\/)?compliance\.html#level[0-2]$/,Rc=/^https?:\/\/iiif\.io\/api\/image\/2\/level[0-2](?:\.json)?$/,Pc=/(^https?:\/\/iiif\.io\/api\/image\/3\/level[0-2](?:\.json)?$)|(^level[0-2]$)/;const Ic={};Ic[wc]=function(t){let e=t.getComplianceLevelSupportedFeatures();return void 0===e&&(e=Cc[wc].level0),{url:void 0===t.imageInfo["@id"]?void 0:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),supports:e.supports,formats:[...e.formats,void 0===t.imageInfo.formats?[]:t.imageInfo.formats],qualities:[...e.qualities,void 0===t.imageInfo.qualities?[]:t.imageInfo.qualities],resolutions:t.imageInfo.scale_factors,tileSize:void 0!==t.imageInfo.tile_width?void 0!==t.imageInfo.tile_height?[t.imageInfo.tile_width,t.imageInfo.tile_height]:[t.imageInfo.tile_width,t.imageInfo.tile_width]:null!=t.imageInfo.tile_height?[t.imageInfo.tile_height,t.imageInfo.tile_height]:void 0}},Ic[Tc]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=Array.isArray(t.imageInfo.profile)&&t.imageInfo.profile.length>1,n=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],r=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...n],formats:[...e.formats,...r],qualities:[...e.qualities,...s]}},Ic[Ec]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:n}};var Lc=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e<t.length;e++)switch(t[e]){case"http://library.stanford.edu/iiif/image-api/1.1/context.json":case"http://iiif.io/api/image/1/context.json":return wc;case"http://iiif.io/api/image/2/context.json":return Tc;case"http://iiif.io/api/image/3/context.json":return Ec;case"ol-no-context":if(this.getComplianceLevelEntryFromProfile(wc)&&this.imageInfo.identifier)return wc}ht(!1,61)}getComplianceLevelEntryFromProfile(t){if(void 0!==this.imageInfo&&void 0!==this.imageInfo.profile)switch(void 0===t&&(t=this.getImageApiVersion()),t){case wc:if(bc.test(this.imageInfo.profile))return this.imageInfo.profile;break;case Ec:if(Pc.test(this.imageInfo.profile))return this.imageInfo.profile;break;case Tc:if("string"==typeof this.imageInfo.profile&&Rc.test(this.imageInfo.profile))return this.imageInfo.profile;if(Array.isArray(this.imageInfo.profile)&&this.imageInfo.profile.length>0&&"string"==typeof this.imageInfo.profile[0]&&Rc.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?Cc.none.none:Cc[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const n=void 0===i?void 0:Ic[i](this);return void 0!==n?{url:n.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}:void 0}};function Fc(t){return t.toLocaleString("en",{maximumFractionDigits:10})}var Mc=class extends Eh{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const n=e.version||Tc,r=e.sizes||[],s=e.size;ht(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,60);const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==wc?"native":"default");let d=e.resolutions||[];const g=e.supports||[],f=e.extent||[0,-a,o,0],p=null!=r&&Array.isArray(r)&&r.length>0,m=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),_=null!=g&&Array.isArray(g)&&(g.includes("regionByPx")||g.includes("regionByPct"))&&(g.includes("sizeByWh")||g.includes("sizeByH")||g.includes("sizeByW")||g.includes("sizeByPct"));let y,x,v;if(d.sort((function(t,e){return e-t})),m||_)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(y=l,x=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(y=l[0],x=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(y=l[0],x=l[1]):null==l[0]&&Number.isInteger(l[1])&&(y=l[1],x=l[1])))),void 0!==y&&void 0!==x||(y=jo,x=jo),0==d.length){v=Math.max(Math.ceil(Math.log(o/y)/Math.LN2),Math.ceil(Math.log(a/x)/Math.LN2));for(let t=v;t>=0;t--)d.push(Math.pow(2,t))}else{const t=Math.max(...d);v=Math.round(Math.log(t)/Math.LN2)}else if(y=o,x=a,d=[],p){r.sort((function(t,e){return t[0]-e[0]})),v=-1;const t=[];for(let e=0;e<r.length;e++){const i=o/r[e][0];d.length>0&&d[d.length-1]==i?t.push(e):(d.push(i),v++)}if(t.length>0)for(let e=0;e<t.length;e++)r.splice(t[e]-e,1)}else d.push(1),r.push([o,a]),v=0;const S=new oh({tileSize:[y,x],extent:f,origin:we(f),resolutions:d}),w=vc.bind(null,Qa(l||256).map((function(t){return t*h})));super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:e.state,tileClass:w,tileGrid:S,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:function(t,e,s){let l,h;const f=t[0];if(f>v)return;const S=t[1],w=t[2],T=d[f];if(!(void 0===S||void 0===w||void 0===T||S<0||Math.ceil(o/T/y)<=S||w<0||Math.ceil(a/T/x)<=w)){if(_||m){const t=S*y*T,e=w*x*T;let i=y*T,r=x*T,s=y,c=x;if(t+i>o&&(i=o-t),e+r>a&&(r=a-e),t+y*T>o&&(s=Math.floor((o-t+T-1)/T)),e+x*T>a&&(c=Math.floor((a-e+T-1)/T)),0==t&&i==o&&0==e&&r==a)l="full";else if(!_||g.includes("regionByPx"))l=t+","+e+","+i+","+r;else if(g.includes("regionByPct")){l="pct:"+Fc(t/o*100)+","+Fc(e/a*100)+","+Fc(i/o*100)+","+Fc(r/a*100)}n!=Ec||_&&!g.includes("sizeByWh")?!_||g.includes("sizeByW")?h=s+",":g.includes("sizeByH")?h=","+c:g.includes("sizeByWh")?h=s+","+c:g.includes("sizeByPct")&&(h="pct:"+Fc(100/T)):h=s+","+c}else if(l="full",p){const t=r[f][0],e=r[f][1];h=n==Ec?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=n==Ec?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}};var Ac=class extends Or{constructor(t,e,i,n,r,s,o){const a=t.getExtent(),l=e.getExtent(),h=l?Se(i,l):i,c=Kl(t,e,me(h),n),u=new Jl(t,e,h,a,.5*c,n),d=s(u.calculateSourceExtent(),c,r),g=d?Nr:jr,f=d?d.getPixelRatio():1;super(i,n,f,g),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=u,this.targetResolution_=n,this.targetExtent_=i,this.sourceImage_=d,this.sourcePixelRatio_=f,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){this.state==Dr&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(t==Gr){const t=Ee(this.targetExtent_)/this.targetResolution_,e=ve(this.targetExtent_)/this.targetResolution_;this.canvas_=Hl(t,e,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_)}this.state=t,this.changed()}load(){if(this.state==Nr){this.state=Dr,this.changed();const t=this.sourceImage_.getState();t==Gr||t==kr?this.reproject_():(this.sourceListenerKey_=D(this.sourceImage_,w,(function(t){const e=this.sourceImage_.getState();e!=Gr&&e!=kr||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}}unlistenSource_(){k(this.sourceListenerKey_),this.sourceListenerKey_=null}};const Oc="imageloadstart",Nc="imageloadend",Dc="imageloaderror";class Gc extends r{constructor(t,e){super(t),this.image=e}}function kc(t,e){t.getImage().src=e}var jc=class extends rh{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0}getResolutions(){return this.resolutions_}findNearestResolution(t){if(this.resolutions_){const e=h(this.resolutions_,t,0);t=this.resolutions_[e]}return t}getImage(t,e,i,n){const r=this.getProjection();if(!r||!n||$i(r,n))return r&&(n=r),this.getImageInternal(t,e,i,n);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&$i(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&re(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Ac(r,n,t,e,i,function(t,e,i){return this.getImageInternal(t,e,i,r)}.bind(this),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,n){return z()}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case Dr:this.loading=!0,i=Oc;break;case Gr:this.loading=!1,i=Nc;break;case kr:this.loading=!1,i=Dc;break;default:return}this.hasListener(i)&&this.dispatchEvent(new Gc(i,e))}};function Bc(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const n=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+n}var Uc=class extends jc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:kc,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getParams(){return this.params_}getImageInternal(t,e,i,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;const r=this.image_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Ht(r.getExtent(),t))return r;const s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(s,this.params_);const o=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){const e=this.ratio_*Ee(t)/2,i=this.ratio_*ve(t)/2;t[0]=o-e,t[1]=a-i,t[2]=o+e,t[3]=a+i}const l=e/i,h=Math.ceil(Ee(t)/l),c=Math.ceil(ve(t)/l);t[0]=o-l*h/2,t[2]=o+l*h/2,t[1]=a-l*c/2,t[3]=a+l*c/2,this.imageSize_[0]=h,this.imageSize_[1]=c;const u=this.getRequestUrl_(t,this.imageSize_,i,n,s);return this.image_=new Ur(t,e,i,u,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(w,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,n,r){const s=n.getCode().split(/:(?=\d+$)/).pop();r.SIZE=e[0]+","+e[1],r.BBOX=t.join(","),r.BBOXSR=s,r.IMAGESR=s,r.DPI=Math.round(90*i);const o=this.url_,a=o.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==o&&ht(!1,50),Bc(a,r)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}};var zc=class extends jc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,n){e=this.findNearestResolution(e);let r=this.canvas_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Ht(r.getExtent(),t))return r;Pe(t=t.slice(),this.ratio_);const s=[Ee(t)/e*i,ve(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,n);return o&&(r=new zr(t,e,i,o)),this.canvas_=r,this.renderedRevision_=this.getRevision(),r}};var Xc=class extends jc{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:kc,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0}getParams(){return this.params_}getImageInternal(t,e,i,n){e=this.findNearestResolution(e),i=this.hidpi_?i:1;let r=this.image_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Ht(r.getExtent(),t))return r;1!=this.ratio_&&Pe(t=t.slice(),this.ratio_);const s=[Ee(t)/e*i,ve(t)/e*i];if(void 0!==this.url_){const o=this.getUrl(this.url_,this.params_,t,s,n);r=new Ur(t,e,i,o,this.crossOrigin_,this.imageLoadFunction_),r.addEventListener(w,this.handleImageChange.bind(this))}else r=null;return this.image_=r,this.renderedRevision_=this.getRevision(),r}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}getUrl(t,e,i,n,r){const s=function(t,e,i,n){const r=Ee(t),s=ve(t),o=e[0],a=e[1],l=.0254/n;if(a*r>o*s)return r*i/(o*l);return s*i/(a*l)}(i,n,this.metersPerUnit_,this.displayDpi_),o=me(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:s,SETVIEWCENTERX:o[0],SETVIEWCENTERY:o[1]};return Object.assign(a,e),Bc(t,a)}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}};var Vc=class extends jc{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:kc;super({attributions:t.attributions,interpolate:t.interpolate,projection:Vi(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image_=new Ur(this.imageExtent_,void 0,1,this.url_,e,i),this.imageSize_=t.imageSize?t.imageSize:null,this.image_.addEventListener(w,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,n){return Ce(t,this.image_.getExtent())?this.image_:null}getUrl(){return this.url_}handleImageChange(t){if(this.image_.getState()==Gr){const t=this.image_.getExtent(),e=this.image_.getImage();let i,n;this.imageSize_?(i=this.imageSize_[0],n=this.imageSize_[1]):(i=e.width,n=e.height);const r=Ee(t),s=ve(t),o=r/i,a=s/n;let l=i,h=n;if(o>a?l=Math.round(r/a):h=Math.round(s/o),l!==i||h!==n){const t=Xr(l,h);this.getInterpolate()||(t.imageSmoothingEnabled=!1);const r=t.canvas;t.drawImage(e,0,0,i,n,0,0,r.width,r.height),this.image_.setImage(r)}}super.handleImageChange(t)}};const Wc="1.3.0",Zc=[101,101];var Yc=class extends jc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:kc,this.params_=Object.assign({},t.params),this.v13_=!0,this.updateV13_(),this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getFeatureInfoUrl(t,e,i,n){if(void 0===this.url_)return;const r=Vi(i),s=this.getProjection();s&&s!==r&&(e=Kl(s,r,t,e),t=tn(t,r,s));const o=ye(t,e,0,Zc),a={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(a,this.params_,n);const l=pi((t[0]-o[0])/e,4),h=pi((o[3]-t[1])/e,4);return a[this.v13_?"I":"X"]=l,a[this.v13_?"J":"Y"]=h,this.getRequestUrl_(o,Zc,1,s||r,a)}getLegendUrl(t,e){if(void 0===this.url_)return;const i={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),Bc(this.url_,i)}getParams(){return this.params_}getImageInternal(t,e,i,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);const r=e/i,s=me(t),o=ye(s,r,0,[mi(Ee(t)/r,4),mi(ve(t)/r,4)]),a=ye(s,r,0,[mi(this.ratio_*Ee(t)/r,4),mi(this.ratio_*ve(t)/r,4)]),l=this.image_;if(l&&this.renderedRevision_==this.getRevision()&&l.getResolution()==e&&l.getPixelRatio()==i&&Ht(l.getExtent(),o))return l;const h={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Object.assign(h,this.params_),this.imageSize_[0]=fi(Ee(a)/r,4),this.imageSize_[1]=fi(ve(a)/r,4);const c=this.getRequestUrl_(a,this.imageSize_,i,n,h);return this.image_=new Ur(a,e,i,c,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(w,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,n,r){if(ht(void 0!==this.url_,9),r[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(r.STYLES=""),1!=i)switch(this.serverType_){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in r?r.FORMAT_OPTIONS+=";dpi:"+t:r.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":r.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":r.DPI=90*i;break;default:ht(!1,8)}r.WIDTH=e[0],r.HEIGHT=e[1];const s=n.getAxisOrientation();let o;return o=this.v13_&&"ne"==s.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,r.BBOX=o.join(","),Bc(this.url_,r)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.image_=null,this.changed()}updateV13_(){const t=this.params_.VERSION||Wc;this.v13_=yi(t,"1.3")>=0}};const Kc='© <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors.';var qc=class extends Rh{constructor(t){let e;e=void 0!==(t=t||{}).attributions?t.attributions:[Kc];const i=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",n=void 0!==t.url?t.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:e,attributionsCollapsible:!1,cacheSize:t.cacheSize,crossOrigin:i,interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:19,opaque:void 0===t.opaque||t.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:n,wrapX:t.wrapX,zDirection:t.zDirection})}};var Hc=class extends Is{constructor(t){super(t=t||{})}};var $c=class extends U{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return z()}getData(t){return null}prepareFrame(t){return z()}renderFrame(t,e){return z()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return function(n,r){const s=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,r,s)}.bind(this)}forEachFeatureAtCoordinate(t,e,i,n,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){t.target.getState()===Gr&&this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=Gr&&e!=kr&&t.addEventListener(w,this.boundHandleImageChange_),e==Nr&&(t.load(),e=t.getState()),e==Gr}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}};const Jc=[];let Qc=null;var tu=class extends $c{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=[1,0,0,1,0,0],this.pixelTransform=[1,0,0,1,0,0],this.inversePixelTransform=[1,0,0,1,0,0],this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;Qc||function(){const t=document.createElement("canvas");t.width=1,t.height=1,Qc=t.getContext("2d")}(),Qc.clearRect(0,0,1,1);try{Qc.drawImage(t,e,i,1,1,0,0,1,1),n=Qc.getImageData(0,0,1,1).data}catch(t){return Qc=null,null}return n}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let r,s;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&d(rs(t.style.backgroundColor),rs(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused&&(this.container=null,this.context=null,this.containerReused=!1),!this.container){r=document.createElement("div"),r.className=n;let t=r.style;t.position="absolute",t.width="100%",t.height="100%",s=Xr();const e=s.canvas;r.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=r,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=we(i),r=Te(i),s=pe(i),o=fe(i);It(e.coordinateToPixelTransform,n),It(e.coordinateToPixelTransform,r),It(e.coordinateToPixelTransform,s),It(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;It(a,n),It(a,r),It(a,s),It(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const r=new Ms(t,this.inversePixelTransform,i,e);n.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(Ts,t,e)}postRender(t,e){this.dispatchRenderEvent_(Es,t,e)}getRenderTransform(t,e,i,n,r,s,o){const a=r/2,l=s/2,h=n/e,c=-h,u=-t[0]+o,d=-t[1];return Ot(this.tempTransform,a,l,h,c,-i,u,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}};var eu=class extends tu{constructor(t){super(t),this.image_=null}getImage(){return this.image_?this.image_.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],i=t.pixelRatio,n=t.viewState,r=n.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=Se(a,hn(e.extent,n.projection))),!o[Do]&&!o[Go]&&!be(a))if(s){const t=n.projection,e=s.getImage(a,r,i,t);e&&(this.loadImage(e)?this.image_=e:e.getState()===jr&&(this.image_=null))}else this.image_=null;return!!this.image_}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=It(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!qt(r,n))return null;const s=this.image_.getExtent(),o=this.image_.getImage(),a=Ee(s),l=Math.floor(o.width*((n[0]-s[0])/a));if(l<0||l>=o.width)return null;const h=ve(s),c=Math.floor(o.height*((s[3]-n[1])/h));return c<0||c>=o.height?null:this.getImageData(o,l,c)}renderFrame(t,e){const i=this.image_,n=i.getExtent(),r=i.getResolution(),s=i.getPixelRatio(),o=t.layerStatesArray[t.layerIndex],a=t.pixelRatio,l=t.viewState,h=l.center,c=a*r/(l.resolution*s),u=t.extent,d=l.resolution,g=l.rotation,f=Math.round(Ee(u)/d*a),p=Math.round(ve(u)/d*a);Ot(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/a,1/a,g,-f/2,-p/2),Nt(this.inversePixelTransform,this.pixelTransform);const m=kt(this.pixelTransform);this.useContainer(e,m,this.getBackground(t));const _=this.context,y=_.canvas;y.width!=f||y.height!=p?(y.width=f,y.height=p):this.containerReused||_.clearRect(0,0,f,p);let x=!1,v=!0;if(o.extent){const e=hn(o.extent,l.projection);v=Ce(e,t.extent),x=v&&!Ht(e,t.extent),x&&this.clipUnrotated(_,t,e)}const S=i.getImage(),w=Ot(this.tempTransform,f/2,p/2,c,c,0,s*(n[0]-h[0])/r,s*(h[1]-n[3])/r);this.renderedResolution=r*a/s;const T=S.width*w[0],E=S.height*w[3];if(this.getLayer().getSource().getInterpolate()||(_.imageSmoothingEnabled=!1),this.preRender(_,t),v&&T>=.5&&E>=.5){const t=w[4],e=w[5],i=o.opacity;let n;1!==i&&(n=_.globalAlpha,_.globalAlpha=i),_.drawImage(S,0,0,+S.width,+S.height,t,e,T,E),1!==i&&(_.globalAlpha=n)}return this.postRender(_,t),x&&_.restore(),_.imageSmoothingEnabled=!0,m!==y.style.transform&&(y.style.transform=m),this.container}};var iu=class extends Hc{constructor(t){super(t)}createRenderer(){return new eu(this)}getData(t){return super.getData(t)}},nu="preload",ru="useInterimTilesOnError";var su=class extends Is{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(nu)}setPreload(t){this.set(nu,t)}getUseInterimTilesOnError(){return this.get(ru)}setUseInterimTilesOnError(t){this.set(ru,t)}getData(t){return super.getData(t)}};var ou=class extends tu{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new vl(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==tt||i==it||i==et&&!n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState.projection,o=this.getLayer();let a=o.getSource().getTile(t,e,i,r,s);return a.getState()==et&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(a)||(a=a.getInterimTile()),a}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=It(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!qt(r,n))return null;const s=e.pixelRatio,o=e.viewState.projection,a=e.viewState,l=i.getRenderSource(),h=l.getTileGridForProjection(a.projection),c=l.getTilePixelRatio(e.pixelRatio);for(let t=h.getZForResolution(a.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=l.getTile(t,e[1],e[2],s,o);if(!(i instanceof $r||i instanceof Ql)||i instanceof Ql&&i.getState()===it)return null;if(i.getState()!==tt)continue;const r=h.getOrigin(t),u=Qa(h.getTileSize(t)),d=h.getResolution(t),g=Math.floor(c*((n[0]-r[0])/d-e[1]*u[0])),f=Math.floor(c*((r[1]-n[1])/d-e[2]*u[1])),p=Math.round(c*l.getGutterForProjection(a.projection));return this.getImageData(i.getImage(),g+p,f+p)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,r=n.projection,s=n.resolution,o=n.center,a=n.rotation,h=t.pixelRatio,c=this.getLayer(),u=c.getSource(),d=u.getRevision(),g=u.getTileGridForProjection(r),f=g.getZForResolution(s,u.zDirection),p=g.getResolution(f);let m=t.extent;const _=t.viewState.resolution,y=u.getTilePixelRatio(h),x=Math.round(Ee(m)/_*h),v=Math.round(ve(m)/_*h),S=i.extent&&hn(i.extent,r);S&&(m=Se(m,hn(i.extent,r)));const w=p*x/2/y,T=p*v/2/y,E=[o[0]-w,o[1]-T,o[0]+w,o[1]+T],C=g.getTileRangeForExtentAndZ(m,f),b={};b[f]={};const R=this.createLoadedTileFinder(u,r,b),P=this.tmpExtent,I=this.tmpTileRange_;this.newTiles_=!1;const L=a?xe(n.center,_,a,t.size):void 0;for(let e=C.minX;e<=C.maxX;++e)for(let n=C.minY;n<=C.maxY;++n){if(a&&!g.tileCoordIntersectsViewport([f,e,n],L))continue;const r=this.getTile(f,e,n,t);if(this.isDrawableTile(r)){const e=V(this);if(r.getState()==tt){b[f][r.tileCoord.toString()]=r;let t=r.inTransition(e);t&&1!==i.opacity&&(r.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(r)||(this.newTiles_=!0)}if(1===r.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(r.tileCoord,I,P);let o=!1;s&&(o=R(f+1,s)),o||g.forEachTileCoordParentTileRange(r.tileCoord,R,I,P)}const F=p/s*h/y;Ot(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,a,-x/2,-v/2);const M=kt(this.pixelTransform);this.useContainer(e,M,this.getBackground(t));const A=this.context,O=A.canvas;Nt(this.inversePixelTransform,this.pixelTransform),Ot(this.tempTransform,x/2,v/2,F,F,0,-x/2,-v/2),O.width!=x||O.height!=v?(O.width=x,O.height=v):this.containerReused||A.clearRect(0,0,x,v),S&&this.clipUnrotated(A,t,S),u.getInterpolate()||(A.imageSmoothingEnabled=!1),this.preRender(A,t),this.renderedTiles.length=0;let N,D,G,k=Object.keys(b).map(Number);k.sort(l),1!==i.opacity||this.containerReused&&!u.getOpaque(t.viewState.projection)?(N=[],D=[]):k=k.reverse();for(let e=k.length-1;e>=0;--e){const i=k[e],n=u.getTilePixelSize(i,h,r),s=g.getResolution(i)/p,o=n[0]*s*F,a=n[1]*s*F,l=g.getTileCoordForCoordAndZ(we(E),i),c=g.getTileCoordExtent(l),d=It(this.tempTransform,[y*(c[0]-E[0])/p,y*(E[3]-c[3])/p]),m=y*u.getGutterForProjection(r),_=b[i];for(const e in _){const n=_[e],r=n.tileCoord,s=l[1]-r[1],h=Math.round(d[0]-(s-1)*o),c=l[2]-r[2],g=Math.round(d[1]-(c-1)*a),p=Math.round(d[0]-s*o),y=Math.round(d[1]-c*a),x=h-p,v=g-y,S=f===i,w=S&&1!==n.getAlpha(V(this),t.time);let T=!1;if(!w)if(N){G=[p,y,p+x,y,p+x,y+v,p,y+v];for(let t=0,e=N.length;t<e;++t)if(f!==i&&i<D[t]){const e=N[t];Ce([p,y,p+x,y+v],[e[0],e[3],e[4],e[7]])&&(T||(A.save(),T=!0),A.beginPath(),A.moveTo(G[0],G[1]),A.lineTo(G[2],G[3]),A.lineTo(G[4],G[5]),A.lineTo(G[6],G[7]),A.moveTo(e[6],e[7]),A.lineTo(e[4],e[5]),A.lineTo(e[2],e[3]),A.lineTo(e[0],e[1]),A.clip())}N.push(G),D.push(i)}else A.clearRect(p,y,x,v);this.drawTileImage(n,t,p,y,x,v,m,S),N&&!w?(T&&A.restore(),this.renderedTiles.unshift(n)):this.renderedTiles.push(n),this.updateUsedTiles(t.usedTiles,u,n)}}return this.renderedRevision=d,this.renderedResolution=p,this.extentChanged=!this.renderedExtent_||!re(this.renderedExtent_,E),this.renderedExtent_=E,this.renderedPixelRatio=h,this.renderedProjection=r,this.manageTilePyramid(t,u,g,h,r,m,f,c.getPreload()),this.scheduleExpireCache(t,u),this.postRender(A,t),i.extent&&A.restore(),A.imageSmoothingEnabled=!0,M!==O.style.transform&&(O.style.transform=M),this.container}drawTileImage(t,e,i,n,r,s,o,a){const l=this.getTileImage(t);if(!l)return;const h=V(this),c=e.layerStatesArray[e.layerIndex],u=c.opacity*(a?t.getAlpha(h,e.time):1),d=u!==this.context.globalAlpha;d&&(this.context.save(),this.context.globalAlpha=u),this.context.drawImage(l,o,o,l.width-2*o,l.height-2*o,i,n,r,s),d&&this.context.restore(),u!==c.opacity?e.animate=!0:a&&t.endTransition(h)}getImage(){const t=this.context;return t?t.canvas:null}getTileImage(t){return t.getImage()}scheduleExpireCache(t,e){if(e.canExpireCache()){const i=function(t,e,i){const n=V(t);n in i.usedTiles&&t.expireCache(i.viewState.projection,i.usedTiles[n])}.bind(null,e);t.postRenderFunctions.push(i)}}updateUsedTiles(t,e,i){const n=V(e);n in t||(t[n]={}),t[n][i.getKey()]=!0}manageTilePyramid(t,e,i,n,r,s,o,a,l){const h=V(e);h in t.wantedTiles||(t.wantedTiles[h]={});const c=t.wantedTiles[h],u=t.tileQueue,d=i.getMinZoom(),g=t.viewState.rotation,f=g?xe(t.viewState.center,t.viewState.resolution,g,t.size):void 0;let p,m,_,y,x,v,S=0;for(v=d;v<=o;++v)for(m=i.getTileRangeForExtentAndZ(s,v,m),_=i.getResolution(v),y=m.minX;y<=m.maxX;++y)for(x=m.minY;x<=m.maxY;++x)g&&!i.tileCoordIntersectsViewport([v,y,x],f)||(o-v<=a?(++S,p=e.getTile(v,y,x,n,r),p.getState()==J&&(c[p.getKey()]=!0,u.isKeyQueued(p.getKey())||u.enqueue([p,h,i.getTileCoordCenter(p.tileCoord),_])),void 0!==l&&l(p)):e.useTile(v,y,x,r));e.updateCacheSize(S,r)}};var au=class extends su{constructor(t){super(t)}createRenderer(){return new ou(this)}};let lu,hu=!0;try{new ImageData(10,10)}catch(t){hu=!1}function cu(t,e,i){if(hu)return new ImageData(t,e,i);lu||(lu=document.createElement("canvas").getContext("2d"));const n=lu.createImageData(e,i);return n.data.set(t),n}function uu(t){let e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,n){return e?new ImageData(t,i,n):{data:t,width:i,height:n}}return function(e){const n=e.buffers,r=e.meta,s=e.imageOps,o=e.width,a=e.height,l=n.length,h=n[0].byteLength;if(s){const e=new Array(l);for(let t=0;t<l;++t)e[t]=i(new Uint8ClampedArray(n[t]),o,a);return t(e,r).data.buffer}const c=new Uint8ClampedArray(h),u=new Array(l),d=new Array(l);for(let t=0;t<l;++t)u[t]=new Uint8ClampedArray(n[t]),d[t]=[0,0,0,0];for(let e=0;e<h;e+=4){for(let t=0;t<l;++t){const i=u[t];d[t][0]=i[e],d[t][1]=i[e+1],d[t][2]=i[e+2],d[t][3]=i[e+3]}const i=t(d,r);c[e]=i[0],c[e+1]=i[1],c[e+2]=i[2],c[e+3]=i[3]}return c.buffer}}function du(t,e){const i=Object.keys(t.lib||{}).map((function(e){return"const "+e+" = "+t.lib[e].toString()+";"})).concat(["const __minion__ = ("+uu.toString()+")(",t.operation.toString(),");",'self.addEventListener("message", function(event) {'," const buffer = __minion__(event.data);"," self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);","});"]),n=new Worker("undefined"==typeof Blob?"data:text/javascript;base64,"+Buffer.from(i.join("\n"),"binary").toString("base64"):URL.createObjectURL(new Blob(i,{type:"text/javascript"})));return n.addEventListener("message",e),n}class gu extends o{constructor(t){let e;super(),this._imageOps=!!t.imageOps,e=0===t.threads?0:this._imageOps?1:t.threads||1;const i=new Array(e);if(e)for(let n=0;n<e;++n)i[n]=du(t,this._onWorkerMessage.bind(this,n));else i[0]=function(t,e){const i=uu(t.operation);let n=!1;return{postMessage:function(t){setTimeout((function(){n||e({data:{buffer:i(t),meta:t.meta}})}),0)},terminate:function(){n=!0}}}(t,this._onWorkerMessage.bind(this,0));this._workers=i,this._queue=[],this._maxQueueLength=t.queue||1/0,this._running=0,this._dataLookup={},this._job=null}process(t,e,i){this._enqueue({inputs:t,meta:e,callback:i}),this._dispatch()}_enqueue(t){for(this._queue.push(t);this._queue.length>this._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),r=this._workers.length;if(this._running=r,1===r)return void this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:i},n);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/r);for(let s=0;s<r;++s){const r=s*o,a=[];for(let t=0,e=n.length;t<e;++t)a.push(n[t].slice(r,r+o));this._workers[s].postMessage({buffers:a,meta:t.meta,imageOps:this._imageOps,width:e,height:i},a)}}_onWorkerMessage(t,e){this.disposed||(this._dataLookup[t]=e.data,--this._running,0===this._running&&this._resolveJob())}_resolveJob(){const t=this._job,e=this._workers.length;let i,n;if(1===e)i=new Uint8ClampedArray(this._dataLookup[0].buffer),n=this._dataLookup[0].meta;else{const r=t.inputs[0].data.length;i=new Uint8ClampedArray(r),n=new Array(e);const s=4*Math.ceil(r/4/e);for(let t=0;t<e;++t){const e=this._dataLookup[t].buffer,r=t*s;i.set(new Uint8ClampedArray(e),r),n[t]=this._dataLookup[t].meta}}this._job=null,this._dataLookup={},t.callback(null,cu(i,t.inputs[0].width,t.inputs[0].height),n),this._dispatch()}disposeInternal(){for(let t=0;t<this._workers.length;++t)this._workers[t].terminate();this._workers.length=0}}const fu="beforeoperations",pu="afteroperations";class mu extends r{constructor(t,e,i){super(t),this.extent=e.extent,this.resolution=e.viewState.resolution/e.pixelRatio,this.data=i}}class _u extends jc{constructor(t){super({projection:null}),this.on,this.once,this.un,this.processor_=null,this.operationType_=void 0!==t.operationType?t.operationType:"pixel",this.threads_=void 0!==t.threads?t.threads:1,this.layers_=function(t){const e=t.length,i=new Array(e);for(let n=0;n<e;++n)i[n]=vu(t[n]);return i}(t.sources);const e=this.changed.bind(this);for(let t=0,i=this.layers_.length;t<i;++t)this.layers_[t].addEventListener(w,e);var i;this.tileQueue_=new Oo((function(){return 1}),this.changed.bind(this)),this.requestedFrameState_,this.renderedImageCanvas_=null,this.renderedRevision_,this.frameState_={animate:!1,coordinateToPixelTransform:[1,0,0,1,0,0],declutterTree:null,extent:null,index:0,layerIndex:0,layerStatesArray:(i=this.layers_,i.map((function(t){return t.getLayerState()}))),pixelRatio:1,pixelToCoordinateTransform:[1,0,0,1,0,0],postRenderFunctions:[],size:[0,0],tileQueue:this.tileQueue_,time:Date.now(),usedTiles:{},viewState:{rotation:0},viewHints:[],wantedTiles:{},mapId:V(this),renderTargets:{}},this.setAttributions((function(e){const i=[];for(let n=0,r=t.sources.length;n<r;++n){const r=t.sources[n],s=(r instanceof rh?r:r.getSource()).getAttributions();if("function"==typeof s){const t=s(e);i.push.apply(i,t)}}return 0!==i.length?i:null})),void 0!==t.operation&&this.setOperation(t.operation,t.lib)}setOperation(t,e){this.processor_&&this.processor_.dispose(),this.processor_=new gu({operation:t,imageOps:"image"===this.operationType_,queue:1,lib:e,threads:this.threads_}),this.changed()}updateFrameState_(t,e,i){const n=Object.assign({},this.frameState_);n.viewState=Object.assign({},n.viewState);const r=me(t);n.extent=t.slice(),n.size[0]=Math.round(Ee(t)/e),n.size[1]=Math.round(ve(t)/e),n.time=Date.now();const s=n.viewState;return s.center=r,s.projection=i,s.resolution=e,n}allSourcesReady_(){let t,e=!0;for(let i=0,n=this.layers_.length;i<n;++i)if(t=this.layers_[i].getSource(),"ready"!==t.getState()){e=!1;break}return e}getImage(t,e,i,n){if(!this.allSourcesReady_())return null;const r=this.updateFrameState_(t,e,n);if(this.requestedFrameState_=r,this.renderedImageCanvas_){const i=this.renderedImageCanvas_.getResolution(),n=this.renderedImageCanvas_.getExtent();e===i&&re(t,n)||(this.renderedImageCanvas_=null)}return this.renderedImageCanvas_&&this.getRevision()===this.renderedRevision_||this.processSources_(),r.tileQueue.loadMoreTiles(16,16),r.animate&&requestAnimationFrame(this.changed.bind(this)),this.renderedImageCanvas_}processSources_(){const t=this.requestedFrameState_,e=this.layers_.length,i=new Array(e);for(let n=0;n<e;++n){t.layerIndex=n;const e=xu(this.layers_[n],t);if(!e)return;i[n]=e}const n={};this.dispatchEvent(new mu(fu,t,n)),this.processor_.process(i,n,this.onWorkerComplete_.bind(this,t))}onWorkerComplete_(t,e,i,n){if(e||!i)return;const r=t.extent,s=t.viewState.resolution;if(s!==this.requestedFrameState_.viewState.resolution||!re(r,this.requestedFrameState_.extent))return;let o;if(this.renderedImageCanvas_)o=this.renderedImageCanvas_.getImage().getContext("2d");else{o=Xr(Math.round(Ee(r)/s),Math.round(ve(r)/s)),this.renderedImageCanvas_=new zr(r,s,1,o.canvas)}o.putImageData(i,0,0),this.changed(),this.renderedRevision_=this.getRevision(),this.dispatchEvent(new mu(pu,t,n)),t.animate&&requestAnimationFrame(this.changed.bind(this))}disposeInternal(){this.processor_&&this.processor_.dispose(),super.disposeInternal()}}_u.prototype.dispose;let yu=null;function xu(t,e){const i=t.getRenderer();if(!i)throw new Error("Unsupported layer type: "+t);if(!i.prepareFrame(e))return null;const n=e.size[0],r=e.size[1];if(0===n||0===r)return null;const s=i.renderFrame(e,null);let o;if(s instanceof HTMLCanvasElement)o=s;else{if(s&&(o=s.firstElementChild),!(o instanceof HTMLCanvasElement))throw new Error("Unsupported rendered element: "+o);if(o.width===n&&o.height===r){return o.getContext("2d").getImageData(0,0,n,r)}}if(yu){const t=yu.canvas;t.width!==n||t.height!==r?yu=Xr(n,r):yu.clearRect(0,0,n,r)}else yu=Xr(n,r);return yu.drawImage(o,0,0,n,r),yu.getImageData(0,0,n,r)}function vu(t){let e;return t instanceof rh?t instanceof ph?e=new au({source:t}):t instanceof jc&&(e=new iu({source:t})):e=t,e}var Su=_u;const wu=['Map tiles by <a href="https://stamen.com/" target="_blank">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.',Kc],Tu={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Eu={terrain:{minZoom:0,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:0,maxZoom:18}};var Cu=class extends Rh{constructor(t){const e=t.layer.indexOf("-"),i=-1==e?t.layer:t.layer.slice(0,e),n=Eu[i],r=Tu[t.layer],s=void 0!==t.url?t.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+t.layer+"/{z}/{x}/{y}."+r.extension;super({attributions:wu,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:null!=t.maxZoom?t.maxZoom:n.maxZoom,minZoom:null!=t.minZoom?t.minZoom:n.minZoom,opaque:r.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:s,wrapX:t.wrapX,zDirection:t.zDirection})}};var bu=class extends Eh{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;const a=r.getCode().split(/:(?=\d+$)/).pop();let l;if(s.SIZE=e[0]+","+e[1],s.BBOX=i.join(","),s.BBOXSR=a,s.IMAGESR=a,s.DPI=Math.round(s.DPI?s.DPI*n:90*n),1==o.length)l=o[0];else{l=o[ui(pl(t),o.length)]}return Bc(l.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const r=n.getTileCoordExtent(t,this.tmpExtent_);let s=Qa(n.getTileSize(t[0]),this.tmpSize);1!=e&&(s=Ja(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,r,e,i,o)}};var Ru=class extends Rh{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],n=Qa(this.tileGrid.getTileSize(i)),r=Xr(n[0],n[1]);r.strokeStyle="grey",r.strokeRect(.5,.5,n[0]+.5,n[1]+.5),r.fillStyle="grey",r.strokeStyle="white",r.textAlign="center",r.textBaseline="middle",r.font="24px sans-serif",r.lineWidth=4,r.strokeText(e,n[0]/2,n[1]/2,n[0]),r.fillText(e,n[0]/2,n[1]/2,n[0]),t.setImage(r.canvas)}})}};var Pu=class extends Eh{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:Vi("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)Ll(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):ht(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=Vi("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=Ji(e,i);n=Le(t.bounds,r)}const r=gh(i),s=t.minzoom||0,o=ch({extent:r,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=_h(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==n?n:r;this.setAttributions((function(i){return Ce(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}};var Iu=class extends Eh{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,n){const r=Vi(i),s=this.getProjection();let o=this.getTileGrid();o||(o=this.getTileGridForProjection(r));const a=o.getZForResolution(e,this.zDirection),l=o.getTileCoordForCoordAndZ(t,a);if(o.getResolutions().length<=l[0])return;let h=o.getResolution(l[0]),c=o.getTileCoordExtent(l,this.tmpExtent_),u=Qa(o.getTileSize(l[0]),this.tmpSize);const d=this.gutter_;0!==d&&(u=Ha(u,d,this.tmpSize),c=Zt(c,h*d,c)),s&&s!==r&&(h=Kl(s,r,t,h),c=en(c,r,s),t=tn(t,r,s));const g={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(g,this.params_,n);const f=Math.floor((t[0]-c[0])/h),p=Math.floor((c[3]-t[1])/h);return g[this.v13_?"I":"X"]=f,g[this.v13_?"J":"Y"]=p,this.getRequestUrl_(l,u,c,1,s||r,g)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),Bc(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;if(s.WIDTH=e[0],s.HEIGHT=e[1],s[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(s.STYLES=""),1!=n)switch(this.serverType_){case"geoserver":const t=90*n+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*n;break;case"carmentaserver":case"qgis":s.DPI=90*n;break;default:ht(!1,52)}const a=r.getAxisOrientation(),l=i;if(this.v13_&&"ne"==a.substr(0,2)){let t;t=i[0],l[0]=i[1],l[1]=t,t=i[2],l[2]=i[3],l[3]=t}let h;if(s.BBOX=l.join(","),1==o.length)h=o[0];else{h=o[ui(pl(t),o.length)]}return Bc(h,s)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||Wc;this.v13_=yi(t,"1.3")>=0}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const r=n.getResolution(t[0]);let s=n.getTileCoordExtent(t,this.tmpExtent_),o=Qa(n.getTileSize(t[0]),this.tmpSize);const a=this.gutter_;0!==a&&(o=Ha(o,a,this.tmpSize),s=Zt(s,r*a,s)),1!=e&&(o=Ja(o,e,this.tmpSize));const l={SERVICE:"WMS",VERSION:Wc,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return Object.assign(l,this.params_),this.getRequestUrl_(t,o,s,e,i,l)}};class Lu extends at{constructor(t,e,i,n,r,s){super(t,e),this.src_=i,this.extent_=n,this.preemptive_=r,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof n)return null;let r=n.charCodeAt(Math.floor(e*n.length));r>=93&&r--,r>=35&&r--,r-=32;let s=null;if(r in this.keys_){const t=this.keys_[r];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==it&&!0===i?(this.state=J,G(this,w,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout(function(){e(this.getData(t))}.bind(this),0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=et,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=tt,this.changed()}loadInternal_(){if(this.state==J)if(this.state=Q,this.jsonp_)Ll(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(it)}}var Fu=class extends ph{constructor(t){if(super({projection:Vi("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=xh,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)Ll(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):ht(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,n){if(this.tileGrid){const r=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,r);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,n)}else!0===n?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=Vi("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=Ji(e,i);n=Le(t.bounds,r)}const r=gh(i),s=t.minzoom||0,o=ch({extent:r,maxZoom:t.maxzoom||22,minZoom:s});this.tileGrid=o,this.template_=t.template;const a=t.grids;if(a){if(this.tileUrlFunction_=_h(a,o),void 0!==t.attribution){const e=void 0!==n?n:r;this.setAttributions((function(i){return Ce(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,n,r){const s=ul(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=this.tileUrlFunction_(a,n,r),h=new Lu(o,void 0!==l?J:it,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const n=ul(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}};var Mu=class extends wh{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||gh(e),n=t.tileGrid||ch({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:n,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:Au,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new _l(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:Tl,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const n=fl(i.peekFirstKey())[0],r=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==n||i.getState()!==tt)return;const s=i.getSourceTiles();for(let i=0,n=s.length;i<n;++i){const n=s[i],o=n.tileCoord;if(Ce(t,r.getTileCoordExtent(o))){const i=n.getFeatures();if(i)for(let n=0,r=i.length;n<r;++n){const r=i[n],s=r.getGeometry();Ce(t,s.getExtent())&&e.push(r)}}}})),e}getOverlaps(){return this.overlaps_}clear(){this.tileCache.clear(),this.sourceTileCache.clear()}expireCache(t,e){const i=this.getTileCacheForProjection(t),n=Object.keys(e).reduce(((t,e)=>{const n=gl(e),r=i.peek(n);if(r){const e=r.sourceTiles;for(let i=0,n=e.length;i<n;++i)t[e[i].getKey()]=!0}return t}),{});super.expireCache(t,e),this.sourceTileCache.expireCache(n)}getSourceTiles(t,e,i){if(i.getState()===J){i.setState(Q);const n=i.wrappedTileCoord,r=this.getTileGridForProjection(e),s=r.getTileCoordExtent(n),o=n[0],a=r.getResolution(o);Zt(s,-a,s);const l=this.tileGrid,h=l.getExtent();h&&Se(s,h,s);const c=l.getZForResolution(a,this.zDirection);l.forEachTileCoord(s,c,(n=>{const r=this.tileUrlFunction(n,t,e),s=this.sourceTileCache.containsKey(r)?this.sourceTileCache.get(r):new this.tileClass(n,r?J:it,r,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o<tt){const t=e=>{this.handleTileChange(e);const n=s.getState();if(n===tt||n===et){const e=s.getKey();e in i.errorTileKeys?s.getState()===tt&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,n===et?i.errorTileKeys[e]=!0:s.removeEventListener(w,t),0===i.loadingSourceTiles&&i.setState(v(i.errorTileKeys)?tt:et)}};s.addEventListener(w,t),i.loadingSourceTiles++}o===J&&(s.extent=l.getTileCoordExtent(n),s.projection=e,s.resolution=l.getResolution(n[0]),this.sourceTileCache.set(r,s),s.load())})),i.loadingSourceTiles||i.setState(i.sourceTiles.some((t=>t.getState()===et))?et:tt)}return i.sourceTiles}getTile(t,e,i,n,r){const s=ul(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,r);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(r);if(h&&c){const e=u.getTileCoordExtent(h);Zt(e,-u.getResolution(t),e),Ce(c,e)||(h=null)}let d=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);Zt(o,-i,o),e.forEachTileCoord(o,s,function(t){d=d&&!this.tileUrlFunction(t,n,r)}.bind(this))}const g=new wl(l,d?it:J,h,this.getSourceTiles.bind(this,n,r));return g.key=o,a?(g.interimTile=a,g.refreshInterimChain(),this.tileCache.replace(s,g)):this.tileCache.set(s,g),g}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,n=t.getResolutions().slice(),r=n.map((function(e,i){return t.getOrigin(i)})),s=n.map((function(e,i){return t.getTileSize(i)})),o=43;for(let t=n.length;t<o;++t)n.push(n[t-1]/2),r.push(r[t-1]),s.push(s[t-1]);i=new oh({extent:t.getExtent(),origins:r,resolutions:n,tileSizes:s}),this.tileGrids_[e]=i}return i}getTilePixelRatio(t){return t}getTilePixelSize(t,e,i){const n=Qa(this.getTileGridForProjection(i).getTileSize(t),this.tmpSize);return[Math.round(n[0]*e),Math.round(n[1]*e)]}updateCacheSize(t,e){super.updateCacheSize(2*t,e),this.sourceTileCache.highWaterMark=this.getTileCacheForProjection(e).highWaterMark}};function Au(t,e){t.setLoader((function(i,n,r){Rl(e,t.getFormat(),i,n,r,t.onLoad.bind(t),t.onError.bind(t))}))}class Ou extends oh{constructor(t){super({extent:t.extent,origin:t.origin,origins:t.origins,resolutions:t.resolutions,tileSize:t.tileSize,tileSizes:t.tileSizes,sizes:t.sizes}),this.matrixIds_=t.matrixIds}getMatrixId(t){return this.matrixIds_[t]}getMatrixIds(){return this.matrixIds_}}var Nu=Ou;function Du(t,e,i){const n=[],r=[],s=[],o=[],a=[];i=void 0!==i?i:[];const l=Vi(t.SupportedCRS),h=l.getMetersPerUnit(),c="ne"==l.getAxisOrientation().substr(0,2);return t.TileMatrix.sort((function(t,e){return e.ScaleDenominator-t.ScaleDenominator})),t.TileMatrix.forEach((function(e){let l;if(l=!(i.length>0)||i.find((function(i){return e.Identifier==i.TileMatrix||!e.Identifier.includes(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})),l){r.push(e.Identifier);const t=28e-5*e.ScaleDenominator/h,i=e.TileWidth,l=e.TileHeight;c?s.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):s.push(e.TopLeftCorner),n.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new Ou({extent:e,origins:s,resolutions:n,matrixIds:r,tileSizes:o,sizes:a})}var Gu=class extends Eh{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let n=t.urls;void 0===n&&void 0!==t.url&&(n=vh(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:n,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=yh(n.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(yh(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?Bc(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const n=this.tileGrid,r=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:n.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,r);let l=t;return l="KVP"==e?Bc(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}};const ku=34962,ju=34963,Bu=35044,Uu=35048,zu=5126,Xu=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function Vu(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!mt},e);const i=Xu.length;for(let n=0;n<i;++n)try{const i=t.getContext(Xu[n],e);if(i)return i}catch(t){}return null}let Wu;const Zu="http://www.w3.org/2001/XMLSchema-instance";function Yu(t,e){return _d().createElementNS(t,e)}function Ku(t,e){return qu(t,e,[]).join("")}function qu(t,e,i){if(t.nodeType==Node.CDATA_SECTION_NODE||t.nodeType==Node.TEXT_NODE)e?i.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(t.nodeValue);else{let n;for(n=t.firstChild;n;n=n.nextSibling)qu(n,e,i)}return i}function Hu(t){return"documentElement"in t}function $u(t,e,i){return t.getAttributeNS(e,i)||""}function Ju(t){return(new DOMParser).parseFromString(t,"application/xml")}function Qu(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){u(n[n.length-1],r)}}}function td(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){n[n.length-1].push(r)}}}function ed(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);void 0!==r&&(n[n.length-1]=r)}}function id(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){const t=r[r.length-1],i=void 0!==e?e:n.localName;let o;i in t?o=t[i]:(o=[],t[i]=o),o.push(s)}}}function nd(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){r[r.length-1][void 0!==e?e:n.localName]=s}}}function rd(t,e){return function(i,n,r){t.call(void 0!==e?e:this,i,n,r);r[r.length-1].node.appendChild(i)}}function sd(t,e){let i,n;return function(e,r,s){if(void 0===i){i={};const r={};r[e.localName]=t,i[e.namespaceURI]=r,n=od(e.localName)}dd(i,n,r,s)}}function od(t,e){return function(i,n,r){const s=n[n.length-1].node;let o=t;void 0===o&&(o=r);return Yu(void 0!==e?e:s.namespaceURI,o)}}const ad=od();function ld(t,e){const i=e.length,n=new Array(i);for(let r=0;r<i;++r)n[r]=t[e[r]];return n}function hd(t,e,i){let n,r;for(i=void 0!==i?i:{},n=0,r=t.length;n<r;++n)i[t[n]]=e;return i}function cd(t,e,i,n){let r;for(r=e.firstElementChild;r;r=r.nextElementSibling){const e=t[r.namespaceURI];if(void 0!==e){const t=e[r.localName];void 0!==t&&t.call(n,r,i)}}}function ud(t,e,i,n,r){return n.push(t),cd(e,i,n,r),n.pop()}function dd(t,e,i,n,r,s){const o=(void 0!==r?r:i).length;let a,l;for(let h=0;h<o;++h)a=i[h],void 0!==a&&(l=e.call(void 0!==s?s:this,a,n,void 0!==r?r[h]:void 0),void 0!==l&&t[l.namespaceURI][l.localName].call(s,l,a,n))}function gd(t,e,i,n,r,s,o){return r.push(t),dd(e,i,n,r,s,o),r.pop()}let fd,pd;function md(){return void 0===fd&&"undefined"!=typeof XMLSerializer&&(fd=new XMLSerializer),fd}function _d(){return void 0===pd&&"undefined"!=typeof document&&(pd=document.implementation.createDocument("","",null)),pd}const yd=Bu;function xd(t){switch(t){case ku:return Float32Array;case ju:return Uint32Array;default:return Float32Array}}var vd=class{constructor(t,e){this.array=null,this.type=t,ht(t===ku||t===ju,62),this.usage=void 0!==e?e:yd}ofSize(t){this.array=new(xd(this.type))(t)}fromArray(t){this.array=xd(this.type).from(t)}fromArrayBuffer(t){this.array=new(xd(this.type))(t)}getType(){return this.type}getArray(){return this.array}getUsage(){return this.usage}getSize(){return this.array?this.array.length:0}},Sd="webglcontextlost",wd="webglcontextrestored";var Td=class{constructor(t){this.gl_=t.webGlContext;const e=this.gl_;this.scaleRatio_=t.scaleRatio||1,this.renderTargetTexture_=e.createTexture(),this.renderTargetTextureSize_=null,this.frameBuffer_=e.createFramebuffer();const i=e.createShader(e.VERTEX_SHADER);e.shaderSource(i,t.vertexShader||"\n precision mediump float;\n \n attribute vec2 a_position;\n varying vec2 v_texCoord;\n varying vec2 v_screenCoord;\n \n uniform vec2 u_screenSize;\n \n void main() {\n v_texCoord = a_position * 0.5 + 0.5;\n v_screenCoord = v_texCoord * u_screenSize;\n gl_Position = vec4(a_position, 0.0, 1.0);\n }\n"),e.compileShader(i);const n=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(n,t.fragmentShader||"\n precision mediump float;\n \n uniform sampler2D u_image;\n uniform float u_opacity;\n \n varying vec2 v_texCoord;\n \n void main() {\n gl_FragColor = texture2D(u_image, v_texCoord) * u_opacity;\n }\n"),e.compileShader(n),this.renderTargetProgram_=e.createProgram(),e.attachShader(this.renderTargetProgram_,i),e.attachShader(this.renderTargetProgram_,n),e.linkProgram(this.renderTargetProgram_),this.renderTargetVerticesBuffer_=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,-1,1,1,-1,1]),e.STATIC_DRAW),this.renderTargetAttribLocation_=e.getAttribLocation(this.renderTargetProgram_,"a_position"),this.renderTargetUniformLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_screenSize"),this.renderTargetOpacityLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_opacity"),this.renderTargetTextureLocation_=e.getUniformLocation(this.renderTargetProgram_,"u_image"),this.uniforms_=[],t.uniforms&&Object.keys(t.uniforms).forEach(function(i){this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})}.bind(this))}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,n=e.RGBA,r=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,n,i[0],i[1],r,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0)}}apply(t,e,i,n){const r=this.getGL(),s=t.size;if(r.bindFramebuffer(r.FRAMEBUFFER,e?e.getFrameBuffer():null),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.renderTargetTexture_),!e){const e=V(r.canvas);if(!t.renderTargets[e]){const i=r.getContextAttributes();i&&i.preserveDrawingBuffer&&(r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT)),t.renderTargets[e]=!0}}r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.bindBuffer(r.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),r.useProgram(this.renderTargetProgram_),r.enableVertexAttribArray(this.renderTargetAttribLocation_),r.vertexAttribPointer(this.renderTargetAttribLocation_,2,r.FLOAT,!1,0,0),r.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),r.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;r.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(r,t),r.drawArrays(r.TRIANGLES,0,6),n&&n(r,t)}getFrameBuffer(){return this.frameBuffer_}applyUniforms(t){const e=this.getGL();let i,n=1;this.uniforms_.forEach((function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof ImageData)r.texture||(r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(r.location,n++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(r.location,i[0],i[1]);case 3:return void e.uniform3f(r.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(r.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(r.location,i)}))}};function Ed(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Cd(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const bd="u_projectionMatrix",Rd="u_offsetScaleMatrix",Pd="u_offsetRotateMatrix",Id="u_time",Ld="u_zoom",Fd="u_resolution",Md="u_sizePx",Ad="u_pixelRatio",Od={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:zu},Nd={};function Dd(t){return"shared/"+t}let Gd=0;function kd(t){let e=0;for(let i=0;i<t.length;i++){const n=t[i];e+=n.size*jd(n.type)}return e}function jd(t){switch(t){case Od.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Od.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Od.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Od.FLOAT:default:return Float32Array.BYTES_PER_ELEMENT}}var Bd=class extends o{constructor(t){super(),t=t||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=t.canvasCacheKey?Dd(t.canvasCacheKey):function(){const t="unique/"+Gd;return Gd+=1,t}(),this.canvas_=function(t){let e=Nd[t];if(!e){const i=document.createElement("canvas");i.style.position="absolute",i.style.left="0",e={users:0,canvas:i},Nd[t]=e}return e.users+=1,e.canvas}(this.canvasCacheKey_),this.gl_=Vu(this.canvas_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.canvas_.addEventListener(Sd,this.boundHandleWebGLContextLost_),this.canvas_.addEventListener(wd,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.uniformLocations_={},this.attribLocations_={},this.uniforms_=[],t.uniforms&&this.setUniforms(t.uniforms);const e=this.getGL();this.postProcessPasses_=t.postProcesses?t.postProcesses.map((function(t){return new Td({webGlContext:e,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms})})):[new Td({webGlContext:e})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[];for(const e in t)this.uniforms_.push({name:e,value:t[e]});this.uniformLocations_={}}canvasCacheKeyMatches(t){return this.canvasCacheKey_===Dd(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.getGL(),i=V(t);let n=this.bufferCache_[i];if(!n){n={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=n}e.bindBuffer(t.getType(),n.webGlBuffer)}flushBufferData(t){const e=this.getGL();this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.getGL(),i=V(t),n=this.bufferCache_[i];n&&!e.isContextLost()&&e.deleteBuffer(n.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){this.canvas_.removeEventListener(Sd,this.boundHandleWebGLContextLost_),this.canvas_.removeEventListener(wd,this.boundHandleWebGLContextRestored_),function(t){const e=Nd[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=Vu(e.canvas).getExtension("WEBGL_lose_context");i&&i.loseContext(),delete Nd[t]}(this.canvasCacheKey_),delete this.gl_,delete this.canvas_}prepareDraw(t,e){const i=this.getGL(),n=this.getCanvas(),r=t.size,s=t.pixelRatio;n.width=r[0]*s,n.height=r[1]*s,n.style.width=r[0]+"px",n.style.height=r[1]+"px";for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);i.bindTexture(i.TEXTURE_2D,null),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.enable(i.BLEND),i.blendFunc(i.ONE,e?i.ZERO:i.ONE_MINUS_SRC_ALPHA)}prepareDrawToRenderTarget(t,e,i){const n=this.getGL(),r=e.getSize();n.bindFramebuffer(n.FRAMEBUFFER,e.getFramebuffer()),n.viewport(0,0,r[0],r[1]),n.bindTexture(n.TEXTURE_2D,e.getTexture()),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,i?n.ZERO:n.ONE_MINUS_SRC_ALPHA)}drawElements(t,e){const i=this.getGL();this.getExtension("OES_element_index_uint");const n=i.UNSIGNED_INT,r=e-t,s=4*t;i.drawElements(i.TRIANGLES,r,n,s)}finalizeDraw(t,e,i){for(let n=0,r=this.postProcessPasses_.length;n<r;n++)n===r-1?this.postProcessPasses_[n].apply(t,null,e,i):this.postProcessPasses_[n].apply(t,this.postProcessPasses_[n+1])}getCanvas(){return this.canvas_}getGL(){return this.gl_}applyFrameState(t){const e=t.size,i=t.viewState.rotation,n=t.pixelRatio,r=Ct(this.offsetScaleMatrix_);Ft(r,2/e[0],2/e[1]);const s=Ct(this.offsetRotateMatrix_);0!==i&&Lt(s,-i),this.setUniformMatrixValue(Rd,Cd(this.tmpMat4_,r)),this.setUniformMatrixValue(Pd,Cd(this.tmpMat4_,s)),this.setUniformFloatValue(Id,.001*(Date.now()-this.startTime_)),this.setUniformFloatValue(Ld,t.viewState.zoom),this.setUniformFloatValue(Fd,t.viewState.resolution),this.setUniformFloatValue(Ad,n),this.setUniformFloatVec2(Md,[e[0],e[1]])}applyUniforms(t){const e=this.getGL();let i,n=0;this.uniforms_.forEach(function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){r.texture||(r.prevValue=void 0,r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&r.prevValue!==i&&(r.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),e.uniform1i(this.getUniformLocation(r.name),n++)}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(r.name,Cd(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(r.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(r.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(r.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(r.name),i)}.bind(this))}useProgram(t,e){this.getGL().useProgram(t),this.currentProgram_=t,this.uniformLocations_={},this.attribLocations_={},this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.getGL(),n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}getProgram(t,e){const i=this.getGL(),n=this.compileShader(t,i.FRAGMENT_SHADER),r=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,n),i.attachShader(s,r),i.linkProgram(s),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t=`Fragment shader compliation failed: ${i.getShaderInfoLog(n)}`;throw new Error(t)}if(i.deleteShader(n),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t=`Vertex shader compilation failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}if(i.deleteShader(r),!i.getProgramParameter(s,i.LINK_STATUS)){const t=`GL program linking failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}return s}getUniformLocation(t){return void 0===this.uniformLocations_[t]&&(this.uniformLocations_[t]=this.getGL().getUniformLocation(this.currentProgram_,t)),this.uniformLocations_[t]}getAttributeLocation(t){return void 0===this.attribLocations_[t]&&(this.attribLocations_[t]=this.getGL().getAttribLocation(this.currentProgram_,t)),this.attribLocations_[t]}makeProjectionTransform(t,e){const i=t.size,n=t.viewState.rotation,r=t.viewState.resolution,s=t.viewState.center;return Ct(e),Ot(e,0,0,2/(r*i[0]),2/(r*i[1]),-n,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.getGL().uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.getGL().uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.getGL().uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.getGL().uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,n,r){const s=this.getAttributeLocation(t);s<0||(this.getGL().enableVertexAttribArray(s),this.getGL().vertexAttribPointer(s,e,i,!1,n,r))}enableAttributes(t){const e=kd(t);let i=0;for(let n=0;n<t.length;n++){const r=t[n];this.enableAttributeArray_(r.name,r.size,r.type||zu,e,i),i+=r.size*jd(r.type)}}handleWebGLContextLost(){x(this.bufferCache_),this.currentProgram_=null}handleWebGLContextRestored(){}createTexture(t,e,i){const n=this.getGL();i=i||n.createTexture();const r=n.RGBA,s=n.RGBA,o=n.UNSIGNED_BYTE;return n.bindTexture(n.TEXTURE_2D,i),e?n.texImage2D(n.TEXTURE_2D,0,r,s,o,e):n.texImage2D(n.TEXTURE_2D,0,r,t[0],t[1],0,s,o,null),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),i}};var Ud=class{constructor(t,e){this.name=t,this.data=e,this.texture_=null}getTexture(t){if(!this.texture_){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.data.length/4,1,0,t.RGBA,t.UNSIGNED_BYTE,this.data),this.texture_=e}return this.texture_}};const zd=new Uint8Array(4);var Xd=class{constructor(t,e){this.helper_=t;const i=t.getGL();this.texture_=i.createTexture(),this.framebuffer_=i.createFramebuffer(),this.size_=e||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(t){d(t,this.size_)||(this.size_[0]=t[0],this.size_[1]=t[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){const t=this.size_,e=this.helper_.getGL();e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.readPixels(0,0,t[0],t[1],e.RGBA,e.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(t,e){if(t<0||e<0||t>this.size_[0]||e>=this.size_[1])return zd[0]=0,zd[1]=0,zd[2]=0,zd[3]=0,zd;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return zd[0]=this.data_[4*i],zd[1]=this.data_[4*i+1],zd[2]=this.data_[4*i+2],zd[3]=this.data_[4*i+3],zd}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),this.data_=new Uint8Array(t[0]*t[1]*4)}};function Vd(t,e,i){const n=i?t.LINEAR:t.NEAREST;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n)}function Wd(t,e,i,n,r,s){const o=t.getGL();let a,l;if(i instanceof Float32Array){a=o.FLOAT,t.getExtension("OES_texture_float");l=null!==t.getExtension("OES_texture_float_linear")}else a=o.UNSIGNED_BYTE,l=!0;Vd(o,e,s&&l);const h=i.byteLength/n[1];let c,u=1;switch(h%8==0?u=8:h%4==0?u=4:h%2==0&&(u=2),r){case 1:c=o.LUMINANCE;break;case 2:c=o.LUMINANCE_ALPHA;break;case 3:c=o.RGB;break;case 4:c=o.RGBA;break;default:throw new Error(`Unsupported number of bands: ${r}`)}const d=o.getParameter(o.UNPACK_ALIGNMENT);o.pixelStorei(o.UNPACK_ALIGNMENT,u),o.texImage2D(o.TEXTURE_2D,0,c,n[0],n[1],0,c,a,i),o.pixelStorei(o.UNPACK_ALIGNMENT,d)}let Zd=null;var Yd=class extends S{constructor(t){super(),this.tile,this.textures=[],this.handleTileChange_=this.handleTileChange_.bind(this),this.renderSize_=Qa(t.grid.getTileSize(t.tile.tileCoord[0])),this.gutter_=t.gutter||0,this.bandCount=NaN,this.helper_=t.helper;const e=new vd(ku,Bu);e.fromArray([0,1,1,1,1,0,0,0]),this.helper_.flushBufferData(e),this.coords=e,this.setTile(t.tile)}setTile(t){if(t!==this.tile)if(this.tile&&this.tile.removeEventListener(w,this.handleTileChange_),this.tile=t,this.textures.length=0,this.loaded=t.getState()===tt,this.loaded)this.uploadTile_();else{if(t instanceof $r){const e=t.getImage();e instanceof Image&&!e.crossOrigin&&(e.crossOrigin="anonymous")}t.addEventListener(w,this.handleTileChange_)}}uploadTile_(){const t=this.helper_,e=t.getGL(),i=this.tile;if(i instanceof $r||i instanceof Ql){const t=e.createTexture();return this.textures.push(t),this.bandCount=4,void function(t,e,i,n){Vd(t,e,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)}(e,t,i.getImage(),i.interpolate)}const n=i.getSize(),r=[n[0]+2*this.gutter_,n[1]+2*this.gutter_],s=i.getData(),o=s instanceof Float32Array,a=r[0]*r[1],l=o?Float32Array:Uint8Array,h=l.BYTES_PER_ELEMENT,c=s.byteLength/r[1];this.bandCount=Math.floor(c/h/r[0]);const u=Math.ceil(this.bandCount/4);if(1===u){const n=e.createTexture();return this.textures.push(n),void Wd(t,n,s,r,this.bandCount,i.interpolate)}const d=new Array(u);for(let t=0;t<u;++t){const i=e.createTexture();this.textures.push(i);const n=t<u-1?4:(this.bandCount-1)%4+1;d[t]=new l(a*n)}let g=0,f=0;const p=r[0]*this.bandCount;for(let t=0;t<r[1];++t){for(let t=0;t<p;++t){const e=s[f+t],i=Math.floor(g/this.bandCount),n=t%this.bandCount,r=d[Math.floor(n/4)];r[i*(r.length/a)+n%4]=e,++g}f+=c/h}for(let e=0;e<u;++e){const n=this.textures[e],s=d[e];Wd(t,n,s,r,s.length/a,i.interpolate)}}handleTileChange_(){this.tile.getState()===tt&&(this.loaded=!0,this.uploadTile_(),this.dispatchEvent(w))}disposeInternal(){const t=this.helper_.getGL();this.helper_.deleteBuffer(this.coords);for(let e=0;e<this.textures.length;++e)t.deleteTexture(this.textures[e]);this.tile.removeEventListener(w,this.handleTileChange_)}getPixelData(t,e){if(!this.loaded)return null;const i=this.renderSize_[0],n=this.renderSize_[1],r=this.gutter_;if(this.tile instanceof lt){const s=this.tile.getSize(),o=s[0],a=s[1],l=o+2*r,h=a+2*r,c=r+Math.floor(o*(t/i)),u=r+Math.floor(a*(e/n)),d=this.tile.getData();if(d instanceof DataView){const t=d.byteLength/(l*h),e=t*(u*l+c),i=d.buffer.slice(e,e+t);return new DataView(i)}const g=this.bandCount*(u*l+c);return d.slice(g,g+this.bandCount)}Zd||function(){const t=document.createElement("canvas");t.width=1,t.height=1,Zd=t.getContext("2d")}(),Zd.clearRect(0,0,1,1);const s=this.tile.getImage(),o=s.width-2*r,a=s.height-2*r,l=r+Math.floor(o*(t/i)),h=r+Math.floor(a*(e/n));let c;try{Zd.drawImage(s,l,h,1,1,0,0,1,1),c=Zd.getImageData(0,0,1,1).data}catch(t){return Zd=null,null}return c}};class Kd extends $c{constructor(t,e){super(t),e=e||{},this.inversePixelTransform_=[1,0,0,1,0,0],this.pixelContext_=null,this.postProcesses_=e.postProcesses,this.uniforms_=e.uniforms,this.helper,t.addChangeListener(Ss,this.removeHelper.bind(this)),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(t,e){const i=this.getLayer();if(i.hasListener(Cs)){const n=new Ms(Cs,void 0,e,t);i.dispatchEvent(n)}}dispatchPostComposeEvent(t,e){const i=this.getLayer();if(i.hasListener(bs)){const n=new Ms(bs,void 0,e,t);i.dispatchEvent(n)}}reset(t){this.uniforms_=t.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(t){if(this.getLayer().getRenderSource()){let e,i=!0,n=-1;for(let r=0,s=t.layerStatesArray.length;r<s;r++){const s=t.layerStatesArray[r].layer,o=s.getRenderer();if(!(o instanceof Kd)){i=!0;continue}const a=s.getClassName();if((i||a!==e)&&(n+=1,i=!1),e=a,o===this)break}const r="map/"+t.mapId+"/group/"+n;this.helper&&this.helper.canvasCacheKeyMatches(r)||(this.removeHelper(),this.helper=new Bd({postProcesses:this.postProcesses_,uniforms:this.uniforms_,canvasCacheKey:r}),e&&(this.helper.getCanvas().className=e),this.afterHelperCreated())}return this.prepareFrameInternal(t)}afterHelperCreated(){}prepareFrameInternal(t){return!0}disposeInternal(){this.removeHelper(),super.disposeInternal()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){Ot(this.inversePixelTransform_,0,0,i.pixelRatio,-i.pixelRatio,0,0,-i.size[1]);const r=new Ms(t,this.inversePixelTransform_,i,e);n.dispatchEvent(r)}}preRender(t,e){this.dispatchRenderEvent_(Ts,t,e)}postRender(t,e){this.dispatchRenderEvent_(Es,t,e)}}var qd=Kd;const Hd={TILE_TEXTURE_ARRAY:"u_tileTextures",TILE_TRANSFORM:"u_tileTransform",TRANSITION_ALPHA:"u_transitionAlpha",DEPTH:"u_depth",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY",RENDER_EXTENT:"u_renderExtent",RESOLUTION:"u_resolution",ZOOM:"u_zoom"},$d={TEXTURE_COORD:"a_textureCoord"},Jd=[{name:$d.TEXTURE_COORD,size:2,type:Od.FLOAT}],Qd={};function tg(t){return 2*(1-1/(t+1))-1}function eg(t,e,i){i in t||(t[i]=[]),t[i].push(e)}function ig(t,e){const i=t.layerStatesArray[t.layerIndex];i.extent&&(e=Se(e,hn(i.extent,t.viewState.projection)));const n=i.layer.getRenderSource();if(!n.getWrapX()){const i=n.getTileGridForProjection(t.viewState.projection).getExtent();i&&(e=Se(e,i))}return e}function ng(t,e){return`${t.getKey()},${dl(e)}`}var rg=class extends qd{constructor(t,e){super(t,{uniforms:e.uniforms}),this.renderComplete=!1,this.tileTransform_=[1,0,0,1,0,0],this.tempMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.tempTileRange_=new vl(0,0,0,0),this.tempTileCoord_=cl(0,0,0),this.tempSize_=[0,0],this.program_,this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.indices_=new vd(ju,Bu),this.indices_.fromArray([0,1,3,1,2,3]);const i=void 0!==e.cacheSize?e.cacheSize:512;this.tileTextureCache_=new hl(i),this.paletteTextures_=e.paletteTextures||[],this.frameState_=null,this.projection_=void 0}reset(t){super.reset({uniforms:t.uniforms}),this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.paletteTextures_=t.paletteTextures||[],this.helper&&(this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}isDrawableTile_(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==tt||i==it||i==et&&!n}prepareFrameInternal(t){this.projection_?t.viewState.projection!==this.projection_&&(this.clearCache(),this.projection_=t.viewState.projection):this.projection_=t.viewState.projection;const e=this.getLayer().getRenderSource();return!!e&&(!be(ig(t,t.extent))&&"ready"===e.getState())}enqueueTiles(t,e,i,n,r){const s=t.viewState,o=this.getLayer(),a=o.getRenderSource(),l=a.getTileGridForProjection(s.projection),h=a.getGutterForProjection(s.projection),c=V(a);c in t.wantedTiles||(t.wantedTiles[c]={});const u=t.wantedTiles[c],d=this.tileTextureCache_,g=o.getMapInternal(),f=Math.max(i-r,l.getMinZoom(),l.getZForResolution(Math.min(o.getMaxResolution(),g?g.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):l.getResolution(0)),a.zDirection));for(let r=i;r>=f;--r){const i=l.getTileRangeForExtentAndZ(e,r,this.tempTileRange_),o=l.getResolution(r);for(let e=i.minX;e<=i.maxX;++e)for(let g=i.minY;g<=i.maxY;++g){const i=cl(r,e,g,this.tempTileCoord_),f=ng(a,i);let p,m;if(d.containsKey(f)&&(p=d.get(f),m=p.tile),!p||p.tile.key!==a.getKey())if(m=a.getTile(r,e,g,t.pixelRatio,s.projection),p)if(this.isDrawableTile_(m))p.setTile(m);else{const t=m.getInterimTile();p.setTile(t)}else p=new Yd({tile:m,grid:l,helper:this.helper,gutter:h}),d.set(f,p);eg(n,p,r);const _=m.getKey();u[_]=!0,m.getState()===J&&(t.tileQueue.isKeyQueued(_)||t.tileQueue.enqueue([m,c,l.getTileCoordCenter(i),o]))}}}renderFrame(t){this.frameState_=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,n=this.getLayer(),r=n.getRenderSource(),s=r.getTileGridForProjection(i.projection),o=r.getGutterForProjection(i.projection),a=ig(t,t.extent),h=s.getZForResolution(i.resolution,r.zDirection),c={},u=n.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,r.zDirection),n=ig(t,t.nextExtent);this.enqueueTiles(t,n,e,c,u)}this.enqueueTiles(t,a,h,c,0),u>0&&setTimeout((()=>{this.enqueueTiles(t,a,h-1,c,u-1)}),0);const d={},g=V(this),f=t.time;let p=!1;const m=c[h];for(let t=0,e=m.length;t<e;++t){const e=m[t],i=e.tile;if((i instanceof Ql||i instanceof rc)&&i.getState()===it)continue;const n=i.tileCoord;if(e.loaded){const t=i.getAlpha(g,f);if(1===t){i.endTransition(g);continue}p=!0;d[dl(n)]=t}this.renderComplete=!1;if(this.findAltTiles_(s,n,h+1,c))continue;const r=s.getMinZoom();for(let t=h-1;t>=r;--t){if(this.findAltTiles_(s,n,t,c))break}}this.helper.useProgram(this.program_,t),this.helper.prepareDraw(t,!p);const _=Object.keys(c).map(Number).sort(l),y=i.center[0],x=i.center[1];for(let n=0,r=_.length;n<r;++n){const r=_[n],l=s.getResolution(r),h=Qa(s.getTileSize(r),this.tempSize_),u=s.getOrigin(r),g=h[0]+2*o,f=h[1]+2*o,p=g/f,m=(y-u[0])/(h[0]*l),v=(u[1]-x)/(h[1]*l),S=i.resolution/l,w=tg(r),T=c[r];for(let n=0,r=T.length;n<r;++n){const r=T[n];if(!r.loaded)continue;const c=r.tile.tileCoord,_=dl(c),y=c[1],x=c[2];Ct(this.tileTransform_),Ft(this.tileTransform_,2/(t.size[0]*S/g),-2/(t.size[1]*S/g)),Lt(this.tileTransform_,i.rotation),Ft(this.tileTransform_,1,1/p),At(this.tileTransform_,(h[0]*(y-m)-o)/g,(h[1]*(x-v)-o)/f),this.helper.setUniformMatrixValue(Hd.TILE_TRANSFORM,Cd(this.tempMat4_,this.tileTransform_)),this.helper.bindBuffer(r.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(Jd);let E=0;for(;E<r.textures.length;){const t="TEXTURE"+E,i=`${Hd.TILE_TEXTURE_ARRAY}[${E}]`;e.activeTexture(e[t]),e.bindTexture(e.TEXTURE_2D,r.textures[E]),e.uniform1i(this.helper.getUniformLocation(i),E),++E}for(let t=0;t<this.paletteTextures_.length;++t){const i=this.paletteTextures_[t];e.activeTexture(e["TEXTURE"+E]);const n=i.getTexture(e);e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(this.helper.getUniformLocation(i.name),E),++E}const C=_ in d?d[_]:1;C<1&&(t.animate=!0),this.helper.setUniformFloatValue(Hd.TRANSITION_ALPHA,C),this.helper.setUniformFloatValue(Hd.DEPTH,w),this.helper.setUniformFloatValue(Hd.TEXTURE_PIXEL_WIDTH,g),this.helper.setUniformFloatValue(Hd.TEXTURE_PIXEL_HEIGHT,f),this.helper.setUniformFloatValue(Hd.TEXTURE_RESOLUTION,l),this.helper.setUniformFloatValue(Hd.TEXTURE_ORIGIN_X,u[0]+y*h[0]*l-o*l),this.helper.setUniformFloatValue(Hd.TEXTURE_ORIGIN_Y,u[1]-x*h[1]*l+o*l);let b=a;o>0&&(b=s.getTileCoordExtent(c),Se(b,a,b)),this.helper.setUniformFloatVec4(Hd.RENDER_EXTENT,b),this.helper.setUniformFloatValue(Hd.RESOLUTION,i.resolution),this.helper.setUniformFloatValue(Hd.ZOOM,i.zoom),this.helper.drawElements(0,this.indices_.getSize())}}this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const v=this.helper.getCanvas(),S=this.tileTextureCache_;for(;S.canExpireCache();){S.pop().dispose()}return t.postRenderFunctions.push((function(t,e){r.updateCacheSize(.1,e.viewState.projection),r.expireCache(e.viewState.projection,Qd)})),this.postRender(e,t),v}getData(t){if(!this.helper.getGL())return null;const e=this.frameState_;if(!e)return null;const i=this.getLayer(),n=It(e.pixelToCoordinateTransform,t.slice()),r=e.viewState,s=i.getExtent();if(s&&!qt(hn(s,r.projection),n))return null;const o=i.getSources(Wt([n]),r.resolution);let a,l,h;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(h=l.getTileGridForProjection(r.projection),l.getWrapX())break;const t=h.getExtent();if(!t||qt(t,n))break}if(a<0)return null;const c=this.tileTextureCache_;for(let t=h.getZForResolution(r.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=ng(l,e);if(!c.containsKey(i))continue;const r=c.get(i),s=r.tile;if((s instanceof Ql||s instanceof rc)&&s.getState()===it)return null;if(!r.loaded)continue;const o=h.getOrigin(t),a=Qa(h.getTileSize(t)),u=h.getResolution(t),d=(n[0]-o[0])/u-e[1]*a[0],g=(o[1]-n[1])/u-e[2]*a[1];return r.getPixelData(d,g)}return null}findAltTiles_(t,e,i,n){const r=t.getTileRangeForTileCoordAndZ(e,i,this.tempTileRange_);if(!r)return!1;let s=!0;const o=this.tileTextureCache_,a=this.getLayer().getRenderSource();for(let t=r.minX;t<=r.maxX;++t)for(let e=r.minY;e<=r.maxY;++e){const r=ng(a,[i,t,e]);let l=!1;if(o.containsKey(r)){const t=o.get(r);t.loaded&&(eg(n,t,i),l=!0)}l||(s=!1)}return s}clearCache(){const t=this.tileTextureCache_;t.forEach((t=>t.dispose())),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_,delete this.tileTextureCache_,delete this.frameState_}};const sg=1,og=2,ag=4,lg=8,hg=16,cg=31,ug=0,dg={};function gg(t){if("number"==typeof t)return sg;if("boolean"==typeof t)return lg;if("string"==typeof t)return as(t)?ag|og:og;if(!Array.isArray(t))throw new Error(`Unhandled value type: ${JSON.stringify(t)}`);const e=t;if(e.every((function(t){return"number"==typeof t})))return 3===e.length||4===e.length?ag|hg:hg;if("string"!=typeof e[0])throw new Error(`Expected an expression operator but received: ${JSON.stringify(e)}`);const i=dg[e[0]];if(void 0===i)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return i.getReturnType(e.slice(1))}function fg(t){return Math.log2(t)%1==0}function pg(t){const e=t.toString();return e.includes(".")?e:e+".0"}function mg(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(pg).join(", ")})`}function _g(t){const e=rs(t).slice();return e.length<4&&e.push(1),mg(e.map((function(t,e){return e<3?t/255:t})))}function yg(t,e){return void 0===t.stringLiteralsMap[e]&&(t.stringLiteralsMap[e]=Object.keys(t.stringLiteralsMap).length),t.stringLiteralsMap[e]}function xg(t,e){return pg(yg(t,e))}function vg(t,e,i){if(Array.isArray(e)&&"string"==typeof e[0]){const n=dg[e[0]];if(void 0===n)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return n.toGlsl(t,e.slice(1),i)}const n=gg(e);if((n&sg)>0)return pg(e);if((n&lg)>0)return e.toString();if((n&og)>0&&(void 0===i||i==og))return xg(t,e.toString());if((n&ag)>0&&(void 0===i||i==ag))return _g(e);if((n&hg)>0)return mg(e);throw new Error(`Unexpected expression ${e} (expected type ${i})`)}function Sg(t){if(!(gg(t)&sg))throw new Error(`A numeric value was expected, got ${JSON.stringify(t)} instead`)}function wg(t){for(let e=0;e<t.length;e++)Sg(t[e])}function Tg(t){if(!(gg(t)&og))throw new Error(`A string value was expected, got ${JSON.stringify(t)} instead`)}function Eg(t){if(!(gg(t)&lg))throw new Error(`A boolean value was expected, got ${JSON.stringify(t)} instead`)}function Cg(t,e){if(t.length!==e)throw new Error(`Exactly ${e} arguments were expected, got ${t.length} instead`)}function bg(t,e){if(t.length<e)throw new Error(`At least ${e} arguments were expected, got ${t.length} instead`)}function Rg(t,e){if(t.length>e)throw new Error(`At most ${e} arguments were expected, got ${t.length} instead`)}function Pg(t){if(t.length%2!=0)throw new Error(`An even amount of arguments was expected, got ${t} instead`)}function Ig(t,e){if(!fg(e))throw new Error(`Could not infer only one type from the following expression: ${JSON.stringify(t)}`)}function Lg(t){return"u_var_"+t}dg.get={getReturnType:function(t){return cg},toGlsl:function(t,e){Cg(e,1),Tg(e[0]);const i=e[0].toString();t.attributes.includes(i)||t.attributes.push(i);return(t.inFragmentShader?"v_":"a_")+i}},dg.var={getReturnType:function(t){return cg},toGlsl:function(t,e){Cg(e,1),Tg(e[0]);const i=e[0].toString();return t.variables.includes(i)||t.variables.push(i),Lg(i)}};const Fg="u_paletteTextures";dg.palette={getReturnType:function(t){return ag},toGlsl:function(t,e){Cg(e,2),Sg(e[0]);const i=vg(t,e[0]),n=e[1];if(!Array.isArray(n))throw new Error("The second argument of palette must be an array");const r=n.length,s=new Uint8Array(4*r);for(let t=0;t<r;t++){const e=n[t];let i;if("string"==typeof e)i=ns(e);else{if(!Array.isArray(e))throw new Error("The second argument of palette must be an array of strings or colors");const t=e.length;if(4===t)i=e;else{if(3!==t)throw new Error(`Expected palette color to have 3 or 4 values, got ${t}`);i=[e[0],e[1],e[2],1]}}const r=4*t;s[r]=i[0],s[r+1]=i[1],s[r+2]=i[2],s[r+3]=255*i[3]}t.paletteTextures||(t.paletteTextures=[]);const o=`u_paletteTextures[${t.paletteTextures.length}]`,a=new Ud(o,s);return t.paletteTextures.push(a),`texture2D(${o}, vec2((${i} + 0.5) / ${r}.0, 0.5))`}};const Mg="getBandValue";function Ag(t){return{getReturnType:function(t){return lg},toGlsl:function(e,i){Cg(i,2);let n=cg;for(let t=0;t<i.length;t++)n&=gg(i[t]);if(n===ug)throw new Error(`All arguments should be of compatible type, got ${JSON.stringify(i)} instead`);return n&=~ag,`(${vg(e,i[0],n)} ${t} ${vg(e,i[1],n)})`}}}function Og(t){return{getReturnType:function(t){return lg},toGlsl:function(e,i){bg(i,2);for(let t=0;t<i.length;t++)Eg(i[t]);let n="";return n=i.map((t=>vg(e,t))).join(` ${t} `),n=`(${n})`,n}}}dg.band={getReturnType:function(t){return sg},toGlsl:function(t,e){bg(e,1),Rg(e,3);const i=e[0];if(!(Mg in t.functions)){let e="";const i=t.bandCount||1;for(let t=0;t<i;t++){const n=Math.floor(t/4);let r=t%4;t===i-1&&1===r&&(r=3);e+=`\n if (band == ${t+1}.0) {\n return texture2D(${`${Hd.TILE_TEXTURE_ARRAY}[${n}]`}, v_textureCoord + vec2(dx, dy))[${r}];\n }\n `}t.functions.getBandValue=`\n float getBandValue(float band, float xOffset, float yOffset) {\n float dx = xOffset / ${Hd.TEXTURE_PIXEL_WIDTH};\n float dy = yOffset / ${Hd.TEXTURE_PIXEL_HEIGHT};\n ${e}\n }\n `}return`getBandValue(${vg(t,i)}, ${vg(t,e[1]||0)}, ${vg(t,e[2]||0)})`}},dg.time={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,0),"u_time"}},dg.zoom={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,0),"u_zoom"}},dg.resolution={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,0),"u_resolution"}},dg["*"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} * ${vg(t,e[1])})`}},dg["/"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} / ${vg(t,e[1])})`}},dg["+"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} + ${vg(t,e[1])})`}},dg["-"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} - ${vg(t,e[1])})`}},dg.clamp={getReturnType:function(t){return sg},toGlsl:function(t,e){Cg(e,3),wg(e);const i=vg(t,e[1]),n=vg(t,e[2]);return`clamp(${vg(t,e[0])}, ${i}, ${n})`}},dg["%"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`mod(${vg(t,e[0])}, ${vg(t,e[1])})`}},dg["^"]={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,2),wg(e),`pow(${vg(t,e[0])}, ${vg(t,e[1])})`}},dg.abs={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`abs(${vg(t,e[0])})`}},dg.floor={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`floor(${vg(t,e[0])})`}},dg.round={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`floor(${vg(t,e[0])} + 0.5)`}},dg.ceil={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`ceil(${vg(t,e[0])})`}},dg.sin={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`sin(${vg(t,e[0])})`}},dg.cos={getReturnType:function(t){return sg},toGlsl:function(t,e){return Cg(e,1),wg(e),`cos(${vg(t,e[0])})`}},dg.atan={getReturnType:function(t){return sg},toGlsl:function(t,e){return bg(e,1),Rg(e,2),wg(e),2===e.length?`atan(${vg(t,e[0])}, ${vg(t,e[1])})`:`atan(${vg(t,e[0])})`}},dg[">"]={getReturnType:function(t){return lg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} > ${vg(t,e[1])})`}},dg[">="]={getReturnType:function(t){return lg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} >= ${vg(t,e[1])})`}},dg["<"]={getReturnType:function(t){return lg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} < ${vg(t,e[1])})`}},dg["<="]={getReturnType:function(t){return lg},toGlsl:function(t,e){return Cg(e,2),wg(e),`(${vg(t,e[0])} <= ${vg(t,e[1])})`}},dg["=="]=Ag("=="),dg["!="]=Ag("!="),dg["!"]={getReturnType:function(t){return lg},toGlsl:function(t,e){return Cg(e,1),Eg(e[0]),`(!${vg(t,e[0])})`}},dg.all=Og("&&"),dg.any=Og("||"),dg.between={getReturnType:function(t){return lg},toGlsl:function(t,e){Cg(e,3),wg(e);const i=vg(t,e[1]),n=vg(t,e[2]),r=vg(t,e[0]);return`(${r} >= ${i} && ${r} <= ${n})`}},dg.array={getReturnType:function(t){return hg},toGlsl:function(t,e){bg(e,2),Rg(e,4),wg(e);const i=e.map((function(e){return vg(t,e,sg)}));return`vec${e.length}(${i.join(", ")})`}},dg.color={getReturnType:function(t){return ag},toGlsl:function(t,e){bg(e,3),Rg(e,4),wg(e);const i=e;3===e.length&&i.push(1);const n=e.map((function(e,i){return vg(t,e,sg)+(i<3?" / 255.0":"")}));return`vec${e.length}(${n.join(", ")})`}},dg.interpolate={getReturnType:function(t){let e=ag|sg;for(let i=3;i<t.length;i+=2)e&=gg(t[i]);return e},toGlsl:function(t,e,i){Pg(e),bg(e,6);const n=e[0];let r;switch(n[0]){case"linear":r=1;break;case"exponential":r=n[1];break;default:r=null}if(!r)throw new Error(`Invalid interpolation type for "interpolate" operator, received: ${JSON.stringify(n)}`);i=void 0!==i?i:cg;const s=dg.interpolate.getReturnType(e)&i;Ig(e,s);const o=vg(t,e[1]),a=pg(r);let l="";for(let i=2;i<e.length-2;i+=2){const n=vg(t,e[i]),r=l||vg(t,e[i+1],s),h=vg(t,e[i+2]);l=`mix(${r}, ${vg(t,e[i+3],s)}, pow(clamp((${o} - ${n}) / (${h} - ${n}), 0.0, 1.0), ${a}))`}return l}},dg.match={getReturnType:function(t){let e=cg;for(let i=2;i<t.length;i+=2)e&=gg(t[i]);return e&=gg(t[t.length-1]),e},toGlsl:function(t,e,i){Pg(e),bg(e,4),i=void 0!==i?i:cg;const n=dg.match.getReturnType(e)&i;Ig(e,n);const r=vg(t,e[0]),s=vg(t,e[e.length-1],n);let o=null;for(let i=e.length-3;i>=1;i-=2){o=`(${r} == ${vg(t,e[i])} ? ${vg(t,e[i+1],n)} : ${o||s})`}return o}},dg.case={getReturnType:function(t){let e=cg;for(let i=1;i<t.length;i+=2)e&=gg(t[i]);return e&=gg(t[t.length-1]),e},toGlsl:function(t,e,i){!function(t){if(t.length%2==0)throw new Error(`An odd amount of arguments was expected, got ${t} instead`)}(e),bg(e,3),i=void 0!==i?i:cg;const n=dg.case.getReturnType(e)&i;Ig(e,n);for(let t=0;t<e.length-1;t+=2)Eg(e[t]);const r=vg(t,e[e.length-1],n);let s=null;for(let i=e.length-3;i>=0;i-=2){s=`(${vg(t,e[i])} ? ${vg(t,e[i+1],n)} : ${s||r})`}return s}};class Ng{constructor(){this.uniforms=[],this.attributes=[],this.varyings=[],this.sizeExpression="vec2(1.0)",this.rotationExpression="0.0",this.offsetExpression="vec2(0.0)",this.colorExpression="vec4(1.0)",this.texCoordExpression="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression="false",this.rotateWithView=!1}addUniform(t){return this.uniforms.push(t),this}addAttribute(t){return this.attributes.push(t),this}addVarying(t,e,i){return this.varyings.push({name:t,type:e,expression:i}),this}setSizeExpression(t){return this.sizeExpression=t,this}setRotationExpression(t){return this.rotationExpression=t,this}setSymbolOffsetExpression(t){return this.offsetExpression=t,this}setColorExpression(t){return this.colorExpression=t,this}setTextureCoordinateExpression(t){return this.texCoordExpression=t,this}setFragmentDiscardExpression(t){return this.discardExpression=t,this}setSymbolRotateWithView(t){return this.rotateWithView=t,this}getSizeExpression(){return this.sizeExpression}getOffsetExpression(){return this.offsetExpression}getColorExpression(){return this.colorExpression}getTextureCoordinateExpression(){return this.texCoordExpression}getFragmentDiscardExpression(){return this.discardExpression}getSymbolVertexShader(t){const e=this.rotateWithView?"u_offsetScaleMatrix * u_offsetRotateMatrix":"u_offsetScaleMatrix";let i=this.attributes,n=this.varyings;return t&&(i=i.concat("vec4 a_hitColor"),n=n.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),`precision mediump float;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n${this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\n${i.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n${n.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\nvoid main(void) {\n mat4 offsetMatrix = ${e};\n vec2 halfSize = ${this.sizeExpression} * 0.5;\n vec2 offset = ${this.offsetExpression};\n float angle = ${this.rotationExpression};\n float offsetX;\n float offsetY;\n if (a_index == 0.0) {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n } else if (a_index == 1.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else if (a_index == 2.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n }\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n vec4 texCoord = ${this.texCoordExpression};\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\n v_texCoord = vec2(u, v);\n u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n v = a_index == 2.0 || a_index == 3.0 ? 0.0 : 1.0;\n v_quadCoord = vec2(u, v);\n${n.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`}getSymbolFragmentShader(t){const e=t?" if (gl_FragColor.a < 0.1) { discard; } gl_FragColor = v_hitColor;":"";let i=this.varyings;return t&&(i=i.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),`precision mediump float;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n${this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n${i.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\nvoid main(void) {\n if (${this.discardExpression}) { discard; }\n gl_FragColor = ${this.colorExpression};\n gl_FragColor.rgb *= gl_FragColor.a;\n${e}\n}`}}function Dg(t){const e=t.symbol,i=void 0!==e.size?e.size:1,n=e.color||"white",r=e.textureCoord||[0,0,1,1],s=e.offset||[0,0],o=void 0!==e.opacity?e.opacity:1,a=void 0!==e.rotation?e.rotation:0,l={inFragmentShader:!1,variables:[],attributes:[],stringLiteralsMap:{},functions:{}},h=vg(l,i,hg|sg),c=vg(l,s,hg),u=vg(l,r,hg),d=vg(l,a,sg),g={inFragmentShader:!0,variables:l.variables,attributes:[],stringLiteralsMap:l.stringLiteralsMap,functions:{}},f=vg(g,n,ag),p=vg(g,o,sg);let m="1.0";const _=`vec2(${vg(g,i,hg|sg)}).x`;switch(e.symbolType){case"square":case"image":break;case"circle":m=`(1.0-smoothstep(1.-4./${_},1.,dot(v_quadCoord-.5,v_quadCoord-.5)*4.))`;break;case"triangle":const t="(v_quadCoord*2.-1.)",i=`(atan(${t}.x,${t}.y))`;m=`(1.0-smoothstep(.5-3./${_},.5,cos(floor(.5+${i}/2.094395102)*2.094395102-${i})*length(${t})))`;break;default:throw new Error("Unexpected symbol type: "+e.symbolType)}const y=(new Ng).setSizeExpression(`vec2(${h})`).setRotationExpression(d).setSymbolOffsetExpression(c).setTextureCoordinateExpression(u).setSymbolRotateWithView(!!e.rotateWithView).setColorExpression(`vec4(${f}.rgb, ${f}.a * ${p} * ${m})`);if(t.filter){const e=vg(g,t.filter,lg);y.setFragmentDiscardExpression(`!${e}`)}const x={};if(g.variables.forEach((function(e){const i=Lg(e);y.addUniform(`float ${i}`),x[i]=function(){if(!t.variables||void 0===t.variables[e])throw new Error(`The following variable is missing from the style: ${e}`);let i=t.variables[e];return"string"==typeof i&&(i=yg(l,i)),void 0!==i?i:-9999999}})),"image"===e.symbolType&&e.src){const t=new Image;t.crossOrigin=void 0===e.crossOrigin?"anonymous":e.crossOrigin,t.src=e.src,y.addUniform("sampler2D u_texture").setColorExpression(y.getColorExpression()+" * texture2D(u_texture, v_texCoord)"),x.u_texture=t}return g.attributes.forEach((function(t){l.attributes.includes(t)||l.attributes.push(t),y.addVarying(`v_${t}`,"float",`a_${t}`)})),l.attributes.forEach((function(t){y.addAttribute(`float a_${t}`)})),{builder:y,attributes:l.attributes.map((function(t){return{name:t,callback:function(e,i){let n=i[t];return"string"==typeof n&&(n=yg(l,n)),void 0!==n?n:-9999999}}})),uniforms:x}}class Gg{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=Qa(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Gg({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return z()}getImage(t){return z()}getHitDetectionImage(){return z()}getPixelRatio(t){return 1}getImageState(){return z()}getImageSize(){return z()}getOrigin(){return z()}getSize(){return z()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=Qa(t)}listenImageChange(t){z()}load(){z()}unlistenImageChange(t){z()}}var kg=Gg;class jg extends kg{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.canvas_=void 0,this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius_=void 0!==t.radius?t.radius:t.radius1,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_=null,this.renderOptions_=null,this.render()}clone(){const t=this.getScale(),e=new jg({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}getAnchor(){const t=this.size_;if(!t)return null;const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]/2-e[0]/i[0],t[1]/2+e[1]/i[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||this.createHitDetectionCanvas_(this.renderOptions_),this.hitDetectionCanvas_}getImage(t){let e=this.canvas_[t];if(!e){const i=this.renderOptions_,n=Xr(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvas_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return Gr}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius_}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,i){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let n=this.radius_,r=void 0===this.radius2_?n:this.radius2_;if(n<r){const t=n;n=r,r=t}const s=void 0===this.radius2_?this.points_:2*this.points_,o=2*Math.PI/s,a=r*Math.sin(o),l=n-Math.sqrt(r*r-a*a),h=Math.sqrt(a*a+l*l),c=h/a;if("miter"===t&&c<=i)return c*e;const u=e/2/c,d=e/2*(l/h),g=Math.sqrt((n+u)*(n+u)+d*d)-n;if(void 0===this.radius2_||"bevel"===t)return 2*g;const f=n*Math.sin(o),p=r-Math.sqrt(n*n-f*f),m=Math.sqrt(f*f+p*p)/f;if(m<=i){const t=m*e/2-r-n;return 2*Math.max(g,t)}return 2*g}createRenderOptions(){let t,e=Zs,i=0,n=null,r=0,s=0;this.stroke_&&(t=this.stroke_.getColor(),null===t&&(t=Ks),t=El(t),s=this.stroke_.getWidth(),void 0===s&&(s=1),n=this.stroke_.getLineDash(),r=this.stroke_.getLineDashOffset(),e=this.stroke_.getLineJoin(),void 0===e&&(e=Zs),i=this.stroke_.getMiterLimit(),void 0===i&&(i=Ys));const o=this.calculateLineJoinSize_(e,s,i),a=Math.max(this.radius_,this.radius2_||0);return{strokeStyle:t,strokeWidth:s,size:Math.ceil(2*a+o),lineDash:n,lineDashOffset:r,lineJoin:e,miterLimit:i}}render(){this.renderOptions_=this.createRenderOptions();const t=this.renderOptions_.size;this.canvas_={},this.size_=[t,t]}draw_(t,e,i){if(e.scale(i,i),e.translate(t.size/2,t.size/2),this.createPath_(e),this.fill_){let t=this.fill_.getColor();null===t&&(t=Xs),e.fillStyle=El(t),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}createHitDetectionCanvas_(t){if(this.fill_){let e=this.fill_.getColor(),i=0;if("string"==typeof e&&(e=rs(e)),null===e?i=1:Array.isArray(e)&&(i=4===e.length?e[3]:1),0===i){const e=Xr(t.size,t.size);this.hitDetectionCanvas_=e.canvas,this.drawHitDetectionCanvas_(t,e)}}this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.getImage(1))}createPath_(t){let e=this.points_;const i=this.radius_;if(e===1/0)t.arc(0,0,i,0,2*Math.PI);else{const n=void 0===this.radius2_?i:this.radius2_;void 0!==this.radius2_&&(e*=2);const r=this.angle_-Math.PI/2,s=2*Math.PI/e;for(let o=0;o<e;o++){const e=r+o*s,a=o%2==0?i:n;t.lineTo(a*Math.cos(e),a*Math.sin(e))}t.closePath()}}drawHitDetectionCanvas_(t,e){e.translate(t.size/2,t.size/2),this.createPath_(e),e.fillStyle=Xs,e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke())}}var Bg=jg;class Ug extends Bg{constructor(t){super({points:1/0,fill:(t=t||{radius:5}).fill,radius:t.radius,stroke:t.stroke,scale:void 0!==t.scale?t.scale:1,rotation:void 0!==t.rotation?t.rotation:0,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode})}clone(){const t=this.getScale(),e=new Ug({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}setRadius(t){this.radius_=t,this.render()}}var zg=Ug;class Xg{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null}clone(){const t=this.getColor();return new Xg({color:Array.isArray(t)?t.slice():t||void 0})}getColor(){return this.color_}setColor(t){this.color_=t}}var Vg=Xg;let Wg=null;class Zg extends S{constructor(t,e,i,n,r,s){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=n,this.canvas_={},this.color_=s,this.unlisten_=null,this.imageState_=r,this.size_=i,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===Gr){Wg||(Wg=Xr(1,1)),Wg.drawImage(this.image_,0,0);try{Wg.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Wg=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(w)}handleImageError_(){this.imageState_=kr,this.unlistenImage_(),this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=Gr,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=Xr(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Nr){this.image_||this.initializeImage_(),this.imageState_=Dr;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=Br(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==Gr)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=es(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function Yg(t,e,i,n,r,s){let o=us.get(e,n,s);return o||(o=new Zg(t,e,i,n,r,s),us.set(e,n,s,o)),o}var Kg=Zg;class qg extends kg{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,r=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;this.imgSize_=t.imgSize;let o=t.src;ht(!(void 0!==o&&s),4),ht(!s||s&&this.imgSize_,5),void 0!==o&&0!==o.length||!s||(o=s.src||V(s)),ht(void 0!==o&&o.length>0,6);const a=void 0!==t.src?Nr:Gr;this.color_=void 0!==t.color?rs(t.color):null,this.iconImage_=Yg(s,o,void 0!==this.imgSize_?this.imgSize_:null,this.crossOrigin_,a,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null}clone(){const t=this.getScale();return new qg({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,imgSize:this.imgSize_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:Array.isArray(t)?t.slice():t,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}listenImageChange(t){this.iconImage_.addEventListener(w,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(w,t)}}var Hg=qg;class $g{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new $g({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}var Jg=$g;class Qg{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=sf,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new Qg({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer(),stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=sf,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function tf(t){let e;if("function"==typeof t)e=t;else{let i;if(Array.isArray(t))i=t;else{ht("function"==typeof t.getZIndex,41);i=[t]}e=function(){return i}}return e}let ef=null;function nf(t,e){if(!ef){const t=new Vg({color:"rgba(255,255,255,0.4)"}),e=new Jg({color:"#3399CC",width:1.25});ef=[new Qg({image:new zg({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return ef}function rf(){const t={},e=[255,255,255,1],i=[0,153,255,1];return t.Polygon=[new Qg({fill:new Vg({color:[255,255,255,.5]})})],t.MultiPolygon=t.Polygon,t.LineString=[new Qg({stroke:new Jg({color:e,width:5})}),new Qg({stroke:new Jg({color:i,width:3})})],t.MultiLineString=t.LineString,t.Circle=t.Polygon.concat(t.LineString),t.Point=[new Qg({image:new zg({radius:6,fill:new Vg({color:i}),stroke:new Jg({color:e,width:1.5})}),zIndex:1/0})],t.MultiPoint=t.Point,t.GeometryCollection=t.Polygon.concat(t.LineString,t.Point),t}function sf(t){return t.getGeometry()}var of=Qg;class af{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.scale_=t.scale,this.scaleArray_=Qa(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new Vg({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding}clone(){const t=this.getScale();return new af({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRotateWithView(t){this.rotateWithView_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=Qa(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}}var lf=af;function hf(t){return new of({fill:cf(t,""),stroke:uf(t,""),text:df(t),image:gf(t)})}function cf(t,e){const i=t[e+"fill-color"];if(i)return new Vg({color:i})}function uf(t,e){const i=t[e+"stroke-width"],n=t[e+"stroke-color"];if(i||n)return new Jg({width:i,color:n,lineCap:t[e+"stroke-line-cap"],lineJoin:t[e+"stroke-line-join"],lineDash:t[e+"stroke-line-dash"],lineDashOffset:t[e+"stroke-line-dash-offset"],miterLimit:t[e+"stroke-miter-limit"]})}function df(t){const e=t["text-value"];if(!e)return;return new lf({text:e,font:t["text-font"],maxAngle:t["text-max-angle"],offsetX:t["text-offset-x"],offsetY:t["text-offset-y"],overflow:t["text-overflow"],placement:t["text-placement"],scale:t["text-scale"],rotateWithView:t["text-rotate-with-view"],rotation:t["text-rotation"],textAlign:t["text-align"],justify:t["text-justify"],textBaseline:t["text-baseline"],padding:t["text-padding"],fill:cf(t,"text-"),backgroundFill:cf(t,"text-background-"),stroke:uf(t,"text-"),backgroundStroke:uf(t,"text-background-")})}function gf(t){const e=t["icon-src"],i=t["icon-img"];if(e||i){return new Hg({src:e,img:i,imgSize:t["icon-img-size"],anchor:t["icon-anchor"],anchorOrigin:t["icon-anchor-origin"],anchorXUnits:t["icon-anchor-x-units"],anchorYUnits:t["icon-anchor-y-units"],color:t["icon-color"],crossOrigin:t["icon-cross-origin"],offset:t["icon-offset"],displacement:t["icon-displacement"],opacity:t["icon-opacity"],scale:t["icon-scale"],rotation:t["icon-rotation"],rotateWithView:t["icon-rotate-with-view"],size:t["icon-size"],declutterMode:t["icon-declutter-mode"]})}const n=t["shape-points"];if(n){const e="shape-";return new Bg({points:n,fill:cf(t,e),stroke:uf(t,e),radius:t["shape-radius"],radius1:t["shape-radius1"],radius2:t["shape-radius2"],angle:t["shape-angle"],displacement:t["shape-displacement"],rotation:t["shape-rotation"],rotateWithView:t["shape-rotate-with-view"],scale:t["shape-scale"],declutterMode:t["shape-declutter-mode"]})}const r=t["circle-radius"];if(r){const e="circle-";return new zg({radius:r,fill:cf(t,e),stroke:uf(t,e),displacement:t["circle-displacement"],scale:t["circle-scale"],rotation:t["circle-rotation"],rotateWithView:t["circle-rotate-with-view"],declutterMode:t["circle-declutter-mode"]})}}var ff=class{constructor(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0}insertItem(t){const e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){const t=i.next;e.prev=i,e.next=t,i.next=e,t&&(t.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++}removeItem(){const t=this.head_;if(t){const e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}}firstItem(){if(this.head_=this.first_,this.head_)return this.head_.data}lastItem(){if(this.head_=this.last_,this.head_)return this.head_.data}nextItem(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data}getNextItem(){if(this.head_&&this.head_.next)return this.head_.next.data}prevItem(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data}getPrevItem(){if(this.head_&&this.head_.prev)return this.head_.prev.data}getCurrItem(){if(this.head_)return this.head_.data}setFirstItem(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)}concat(t){if(t.head_){if(this.head_){const e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}}getLength(){return this.length_}};const pf={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},mf={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function _f(t,e){let i,n;for(let r=0;r<t.length;++r){const s=t[r];if("item"===s.rel){if(s.type===e){i=s.href;break}(pf[s.type]||!n&&s.type.startsWith("image/"))&&(n=s.href)}}if(!i){if(!n)throw new Error('Could not find "item" link');i=n}return i}function yf(t,e,i){let n,r;const s={};for(let i=0;i<t.length;++i){const o=t[i];if(s[o.type]=o.href,"item"===o.rel){if(o.type===e){n=o.href;break}mf[o.type]&&(r=o.href)}}if(!n&&i)for(let t=0;t<i.length;++t){const e=i[t];if(s[e]){n=s[e];break}}if(!n){if(!r)throw new Error('Could not find "item" link');n=r}return n}function xf(t,e,i,n){let r=t.projection;if(!r&&(r=Vi(e.crs),!r))throw new Error(`Unsupported CRS: ${e.crs}`);const s="en"!==r.getAxisOrientation().substr(0,2),o=e.tileMatrices,a={};for(let t=0;t<o.length;++t){const e=o[t];a[e.id]=e}const l={},h=[];if(n)for(let t=0;t<n.length;++t){const e=n[t],i=e.tileMatrix;h.push(i),l[i]=e}else for(let t=0;t<o.length;++t){const e=o[t].id;h.push(e)}const c=h.length,u=new Array(c),d=new Array(c),g=new Array(c),f=new Array(c),p=[-1/0,-1/0,1/0,1/0];for(let t=0;t<c;++t){const e=h[t],i=a[e],n=i.pointOfOrigin;u[t]=s?[n[1],n[0]]:n,d[t]=i.cellSize,g[t]=[i.matrixWidth,i.matrixHeight],f[t]=[i.tileWidth,i.tileHeight];const r=l[e];if(r){const e=i.cellSize*i.tileWidth,n=u[t][0]+r.minTileCol*e,s=u[t][0]+(r.maxTileCol+1)*e,o=i.cellSize*i.tileHeight;let a,l;"bottomLeft"===i.cornerOfOrigin?(a=u[t][1]+r.minTileRow*o,l=u[t][1]+(r.maxTileRow+1)*o):(a=u[t][1]-(r.maxTileRow+1)*o,l=u[t][1]-r.minTileRow*o),Se(p,[n,a,s,l],p)}}const m=new oh({origins:u,resolutions:d,sizes:g,tileSizes:f,extent:n?p:void 0}),_=t.context,y=t.url;return{grid:m,urlTemplate:i,urlFunction:function(t,e,r){if(!t)return;const s=h[t[0]],o=a[s],c="bottomLeft"===o.cornerOfOrigin,u={tileMatrix:s,tileCol:t[1],tileRow:c?-t[2]-1:t[2]};if(n){const t=l[o.id];if(u.tileCol<t.minTileCol||u.tileCol>t.maxTileCol||u.tileRow<t.minTileRow||u.tileRow>t.maxTileRow)return}Object.assign(u,_);const d=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return Ol(y,d)}}}function vf(t){return Al(t.url).then((function(e){return function(t,e){const i=e.tileMatrixSetLimits;let n;if("map"===e.dataType)n=_f(e.links,t.mediaType);else{if("vector"!==e.dataType)throw new Error('Expected tileset data type to be "map" or "vector"');n=yf(e.links,t.mediaType,t.supportedMediaTypes)}if(e.tileMatrixSet)return xf(t,e.tileMatrixSet,n,i);const r=e.links.find((t=>"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel));if(!r)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=r.href;return Al(Ol(t.url,s)).then((function(e){return xf(t,e,n,i)}))}(t,e)}))}var Sf=class extends Eh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});vf({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){console.error(t),this.setState("error")}};var wf=class extends Mu{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,format:t.format,overlaps:t.overlaps,projection:t.projection,tileClass:t.tileClass,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection,state:"loading"});vf({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,supportedMediaTypes:t.format.supportedMediaTypes,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){console.error(t),this.setState("error")}};const Tf="renderOrder";var Ef=class extends Is{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Tf)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new Ah(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(Tf,t)}setStyle(t){let e;if(void 0===t)e=nf;else if(null===t)e=null;else if("function"==typeof t)e=t;else if(t instanceof of)e=t;else if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let e=0;e<i;++e){const i=t[e];n[e]=i instanceof of?i:hf(i)}e=n}else e=hf(t);this.style_=e,this.styleFunction_=null===t?void 0:tf(this.style_),this.changed()}};const Cf="GENERATE_POLYGON_BUFFERS",bf="GENERATE_POINT_BUFFERS",Rf="GENERATE_LINE_STRING_BUFFERS";var Pf={exports:{}};function If(t,e,i){i=i||2;var n,r,s,o,a,l,h,c=e&&e.length,u=c?e[0]*i:t.length,d=Lf(t,0,u,i,!0),g=[];if(!d||d.next===d.prev)return g;if(c&&(d=function(t,e,i,n){var r,s,o,a=[];for(r=0,s=e.length;r<s;r++)(o=Lf(t,e[r]*n,r<s-1?e[r+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),a.push(Uf(o));for(a.sort(Gf),r=0;r<a.length;r++)i=kf(a[r],i);return i}(t,e,d,i)),t.length>80*i){n=s=t[0],r=o=t[1];for(var f=i;f<u;f+=i)(a=t[f])<n&&(n=a),(l=t[f+1])<r&&(r=l),a>s&&(s=a),l>o&&(o=l);h=0!==(h=Math.max(s-n,o-r))?32767/h:0}return Mf(d,g,i,n,r,h,0),g}function Lf(t,e,i,n,r){var s,o;if(r===tp(t,e,i,n)>0)for(s=e;s<i;s+=n)o=$f(s,t[s],t[s+1],o);else for(s=i-n;s>=e;s-=n)o=$f(s,t[s],t[s+1],o);return o&&Wf(o,o.next)&&(Jf(o),o=o.next),o}function Ff(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!Wf(n,n.next)&&0!==Vf(n.prev,n,n.next))n=n.next;else{if(Jf(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function Mf(t,e,i,n,r,s,o){if(t){!o&&s&&function(t,e,i,n){var r=t;do{0===r.z&&(r.z=Bf(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e<h&&(a++,n=n.nextZ);e++);for(l=h;a>0||l>0&&n;)0!==a&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,h*=2}while(o>1)}(r)}(t,n,r,s);for(var a,l,h=t;t.prev!==t.next;)if(a=t.prev,l=t.next,s?Of(t,n,r,s):Af(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),Jf(t),t=l.next,h=l.next;else if((t=l)===h){o?1===o?Mf(t=Nf(Ff(t),e,i),e,i,n,r,s,2):2===o&&Df(t,e,i,n,r,s):Mf(Ff(t),e,i,n,r,s,1);break}}}function Af(t){var e=t.prev,i=t,n=t.next;if(Vf(e,i,n)>=0)return!1;for(var r=e.x,s=i.x,o=n.x,a=e.y,l=i.y,h=n.y,c=r<s?r<o?r:o:s<o?s:o,u=a<l?a<h?a:h:l<h?l:h,d=r>s?r>o?r:o:s>o?s:o,g=a>l?a>h?a:h:l>h?l:h,f=n.next;f!==e;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=g&&zf(r,a,s,l,o,h,f.x,f.y)&&Vf(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Of(t,e,i,n){var r=t.prev,s=t,o=t.next;if(Vf(r,s,o)>=0)return!1;for(var a=r.x,l=s.x,h=o.x,c=r.y,u=s.y,d=o.y,g=a<l?a<h?a:h:l<h?l:h,f=c<u?c<d?c:d:u<d?u:d,p=a>l?a>h?a:h:l>h?l:h,m=c>u?c>d?c:d:u>d?u:d,_=Bf(g,f,e,i,n),y=Bf(p,m,e,i,n),x=t.prevZ,v=t.nextZ;x&&x.z>=_&&v&&v.z<=y;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&zf(a,c,l,u,h,d,x.x,x.y)&&Vf(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&zf(a,c,l,u,h,d,v.x,v.y)&&Vf(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;x&&x.z>=_;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&zf(a,c,l,u,h,d,x.x,x.y)&&Vf(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;v&&v.z<=y;){if(v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&zf(a,c,l,u,h,d,v.x,v.y)&&Vf(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function Nf(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!Wf(r,s)&&Zf(r,n,n.next,s)&&qf(r,s)&&qf(s,r)&&(e.push(r.i/i|0),e.push(n.i/i|0),e.push(s.i/i|0),Jf(n),Jf(n.next),n=t=s),n=n.next}while(n!==t);return Ff(n)}function Df(t,e,i,n,r,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Xf(o,a)){var l=Hf(o,a);return o=Ff(o,o.next),l=Ff(l,l.next),Mf(o,e,i,n,r,s,0),void Mf(l,e,i,n,r,s,0)}a=a.next}o=o.next}while(o!==t)}function Gf(t,e){return t.x-e.x}function kf(t,e){var i=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o&&(o=a,i=n.x<n.next.x?n:n.next,a===r))return i}n=n.next}while(n!==e);if(!i)return null;var l,h=i,c=i.x,u=i.y,d=1/0;n=i;do{r>=n.x&&n.x>=c&&r!==n.x&&zf(s<u?r:o,s,c,u,s<u?o:r,s,n.x,n.y)&&(l=Math.abs(s-n.y)/(r-n.x),qf(n,t)&&(l<d||l===d&&(n.x>i.x||n.x===i.x&&jf(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}(t,e);if(!i)return e;var n=Hf(i,t);return Ff(n,n.next),Ff(i,i.next)}function jf(t,e){return Vf(t.prev,t,e.prev)<0&&Vf(e.next,t,t.next)<0}function Bf(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Uf(t){var e=t,i=t;do{(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next}while(e!==t);return i}function zf(t,e,i,n,r,s,o,a){return(r-o)*(e-a)>=(t-o)*(s-a)&&(t-o)*(n-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(r-o)*(n-a)}function Xf(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&Zf(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(qf(t,e)&&qf(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&(Vf(t.prev,t,e.prev)||Vf(t,e.prev,e))||Wf(t,e)&&Vf(t.prev,t,t.next)>0&&Vf(e.prev,e,e.next)>0)}function Vf(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Wf(t,e){return t.x===e.x&&t.y===e.y}function Zf(t,e,i,n){var r=Kf(Vf(t,e,i)),s=Kf(Vf(t,e,n)),o=Kf(Vf(i,n,t)),a=Kf(Vf(i,n,e));return r!==s&&o!==a||(!(0!==r||!Yf(t,i,e))||(!(0!==s||!Yf(t,n,e))||(!(0!==o||!Yf(i,t,n))||!(0!==a||!Yf(i,e,n)))))}function Yf(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function Kf(t){return t>0?1:t<0?-1:0}function qf(t,e){return Vf(t.prev,t,t.next)<0?Vf(t,e,t.next)>=0&&Vf(t,t.prev,e)>=0:Vf(t,e,t.prev)<0||Vf(t,t.next,e)<0}function Hf(t,e){var i=new Qf(t.i,t.x,t.y),n=new Qf(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function $f(t,e,i,n){var r=new Qf(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Jf(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 Qf(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function tp(t,e,i,n){for(var r=0,s=e,o=i-n;s<i;s+=n)r+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return r}Pf.exports=If,Pf.exports.default=If,If.deviation=function(t,e,i,n){var r=e&&e.length,s=r?e[0]*i:t.length,o=Math.abs(tp(t,0,s,i));if(r)for(var a=0,l=e.length;a<l;a++){var h=e[a]*i,c=a<l-1?e[a+1]*i:t.length;o-=Math.abs(tp(t,h,c,i))}var u=0;for(a=0;a<n.length;a+=3){var d=n[a]*i,g=n[a+1]*i,f=n[a+2]*i;u+=Math.abs((t[d]-t[f])*(t[g+1]-t[d+1])-(t[d]-t[g])*(t[f+1]-t[d+1]))}return 0===o&&0===u?0:Math.abs((u-o)/o)},If.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},n=0,r=0;r<t.length;r++){for(var s=0;s<t[r].length;s++)for(var o=0;o<e;o++)i.vertices.push(t[r][s][o]);r>0&&(n+=t[r-1].length,i.holes.push(n))}return i};const ep=[],ip={vertexPosition:0,indexPosition:0};function np(t,e,i,n,r){t[e+0]=i,t[e+1]=n,t[e+2]=r}function rp(t,e){const i=256,n=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/n,e[1]=Math.floor(t/i/i)%i/n,e[2]=Math.floor(t/i)%i/n,e[3]=t%i/n,e}function sp(t){let e=0;const i=256,n=255;return e+=Math.round(t[0]*i*i*i*n),e+=Math.round(t[1]*i*i*n),e+=Math.round(t[2]*i*n),e+=Math.round(t[3]*n),e}function op(){const t='const e="GENERATE_POLYGON_BUFFERS",t="GENERATE_POINT_BUFFERS",n="GENERATE_LINE_STRING_BUFFERS",r={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:\'`renderMode` must be `"hybrid"` or `"vector"`\',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection"};class o extends Error{constructor(e){const t=r[e];super(t),this.code=e,this.name="AssertionError",this.message=t}}var i=o;function a(e,t){const n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function s(e,t){const n=(r=t)[0]*r[3]-r[1]*r[2];var r;!function(e,t){if(!e)throw new i(t)}(0!==n,32);const o=t[0],a=t[1],s=t[2],u=t[3],x=t[4],f=t[5];return e[0]=u/n,e[1]=-a/n,e[2]=-s/n,e[3]=o/n,e[4]=(s*f-u*x)/n,e[5]=-(o*f-a*x)/n,e}new Array(6);var u={exports:{}};function x(e,t,n){n=n||2;var r,o,i,a,s,u,x,l=t&&t.length,c=l?t[0]*n:e.length,v=f(e,0,c,n,!0),d=[];if(!v||v.next===v.prev)return d;if(l&&(v=function(e,t,n,r){var o,i,a,s=[];for(o=0,i=t.length;o<i;o++)(a=f(e,t[o]*r,o<i-1?t[o+1]*r:e.length,r,!1))===a.next&&(a.steiner=!0),s.push(w(a));for(s.sort(p),o=0;o<s.length;o++)n=b(s[o],n);return n}(e,t,v,n)),e.length>80*n){r=i=e[0],o=a=e[1];for(var y=n;y<c;y+=n)(s=e[y])<r&&(r=s),(u=e[y+1])<o&&(o=u),s>i&&(i=s),u>a&&(a=u);x=0!==(x=Math.max(i-r,a-o))?32767/x:0}return h(v,d,n,r,o,x,0),d}function f(e,t,n,r,o){var i,a;if(o===B(e,t,n,r)>0)for(i=t;i<n;i+=r)a=k(i,e[i],e[i+1],a);else for(i=n-r;i>=t;i-=r)a=k(i,e[i],e[i+1],a);return a&&M(a,a.next)&&(z(a),a=a.next),a}function l(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!M(r,r.next)&&0!==Z(r.prev,r,r.next))r=r.next;else{if(z(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function h(e,t,n,r,o,i,a){if(e){!a&&i&&function(e,t,n,r){var o=e;do{0===o.z&&(o.z=g(o.x,o.y,t,n,r)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next}while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,function(e){var t,n,r,o,i,a,s,u,x=1;do{for(n=e,e=null,i=null,a=0;n;){for(a++,r=n,s=0,t=0;t<x&&(s++,r=r.nextZ);t++);for(u=x;s>0||u>0&&r;)0!==s&&(0===u||!r||n.z<=r.z)?(o=n,n=n.nextZ,s--):(o=r,r=r.nextZ,u--),i?i.nextZ=o:e=o,o.prevZ=i,i=o;n=r}i.nextZ=null,x*=2}while(a>1)}(o)}(e,r,o,i);for(var s,u,x=e;e.prev!==e.next;)if(s=e.prev,u=e.next,i?v(e,r,o,i):c(e))t.push(s.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),z(e),e=u.next,x=u.next;else if((e=u)===x){a?1===a?h(e=d(l(e),t,n),t,n,r,o,i,2):2===a&&y(e,t,n,r,o,i):h(l(e),t,n,r,o,i,1);break}}}function c(e){var t=e.prev,n=e,r=e.next;if(Z(t,n,r)>=0)return!1;for(var o=t.x,i=n.x,a=r.x,s=t.y,u=n.y,x=r.y,f=o<i?o<a?o:a:i<a?i:a,l=s<u?s<x?s:x:u<x?u:x,h=o>i?o>a?o:a:i>a?i:a,c=s>u?s>x?s:x:u>x?u:x,v=r.next;v!==t;){if(v.x>=f&&v.x<=h&&v.y>=l&&v.y<=c&&A(o,s,i,u,a,x,v.x,v.y)&&Z(v.prev,v,v.next)>=0)return!1;v=v.next}return!0}function v(e,t,n,r){var o=e.prev,i=e,a=e.next;if(Z(o,i,a)>=0)return!1;for(var s=o.x,u=i.x,x=a.x,f=o.y,l=i.y,h=a.y,c=s<u?s<x?s:x:u<x?u:x,v=f<l?f<h?f:h:l<h?l:h,d=s>u?s>x?s:x:u>x?u:x,y=f>l?f>h?f:h:l>h?l:h,p=g(c,v,t,n,r),b=g(d,y,t,n,r),m=e.prevZ,w=e.nextZ;m&&m.z>=p&&w&&w.z<=b;){if(m.x>=c&&m.x<=d&&m.y>=v&&m.y<=y&&m!==o&&m!==a&&A(s,f,u,l,x,h,m.x,m.y)&&Z(m.prev,m,m.next)>=0)return!1;if(m=m.prevZ,w.x>=c&&w.x<=d&&w.y>=v&&w.y<=y&&w!==o&&w!==a&&A(s,f,u,l,x,h,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;m&&m.z>=p;){if(m.x>=c&&m.x<=d&&m.y>=v&&m.y<=y&&m!==o&&m!==a&&A(s,f,u,l,x,h,m.x,m.y)&&Z(m.prev,m,m.next)>=0)return!1;m=m.prevZ}for(;w&&w.z<=b;){if(w.x>=c&&w.x<=d&&w.y>=v&&w.y<=y&&w!==o&&w!==a&&A(s,f,u,l,x,h,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function d(e,t,n){var r=e;do{var o=r.prev,i=r.next.next;!M(o,i)&&F(o,r,r.next,i)&&S(o,i)&&S(i,o)&&(t.push(o.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),z(r),z(r.next),r=e=i),r=r.next}while(r!==e);return l(r)}function y(e,t,n,r,o,i){var a=e;do{for(var s=a.next.next;s!==a.prev;){if(a.i!==s.i&&E(a,s)){var u=U(a,s);return a=l(a,a.next),u=l(u,u.next),h(a,t,n,r,o,i,0),void h(u,t,n,r,o,i,0)}s=s.next}a=a.next}while(a!==e)}function p(e,t){return e.x-t.x}function b(e,t){var n=function(e,t){var n,r=t,o=e.x,i=e.y,a=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var s=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=o&&s>a&&(a=s,n=r.x<r.next.x?r:r.next,s===o))return n}r=r.next}while(r!==t);if(!n)return null;var u,x=n,f=n.x,l=n.y,h=1/0;r=n;do{o>=r.x&&r.x>=f&&o!==r.x&&A(i<l?o:a,i,f,l,i<l?a:o,i,r.x,r.y)&&(u=Math.abs(i-r.y)/(o-r.x),S(r,e)&&(u<h||u===h&&(r.x>n.x||r.x===n.x&&m(n,r)))&&(n=r,h=u)),r=r.next}while(r!==x);return n}(e,t);if(!n)return t;var r=U(n,e);return l(r,r.next),l(n,n.next)}function m(e,t){return Z(e.prev,e,t.prev)<0&&Z(t.next,e,e.next)<0}function g(e,t,n,r,o){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*o|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function w(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function A(e,t,n,r,o,i,a,s){return(o-a)*(t-s)>=(e-a)*(i-s)&&(e-a)*(r-s)>=(n-a)*(t-s)&&(n-a)*(i-s)>=(o-a)*(r-s)}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&F(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(S(e,t)&&S(t,e)&&function(e,t){var n=e,r=!1,o=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&o<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(Z(e.prev,e,t.prev)||Z(e,t.prev,t))||M(e,t)&&Z(e.prev,e,e.next)>0&&Z(t.prev,t,t.next)>0)}function Z(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function M(e,t){return e.x===t.x&&e.y===t.y}function F(e,t,n,r){var o=I(Z(e,t,n)),i=I(Z(e,t,r)),a=I(Z(n,r,e)),s=I(Z(n,r,t));return o!==i&&a!==s||(!(0!==o||!T(e,n,t))||(!(0!==i||!T(e,r,t))||(!(0!==a||!T(n,e,r))||!(0!==s||!T(n,t,r)))))}function T(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function I(e){return e>0?1:e<0?-1:0}function S(e,t){return Z(e.prev,e,e.next)<0?Z(e,t,e.next)>=0&&Z(e,e.prev,t)>=0:Z(e,t,e.prev)<0||Z(e,e.next,t)<0}function U(e,t){var n=new R(e.i,e.x,e.y),r=new R(t.i,t.x,t.y),o=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function k(e,t,n,r){var o=new R(e,t,n);return r?(o.next=r.next,o.prev=r,r.next.prev=o,r.next=o):(o.prev=o,o.next=o),o}function z(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function R(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function B(e,t,n,r){for(var o=0,i=t,a=n-r;i<n;i+=r)o+=(e[a]-e[i])*(e[i+1]+e[a+1]),a=i;return o}u.exports=x,u.exports.default=x,x.deviation=function(e,t,n,r){var o=t&&t.length,i=o?t[0]*n:e.length,a=Math.abs(B(e,0,i,n));if(o)for(var s=0,u=t.length;s<u;s++){var x=t[s]*n,f=s<u-1?t[s+1]*n:e.length;a-=Math.abs(B(e,x,f,n))}var l=0;for(s=0;s<r.length;s+=3){var h=r[s]*n,c=r[s+1]*n,v=r[s+2]*n;l+=Math.abs((e[h]-e[v])*(e[c+1]-e[h+1])-(e[h]-e[c])*(e[v+1]-e[h+1]))}return 0===a&&0===l?0:Math.abs((l-a)/a)},x.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,o=0;o<e.length;o++){for(var i=0;i<e[o].length;i++)for(var a=0;a<t;a++)n.vertices.push(e[o][i][a]);o>0&&(r+=e[o-1].length,n.holes.push(r))}return n};const N=[],P={vertexPosition:0,indexPosition:0};function C(e,t,n,r,o){e[t+0]=n,e[t+1]=r,e[t+2]=o}function _(e,t,n,r,o,i){const a=3+o,s=e[t+0],u=e[t+1],x=N;x.length=o;for(let n=0;n<x.length;n++)x[n]=e[t+2+n];let f=i?i.vertexPosition:0,l=i?i.indexPosition:0;const h=f/a;return C(n,f,s,u,0),x.length&&n.set(x,f+3),f+=a,C(n,f,s,u,1),x.length&&n.set(x,f+3),f+=a,C(n,f,s,u,2),x.length&&n.set(x,f+3),f+=a,C(n,f,s,u,3),x.length&&n.set(x,f+3),f+=a,r[l++]=h,r[l++]=h+1,r[l++]=h+3,r[l++]=h+1,r[l++]=h+2,r[l++]=h+3,P.vertexPosition=f,P.indexPosition=l,P}function q(e,t,n,r,o,i,s,u,x,f){const l=5+u.length,h=i.length/l,c=[e[t+0],e[t+1]],v=[e[n],e[n+1]],d=a(f,[...c]),y=a(f,[...v]);function p(e,t,n){const r=1e4;return Math.round(1500*t)+Math.round(1500*n)*r+e*r*r}function b(e,t,n){const r=Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])),o=[(t[0]-e[0])/r,(t[1]-e[1])/r],i=[-o[1],o[0]],a=Math.sqrt((n[0]-e[0])*(n[0]-e[0])+(n[1]-e[1])*(n[1]-e[1])),s=[(n[0]-e[0])/a,(n[1]-e[1])/a],u=0===r||0===a?0:Math.acos((x=s[0]*o[0]+s[1]*o[1],f=-1,l=1,Math.min(Math.max(x,f),l)));var x,f,l;return s[0]*i[0]+s[1]*i[1]>0?u:2*Math.PI-u}const m=null!==o;let g=0,w=0;if(null!==r){g=b(d,y,a(f,[...[e[r],e[r+1]]]))}if(m){w=b(y,d,a(f,[...[e[o],e[o+1]]]))}i.push(c[0],c[1],v[0],v[1],p(0,g,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(1,g,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(2,g,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(3,g,w)),i.push(...u),s.push(h,h+1,h+2,h+1,h+3,h+2)}function L(e,t,n,r,o){const i=2+o;let a=t;const s=e.slice(a,a+o);a+=o;const x=e[a++];let f=0;const l=new Array(x-1);for(let t=0;t<x;t++)f+=e[a++],t<x-1&&(l[t]=f);const h=e.slice(a,a+2*f),c=u.exports(h,l,2);for(let e=0;e<c.length;e++)r.push(c[e]+n.length/i);for(let e=0;e<h.length;e+=2)n.push(h[e],h[e+1],...s);return a+2*f}const G=self;G.onmessage=r=>{const o=r.data;switch(o.type){case t:{const e=3,t=2,n=o.customAttributesCount,r=t+n,i=new Float32Array(o.renderInstructions),a=i.length/r,s=4*a*(n+e),u=new Uint32Array(6*a),x=new Float32Array(s);let f;for(let e=0;e<i.length;e+=r)f=_(i,e,x,u,n,f);const l=Object.assign({vertexBuffer:x.buffer,indexBuffer:u.buffer,renderInstructions:i.buffer},o);G.postMessage(l,[x.buffer,u.buffer,i.buffer]);break}case n:{const e=[],t=[],n=o.customAttributesCount,r=2,i=new Float32Array(o.renderInstructions);let a=0;const u=o.renderInstructionsTransform,x=[1,0,0,1,0,0];let f,l;for(s(x,u);a<i.length;){l=Array.from(i.slice(a,a+n)),a+=n,f=i[a++];for(let n=0;n<f-1;n++)q(i,a+n*r,a+(n+1)*r,n>0?a+(n-1)*r:null,n<f-2?a+(n+2)*r:null,e,t,l,0,x);a+=f*r}const h=Uint32Array.from(t),c=Float32Array.from(e),v=Object.assign({vertexBuffer:c.buffer,indexBuffer:h.buffer,renderInstructions:i.buffer},o);G.postMessage(v,[c.buffer,h.buffer,i.buffer]);break}case e:{const e=[],t=[],n=o.customAttributesCount,r=new Float32Array(o.renderInstructions);let i=0;for(;i<r.length;)i=L(r,i,e,t,n);const a=Uint32Array.from(t),s=Float32Array.from(e),u=Object.assign({vertexBuffer:s.buffer,indexBuffer:a.buffer,renderInstructions:r.buffer},o);G.postMessage(u,[s.buffer,a.buffer,r.buffer]);break}}};';return new Worker("undefined"==typeof Blob?"data:application/javascript;base64,"+Buffer.from(t,"binary").toString("base64"):URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}var ap=class extends qd{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[bd]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.ready=!1,this.sourceRevision_=-1,this.verticesBuffer_=new vd(ku,Uu),this.hitVerticesBuffer_=new vd(ku,Uu),this.indicesBuffer_=new vd(ju,Uu),this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.program_,this.hitDetectionEnabled_=!(!e.hitFragmentShader||!e.hitVertexShader),this.hitVertexShader_=e.hitVertexShader,this.hitFragmentShader_=e.hitFragmentShader,this.hitProgram_;const r=e.attributes?e.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:Od.FLOAT}})):[];this.attributes=[{name:"a_position",size:2,type:Od.FLOAT},{name:"a_index",size:1,type:Od.FLOAT}].concat(r),this.hitDetectionAttributes=[{name:"a_position",size:2,type:Od.FLOAT},{name:"a_index",size:1,type:Od.FLOAT},{name:"a_hitColor",size:4,type:Od.FLOAT},{name:"a_featureUid",size:1,type:Od.FLOAT}].concat(r),this.customAttributes=e.attributes?e.attributes:[],this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n,this.renderTransform_=[1,0,0,1,0,0],this.invertRenderTransform_=[1,0,0,1,0,0],this.renderInstructions_=new Float32Array(0),this.hitRenderInstructions_=new Float32Array(0),this.hitRenderTarget_,this.generateBuffersRun_=0,this.worker_=op(),this.worker_.addEventListener("message",function(t){const e=t.data;if(e.type===bf){const i=e.projectionTransform;e.hitDetection?(this.hitVerticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.hitVerticesBuffer_)):(this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_)),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Nt(this.invertRenderTransform_,this.renderTransform_),e.hitDetection?this.hitRenderInstructions_=new Float32Array(t.data.renderInstructions):(this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.generateBuffersRun===this.generateBuffersRun_&&(this.ready=!0)),this.getLayer().changed()}}.bind(this)),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[D(s,Kh,this.handleSourceFeatureAdded_,this),D(s,qh,this.handleSourceFeatureChanged_,this),D(s,$h,this.handleSourceFeatureDelete_,this),D(s,Hh,this.handleSourceFeatureClear_,this)],s.forEachFeature(function(t){this.featureCache_[V(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}.bind(this))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitProgram_=this.helper.getProgram(this.hitFragmentShader_,this.hitVertexShader_),this.hitRenderTarget_=new Xd(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[V(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[V(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[V(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState.projection,n=this.getLayer().getSource().getWrapX()&&i.canWrapX(),r=i.getExtent(),s=t.extent,o=n?Ee(r):null,a=n?Math.ceil((s[2]-r[2])/o)+1:1,l=n?Math.floor((s[0]-r[0])/o):0;let h=l;const c=this.indicesBuffer_.getSize();do{this.helper.makeProjectionTransform(t,this.currentTransform_),At(this.currentTransform_,h*o,0),bt(this.currentTransform_,this.invertRenderTransform_),this.helper.applyUniforms(t),this.helper.drawElements(0,c)}while(++h<a);this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const u=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderHitDetection(t,l,a,o),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t),u}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Do]&&!t.viewHints[Go],s=!re(this.previousExtent_,t.extent),o=this.sourceRevision_<i.getRevision();if(o&&(this.sourceRevision_=i.getRevision()),r&&(s||o)){const r=n.projection,s=n.resolution,o=e instanceof Ef?e.getRenderBuffer():0,a=Zt(t.extent,o*s);i.loadFeatures(a,s,r),this.rebuildBuffers_(t),this.previousExtent_=t.extent.slice()}return this.helper.useProgram(this.program_,t),this.helper.prepareDraw(t),this.helper.bindBuffer(this.verticesBuffer_),this.helper.bindBuffer(this.indicesBuffer_),this.helper.enableAttributes(this.attributes),!0}rebuildBuffers_(t){const e=[1,0,0,1,0,0];this.helper.makeProjectionTransform(t,e);const i=(2+this.customAttributes.length)*this.featureCount_;if(this.renderInstructions_&&this.renderInstructions_.length===i||(this.renderInstructions_=new Float32Array(i)),this.hitDetectionEnabled_){const t=(7+this.customAttributes.length)*this.featureCount_;this.hitRenderInstructions_&&this.hitRenderInstructions_.length===t||(this.hitRenderInstructions_=new Float32Array(t))}let n,r;const s=[],o=[];let a,l=0,h=0;for(const t in this.featureCache_){if(n=this.featureCache_[t],r=n.geometry,!r||"Point"!==r.getType())continue;let i;s[0]=r.getFlatCoordinates()[0],s[1]=r.getFlatCoordinates()[1],It(e,s),a=rp(h+6,o),this.renderInstructions_[l++]=s[0],this.renderInstructions_[l++]=s[1],this.hitDetectionEnabled_&&(this.hitRenderInstructions_[h++]=s[0],this.hitRenderInstructions_[h++]=s[1],this.hitRenderInstructions_[h++]=a[0],this.hitRenderInstructions_[h++]=a[1],this.hitRenderInstructions_[h++]=a[2],this.hitRenderInstructions_[h++]=a[3],this.hitRenderInstructions_[h++]=Number(t));for(let t=0;t<this.customAttributes.length;t++)i=this.customAttributes[t].callback(n.feature,n.properties),this.renderInstructions_[l++]=i,this.hitDetectionEnabled_&&(this.hitRenderInstructions_[h++]=i)}const c={id:0,type:bf,renderInstructions:this.renderInstructions_.buffer,customAttributesCount:this.customAttributes.length};if(c.projectionTransform=e,c.generateBuffersRun=++this.generateBuffersRun_,this.ready=!1,this.worker_.postMessage(c,[this.renderInstructions_.buffer]),this.renderInstructions_=null,this.hitDetectionEnabled_){const t={id:0,type:bf,renderInstructions:this.hitRenderInstructions_.buffer,customAttributesCount:5+this.customAttributes.length};t.projectionTransform=e,t.hitDetection=!0,this.worker_.postMessage(t,[this.hitRenderInstructions_.buffer]),this.hitRenderInstructions_=null}}forEachFeatureAtCoordinate(t,e,i,n,r){if(ht(this.hitDetectionEnabled_,66),!this.hitRenderInstructions_)return;const s=It(e.coordinateToPixelTransform,t.slice()),o=this.hitRenderTarget_.readPixel(s[0]/2,s[1]/2),a=sp([o[0]/255,o[1]/255,o[2]/255,o[3]/255]),l=this.hitRenderInstructions_[a],h=Math.floor(l).toString(),c=this.getLayer().getSource().getFeatureByUid(h);return c?n(c,this.getLayer(),null):void 0}renderHitDetection(t,e,i,n){if(!this.hitVerticesBuffer_.getSize())return;let r=e;this.hitRenderTarget_.setSize([Math.floor(t.size[0]/2),Math.floor(t.size[1]/2)]),this.helper.useProgram(this.hitProgram_,t),this.helper.prepareDrawToRenderTarget(t,this.hitRenderTarget_,!0),this.helper.bindBuffer(this.hitVerticesBuffer_),this.helper.bindBuffer(this.indicesBuffer_),this.helper.enableAttributes(this.hitDetectionAttributes);do{this.helper.makeProjectionTransform(t,this.currentTransform_),At(this.currentTransform_,r*n,0),bt(this.currentTransform_,this.invertRenderTransform_),this.helper.applyUniforms(t);const e=this.indicesBuffer_.getSize();this.helper.drawElements(0,e)}while(++r<i)}disposeInternal(){this.worker_.terminate(),this.layer_=null,this.sourceListenKeys_.forEach((function(t){k(t)})),this.sourceListenKeys_=null,super.disposeInternal()}};let lp=0;var hp=class{constructor(t,e,i,n,r){this.helper_=t,this.worker_=e,this.program_=this.helper_.getProgram(n,i),this.attributes=[],this.customAttributes=r}rebuild(t,e,i,n){t.renderInstructionsTransform=this.helper_.makeProjectionTransform(e,[1,0,0,1,0,0]),this.generateRenderInstructions(t),this.generateBuffers_(t,i,n)}render(t,e,i,n){this.helper_.makeProjectionTransform(i,e),At(e,n,0),bt(e,t.invertVerticesBufferTransform),this.helper_.useProgram(this.program_,i),this.helper_.bindBuffer(t.verticesBuffer),this.helper_.bindBuffer(t.indicesBuffer),this.helper_.enableAttributes(this.attributes);const r=t.indicesBuffer.getSize();this.helper_.drawElements(0,r)}generateRenderInstructions(t){z()}generateBuffers_(t,e,i){const n=lp++;let r;switch(e){case"Polygon":r=Cf;break;case"Point":r=bf;break;case"LineString":r=Rf}const s={id:n,type:r,renderInstructions:t.renderInstructions.buffer,renderInstructionsTransform:t.renderInstructionsTransform,customAttributesCount:this.customAttributes.length};this.worker_.postMessage(s,[t.renderInstructions.buffer]),t.renderInstructions=null;const o=function(e){const r=e.data;r.id===n&&(this.worker_.removeEventListener("message",o),t.verticesBufferTransform=r.renderInstructionsTransform,Nt(t.invertVerticesBufferTransform,t.verticesBufferTransform),t.verticesBuffer.fromArrayBuffer(r.vertexBuffer),this.helper_.flushBufferData(t.verticesBuffer),t.indicesBuffer.fromArrayBuffer(r.indexBuffer),this.helper_.flushBufferData(t.indicesBuffer),t.renderInstructions=new Float32Array(r.renderInstructions),i())}.bind(this);this.worker_.addEventListener("message",o)}};const cp={SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",PARAMETERS:"a_parameters"};var up=class extends hp{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:cp.SEGMENT_START,size:2,type:Od.FLOAT},{name:cp.SEGMENT_END,size:2,type:Od.FLOAT},{name:cp.PARAMETERS,size:1,type:Od.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:Od.FLOAT}})))}generateRenderInstructions(t){const e=2*t.verticesCount+(1+this.customAttributes.length)*t.geometriesCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n.length=i.flatCoordss[e].length,fn(i.flatCoordss[e],0,n.length,2,t.renderInstructionsTransform,n);for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r;t.renderInstructions[s++]=n.length/2;for(let e=0,i=n.length;e<i;e+=2)t.renderInstructions[s++]=n[e],t.renderInstructions[s++]=n[e+1]}}}};var dp=class{constructor(){this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new vd(ku,Uu),indicesBuffer:new vd(ju,Uu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]},this.pointBatch={entries:{},geometriesCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new vd(ku,Uu),indicesBuffer:new vd(ju,Uu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0,renderInstructions:new Float32Array(0),verticesBuffer:new vd(ku,Uu),indicesBuffer:new vd(ju,Uu),renderInstructionsTransform:[1,0,0,1,0,0],verticesBufferTransform:[1,0,0,1,0,0],invertVerticesBufferTransform:[1,0,0,1,0,0]}}addFeatures(t){for(let e=0;e<t.length;e++)this.addFeature(t[e])}addFeature(t){const e=t.getGeometry();e&&this.addGeometry_(e,t)}addFeatureEntryInPointBatch_(t){const e=V(t);return e in this.pointBatch.entries||(this.pointBatch.entries[e]={feature:t,flatCoordss:[]}),this.pointBatch.entries[e]}addFeatureEntryInLineStringBatch_(t){const e=V(t);return e in this.lineStringBatch.entries||(this.lineStringBatch.entries[e]={feature:t,flatCoordss:[],verticesCount:0}),this.lineStringBatch.entries[e]}addFeatureEntryInPolygonBatch_(t){const e=V(t);return e in this.polygonBatch.entries||(this.polygonBatch.entries[e]={feature:t,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]}),this.polygonBatch.entries[e]}clearFeatureEntryInPointBatch_(t){const e=this.pointBatch.entries[V(t)];e&&(this.pointBatch.geometriesCount-=e.flatCoordss.length,delete this.pointBatch.entries[V(t)])}clearFeatureEntryInLineStringBatch_(t){const e=this.lineStringBatch.entries[V(t)];e&&(this.lineStringBatch.verticesCount-=e.verticesCount,this.lineStringBatch.geometriesCount-=e.flatCoordss.length,delete this.lineStringBatch.entries[V(t)])}clearFeatureEntryInPolygonBatch_(t){const e=this.polygonBatch.entries[V(t)];e&&(this.polygonBatch.verticesCount-=e.verticesCount,this.polygonBatch.ringsCount-=e.ringsCount,this.polygonBatch.geometriesCount-=e.flatCoordss.length,delete this.polygonBatch.entries[V(t)])}addGeometry_(t,e){let i,n,r;switch(t.getType()){case"GeometryCollection":t.getGeometries().map((t=>this.addGeometry_(t,e)));break;case"MultiPolygon":t.getPolygons().map((t=>this.addGeometry_(t,e)));break;case"MultiLineString":t.getLineStrings().map((t=>this.addGeometry_(t,e)));break;case"MultiPoint":t.getPoints().map((t=>this.addGeometry_(t,e)));break;case"Polygon":const s=t;r=this.addFeatureEntryInPolygonBatch_(e),i=s.getFlatCoordinates(),n=i.length/2;const o=s.getLinearRingCount(),a=s.getEnds().map(((t,e,i)=>e>0?(t-i[e-1])/2:t/2));this.polygonBatch.verticesCount+=n,this.polygonBatch.ringsCount+=o,this.polygonBatch.geometriesCount++,r.flatCoordss.push(i),r.ringsVerticesCounts.push(a),r.verticesCount+=n,r.ringsCount+=o,s.getLinearRings().map((t=>this.addGeometry_(t,e)));break;case"Point":const l=t;r=this.addFeatureEntryInPointBatch_(e),i=l.getFlatCoordinates(),this.pointBatch.geometriesCount++,r.flatCoordss.push(i);break;case"LineString":case"LinearRing":const h=t;r=this.addFeatureEntryInLineStringBatch_(e),i=h.getFlatCoordinates(),n=i.length/2,this.lineStringBatch.verticesCount+=n,this.lineStringBatch.geometriesCount++,r.flatCoordss.push(i),r.verticesCount+=n}}changeFeature(t){this.clearFeatureEntryInPointBatch_(t),this.clearFeatureEntryInPolygonBatch_(t),this.clearFeatureEntryInLineStringBatch_(t);const e=t.getGeometry();e&&this.addGeometry_(e,t)}removeFeature(t){this.clearFeatureEntryInPointBatch_(t),this.clearFeatureEntryInPolygonBatch_(t),this.clearFeatureEntryInLineStringBatch_(t)}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0}};const gp={POSITION:"a_position",INDEX:"a_index"};var fp=class extends hp{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:gp.POSITION,size:2,type:Od.FLOAT},{name:gp.INDEX,size:1,type:Od.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:Od.FLOAT}})))}generateRenderInstructions(t){const e=(2+this.customAttributes.length)*t.geometriesCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n[0]=i.flatCoordss[e][0],n[1]=i.flatCoordss[e][1],It(t.renderInstructionsTransform,n),t.renderInstructions[s++]=n[0],t.renderInstructions[s++]=n[1];for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r}}}};const pp={POSITION:"a_position"};var mp=class extends hp{constructor(t,e,i,n,r){super(t,e,i,n,r),this.attributes=[{name:pp.POSITION,size:2,type:Od.FLOAT}].concat(r.map((function(t){return{name:"a_"+t.name,size:1,type:Od.FLOAT}})))}generateRenderInstructions(t){const e=2*t.verticesCount+(1+this.customAttributes.length)*t.geometriesCount+t.ringsCount;let i;t.renderInstructions&&t.renderInstructions.length===e||(t.renderInstructions=new Float32Array(e));const n=[];let r,s=0;for(const e in t.entries){i=t.entries[e];for(let e=0,o=i.flatCoordss.length;e<o;e++){n.length=i.flatCoordss[e].length,fn(i.flatCoordss[e],0,n.length,2,t.renderInstructionsTransform,n);for(let e=0,n=this.customAttributes.length;e<n;e++)r=this.customAttributes[e].callback(i.feature),t.renderInstructions[s++]=r;t.renderInstructions[s++]=i.ringsVerticesCounts[e].length;for(let n=0,r=i.ringsVerticesCounts[e].length;n<r;n++)t.renderInstructions[s++]=i.ringsVerticesCounts[e][n];for(let e=0,i=n.length;e<i;e+=2)t.renderInstructions[s++]=n[e],t.renderInstructions[s++]=n[e+1]}}}};function _p(t){const e=rs(t);return 256*e[0]*256+256*e[1]+e[2]}const yp="vec3(\n fract(floor(a_color / 256.0 / 256.0) / 256.0),\n fract(floor(a_color / 256.0) / 256.0),\n fract(a_color / 256.0)\n);",xp=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n attribute vec2 a_position;\n attribute float a_color;\n attribute float a_opacity;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n v_color = ${yp}\n v_opacity = a_opacity;\n }`,vp="\n precision mediump float;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n }",Sp=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform vec2 u_sizePx;\n attribute vec2 a_segmentStart;\n attribute vec2 a_segmentEnd;\n attribute float a_parameters;\n attribute float a_color;\n attribute float a_opacity;\n attribute float a_width;\n varying vec2 v_segmentStart;\n varying vec2 v_segmentEnd;\n varying float v_angleStart;\n varying float v_angleEnd;\n varying vec3 v_color;\n varying float v_opacity;\n varying float v_width;\n\n vec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_sizePx;\n }\n\n vec4 pxToScreen(vec2 pxPos) {\n vec2 screenPos = pxPos * 4.0 / u_sizePx;\n return vec4(screenPos.xy, 0.0, 0.0);\n }\n\n vec2 getOffsetDirection(vec2 normalPx, vec2 tangentPx, float joinAngle) {\n if (cos(joinAngle) > 0.93) return normalPx - tangentPx;\n float halfAngle = joinAngle / 2.0;\n vec2 angleBisectorNormal = vec2(\n sin(halfAngle) * normalPx.x + cos(halfAngle) * normalPx.y,\n -cos(halfAngle) * normalPx.x + sin(halfAngle) * normalPx.y\n );\n float length = 1.0 / sin(halfAngle);\n return angleBisectorNormal * length;\n }\n\n void main(void) {\n float anglePrecision = 1500.0;\n float paramShift = 10000.0;\n v_angleStart = fract(a_parameters / paramShift) * paramShift / anglePrecision;\n v_angleEnd = fract(floor(a_parameters / paramShift + 0.5) / paramShift) * paramShift / anglePrecision;\n float vertexNumber = floor(a_parameters / paramShift / paramShift + 0.0001);\n vec2 tangentPx = worldToPx(a_segmentEnd) - worldToPx(a_segmentStart);\n tangentPx = normalize(tangentPx);\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\n vec2 offsetPx = getOffsetDirection(normalPx * normalDir, tangentDir * tangentPx, angle) * a_width * 0.5;\n vec2 position = vertexNumber < 1.5 ? a_segmentStart : a_segmentEnd;\n gl_Position = u_projectionMatrix * vec4(position, 0.0, 1.0) + pxToScreen(offsetPx);\n v_segmentStart = worldToPx(a_segmentStart);\n v_segmentEnd = worldToPx(a_segmentEnd);\n v_color = ${yp}\n v_opacity = a_opacity;\n v_width = a_width;\n }`,wp="\n precision mediump float;\n uniform float u_pixelRatio;\n varying vec2 v_segmentStart;\n varying vec2 v_segmentEnd;\n varying float v_angleStart;\n varying float v_angleEnd;\n varying vec3 v_color;\n varying float v_opacity;\n varying float v_width;\n\n float segmentDistanceField(vec2 point, vec2 start, vec2 end, float radius) {\n vec2 startToPoint = point - start;\n vec2 startToEnd = end - start;\n float ratio = clamp(dot(startToPoint, startToEnd) / dot(startToEnd, startToEnd), 0.0, 1.0);\n float dist = length(startToPoint - ratio * startToEnd);\n return 1.0 - smoothstep(radius - 1.0, radius, dist);\n }\n\n void main(void) {\n vec2 v_currentPoint = gl_FragCoord.xy / u_pixelRatio;\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n gl_FragColor *= segmentDistanceField(v_currentPoint, v_segmentStart, v_segmentEnd, v_width);\n }",Tp=`\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_color;\n attribute float a_opacity;\n varying vec2 v_texCoord;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float size = 6.0;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -size / 2.0 : size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -size / 2.0 : size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_color = ${yp}\n v_opacity = a_opacity;\n }`,Ep="\n precision mediump float;\n varying vec3 v_color;\n varying float v_opacity;\n\n void main(void) {\n gl_FragColor = vec4(v_color, 1.0) * v_opacity;\n }";function Cp(t){return Object.keys(t).map((e=>({name:e,callback:t[e]})))}var bp=class extends qd{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[bd]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.sourceRevision_=-1,this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n;const r={color:function(){return _p("#ddd")},opacity:function(){return 1},...e.fill&&e.fill.attributes},s={color:function(){return _p("#eee")},opacity:function(){return 1},width:function(){return 1.5},...e.stroke&&e.stroke.attributes},o={color:function(){return _p("#eee")},opacity:function(){return 1},...e.point&&e.point.attributes};this.fillVertexShader_=e.fill&&e.fill.vertexShader||xp,this.fillFragmentShader_=e.fill&&e.fill.fragmentShader||vp,this.fillAttributes_=Cp(r),this.strokeVertexShader_=e.stroke&&e.stroke.vertexShader||Sp,this.strokeFragmentShader_=e.stroke&&e.stroke.fragmentShader||wp,this.strokeAttributes_=Cp(s),this.pointVertexShader_=e.point&&e.point.vertexShader||Tp,this.pointFragmentShader_=e.point&&e.point.fragmentShader||Ep,this.pointAttributes_=Cp(o),this.worker_=op(),this.batch_=new dp;const a=this.getLayer().getSource();this.batch_.addFeatures(a.getFeatures()),this.sourceListenKeys_=[D(a,Kh,this.handleSourceFeatureAdded_,this),D(a,qh,this.handleSourceFeatureChanged_,this),D(a,$h,this.handleSourceFeatureDelete_,this),D(a,Hh,this.handleSourceFeatureClear_,this)]}afterHelperCreated(){this.polygonRenderer_=new mp(this.helper,this.worker_,this.fillVertexShader_,this.fillFragmentShader_,this.fillAttributes_),this.pointRenderer_=new fp(this.helper,this.worker_,this.pointVertexShader_,this.pointFragmentShader_,this.pointAttributes_),this.lineStringRenderer_=new up(this.helper,this.worker_,this.strokeVertexShader_,this.strokeFragmentShader_,this.strokeAttributes_)}handleSourceFeatureAdded_(t){const e=t.feature;this.batch_.addFeature(e)}handleSourceFeatureChanged_(t){const e=t.feature;this.batch_.changeFeature(e)}handleSourceFeatureDelete_(t){const e=t.feature;this.batch_.removeFeature(e)}handleSourceFeatureClear_(){this.batch_.clear()}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const i=this.getLayer().getSource(),n=t.viewState.projection,r=i.getWrapX()&&n.canWrapX(),s=n.getExtent(),o=t.extent,a=r?Ee(s):null,l=r?Math.ceil((o[2]-s[2])/a)+1:1;let h=r?Math.floor((o[0]-s[0])/a):0;do{this.polygonRenderer_.render(this.batch_.polygonBatch,this.currentTransform_,t,h*a),this.lineStringRenderer_.render(this.batch_.lineStringBatch,this.currentTransform_,t,h*a),this.pointRenderer_.render(this.batch_.pointBatch,this.currentTransform_,t,h*a)}while(++h<l);this.helper.finalizeDraw(t);const c=this.helper.getCanvas(),u=t.layerStatesArray[t.layerIndex].opacity;return u!==parseFloat(c.style.opacity)&&(c.style.opacity=String(u)),this.postRender(e,t),c}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Do]&&!t.viewHints[Go],s=!re(this.previousExtent_,t.extent),o=this.sourceRevision_<i.getRevision();if(o&&(this.sourceRevision_=i.getRevision()),r&&(s||o)){const r=n.projection,s=n.resolution,o=e instanceof Ef?e.getRenderBuffer():0,a=Zt(t.extent,o*s);i.loadFeatures(a,s,r),this.ready=!1;let l=3;const h=()=>{l--,this.ready=l<=0,this.getLayer().changed()};this.polygonRenderer_.rebuild(this.batch_.polygonBatch,t,"Polygon",h),this.lineStringRenderer_.rebuild(this.batch_.lineStringBatch,t,"LineString",h),this.pointRenderer_.rebuild(this.batch_.pointBatch,t,"Point",h),this.previousExtent_=t.extent.slice()}return this.helper.makeProjectionTransform(t,this.currentTransform_),this.helper.prepareDraw(t),!0}forEachFeatureAtCoordinate(t,e,i,n,r){}disposeInternal(){this.worker_.terminate(),this.layer_=null,this.sourceListenKeys_.forEach((function(t){k(t)})),this.sourceListenKeys_=null,super.disposeInternal()}};const Rp=0,Pp=1,Ip=2,Lp=3,Fp=4,Mp=5,Ap=6,Op=7,Np=8,Dp=9,Gp=10,kp=11,jp=12,Bp=[Np],Up=[jp],zp=[Pp],Xp=[Lp];var Vp=class extends Nl{constructor(t,e,i,n){super(),this.tolerance=t,this.maxExtent=e,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=i,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.tmpCoordinate_=[],this.hitDetectionInstructions=[],this.state={}}applyPixelRatio(t){const e=this.pixelRatio;return 1==e?t:t.map((function(t){return t*e}))}appendFlatPointCoordinates(t,e){const i=this.getBufferedMaxExtent(),n=this.tmpCoordinate_,r=this.coordinates;let s=r.length;for(let o=0,a=t.length;o<a;o+=e)n[0]=t[o],n[1]=t[o+1],qt(i,n)&&(r[s++]=n[0],r[s++]=n[1]);return s}appendFlatLineCoordinates(t,e,i,n,r,s){const o=this.coordinates;let a=o.length;const l=this.getBufferedMaxExtent();s&&(e+=n);let h=t[e],c=t[e+1];const u=this.tmpCoordinate_;let d,g,f,p=!0;for(d=e+n;d<i;d+=n)u[0]=t[d],u[1]=t[d+1],f=Jt(l,u),f!==g?(p&&(o[a++]=h,o[a++]=c,p=!1),o[a++]=u[0],o[a++]=u[1]):f===Bt?(o[a++]=u[0],o[a++]=u[1],p=!1):p=!0,h=u[0],c=u[1],g=f;return(r&&p||d===e+n)&&(o[a++]=h,o[a++]=c),a}drawCustomCoordinates_(t,e,i,n,r){for(let s=0,o=i.length;s<o;++s){const o=i[s],a=this.appendFlatLineCoordinates(t,e,o,n,!1,!1);r.push(a),e=o}return e}drawCustom(t,e,i,n){this.beginGeometry(t,e);const r=t.getType(),s=t.getStride(),o=this.coordinates.length;let a,l,h,c,u;switch(r){case"MultiPolygon":a=t.getOrientedFlatCoordinates(),c=[];const e=t.getEndss();u=0;for(let t=0,i=e.length;t<i;++t){const i=[];u=this.drawCustomCoordinates_(a,u,e[t],s,i),c.push(i)}this.instructions.push([Fp,o,c,t,i,Xn]),this.hitDetectionInstructions.push([Fp,o,c,t,n||i,Xn]);break;case"Polygon":case"MultiLineString":h=[],a="Polygon"==r?t.getOrientedFlatCoordinates():t.getFlatCoordinates(),u=this.drawCustomCoordinates_(a,0,t.getEnds(),s,h),this.instructions.push([Fp,o,h,t,i,zn]),this.hitDetectionInstructions.push([Fp,o,h,t,n||i,zn]);break;case"LineString":case"Circle":a=t.getFlatCoordinates(),l=this.appendFlatLineCoordinates(a,0,a.length,s,!1,!1),this.instructions.push([Fp,o,l,t,i,Un]),this.hitDetectionInstructions.push([Fp,o,l,t,n||i,Un]);break;case"MultiPoint":a=t.getFlatCoordinates(),l=this.appendFlatPointCoordinates(a,s),l>o&&(this.instructions.push([Fp,o,l,t,i,Un]),this.hitDetectionInstructions.push([Fp,o,l,t,n||i,Un]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([Fp,o,l,t,i]),this.hitDetectionInstructions.push([Fp,o,l,t,n||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[Rp,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[Rp,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,r,s=-1;for(e=0;e<i;++e)n=t[e],r=n[0],r==Op?s=e:r==Rp&&(n[2]=e,c(this.hitDetectionInstructions,s,e),s=-1)}setFillStrokeStyle(t,e){const i=this.state;if(t){const e=t.getColor();i.fillStyle=El(e||Xs)}else i.fillStyle=void 0;if(e){const t=e.getColor();i.strokeStyle=El(t||Ks);const n=e.getLineCap();i.lineCap=void 0!==n?n:Vs;const r=e.getLineDash();i.lineDash=r?r.slice():Ws;const s=e.getLineDashOffset();i.lineDashOffset=s||0;const o=e.getLineJoin();i.lineJoin=void 0!==o?o:Zs;const a=e.getWidth();i.lineWidth=void 0!==a?a:1;const l=e.getMiterLimit();i.miterLimit=void 0!==l?l:Ys,i.lineWidth>this.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[Gp,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[kp,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,r=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||r!=t.currentLineDash&&!d(t.currentLineDash,r)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=r,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[Op,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Yt(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;Zt(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}};var Wp=class extends Vp{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([Ap,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Ap,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([Ap,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Ap,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}};var Zp=class extends Vp{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const r=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[Dp,r,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([kp,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Ws,0],zp);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(Up),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([kp,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],zp);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t<e;++t)l=this.drawFlatCoordinates_(o,l,s[t],a);this.hitDetectionInstructions.push(Up),this.endGeometry(e)}finish(){const t=this.state;return null!=t.lastStroke&&t.lastStroke!=this.coordinates.length&&this.instructions.push(Up),this.reverseHitDetectionInstructions(),this.state=null,super.finish()}applyStroke(t){null!=t.lastStroke&&t.lastStroke!=this.coordinates.length&&(this.instructions.push(Up),t.lastStroke=this.coordinates.length),t.lastStroke=0,super.applyStroke(t),this.instructions.push(zp)}};var Yp=class extends Vp{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinatess_(t,e,i,n){const r=this.state,s=void 0!==r.fillStyle,o=void 0!==r.strokeStyle,a=i.length;this.instructions.push(zp),this.hitDetectionInstructions.push(zp);for(let r=0;r<a;++r){const s=i[r],a=this.coordinates.length,l=this.appendFlatLineCoordinates(t,e,s,n,!0,!o),h=[Dp,a,l];this.instructions.push(h),this.hitDetectionInstructions.push(h),o&&(this.instructions.push(Xp),this.hitDetectionInstructions.push(Xp)),e=s}return s&&(this.instructions.push(Bp),this.hitDetectionInstructions.push(Bp)),o&&(this.instructions.push(Up),this.hitDetectionInstructions.push(Up)),e}drawCircle(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Gp,Xs]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([kp,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getFlatCoordinates(),o=t.getStride(),a=this.coordinates.length;this.appendFlatLineCoordinates(s,0,s.length,o,!1,!1);const l=[Ip,a];this.instructions.push(zp,l),this.hitDetectionInstructions.push(zp,l),void 0!==i.fillStyle&&(this.instructions.push(Bp),this.hitDetectionInstructions.push(Bp)),void 0!==i.strokeStyle&&(this.instructions.push(Up),this.hitDetectionInstructions.push(Up)),this.endGeometry(e)}drawPolygon(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Gp,Xs]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([kp,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getEnds(),o=t.getOrientedFlatCoordinates(),a=t.getStride();this.drawFlatCoordinatess_(o,0,s,a),this.endGeometry(e)}drawMultiPolygon(t,e){const i=this.state,n=i.fillStyle,r=i.strokeStyle;if(void 0===n&&void 0===r)return;this.setFillStrokeStyles_(),this.beginGeometry(t,e),void 0!==i.fillStyle&&this.hitDetectionInstructions.push([Gp,Xs]),void 0!==i.strokeStyle&&this.hitDetectionInstructions.push([kp,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset]);const s=t.getEndss(),o=t.getOrientedFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t<e;++t)l=this.drawFlatCoordinatess_(o,l,s[t],a);this.endGeometry(e)}finish(){this.reverseHitDetectionInstructions(),this.state=null;const t=this.tolerance;if(0!==t){const e=this.coordinates;for(let i=0,n=e.length;i<n;++i)e[i]=Gn(e[i],t)}return super.finish()}setFillStrokeStyles_(){const t=this.state;void 0!==t.fillStyle&&this.updateFillStyle(t,this.createFill),void 0!==t.strokeStyle&&this.updateStrokeStyle(t,this.applyStroke)}};function Kp(t,e,i,n,r){let s,o,a,l,h,c,u,d,g,f,p=i,m=i,_=0,y=0,x=i;for(o=i;o<n;o+=r){const i=e[o],n=e[o+1];void 0!==h&&(g=i-h,f=n-c,l=Math.sqrt(g*g+f*f),void 0!==u&&(y+=a,s=Math.acos((u*g+d*f)/(a*l)),s>t&&(y>_&&(_=y,p=x,m=o),y=0,x=o-r)),a=l,u=g,d=f),h=i,c=n}return y+=l,y>_?[x,o]:[p,m]}const qp={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};var Hp=class extends Vp{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,r=this.textState_;if(""===this.text_||!r||!i&&!n)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==r.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=r.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),r.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,n=e.length;t<n;t+=3)r.overflow||i.push(e[t+2]/this.resolution),l.push(e[t],e[t+1]);if(0===l.length)return;h=2}const n=this.appendFlatPointCoordinates(l,h);if(n===o)return;if(i&&(n-o)/2!=l.length/h){let t=o/2;i=i.filter(((e,i)=>{const n=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return n||--t,n}))}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&(this.updateFillStyle(this.state,this.createFill),this.hitDetectionInstructions.push(this.createFill(this.state))),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=r.padding;if(c!=$s&&(r.scale[0]<0||r.scale[1]<0)){let t=r.padding[0],e=r.padding[1],i=r.padding[2],n=r.padding[3];r.scale[0]<0&&(e=-e,n=-n),r.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([Ap,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==$s?$s:c.map((function(t){return t*u})),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const d=1/u;this.hitDetectionInstructions.push([Ap,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[d,d],NaN,void 0,this.declutterImageWithText_,c,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),this.endGeometry(e)}else{if(!Ce(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;t<n;++t)i.push(e[t][0])}this.beginGeometry(t,e);const n=r.textAlign;let c,u=0;for(let t=0,e=i.length;t<e;++t){if(null==n){const e=Kp(r.maxAngle,l,u,i[t],h);u=e[0],c=e[1]}else c=i[t];for(let t=u;t<c;t+=h)s.push(l[t],l[t+1]);const e=s.length;u=i[t],this.drawChars_(o,e),o=e}this.endGeometry(e)}}saveTextStates_(){const t=this.textStrokeState_,e=this.textState_,i=this.textFillState_,n=this.strokeKey_;t&&(n in this.strokeStates||(this.strokeStates[n]={strokeStyle:t.strokeStyle,lineCap:t.lineCap,lineDashOffset:t.lineDashOffset,lineWidth:t.lineWidth,lineJoin:t.lineJoin,miterLimit:t.miterLimit,lineDash:t.lineDash}));const r=this.textKey_;r in this.textStates||(this.textStates[r]={font:e.font,textAlign:e.textAlign||qs,justify:e.justify,textBaseline:e.textBaseline||Hs,scale:e.scale});const s=this.fillKey_;i&&(s in this.fillStates||(this.fillStates[s]={fillStyle:i.fillStyle}))}drawChars_(t,e){const i=this.textStrokeState_,n=this.textState_,r=this.strokeKey_,s=this.textKey_,o=this.fillKey_;this.saveTextStates_();const a=this.pixelRatio,l=qp[n.textBaseline],h=this.textOffsetY_*a,c=this.text_,u=i?i.lineWidth*Math.abs(n.scale[0])/2:0;this.instructions.push([Mp,t,e,l,n.overflow,o,n.maxAngle,a,h,r,u*a,c,s,1]),this.hitDetectionInstructions.push([Mp,t,e,l,n.overflow,o,n.maxAngle,1,h,r,u,c,s,1/a])}setTextStyle(t,e){let i,n,r;if(t){const e=t.getFill();e?(n=this.textFillState_,n||(n={},this.textFillState_=n),n.fillStyle=El(e.getColor()||Xs)):(n=null,this.textFillState_=n);const s=t.getStroke();if(s){r=this.textStrokeState_,r||(r={},this.textStrokeState_=r);const t=s.getLineDash(),e=s.getLineDashOffset(),i=s.getWidth(),n=s.getMiterLimit();r.lineCap=s.getLineCap()||Vs,r.lineDash=t?t.slice():Ws,r.lineDashOffset=void 0===e?0:e,r.lineJoin=s.getLineJoin()||Zs,r.lineWidth=void 0===i?1:i,r.miterLimit=void 0===n?Ys:n,r.strokeStyle=El(s.getColor()||Ks)}else r=null,this.textStrokeState_=r;i=this.textState_;const o=t.getFont()||zs;io(o);const a=t.getScaleArray();i.overflow=t.getOverflow(),i.font=o,i.maxAngle=t.getMaxAngle(),i.placement=t.getPlacement(),i.textAlign=t.getTextAlign(),i.justify=t.getJustify(),i.textBaseline=t.getTextBaseline()||Hs,i.backgroundFill=t.getBackgroundFill(),i.backgroundStroke=t.getBackgroundStroke(),i.padding=t.getPadding()||$s,i.scale=void 0===a?[1,1]:a;const l=t.getOffsetX(),h=t.getOffsetY(),c=t.getRotateWithView(),u=t.getRotation();this.text_=t.getText()||"",this.textOffsetX_=void 0===l?0:l,this.textOffsetY_=void 0===h?0:h,this.textRotateWithView_=void 0!==c&&c,this.textRotation_=void 0===u?0:u,this.strokeKey_=r?("string"==typeof r.strokeStyle?r.strokeStyle:V(r.strokeStyle))+r.lineCap+r.lineDashOffset+"|"+r.lineWidth+r.lineJoin+r.miterLimit+"["+r.lineDash.join()+"]":"",this.textKey_=i.font+i.scale+(i.textAlign||"?")+(i.justify||"?")+(i.textBaseline||"?"),this.fillKey_=n?"string"==typeof n.fillStyle?n.fillStyle:"|"+V(n.fillStyle):""}else this.text_="";this.declutterImageWithText_=e}};const $p={Circle:Yp,Default:Vp,Image:Wp,LineString:Zp,Polygon:Yp,Text:Hp};var Jp=class{constructor(t,e,i,n){this.tolerance_=t,this.maxExtent_=e,this.pixelRatio_=n,this.resolution_=i,this.buildersByZIndex_={}}finish(){const t={};for(const e in this.buildersByZIndex_){t[e]=t[e]||{};const i=this.buildersByZIndex_[e];for(const n in i){const r=i[n].finish();t[e][n]=r}}return t}getBuilder(t,e){const i=void 0!==t?t.toString():"0";let n=this.buildersByZIndex_[i];void 0===n&&(n={},this.buildersByZIndex_[i]=n);let r=n[e];if(void 0===r){r=new(0,$p[e])(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),n[e]=r}return r}};function Qp(t,e,i,n,r,s,o,a,l,h,c,u){let d=t[e],g=t[e+1],f=0,p=0,m=0,_=0;function y(){f=d,p=g,d=t[e+=n],g=t[e+1],_+=m,m=Math.sqrt((d-f)*(d-f)+(g-p)*(g-p))}do{y()}while(e<i-n&&_+m<s);let x=0===m?0:(s-_)/m;const v=di(f,d,x),S=di(p,g,x),w=e-n,T=_,E=s+a*l(h,r,c);for(;e<i-n&&_+m<E;)y();x=0===m?0:(E-_)/m;const C=di(f,d,x),b=di(p,g,x);let R;if(u){const t=[v,S,C,b];pn(t,0,4,2,u,t,t),R=t[0]>t[2]}else R=v>C;const P=Math.PI,I=[],L=w+n===e;let F;if(m=0,_=T,d=t[e=w],g=t[e+1],L){y(),F=Math.atan2(g-p,d-f),R&&(F+=F>0?-P:P);const t=(C+v)/2,e=(b+S)/2;return I[0]=[t,e,(E-s)/2,F,r],I}for(let t=0,u=(r=r.replace(/\n/g," ")).length;t<u;){y();let v=Math.atan2(g-p,d-f);if(R&&(v+=v>0?-P:P),void 0!==F){let t=v-F;if(t+=t>P?-2*P:t<-P?2*P:0,Math.abs(t)>o)return null}F=v;const S=t;let w=0;for(;t<u;++t){const o=a*l(h,r[R?u-t-1:t],c);if(e+n<i&&_+m<s+w+o/2)break;w+=o}if(t===S)continue;const T=R?r.substring(u-S,u-t):r.substring(S,t);x=0===m?0:(s+w/2-_)/m;const E=di(f,d,x),C=di(p,g,x);I.push([E,C,w/2,v,T]),s+=w}return I}function tm(t,e,i,n){let r=t[e],s=t[e+1],o=0;for(let a=e+n;a<i;a+=n){const e=t[a],i=t[a+1];o+=Math.sqrt((e-r)*(e-r)+(i-s)*(i-s)),r=e,s=i}return o}const em=[1/0,1/0,-1/0,-1/0],im=[],nm=[],rm=[],sm=[];function om(t){return t[3].declutterBox}const am=new RegExp("["+String.fromCharCode(1425)+"-"+String.fromCharCode(2303)+String.fromCharCode(64285)+"-"+String.fromCharCode(65023)+String.fromCharCode(65136)+"-"+String.fromCharCode(65276)+String.fromCharCode(67584)+"-"+String.fromCharCode(69631)+String.fromCharCode(124928)+"-"+String.fromCharCode(126975)+"]");function lm(t,e){return"start"!==e&&"end"!==e||am.test(t)||(e="start"===e?"left":"right"),qp[e]}function hm(t,e,i){return i>0&&t.push("\n",""),t.push(e,""),t}var cm=class{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const r=t+e+i+n;if(this.labels_[r])return this.labels_[r];const s=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?qp[a.justify]:lm(Array.isArray(t)?t[0]:t,a.textAlign||qs),d=n&&s.lineWidth?s.lineWidth:0,g=c?t:t.split("\n").reduce(hm,[]),{width:f,height:p,widths:m,heights:_,lineWidths:y}=ao(a,g),x=f+d,v=[],S=(x+2)*h[0],w=(p+d)*h[1],T={width:S<0?Math.floor(S):Math.ceil(S),height:w<0?Math.floor(w):Math.ceil(w),contextInstructions:v};1==h[0]&&1==h[1]||v.push("scale",h),n&&(v.push("strokeStyle",s.strokeStyle),v.push("lineWidth",d),v.push("lineCap",s.lineCap),v.push("lineJoin",s.lineJoin),v.push("miterLimit",s.miterLimit),v.push("setLineDash",[s.lineDash]),v.push("lineDashOffset",s.lineDashOffset)),i&&v.push("fillStyle",o.fillStyle),v.push("textBaseline","middle"),v.push("textAlign","center");const E=.5-u;let C=u*x+E*d;const b=[],R=[];let P,I=0,L=0,F=0,M=0;for(let t=0,e=g.length;t<e;t+=2){const e=g[t];if("\n"===e){L+=I,I=0,C=u*x+E*d,++M;continue}const r=g[t+1]||a.font;r!==P&&(n&&b.push("font",r),i&&R.push("font",r),P=r),I=Math.max(I,_[F]);const s=[e,C+E*m[F]+u*(m[F]-y[M]),.5*(d+I)+L];C+=m[F],n&&b.push("strokeText",s),i&&R.push("fillText",s),++F}return Array.prototype.push.apply(v,b),Array.prototype.push.apply(v,R),this.labels_[r]=T,T}replayTextBackground_(t,e,i,n,r,s,o){t.beginPath(),t.moveTo.apply(t,e),t.lineTo.apply(t,i),t.lineTo.apply(t,n),t.lineTo.apply(t,r),t.lineTo.apply(t,e),s&&(this.alignFill_=s[2],this.fill_(t)),o&&(this.setStrokeStyle_(t,o),t.stroke())}calculateImageOrLabelDimensions_(t,e,i,n,r,s,o,a,l,h,c,u,d,g,f,p){let m=i-(o*=u[0]),_=n-(a*=u[1]);const y=r+l>t?t-l:r,x=s+h>e?e-h:s,v=g[3]+y*u[0]+g[1],S=g[0]+x*u[1]+g[2],w=m-g[3],T=_-g[0];let E;return(f||0!==c)&&(im[0]=w,sm[0]=w,im[1]=T,nm[1]=T,nm[0]=w+v,rm[0]=nm[0],rm[1]=T+S,sm[1]=rm[1]),0!==c?(E=Ot([1,0,0,1,0,0],i,n,1,1,c,-i,-n),It(E,im),It(E,nm),It(E,rm),It(E,sm),te(Math.min(im[0],nm[0],rm[0],sm[0]),Math.min(im[1],nm[1],rm[1],sm[1]),Math.max(im[0],nm[0],rm[0],sm[0]),Math.max(im[1],nm[1],rm[1],sm[1]),em)):te(Math.min(w,w+v),Math.min(T,T+S),Math.max(w,w+v),Math.max(T,T+S),em),d&&(m=Math.round(m),_=Math.round(_)),{drawImageX:m,drawImageY:_,drawImageW:y,drawImageH:x,originX:l,originY:h,declutterBox:{minX:em[0],minY:em[1],maxX:em[2],maxY:em[3],value:p},canvasTransform:E,scale:u}}replayImageOrLabel_(t,e,i,n,r,s,o){const a=!(!s&&!o),l=n.declutterBox,h=t.canvas,c=o?o[2]*n.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,im,nm,rm,sm,s,o),lo(t,n.canvasTransform,r,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=It(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const r=this.textStates[e],s=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,l=lm(Array.isArray(t)?t[0]:t,r.textAlign||qs),h=qp[r.textBaseline||Hs],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*r.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,n,r,s,o,a){let l;this.pixelCoordinates_&&d(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=fn(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),Pt(this.renderedTransform_,i));let h=0;const c=n.length;let u,g,f,p,m,_,y,x,v,S,w,T,E=0,C=0,b=0,R=null,P=null;const I=this.coordinateCache_,L=this.viewRotation_,F=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:L},A=this.instructions!=n||this.overlaps?0:200;let O,N,D,G;for(;h<c;){const i=n[h];switch(i[0]){case Rp:O=i[1],G=i[3],O.getGeometry()?void 0===o||Ce(o,G.getExtent())?++h:h=i[2]+1:h=i[2];break;case Pp:C>A&&(this.fill_(t),C=0),b>A&&(t.stroke(),b=0),C||b||(t.beginPath(),p=NaN,m=NaN),++h;break;case Ip:E=i[1];const n=l[E],c=l[E+1],d=l[E+2]-n,k=l[E+3]-c,j=Math.sqrt(d*d+k*k);t.moveTo(n+j,c),t.arc(n,c,j,0,2*Math.PI,!0),++h;break;case Lp:t.closePath(),++h;break;case Fp:E=i[1],u=i[2];const B=i[3],U=i[4],z=6==i.length?i[5]:void 0;M.geometry=B,M.feature=O,h in I||(I[h]=[]);const X=I[h];z?z(l,E,u,2,X):(X[0]=l[E],X[1]=l[E+1],X.length=2),U(X,M),++h;break;case Ap:E=i[1],u=i[2],x=i[3],g=i[4],f=i[5];let V=i[6];const W=i[7],Z=i[8],Y=i[9],K=i[10];let q=i[11];const H=i[12];let $=i[13];const J=i[14],Q=i[15];if(!x&&i.length>=20){v=i[19],S=i[20],w=i[21],T=i[22];const t=this.drawLabelWithPointPlacement_(v,S,w,T);x=t.label,i[3]=x;const e=i[23];g=(t.anchorX-e)*this.pixelRatio,i[4]=g;const n=i[24];f=(t.anchorY-n)*this.pixelRatio,i[5]=f,V=x.height,i[6]=V,$=x.width,i[13]=$}let tt,et,it,nt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],nt=i[18]):(et=$s,it=!1,nt=!1),K&&F?q+=L:K||F||(q-=L);let rt=0;for(;E<u;E+=2){if(tt&&tt[rt++]<$/this.pixelRatio)continue;const i=this.calculateImageOrLabelDimensions_(x.width,x.height,l[E],l[E+1],$,V,g,f,Z,Y,q,H,r,et,it||nt,O),n=[t,e,x,i,W,it?R:null,nt?P:null];if(a){if("none"===J)continue;if("obstacle"===J){a.insert(i.declutterBox);continue}{let t,e;if(Q){const i=u-E;if(!Q[i]){Q[i]=n;continue}if(t=Q[i],delete Q[i],e=om(t),a.collides(e))continue}if(a.collides(i.declutterBox))continue;t&&(a.insert(e),this.replayImageOrLabel_.apply(this,t)),a.insert(i.declutterBox)}}this.replayImageOrLabel_.apply(this,n)}++h;break;case Mp:const st=i[1],ot=i[2],at=i[3],lt=i[4];T=i[5];const ht=i[6],ct=i[7],ut=i[8];w=i[9];const dt=i[10];v=i[11],S=i[12];const gt=[i[13],i[13]],ft=this.textStates[S],pt=ft.font,mt=[ft.scale[0]*ct,ft.scale[1]*ct];let _t;pt in this.widths_?_t=this.widths_[pt]:(_t={},this.widths_[pt]=_t);const yt=tm(l,st,ot,2),xt=Math.abs(mt[0])*oo(pt,v,_t);if(lt||xt<=yt){const i=this.textStates[S].textAlign,n=Qp(l,st,ot,2,v,(yt-xt)*qp[i],ht,Math.abs(mt[0]),oo,pt,_t,F?0:this.viewRotation_);t:if(n){const i=[];let r,s,o,l,h;if(w)for(r=0,s=n.length;r<s;++r){h=n[r],o=h[4],l=this.createLabel(o,S,"",w),g=h[2]+(mt[0]<0?-dt:dt),f=at*l.height+2*(.5-at)*dt*mt[1]/mt[0]-ut;const s=this.calculateImageOrLabelDimensions_(l.width,l.height,h[0],h[1],l.width,l.height,g,f,0,0,h[3],gt,!1,$s,!1,O);if(a&&a.collides(s.declutterBox))break t;i.push([t,e,l,s,1,null,null])}if(T)for(r=0,s=n.length;r<s;++r){h=n[r],o=h[4],l=this.createLabel(o,S,T,""),g=h[2],f=at*l.height-ut;const s=this.calculateImageOrLabelDimensions_(l.width,l.height,h[0],h[1],l.width,l.height,g,f,0,0,h[3],gt,!1,$s,!1,O);if(a&&a.collides(s.declutterBox))break t;i.push([t,e,l,s,1,null,null])}a&&a.load(i.map(om));for(let t=0,e=i.length;t<e;++t)this.replayImageOrLabel_.apply(this,i[t])}}++h;break;case Op:if(void 0!==s){O=i[1];const t=s(O,G);if(t)return t}++h;break;case Np:A?C++:this.fill_(t),++h;break;case Dp:for(E=i[1],u=i[2],N=l[E],D=l[E+1],_=N+.5|0,y=D+.5|0,_===p&&y===m||(t.moveTo(N,D),p=_,m=y),E+=2;E<u;E+=2)N=l[E],D=l[E+1],_=N+.5|0,y=D+.5|0,E!=u-2&&_===p&&y===m||(t.lineTo(N,D),p=_,m=y);++h;break;case Gp:R=i,this.alignFill_=i[2],C&&(this.fill_(t),C=0,b&&(t.stroke(),b=0)),t.fillStyle=i[1],++h;break;case kp:P=i,b&&(t.stroke(),b=0),this.setStrokeStyle_(t,i),++h;break;case jp:A?b++:t.stroke(),++h;break;default:++h}}C&&this.fill_(t),b&&t.stroke()}execute(t,e,i,n,r,s){this.viewRotation_=n,this.execute_(t,e,i,this.instructions,r,void 0,void 0,s)}executeHitDetection(t,e,i,n,r){return this.viewRotation_=i,this.execute_(t,1,e,this.hitDetectionInstructions,!0,n,r)}};const um=["Polygon","Circle","LineString","Image","Text","Default"];const dm={};function gm(t){if(void 0!==dm[t])return dm[t];const e=2*t+1,i=t*t,n=new Array(i+1);for(let r=0;r<=t;++r)for(let s=0;s<=t;++s){const o=r*r+s*s;if(o>i)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const r=[];for(let t=0,e=n.length;t<e;++t)n[t]&&r.push(...n[t]);return dm[t]=r,r}var fm=class{constructor(t,e,i,n,r,s){this.maxExtent_=t,this.overlaps_=n,this.pixelRatio_=i,this.resolution_=e,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=[1,0,0,1,0,0],this.createExecutors_(r)}clip(t,e){const i=this.getClipCoords(e);t.beginPath(),t.moveTo(i[0],i[1]),t.lineTo(i[2],i[3]),t.lineTo(i[4],i[5]),t.lineTo(i[6],i[7]),t.clip()}createExecutors_(t){for(const e in t){let i=this.executorsByZIndex_[e];void 0===i&&(i={},this.executorsByZIndex_[e]=i);const n=t[e];for(const t in n){const e=n[t];i[t]=new cm(this.resolution_,this.pixelRatio_,this.overlaps_,e)}}}hasExecutors(t){for(const e in this.executorsByZIndex_){const i=this.executorsByZIndex_[e];for(let e=0,n=t.length;e<n;++e)if(t[e]in i)return!0}return!1}forEachFeatureAtCoordinate(t,e,i,n,r,s){const o=2*(n=Math.round(n))+1,a=Ot(this.hitDetectionTransform_,n+.5,n+.5,1/e,-1/e,-i,-t[0],-t[1]),h=!this.hitDetectionContext_;h&&(this.hitDetectionContext_=Xr(o,o));const c=this.hitDetectionContext_;let u;c.canvas.width!==o||c.canvas.height!==o?(c.canvas.width=o,c.canvas.height=o):h||c.clearRect(0,0,o,o),void 0!==this.renderBuffer_&&(u=[1/0,1/0,-1/0,-1/0],ae(u,t),Zt(u,e*(this.renderBuffer_+n),u));const d=gm(n);let g;function f(t,e){const i=c.getImageData(0,0,o,o).data;for(let a=0,l=d.length;a<l;a++)if(i[d[a]]>0){if(!s||"Image"!==g&&"Text"!==g||s.includes(t)){const i=(d[a]-3)/4,s=n-i%o,l=n-(i/o|0),h=r(t,e,s*s+l*l);if(h)return h}c.clearRect(0,0,o,o);break}}const p=Object.keys(this.executorsByZIndex_).map(Number);let m,_,y,x,v;for(p.sort(l),m=p.length-1;m>=0;--m){const t=p[m].toString();for(y=this.executorsByZIndex_[t],_=um.length-1;_>=0;--_)if(g=um[_],x=y[g],void 0!==x&&(v=x.executeHitDetection(c,a,i,f,u),v))return v}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],r=e[2],s=e[3],o=[i,n,i,s,r,s,r,n];return fn(o,0,8,2,t,o),o}isEmpty(){return v(this.executorsByZIndex_)}execute(t,e,i,n,r,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let h,c,u,d,g,f;for(a.sort(l),this.maxExtent_&&(t.save(),this.clip(t,i)),s=s||um,o&&a.reverse(),h=0,c=a.length;h<c;++h){const l=a[h].toString();for(g=this.executorsByZIndex_[l],u=0,d=s.length;u<d;++u){f=g[s[u]],void 0!==f&&f.execute(t,e,i,n,r,o)}}this.maxExtent_&&t.restore()}};const pm=.5;function mm(t,e,i,n,r,s,o){const a=Xr(t[0]*pm,t[1]*pm);a.imageSmoothingEnabled=!1;const h=a.canvas,c=new Dl(a,pm,r,null,o),u=i.length,d=Math.floor(16777215/u),g={};for(let t=1;t<=u;++t){const e=i[t-1],o=e.getStyleFunction()||n;if(!n)continue;let a=o(e,s);if(!a)continue;Array.isArray(a)||(a=[a]);const l="#"+("000000"+(t*d).toString(16)).slice(-6);for(let t=0,i=a.length;t<i;++t){const i=a[t],n=i.getGeometryFunction()(e);if(!n||!Ce(r,n.getExtent()))continue;const s=i.clone(),o=s.getFill();o&&o.setColor(l);const h=s.getStroke();h&&(h.setColor(l),h.setLineDash(null)),s.setText(void 0);const c=i.getImage();if(c&&0!==c.getOpacity()){const t=c.getImageSize();if(!t)continue;const e=Xr(t[0],t[1],void 0,{alpha:!1}),i=e.canvas;e.fillStyle=l,e.fillRect(0,0,i.width,i.height),s.setImage(new Hg({img:i,imgSize:t,anchor:c.getAnchor(),anchorXUnits:"pixels",anchorYUnits:"pixels",offset:c.getOrigin(),opacity:1,size:c.getSize(),scale:c.getScale(),rotation:c.getRotation(),rotateWithView:c.getRotateWithView()}))}const u=s.getZIndex()||0;let d=g[u];d||(d={},g[u]=d,d.Polygon=[],d.Circle=[],d.LineString=[],d.Point=[]),d[n.getType().replace("Multi","")].push(n,s)}}const f=Object.keys(g).map(Number).sort(l);for(let t=0,i=f.length;t<i;++t){const i=g[f[t]];for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t+=2){c.setStyle(n[t+1]);for(let i=0,r=e.length;i<r;++i)c.setTransform(e[i]),c.drawGeometry(n[t])}}}return a.getImageData(0,0,h.width,h.height)}function _m(t,e,i){const n=[];if(i){const r=Math.floor(Math.round(t[0])*pm),s=Math.floor(Math.round(t[1])*pm),o=4*(si(r,0,i.width-1)+si(s,0,i.height-1)*i.width),a=i.data[o],l=i.data[o+1],h=i.data[o+2]+256*(l+256*a),c=Math.floor(16777215/e.length);h&&h%c==0&&n.push(e[h/c-1])}return n}var ym=class extends tu{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=[1/0,1/0,-1/0,-1/0],this.wrappedRenderedExtent_=[1/0,1/0,-1/0,-1/0],this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedRenderOrder_=null,this.replayGroup_=null,this.replayGroupChanged=!0,this.declutterExecutorGroup=null,this.clipping=!0,this.compositionContext_=null,this.opacity_=1}renderWorlds(t,e,i){const n=e.extent,r=e.viewState,s=r.center,o=r.resolution,a=r.projection,l=r.rotation,h=a.getExtent(),c=this.getLayer().getSource(),u=e.pixelRatio,d=e.viewHints,g=!(d[Do]||d[Go]),f=this.compositionContext_,p=Math.round(e.size[0]*u),m=Math.round(e.size[1]*u),_=c.getWrapX()&&a.canWrapX(),y=_?Ee(h):null,x=_?Math.ceil((n[2]-h[2])/y)+1:1;let v=_?Math.floor((n[0]-h[0])/y):0;do{const e=this.getRenderTransform(s,o,l,u,p,m,v*y);t.execute(f,1,e,l,g,void 0,i)}while(++v<x)}setupCompositionContext_(){if(1!==this.opacity_){const t=Xr(this.context.canvas.width,this.context.canvas.height,Jc);this.compositionContext_=t}else this.compositionContext_=this.context}releaseCompositionContext_(){if(1!==this.opacity_){const t=this.context.globalAlpha;this.context.globalAlpha=this.opacity_,this.context.drawImage(this.compositionContext_.canvas,0,0),this.context.globalAlpha=t,Vr(this.compositionContext_),Jc.push(this.compositionContext_.canvas),this.compositionContext_=null}}renderDeclutter(t){this.declutterExecutorGroup&&(this.setupCompositionContext_(),this.renderWorlds(this.declutterExecutorGroup,t,t.declutterTree),this.releaseCompositionContext_())}renderFrame(t,e){const i=t.pixelRatio,n=t.layerStatesArray[t.layerIndex];Mt(this.pixelTransform,1/i,1/i),Nt(this.inversePixelTransform,this.pixelTransform);const r=kt(this.pixelTransform);this.useContainer(e,r,this.getBackground(t));const s=this.context,o=s.canvas,a=this.replayGroup_,l=this.declutterExecutorGroup;if((!a||a.isEmpty())&&(!l||l.isEmpty()))return null;const h=Math.round(t.size[0]*i),c=Math.round(t.size[1]*i);o.width!=h||o.height!=c?(o.width=h,o.height=c,o.style.transform!==r&&(o.style.transform=r)):this.containerReused||s.clearRect(0,0,h,c),this.preRender(s,t);const u=t.viewState,d=u.projection;this.opacity_=n.opacity,this.setupCompositionContext_();let g=!1,f=!0;if(n.extent&&this.clipping){const e=hn(n.extent,d);f=Ce(e,t.extent),g=f&&!Ht(e,t.extent),g&&this.clipUnrotated(this.compositionContext_,t,e)}return f&&this.renderWorlds(a,t),g&&this.compositionContext_.restore(),this.releaseCompositionContext_(),this.postRender(s,t),this.renderedRotation_!==u.rotation&&(this.renderedRotation_=u.rotation,this.hitDetectionImageData_=null),this.container}getFeatures(t){return new Promise(function(e){if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];It(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,r=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*pm,h=t[1]*pm;a.push(this.getRenderTransform(e,i,n,pm,l,h,0).slice());const c=o.getSource(),u=r.getExtent();if(c.getWrapX()&&r.canWrapX()&&!Ht(u,s)){let t=s[0];const r=Ee(u);let o,c=0;for(;t<u[0];)--c,o=r*c,a.push(this.getRenderTransform(e,i,n,pm,l,h,o).slice()),t+=r;for(c=0,t=s[2];t>u[2];)++c,o=r*c,a.push(this.getRenderTransform(e,i,n,pm,l,h,o).slice()),t-=r}this.hitDetectionImageData_=mm(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,n)}e(_m(t,this.renderedFeatures_,this.hitDetectionImageData_))}.bind(this))}forEachFeatureAtCoordinate(t,e,i,n,r){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=V(t),o=l[s];if(o){if(!0!==o&&i<o.distanceSq){if(0===i)return l[s]=!0,r.splice(r.lastIndexOf(o),1),n(t,a,e);o.geometry=e,o.distanceSq=i}}else{if(0===i)return l[s]=!0,n(t,a,e);r.push(l[s]={feature:t,layer:a,geometry:e,distanceSq:i,callback:n})}};let c;const u=[this.replayGroup_];return this.declutterExecutorGroup&&u.push(this.declutterExecutorGroup),u.some((n=>c=n.forEachFeatureAtCoordinate(t,s,o,i,h,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Do],r=t.viewHints[Go],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&n||!o&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,h=l.projection,c=l.resolution,u=t.pixelRatio,g=e.getRevision(),f=e.getRenderBuffer();let p=e.getRenderOrder();void 0===p&&(p=kl);const m=l.center.slice(),_=Zt(a,f*c),y=_.slice(),x=[_.slice()],v=h.getExtent();if(i.getWrapX()&&h.canWrapX()&&!Ht(v,t.extent)){const t=Ee(v),e=Math.max(Ee(_)/2,t);_[0]=v[0]-e,_[2]=v[2]+e,Fi(m,h);const i=Fe(x[0],h);i[0]<v[0]&&i[2]<v[2]?x.push([i[0]+t,i[1],i[2]+t,i[3]]):i[0]>v[0]&&i[2]>v[2]&&x.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==g&&this.renderedRenderOrder_==p&&Ht(this.wrappedRenderedExtent_,_))return d(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=m,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const S=new Jp(Bl(c,u),_,c,u);let w;this.getLayer().getDeclutter()&&(w=new Jp(Bl(c,u),_,c,u));const T=sn();let E;if(T){for(let t=0,e=x.length;t<e;++t){const e=ln(x[t],h);i.loadFeatures(e,cn(c,h),T)}E=Ji(T,h)}else for(let t=0,e=x.length;t<e;++t)i.loadFeatures(x[t],c,h);const C=jl(c,u);let b=!0;const R=function(t){let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,C,i,S,E,w);b=b&&!e}}.bind(this),P=ln(_,h),I=i.getFeaturesInExtent(P);p&&I.sort(p);for(let t=0,e=I.length;t<e;++t)R(I[t]);this.renderedFeatures_=I,this.ready=b;const L=S.finish(),F=new fm(_,c,u,i.getOverlaps(),L,e.getRenderBuffer());return w&&(this.declutterExecutorGroup=new fm(_,c,u,i.getOverlaps(),w.finish(),e.getRenderBuffer())),this.renderedResolution_=c,this.renderedRevision_=g,this.renderedRenderOrder_=p,this.renderedExtent_=y,this.wrappedRenderedExtent_=_,this.renderedCenter_=m,this.renderedProjection_=h,this.replayGroup_=F,this.hitDetectionImageData_=null,this.replayGroupChanged=!0,!0}renderFeature(t,e,i,n,r,s){if(!i)return!1;let o=!1;if(Array.isArray(i))for(let a=0,l=i.length;a<l;++a)o=Ul(n,t,i[a],e,this.boundHandleStyleImageChange_,r,s)||o;else o=Ul(n,t,i,e,this.boundHandleStyleImageChange_,r,s);return o}};var xm=class extends eu{constructor(t){super(t),this.vectorRenderer_=new ym(t),this.layerImageRatio_=t.getImageRatio(),this.coordinateToVectorPixelTransform_=[1,0,0,1,0,0],this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(t){if(!this.vectorRenderer_)return new Promise((t=>t([])));const e=It(this.coordinateToVectorPixelTransform_,It(this.renderedPixelToCoordinateTransform_,t.slice()));return this.vectorRenderer_.getFeatures(e)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(t){const e=t.pixelRatio,i=t.viewState,n=i.resolution,r=t.viewHints,s=this.vectorRenderer_;let o=t.extent;1!==this.layerImageRatio_&&(o=o.slice(0),Pe(o,this.layerImageRatio_));const a=Ee(o)/n,l=ve(o)/n;if(!r[Do]&&!r[Go]&&!be(o)){s.useContainer(null,null);const r=s.context,h=t.layerStatesArray[t.layerIndex];r.globalAlpha=h.opacity;const c=Object.assign({},h,{opacity:1}),u=Object.assign({},t,{declutterTree:new Ah(9),extent:o,size:[a,l],viewState:Object.assign({},t.viewState,{rotation:0}),layerStatesArray:[c],layerIndex:0});let d=!0;const g=new zr(o,n,e,r.canvas,(function(t){s.prepareFrame(u)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(u,null)&&(s.renderDeclutter(u),d=!1),t())}));g.addEventListener(w,function(){if(g.getState()!==Gr)return;this.image_=d?null:g;const t=g.getResolution(),n=g.getPixelRatio(),r=t*e/n;this.renderedResolution=r,this.coordinateToVectorPixelTransform_=Ot(this.coordinateToVectorPixelTransform_,a/2,l/2,1/r,-1/r,0,-i.center[0],-i.center[1])}.bind(this)),g.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,n,r){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,n,r):super.forEachFeatureAtCoordinate(t,e,i,n,r)}};const vm={image:["Polygon","Circle","LineString","Image","Text"],hybrid:["Polygon","LineString"],vector:[]},Sm={hybrid:["Image","Text","Default"],vector:["Polygon","Circle","LineString","Image","Text","Default"]};var wm=class extends ou{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.renderedLayerRevision_,this.renderedPixelToCoordinateTransform_=null,this.renderedRotation_,this.tmpTransform_=[1,0,0,1,0,0]}prepareTile(t,e,i){let n;const r=t.getState();return r!==tt&&r!==et||(this.updateExecutorGroup_(t,e,i),this.tileImageNeedsRender_(t)&&(n=!0)),n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState,o=s.resolution,a=s.projection,l=this.getLayer(),h=l.getSource().getTile(t,e,i,r,a),c=n.viewHints,u=!(c[Do]||c[Go]);!u&&h.wantedResolution||(h.wantedResolution=o);return this.prepareTile(h,r,a)&&(u||Date.now()-n.time<8)&&"vector"!==l.getRenderMode()&&this.renderTileImage_(h,n),super.getTile(t,e,i,n)}isDrawableTile(t){const e=this.getLayer();return super.isDrawableTile(t)&&("vector"===e.getRenderMode()?V(e)in t.executorGroups:t.hasContext(e))}getTileImage(t){return t.getImage(this.getLayer())}prepareFrame(t){const e=this.getLayer().getRevision();return this.renderedLayerRevision_!==e&&(this.renderedLayerRevision_=e,this.renderedTiles.length=0),super.prepareFrame(t)}updateExecutorGroup_(t,e,i){const n=this.getLayer(),r=n.getRevision(),s=n.getRenderOrder()||null,o=t.wantedResolution,a=t.getReplayState(n);if(!a.dirty&&a.renderedResolution===o&&a.renderedRevision==r&&a.renderedRenderOrder==s)return;const l=n.getSource(),h=n.getDeclutter(),c=l.getTileGrid(),u=l.getTileGridForProjection(i).getTileCoordExtent(t.wrappedTileCoord),d=l.getSourceTiles(e,i,t),g=V(n);delete t.hitDetectionImageData[g],t.executorGroups[g]=[],h&&(t.declutterExecutorGroups[g]=[]),a.dirty=!1;for(let i=0,r=d.length;i<r;++i){const r=d[i];if(r.getState()!=tt)continue;const f=r.tileCoord,p=c.getTileCoordExtent(f),m=Se(u,p),_=Zt(m,n.getRenderBuffer()*o,this.tmpExtent),y=re(p,m)?null:_,x=new Jp(0,_,o,e),v=h?new Jp(0,m,o,e):void 0,S=jl(o,e),w=function(t){let e;const i=t.getStyleFunction()||n.getStyleFunction();if(i&&(e=i(t,o)),e){const i=this.renderFeature(t,S,e,x,v);a.dirty=a.dirty||i}},T=r.getFeatures();s&&s!==a.renderedRenderOrder&&T.sort(s);for(let t=0,e=T.length;t<e;++t){const e=T[t];y&&!Ce(y,e.getGeometry().getExtent())||w.call(this,e)}const E=x.finish(),C="vector"!==n.getRenderMode()&&h&&1===d.length?null:m,b=new fm(C,o,e,l.getOverlaps(),E,n.getRenderBuffer());if(t.executorGroups[g].push(b),v){const i=new fm(null,o,e,l.getOverlaps(),v.finish(),n.getRenderBuffer());t.declutterExecutorGroups[g].push(i)}}a.renderedRevision=r,a.renderedRenderOrder=s,a.renderedResolution=o}forEachFeatureAtCoordinate(t,e,i,n,r){const s=e.viewState.resolution,o=e.viewState.rotation;i=null==i?0:i;const a=this.getLayer(),l=a.getSource().getTileGridForProjection(e.viewState.projection),h=Wt([t]);Zt(h,s*i,h);const c={},u=function(t,e,i){let s=t.getId();void 0===s&&(s=V(t));const o=c[s];if(o){if(!0!==o&&i<o.distanceSq){if(0===i)return c[s]=!0,r.splice(r.lastIndexOf(o),1),n(t,a,e);o.geometry=e,o.distanceSq=i}}else{if(0===i)return c[s]=!0,n(t,a,e);r.push(c[s]={feature:t,layer:a,geometry:e,distanceSq:i,callback:n})}},d=this.renderedTiles;let g;for(let n=0,r=d.length;!g&&n<r;++n){const r=d[n];if(!Ce(l.getTileCoordExtent(r.wrappedTileCoord),h))continue;const c=V(a),f=[r.executorGroups[c]],p=r.declutterExecutorGroups[c];p&&f.push(p),f.some((n=>{const r=n===p?e.declutterTree.all().map((t=>t.value)):null;for(let e=0,a=n.length;e<a;++e){const a=n[e];if(g=a.forEachFeatureAtCoordinate(t,s,o,i,u,r),g)return!0}}))}return g}getFeatures(t){return new Promise(function(e,i){const n=this.getLayer(),r=V(n),s=n.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=It(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let d;for(let t=0,e=this.renderedTiles.length;t<e;++t)if(u.toString()===this.renderedTiles[t].tileCoord.toString()){if(d=this.renderedTiles[t],d.getState()===tt){const t=h.getTileCoordExtent(d.tileCoord);s.getWrapX()&&o.canWrapX()&&!Ht(a,t)&&Fi(c,o);break}d=void 0}if(!d||d.loadingSourceTiles>0)return void e([]);const g=we(h.getTileCoordExtent(d.wrappedTileCoord)),f=[(c[0]-g[0])/l,(g[1]-c[1])/l],p=d.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let m=d.hitDetectionImageData[r];if(!m&&!this.animatingOrInteracting_){const t=Qa(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;m=mm(t,[this.getRenderTransform(h.getTileCoordCenter(d.wrappedTileCoord),l,0,pm,t[0]*pm,t[1]*pm,0)],p,n.getStyleFunction(),h.getTileCoordExtent(d.wrappedTileCoord),d.getReplayState(n).renderedResolution,e),d.hitDetectionImageData[r]=m}e(_m(f,p,m))}.bind(this))}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const n=t.viewHints,r=!(n[Do]||n[Go]),s=this.renderedTiles;for(let e=0,i=s.length;e<i;++e){const i=s[e],n=i.declutterExecutorGroups[V(this.getLayer())];if(n)for(let e=n.length-1;e>=0;--e)n[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,r,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,n=e.viewState,r=n.center,s=n.resolution,o=n.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,d=c.getTileCoordExtent(t.wrappedTileCoord),g=c.getTileCoordExtent(u,this.tmpExtent)[0]-d[0];return bt(Ft(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(r,s,o,i,l,h,g))}postRender(t,e){const i=e.viewHints,n=!(i[Do]||i[Go]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const r=this.getLayer(),s=r.getRenderMode(),o=t.globalAlpha;t.globalAlpha=r.getOpacity();const a=Sm[s],l=e.viewState,h=l.rotation,c=r.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),d=this.renderedTiles,g=[],f=[];let p=!0;for(let i=d.length-1;i>=0;--i){const s=d[i];p=p&&!s.getReplayState(r).dirty;const o=s.executorGroups[V(r)].filter((t=>t.hasExecutors(a)));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let m=!1;const _=o[0].getClipCoords(l);if(_){for(let e=0,i=g.length;e<i;++e)if(u!==c&&c<f[e]){const i=g[e];Ce([_[0],_[3],_[4],_[7]],[i[0],i[3],i[4],i[7]])&&(m||(t.save(),m=!0),t.beginPath(),t.moveTo(_[0],_[1]),t.lineTo(_[2],_[3]),t.lineTo(_[4],_[5]),t.lineTo(_[6],_[7]),t.moveTo(i[6],i[7]),t.lineTo(i[4],i[5]),t.lineTo(i[2],i[3]),t.lineTo(i[0],i[1]),t.clip())}g.push(_),f.push(c)}for(let e=0,i=o.length;e<i;++e){o[e].execute(t,1,l,h,n,a)}m&&t.restore()}t.globalAlpha=o,this.ready=p,super.postRender(t,e)}renderFeature(t,e,i,n,r){if(!i)return!1;let s=!1;if(Array.isArray(i))for(let o=0,a=i.length;o<a;++o)s=Ul(n,t,i[o],e,this.boundHandleStyleImageChange_,void 0,r)||s;else s=Ul(n,t,i,e,this.boundHandleStyleImageChange_,void 0,r);return s}tileImageNeedsRender_(t){const e=this.getLayer();if("vector"===e.getRenderMode())return!1;const i=t.getReplayState(e),n=e.getRevision(),r=t.wantedResolution;return i.renderedTileResolution!==r||i.renderedTileRevision!==n}renderTileImage_(t,e){const i=this.getLayer(),n=t.getReplayState(i),r=i.getRevision(),s=t.executorGroups[V(i)];n.renderedTileRevision=r;const o=t.wrappedTileCoord,a=o[0],l=i.getSource();let h=e.pixelRatio;const c=e.viewState.projection,u=l.getTileGridForProjection(c),d=u.getResolution(t.tileCoord[0]),g=e.pixelRatio/t.wantedResolution*d,f=u.getResolution(a),p=t.getContext(i);h=Math.round(Math.max(h,g/h));const m=l.getTilePixelSize(a,h,c);p.canvas.width=m[0],p.canvas.height=m[1];const _=h/g;if(1!==_){const t=Ct(this.tmpTransform_);Ft(t,_,_),p.setTransform.apply(p,t)}const y=u.getTileCoordExtent(o,this.tmpExtent),x=g/f,v=Ct(this.tmpTransform_);Ft(v,x,-x),At(v,-y[0],-y[3]);for(let t=0,e=s.length;t<e;++t){s[t].execute(p,_,v,0,!0,vm[i.getRenderMode()])}n.renderedTileResolution=t.wantedResolution}};class Tm extends wn{constructor(t,e,i){super(),void 0!==i&&void 0===e?this.setFlatCoordinates(i,t):(e=e||0,this.setCenterAndRadius(t,e,i))}clone(){const t=new Tm(this.flatCoordinates.slice(),void 0,this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){const r=this.flatCoordinates,s=t-r[0],o=e-r[1],a=s*s+o*o;if(a<n){if(0===a)for(let t=0;t<this.stride;++t)i[t]=r[t];else{const t=this.getRadius()/Math.sqrt(a);i[0]=r[0]+t*s,i[1]=r[1]+t*o;for(let t=2;t<this.stride;++t)i[t]=r[t]}return i.length=this.stride,a}return n}containsXY(t,e){const i=this.flatCoordinates,n=t-i[0],r=e-i[1];return n*n+r*r<=this.getRadiusSquared_()}getCenter(){return this.flatCoordinates.slice(0,this.stride)}computeExtent(t){const e=this.flatCoordinates,i=e[this.stride]-e[0];return te(e[0]-i,e[1]-i,e[0]+i,e[1]+i,t)}getRadius(){return Math.sqrt(this.getRadiusSquared_())}getRadiusSquared_(){const t=this.flatCoordinates[this.stride]-this.flatCoordinates[0],e=this.flatCoordinates[this.stride+1]-this.flatCoordinates[1];return t*t+e*e}getType(){return"Circle"}intersectsExtent(t){if(Ce(t,this.getExtent())){const e=this.getCenter();return t[0]<=e[0]&&t[2]>=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||de(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+i;for(let i=1;i<e;++i)n[e+i]=t[i];this.setFlatCoordinates(this.layout,n),this.changed()}setCenterAndRadius(t,e,i){this.setLayout(i,t,0),this.flatCoordinates||(this.flatCoordinates=[]);const n=this.flatCoordinates;let r=Ln(n,0,t,this.stride);n[r++]=n[0]+e;for(let t=1,e=this.stride;t<e;++t)n[r++]=n[t];n.length=r,this.changed()}getCoordinates(){return null}setCoordinates(t,e){}setRadius(t){this.flatCoordinates[this.stride]=this.flatCoordinates[0]+t,this.changed()}rotate(t,e){const i=this.getCenter(),n=this.getStride();this.setCenter(pn(i,0,i.length,n,t,e,i)),this.changed()}translate(t,e){const i=this.getCenter(),n=this.getStride();this.setCenter(_n(i,0,i.length,n,t,e,i)),this.changed()}}Tm.prototype.transform;var Em=Tm;class Cm extends xn{constructor(t){super(),this.geometries_=t||null,this.changeEventsKeys_=[],this.listenGeometriesChange_()}unlistenGeometriesChange_(){this.changeEventsKeys_.forEach(k),this.changeEventsKeys_.length=0}listenGeometriesChange_(){if(this.geometries_)for(let t=0,e=this.geometries_.length;t<e;++t)this.changeEventsKeys_.push(D(this.geometries_[t],w,this.changed,this))}clone(){const t=new Cm(null);return t.setGeometries(this.geometries_),t.applyProperties(this),t}closestPointXY(t,e,i,n){if(n<Kt(this.getExtent(),t,e))return n;const r=this.geometries_;for(let s=0,o=r.length;s<o;++s)n=r[s].closestPointXY(t,e,i,n);return n}containsXY(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)if(i[n].containsXY(t,e))return!0;return!1}computeExtent(t){ee(t);const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)oe(t,e[i].getExtent());return t}getGeometries(){return bm(this.geometries_)}getGeometriesArray(){return this.geometries_}getGeometriesArrayRecursive(){let t=[];const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)e[i].getType()===this.getType()?t=t.concat(e[i].getGeometriesArrayRecursive()):t.push(e[i]);return t}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=[],i=this.geometries_;let n=!1;for(let r=0,s=i.length;r<s;++r){const s=i[r],o=s.getSimplifiedGeometry(t);e.push(o),o!==s&&(n=!0)}if(n){const t=new Cm(null);return t.setGeometriesArray(e),t}return this.simplifiedGeometryMaxMinSquaredTolerance=t,this}getType(){return"GeometryCollection"}intersectsExtent(t){const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)if(e[i].intersectsExtent(t))return!0;return!1}isEmpty(){return 0===this.geometries_.length}rotate(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)i[n].rotate(t,e);this.changed()}scale(t,e,i){i||(i=me(this.getExtent()));const n=this.geometries_;for(let r=0,s=n.length;r<s;++r)n[r].scale(t,e,i);this.changed()}setGeometries(t){this.setGeometriesArray(bm(t))}setGeometriesArray(t){this.unlistenGeometriesChange_(),this.geometries_=t,this.listenGeometriesChange_(),this.changed()}applyTransform(t){const e=this.geometries_;for(let i=0,n=e.length;i<n;++i)e[i].applyTransform(t);this.changed()}translate(t,e){const i=this.geometries_;for(let n=0,r=i.length;n<r;++n)i[n].translate(t,e);this.changed()}disposeInternal(){this.unlistenGeometriesChange_(),super.disposeInternal()}}function bm(t){const e=[];for(let i=0,n=t.length;i<n;++i)e.push(t[i].clone());return e}var Rm=Cm;function Pm(t,e,i,n,r,s,o){let l,h;const c=(i-e)/n;if(1===c)l=e;else if(2===c)l=e,h=r;else if(0!==c){let s=t[e],o=t[e+1],c=0;const u=[0];for(let r=e+n;r<i;r+=n){const e=t[r],i=t[r+1];c+=Math.sqrt((e-s)*(e-s)+(i-o)*(i-o)),u.push(c),s=e,o=i}const d=r*c,g=a(u,d);g<0?(h=(d-u[-g-2])/(u[-g-1]-u[-g-2]),l=e+(-g-2)*n):l=e+g*n}o=o>1?o:2,s=s||new Array(o);for(let e=0;e<o;++e)s[e]=void 0===l?NaN:void 0===h?t[l+e]:di(t[l+e],t[l+n+e],h);return s}function Im(t,e,i,n,r,s){if(i==e)return null;let o;if(r<t[e+n-1])return s?(o=t.slice(e,e+n),o[n-1]=r,o):null;if(t[i-1]<r)return s?(o=t.slice(i-n,i),o[n-1]=r,o):null;if(r==t[e+n-1])return t.slice(e,e+n);let a=e/n,l=i/n;for(;a<l;){const e=a+l>>1;r<t[(e+1)*n-1]?l=e:a=e+1}const h=t[a*n-1];if(r==h)return t.slice((a-1)*n,(a-1)*n+n);const c=(r-h)/(t[(a+1)*n-1]-h);o=[];for(let e=0;e<n-1;++e)o.push(di(t[(a-1)*n+e],t[a*n+e],c));return o.push(r),o}function Lm(t,e,i,n,r,s,o){if(o)return Im(t,e,i[i.length-1],n,r,s);let a;if(r<t[n-1])return s?(a=t.slice(0,n),a[n-1]=r,a):null;if(t[t.length-1]<r)return s?(a=t.slice(t.length-n),a[n-1]=r,a):null;for(let s=0,o=i.length;s<o;++s){const o=i[s];if(e!=o){if(r<t[e+n-1])return null;if(r<=t[o-1])return Im(t,e,o,n,r,!1);e=o}}return null}class Fm extends wn{constructor(t,e){super(),this.flatMidpoint_=null,this.flatMidpointRevision_=-1,this.maxDelta_=-1,this.maxDeltaRevision_=-1,void 0===e||Array.isArray(t[0])?this.setCoordinates(t,e):this.setFlatCoordinates(e,t)}appendCoordinate(t){this.flatCoordinates?u(this.flatCoordinates,t):this.flatCoordinates=t.slice(),this.changed()}clone(){const t=new Fm(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Kt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(En(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Rn(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,this.maxDelta_,!1,t,e,i,n))}forEachSegment(t){return nr(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinateAtM(t,e){return"XYM"!=this.layout&&"XYZM"!=this.layout?null:(e=void 0!==e&&e,Im(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e))}getCoordinates(){return Un(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getCoordinateAt(t,e){return Pm(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,this.stride)}getLength(){return tm(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getFlatMidpoint(){return this.flatMidpointRevision_!=this.getRevision()&&(this.flatMidpoint_=this.getCoordinateAt(.5,this.flatMidpoint_),this.flatMidpointRevision_=this.getRevision()),this.flatMidpoint_}getSimplifiedGeometryInternal(t){const e=[];return e.length=On(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t,e,0),new Fm(e,"XY")}getType(){return"LineString"}intersectsExtent(t){return rr(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Fn(this.flatCoordinates,0,t,this.stride),this.changed()}}var Mm=Fm;class Am extends wn{constructor(t,e,i){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(t[0]))this.setCoordinates(t,e);else if(void 0!==e&&i)this.setFlatCoordinates(e,t),this.ends_=i;else{let e=this.getLayout();const i=t,n=[],r=[];for(let t=0,s=i.length;t<s;++t){const s=i[t];0===t&&(e=s.getLayout()),u(n,s.getFlatCoordinates()),r.push(n.length)}this.setFlatCoordinates(e,n),this.ends_=r}}appendLineString(t){this.flatCoordinates?u(this.flatCoordinates,t.getFlatCoordinates().slice()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.ends_.push(this.flatCoordinates.length),this.changed()}clone(){const t=new Am(this.flatCoordinates.slice(),this.layout,this.ends_.slice());return t.applyProperties(this),t}closestPointXY(t,e,i,n){return n<Kt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(Cn(this.flatCoordinates,0,this.ends_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),Pn(this.flatCoordinates,0,this.ends_,this.stride,this.maxDelta_,!1,t,e,i,n))}getCoordinateAtM(t,e,i){return"XYM"!=this.layout&&"XYZM"!=this.layout||0===this.flatCoordinates.length?null:(e=void 0!==e&&e,i=void 0!==i&&i,Lm(this.flatCoordinates,0,this.ends_,this.stride,t,e,i))}getCoordinates(){return zn(this.flatCoordinates,0,this.ends_,this.stride)}getEnds(){return this.ends_}getLineString(t){return t<0||this.ends_.length<=t?null:new Mm(this.flatCoordinates.slice(0===t?0:this.ends_[t-1],this.ends_[t]),this.layout)}getLineStrings(){const t=this.flatCoordinates,e=this.ends_,i=this.layout,n=[];let r=0;for(let s=0,o=e.length;s<o;++s){const o=e[s],a=new Mm(t.slice(r,o),i);n.push(a),r=o}return n}getFlatMidpoints(){const t=[],e=this.flatCoordinates;let i=0;const n=this.ends_,r=this.stride;for(let s=0,o=n.length;s<o;++s){const o=n[s];u(t,Pm(e,i,o,r,.5)),i=o}return t}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=Nn(this.flatCoordinates,0,this.ends_,this.stride,t,e,0,i),new Am(e,"XY",i)}getType(){return"MultiLineString"}intersectsExtent(t){return sr(this.flatCoordinates,0,this.ends_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,2),this.flatCoordinates||(this.flatCoordinates=[]);const i=Mn(this.flatCoordinates,0,t,this.stride,this.ends_);this.flatCoordinates.length=0===i.length?0:i[i.length-1],this.changed()}}var Om=Am;class Nm extends wn{constructor(t,e){super(),e&&!Array.isArray(t[0])?this.setFlatCoordinates(e,t):this.setCoordinates(t,e)}appendPoint(t){this.flatCoordinates?u(this.flatCoordinates,t.getFlatCoordinates()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.changed()}clone(){const t=new Nm(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,n){if(n<Kt(this.getExtent(),t,e))return n;const r=this.flatCoordinates,s=this.stride;for(let o=0,a=r.length;o<a;o+=s){const a=ai(t,e,r[o],r[o+1]);if(a<n){n=a;for(let t=0;t<s;++t)i[t]=r[o+t];i.length=s}}return n}getCoordinates(){return Un(this.flatCoordinates,0,this.flatCoordinates.length,this.stride)}getPoint(t){const e=this.flatCoordinates?this.flatCoordinates.length/this.stride:0;return t<0||e<=t?null:new Hn(this.flatCoordinates.slice(t*this.stride,(t+1)*this.stride),this.layout)}getPoints(){const t=this.flatCoordinates,e=this.layout,i=this.stride,n=[];for(let r=0,s=t.length;r<s;r+=i){const s=new Hn(t.slice(r,r+i),e);n.push(s)}return n}getType(){return"MultiPoint"}intersectsExtent(t){const e=this.flatCoordinates,i=this.stride;for(let n=0,r=e.length;n<r;n+=i){if($t(t,e[n],e[n+1]))return!0}return!1}setCoordinates(t,e){this.setLayout(e,t,1),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=Fn(this.flatCoordinates,0,t,this.stride),this.changed()}}var Dm=Nm;function Gm(t,e,i,n){const r=[];let s=[1/0,1/0,-1/0,-1/0];for(let o=0,a=i.length;o<a;++o){const a=i[o];s=ne(t,e,a[0],n),r.push((s[0]+s[2])/2,(s[1]+s[3])/2),e=a[a.length-1]}return r}class km extends wn{constructor(t,e,i){if(super(),this.endss_=[],this.flatInteriorPointsRevision_=-1,this.flatInteriorPoints_=null,this.maxDelta_=-1,this.maxDeltaRevision_=-1,this.orientedRevision_=-1,this.orientedFlatCoordinates_=null,!i&&!Array.isArray(t[0])){let n=this.getLayout();const r=t,s=[],o=[];for(let t=0,e=r.length;t<e;++t){const e=r[t];0===t&&(n=e.getLayout());const i=s.length,a=e.getEnds();for(let t=0,e=a.length;t<e;++t)a[t]+=i;u(s,e.getFlatCoordinates()),o.push(a)}e=n,t=s,i=o}void 0!==e&&i?(this.setFlatCoordinates(e,t),this.endss_=i):this.setCoordinates(t,e)}appendPolygon(t){let e;if(this.flatCoordinates){const i=this.flatCoordinates.length;u(this.flatCoordinates,t.getFlatCoordinates()),e=t.getEnds().slice();for(let t=0,n=e.length;t<n;++t)e[t]+=i}else this.flatCoordinates=t.getFlatCoordinates().slice(),e=t.getEnds().slice(),this.endss_.push();this.endss_.push(e),this.changed()}clone(){const t=this.endss_.length,e=new Array(t);for(let i=0;i<t;++i)e[i]=this.endss_[i].slice();const i=new km(this.flatCoordinates.slice(),this.layout,e);return i.applyProperties(this),i}closestPointXY(t,e,i,n){return n<Kt(this.getExtent(),t,e)?n:(this.maxDeltaRevision_!=this.getRevision()&&(this.maxDelta_=Math.sqrt(bn(this.flatCoordinates,0,this.endss_,this.stride,0)),this.maxDeltaRevision_=this.getRevision()),In(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,this.maxDelta_,!0,t,e,i,n))}containsXY(t,e){return tr(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t,e)}getArea(){return Zn(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride)}getCoordinates(t){let e;return void 0!==t?(e=this.getOrientedFlatCoordinates().slice(),fr(e,0,this.endss_,this.stride,t)):e=this.flatCoordinates,Xn(e,0,this.endss_,this.stride)}getEndss(){return this.endss_}getFlatInteriorPoints(){if(this.flatInteriorPointsRevision_!=this.getRevision()){const t=Gm(this.flatCoordinates,0,this.endss_,this.stride);this.flatInteriorPoints_=ir(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t),this.flatInteriorPointsRevision_=this.getRevision()}return this.flatInteriorPoints_}getInteriorPoints(){return new Dm(this.getFlatInteriorPoints().slice(),"XYM")}getOrientedFlatCoordinates(){if(this.orientedRevision_!=this.getRevision()){const t=this.flatCoordinates;dr(t,0,this.endss_,this.stride)?this.orientedFlatCoordinates_=t:(this.orientedFlatCoordinates_=t.slice(),this.orientedFlatCoordinates_.length=fr(this.orientedFlatCoordinates_,0,this.endss_,this.stride)),this.orientedRevision_=this.getRevision()}return this.orientedFlatCoordinates_}getSimplifiedGeometryInternal(t){const e=[],i=[];return e.length=Bn(this.flatCoordinates,0,this.endss_,this.stride,Math.sqrt(t),e,0,i),new km(e,"XY",i)}getPolygon(t){if(t<0||this.endss_.length<=t)return null;let e;if(0===t)e=0;else{const i=this.endss_[t-1];e=i[i.length-1]}const i=this.endss_[t].slice(),n=i[i.length-1];if(0!==e)for(let t=0,n=i.length;t<n;++t)i[t]-=e;return new _r(this.flatCoordinates.slice(e,n),this.layout,i)}getPolygons(){const t=this.layout,e=this.flatCoordinates,i=this.endss_,n=[];let r=0;for(let s=0,o=i.length;s<o;++s){const o=i[s].slice(),a=o[o.length-1];if(0!==r)for(let t=0,e=o.length;t<e;++t)o[t]-=r;const l=new _r(e.slice(r,a),t,o);n.push(l),r=a}return n}getType(){return"MultiPolygon"}intersectsExtent(t){return lr(this.getOrientedFlatCoordinates(),0,this.endss_,this.stride,t)}setCoordinates(t,e){this.setLayout(e,t,3),this.flatCoordinates||(this.flatCoordinates=[]);const i=An(this.flatCoordinates,0,t,this.stride,this.endss_);if(0===i.length)this.flatCoordinates.length=0;else{const t=i[i.length-1];this.flatCoordinates.length=0===t.length?0:t[t.length-1]}this.changed()}}var jm=km;const Bm=[1,0,0,1,0,0];class Um{constructor(t,e,i,n,r){this.styleFunction,this.extent_,this.id_=r,this.type_=t,this.flatCoordinates_=e,this.flatInteriorPoints_=null,this.flatMidpoints_=null,this.ends_=i,this.properties_=n}get(t){return this.properties_[t]}getExtent(){return this.extent_||(this.extent_="Point"===this.type_?ie(this.flatCoordinates_):ne(this.flatCoordinates_,0,this.flatCoordinates_.length,2)),this.extent_}getFlatInteriorPoint(){if(!this.flatInteriorPoints_){const t=me(this.getExtent());this.flatInteriorPoints_=er(this.flatCoordinates_,0,this.ends_,2,t,0)}return this.flatInteriorPoints_}getFlatInteriorPoints(){if(!this.flatInteriorPoints_){const t=Gm(this.flatCoordinates_,0,this.ends_,2);this.flatInteriorPoints_=ir(this.flatCoordinates_,0,this.ends_,2,t)}return this.flatInteriorPoints_}getFlatMidpoint(){return this.flatMidpoints_||(this.flatMidpoints_=Pm(this.flatCoordinates_,0,this.flatCoordinates_.length,2,.5)),this.flatMidpoints_}getFlatMidpoints(){if(!this.flatMidpoints_){this.flatMidpoints_=[];const t=this.flatCoordinates_;let e=0;const i=this.ends_;for(let n=0,r=i.length;n<r;++n){const r=i[n],s=Pm(t,e,r,2,.5);u(this.flatMidpoints_,s),e=r}}return this.flatMidpoints_}getId(){return this.id_}getOrientedFlatCoordinates(){return this.flatCoordinates_}getGeometry(){return this}getSimplifiedGeometry(t){return this}simplifyTransformed(t,e){return this}getProperties(){return this.properties_}getStride(){return 2}getStyleFunction(){return this.styleFunction}getType(){return this.type_}transform(t){const e=(t=Vi(t)).getExtent(),i=t.getWorldExtent();if(e&&i){const t=ve(i)/ve(e);Ot(Bm,i[0],i[3],t,-t,0,0,0),fn(this.flatCoordinates_,0,this.flatCoordinates_.length,2,Bm,this.flatCoordinates_)}}getEnds(){return this.ends_}}function zm(t){const e=t.getType();switch(e){case"Point":return new Hn(t.getFlatCoordinates());case"MultiPoint":return new Dm(t.getFlatCoordinates(),"XY");case"LineString":return new Mm(t.getFlatCoordinates(),"XY");case"MultiLineString":return new Om(t.getFlatCoordinates(),"XY",t.getEnds());case"Polygon":const i=t.getFlatCoordinates(),n=t.getEnds(),r=pr(i,n);return r.length>1?new jm(i,"XY",r):new _r(i,"XY",n);default:throw new Error("Invalid geometry type:"+e)}}Um.prototype.getEndss=Um.prototype.getEnds,Um.prototype.getFlatCoordinates=Um.prototype.getOrientedFlatCoordinates;var Xm=Um;var Vm=class extends Ef{constructor(t){super(t)}createRenderer(){return new ym(this)}};function Wm(t,e,i){const n=[];let r=t(0),s=t(1),o=e(r),a=e(s);const l=[s,r],h=[a,o],c=[1,0],u={};let d,g,f,p,m,_,y=1e5;for(;--y>0&&c.length>0;)f=c.pop(),r=l.pop(),o=h.pop(),_=f.toString(),_ in u||(n.push(o[0],o[1]),u[_]=!0),p=c.pop(),s=l.pop(),a=h.pop(),m=(f+p)/2,d=t(m),g=e(d),oi(g[0],g[1],o[0],o[1],a[0],a[1])<i?(n.push(a[0],a[1]),_=p.toString(),u[_]=!0):(c.push(p,m,m,f),h.push(a,g,g,o),l.push(s,d,d,r));return n}function Zm(t,e,i,n,r){return Wm((function(n){return[t,e+(i-e)*n]}),Qi(Vi("EPSG:4326"),n),r)}function Ym(t,e,i,n,r){return Wm((function(n){return[e+(i-e)*n,t]}),Qi(Vi("EPSG:4326"),n),r)}const Km=new Jg({color:"rgba(0,0,0,0.2)"}),qm=[90,45,30,20,10,5,2,1,.5,20/60,10/60,5/60,2/60,1/60,30/3600,20/3600,10/3600,5/3600,2/3600,1/3600];var Hm=class extends Vm{constructor(t){t=t||{};const e=Object.assign({updateWhileAnimating:!0,updateWhileInteracting:!0,renderBuffer:0},t);delete e.maxLines,delete e.strokeStyle,delete e.targetSize,delete e.showLabels,delete e.lonLabelFormatter,delete e.latLabelFormatter,delete e.lonLabelPosition,delete e.latLabelPosition,delete e.lonLabelStyle,delete e.latLabelStyle,delete e.intervals,super(e),this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxX_=1/0,this.maxY_=1/0,this.minX_=-1/0,this.minY_=-1/0,this.targetSize_=void 0!==t.targetSize?t.targetSize:100,this.maxLines_=void 0!==t.maxLines?t.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==t.strokeStyle?t.strokeStyle:Km,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.bottomLeft_=null,this.bottomRight_=null,this.topLeft_=null,this.topRight_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,t.showLabels&&(this.lonLabelFormatter_=null==t.lonLabelFormatter?wi.bind(this,"EW"):t.lonLabelFormatter,this.latLabelFormatter_=null==t.latLabelFormatter?wi.bind(this,"NS"):t.latLabelFormatter,this.lonLabelPosition_=null==t.lonLabelPosition?0:t.lonLabelPosition,this.latLabelPosition_=null==t.latLabelPosition?1:t.latLabelPosition,this.lonLabelStyleBase_=new of({text:void 0!==t.lonLabelStyle?t.lonLabelStyle.clone():new lf({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new Vg({color:"rgba(0,0,0,1)"}),stroke:new Jg({color:"rgba(255,255,255,1)",width:3})})}),this.lonLabelStyle_=function(t){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_}.bind(this),this.latLabelStyleBase_=new of({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new lf({font:"12px Calibri,sans-serif",textAlign:"right",fill:new Vg({color:"rgba(0,0,0,1)"}),stroke:new Jg({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=function(t){const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_}.bind(this),this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(Es,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:qm,this.setSource(new ic({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new $,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new of({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();return this.projection_&&this.getSource().getWrapX()&&Fe(i,this.projection_),this.loadedExtent_&&(se(this.loadedExtent_,i,e)?i=this.loadedExtent_.slice():this.getSource().removeLoadedExtent(this.loadedExtent_)),[i]}loaderFunction(t,e,i){this.loadedExtent_=t;const n=this.getSource(),r=Se(this.getExtent()||[-1/0,-1/0,1/0,1/0],t);if(this.renderedExtent_&&re(this.renderedExtent_,r)&&this.renderedResolution_===e)return;if(this.renderedExtent_=r,this.renderedResolution_=e,be(r))return;const s=me(r),o=e*e/4;(!this.projection_||!$i(this.projection_,i))&&this.updateProjectionInfo_(i),this.createGraticule_(r,s,e,o);let a,l=this.meridians_.length+this.parallels_.length;for(this.meridiansLabels_&&(l+=this.meridians_.length),this.parallelsLabels_&&(l+=this.parallels_.length);l>this.featurePool_.length;)a=new dt,this.featurePool_.push(a);const h=n.getFeaturesCollection();h.clear();let c,u,d=0;for(c=0,u=this.meridians_.length;c<u;++c)a=this.featurePool_[d++],a.setGeometry(this.meridians_[c]),a.setStyle(this.lineStyle_),h.push(a);for(c=0,u=this.parallels_.length;c<u;++c)a=this.featurePool_[d++],a.setGeometry(this.parallels_[c]),a.setStyle(this.lineStyle_),h.push(a)}addMeridian_(t,e,i,n,r,s){const o=this.getMeridian_(t,e,i,n,s);if(Ce(o.getExtent(),r)){if(this.meridiansLabels_){const e=this.lonLabelFormatter_(t);s in this.meridiansLabels_?this.meridiansLabels_[s].text=e:this.meridiansLabels_[s]={geom:new Hn([]),text:e}}this.meridians_[s++]=o}return s}addParallel_(t,e,i,n,r,s){const o=this.getParallel_(t,e,i,n,s);if(Ce(o.getExtent(),r)){if(this.parallelsLabels_){const e=this.latLabelFormatter_(t);s in this.parallelsLabels_?this.parallelsLabels_[s].text=e:this.parallelsLabels_[s]={geom:new Hn([]),text:e}}this.parallels_[s++]=o}return s}drawLabels_(t){const e=t.frameState.viewState.rotation,i=t.frameState.viewState.resolution,n=t.frameState.size,r=t.frameState.extent,s=me(r);let o=r;if(e){const t=n[0]*i,e=n[1]*i;o=[s[0]-t/2,s[1]-e/2,s[0]+t/2,s[1]+e/2]}let a=0,l=0,h=this.latLabelPosition_<.5;const c=this.projection_.getExtent(),u=Ee(c);if(this.getSource().getWrapX()&&this.projection_.canWrapX()&&!Ht(c,r)){a=Math.floor((r[0]-c[0])/u),l=Math.ceil((r[2]-c[2])/u);h=h!==Math.abs(e)>Math.PI/2}const d=Xl(t);for(let t=a;t<=l;++t){let i,n,c,g,f=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(n=0,c=this.meridiansLabels_.length;n<c;++n){const a=this.meridians_[n];if(e||0!==t){const i=a.clone();i.translate(t*u,0),i.rotate(-e,s),g=this.getMeridianPoint_(i,o,n),g.rotate(e,s)}else g=this.getMeridianPoint_(a,r,n);i=this.featurePool_[f++],i.setGeometry(g),i.set("graticule_label",this.meridiansLabels_[n].text),d.drawFeature(i,this.lonLabelStyle_(i))}if(this.parallelsLabels_&&(t===a&&h||t===l&&!h))for(n=0,c=this.parallels_.length;n<c;++n){const a=this.parallels_[n];if(e||0!==t){const i=a.clone();i.translate(t*u,0),i.rotate(-e,s),g=this.getParallelPoint_(i,o,n),g.rotate(e,s)}else g=this.getParallelPoint_(a,r,n);i=this.featurePool_[f++],i.setGeometry(g),i.set("graticule_label",this.parallelsLabels_[n].text),d.drawFeature(i,this.latLabelStyle_(i))}}}createGraticule_(t,e,i,n){const r=this.getInterval_(i);if(-1==r)return this.meridians_.length=0,this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));let s=!1;const o=this.projection_.getExtent(),a=Ee(o);this.getSource().getWrapX()&&this.projection_.canWrapX()&&!Ht(o,t)&&(Ee(t)>=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[si(e[0],this.minX_,this.maxX_),si(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=si(h[0],this.minLon_,this.maxLon_),u=si(h[1],this.minLat_,this.maxLat_);const d=this.maxLines_;let g,f,p,m,_=t;s||(_=[si(t[0],this.minX_,this.maxX_),si(t[1],this.minY_,this.maxY_),si(t[2],this.minX_,this.maxX_),si(t[3],this.minY_,this.maxY_)]);const y=Le(_,this.toLonLatTransform_,void 0,8);let x=y[3],v=y[2],S=y[1],w=y[0];if(s||(qt(_,this.bottomLeft_)&&(w=this.minLon_,S=this.minLat_),qt(_,this.bottomRight_)&&(v=this.maxLon_,S=this.minLat_),qt(_,this.topLeft_)&&(w=this.minLon_,x=this.maxLat_),qt(_,this.topRight_)&&(v=this.maxLon_,x=this.maxLat_),x=si(x,u,this.maxLat_),v=si(v,c,this.maxLon_),S=si(S,this.minLat_,u),w=si(w,this.minLon_,c)),c=Math.floor(c/r)*r,m=si(c,this.minLon_,this.maxLon_),f=this.addMeridian_(m,S,x,n,t,0),g=0,s)for(;(m-=r)>=w&&g++<d;)f=this.addMeridian_(m,S,x,n,t,f);else for(;m!=this.minLon_&&g++<d;)m=Math.max(m-r,this.minLon_),f=this.addMeridian_(m,S,x,n,t,f);if(m=si(c,this.minLon_,this.maxLon_),g=0,s)for(;(m+=r)<=v&&g++<d;)f=this.addMeridian_(m,S,x,n,t,f);else for(;m!=this.maxLon_&&g++<d;)m=Math.min(m+r,this.maxLon_),f=this.addMeridian_(m,S,x,n,t,f);for(this.meridians_.length=f,this.meridiansLabels_&&(this.meridiansLabels_.length=f),u=Math.floor(u/r)*r,p=si(u,this.minLat_,this.maxLat_),f=this.addParallel_(p,w,v,n,t,0),g=0;p!=this.minLat_&&g++<d;)p=Math.max(p-r,this.minLat_),f=this.addParallel_(p,w,v,n,t,f);for(p=si(u,this.minLat_,this.maxLat_),g=0;p!=this.maxLat_&&g++<d;)p=Math.min(p+r,this.maxLat_),f=this.addParallel_(p,w,v,n,t,f);this.parallels_.length=f,this.parallelsLabels_&&(this.parallelsLabels_.length=f)}getInterval_(t){const e=this.projectionCenterLonLat_[0],i=this.projectionCenterLonLat_[1];let n=-1;const r=Math.pow(this.targetSize_*t,2),s=[],o=[];for(let t=0,a=this.intervals_.length;t<a;++t){const a=si(this.intervals_[t]/2,0,90),l=si(i,-90+a,90-a);s[0]=e-a,s[1]=l-a,o[0]=e+a,o[1]=l+a,this.fromLonLatTransform_(s,s),this.fromLonLatTransform_(o,o);if(Math.pow(o[0]-s[0],2)+Math.pow(o[1]-s[1],2)<=r)break;n=this.intervals_[t]}return n}getMeridian_(t,e,i,n,r){const s=Zm(t,e,i,this.projection_,n);let o=this.meridians_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):(o=new Mm(s,"XY"),this.meridians_[r]=o),o}getMeridianPoint_(t,e,i){const n=t.getFlatCoordinates();let r=1,s=n.length-1;n[r]>n[s]&&(r=s,s=1);const o=Math.max(e[1],n[r]),a=Math.min(e[3],n[s]),l=si(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[n[r-1]+(n[s-1]-n[r-1])*(l-n[r])/(n[s]-n[r]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,n,r){const s=Ym(t,e,i,this.projection_,n);let o=this.parallels_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new Mm(s,"XY"),o}getParallelPoint_(t,e,i){const n=t.getFlatCoordinates();let r=0,s=n.length-2;n[r]>n[s]&&(r=s,s=0);const o=Math.max(e[0],n[r]),a=Math.min(e[2],n[s]),l=si(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,n[r+1]+(n[s+1]-n[r+1])*(l-n[r])/(n[s]-n[r])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=Vi("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const n=Qi(t,e);if(this.minLon_<this.maxLon_)this.toLonLatTransform_=n;else{const t=this.minLon_+this.maxLon_/2;this.maxLon_+=360,this.toLonLatTransform_=function(e,i,r){const s=n(e,i,r=r||2);for(let e=0,i=s.length;e<i;e+=r)s[e]<t&&(s[e]+=360);return s}}this.fromLonLatTransform_=Qi(e,t);const r=Le([this.minLon_,this.minLat_,this.maxLon_,this.maxLat_],this.fromLonLatTransform_,void 0,8);this.minX_=r[0],this.maxX_=r[2],this.minY_=r[1],this.maxY_=r[3],this.bottomLeft_=this.fromLonLatTransform_([this.minLon_,this.minLat_]),this.bottomRight_=this.fromLonLatTransform_([this.maxLon_,this.minLat_]),this.topLeft_=this.fromLonLatTransform_([this.minLon_,this.maxLat_]),this.topRight_=this.fromLonLatTransform_([this.maxLon_,this.maxLat_]),this.projectionCenterLonLat_=this.toLonLatTransform_(me(t.getExtent())),isNaN(this.projectionCenterLonLat_[1])&&(this.projectionCenterLonLat_[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}};const $m="blur",Jm="gradient",Qm="radius",t_=["#00f","#0ff","#0f0","#ff0","#f00"];var e_=class extends Ef{constructor(t){t=t||{};const e=Object.assign({},t);delete e.gradient,delete e.radius,delete e.blur,delete e.weight,super(e),this.gradient_=null,this.addChangeListener(Jm,this.handleGradientChanged_),this.setGradient(t.gradient?t.gradient:t_),this.setBlur(void 0!==t.blur?t.blur:15),this.setRadius(void 0!==t.radius?t.radius:8);const i=t.weight?t.weight:"weight";this.weightFunction_="string"==typeof i?function(t){return t.get(i)}:i,this.setRenderOrder(null)}getBlur(){return this.get($m)}getGradient(){return this.get(Jm)}getRadius(){return this.get(Qm)}handleGradientChanged_(){this.gradient_=function(t){const e=1,i=256,n=Xr(e,i),r=n.createLinearGradient(0,0,e,i),s=1/(t.length-1);for(let e=0,i=t.length;e<i;++e)r.addColorStop(e*s,t[e]);return n.fillStyle=r,n.fillRect(0,0,e,i),n.canvas}(this.getGradient())}setBlur(t){this.set($m,t)}setGradient(t){this.set(Jm,t)}setRadius(t){this.set(Qm,t)}createRenderer(){return new ap(this,{className:this.getClassName(),attributes:[{name:"weight",callback:function(t){const e=this.weightFunction_(t);return void 0!==e?si(e,0,1):1}.bind(this)}],vertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_weight = a_weight;\n }",fragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n gl_FragColor = vec4(alpha, alpha, alpha, alpha);\n }",hitVertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n attribute vec4 a_hitColor;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_hitColor = a_hitColor;\n v_weight = a_weight;\n }",hitFragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n if (alpha < 0.05) {\n discard;\n }\n\n gl_FragColor = v_hitColor;\n }",uniforms:{u_size:function(){return 2*(this.get(Qm)+this.get($m))}.bind(this),u_blurSlope:function(){return this.get(Qm)/Math.max(1,this.get($m))}.bind(this)},postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:function(){return this.gradient_}.bind(this),u_opacity:function(){return this.getOpacity()}.bind(this)}}]})}renderDeclutter(){}};var i_=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let i=e.dataProjection?Vi(e.dataProjection):this.readProjection(t);e.extent&&i&&"tile-pixels"===i.getUnits()&&(i=Vi(i),i.setWorldExtent(e.extent)),e={dataProjection:i,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection},t)}getType(){return z()}readFeature(t,e){return z()}readFeatures(t,e){return z()}readGeometry(t,e){return z()}readProjection(t){return z()}writeFeature(t,e){return z()}writeFeatures(t,e){return z()}writeGeometry(t,e){return z()}};function n_(t,e,i){const n=i?Vi(i.featureProjection):null,r=i?Vi(i.dataProjection):null;let s;if(s=n&&r&&!$i(n,r)?(e?t.clone():t).transform(e?n:r,e?r:n):t,e&&i&&void 0!==i.decimals){const e=Math.pow(10,i.decimals),n=function(t){for(let i=0,n=t.length;i<n;++i)t[i]=Math.round(t[i]*e)/e;return t};s===t&&(s=t.clone()),s.applyTransform(n)}return s}function r_(t,e){const i=e?Vi(e.featureProjection):null,n=e?Vi(e.dataProjection):null;return i&&n&&!$i(i,n)?en(t,n,i):t}var s_={
|
|
2
2
|
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
3
|
-
read:function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<<a)-1,h=l>>1,c=-7,u=i?r-1:0,d=i?-1:1,g=t[e+u];for(u+=d,s=g&(1<<-c)-1,g>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=256*o+t[e+u],u+=d,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,n),s-=h}return(g?-1:1)*o*Math.pow(2,s-n)},write:function(t,e,i,n,r,s){var o,a,l,h=8*s-r-1,c=(1<<h)-1,u=c>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:s-1,f=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+g]=255&a,g+=f,a/=256,r-=8);for(o=o<<r|a,h+=r;h>0;t[i+g]=255&o,g+=f,o/=256,h-=8);t[i+g-f]|=128*p}},rm=om,sm=nm;function om(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}om.Varint=0,om.Fixed64=1,om.Bytes=2,om.Fixed32=5;var am=4294967296,lm=1/am,hm="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function cm(t){return t.type===om.Bytes?t.readVarint()+t.pos:t.pos+1}function um(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function dm(t,e,i){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(n);for(var r=i.pos-1;r>=t;r--)i.buf[r+n]=i.buf[r]}function gm(t,e){for(var i=0;i<t.length;i++)e.writeVarint(t[i])}function fm(t,e){for(var i=0;i<t.length;i++)e.writeSVarint(t[i])}function pm(t,e){for(var i=0;i<t.length;i++)e.writeFloat(t[i])}function mm(t,e){for(var i=0;i<t.length;i++)e.writeDouble(t[i])}function _m(t,e){for(var i=0;i<t.length;i++)e.writeBoolean(t[i])}function ym(t,e){for(var i=0;i<t.length;i++)e.writeFixed32(t[i])}function xm(t,e){for(var i=0;i<t.length;i++)e.writeSFixed32(t[i])}function vm(t,e){for(var i=0;i<t.length;i++)e.writeFixed64(t[i])}function Sm(t,e){for(var i=0;i<t.length;i++)e.writeSFixed64(t[i])}function wm(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function Tm(t,e,i){t[i]=e,t[i+1]=e>>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function Em(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}om.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos<i;){var n=this.readVarint(),r=n>>3,s=this.pos;this.type=7&n,t(r,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=wm(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Em(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=wm(this.buf,this.pos)+wm(this.buf,this.pos+4)*am;return this.pos+=8,t},readSFixed64:function(){var t=wm(this.buf,this.pos)+Em(this.buf,this.pos+4)*am;return this.pos+=8,t},readFloat:function(){var t=sm.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=sm.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,n=this.buf;return e=127&(i=n[this.pos++]),i<128?e:(e|=(127&(i=n[this.pos++]))<<7,i<128?e:(e|=(127&(i=n[this.pos++]))<<14,i<128?e:(e|=(127&(i=n[this.pos++]))<<21,i<128?e:function(t,e,i){var n,r,s=i.buf;if(r=s[i.pos++],n=(112&r)>>4,r<128)return um(t,n,e);if(r=s[i.pos++],n|=(127&r)<<3,r<128)return um(t,n,e);if(r=s[i.pos++],n|=(127&r)<<10,r<128)return um(t,n,e);if(r=s[i.pos++],n|=(127&r)<<17,r<128)return um(t,n,e);if(r=s[i.pos++],n|=(127&r)<<24,r<128)return um(t,n,e);if(r=s[i.pos++],n|=(1&r)<<31,r<128)return um(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=n[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,e=this.pos;return this.pos=t,t-e>=12&&hm?function(t,e,i){return hm.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var n="",r=e;for(;r<i;){var s,o,a,l=t[r],h=null,c=l>239?4:l>223?3:l>191?2:1;if(r+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[r+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[r+1],o=t[r+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[r+1],o=t[r+2],a=t[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),n+=String.fromCharCode(h),r+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==om.Bytes)return t.push(this.readVarint(e));var i=cm(this);for(t=t||[];this.pos<i;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==om.Bytes)return t.push(this.readSVarint());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==om.Bytes)return t.push(this.readBoolean());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==om.Bytes)return t.push(this.readFloat());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==om.Bytes)return t.push(this.readDouble());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==om.Bytes)return t.push(this.readFixed32());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==om.Bytes)return t.push(this.readSFixed32());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==om.Bytes)return t.push(this.readFixed64());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==om.Bytes)return t.push(this.readSFixed64());var e=cm(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===om.Varint)for(;this.buf[this.pos++]>127;);else if(e===om.Bytes)this.pos=this.readVarint()+this.pos;else if(e===om.Fixed32)this.pos+=4;else{if(e!==om.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var i=new Uint8Array(e);i.set(this.buf),this.buf=i,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Tm(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Tm(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Tm(this.buf,-1&t,this.pos),Tm(this.buf,Math.floor(t*lm),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Tm(this.buf,-1&t,this.pos),Tm(this.buf,Math.floor(t*lm),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var i,n;t>=0?(i=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(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 e=this.pos;this.pos=function(t,e,i){for(var n,r,s=0;s<e.length;s++){if((n=e.charCodeAt(s))>55295&&n<57344){if(!r){n>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):r=n;continue}if(n<56320){t[i++]=239,t[i++]=191,t[i++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(t[i++]=239,t[i++]=191,t[i++]=189,r=null);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:(n<65536?t[i++]=n>>12|224:(t[i++]=n>>18|240,t[i++]=n>>12&63|128),t[i++]=n>>6&63|128),t[i++]=63&n|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&dm(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),sm.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),sm.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i<e;i++)this.buf[this.pos++]=t[i]},writeRawMessage:function(t,e){this.pos++;var i=this.pos;t(e,this);var n=this.pos-i;n>=128&&dm(i,n,this),this.pos=i-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,i){this.writeTag(t,om.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,gm,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,fm,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,_m,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,pm,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,mm,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,ym,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,xm,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,vm,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Sm,e)},writeBytesField:function(t,e){this.writeTag(t,om.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,om.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,om.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,om.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,om.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,om.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,om.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,om.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,om.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,om.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};class Cm extends tm{constructor(t){super(),t=t||{},this.dataProjection=new Ae({code:"",units:"tile-pixels"}),this.featureClass_=t.featureClass?t.featureClass:zp,this.geometryName_=t.geometryName,this.layerName_=t.layerName?t.layerName:"layer",this.layers_=t.layers?t.layers:null,this.idProperty_=t.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(t,e,i,n){t.pos=e.geometry;const r=t.readVarint()+t.pos;let s=1,o=0,a=0,l=0,h=0,c=0;for(;t.pos<r;){if(!o){const e=t.readVarint();s=7&e,o=e>>3}o--,1===s||2===s?(a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(n.push(h),c=h),i.push(a,l),h+=2):7===s?h>c&&(i.push(i[c],i[c+1]),h+=2):at(!1,59)}h>c&&(n.push(h),c=h)}createFeature_(t,e,i){const n=e.type;if(0===n)return null;let r;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(n,l.length);if(this.featureClass_===zp)r=new this.featureClass_(h,a,l,s,o),r.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=cr(a,l);t=e.length>1?new Bp(a,"XY",e):new ur(a,"XY",l)}else t="Point"===h?new Wn(a,"XY"):"LineString"===h?new Dp(a,"XY"):"MultiPoint"===h?new kp(a,"XY"):"MultiLineString"===h?new Gp(a,"XY",l):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);const e=em(t,!1,i);r.setGeometry(e),void 0!==o&&r.setId(o),r.setProperties(s,!0)}return r}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_,n=Ui((e=this.adaptOptions(e)).dataProjection);n.setWorldExtent(e.extent),e.dataProjection=n;const r=new rm(t),s=r.readFields(bm,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;n.setExtent(l);for(let t=0,i=a.length;t<i;++t){const i=Im(r,a,t),n=this.createFeature_(r,i,e);null!==n&&o.push(n)}}return o}readProjection(t){return this.dataProjection}setLayers(t){this.layers_=t}}function bm(t,e,i){if(3===t){const t={keys:[],values:[],features:[]},n=i.readVarint()+i.pos;i.readFields(Rm,t,n),t.length=t.features.length,t.length&&(e[t.name]=t)}}function Rm(t,e,i){if(15===t)e.version=i.readVarint();else if(1===t)e.name=i.readString();else if(5===t)e.extent=i.readVarint();else if(2===t)e.features.push(i.pos);else if(3===t)e.keys.push(i.readString());else if(4===t){let n=null;const r=i.readVarint()+i.pos;for(;i.pos<r;)n=1===(t=i.readVarint()>>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(n)}}function Pm(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos<t;){const t=e.layer.keys[i.readVarint()],n=e.layer.values[i.readVarint()];e.properties[t]=n}}else 3==t?e.type=i.readVarint():4==t&&(e.geometry=i.pos)}function Im(t,e,i){t.pos=e.features[i];const n=t.readVarint()+t.pos,r={layer:e,type:0,properties:{}};return t.readFields(Pm,r,n),r}class Lm extends Fg{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un;const i=t.renderMode||"hybrid";at("hybrid"==i||"vector"==i,28),this.renderMode_=i,this.setPreload(t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError),this.getBackground,this.setBackground}createRenderer(){return new Ip(this)}getFeatures(t){return super.getFeatures(t)}getRenderMode(){return this.renderMode_}getPreload(){return this.get(Ac)}getUseInterimTilesOnError(){return this.get(Oc)}setPreload(t){this.set(Ac,t)}setUseInterimTilesOnError(t){this.set(Oc,t)}}class Fm extends i{constructor(t){super(w),this.error=t}}function Mm(t,e){const i=`\n attribute vec2 ${_d.TEXTURE_COORD};\n uniform mat4 ${md.TILE_TRANSFORM};\n uniform float ${md.TEXTURE_PIXEL_WIDTH};\n uniform float ${md.TEXTURE_PIXEL_HEIGHT};\n uniform float ${md.TEXTURE_RESOLUTION};\n uniform float ${md.TEXTURE_ORIGIN_X};\n uniform float ${md.TEXTURE_ORIGIN_Y};\n uniform float ${md.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${_d.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${md.TEXTURE_ORIGIN_X} + ${md.TEXTURE_RESOLUTION} * ${md.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${md.TEXTURE_ORIGIN_Y} - ${md.TEXTURE_RESOLUTION} * ${md.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${md.TILE_TRANSFORM} * vec4(${_d.TEXTURE_COORD}, ${md.DEPTH}, 1.0);\n }\n `,n={inFragmentShader:!0,variables:[],attributes:[],stringLiteralsMap:{},functions:{},bandCount:e},r=[];if(void 0!==t.color){const e=Bd(n,t.color,Rd);r.push(`color = ${e};`)}if(void 0!==t.contrast){const e=Bd(n,t.contrast,Cd);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=Bd(n,t.exposure,Cd);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=Bd(n,t.saturation,Cd);r.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=Bd(n,t.gamma,Cd);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=Bd(n,t.brightness,Cd);r.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=n.variables.length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let e=0;e<o;++e){const i=n.variables[e];if(!(i in t.variables))throw new Error(`Missing '${i}' in style variables`);s[Hd(i)]=function(){let e=t.variables[i];return"string"==typeof e&&(e=kd(n,e)),void 0!==e?e:-9999999}}const a=Object.keys(s).map((function(t){return`uniform float ${t};`})),l=Math.ceil(e/4);a.push(`uniform sampler2D ${md.TILE_TEXTURE_ARRAY}[${l}];`),n.paletteTextures&&a.push(`uniform sampler2D u_paletteTextures[${n.paletteTextures.length}];`);const h=Object.keys(n.functions).map((function(t){return n.functions[t]}));return{vertexShader:i,fragmentShader:`\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n #endif\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n uniform vec4 ${md.RENDER_EXTENT};\n uniform float ${md.TRANSITION_ALPHA};\n uniform float ${md.TEXTURE_PIXEL_WIDTH};\n uniform float ${md.TEXTURE_PIXEL_HEIGHT};\n uniform float ${md.RESOLUTION};\n uniform float ${md.ZOOM};\n\n ${a.join("\n")}\n\n ${h.join("\n")}\n\n void main() {\n if (\n v_mapCoord[0] < ${md.RENDER_EXTENT}[0] ||\n v_mapCoord[1] < ${md.RENDER_EXTENT}[1] ||\n v_mapCoord[0] > ${md.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${md.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${md.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${r.join("\n")}\n\n if (color.a == 0.0) {\n discard;\n }\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${md.TRANSITION_ALPHA};\n }`,uniforms:s,paletteTextures:n.paletteTextures}}class Am extends Nc{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(ds,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=Mm(this.style_,this.getSourceBandCount_());return new Ed(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let n;for(let r=0,s=e.length;r<s;++r)this.renderedSource_=e[r],i.prepareFrame(t)&&(n=i.renderFrame(t));return n}render(t,e){this.rendered=!0;const i=t.viewState,n=this.getSources(t.extent,i.resolution);let r=!0;for(let t=0,e=n.length;t<e;++t){const e=n[t],i=e.getState();if("loading"==i){const t=()=>{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}r=r&&"ready"==i}const s=this.renderSources(t,n);if(this.getRenderer().renderComplete&&r)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter((t=>!n.includes(t)));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=Mm(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,paletteTextures:e.paletteTextures}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}Am.prototype.dispose;const Om="addfeatures";class Nm extends i{constructor(t,e,i,n){super(t),this.features=i,this.file=e,this.projection=n}}const Dm="drawstart",Gm="drawend",km="drawabort";class jm extends i{constructor(t,e){super(t),this.feature=e}}function Bm(t,e){return ri(t[0],t[1],e[0],e[1])}function Um(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function zm(t,e,i){let n,r;e<i?(n=e,r=i):(n=i,r=e);const s=Math.ceil(n),o=Math.floor(r);if(s>o){return Bm(Km(t,n),Km(t,r))}let a=0;if(n<s){a+=Bm(Km(t,n),Um(t,s))}if(o<r){a+=Bm(Um(t,o),Km(t,r))}for(let e=s;e<o-1;++e){a+=Bm(Um(t,e),Um(t,e+1))}return a}function Xm(t,e,i){if(e instanceof Dp)Wm(t,e.getCoordinates(),!1,i);else if(e instanceof Gp){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e)Wm(t,n[e],!1,i)}else if(e instanceof ur){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e)Wm(t,n[e],!0,i)}else if(e instanceof Bp){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e){const r=n[e];for(let e=0,n=r.length;e<n;++e)Wm(t,r[e],!0,i)}}else if(e instanceof Fp){const n=e.getGeometries();for(let e=0;e<n.length;++e)Xm(t,n[e],i)}else;}const Vm={index:-1,endIndex:NaN};function Wm(t,e,i,n){const r=t[0],s=t[1];for(let t=0,o=e.length-1;t<o;++t){const o=Ym(r,s,e[t],e[t+1]);if(0===o.squaredDistance){const r=t+o.along;return void n.push({coordinates:e,ring:i,startIndex:r,endIndex:r})}}}const Zm={along:0,squaredDistance:0};function Ym(t,e,i,n){const r=i[0],s=i[1],o=n[0]-r,a=n[1]-s;let l=0,h=r,c=s;return 0===o&&0===a||(l=ii(((t-r)*o+(e-s)*a)/(o*o+a*a),0,1),h+=o*l,c+=a*l),Zm.along=l,Zm.squaredDistance=ci(ri(t,e,h,c),10),Zm}function Km(t,e){const i=t.length;let n=Math.floor(e);const r=e-n;n>=i?n-=i:n<0&&(n+=i);let s=n+1;s>=i&&(s-=i);const o=t[n],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*r,l+(h[1]-l)*r]}function qm(){const t=mg();return function(e,i){return t[e.getGeometry().getType()]}}const Hm="extentchanged";class $m extends i{constructor(t){super(Hm),this.extent=t}}function Jm(){const t=mg();return function(e,i){return t.Polygon}}function Qm(){const t=mg();return function(e,i){return t.Point}}function t_(t){return function(e){return zt([t,e])}}function e_(t,e){return t[0]==e[0]?function(i){return zt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return zt([t,[e[0],i[1]]])}:null}function i_(t){return parseFloat(t)}function n_(t){return function(t){return ci(t,5)}(t).toString()}function r_(t,e){return!isNaN(t)&&t!==i_(n_(e))}const s_=[0,0,0,0],o_=[],a_="modifystart",l_="modifyend";class h_ extends i{constructor(t,e,i){super(t),this.features=e,this.mapBrowserEvent=i}}function c_(t,e){return t.index-e.index}function u_(t,e,i){const n=e.geometry;if("Circle"===n.getType()){let r=n;if(1===e.index){const e=en();e&&(r=r.clone().transform(e,i));const n=Ei(r.getCenter(),rn(t,i)),s=Math.sqrt(n)-r.getRadius();return s*s}}const r=rn(t,i);return o_[0]=rn(e.segment[0],i),o_[1]=rn(e.segment[1],i),bi(r,o_)}function d_(t,e,i){const n=e.geometry;if("Circle"===n.getType()&&1===e.index){let e=n;const r=en();return r&&(e=e.clone().transform(r,i)),nn(e.getClosestPoint(rn(t,i)),i)}const r=rn(t,i);return o_[0]=rn(e.segment[0],i),o_[1]=rn(e.segment[1],i),nn(yi(r,o_),i)}function g_(){const t=mg();return function(e,i){return t.Point}}const f_="select";class p_ extends i{constructor(t,e,i,n){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=n}}const m_={};class __ extends ea{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:pa,this.addCondition_=t.addCondition?t.addCondition:fa,this.removeCondition_=t.removeCondition?t.removeCondition:fa,this.toggleCondition_=t.toggleCondition?t.toggleCondition:_a,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:g,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=mg();return c(t.Polygon,t.LineString),c(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new q,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=g;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[z(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[z(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(W,this.boundAddFeature_),this.features_.addEventListener(Z,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(W,this.boundAddFeature_),this.features_.removeEventListener(Z,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof Vp&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=z(t);e in m_||(m_[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const n=e[i];if(n!==this&&n instanceof __&&n.getStyle()&&-1!==n.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(n.getStyle())}const i=z(t);t.setStyle(m_[i]),delete m_[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[z(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),n=this.toggleCondition_(t),r=!e&&!i&&!n,s=t.map,o=this.getFeatures(),a=[],l=[];if(r){y(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,function(t,e){if(t instanceof lt&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,function(t,r){if(t instanceof lt&&this.filter_(t,r))return!e&&!n||o.getArray().includes(t)?(i||n)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,r),l.push(t)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new p_(f_,l,a,t)),!0}}function y_(t){return t.feature?t.feature:t.element?t.element:void 0}const x_=[];const v_="translatestart",S_="translating",w_="translateend";class T_ extends i{constructor(t,e,i,n,r){super(t),this.features=e,this.coordinate=i,this.startCoordinate=n,this.mapBrowserEvent=r}}function E_(t,e,i,n,r,s){void 0!==r?s=void 0!==s?s:0:(r=[],s=0);let o=e;for(;o<i;){const e=t[o++];r[s++]=t[o++],r[s++]=e;for(let e=2;e<n;++e)r[s++]=t[o++]}return r.length=s,r}class C_ extends tm{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(b_(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(b_(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return B()}readFeaturesFromObject(t,e){return B()}readGeometry(t,e){return this.readGeometryFromObject(b_(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return B()}readProjection(t){return this.readProjectionFromObject(b_(t))}readProjectionFromObject(t){return B()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return B()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return B()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return B()}}function b_(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}const R_={Point:function(t){let e;e=void 0!==t.m&&void 0!==t.z?new Wn([t.x,t.y,t.z,t.m],"XYZM"):void 0!==t.z?new Wn([t.x,t.y,t.z],"XYZ"):void 0!==t.m?new Wn([t.x,t.y,t.m],"XYM"):new Wn([t.x,t.y]);return e},LineString:function(t){const e=L_(t);return new Dp(t.paths[0],e)},Polygon:function(t){const e=L_(t);return new ur(t.rings,e)},MultiPoint:function(t){const e=L_(t);return new kp(t.points,e)},MultiLineString:function(t){const e=L_(t);return new Gp(t.paths,e)},MultiPolygon:function(t){const e=L_(t);return new Bp(t.rings,e)}},P_={Point:function(t,e){const i=t.getCoordinates();let n;const r=t.getLayout();"XYZ"===r?n={x:i[0],y:i[1],z:i[2]}:"XYM"===r?n={x:i[0],y:i[1],m:i[2]}:"XYZM"===r?n={x:i[0],y:i[1],z:i[2],m:i[3]}:"XY"===r?n={x:i[0],y:i[1]}:at(!1,34);return n},LineString:function(t,e){const i=F_(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:[t.getCoordinates()]}},Polygon:function(t,e){const i=F_(t);return{hasZ:i.hasZ,hasM:i.hasM,rings:t.getCoordinates(!1)}},MultiPoint:function(t,e){const i=F_(t);return{hasZ:i.hasZ,hasM:i.hasM,points:t.getCoordinates()}},MultiLineString:function(t,e){const i=F_(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:t.getCoordinates()}},MultiPolygon:function(t,e){const i=F_(t),n=t.getCoordinates(!1),r=[];for(let t=0;t<n.length;t++)for(let e=n[t].length-1;e>=0;e--)r.push(n[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:r}}};function I_(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,n=L_(e),r=function(t,e){const i=[],n=[],r=[];let s,o;for(s=0,o=t.length;s<o;++s){i.length=0,Pn(i,0,t[s],e.length);sr(i,0,i.length,e.length)?n.push([t[s]]):r.push(t[s])}for(;r.length;){const t=r.shift();let e=!1;for(s=n.length-1;s>=0;s--){const i=n[s][0];if(Yt(new Vn(i).getExtent(),new Vn(t).getExtent())){n[s].push(t),e=!0;break}}e||n.push([t.reverse()])}return n}(e.rings,n);1===r.length?(i="Polygon",t=Object.assign({},t,{rings:r[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:r}))}return em((0,R_[i])(t),!1,e)}function L_(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function F_(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function M_(t,e){return(0,P_[t.getType()])(em(t,!0,e),e)}class A_ extends tm{constructor(){super(),this.xmlSerializer_=Gu()}getType(){return"xml"}readFeature(t,e){if(!t)return null;if("string"==typeof t){const i=xu(t);return this.readFeatureFromDocument(i,e)}return _u(t)?this.readFeatureFromDocument(t,e):this.readFeatureFromNode(t,e)}readFeatureFromDocument(t,e){const i=this.readFeaturesFromDocument(t,e);return i.length>0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=xu(t);return this.readFeaturesFromDocument(i,e)}return _u(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&c(i,this.readFeaturesFromNode(n,e));return i}readFeaturesFromNode(t,e){return B()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=xu(t);return this.readGeometryFromDocument(i,e)}return _u(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=xu(t);return this.readProjectionFromDocument(e)}return _u(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}}const O_="http://www.opengis.net/gml",N_=/^\s*$/;class D_ extends A_{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:Su(this.readFeaturesInternal),featureMembers:wu(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let n=null;if("FeatureCollection"==i)n=Mu([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const r=e[0];let s=r.featureType,o=r.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e<i;++e){const i=t.childNodes[e];if(1===i.nodeType){const t=i.nodeName.split(":").pop();if(!s.includes(t)){let e="",n=0;const r=i.namespaceURI;for(const t in o){if(o[t]===r){e=t;break}++n}e||(e=a+n,o[e]=r),s.push(e+":"+t)}}}"featureMember"!=i&&(r.featureType=s,r.featureNS=o)}if("string"==typeof o){const t=o;o={},o[l]=t}const h={},c=Array.isArray(s)?s:[s];for(const t in o){const e={};for(let n=0,r=c.length;n<r;++n){(c[n].includes(":")?c[n].split(":")[0]:l)===t&&(e[c[n].split(":").pop()]="featureMembers"==i?Su(this.readFeatureElement,this):wu(this.readFeatureElement,this))}h[o[t]]=e}n=Mu("featureMember"==i||"member"==i?void 0:[],h,t,e)}return null===n&&(n=[]),n}readGeometryOrExtent(t,e){const i=e[0];return i.srsName=t.firstElementChild.getAttribute("srsName"),i.srsDimension=t.firstElementChild.getAttribute("srsDimension"),Mu(null,this.GEOMETRY_PARSERS,t,e,this)}readExtentElement(t,e){const i=e[0],n=this.readGeometryOrExtent(t,e);return n?im(n,i):void 0}readGeometryElement(t,e){const i=e[0],n=this.readGeometryOrExtent(t,e);return n?em(n,!1,i):void 0}readFeatureElementInternal(t,e,i){let n;const r={};for(let s=t.firstElementChild;s;s=s.nextElementSibling){let t;const o=s.localName;0===s.childNodes.length||1===s.childNodes.length&&(3===s.firstChild.nodeType||4===s.firstChild.nodeType)?(t=pu(s,!1),N_.test(t)&&(t=void 0)):(i&&(t="boundedBy"===o?this.readExtentElement(s,e):this.readGeometryElement(s,e)),t?"boundedBy"!==o&&(n=o):t=this.readFeatureElementInternal(s,e,!1));const a=s.attributes.length;if(a>0){t={_content_:t};for(let e=0;e<a;e++){t[s.attributes[e].name]=s.attributes[e].value}}r[o]?(r[o]instanceof Array||(r[o]=[r[o]]),r[o].push(t)):r[o]=t}if(!i)return r;const s=new lt(r);n&&s.setGeometryName(n);const o=t.getAttribute("fid")||yu(t,this.namespace,"id");return o&&s.setId(o),s}readFeatureElement(t,e){return this.readFeatureElementInternal(t,e,!0)}readPoint(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i)return new Wn(i,"XYZ")}readMultiPoint(t,e){const i=Mu([],this.MULTIPOINT_PARSERS,t,e,this);if(i)return new kp(i)}readMultiLineString(t,e){const i=Mu([],this.MULTILINESTRING_PARSERS,t,e,this);if(i)return new Gp(i)}readMultiPolygon(t,e){const i=Mu([],this.MULTIPOLYGON_PARSERS,t,e,this);if(i)return new Bp(i)}pointMemberParser(t,e){Fu(this.POINTMEMBER_PARSERS,t,e,this)}lineStringMemberParser(t,e){Fu(this.LINESTRINGMEMBER_PARSERS,t,e,this)}polygonMemberParser(t,e){Fu(this.POLYGONMEMBER_PARSERS,t,e,this)}readLineString(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i){return new Dp(i,"XYZ")}}readFlatLinearRing(t,e){const i=Mu(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this);if(i)return i}readLinearRing(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i)return new Vn(i,"XYZ")}readPolygon(t,e){const i=Mu([null],this.FLAT_LINEAR_RINGS_PARSERS,t,e,this);if(i&&i[0]){const t=i[0],e=[t.length];let n,r;for(n=1,r=i.length;n<r;++n)c(t,i[n]),e.push(t.length);return new ur(t,"XYZ",e)}}readFlatCoordinatesFromNode(t,e){return Mu(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this)}readGeometryFromNode(t,e){const i=this.readGeometryElement(t,[this.getReadOptions(t,e||{})]);return i||null}readFeaturesFromNode(t,e){const i={featureType:this.featureType,featureNS:this.featureNS};i&&Object.assign(i,this.getReadOptions(t,e));return this.readFeaturesInternal(t,[i])||[]}readProjectionFromNode(t){return Ui(this.srsName?this.srsName:t.firstElementChild.getAttribute("srsName"))}}function G_(t){return k_(pu(t,!1))}function k_(t){const e=/^\s*(true|1)|(false|0)\s*$/.exec(t);if(e)return void 0!==e[1]||!1}function j_(t){const e=pu(t,!1),i=Date.parse(e);return isNaN(i)?void 0:i/1e3}function B_(t){return U_(pu(t,!1))}function U_(t){const e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(t);if(e)return parseFloat(e[1])}function z_(t){return X_(pu(t,!1))}function X_(t){const e=/^\s*(\d+)\s*$/.exec(t);if(e)return parseInt(e[1],10)}function V_(t){return pu(t,!1).trim()}function W_(t,e){H_(t,e?"1":"0")}function Z_(t,e){t.appendChild(ku().createCDATASection(e))}function Y_(t,e){const i=new Date(1e3*e),n=i.getUTCFullYear()+"-"+fi(i.getUTCMonth()+1,2)+"-"+fi(i.getUTCDate(),2)+"T"+fi(i.getUTCHours(),2)+":"+fi(i.getUTCMinutes(),2)+":"+fi(i.getUTCSeconds(),2)+"Z";t.appendChild(ku().createTextNode(n))}function K_(t,e){const i=e.toPrecision();t.appendChild(ku().createTextNode(i))}function q_(t,e){const i=e.toString();t.appendChild(ku().createTextNode(i))}function H_(t,e){t.appendChild(ku().createTextNode(e))}D_.prototype.namespace=O_,D_.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{}},D_.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{}},D_.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{}},D_.prototype.MULTIPOINT_PARSERS={"http://www.opengis.net/gml":{pointMember:Su(D_.prototype.pointMemberParser),pointMembers:Su(D_.prototype.pointMemberParser)}},D_.prototype.MULTILINESTRING_PARSERS={"http://www.opengis.net/gml":{lineStringMember:Su(D_.prototype.lineStringMemberParser),lineStringMembers:Su(D_.prototype.lineStringMemberParser)}},D_.prototype.MULTIPOLYGON_PARSERS={"http://www.opengis.net/gml":{polygonMember:Su(D_.prototype.polygonMemberParser),polygonMembers:Su(D_.prototype.polygonMemberParser)}},D_.prototype.POINTMEMBER_PARSERS={"http://www.opengis.net/gml":{Point:Su(D_.prototype.readFlatCoordinatesFromNode)}},D_.prototype.LINESTRINGMEMBER_PARSERS={"http://www.opengis.net/gml":{LineString:Su(D_.prototype.readLineString)}},D_.prototype.POLYGONMEMBER_PARSERS={"http://www.opengis.net/gml":{Polygon:Su(D_.prototype.readPolygon)}},D_.prototype.RING_PARSERS={"http://www.opengis.net/gml":{LinearRing:wu(D_.prototype.readFlatLinearRing)}};const $_={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};class J_ extends D_{constructor(t){super(t=t||{}),this.FEATURE_COLLECTION_PARSERS[O_].featureMember=Su(this.readFeaturesInternal),this.schemaLocation=t.schemaLocation?t.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd"}readFlatCoordinates(t,e){const i=pu(t,!1).replace(/^\s*|\s*$/g,""),n=e[0].srsName;let r="enu";if(n){const t=Ui(n);t&&(r=t.getAxisOrientation())}const s=i.trim().split(/\s+/),o=[];for(let t=0,e=s.length;t<e;t++){const e=s[t].split(/,+/),i=parseFloat(e[0]),n=parseFloat(e[1]),a=3===e.length?parseFloat(e[2]):0;"en"===r.substr(0,2)?o.push(i,n,a):o.push(n,i,a)}return o}readBox(t,e){const i=Mu([null],this.BOX_PARSERS_,t,e,this);return $t(i[1][0],i[1][1],i[1][3],i[1][4])}innerBoundaryIsParser(t,e){const i=Mu(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1].push(i)}}outerBoundaryIsParser(t,e){const i=Mu(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1][0]=i}}GEOMETRY_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.multiSurface,s=n.surface,o=n.multiCurve;return Array.isArray(t)?i="Envelope":"MultiPolygon"===(i=t.getType())&&!0===r?i="MultiSurface":"Polygon"===i&&!0===s?i="Surface":"MultiLineString"===i&&!0===o&&(i="MultiCurve"),fu("http://www.opengis.net/gml",i)}writeFeatureElement(t,e,i){const n=e.getId();n&&t.setAttribute("fid",n);const r=i[i.length-1],s=r.featureNS,o=e.getGeometryName();r.serializers||(r.serializers={},r.serializers[s]={});const a=[],l=[];if(e.hasProperties()){const t=e.getProperties();for(const e in t){const i=t[e];null!==i&&(a.push(e),l.push(i),e==o||"function"==typeof i.getSimplifiedGeometry?e in r.serializers[s]||(r.serializers[s][e]=Cu(this.writeGeometryElement,this)):e in r.serializers[s]||(r.serializers[s][e]=Cu(H_)))}}const h=Object.assign({},r);h.node=t,Ou(h,r.serializers,Ru(void 0,s),l,i,a)}writeCurveOrLineString(t,e,i){const n=i[i.length-1].srsName;if("LineStringSegment"!==t.nodeName&&n&&t.setAttribute("srsName",n),"LineString"===t.nodeName||"LineStringSegment"===t.nodeName){const n=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(n),this.writeCoordinates_(n,e,i)}else if("Curve"===t.nodeName){const n=fu(t.namespaceURI,"segments");t.appendChild(n),this.writeCurveSegments_(n,e,i)}}writeLineStringOrCurveMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeCurveOrLineString(n,e,i))}writeMultiCurveOrLineString(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.curve;s&&t.setAttribute("srsName",s);const a=e.getLineStrings();Ou({node:t,hasZ:r,srsName:s,curve:o},this.LINESTRINGORCURVEMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeGeometryElement(t,e,i){const n=i[i.length-1],r=Object.assign({},n);let s;r.node=t,s=Array.isArray(e)?im(e,n):em(e,!0,n),Ou(r,this.GEOMETRY_SERIALIZERS,this.GEOMETRY_NODE_FACTORY_,[s],i,void 0,this)}createCoordinatesNode_(t){const e=fu(t,"coordinates");return e.setAttribute("decimal","."),e.setAttribute("cs",","),e.setAttribute("ts"," "),e}writeCoordinates_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=e.getCoordinates(),a=o.length,l=new Array(a);for(let t=0;t<a;++t){const e=o[t];l[t]=this.getCoords_(e,s,r)}H_(t,l.join(" "))}writeCurveSegments_(t,e,i){const n=fu(t.namespaceURI,"LineStringSegment");t.appendChild(n),this.writeCurveOrLineString(n,e,i)}writeSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;if("PolygonPatch"!==t.nodeName&&s&&t.setAttribute("srsName",s),"Polygon"===t.nodeName||"PolygonPatch"===t.nodeName){const n=e.getLinearRings();Ou({node:t,hasZ:r,srsName:s},this.RING_SERIALIZERS,this.RING_NODE_FACTORY_,n,i,void 0,this)}else if("Surface"===t.nodeName){const n=fu(t.namespaceURI,"patches");t.appendChild(n),this.writeSurfacePatches_(n,e,i)}}RING_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.node,s=n.exteriorWritten;return void 0===s&&(n.exteriorWritten=!0),fu(r.namespaceURI,void 0!==s?"innerBoundaryIs":"outerBoundaryIs")}writeSurfacePatches_(t,e,i){const n=fu(t.namespaceURI,"PolygonPatch");t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i)}writeRing(t,e,i){const n=fu(t.namespaceURI,"LinearRing");t.appendChild(n),this.writeLinearRing(n,e,i)}getCoords_(t,e,i){let n="enu";e&&(n=Ui(e).getAxisOrientation());let r="en"===n.substr(0,2)?t[0]+","+t[1]:t[1]+","+t[0];if(i){r+=","+(t[2]||0)}return r}writePoint(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;s&&t.setAttribute("srsName",s);const o=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(o);const a=e.getCoordinates();H_(o,this.getCoords_(a,s,r))}writeMultiPoint(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;s&&t.setAttribute("srsName",s);const o=e.getPoints();Ou({node:t,hasZ:r,srsName:s},this.POINTMEMBER_SERIALIZERS,Ru("pointMember"),o,i,void 0,this)}writePointMember(t,e,i){const n=fu(t.namespaceURI,"Point");t.appendChild(n),this.writePoint(n,e,i)}writeLinearRing(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(r),this.writeCoordinates_(r,e,i)}writeMultiSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.surface;s&&t.setAttribute("srsName",s);const a=e.getPolygons();Ou({node:t,hasZ:r,srsName:s,surface:o},this.SURFACEORPOLYGONMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeSurfaceOrPolygonMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i))}writeEnvelope(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=[e[0]+" "+e[1],e[2]+" "+e[3]];Ou({node:t},this.ENVELOPE_SERIALIZERS,Pu,r,i,["lowerCorner","upperCorner"],this)}MULTIGEOMETRY_MEMBER_NODE_FACTORY_(t,e,i){const n=e[e.length-1].node;return fu("http://www.opengis.net/gml",$_[n.nodeName])}}J_.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{coordinates:wu(J_.prototype.readFlatCoordinates)}},J_.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{innerBoundaryIs:J_.prototype.innerBoundaryIsParser,outerBoundaryIs:J_.prototype.outerBoundaryIsParser}},J_.prototype.BOX_PARSERS_={"http://www.opengis.net/gml":{coordinates:Su(J_.prototype.readFlatCoordinates)}},J_.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{Point:wu(D_.prototype.readPoint),MultiPoint:wu(D_.prototype.readMultiPoint),LineString:wu(D_.prototype.readLineString),MultiLineString:wu(D_.prototype.readMultiLineString),LinearRing:wu(D_.prototype.readLinearRing),Polygon:wu(D_.prototype.readPolygon),MultiPolygon:wu(D_.prototype.readMultiPolygon),Box:wu(J_.prototype.readBox)}},J_.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml":{Curve:Cu(J_.prototype.writeCurveOrLineString),MultiCurve:Cu(J_.prototype.writeMultiCurveOrLineString),Point:Cu(J_.prototype.writePoint),MultiPoint:Cu(J_.prototype.writeMultiPoint),LineString:Cu(J_.prototype.writeCurveOrLineString),MultiLineString:Cu(J_.prototype.writeMultiCurveOrLineString),LinearRing:Cu(J_.prototype.writeLinearRing),Polygon:Cu(J_.prototype.writeSurfaceOrPolygon),MultiPolygon:Cu(J_.prototype.writeMultiSurfaceOrPolygon),Surface:Cu(J_.prototype.writeSurfaceOrPolygon),MultiSurface:Cu(J_.prototype.writeMultiSurfaceOrPolygon),Envelope:Cu(J_.prototype.writeEnvelope)}},J_.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{lineStringMember:Cu(J_.prototype.writeLineStringOrCurveMember),curveMember:Cu(J_.prototype.writeLineStringOrCurveMember)}},J_.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml":{outerBoundaryIs:Cu(J_.prototype.writeRing),innerBoundaryIs:Cu(J_.prototype.writeRing)}},J_.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{pointMember:Cu(J_.prototype.writePointMember)}},J_.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{surfaceMember:Cu(J_.prototype.writeSurfaceOrPolygonMember),polygonMember:Cu(J_.prototype.writeSurfaceOrPolygonMember)}},J_.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml":{lowerCorner:Cu(H_),upperCorner:Cu(H_)}};const Q_={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};class ty extends D_{constructor(t){super(t=t||{}),this.surface_=void 0!==t.surface&&t.surface,this.curve_=void 0!==t.curve&&t.curve,this.multiCurve_=void 0===t.multiCurve||t.multiCurve,this.multiSurface_=void 0===t.multiSurface||t.multiSurface,this.schemaLocation=t.schemaLocation?t.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd",this.hasZ=void 0!==t.hasZ&&t.hasZ}readMultiCurve(t,e){const i=Mu([],this.MULTICURVE_PARSERS,t,e,this);if(i){return new Gp(i)}}readFlatCurveRing(t,e){const i=Mu([],this.MULTICURVE_PARSERS,t,e,this),n=[];for(let t=0,e=i.length;t<e;++t)c(n,i[t].getFlatCoordinates());return n}readMultiSurface(t,e){const i=Mu([],this.MULTISURFACE_PARSERS,t,e,this);if(i)return new Bp(i)}curveMemberParser(t,e){Fu(this.CURVEMEMBER_PARSERS,t,e,this)}surfaceMemberParser(t,e){Fu(this.SURFACEMEMBER_PARSERS,t,e,this)}readPatch(t,e){return Mu([null],this.PATCHES_PARSERS,t,e,this)}readSegment(t,e){return Mu([],this.SEGMENTS_PARSERS,t,e,this)}readPolygonPatch(t,e){return Mu([null],this.FLAT_LINEAR_RINGS_PARSERS,t,e,this)}readLineStringSegment(t,e){return Mu([null],this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this)}interiorParser(t,e){const i=Mu(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1].push(i)}}exteriorParser(t,e){const i=Mu(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1][0]=i}}readSurface(t,e){const i=Mu([null],this.SURFACE_PARSERS,t,e,this);if(i&&i[0]){const t=i[0],e=[t.length];let n,r;for(n=1,r=i.length;n<r;++n)c(t,i[n]),e.push(t.length);return new ur(t,"XYZ",e)}}readCurve(t,e){const i=Mu([null],this.CURVE_PARSERS,t,e,this);if(i){return new Dp(i,"XYZ")}}readEnvelope(t,e){const i=Mu([null],this.ENVELOPE_PARSERS,t,e,this);return $t(i[1][0],i[1][1],i[2][0],i[2][1])}readFlatPos(t,e){let i=pu(t,!1);const n=/^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/,r=[];let s;for(;s=n.exec(i);)r.push(parseFloat(s[1])),i=i.substr(s[0].length);if(""!==i)return;const o=e[0].srsName;let a="enu";if(o){a=Ui(o).getAxisOrientation()}if("neu"===a){let t,e;for(t=0,e=r.length;t<e;t+=3){const e=r[t],i=r[t+1];r[t]=i,r[t+1]=e}}const l=r.length;return 2==l&&r.push(0),0!==l?r:void 0}readFlatPosList(t,e){const i=pu(t,!1).replace(/^\s*|\s*$/g,""),n=e[0],r=n.srsName,s=n.srsDimension;let o="enu";if(r){o=Ui(r).getAxisOrientation()}const a=i.split(/\s+/);let l,h,c,u=2;t.getAttribute("srsDimension")?u=X_(t.getAttribute("srsDimension")):t.getAttribute("dimension")?u=X_(t.getAttribute("dimension")):t.parentNode.getAttribute("srsDimension")?u=X_(t.parentNode.getAttribute("srsDimension")):s&&(u=X_(s));const d=[];for(let t=0,e=a.length;t<e;t+=u)l=parseFloat(a[t]),h=parseFloat(a[t+1]),c=3===u?parseFloat(a[t+2]):0,"en"===o.substr(0,2)?d.push(l,h,c):d.push(h,l,c);return d}writePos_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=r?"3":"2";t.setAttribute("srsDimension",s);const o=n.srsName;let a="enu";o&&(a=Ui(o).getAxisOrientation());const l=e.getCoordinates();let h;if(h="en"===a.substr(0,2)?l[0]+" "+l[1]:l[1]+" "+l[0],r){h+=" "+(l[2]||0)}H_(t,h)}getCoords_(t,e,i){let n="enu";e&&(n=Ui(e).getAxisOrientation());let r="en"===n.substr(0,2)?t[0]+" "+t[1]:t[1]+" "+t[0];if(i){r+=" "+(t[2]||0)}return r}writePosList_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=r?"3":"2";t.setAttribute("srsDimension",s);const o=n.srsName,a=e.getCoordinates(),l=a.length,h=new Array(l);let c;for(let t=0;t<l;++t)c=a[t],h[t]=this.getCoords_(c,o,r);H_(t,h.join(" "))}writePoint(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=fu(t.namespaceURI,"pos");t.appendChild(r),this.writePos_(r,e,i)}writeEnvelope(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=[e[0]+" "+e[1],e[2]+" "+e[3]];Ou({node:t},this.ENVELOPE_SERIALIZERS,Pu,r,i,["lowerCorner","upperCorner"],this)}writeLinearRing(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=fu(t.namespaceURI,"posList");t.appendChild(r),this.writePosList_(r,e,i)}RING_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.node,s=n.exteriorWritten;return void 0===s&&(n.exteriorWritten=!0),fu(r.namespaceURI,void 0!==s?"interior":"exterior")}writeSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;if("PolygonPatch"!==t.nodeName&&s&&t.setAttribute("srsName",s),"Polygon"===t.nodeName||"PolygonPatch"===t.nodeName){const n=e.getLinearRings();Ou({node:t,hasZ:r,srsName:s},this.RING_SERIALIZERS,this.RING_NODE_FACTORY_,n,i,void 0,this)}else if("Surface"===t.nodeName){const n=fu(t.namespaceURI,"patches");t.appendChild(n),this.writeSurfacePatches_(n,e,i)}}writeCurveOrLineString(t,e,i){const n=i[i.length-1].srsName;if("LineStringSegment"!==t.nodeName&&n&&t.setAttribute("srsName",n),"LineString"===t.nodeName||"LineStringSegment"===t.nodeName){const n=fu(t.namespaceURI,"posList");t.appendChild(n),this.writePosList_(n,e,i)}else if("Curve"===t.nodeName){const n=fu(t.namespaceURI,"segments");t.appendChild(n),this.writeCurveSegments_(n,e,i)}}writeMultiSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.surface;s&&t.setAttribute("srsName",s);const a=e.getPolygons();Ou({node:t,hasZ:r,srsName:s,surface:o},this.SURFACEORPOLYGONMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeMultiPoint(t,e,i){const n=i[i.length-1],r=n.srsName,s=n.hasZ;r&&t.setAttribute("srsName",r);const o=e.getPoints();Ou({node:t,hasZ:s,srsName:r},this.POINTMEMBER_SERIALIZERS,Ru("pointMember"),o,i,void 0,this)}writeMultiCurveOrLineString(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.curve;s&&t.setAttribute("srsName",s);const a=e.getLineStrings();Ou({node:t,hasZ:r,srsName:s,curve:o},this.LINESTRINGORCURVEMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeRing(t,e,i){const n=fu(t.namespaceURI,"LinearRing");t.appendChild(n),this.writeLinearRing(n,e,i)}writeSurfaceOrPolygonMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i))}writePointMember(t,e,i){const n=fu(t.namespaceURI,"Point");t.appendChild(n),this.writePoint(n,e,i)}writeLineStringOrCurveMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeCurveOrLineString(n,e,i))}writeSurfacePatches_(t,e,i){const n=fu(t.namespaceURI,"PolygonPatch");t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i)}writeCurveSegments_(t,e,i){const n=fu(t.namespaceURI,"LineStringSegment");t.appendChild(n),this.writeCurveOrLineString(n,e,i)}writeGeometryElement(t,e,i){const n=i[i.length-1],r=Object.assign({},n);let s;r.node=t,s=Array.isArray(e)?im(e,n):em(e,!0,n),Ou(r,this.GEOMETRY_SERIALIZERS,this.GEOMETRY_NODE_FACTORY_,[s],i,void 0,this)}writeFeatureElement(t,e,i){const n=e.getId();n&&t.setAttribute("fid",n);const r=i[i.length-1],s=r.featureNS,o=e.getGeometryName();r.serializers||(r.serializers={},r.serializers[s]={});const a=[],l=[];if(e.hasProperties()){const t=e.getProperties();for(const e in t){const i=t[e];null!==i&&(a.push(e),l.push(i),e==o||"function"==typeof i.getSimplifiedGeometry?e in r.serializers[s]||(r.serializers[s][e]=Cu(this.writeGeometryElement,this)):e in r.serializers[s]||(r.serializers[s][e]=Cu(H_)))}}const h=Object.assign({},r);h.node=t,Ou(h,r.serializers,Ru(void 0,s),l,i,a)}writeFeatureMembers_(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o={};o[s]={},o[s][r]=Cu(this.writeFeatureElement,this);const a=Object.assign({},n);a.node=t,Ou(a,o,Ru(r,s),e,i)}MULTIGEOMETRY_MEMBER_NODE_FACTORY_(t,e,i){const n=e[e.length-1].node;return fu(this.namespace,Q_[n.nodeName])}GEOMETRY_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.multiSurface,s=n.surface,o=n.curve,a=n.multiCurve;return Array.isArray(t)?i="Envelope":"MultiPolygon"===(i=t.getType())&&!0===r?i="MultiSurface":"Polygon"===i&&!0===s?i="Surface":"LineString"===i&&!0===o?i="Curve":"MultiLineString"===i&&!0===a&&(i="MultiCurve"),fu(this.namespace,i)}writeGeometryNode(t,e){e=this.adaptOptions(e);const i=fu(this.namespace,"geom"),n={node:i,hasZ:this.hasZ,srsName:this.srsName,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_};return e&&Object.assign(n,e),this.writeGeometryElement(i,t,[n]),i}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=fu(this.namespace,"featureMembers");i.setAttributeNS(gu,"xsi:schemaLocation",this.schemaLocation);const n={srsName:this.srsName,hasZ:this.hasZ,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_,featureNS:this.featureNS,featureType:this.featureType};return e&&Object.assign(n,e),this.writeFeatureMembers_(i,t,[n]),i}}ty.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{pos:wu(ty.prototype.readFlatPos),posList:wu(ty.prototype.readFlatPosList),coordinates:wu(J_.prototype.readFlatCoordinates)}},ty.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{interior:ty.prototype.interiorParser,exterior:ty.prototype.exteriorParser}},ty.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{Point:wu(D_.prototype.readPoint),MultiPoint:wu(D_.prototype.readMultiPoint),LineString:wu(D_.prototype.readLineString),MultiLineString:wu(D_.prototype.readMultiLineString),LinearRing:wu(D_.prototype.readLinearRing),Polygon:wu(D_.prototype.readPolygon),MultiPolygon:wu(D_.prototype.readMultiPolygon),Surface:wu(ty.prototype.readSurface),MultiSurface:wu(ty.prototype.readMultiSurface),Curve:wu(ty.prototype.readCurve),MultiCurve:wu(ty.prototype.readMultiCurve),Envelope:wu(ty.prototype.readEnvelope)}},ty.prototype.MULTICURVE_PARSERS={"http://www.opengis.net/gml":{curveMember:Su(ty.prototype.curveMemberParser),curveMembers:Su(ty.prototype.curveMemberParser)}},ty.prototype.MULTISURFACE_PARSERS={"http://www.opengis.net/gml":{surfaceMember:Su(ty.prototype.surfaceMemberParser),surfaceMembers:Su(ty.prototype.surfaceMemberParser)}},ty.prototype.CURVEMEMBER_PARSERS={"http://www.opengis.net/gml":{LineString:Su(D_.prototype.readLineString),Curve:Su(ty.prototype.readCurve)}},ty.prototype.SURFACEMEMBER_PARSERS={"http://www.opengis.net/gml":{Polygon:Su(D_.prototype.readPolygon),Surface:Su(ty.prototype.readSurface)}},ty.prototype.SURFACE_PARSERS={"http://www.opengis.net/gml":{patches:wu(ty.prototype.readPatch)}},ty.prototype.CURVE_PARSERS={"http://www.opengis.net/gml":{segments:wu(ty.prototype.readSegment)}},ty.prototype.ENVELOPE_PARSERS={"http://www.opengis.net/gml":{lowerCorner:Su(ty.prototype.readFlatPosList),upperCorner:Su(ty.prototype.readFlatPosList)}},ty.prototype.PATCHES_PARSERS={"http://www.opengis.net/gml":{PolygonPatch:wu(ty.prototype.readPolygonPatch)}},ty.prototype.SEGMENTS_PARSERS={"http://www.opengis.net/gml":{LineStringSegment:vu(ty.prototype.readLineStringSegment)}},D_.prototype.RING_PARSERS={"http://www.opengis.net/gml":{LinearRing:wu(D_.prototype.readFlatLinearRing),Ring:wu(ty.prototype.readFlatCurveRing)}},ty.prototype.writeFeatures,ty.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml":{exterior:Cu(ty.prototype.writeRing),interior:Cu(ty.prototype.writeRing)}},ty.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml":{lowerCorner:Cu(H_),upperCorner:Cu(H_)}},ty.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{surfaceMember:Cu(ty.prototype.writeSurfaceOrPolygonMember),polygonMember:Cu(ty.prototype.writeSurfaceOrPolygonMember)}},ty.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{pointMember:Cu(ty.prototype.writePointMember)}},ty.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{lineStringMember:Cu(ty.prototype.writeLineStringOrCurveMember),curveMember:Cu(ty.prototype.writeLineStringOrCurveMember)}},ty.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml":{Curve:Cu(ty.prototype.writeCurveOrLineString),MultiCurve:Cu(ty.prototype.writeMultiCurveOrLineString),Point:Cu(ty.prototype.writePoint),MultiPoint:Cu(ty.prototype.writeMultiPoint),LineString:Cu(ty.prototype.writeCurveOrLineString),MultiLineString:Cu(ty.prototype.writeMultiCurveOrLineString),LinearRing:Cu(ty.prototype.writeLinearRing),Polygon:Cu(ty.prototype.writeSurfaceOrPolygon),MultiPolygon:Cu(ty.prototype.writeMultiSurfaceOrPolygon),Surface:Cu(ty.prototype.writeSurfaceOrPolygon),MultiSurface:Cu(ty.prototype.writeMultiSurfaceOrPolygon),Envelope:Cu(ty.prototype.writeEnvelope)}};const ey=ty;ey.prototype.writeFeatures,ey.prototype.writeFeaturesNode;class iy extends ty{constructor(t){super(t=t||{}),this.schemaLocation=t.schemaLocation?t.schemaLocation:this.namespace+" http://schemas.opengis.net/gml/3.2.1/gml.xsd"}}iy.prototype.namespace="http://www.opengis.net/gml/3.2",iy.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml/3.2":{pos:wu(ty.prototype.readFlatPos),posList:wu(ty.prototype.readFlatPosList),coordinates:wu(J_.prototype.readFlatCoordinates)}},iy.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml/3.2":{interior:ty.prototype.interiorParser,exterior:ty.prototype.exteriorParser}},iy.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml/3.2":{Point:wu(D_.prototype.readPoint),MultiPoint:wu(D_.prototype.readMultiPoint),LineString:wu(D_.prototype.readLineString),MultiLineString:wu(D_.prototype.readMultiLineString),LinearRing:wu(D_.prototype.readLinearRing),Polygon:wu(D_.prototype.readPolygon),MultiPolygon:wu(D_.prototype.readMultiPolygon),Surface:wu(iy.prototype.readSurface),MultiSurface:wu(ty.prototype.readMultiSurface),Curve:wu(iy.prototype.readCurve),MultiCurve:wu(ty.prototype.readMultiCurve),Envelope:wu(iy.prototype.readEnvelope)}},iy.prototype.MULTICURVE_PARSERS={"http://www.opengis.net/gml/3.2":{curveMember:Su(ty.prototype.curveMemberParser),curveMembers:Su(ty.prototype.curveMemberParser)}},iy.prototype.MULTISURFACE_PARSERS={"http://www.opengis.net/gml/3.2":{surfaceMember:Su(ty.prototype.surfaceMemberParser),surfaceMembers:Su(ty.prototype.surfaceMemberParser)}},iy.prototype.CURVEMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{LineString:Su(D_.prototype.readLineString),Curve:Su(ty.prototype.readCurve)}},iy.prototype.SURFACEMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Polygon:Su(D_.prototype.readPolygon),Surface:Su(ty.prototype.readSurface)}},iy.prototype.SURFACE_PARSERS={"http://www.opengis.net/gml/3.2":{patches:wu(ty.prototype.readPatch)}},iy.prototype.CURVE_PARSERS={"http://www.opengis.net/gml/3.2":{segments:wu(ty.prototype.readSegment)}},iy.prototype.ENVELOPE_PARSERS={"http://www.opengis.net/gml/3.2":{lowerCorner:Su(ty.prototype.readFlatPosList),upperCorner:Su(ty.prototype.readFlatPosList)}},iy.prototype.PATCHES_PARSERS={"http://www.opengis.net/gml/3.2":{PolygonPatch:wu(ty.prototype.readPolygonPatch)}},iy.prototype.SEGMENTS_PARSERS={"http://www.opengis.net/gml/3.2":{LineStringSegment:vu(ty.prototype.readLineStringSegment)}},iy.prototype.MULTIPOINT_PARSERS={"http://www.opengis.net/gml/3.2":{pointMember:Su(D_.prototype.pointMemberParser),pointMembers:Su(D_.prototype.pointMemberParser)}},iy.prototype.MULTILINESTRING_PARSERS={"http://www.opengis.net/gml/3.2":{lineStringMember:Su(D_.prototype.lineStringMemberParser),lineStringMembers:Su(D_.prototype.lineStringMemberParser)}},iy.prototype.MULTIPOLYGON_PARSERS={"http://www.opengis.net/gml/3.2":{polygonMember:Su(D_.prototype.polygonMemberParser),polygonMembers:Su(D_.prototype.polygonMemberParser)}},iy.prototype.POINTMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Point:Su(D_.prototype.readFlatCoordinatesFromNode)}},iy.prototype.LINESTRINGMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{LineString:Su(D_.prototype.readLineString)}},iy.prototype.POLYGONMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Polygon:Su(D_.prototype.readPolygon)}},iy.prototype.RING_PARSERS={"http://www.opengis.net/gml/3.2":{LinearRing:wu(D_.prototype.readFlatLinearRing),Ring:wu(iy.prototype.readFlatCurveRing)}},iy.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml/3.2":{exterior:Cu(ty.prototype.writeRing),interior:Cu(ty.prototype.writeRing)}},iy.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml/3.2":{lowerCorner:Cu(H_),upperCorner:Cu(H_)}},iy.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{surfaceMember:Cu(ty.prototype.writeSurfaceOrPolygonMember),polygonMember:Cu(ty.prototype.writeSurfaceOrPolygonMember)}},iy.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{pointMember:Cu(ty.prototype.writePointMember)}},iy.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{lineStringMember:Cu(ty.prototype.writeLineStringOrCurveMember),curveMember:Cu(ty.prototype.writeLineStringOrCurveMember)}},iy.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml/3.2":{Curve:Cu(ty.prototype.writeCurveOrLineString),MultiCurve:Cu(ty.prototype.writeMultiCurveOrLineString),Point:Cu(iy.prototype.writePoint),MultiPoint:Cu(ty.prototype.writeMultiPoint),LineString:Cu(ty.prototype.writeCurveOrLineString),MultiLineString:Cu(ty.prototype.writeMultiCurveOrLineString),LinearRing:Cu(ty.prototype.writeLinearRing),Polygon:Cu(ty.prototype.writeSurfaceOrPolygon),MultiPolygon:Cu(ty.prototype.writeMultiSurfaceOrPolygon),Surface:Cu(ty.prototype.writeSurfaceOrPolygon),MultiSurface:Cu(ty.prototype.writeMultiSurfaceOrPolygon),Envelope:Cu(ty.prototype.writeEnvelope)}};const ny=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"],ry={rte:Fy,trk:My,wpt:Ay},sy=Lu(ny,{rte:Su(Fy),trk:Su(My),wpt:Su(Ay)}),oy=Lu(ny,{text:Eu(V_,"linkText"),type:Eu(V_,"linkType")}),ay=Lu(ny,{rte:Cu((function(t,e,i){const n=i[0],r=e.getProperties(),s={node:t};s.properties=r;const o=e.getGeometry();if("LineString"==o.getType()){const t=em(o,!0,n);s.geometryLayout=t.getLayout(),r.rtept=t.getCoordinates()}const a=i[i.length-1].node,l=my[a.namespaceURI],h=Iu(r,l);Ou(s,_y,Pu,h,i,l)})),trk:Cu((function(t,e,i){const n=i[0],r=e.getProperties(),s={node:t};s.properties=r;const o=e.getGeometry();if("MultiLineString"==o.getType()){const t=em(o,!0,n);r.trkseg=t.getLineStrings()}const a=i[i.length-1].node,l=xy[a.namespaceURI],h=Iu(r,l);Ou(s,vy,Pu,h,i,l)})),wpt:Cu((function(t,e,i){const n=i[0],r=i[i.length-1];r.properties=e.getProperties();const s=e.getGeometry();if("Point"==s.getType()){const e=em(s,!0,n);r.geometryLayout=e.getLayout(),Ny(t,e.getCoordinates(),i)}}))});const ly=Lu(ny,{name:Eu(V_),cmt:Eu(V_),desc:Eu(V_),src:Eu(V_),link:Iy,number:Eu(z_),extensions:Ly,type:Eu(V_),rtept:function(t,e){const i=Mu({},hy,t,e);if(i){const n=e[e.length-1],r=n.flatCoordinates,s=n.layoutOptions;Ry(r,s,t,i)}}}),hy=Lu(ny,{ele:Eu(B_),time:Eu(j_)}),cy=Lu(ny,{name:Eu(V_),cmt:Eu(V_),desc:Eu(V_),src:Eu(V_),link:Iy,number:Eu(z_),type:Eu(V_),extensions:Ly,trkseg:function(t,e){const i=e[e.length-1];Fu(uy,t,e);const n=i.flatCoordinates;i.ends.push(n.length)}}),uy=Lu(ny,{trkpt:function(t,e){const i=Mu({},dy,t,e);if(i){const n=e[e.length-1],r=n.flatCoordinates,s=n.layoutOptions;Ry(r,s,t,i)}}}),dy=Lu(ny,{ele:Eu(B_),time:Eu(j_)}),gy=Lu(ny,{ele:Eu(B_),time:Eu(j_),magvar:Eu(B_),geoidheight:Eu(B_),name:Eu(V_),cmt:Eu(V_),desc:Eu(V_),src:Eu(V_),link:Iy,sym:Eu(V_),type:Eu(V_),fix:Eu(V_),sat:Eu(z_),hdop:Eu(B_),vdop:Eu(B_),pdop:Eu(B_),ageofdgpsdata:Eu(B_),dgpsid:Eu(z_),extensions:Ly}),fy=["text","type"],py=Lu(ny,{text:Cu(H_),type:Cu(H_)}),my=Lu(ny,["name","cmt","desc","src","link","number","type","rtept"]),_y=Lu(ny,{name:Cu(H_),cmt:Cu(H_),desc:Cu(H_),src:Cu(H_),link:Cu(Oy),number:Cu(q_),type:Cu(H_),rtept:bu(Cu(Ny))}),yy=Lu(ny,["ele","time"]),xy=Lu(ny,["name","cmt","desc","src","link","number","type","trkseg"]),vy=Lu(ny,{name:Cu(H_),cmt:Cu(H_),desc:Cu(H_),src:Cu(H_),link:Cu(Oy),number:Cu(q_),type:Cu(H_),trkseg:bu(Cu((function(t,e,i){const n={node:t};n.geometryLayout=e.getLayout(),n.properties={},Ou(n,wy,Sy,e.getCoordinates(),i)})))}),Sy=Ru("trkpt"),wy=Lu(ny,{trkpt:Cu(Ny)}),Ty=Lu(ny,["ele","time","magvar","geoidheight","name","cmt","desc","src","link","sym","type","fix","sat","hdop","vdop","pdop","ageofdgpsdata","dgpsid"]),Ey=Lu(ny,{ele:Cu(K_),time:Cu(Y_),magvar:Cu(K_),geoidheight:Cu(K_),name:Cu(H_),cmt:Cu(H_),desc:Cu(H_),src:Cu(H_),link:Cu(Oy),sym:Cu(H_),type:Cu(H_),fix:Cu(H_),sat:Cu(q_),hdop:Cu(K_),vdop:Cu(K_),pdop:Cu(K_),ageofdgpsdata:Cu(K_),dgpsid:Cu(q_)}),Cy={Point:"wpt",LineString:"rte",MultiLineString:"trk"};function by(t,e,i){const n=t.getGeometry();if(n){const t=Cy[n.getType()];if(t){return fu(e[e.length-1].node.namespaceURI,t)}}}function Ry(t,e,i,n){return t.push(parseFloat(i.getAttribute("lon")),parseFloat(i.getAttribute("lat"))),"ele"in n?(t.push(n.ele),delete n.ele,e.hasZ=!0):t.push(0),"time"in n?(t.push(n.time),delete n.time,e.hasM=!0):t.push(0),t}function Py(t,e,i){let n="XY",r=2;if(t.hasZ&&t.hasM?(n="XYZM",r=4):t.hasZ?(n="XYZ",r=3):t.hasM&&(n="XYM",r=3),4!==r){for(let i=0,n=e.length/4;i<n;i++)e[i*r]=e[4*i],e[i*r+1]=e[4*i+1],t.hasZ&&(e[i*r+2]=e[4*i+2]),t.hasM&&(e[i*r+2]=e[4*i+3]);if(e.length=e.length/4*r,i)for(let t=0,e=i.length;t<e;t++)i[t]=i[t]/4*r}return n}function Iy(t,e){const i=e[e.length-1],n=t.getAttribute("href");null!==n&&(i.link=n),Fu(oy,t,e)}function Ly(t,e){e[e.length-1].extensionsNode_=t}function Fy(t,e){const i=e[0],n=Mu({flatCoordinates:[],layoutOptions:{}},ly,t,e);if(!n)return;const r=n.flatCoordinates;delete n.flatCoordinates;const s=n.layoutOptions;delete n.layoutOptions;const o=Py(s,r),a=new Dp(r,o);em(a,!1,i);const l=new lt(a);return l.setProperties(n,!0),l}function My(t,e){const i=e[0],n=Mu({flatCoordinates:[],ends:[],layoutOptions:{}},cy,t,e);if(!n)return;const r=n.flatCoordinates;delete n.flatCoordinates;const s=n.ends;delete n.ends;const o=n.layoutOptions;delete n.layoutOptions;const a=Py(o,r,s),l=new Gp(r,a,s);em(l,!1,i);const h=new lt(l);return h.setProperties(n,!0),h}function Ay(t,e){const i=e[0],n=Mu({},gy,t,e);if(!n)return;const r={},s=Ry([],r,t,n),o=Py(r,s),a=new Wn(s,o);em(a,!1,i);const l=new lt(a);return l.setProperties(n,!0),l}function Oy(t,e,i){t.setAttribute("href",e);const n=i[i.length-1].properties,r=[n.linkText,n.linkType];Ou({node:t},py,Pu,r,i,fy)}function Ny(t,e,i){const n=i[i.length-1],r=n.node.namespaceURI,s=n.properties;t.setAttributeNS(null,"lat",String(e[1])),t.setAttributeNS(null,"lon",String(e[0]));switch(n.geometryLayout){case"XYZM":0!==e[3]&&(s.time=e[3]);case"XYZ":0!==e[2]&&(s.ele=e[2]);break;case"XYM":0!==e[2]&&(s.time=e[2])}const o="rtept"==t.nodeName?yy[r]:Ty[r],a=Iu(s,o);Ou({node:t,properties:s},Ey,Pu,a,i,o)}function Dy(t,e){if(!t)return null;let i;switch(t.type){case"Point":i=function(t){return new Wn(t.coordinates)}(t);break;case"LineString":i=function(t){return new Dp(t.coordinates)}(t);break;case"Polygon":i=function(t){return new ur(t.coordinates)}(t);break;case"MultiPoint":i=function(t){return new kp(t.coordinates)}(t);break;case"MultiLineString":i=function(t){return new Gp(t.coordinates)}(t);break;case"MultiPolygon":i=function(t){return new Bp(t.coordinates)}(t);break;case"GeometryCollection":i=function(t,e){const i=t.geometries.map((function(t){return Dy(t,e)}));return new Fp(i)}(t);break;default:throw new Error("Unsupported GeoJSON type: "+t.type)}return em(i,!1,e)}function Gy(t,e){const i=(t=em(t,!0,e)).getType();let n;switch(i){case"Point":n=function(t,e){return{type:"Point",coordinates:t.getCoordinates()}}(t);break;case"LineString":n=function(t,e){return{type:"LineString",coordinates:t.getCoordinates()}}(t);break;case"Polygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"Polygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"MultiPoint":n=function(t,e){return{type:"MultiPoint",coordinates:t.getCoordinates()}}(t);break;case"MultiLineString":n=function(t,e){return{type:"MultiLineString",coordinates:t.getCoordinates()}}(t);break;case"MultiPolygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"MultiPolygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"GeometryCollection":n=function(t,e){delete(e=Object.assign({},e)).featureProjection;return{type:"GeometryCollection",geometries:t.getGeometriesArray().map((function(t){return Gy(t,e)}))}}(t,e);break;case"Circle":n={type:"GeometryCollection",geometries:[]};break;default:throw new Error("Unsupported geometry type: "+i)}return n}class ky extends tm{constructor(){super()}getType(){return"text"}readFeature(t,e){return this.readFeatureFromText(jy(t),this.adaptOptions(e))}readFeatureFromText(t,e){return B()}readFeatures(t,e){return this.readFeaturesFromText(jy(t),this.adaptOptions(e))}readFeaturesFromText(t,e){return B()}readGeometry(t,e){return this.readGeometryFromText(jy(t),this.adaptOptions(e))}readGeometryFromText(t,e){return B()}readProjection(t){return this.readProjectionFromText(jy(t))}readProjectionFromText(t){return this.dataProjection}writeFeature(t,e){return this.writeFeatureText(t,this.adaptOptions(e))}writeFeatureText(t,e){return B()}writeFeatures(t,e){return this.writeFeaturesText(t,this.adaptOptions(e))}writeFeaturesText(t,e){return B()}writeGeometry(t,e){return this.writeGeometryText(t,this.adaptOptions(e))}writeGeometryText(t,e){return B()}}function jy(t){return"string"==typeof t?t:""}const By=/^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,Uy=/^H.([A-Z]{3}).*?:(.*)/,zy=/^HFDTE(\d{2})(\d{2})(\d{2})/,Xy=/\r\n|\r|\n/;const Vy=["http://www.google.com/kml/ext/2.2"],Wy=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],Zy={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},Yy=Lu(Wy,{ExtendedData:qx,Region:Hx,MultiGeometry:Eu(Bx,"geometry"),LineString:Eu(Gx,"geometry"),LinearRing:Eu(kx,"geometry"),Point:Eu(Ux,"geometry"),Polygon:Eu(Xx,"geometry"),Style:Eu(Wx),StyleMap:function(t,e){const i=Tx.call(this,t,e);if(!i)return;const n=e[e.length-1];Array.isArray(i)?n.Style=i:"string"==typeof i?n.styleUrl=i:at(!1,38)},address:Eu(V_),description:Eu(V_),name:Eu(V_),open:Eu(G_),phoneNumber:Eu(V_),styleUrl:Eu(vx),visibility:Eu(G_)},Lu(Vy,{MultiTrack:Eu((function(t,e){const i=Mu([],Lx,t,e);if(!i)return;return new Gp(i)}),"geometry"),Track:Eu(Mx,"geometry")})),Ky=Lu(Wy,{ExtendedData:qx,Region:Hx,Link:function(t,e){Fu(qy,t,e)},address:Eu(V_),description:Eu(V_),name:Eu(V_),open:Eu(G_),phoneNumber:Eu(V_),visibility:Eu(G_)}),qy=Lu(Wy,{href:Eu(xx)}),Hy=Lu(Wy,{LatLonAltBox:function(t,e){const i=Mu({},Qx,t,e);if(!i)return;const n=e[e.length-1],r=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)];n.extent=r,n.altitudeMode=i.altitudeMode,n.minAltitude=parseFloat(i.minAltitude),n.maxAltitude=parseFloat(i.maxAltitude)},Lod:function(t,e){const i=Mu({},tv,t,e);if(!i)return;const n=e[e.length-1];n.minLodPixels=parseFloat(i.minLodPixels),n.maxLodPixels=parseFloat(i.maxLodPixels),n.minFadeExtent=parseFloat(i.minFadeExtent),n.maxFadeExtent=parseFloat(i.maxFadeExtent)}}),$y=Lu(Wy,["Document","Placemark"]),Jy=Lu(Wy,{Document:Cu((function(t,e,i){Ou({node:t},sv,ov,e,i,void 0,this)})),Placemark:Cu(Lv)});let Qy,tx,ex,ix,nx,rx,sx=null;let ox,ax=null;let lx,hx=null;let cx=null;let ux=null;let dx,gx=null;function fx(t){return 32/Math.min(t[0],t[1])}function px(t){return t}function mx(t,e,i){return Array.isArray(t)?t:"string"==typeof t?mx(i[t],e,i):e}function _x(t){const e=pu(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){const t=i[1];return[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]}}function yx(t){let e=pu(t,!1);const i=[];e=e.replace(/\s*,\s*/g,",");const n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;let r;for(;r=n.exec(e);){const t=parseFloat(r[1]),n=parseFloat(r[2]),s=r[3]?parseFloat(r[3]):0;i.push(t,n,s),e=e.substr(r[0].length)}if(""===e)return i}function xx(t){const e=pu(t,!1).trim();let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function vx(t){const e=pu(t,!1).trim().replace(/^(?!.*#)/,"#");let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Sx(t){return B_(t)}const wx=Lu(Wy,{Pair:function(t,e){const i=Mu({},$x,t,e,this);if(!i)return;const n=i.key;if(n&&"normal"==n){const t=i.styleUrl;t&&(e[e.length-1]=t);const n=i.Style;n&&(e[e.length-1]=n)}}});function Tx(t,e){return Mu(void 0,wx,t,e,this)}const Ex=Lu(Wy,{Icon:Eu((function(t,e){const i=Mu({},Ax,t,e);if(i)return i;return null})),color:Eu(_x),heading:Eu(B_),hotSpot:Eu((function(t){const e=t.getAttribute("xunits"),i=t.getAttribute("yunits");let n;return n="insetPixels"!==e?"insetPixels"!==i?"bottom-left":"top-left":"insetPixels"!==i?"bottom-right":"top-right",{x:parseFloat(t.getAttribute("x")),xunits:Zy[e],y:parseFloat(t.getAttribute("y")),yunits:Zy[i],origin:n}})),scale:Eu(Sx)});const Cx=Lu(Wy,{color:Eu(_x),scale:Eu(Sx)});const bx=Lu(Wy,{color:Eu(_x),width:Eu(B_)});const Rx=Lu(Wy,{color:Eu(_x),fill:Eu(G_),outline:Eu(G_)});const Px=Lu(Wy,{coordinates:wu(yx)});function Ix(t,e){return Mu(null,Px,t,e)}const Lx=Lu(Vy,{Track:Su(Mx)});const Fx=Lu(Wy,{when:function(t,e){const i=e[e.length-1].whens,n=pu(t,!1),r=Date.parse(n);i.push(isNaN(r)?0:r)}},Lu(Vy,{coord:function(t,e){const i=e[e.length-1].coordinates,n=pu(t,!1),r=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);if(r){const t=parseFloat(r[1]),e=parseFloat(r[2]),n=parseFloat(r[3]);i.push([t,e,n])}else i.push([])}}));function Mx(t,e){const i=Mu({coordinates:[],whens:[]},Fx,t,e);if(!i)return;const n=[],r=i.coordinates,s=i.whens;for(let t=0,e=Math.min(r.length,s.length);t<e;++t)3==r[t].length&&n.push(r[t][0],r[t][1],r[t][2],s[t]);return new Dp(n,"XYZM")}const Ax=Lu(Wy,{href:Eu(xx)},Lu(Vy,{x:Eu(B_),y:Eu(B_),w:Eu(B_),h:Eu(B_)}));const Ox=Lu(Wy,{coordinates:wu(yx)});function Nx(t,e){return Mu(null,Ox,t,e)}const Dx=Lu(Wy,{extrude:Eu(G_),tessellate:Eu(G_),altitudeMode:Eu(V_)});function Gx(t,e){const i=Mu({},Dx,t,e),n=Nx(t,e);if(n){const t=new Dp(n,"XYZ");return t.setProperties(i,!0),t}}function kx(t,e){const i=Mu({},Dx,t,e),n=Nx(t,e);if(n){const t=new ur(n,"XYZ",[n.length]);return t.setProperties(i,!0),t}}const jx=Lu(Wy,{LineString:Su(Gx),LinearRing:Su(kx),MultiGeometry:Su(Bx),Point:Su(Ux),Polygon:Su(Xx)});function Bx(t,e){const i=Mu([],jx,t,e);if(!i)return null;if(0===i.length)return new Fp(i);let n,r=!0;const s=i[0].getType();let o;for(let t=1,e=i.length;t<e;++t)if(o=i[t],o.getType()!=s){r=!1;break}if(r){let t,e;if("Point"==s){const r=i[0];t=r.getLayout(),e=r.getFlatCoordinates();for(let t=1,n=i.length;t<n;++t)o=i[t],c(e,o.getFlatCoordinates());n=new kp(e,t),Zx(n,i)}else"LineString"==s?(n=new Gp(i),Zx(n,i)):"Polygon"==s?(n=new Bp(i),Zx(n,i)):"GeometryCollection"==s?n=new Fp(i):at(!1,37)}else n=new Fp(i);return n}function Ux(t,e){const i=Mu({},Dx,t,e),n=Nx(t,e);if(n){const t=new Wn(n,"XYZ");return t.setProperties(i,!0),t}}const zx=Lu(Wy,{innerBoundaryIs:function(t,e){const i=Mu([],ev,t,e);if(i.length>0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=Mu(void 0,iv,t,e);if(i){e[e.length-1][0]=i}}});function Xx(t,e){const i=Mu({},Dx,t,e),n=Mu([null],zx,t,e);if(n&&n[0]){const t=n[0],e=[t.length];for(let i=1,r=n.length;i<r;++i)c(t,n[i]),e.push(t.length);const r=new ur(t,"XYZ",e);return r.setProperties(i,!0),r}}const Vx=Lu(Wy,{IconStyle:function(t,e){const i=Mu({},Ex,t,e);if(!i)return;const n=e[e.length-1],r="Icon"in i?i.Icon:{},s=!("Icon"in i)||Object.keys(r).length>0;let o;const a=r.href;let l,h,c;a?o=a:s&&(o=rx);let u="bottom-left";const d=i.hotSpot;let g;d?(l=[d.x,d.y],h=d.xunits,c=d.yunits,u=d.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=tx,h=ex,c=ix):o.includes("arrow-reverse")?(l=[54,42],h=ex,c=ix):o.includes("paddle")&&(l=[32,1],h=ex,c=ix));const f=r.x,p=r.y;let m;void 0!==f&&void 0!==p&&(g=[f,p]);const _=r.w,y=r.h;let x;void 0!==_&&void 0!==y&&(m=[_,y]);const v=i.heading;void 0!==v&&(x=ai(v));const S=i.scale,w=i.color;if(s){o==rx&&(m=nx);const t=new cg({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:g,offsetOrigin:"bottom-left",rotation:x,scale:S,size:m,src:this.iconUrlFunction_(o),color:w}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Pr||i===Ir){const n=function(){const i=t.getImageState();if(i!==Pr&&i!==Ir){const i=t.getSize();if(i&&2==i.length){const n=fx(i);t.setScale(e*n)}t.unlistenImageChange(n)}};t.listenImageChange(n),i===Pr&&t.load()}}else if(2==i.length){const n=fx(i);t.setScale(e*n)}n.imageStyle=t}else n.imageStyle=ox},LabelStyle:function(t,e){const i=Mu({},Cx,t,e);if(!i)return;const n=e[e.length-1],r=new yg({fill:new og({color:"color"in i?i.color:Qy}),scale:i.scale});n.textStyle=r},LineStyle:function(t,e){const i=Mu({},bx,t,e);if(!i)return;const n=e[e.length-1],r=new ug({color:"color"in i?i.color:Qy,width:"width"in i?i.width:1});n.strokeStyle=r},PolyStyle:function(t,e){const i=Mu({},Rx,t,e);if(!i)return;const n=e[e.length-1],r=new og({color:"color"in i?i.color:Qy});n.fillStyle=r;const s=i.fill;void 0!==s&&(n.fill=s);const o=i.outline;void 0!==o&&(n.outline=o)}});function Wx(t,e){const i=Mu({},Vx,t,e,this);if(!i)return null;let n="fillStyle"in i?i.fillStyle:sx;const r=i.fill;let s;void 0===r||r||(n=null),"imageStyle"in i?i.imageStyle!=ox&&(s=i.imageStyle):s=ax;const o="textStyle"in i?i.textStyle:cx,a="strokeStyle"in i?i.strokeStyle:hx,l=i.outline;return void 0===l||l?[new dg({fill:n,image:s,stroke:a,text:o,zIndex:void 0})]:[new dg({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Fp(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:n,image:s,stroke:a,text:o,zIndex:void 0}),new dg({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Fp(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:n,stroke:null,zIndex:void 0})]}function Zx(t,e){const i=e.length,n=new Array(e.length),r=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t<i;++t){const i=e[t];n[t]=i.get("extrude"),r[t]=i.get("tessellate"),s[t]=i.get("altitudeMode"),o=o||void 0!==n[t],a=a||void 0!==r[t],l=l||s[t]}o&&t.set("extrude",n),a&&t.set("tessellate",r),l&&t.set("altitudeMode",s)}const Yx=Lu(Wy,{displayName:Eu(V_),value:Eu(V_)});const Kx=Lu(Wy,{Data:function(t,e){const i=t.getAttribute("name");Fu(Yx,t,e);const n=e[e.length-1];i&&n.displayName?n[i]={value:n.value,displayName:n.displayName,toString:function(){return n.value}}:null!==i?n[i]=n.value:null!==n.displayName&&(n[n.displayName]=n.value),delete n.value},SchemaData:function(t,e){Fu(Jx,t,e)}});function qx(t,e){Fu(Kx,t,e)}function Hx(t,e){Fu(Hy,t,e)}const $x=Lu(Wy,{Style:Eu(Wx),key:Eu(V_),styleUrl:Eu(vx)});const Jx=Lu(Wy,{SimpleData:function(t,e){const i=t.getAttribute("name");if(null!==i){const n=V_(t);e[e.length-1][i]=n}}});const Qx=Lu(Wy,{altitudeMode:Eu(V_),minAltitude:Eu(B_),maxAltitude:Eu(B_),north:Eu(B_),south:Eu(B_),east:Eu(B_),west:Eu(B_)});const tv=Lu(Wy,{minLodPixels:Eu(B_),maxLodPixels:Eu(B_),minFadeExtent:Eu(B_),maxFadeExtent:Eu(B_)});const ev=Lu(Wy,{LinearRing:Su(Ix)});const iv=Lu(Wy,{LinearRing:wu(Ix)});function nv(t,e){const i=$r(e),n=[255*(4==i.length?i[3]:1),i[2],i[1],i[0]];for(let t=0;t<4;++t){const e=Math.floor(n[t]).toString(16);n[t]=1==e.length?"0"+e:e}H_(t,n.join(""))}const rv=Lu(Wy,{Data:Cu((function(t,e,i){t.setAttribute("name",e.name);const n={node:t},r=e.value;"object"==typeof r?(null!==r&&r.displayName&&Ou(n,rv,Pu,[r.displayName],i,["displayName"]),null!==r&&r.value&&Ou(n,rv,Pu,[r.value],i,["value"])):Ou(n,rv,Pu,[r],i,["value"])})),value:Cu((function(t,e){H_(t,e)})),displayName:Cu((function(t,e){Z_(t,e)}))});const sv=Lu(Wy,{Placemark:Cu(Lv)}),ov=function(t,e,i){return fu(e[e.length-1].node.namespaceURI,"Placemark")};const av=Ru("Data");const lv=Lu(Wy,["href"],Lu(Vy,["x","y","w","h"])),hv=Lu(Wy,{href:Cu(H_)},Lu(Vy,{x:Cu(K_),y:Cu(K_),w:Cu(K_),h:Cu(K_)})),cv=function(t,e,i){return fu(Vy[0],"gx:"+i)};const uv=Lu(Wy,["scale","heading","Icon","color","hotSpot"]),dv=Lu(Wy,{Icon:Cu((function(t,e,i){const n={node:t},r=i[i.length-1].node;let s=lv[r.namespaceURI],o=Iu(e,s);Ou(n,hv,Pu,o,i,s),s=lv[Vy[0]],o=Iu(e,s),Ou(n,hv,cv,o,i,s)})),color:Cu(nv),heading:Cu(K_),hotSpot:Cu((function(t,e){t.setAttribute("x",String(e.x)),t.setAttribute("y",String(e.y)),t.setAttribute("xunits",e.xunits),t.setAttribute("yunits",e.yunits)})),scale:Cu(Bv)});const gv=Lu(Wy,["color","scale"]),fv=Lu(Wy,{color:Cu(nv),scale:Cu(Bv)});const pv=Lu(Wy,["color","width"]),mv=Lu(Wy,{color:Cu(nv),width:Cu(K_)});const _v={Point:"Point",LineString:"LineString",LinearRing:"LinearRing",Polygon:"Polygon",MultiPoint:"MultiGeometry",MultiLineString:"MultiGeometry",MultiPolygon:"MultiGeometry",GeometryCollection:"MultiGeometry"},yv=function(t,e,i){if(t){return fu(e[e.length-1].node.namespaceURI,_v[t.getType()])}},xv=Ru("Point"),vv=Ru("LineString"),Sv=Ru("LinearRing"),wv=Ru("Polygon"),Tv=Lu(Wy,{LineString:Cu(Av),Point:Cu(Av),Polygon:Cu(kv),GeometryCollection:Cu(Ev)});function Ev(t,e,i){const n={node:t},r=e.getType();let s,o=[];"GeometryCollection"===r?(e.getGeometriesArrayRecursive().forEach((function(t){const e=t.getType();"MultiPoint"===e?o=o.concat(t.getPoints()):"MultiLineString"===e?o=o.concat(t.getLineStrings()):"MultiPolygon"===e?o=o.concat(t.getPolygons()):"Point"===e||"LineString"===e||"Polygon"===e?o.push(t):at(!1,39)})),s=yv):"MultiPoint"===r?(o=e.getPoints(),s=xv):"MultiLineString"===r?(o=e.getLineStrings(),s=vv):"MultiPolygon"===r?(o=e.getPolygons(),s=wv):at(!1,39),Ou(n,Tv,s,o,i)}const Cv=Lu(Wy,{LinearRing:Cu(Av)});function bv(t,e,i){Ou({node:t},Cv,Sv,[e],i)}const Rv=Lu(Wy,{ExtendedData:Cu((function(t,e,i){const n={node:t},r=e.names,s=e.values,o=r.length;for(let t=0;t<o;t++)Ou(n,rv,av,[{name:r[t],value:s[t]}],i)})),MultiGeometry:Cu(Ev),LineString:Cu(Av),LinearRing:Cu(Av),Point:Cu(Av),Polygon:Cu(kv),Style:Cu((function(t,e,i){const n={node:t},r={};if(e.pointStyles.length){const t=e.pointStyles[0].getText();t&&(r.LabelStyle=t);const i=e.pointStyles[0].getImage();i&&"function"==typeof i.getSrc&&(r.IconStyle=i)}if(e.lineStyles.length){const t=e.lineStyles[0].getStroke();t&&(r.LineStyle=t)}if(e.polyStyles.length){const t=e.polyStyles[0].getStroke();t&&!r.LineStyle&&(r.LineStyle=t),r.PolyStyle=e.polyStyles[0]}const s=i[i.length-1].node,o=Uv[s.namespaceURI],a=Iu(r,o);Ou(n,zv,Pu,a,i,o)})),address:Cu(H_),description:Cu(H_),name:Cu(H_),open:Cu(W_),phoneNumber:Cu(H_),styleUrl:Cu(H_),visibility:Cu(W_)}),Pv=Lu(Wy,["name","open","visibility","address","phoneNumber","description","styleUrl","Style"]),Iv=Ru("ExtendedData");function Lv(t,e,i){const n={node:t};e.getId()&&t.setAttribute("id",e.getId());const r=e.getProperties(),s={address:1,description:1,name:1,open:1,phoneNumber:1,styleUrl:1,visibility:1};s[e.getGeometryName()]=1;const o=Object.keys(r||{}).sort().filter((function(t){return!s[t]})),a=e.getStyleFunction();if(a){const t=a(e,0);if(t){const i=Array.isArray(t)?t:[t];let n=i;if(e.getGeometry()&&(n=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Point"===e||"MultiPoint"===e})).length:"Point"===t||"MultiPoint"===t}}))),this.writeStyles_){let t=i,s=i;e.getGeometry()&&(t=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"LineString"===e||"MultiLineString"===e})).length:"LineString"===t||"MultiLineString"===t}})),s=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})).length:"Polygon"===t||"MultiPolygon"===t}}))),r.Style={pointStyles:n,lineStyles:t,polyStyles:s}}if(n.length&&void 0===r.name){const t=n[0].getText();t&&(r.name=t.getText())}}}const l=i[i.length-1].node,h=Pv[l.namespaceURI],c=Iu(r,h);if(Ou(n,Rv,Pu,c,i,h),o.length>0){const t=Iu(r,o);Ou(n,Rv,Iv,[{names:o,values:t}],i)}const u=i[0];let d=e.getGeometry();d&&(d=em(d,!0,u)),Ou(n,Rv,yv,[d],i)}const Fv=Lu(Wy,["extrude","tessellate","altitudeMode","coordinates"]),Mv=Lu(Wy,{extrude:Cu(W_),tessellate:Cu(W_),altitudeMode:Cu(H_),coordinates:Cu((function(t,e,i){const n=i[i.length-1],r=n.layout,s=n.stride;let o;"XY"==r||"XYM"==r?o=2:"XYZ"==r||"XYZM"==r?o=3:at(!1,34);const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t<o;++t)l+=","+e[t];for(let t=s;t<a;t+=s){l+=" "+e[t];for(let i=1;i<o;++i)l+=","+e[t+i]}}H_(t,l)}))});function Av(t,e,i){const n=e.getFlatCoordinates(),r={node:t};r.layout=e.getLayout(),r.stride=e.getStride();const s=e.getProperties();s.coordinates=n;const o=i[i.length-1].node,a=Fv[o.namespaceURI],l=Iu(s,a);Ou(r,Mv,Pu,l,i,a)}const Ov=Lu(Wy,["color","fill","outline"]),Nv=Lu(Wy,{outerBoundaryIs:Cu(bv),innerBoundaryIs:Cu(bv)}),Dv=Ru("innerBoundaryIs"),Gv=Ru("outerBoundaryIs");function kv(t,e,i){const n=e.getLinearRings(),r=n.shift(),s={node:t};Ou(s,Nv,Dv,n,i),Ou(s,Nv,Gv,[r],i)}const jv=Lu(Wy,{color:Cu(nv),fill:Cu(W_),outline:Cu(W_)});function Bv(t,e){K_(t,Math.round(1e6*e)/1e6)}const Uv=Lu(Wy,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),zv=Lu(Wy,{IconStyle:Cu((function(t,e,i){const n={node:t},r={},s=e.getSrc(),o=e.getSize(),a=e.getImageSize(),l={href:s};if(o){l.w=o[0],l.h=o[1];const t=e.getAnchor(),i=e.getOrigin();if(i&&a&&0!==i[0]&&i[1]!==o[1]&&(l.x=i[0],l.y=a[1]-(i[1]+o[1])),t&&(t[0]!==o[0]/2||t[1]!==o[1]/2)){const e={x:t[0],xunits:"pixels",y:o[1]-t[1],yunits:"pixels"};r.hotSpot=e}}r.Icon=l;let h=e.getScaleArray()[0],c=o;if(null===c&&(c=nx),2==c.length){h/=fx(c)}1!==h&&(r.scale=h);const u=e.getRotation();0!==u&&(r.heading=u);const d=e.getColor();d&&(r.color=d);const g=i[i.length-1].node,f=uv[g.namespaceURI],p=Iu(r,f);Ou(n,dv,Pu,p,i,f)})),LabelStyle:Cu((function(t,e,i){const n={node:t},r={},s=e.getFill();s&&(r.color=s.getColor());const o=e.getScale();o&&1!==o&&(r.scale=o);const a=i[i.length-1].node,l=gv[a.namespaceURI],h=Iu(r,l);Ou(n,fv,Pu,h,i,l)})),LineStyle:Cu((function(t,e,i){const n={node:t},r={color:e.getColor(),width:Number(e.getWidth())||1},s=i[i.length-1].node,o=pv[s.namespaceURI],a=Iu(r,o);Ou(n,mv,Pu,a,i,o)})),PolyStyle:Cu((function(t,e,i){const n={node:t},r=e.getFill(),s=e.getStroke(),o={color:r?r.getColor():void 0,fill:!!r&&void 0,outline:!!s&&void 0},a=i[i.length-1].node,l=Ov[a.namespaceURI],h=Iu(o,l);Ou(n,jv,Pu,h,i,l)}))});const Xv=[null],Vv=Lu(Xv,{nd:function(t,e){e[e.length-1].ndrefs.push(t.getAttribute("ref"))},tag:Yv}),Wv=Lu(Xv,{node:function(t,e){const i=e[0],n=e[e.length-1],r=t.getAttribute("id"),s=[parseFloat(t.getAttribute("lon")),parseFloat(t.getAttribute("lat"))];n.nodes[r]=s;const o=Mu({tags:{}},Zv,t,e);if(!x(o.tags)){const t=new Wn(s);em(t,!1,i);const e=new lt(t);void 0!==r&&e.setId(r),e.setProperties(o.tags,!0),n.features.push(e)}},way:function(t,e){const i=Mu({id:t.getAttribute("id"),ndrefs:[],tags:{}},Vv,t,e);e[e.length-1].ways.push(i)}});const Zv=Lu(Xv,{tag:Yv});function Yv(t,e){e[e.length-1].tags[t.getAttribute("k")]=t.getAttribute("v")}class Kv{read(t){if(!t)return null;if("string"==typeof t){const e=xu(t);return this.readFromDocument(e)}return _u(t)?this.readFromDocument(t):this.readFromNode(t)}readFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readFromNode(e);return null}readFromNode(t){}}function qv(t){return t.getAttributeNS("http://www.w3.org/1999/xlink","href")}const Hv=[null,"http://www.opengis.net/ows/1.1"],$v=Lu(Hv,{ServiceIdentification:Eu((function(t,e){return Mu({},cS,t,e)})),ServiceProvider:Eu((function(t,e){return Mu({},uS,t,e)})),OperationsMetadata:Eu((function(t,e){return Mu({},oS,t,e)}))});class Jv extends Kv{constructor(){super()}readFromNode(t){const e=Mu({},$v,t,[]);return e||null}}const Qv=Lu(Hv,{DeliveryPoint:Eu(V_),City:Eu(V_),AdministrativeArea:Eu(V_),PostalCode:Eu(V_),Country:Eu(V_),ElectronicMailAddress:Eu(V_)}),tS=Lu(Hv,{Value:Tu((function(t,e){return V_(t)}))}),eS=Lu(Hv,{AllowedValues:Eu((function(t,e){return Mu({},tS,t,e)}))}),iS=Lu(Hv,{Phone:Eu((function(t,e){return Mu({},aS,t,e)})),Address:Eu((function(t,e){return Mu({},Qv,t,e)}))}),nS=Lu(Hv,{HTTP:Eu((function(t,e){return Mu({},rS,t,e)}))}),rS=Lu(Hv,{Get:Tu((function(t,e){const i=qv(t);if(!i)return;return Mu({href:i},lS,t,e)})),Post:void 0}),sS=Lu(Hv,{DCP:Eu((function(t,e){return Mu({},nS,t,e)}))}),oS=Lu(Hv,{Operation:function(t,e){const i=t.getAttribute("name"),n=Mu({},sS,t,e);if(!n)return;e[e.length-1][i]=n}}),aS=Lu(Hv,{Voice:Eu(V_),Facsimile:Eu(V_)}),lS=Lu(Hv,{Constraint:Tu((function(t,e){const i=t.getAttribute("name");if(!i)return;return Mu({name:i},eS,t,e)}))}),hS=Lu(Hv,{IndividualName:Eu(V_),PositionName:Eu(V_),ContactInfo:Eu((function(t,e){return Mu({},iS,t,e)}))}),cS=Lu(Hv,{Abstract:Eu(V_),AccessConstraints:Eu(V_),Fees:Eu(V_),Title:Eu(V_),ServiceTypeVersion:Eu(V_),ServiceType:Eu(V_)}),uS=Lu(Hv,{ProviderName:Eu(V_),ProviderSite:Eu(qv),ServiceContact:Eu((function(t,e){return Mu({},hS,t,e)}))});function dS(t,e,i){let n;i=i||1e5;const r=new Array(e);for(n=0;n<e;++n)r[n]=0;for(let i=0,s=t.length;i<s;)for(n=0;n<e;++n,++i){const e=t[i],s=e-r[n];r[n]=e,t[i]=s}return fS(t,i)}function gS(t,e,i){let n;i=i||1e5;const r=new Array(e);for(n=0;n<e;++n)r[n]=0;const s=pS(t,i);for(let t=0,i=s.length;t<i;)for(n=0;n<e;++n,++t)r[n]+=s[t],s[t]=r[n];return s}function fS(t,e){e=e||1e5;for(let i=0,n=t.length;i<n;++i)t[i]=Math.round(t[i]*e);return mS(t)}function pS(t,e){e=e||1e5;const i=_S(t);for(let t=0,n=i.length;t<n;++t)i[t]/=e;return i}function mS(t){for(let e=0,i=t.length;e<i;++e){const i=t[e];t[e]=i<0?~(i<<1):i<<1}return yS(t)}function _S(t){const e=xS(t);for(let t=0,i=e.length;t<i;++t){const i=e[t];e[t]=1&i?~(i>>1):i>>1}return e}function yS(t){let e="";for(let i=0,n=t.length;i<n;++i)e+=vS(t[i]);return e}function xS(t){const e=[];let i=0,n=0;for(let r=0,s=t.length;r<s;++r){const s=t.charCodeAt(r)-63;i|=(31&s)<<n,s<32?(e.push(i),i=0,n=0):n+=5}return e}function vS(t){let e,i="";for(;t>=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}const SS={Point:function(t,e,i){const n=t.coordinates;e&&i&&bS(n,e,i);return new Wn(n)},LineString:function(t,e){const i=wS(t.arcs,e);return new Dp(i)},Polygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n)i[n]=wS(t.arcs[n],e);return new ur(i)},MultiPoint:function(t,e,i){const n=t.coordinates;if(e&&i)for(let t=0,r=n.length;t<r;++t)bS(n[t],e,i);return new kp(n)},MultiLineString:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n)i[n]=wS(t.arcs[n],e);return new Gp(i)},MultiPolygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n){const r=t.arcs[n],s=[];for(let t=0,i=r.length;t<i;++t)s[t]=wS(r[t],e);i[n]=s}return new Bp(i)}};function wS(t,e){const i=[];let n;for(let r=0,s=t.length;r<s;++r)if(n=t[r],r>0&&i.pop(),n>=0){const t=e[n];for(let e=0,n=t.length;e<n;++e)i.push(t[e].slice(0))}else{const t=e[~n];for(let e=t.length-1;e>=0;--e)i.push(t[e].slice(0))}return i}function TS(t,e,i,n,r,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t<h;++t)l[t]=ES(a[t],e,i,n,r,s,o);return l}function ES(t,e,i,n,r,s,o){let a=null;const l=t.type;if(l){const r=SS[l];a="Point"===l||"MultiPoint"===l?r(t,i,n):r(t,e),a=em(a,!1,o)}const h=new lt({geometry:a});void 0!==t.id&&h.setId(t.id);let c=t.properties;return r&&(c||(c={}),c[r]=s),c&&h.setProperties(c,!0),h}function CS(t,e,i){let n=0,r=0;for(let s=0,o=t.length;s<o;++s){const o=t[s];n+=o[0],r+=o[1],o[0]=n,o[1]=r,bS(o,e,i)}}function bS(t,e,i){t[0]=t[0]*e[0]+i[0],t[1]=t[1]*e[1]+i[1]}class RS{constructor(t){this.tagName_=t}getTagName(){return this.tagName_}}class PS extends RS{constructor(t,e){super(t),this.conditions=e,at(this.conditions.length>=2,57)}}class IS extends PS{constructor(t){super("And",Array.prototype.slice.call(arguments))}}class LS extends RS{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}}class FS extends RS{constructor(t,e,i,n){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=n}}class MS extends FS{constructor(t,e,i){super("Contains",t,e,i)}}class AS extends FS{constructor(t,e,i,n,r){super("DWithin",t,e,r),this.distance=i,this.unit=n}}class OS extends FS{constructor(t,e,i){super("Disjoint",t,e,i)}}class NS extends RS{constructor(t,e){super(t),this.propertyName=e}}class DS extends NS{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}}class GS extends NS{constructor(t,e,i,n){super(t,e),this.expression=i,this.matchCase=n}}class kS extends GS{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}}class jS extends GS{constructor(t,e){super("PropertyIsGreaterThan",t,e)}}class BS extends GS{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}}class US extends FS{constructor(t,e,i){super("Intersects",t,e,i)}}class zS extends NS{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}}class XS extends NS{constructor(t,e,i,n,r,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==r?r:"!",this.matchCase=s}}class VS extends NS{constructor(t){super("PropertyIsNull",t)}}class WS extends GS{constructor(t,e){super("PropertyIsLessThan",t,e)}}class ZS extends GS{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}}class YS extends RS{constructor(t){super("Not"),this.condition=t}}class KS extends GS{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}}class qS extends PS{constructor(t){super("Or",Array.prototype.slice.call(arguments))}}class HS extends RS{constructor(t){super("ResourceId"),this.rid=t}}class $S extends FS{constructor(t,e,i){super("Within",t,e,i)}}function JS(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(IS,e))}function QS(t,e,i){return new LS(t,e,i)}const tw={"http://www.opengis.net/gml":{boundedBy:Eu(D_.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:Su(D_.prototype.readFeaturesInternal)}},ew={"http://www.opengis.net/wfs":{totalInserted:Eu(z_),totalUpdated:Eu(z_),totalDeleted:Eu(z_)},"http://www.opengis.net/wfs/2.0":{totalInserted:Eu(z_),totalUpdated:Eu(z_),totalDeleted:Eu(z_)}},iw={"http://www.opengis.net/wfs":{TransactionSummary:Eu(gw,"transactionSummary"),InsertResults:Eu(_w,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:Eu(gw,"transactionSummary"),InsertResults:Eu(_w,"insertIds")}},nw={"http://www.opengis.net/wfs":{PropertyName:Cu(H_)},"http://www.opengis.net/wfs/2.0":{PropertyName:Cu(H_)}},rw={"http://www.opengis.net/wfs":{Insert:Cu(yw),Update:Cu(ww),Delete:Cu(Sw),Property:Cu(Tw),Native:Cu(Ew)},"http://www.opengis.net/wfs/2.0":{Insert:Cu(yw),Update:Cu(ww),Delete:Cu(Sw),Property:Cu(Tw),Native:Cu(Ew)}},sw="feature",ow="http://www.w3.org/2000/xmlns/",aw={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},lw={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},hw={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},cw={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},uw={"2.0.0":iy,"1.1.0":ty,"1.0.0":J_};function dw(t,e,i,n){Ou(n,rw,Ru(t),e,i)}function gw(t,e){return Mu({},ew,t,e)}const fw={"http://www.opengis.net/ogc":{FeatureId:Su((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:Su((function(t,e){return t.getAttribute("fid")}))}};function pw(t,e){Fu(fw,t,e)}const mw={"http://www.opengis.net/wfs":{Feature:pw},"http://www.opengis.net/wfs/2.0":{Feature:pw}};function _w(t,e){return Mu([],mw,t,e)}function yw(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o=n.gmlVersion,a=fu(s,r);t.appendChild(a),2===o?J_.prototype.writeFeatureElement(a,e,i):3===o?ty.prototype.writeFeatureElement(a,e,i):iy.prototype.writeFeatureElement(a,e,i)}function xw(t,e,i){const n=i[i.length-1].version,r=aw[n],s=fu(r,"Filter"),o=fu(r,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function vw(t,e){const i=(t=t||sw)+":";return e.startsWith(i)?e:i+e}function Sw(t,e,i){const n=i[i.length-1];at(void 0!==e.getId(),26);const r=n.featureType,s=n.featurePrefix,o=n.featureNS,a=vw(s,r);t.setAttribute("typeName",a),t.setAttributeNS(ow,"xmlns:"+s,o);const l=e.getId();void 0!==l&&xw(t,l,i)}function ww(t,e,i){const n=i[i.length-1];at(void 0!==e.getId(),27);const r=n.version,s=n.featureType,o=n.featurePrefix,a=n.featureNS,l=vw(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(ow,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t<i;t++){const i=e.get(s[t]);if(void 0!==i){let e=s[t];i&&"function"==typeof i.getSimplifiedGeometry&&(e=h),o.push({name:e,value:i})}}Ou({version:r,gmlVersion:n.gmlVersion,node:t,hasZ:n.hasZ,srsName:n.srsName},rw,Ru("Property"),o,i),xw(t,c,i)}}function Tw(t,e,i){const n=i[i.length-1],r=n.version,s=lw[r],o=fu(s,"Name"),a=n.gmlVersion;if(t.appendChild(o),H_(o,e.name),void 0!==e.value&&null!==e.value){const n=fu(s,"Value");t.appendChild(n),e.value&&"function"==typeof e.value.getSimplifiedGeometry?2===a?J_.prototype.writeGeometryElement(n,e.value,i):3===a?ty.prototype.writeGeometryElement(n,e.value,i):iy.prototype.writeGeometryElement(n,e.value,i):H_(n,e.value)}}function Ew(t,e,i){e.vendorId&&t.setAttribute("vendorId",e.vendorId),void 0!==e.safeToIgnore&&t.setAttribute("safeToIgnore",String(e.safeToIgnore)),void 0!==e.value&&H_(t,e.value)}const Cw={"http://www.opengis.net/wfs":{Query:Cu(bw)},"http://www.opengis.net/wfs/2.0":{Query:Cu(bw)},"http://www.opengis.net/ogc":{During:Cu(Fw),And:Cu(Mw),Or:Cu(Mw),Not:Cu(Aw),BBOX:Cu(Pw),Contains:Cu(Iw),Intersects:Cu(Iw),Within:Cu(Iw),DWithin:Cu(Lw),PropertyIsEqualTo:Cu(Ow),PropertyIsNotEqualTo:Cu(Ow),PropertyIsLessThan:Cu(Ow),PropertyIsLessThanOrEqualTo:Cu(Ow),PropertyIsGreaterThan:Cu(Ow),PropertyIsGreaterThanOrEqualTo:Cu(Ow),PropertyIsNull:Cu(Nw),PropertyIsBetween:Cu(Dw),PropertyIsLike:Cu(Gw)},"http://www.opengis.net/fes/2.0":{During:Cu(Fw),And:Cu(Mw),Or:Cu(Mw),Not:Cu(Aw),BBOX:Cu(Pw),Contains:Cu(Iw),Disjoint:Cu(Iw),Intersects:Cu(Iw),ResourceId:Cu((function(t,e,i){t.setAttribute("rid",e.rid)})),Within:Cu(Iw),DWithin:Cu(Lw),PropertyIsEqualTo:Cu(Ow),PropertyIsNotEqualTo:Cu(Ow),PropertyIsLessThan:Cu(Ow),PropertyIsLessThanOrEqualTo:Cu(Ow),PropertyIsGreaterThan:Cu(Ow),PropertyIsGreaterThanOrEqualTo:Cu(Ow),PropertyIsNull:Cu(Nw),PropertyIsBetween:Cu(Dw),PropertyIsLike:Cu(Gw)}};function bw(t,e,i){const n=i[i.length-1],r=n.version,s=n.featurePrefix,o=n.featureNS,a=n.propertyNames,l=n.srsName;let h,c;h=s?vw(s,e):e,c="2.0.0"===r?"typeNames":"typeName",t.setAttribute(c,h),l&&t.setAttribute("srsName",l),o&&t.setAttributeNS(ow,"xmlns:"+s,o);const u=Object.assign({},n);u.node=t,Ou(u,nw,Ru("PropertyName"),a,i);const d=n.filter;if(d){const e=fu(Xw(r),"Filter");t.appendChild(e),Rw(e,d,i)}}function Rw(t,e,i){const n=i[i.length-1],r={node:t};Object.assign(r,{context:n}),Ou(r,Cw,Ru(e.getTagName()),[e],i)}function Pw(t,e,i){const n=i[i.length-1],r=n.context.version;n.srsName=e.srsName;const s=uw[r];Bw(r,t,e.geometryName),s.prototype.writeGeometryElement(t,e.extent,i)}function Iw(t,e,i){const n=i[i.length-1],r=n.context.version;n.srsName=e.srsName;const s=uw[r];Bw(r,t,e.geometryName),s.prototype.writeGeometryElement(t,e.geometry,i)}function Lw(t,e,i){const n=i[i.length-1].context.version;Iw(t,e,i);const r=fu(Xw(n),"Distance");H_(r,e.distance.toString()),"2.0.0"===n?r.setAttribute("uom",e.unit):r.setAttribute("units",e.unit),t.appendChild(r)}function Fw(t,e,i){const n=i[i.length-1].context.version;kw(hw[n],"ValueReference",t,e.propertyName);const r=fu(O_,"TimePeriod");t.appendChild(r);const s=fu(O_,"begin");r.appendChild(s),Uw(s,e.begin);const o=fu(O_,"end");r.appendChild(o),Uw(o,e.end)}function Mw(t,e,i){const n=i[i.length-1].context,r={node:t};Object.assign(r,{context:n});const s=e.conditions;for(let t=0,e=s.length;t<e;++t){const e=s[t];Ou(r,Cw,Ru(e.getTagName()),[e],i)}}function Aw(t,e,i){const n=i[i.length-1].context,r={node:t};Object.assign(r,{context:n});const s=e.condition;Ou(r,Cw,Ru(s.getTagName()),[s],i)}function Ow(t,e,i){const n=i[i.length-1].context.version;void 0!==e.matchCase&&t.setAttribute("matchCase",e.matchCase.toString()),Bw(n,t,e.propertyName),jw(n,t,""+e.expression)}function Nw(t,e,i){Bw(i[i.length-1].context.version,t,e.propertyName)}function Dw(t,e,i){const n=i[i.length-1].context.version,r=Xw(n);Bw(n,t,e.propertyName);const s=fu(r,"LowerBoundary");t.appendChild(s),jw(n,s,""+e.lowerBoundary);const o=fu(r,"UpperBoundary");t.appendChild(o),jw(n,o,""+e.upperBoundary)}function Gw(t,e,i){const n=i[i.length-1].context.version;t.setAttribute("wildCard",e.wildCard),t.setAttribute("singleChar",e.singleChar),t.setAttribute("escapeChar",e.escapeChar),void 0!==e.matchCase&&t.setAttribute("matchCase",e.matchCase.toString()),Bw(n,t,e.propertyName),jw(n,t,""+e.pattern)}function kw(t,e,i,n){const r=fu(t,e);H_(r,n),i.appendChild(r)}function jw(t,e,i){kw(Xw(t),"Literal",e,i)}function Bw(t,e,i){"2.0.0"===t?kw(hw[t],"ValueReference",e,i):kw(aw[t],"PropertyName",e,i)}function Uw(t,e){const i=fu(O_,"TimeInstant");t.appendChild(i);const n=fu(O_,"timePosition");i.appendChild(n),H_(n,e)}function zw(t,e,i){const n=i[i.length-1],r=Object.assign({},n);r.node=t,Ou(r,Cw,Ru("Query"),e,i)}function Xw(t){let e;return e="2.0.0"===t?hw[t]:aw[t],e}const Vw=1,Ww=2,Zw=3,Yw=4,Kw=5,qw=6,Hw=7,$w=15,Jw=16,Qw=17;class tT{constructor(t){this.view_=t,this.pos_=0,this.initialized_=!1,this.isLittleEndian_=!1,this.hasZ_=!1,this.hasM_=!1,this.srid_=null,this.layout_="XY"}readUint8(){return this.view_.getUint8(this.pos_++)}readUint32(t){return this.view_.getUint32((this.pos_+=4)-4,void 0!==t?t:this.isLittleEndian_)}readDouble(t){return this.view_.getFloat64((this.pos_+=8)-8,void 0!==t?t:this.isLittleEndian_)}readPoint(){const t=[];return t.push(this.readDouble()),t.push(this.readDouble()),this.hasZ_&&t.push(this.readDouble()),this.hasM_&&t.push(this.readDouble()),t}readLineString(){const t=this.readUint32(),e=[];for(let i=0;i<t;i++)e.push(this.readPoint());return e}readPolygon(){const t=this.readUint32(),e=[];for(let i=0;i<t;i++)e.push(this.readLineString());return e}readWkbHeader(t){const e=this.readUint8()>0,i=this.readUint32(e),n=Math.floor((268435455&i)/1e3),r=Boolean(2147483648&i)||1===n||3===n,s=Boolean(1073741824&i)||2===n||3===n,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",r?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=r,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case Vw:return this.readPoint();case Ww:return this.readLineString();case Zw:case Qw:return this.readPolygon();case Yw:return this.readMultiPoint();case Kw:return this.readMultiLineString();case qw:case $w:case Jw:return this.readMultiPolygon();case Hw:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),n=[];for(let r=0;r<i;r++){const i=t.call(this,e);i&&n.push(i)}return n}readMultiPoint(){return this.readWkbCollection(this.readWkbBlock,Vw)}readMultiLineString(){return this.readWkbCollection(this.readWkbBlock,Ww)}readMultiPolygon(){return this.readWkbCollection(this.readWkbBlock,Zw)}readGeometryCollection(){return this.readWkbCollection(this.readGeometry)}readGeometry(){const t=this.readWkbHeader(),e=this.readWkbPayload(t);switch(t){case Vw:return new Wn(e,this.layout_);case Ww:return new Dp(e,this.layout_);case Zw:case Qw:return new ur(e,this.layout_);case Yw:return new kp(e,this.layout_);case Kw:return new Gp(e,this.layout_);case qw:case $w:case Jw:return new Bp(e,this.layout_);case Hw:return new Fp(e);default:return null}}getSrid(){return this.srid_}}class eT{constructor(t){t=t||{},this.layout_=t.layout,this.isLittleEndian_=!1!==t.littleEndian,this.isEWKB_=!1!==t.ewkb,this.writeQueue_=[],this.nodata_=Object.assign({X:0,Y:0,Z:0,M:0},t.nodata)}writeUint8(t){this.writeQueue_.push([1,t])}writeUint32(t){this.writeQueue_.push([4,t])}writeDouble(t){this.writeQueue_.push([8,t])}writePoint(t,e){const i=Object.assign.apply(null,e.split("").map(((e,i)=>({[e]:t[i]}))));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writePoint(t[i],e)}writePolygon(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeLineString(t[i],e)}writeWkbHeader(t,e){t%=1e3,this.layout_.includes("Z")&&(t+=this.isEWKB_?2147483648:1e3),this.layout_.includes("M")&&(t+=this.isEWKB_?1073741824:2e3),this.isEWKB_&&Number.isInteger(e)&&(t|=536870912),this.writeUint8(this.isLittleEndian_?1:0),this.writeUint32(t),this.isEWKB_&&Number.isInteger(e)&&this.writeUint32(e)}writeMultiPoint(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(1),this.writePoint(t[i],e)}writeMultiLineString(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(2),this.writeLineString(t[i],e)}writeMultiPolygon(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(3),this.writePolygon(t[i],e)}writeGeometryCollection(t){this.writeUint32(t.length);for(let e=0;e<t.length;e++)this.writeGeometry(t[e])}findMinimumLayout(t,e="XYZM"){if(t instanceof _n)return(i=t.getLayout())===(n=e)?i:"XYZM"===i?n:"XYZM"===n?i:"XY";var i,n;if(t instanceof Fp){const i=t.getGeometriesArray();for(let t=0;t<i.length&&"XY"!==e;t++)e=this.findMinimumLayout(i[t],e)}return e}writeGeometry(t,e){const i={Point:Vw,LineString:Ww,Polygon:Zw,MultiPoint:Yw,MultiLineString:Kw,MultiPolygon:qw,GeometryCollection:Hw},n=t.getType(),r=i[n];if(!r)throw new Error("GeometryType "+n+" is not supported");if(this.layout_||(this.layout_=this.findMinimumLayout(t)),this.writeWkbHeader(r,e),t instanceof _n){({Point:this.writePoint,LineString:this.writeLineString,Polygon:this.writePolygon,MultiPoint:this.writeMultiPoint,MultiLineString:this.writeMultiLineString,MultiPolygon:this.writeMultiPolygon})[n].call(this,t.getCoordinates(),t.getLayout())}else t instanceof Fp&&this.writeGeometryCollection(t.getGeometriesArray())}getBuffer(){const t=this.writeQueue_.reduce(((t,e)=>t+e[0]),0),e=new ArrayBuffer(t),i=new DataView(e);let n=0;return this.writeQueue_.forEach((t=>{switch(t[0]){case 1:i.setUint8(n,t[1]);break;case 4:i.setUint32(n,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(n,t[1],this.isLittleEndian_)}n+=t[0]})),e}}function iT(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;i<t.length/2;i++)e[i]=parseInt(t.substr(2*i,2),16);return new DataView(e.buffer)}(t):ArrayBuffer.isView(t)?t instanceof DataView?t:new DataView(t.buffer,t.byteOffset,t.byteLength):t instanceof ArrayBuffer?new DataView(t):null}const nT={POINT:Wn,LINESTRING:Dp,POLYGON:ur,MULTIPOINT:kp,MULTILINESTRING:Gp,MULTIPOLYGON:Bp},rT="EMPTY",sT=0,oT=1,aT=2,lT=3,hT=4,cT=5,uT=6,dT={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class gT{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,n=t;if("("==t)i=aT;else if(","==t)i=cT;else if(")"==t)i=lT;else if(this.isNumeric_(t)||"-"==t)i=hT,n=this.readNumber_();else if(this.isAlpha_(t))i=oT,n=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=uT}return{position:e,value:n,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,n=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class fT{constructor(t){this.lexer_=t,this.token_={position:0,type:sT},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(oT)){const i=e.value;"Z"===i?t="XYZ":"M"===i?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(aT)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(cT));if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(aT)){const t=this.parsePoint_();if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(aT)){const t=this.parsePointList_();if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(aT)){const t=this.parseLineStringTextList_();if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(aT)){let t;if(t=this.token_.type==aT?this.parsePointTextList_():this.parsePointList_(),this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(aT)){const t=this.parseLineStringTextList_();if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(aT)){const t=this.parsePolygonTextList_();if(this.match(lT))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i<e;++i){const e=this.token_;if(!this.match(hT))break;t.push(e.value)}if(t.length==e)return t;throw new Error(this.formatErrorMessage_())}parsePointList_(){const t=[this.parsePoint_()];for(;this.match(cT);)t.push(this.parsePoint_());return t}parsePointTextList_(){const t=[this.parsePointText_()];for(;this.match(cT);)t.push(this.parsePointText_());return t}parseLineStringTextList_(){const t=[this.parseLineStringText_()];for(;this.match(cT);)t.push(this.parseLineStringText_());return t}parsePolygonTextList_(){const t=[this.parsePolygonText_()];for(;this.match(cT);)t.push(this.parsePolygonText_());return t}isEmptyGeometry_(){const t=this.isTokenType(oT)&&this.token_.value==rT;return t&&this.consume_(),t}formatErrorMessage_(){return"Unexpected `"+this.token_.value+"` at position "+this.token_.position+" in `"+this.lexer_.wkt+"`"}parseGeometry_(){const t=this.token_;if(this.match(oT)){const e=t.value;this.layout_=this.parseGeometryLayout_();const i=this.isEmptyGeometry_();if("GEOMETRYCOLLECTION"==e){if(i)return new Fp([]);const t=this.parseGeometryCollectionText_();return new Fp(t)}const n=nT[e];if(!n)throw new Error("Invalid geometry type: "+e);let r;if(i)r="POINT"==e?[NaN,NaN]:[];else switch(e){case"POINT":r=this.parsePointText_();break;case"LINESTRING":r=this.parseLineStringText_();break;case"POLYGON":r=this.parsePolygonText_();break;case"MULTIPOINT":r=this.parseMultiPointText_();break;case"MULTILINESTRING":r=this.parseMultiLineStringText_();break;case"MULTIPOLYGON":r=this.parseMultiPolygonText_()}return new n(r,this.layout_)}throw new Error(this.formatErrorMessage_())}}function pT(t){const e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function mT(t){const e=t.getCoordinates(),i=[];for(let t=0,n=e.length;t<n;++t)i.push(e[t].join(" "));return i.join(",")}function _T(t){const e=[],i=t.getLinearRings();for(let t=0,n=i.length;t<n;++t)e.push("("+mT(i[t])+")");return e.join(",")}const yT={Point:pT,LineString:mT,Polygon:_T,MultiPoint:function(t){const e=[],i=t.getPoints();for(let t=0,n=i.length;t<n;++t)e.push("("+pT(i[t])+")");return e.join(",")},MultiLineString:function(t){const e=[],i=t.getLineStrings();for(let t=0,n=i.length;t<n;++t)e.push("("+mT(i[t])+")");return e.join(",")},MultiPolygon:function(t){const e=[],i=t.getPolygons();for(let t=0,n=i.length;t<n;++t)e.push("("+_T(i[t])+")");return e.join(",")},GeometryCollection:function(t){const e=[],i=t.getGeometries();for(let t=0,n=i.length;t<n;++t)e.push(xT(i[t]));return e.join(",")}};function xT(t){const e=t.getType(),i=(0,yT[e])(t);let n=dT[e];if("function"==typeof t.getFlatCoordinates){const e=function(t){const e=t.getLayout();let i="";return"XYZ"!==e&&"XYZM"!==e||(i+="Z"),"XYM"!==e&&"XYZM"!==e||(i+="M"),i}(t);e.length>0&&(n+=" "+e)}return 0===i.length?n+" "+rT:n+"("+i+")"}const vT=[null,"http://www.opengis.net/wms"],ST=Lu(vT,{Service:Eu((function(t,e){return Mu({},TT,t,e)})),Capability:Eu((function(t,e){return Mu({},wT,t,e)}))}),wT=Lu(vT,{Request:Eu((function(t,e){return Mu({},FT,t,e)})),Exception:Eu((function(t,e){return Mu([],RT,t,e)})),Layer:Eu((function(t,e){const i=Mu({},PT,t,e);if(void 0===i.Layer)return Object.assign(i,kT(t,e));return i}))});const TT=Lu(vT,{Name:Eu(V_),Title:Eu(V_),Abstract:Eu(V_),KeywordList:Eu(zT),OnlineResource:Eu(qv),ContactInformation:Eu((function(t,e){return Mu({},ET,t,e)})),Fees:Eu(V_),AccessConstraints:Eu(V_),LayerLimit:Eu(z_),MaxWidth:Eu(z_),MaxHeight:Eu(z_)}),ET=Lu(vT,{ContactPersonPrimary:Eu((function(t,e){return Mu({},CT,t,e)})),ContactPosition:Eu(V_),ContactAddress:Eu((function(t,e){return Mu({},bT,t,e)})),ContactVoiceTelephone:Eu(V_),ContactFacsimileTelephone:Eu(V_),ContactElectronicMailAddress:Eu(V_)}),CT=Lu(vT,{ContactPerson:Eu(V_),ContactOrganization:Eu(V_)}),bT=Lu(vT,{AddressType:Eu(V_),Address:Eu(V_),City:Eu(V_),StateOrProvince:Eu(V_),PostCode:Eu(V_),Country:Eu(V_)}),RT=Lu(vT,{Format:Su(V_)}),PT=Lu(vT,{Name:Eu(V_),Title:Eu(V_),Abstract:Eu(V_),KeywordList:Eu(zT),CRS:Tu(V_),EX_GeographicBoundingBox:Eu((function(t,e){const i=Mu({},LT,t,e);if(!i)return;const n=i.westBoundLongitude,r=i.southBoundLatitude,s=i.eastBoundLongitude,o=i.northBoundLatitude;if(void 0===n||void 0===r||void 0===s||void 0===o)return;return[n,r,s,o]})),BoundingBox:Tu((function(t,e){const i=[U_(t.getAttribute("minx")),U_(t.getAttribute("miny")),U_(t.getAttribute("maxx")),U_(t.getAttribute("maxy"))],n=[U_(t.getAttribute("resx")),U_(t.getAttribute("resy"))];return{crs:t.getAttribute("CRS"),extent:i,res:n}})),Dimension:Tu((function(t,e){return{name:t.getAttribute("name"),units:t.getAttribute("units"),unitSymbol:t.getAttribute("unitSymbol"),default:t.getAttribute("default"),multipleValues:k_(t.getAttribute("multipleValues")),nearestValue:k_(t.getAttribute("nearestValue")),current:k_(t.getAttribute("current")),values:V_(t)}})),Attribution:Eu((function(t,e){return Mu({},IT,t,e)})),AuthorityURL:Tu((function(t,e){const i=jT(t,e);if(i)return i.name=t.getAttribute("name"),i;return})),Identifier:Tu(V_),MetadataURL:Tu((function(t,e){const i=jT(t,e);if(i)return i.type=t.getAttribute("type"),i;return})),DataURL:Tu(jT),FeatureListURL:Tu(jT),Style:Tu((function(t,e){return Mu({},NT,t,e)})),MinScaleDenominator:Eu(B_),MaxScaleDenominator:Eu(B_),Layer:Tu(kT)}),IT=Lu(vT,{Title:Eu(V_),OnlineResource:Eu(qv),LogoURL:Eu(UT)}),LT=Lu(vT,{westBoundLongitude:Eu(B_),eastBoundLongitude:Eu(B_),southBoundLatitude:Eu(B_),northBoundLatitude:Eu(B_)}),FT=Lu(vT,{GetCapabilities:Eu(BT),GetMap:Eu(BT),GetFeatureInfo:Eu(BT)}),MT=Lu(vT,{Format:Tu(V_),DCPType:Tu((function(t,e){return Mu({},AT,t,e)}))}),AT=Lu(vT,{HTTP:Eu((function(t,e){return Mu({},OT,t,e)}))}),OT=Lu(vT,{Get:Eu(jT),Post:Eu(jT)}),NT=Lu(vT,{Name:Eu(V_),Title:Eu(V_),Abstract:Eu(V_),LegendURL:Tu(UT),StyleSheetURL:Eu(jT),StyleURL:Eu(jT)}),DT=Lu(vT,{Format:Eu(V_),OnlineResource:Eu(qv)}),GT=Lu(vT,{Keyword:Su(V_)});function kT(t,e){const i=e[e.length-1],n=Mu({},PT,t,e);if(!n)return;let r=k_(t.getAttribute("queryable"));void 0===r&&(r=i.queryable),n.queryable=void 0!==r&&r;let s=X_(t.getAttribute("cascaded"));void 0===s&&(s=i.cascaded),n.cascaded=s;let o=k_(t.getAttribute("opaque"));void 0===o&&(o=i.opaque),n.opaque=void 0!==o&&o;let a=k_(t.getAttribute("noSubsets"));void 0===a&&(a=i.noSubsets),n.noSubsets=void 0!==a&&a;let l=U_(t.getAttribute("fixedWidth"));l||(l=i.fixedWidth),n.fixedWidth=l;let h=U_(t.getAttribute("fixedHeight"));h||(h=i.fixedHeight),n.fixedHeight=h;["Style","CRS","AuthorityURL"].forEach((function(t){if(t in i){const e=n[t]||[];n[t]=e.concat(i[t])}}));return["EX_GeographicBoundingBox","BoundingBox","Dimension","Attribution","MinScaleDenominator","MaxScaleDenominator"].forEach((function(t){if(!(t in n)){const e=i[t];n[t]=e}})),n}function jT(t,e){return Mu({},DT,t,e)}function BT(t,e){return Mu({},MT,t,e)}function UT(t,e){const i=jT(t,e);if(i){const e=[X_(t.getAttribute("width")),X_(t.getAttribute("height"))];return i.size=e,i}}function zT(t,e){return Mu([],GT,t,e)}const XT=[null,"http://www.opengis.net/wmts/1.0"],VT=[null,"http://www.opengis.net/ows/1.1"],WT=Lu(XT,{Contents:Eu((function(t,e){return Mu({},ZT,t,e)}))});const ZT=Lu(XT,{Layer:Tu((function(t,e){return Mu({},YT,t,e)})),TileMatrixSet:Tu((function(t,e){return Mu({},tE,t,e)}))}),YT=Lu(XT,{Style:Tu((function(t,e){const i=Mu({},KT,t,e);if(!i)return;const n="true"===t.getAttribute("isDefault");return i.isDefault=n,i})),Format:Tu(V_),TileMatrixSetLink:Tu((function(t,e){return Mu({},qT,t,e)})),Dimension:Tu((function(t,e){return Mu({},JT,t,e)})),ResourceURL:Tu((function(t,e){const i=t.getAttribute("format"),n=t.getAttribute("template"),r=t.getAttribute("resourceType"),s={};i&&(s.format=i);n&&(s.template=n);r&&(s.resourceType=r);return s}))},Lu(VT,{Title:Eu(V_),Abstract:Eu(V_),WGS84BoundingBox:Eu(iE),Identifier:Eu(V_)})),KT=Lu(XT,{LegendURL:Tu((function(t,e){const i={};return i.format=t.getAttribute("format"),i.href=qv(t),i}))},Lu(VT,{Title:Eu(V_),Identifier:Eu(V_)})),qT=Lu(XT,{TileMatrixSet:Eu(V_),TileMatrixSetLimits:Eu((function(t,e){return Mu([],HT,t,e)}))}),HT=Lu(XT,{TileMatrixLimits:Su((function(t,e){return Mu({},$T,t,e)}))}),$T=Lu(XT,{TileMatrix:Eu(V_),MinTileRow:Eu(z_),MaxTileRow:Eu(z_),MinTileCol:Eu(z_),MaxTileCol:Eu(z_)}),JT=Lu(XT,{Default:Eu(V_),Value:Tu(V_)},Lu(VT,{Identifier:Eu(V_)})),QT=Lu(VT,{LowerCorner:Su(nE),UpperCorner:Su(nE)}),tE=Lu(XT,{WellKnownScaleSet:Eu(V_),TileMatrix:Tu((function(t,e){return Mu({},eE,t,e)}))},Lu(VT,{SupportedCRS:Eu(V_),Identifier:Eu(V_),BoundingBox:Eu(iE)})),eE=Lu(XT,{TopLeftCorner:Eu(nE),ScaleDenominator:Eu(B_),TileWidth:Eu(z_),TileHeight:Eu(z_),MatrixWidth:Eu(z_),MatrixHeight:Eu(z_)},Lu(VT,{Identifier:Eu(V_)}));function iE(t,e){const i=Mu([],QT,t,e);if(2==i.length)return zt(i)}function nE(t,e){const i=V_(t).split(/\s+/);if(!i||2!=i.length)return;const n=+i[0],r=+i[1];return isNaN(n)||isNaN(r)?void 0:[n,r]}const rE=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"],sE="enterfullscreen",oE="leavefullscreen";function aE(t){const e=t.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&t.fullscreenEnabled)}function lE(t){return!(!t.webkitIsFullScreen&&!t.fullscreenElement)}function hE(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()}const cE="projection",uE="coordinateFormat";const dE=.75,gE=.1;const fE="units",pE=[1,2,5],mE=25.4/.28;const _E=0,yE=1;var xE={};return xE.AssertionError=e,xE.Collection=q,xE.Collection.CollectionEvent=K,xE.DataTile=ot,xE.Disposable=s,xE.Feature=lt,xE.Feature.createStyleFunction=ht,xE.Geolocation=class extends V{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.position_=null,this.transform_=ki,this.watchId_=void 0,this.addChangeListener(wr,this.handleProjectionChanged_),this.addChangeListener(Er,this.handleTrackingChanged_),void 0!==t.projection&&this.setProjection(t.projection),void 0!==t.trackingOptions&&this.setTrackingOptions(t.trackingOptions),this.setTracking(void 0!==t.tracking&&t.tracking)}disposeInternal(){this.setTracking(!1),super.disposeInternal()}handleProjectionChanged_(){const t=this.getProjection();t&&(this.transform_=qi(Ui("EPSG:4326"),t),this.position_&&this.set(Sr,this.transform_(this.position_)))}handleTrackingChanged_(){if("geolocation"in navigator){const t=this.getTracking();t&&void 0===this.watchId_?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):t||void 0===this.watchId_||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=void 0)}}positionChange_(t){const e=t.coords;this.set(mr,e.accuracy),this.set(yr,null===e.altitude?void 0:e.altitude),this.set(xr,null===e.altitudeAccuracy?void 0:e.altitudeAccuracy),this.set(vr,null===e.heading?void 0:ai(e.heading)),this.position_?(this.position_[0]=e.longitude,this.position_[1]=e.latitude):this.position_=[e.longitude,e.latitude];const i=this.transform_(this.position_);this.set(Sr,i),this.set(Tr,null===e.speed?void 0:e.speed);const n=dr(this.position_,e.accuracy);n.applyTransform(this.transform_),this.set(_r,n),this.changed()}positionError_(t){this.dispatchEvent(new br(t))}getAccuracy(){return this.get(mr)}getAccuracyGeometry(){return this.get(_r)||null}getAltitude(){return this.get(yr)}getAltitudeAccuracy(){return this.get(xr)}getHeading(){return this.get(vr)}getPosition(){return this.get(Sr)}getProjection(){return this.get(wr)}getSpeed(){return this.get(Tr)}getTracking(){return this.get(Er)}getTrackingOptions(){return this.get(Cr)}setProjection(t){this.set(wr,Ui(t))}setTracking(t){this.set(Er,t)}setTrackingOptions(t){this.set(Cr,t)}},xE.Image=Ar,xE.Image.listenImage=Or,xE.ImageBase=Rr,xE.ImageCanvas=Nr,xE.ImageTile=Vr,xE.Kinetic=Wr,xE.Map=Ya,xE.MapBrowserEvent=oo,xE.MapBrowserEventHandler=go,xE.MapEvent=so,xE.Object=V,xE.Object.ObjectEvent=X,xE.Observable=k,xE.Observable.unByKey=j,xE.Overlay=Qa,xE.Tile=st,xE.TileCache=ll,xE.TileQueue=Co,xE.TileQueue.getTilePriority=bo,xE.TileRange=hl,xE.TileRange.createOrUpdate=cl,xE.VectorRenderTile=dl,xE.VectorTile=gl,xE.View=zo,xE.View.createCenterConstraint=Vo,xE.View.createResolutionConstraint=Wo,xE.View.createRotationConstraint=Zo,xE.View.isNoopAnimation=Yo,xE.array={},xE.array.binarySearch=o,xE.array.equals=u,xE.array.extend=c,xE.array.isSorted=d,xE.array.linearFindNearest=l,xE.array.numberSafeCompareFunction=a,xE.array.remove=function(t,e){const i=t.indexOf(e),n=i>-1;return n&&t.splice(i,1),n},xE.array.reverseSubArray=h,xE.array.stableSort=function(t,e){const i=t.length,n=Array(t.length);let r;for(r=0;r<i;r++)n[r]={index:r,value:t[r]};for(n.sort((function(t,i){return e(t.value,i.value)||t.index-i.index})),r=0;r<t.length;r++)t[r]=n[r].value},xE.asserts={},xE.asserts.assert=at,xE.centerconstraint={},xE.centerconstraint.createExtent=Fo,xE.centerconstraint.none=Mo,xE.color={},xE.color.asArray=$r,xE.color.asString=Kr,xE.color.fromString=Hr,xE.color.isStringColor=ts,xE.color.normalize=Jr,xE.color.toString=Qr,xE.colorlike={},xE.colorlike.asColorLike=fl,xE.control={},xE.control.Attribution=Ho,xE.control.Control=qo,xE.control.FullScreen=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.on,this.once,this.un,this.keys_=void 0!==t.keys&&t.keys,this.source_=t.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==t.className?t.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==t.activeClassName?t.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==t.inactiveClassName?t.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const e=void 0!==t.label?t.label:"⤢";this.labelNode_="string"==typeof e?document.createTextNode(e):e;const i=void 0!==t.labelActive?t.labelActive:"×";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const n=t.tipLabel?t.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=n,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(E,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ol-unselectable ol-control`,this.element.appendChild(this.button_)}handleClick_(t){t.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const t=this.getMap();if(!t)return;const e=t.getOwnerDocument();if(aE(e))if(lE(e))!function(t){t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()}(e);else{let i;i=this.source_?"string"==typeof this.source_?e.getElementById(this.source_):this.source_:t.getTargetElement(),this.keys_?function(t){t.webkitRequestFullscreen?t.webkitRequestFullscreen():hE(t)}(i):hE(i)}}handleFullScreenChange_(){const t=this.getMap();if(!t)return;const e=this.isInFullscreen_;this.isInFullscreen_=lE(t.getOwnerDocument()),e!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Br(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(sE)):(Br(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(oE)),t.updateSize())}setClassName_(t,e){e?(t.classList.remove(...this.inactiveClassName_),t.classList.add(...this.activeClassName_)):(t.classList.remove(...this.activeClassName_),t.classList.add(...this.inactiveClassName_))}setMap(t){const e=this.getMap();e&&e.removeChangeListener(So,this.boundHandleMapTargetChange_),super.setMap(t),this.handleMapTargetChange_(),t&&t.addChangeListener(So,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const t=this.documentListeners_;for(let e=0,i=t.length;e<i;++e)G(t[e]);t.length=0;const e=this.getMap();if(e){const i=e.getOwnerDocument();aE(i)?this.element.classList.remove(Ps):this.element.classList.add(Ps);for(let e=0,n=rE.length;e<n;++e)t.push(N(i,rE[e],this.handleFullScreenChange_,this));this.handleFullScreenChange_()}}},xE.control.MousePosition=class extends qo{constructor(t){t=t||{};const e=document.createElement("div");e.className=void 0!==t.className?t.className:"ol-mouse-position",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un,this.addChangeListener(cE,this.handleProjectionChanged_),t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat),t.projection&&this.setProjection(t.projection),this.renderOnMouseOut_=void 0!==t.placeholder,this.placeholder_=this.renderOnMouseOut_?t.placeholder:" ",this.renderedHTML_=e.innerHTML,this.mapProjection_=null,this.transform_=null}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(uE)}getProjection(){return this.get(cE)}handleMouseMove(t){const e=this.getMap();this.updateHTML_(e.getEventPixel(t))}handleMouseOut(t){this.updateHTML_(null)}setMap(t){if(super.setMap(t),t){const e=t.getViewport();this.listenerKeys.push(N(e,lo,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(N(e,uo,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(t){this.set(uE,t)}setProjection(t){this.set(cE,Ui(t))}updateHTML_(t){let e=this.placeholder_;if(t&&this.mapProjection_){if(!this.transform_){const t=this.getProjection();this.transform_=t?qi(this.mapProjection_,t):ki}const i=this.getMap().getCoordinateFromPixelInternal(t);if(i){const t=en();t&&(this.transform_=qi(this.mapProjection_,t)),this.transform_(i,i);const n=this.getCoordinateFormat();e=n?n(i):i.toString()}}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=e,this.renderedHTML_=e)}render(t){const e=t.frameState;e?this.mapProjection_!=e.viewState.projection&&(this.mapProjection_=e.viewState.projection,this.transform_=null):this.mapProjection_=null}},xE.control.OverviewMap=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===t.collapsed||t.collapsed,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==t.rotateWithView&&t.rotateWithView,this.viewExtent_=void 0;const e=void 0!==t.className?t.className:"ol-overviewmap",i=void 0!==t.tipLabel?t.tipLabel:"Overview map",n=void 0!==t.collapseLabel?t.collapseLabel:"‹";"string"==typeof n?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=n):this.collapseLabel_=n;const r=void 0!==t.label?t.label:"›";"string"==typeof r?(this.label_=document.createElement("span"),this.label_.textContent=r):this.label_=r;const s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,o=document.createElement("button");o.setAttribute("type","button"),o.title=i,o.appendChild(s),o.addEventListener(E,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=t.view;const a=new Ya({view:t.view,controls:new q,interactions:new q});this.ovmap_=a,t.layers&&t.layers.forEach((function(t){a.addLayer(t)}));const l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new Qa({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);const h=e+" "+"ol-unselectable "+Is+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible"),c=this.element;c.className=h,c.appendChild(this.ovmapDiv_),c.appendChild(o);const u=this,d=this.boxOverlay_,g=this.boxOverlay_.getElement(),f=function(t){const e={clientX:(i=t).clientX,clientY:i.clientY};var i;const n=a.getEventCoordinateInternal(e);d.setPosition(n)},p=function(t){const e=a.getEventCoordinateInternal(t);u.getMap().getView().setCenterInternal(e),window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",p)};g.addEventListener("mousedown",(function(){window.addEventListener("mousemove",f),window.addEventListener("mouseup",p)}))}setMap(t){const e=this.getMap();if(t!==e){if(e){const t=e.getView();t&&this.unbindView_(t),this.ovmap_.setTarget(null)}if(super.setMap(t),t){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(N(t,r,this.handleMapPropertyChange_,this));const e=t.getView();e&&(this.bindView_(e),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(t){if(t.key===wo){const e=t.oldValue;e&&this.unbindView_(e);const i=this.getMap().getView();this.bindView_(i)}else this.ovmap_.isRendered()||t.key!==So&&t.key!==vo||this.ovmap_.updateSize()}bindView_(t){if(!this.view_){const e=new zo({projection:t.getProjection()});this.ovmap_.setView(e)}t.addChangeListener(Io.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(t){t.removeChangeListener(Io.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView().calculateExtentInternal(i);if(this.viewExtent_&&ee(n,this.viewExtent_))return;this.viewExtent_=n;const r=e.getSize(),s=e.getView().calculateExtentInternal(r),o=e.getPixelFromCoordinateInternal(xe(n)),a=e.getPixelFromCoordinateInternal(de(n)),l=Math.abs(o[0]-a[0]),h=Math.abs(o[1]-a[1]),c=r[0],u=r[1];l<c*gE||h<u*gE||l>c*dE||h>u*dE?this.resetExtent_():Yt(s,n)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),n=t.getView().calculateExtentInternal(i),r=e.getView(),s=Math.log(7.5)/Math.LN2;Ce(n,1/(Math.pow(2,s/2)*gE)),r.fitInternal(gr(n))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView(),r=e.getView(),s=this.rotateWithView_?0:-n.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=n.getCenterInternal(),h=n.getResolution(),c=r.getResolution(),u=i[0]*h/c,d=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=d+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=D(this.ovmap_,fo,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Ls),this.collapsed_?Br(this.collapseLabel_,this.label_):Br(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}},xE.control.Rotate=$o,xE.control.ScaleLine=class extends qo{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+Rs,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(fE,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get(fE)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set(fE,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r="degrees"==n?"degrees":"m";let s=zi(i,t.resolution,e,r);const o=this.minWidth_*(this.dpi_||mE)/mE,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||mE)/mE:void 0;let l=o*s,h="";if("degrees"==n){const t=Me.degrees;l*=t,l<t/60?(h="″",s*=3600):l<t?(h="′",s*=60):h="°"}else"imperial"==n?l<.9144?(h="in",s/=.0254):l<1609.344?(h="ft",s/=.3048):(h="mi",s/=1609.344):"nautical"==n?(s/=1852,h="NM"):"metric"==n?l<.001?(h="μm",s*=1e6):l<1?(h="mm",s*=1e3):l<1e3?h="m":(h="km",s/=1e3):"us"==n?l<.9144?(h="in",s*=39.37):l<1609.344?(h="ft",s/=.30480061):(h="mi",s/=1609.3472):at(!1,33);let c,u,d,g,f,p,m=3*Math.floor(Math.log(o*s)/Math.log(10));for(;;){d=Math.floor(m/3);const t=Math.pow(10,d);if(c=pE[(m%3+3)%3]*t,u=Math.round(c/s),isNaN(u))return this.element.style.display="none",void(this.renderedVisible_=!1);if(void 0!==a&&u>=a){c=g,u=f,d=p;break}if(u>=o)break;g=c,f=u,p=d,++m}const _=this.scaleBar_?this.createScaleBar(u,c,h):c.toFixed(d<0?-d:0)+" "+h;this.renderedHTML_!=_&&(this.innerElement_.innerHTML=_,this.renderedHTML_=_),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const n=this.getScaleForResolution(),r=n<1?Math.round(1/n).toLocaleString()+" : 1":"1 : "+Math.round(n).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let n=0;n<s;++n){const r=n%2==0?"ol-scale-singlebar-odd":"ol-scale-singlebar-even";a.push(`<div><div class="ol-scale-singlebar ${r}" style="width: ${o}px;"></div>`+this.createMarker("relative")+(n%2==0||2===s?this.createStepText(n,t,!1,e,i):"")+"</div>")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`<div class="ol-scale-text" style="width: ${t}px;">`+r+"</div>":"")+a.join("")}createMarker(t){return`<div class="ol-scale-step-marker" style="position: ${t}; top: ${"absolute"===t?3:-10}px;"></div>`}createStepText(t,e,i,n,r){const s=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+r);return`<div class="ol-scale-step-text" style="margin-left: ${0===t?-3:e/this.scaleBarSteps_*-1}px;text-align: ${0===t?"left":"center"};min-width: ${0===t?0:e/this.scaleBarSteps_*2}px;left: ${i?e+"px":"unset"};">`+s+"</div>"}getScaleForResolution(){return zi(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||mE)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}},xE.control.Zoom=Jo,xE.control.ZoomSlider=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=_E,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.startX_,this.startY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==t.duration?t.duration:200;const e=void 0!==t.className?t.className:"ol-zoomslider",i=document.createElement("button");i.setAttribute("type","button"),i.className=e+"-thumb "+Rs;const r=this.element;r.className=e+" "+"ol-unselectable "+Is,r.appendChild(i),r.addEventListener(ho,this.handleDraggerStart_.bind(this),!1),r.addEventListener(lo,this.handleDraggerDrag_.bind(this),!1),r.addEventListener(co,this.handleDraggerEnd_.bind(this),!1),r.addEventListener(E,this.handleContainerClick_.bind(this),!1),i.addEventListener(E,n,!1)}setMap(t){super.setMap(t),t&&t.render()}initSlider_(){const t=this.element;let e=t.offsetWidth,i=t.offsetHeight;if(0===e&&0===i)return this.sliderInitialized_=!1;const n=getComputedStyle(t);e-=parseFloat(n.paddingRight)+parseFloat(n.paddingLeft),i-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom);const r=t.firstElementChild,s=getComputedStyle(r),o=r.offsetWidth+parseFloat(s.marginRight)+parseFloat(s.marginLeft),a=r.offsetHeight+parseFloat(s.marginTop)+parseFloat(s.marginBottom);return this.thumbSize_=[o,a],e>i?(this.direction_=yE,this.widthLimit_=e-o):(this.direction_=_E,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(i),r=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:r,duration:this.duration_,easing:it})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(N(i,lo,t,this),N(i,co,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,n=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(G),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==yE?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===yE?t/this.widthLimit_:e/this.heightLimit_,ii(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){return ii(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}},xE.control.ZoomToExtent=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.extent=t.extent?t.extent:null;const e=void 0!==t.className?t.className:"ol-zoom-extent",i=void 0!==t.label?t.label:"E",n=void 0!==t.tipLabel?t.tipLabel:"Fit to extent",r=document.createElement("button");r.setAttribute("type","button"),r.title=n,r.appendChild("string"==typeof i?document.createTextNode(i):i),r.addEventListener(E,this.handleClick_.bind(this),!1);const s=e+" "+"ol-unselectable "+Is,o=this.element;o.className=s,o.appendChild(r)}handleClick_(t){t.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){const t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fitInternal(gr(e))}},xE.control.defaults={},xE.control.defaults.defaults=Qo,xE.coordinate={},xE.coordinate.add=mi,xE.coordinate.closestOnCircle=_i,xE.coordinate.closestOnSegment=yi,xE.coordinate.createStringXY=function(t){return function(e){return Ri(e,t)}},xE.coordinate.degreesToStringHDMS=xi,xE.coordinate.distance=Ci,xE.coordinate.equals=Si,xE.coordinate.format=vi,xE.coordinate.getWorldsAway=Ii,xE.coordinate.rotate=wi,xE.coordinate.scale=Ti,xE.coordinate.squaredDistance=Ei,xE.coordinate.squaredDistanceToSegment=bi,xE.coordinate.toStringHDMS=function(t,e){return t?xi("NS",t[1],e)+" "+xi("EW",t[0],e):""},xE.coordinate.toStringXY=Ri,xE.coordinate.wrapX=Pi,xE.css={},xE.css.CLASS_COLLAPSED=Ls,xE.css.CLASS_CONTROL=Is,xE.css.CLASS_HIDDEN=Cs,xE.css.CLASS_SELECTABLE=bs,xE.css.CLASS_UNSELECTABLE=Rs,xE.css.CLASS_UNSUPPORTED=Ps,xE.css.getFontParameters=As,xE.dom={},xE.dom.createCanvasContext2D=Dr,xE.dom.outerHeight=jr,xE.dom.outerWidth=kr,xE.dom.releaseCanvas=Gr,xE.dom.removeChildren=zr,xE.dom.removeNode=Ur,xE.dom.replaceChildren=Xr,xE.dom.replaceNode=Br,xE.easing={},xE.easing.easeIn=et,xE.easing.easeOut=it,xE.easing.inAndOut=nt,xE.easing.linear=rt,xE.easing.upAndDown=function(t){return t<.5?nt(2*t):1-nt(2*(t-.5))},xE.events={},xE.events.Event=i,xE.events.Event.preventDefault=function(t){t.preventDefault()},xE.events.Event.stopPropagation=n,xE.events.Target=v,xE.events.condition={},xE.events.condition.all=aa,xE.events.condition.altKeyOnly=la,xE.events.condition.altShiftKeysOnly=ha,xE.events.condition.always=da,xE.events.condition.click=function(t){return t.type==ao.CLICK},xE.events.condition.doubleClick=function(t){return t.type==ao.DBLCLICK},xE.events.condition.focus=ca,xE.events.condition.focusWithTabindex=ua,xE.events.condition.mouseActionButton=ga,xE.events.condition.mouseOnly=xa,xE.events.condition.never=fa,xE.events.condition.noModifierKeys=ma,xE.events.condition.penOnly=function(t){const e=t.originalEvent;return at(void 0!==e,56),"pen"===e.pointerType},xE.events.condition.platformModifierKeyOnly=function(t){const e=t.originalEvent;return!e.altKey&&(pt?e.metaKey:e.ctrlKey)&&!e.shiftKey},xE.events.condition.pointerMove=function(t){return"pointermove"==t.type},xE.events.condition.primaryAction=va,xE.events.condition.shiftKeyOnly=_a,xE.events.condition.singleClick=pa,xE.events.condition.targetNotEditable=ya,xE.events.condition.touchOnly=function(t){const e=t.originalEvent;return at(void 0!==e,56),"touch"===e.pointerType},xE.events.listen=N,xE.events.listenOnce=D,xE.events.unlistenByKey=G,xE.extent={},xE.extent.applyTransform=Re,xE.extent.approximatelyEquals=ie,xE.extent.boundingExtent=zt,xE.extent.buffer=Xt,xE.extent.clone=Vt,xE.extent.closestSquaredDistanceXY=Wt,xE.extent.containsCoordinate=Zt,xE.extent.containsExtent=Yt,xE.extent.containsXY=Kt,xE.extent.coordinateRelationship=qt,xE.extent.createEmpty=Ht,xE.extent.createOrUpdate=$t,xE.extent.createOrUpdateEmpty=Jt,xE.extent.createOrUpdateFromCoordinate=Qt,xE.extent.createOrUpdateFromCoordinates=function(t,e){return se(Jt(e),t)},xE.extent.createOrUpdateFromFlatCoordinates=te,xE.extent.createOrUpdateFromRings=function(t,e){return ae(Jt(e),t)},xE.extent.equals=ee,xE.extent.extend=ne,xE.extent.extendCoordinate=re,xE.extent.extendCoordinates=se,xE.extent.extendFlatCoordinates=oe,xE.extent.extendRings=ae,xE.extent.extendXY=le,xE.extent.forEachCorner=he,xE.extent.getArea=ce,xE.extent.getBottomLeft=ue,xE.extent.getBottomRight=de,xE.extent.getCenter=ge,xE.extent.getCorner=fe,xE.extent.getEnlargedArea=function(t,e){const i=Math.min(t[0],e[0]),n=Math.min(t[1],e[1]);return(Math.max(t[2],e[2])-i)*(Math.max(t[3],e[3])-n)},xE.extent.getForViewAndSize=pe,xE.extent.getHeight=_e,xE.extent.getIntersection=ye,xE.extent.getIntersectionArea=function(t,e){return ce(ye(t,e))},xE.extent.getMargin=function(t){return Se(t)+_e(t)},xE.extent.getRotatedViewport=me,xE.extent.getSize=function(t){return[t[2]-t[0],t[3]-t[1]]},xE.extent.getTopLeft=xe,xE.extent.getTopRight=ve,xE.extent.getWidth=Se,xE.extent.intersects=we,xE.extent.intersectsSegment=be,xE.extent.isEmpty=Te,xE.extent.returnOrUpdate=Ee,xE.extent.scaleFromCenter=Ce,xE.extent.wrapAndSliceX=Ie,xE.extent.wrapX=Pe,xE.featureloader={},xE.featureloader.loadFeaturesXhr=_l,xE.featureloader.setWithCredentials=function(t){ml=t},xE.featureloader.xhr=yl,xE.format={},xE.format.EsriJSON=class extends C_{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const n=t,r=I_(n.geometry,e),s=new lt;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(r),n.attributes){s.setProperties(n.attributes,!0);const t=n.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],n=t.features;for(let r=0,s=n.length;r<s;++r)i.push(this.readFeatureFromObject(n[r],e,t.objectIdFieldName));return i}return[this.readFeatureFromObject(t,e)]}readGeometryFromObject(t,e){return I_(t,e)}readProjectionFromObject(t){if(t.spatialReference&&void 0!==t.spatialReference.wkid){return Ui("EPSG:"+t.spatialReference.wkid)}return null}writeGeometryObject(t,e){return M_(t,this.adaptOptions(e))}writeFeatureObject(t,e){e=this.adaptOptions(e);const i={};if(!t.hasProperties())return i.attributes={},i;const n=t.getProperties(),r=t.getGeometry();if(r){i.geometry=M_(r,e);const s=e&&(e.dataProjection||e.featureProjection);s&&(i.geometry.spatialReference={wkid:Number(Ui(s).getCode().split(":").pop())}),delete n[t.getGeometryName()]}return x(n)?i.attributes={}:i.attributes=n,i}writeFeaturesObject(t,e){e=this.adaptOptions(e);const i=[];for(let n=0,r=t.length;n<r;++n)i.push(this.writeFeatureObject(t[n],e));return{features:i}}},xE.format.Feature=tm,xE.format.Feature.transformExtentWithOptions=im,xE.format.Feature.transformGeometryWithOptions=em,xE.format.GML=ey,xE.format.GML2=J_,xE.format.GML3=ty,xE.format.GML32=iy,xE.format.GMLBase=D_,xE.format.GMLBase.GMLNS=O_,xE.format.GPX=class extends A_{constructor(t){super(),t=t||{},this.dataProjection=Ui("EPSG:4326"),this.readExtensions_=t.readExtensions}handleReadExtensions_(t){t||(t=[]);for(let e=0,i=t.length;e<i;++e){const i=t[e];if(this.readExtensions_){const t=i.get("extensionsNode_")||null;this.readExtensions_(i,t)}i.set("extensionsNode_",void 0)}}readFeatureFromNode(t,e){if(!ny.includes(t.namespaceURI))return null;const i=ry[t.localName];if(!i)return null;const n=i(t,[this.getReadOptions(t,e)]);return n?(this.handleReadExtensions_([n]),n):null}readFeaturesFromNode(t,e){if(!ny.includes(t.namespaceURI))return[];if("gpx"==t.localName){const i=Mu([],sy,t,[this.getReadOptions(t,e)]);return i?(this.handleReadExtensions_(i),i):[]}return[]}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=fu("http://www.topografix.com/GPX/1/1","gpx");return i.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi",gu),i.setAttributeNS(gu,"xsi:schemaLocation","http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"),i.setAttribute("version","1.1"),i.setAttribute("creator","OpenLayers"),Ou({node:i},ay,by,t,[e]),i}},xE.format.GeoJSON=class extends C_{constructor(t){t=t||{},super(),this.dataProjection=Ui(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=Ui(t.featureProjection)),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let i=null;i="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const n=Dy(i.geometry,e),r=new lt;return this.geometryName_?r.setGeometryName(this.geometryName_):this.extractGeometryName_&&"geometry_name"in i!==void 0&&r.setGeometryName(i.geometry_name),r.setGeometry(n),"id"in i&&r.setId(i.id),i.properties&&r.setProperties(i.properties,!0),r}readFeaturesFromObject(t,e){let i=null;if("FeatureCollection"===t.type){i=[];const n=t.features;for(let t=0,r=n.length;t<r;++t)i.push(this.readFeatureFromObject(n[t],e))}else i=[this.readFeatureFromObject(t,e)];return i}readGeometryFromObject(t,e){return Dy(t,e)}readProjectionFromObject(t){const e=t.crs;let i;return e?"name"==e.type?i=Ui(e.properties.name):"EPSG"===e.type?i=Ui("EPSG:"+e.properties.code):at(!1,36):i=this.dataProjection,i}writeFeatureObject(t,e){e=this.adaptOptions(e);const i={type:"Feature",geometry:null,properties:null},n=t.getId();if(void 0!==n&&(i.id=n),!t.hasProperties())return i;const r=t.getProperties(),s=t.getGeometry();return s&&(i.geometry=Gy(s,e),delete r[t.getGeometryName()]),x(r)||(i.properties=r),i}writeFeaturesObject(t,e){e=this.adaptOptions(e);const i=[];for(let n=0,r=t.length;n<r;++n)i.push(this.writeFeatureObject(t[n],e));return{type:"FeatureCollection",features:i}}writeGeometryObject(t,e){return Gy(t,this.adaptOptions(e))}},xE.format.IGC=class extends ky{constructor(t){super(),t=t||{},this.dataProjection=Ui("EPSG:4326"),this.altitudeMode_=t.altitudeMode?t.altitudeMode:"none"}readFeatureFromText(t,e){const i=this.altitudeMode_,n=t.split(Xy),r={},s=[];let o,a,l=2e3,h=0,c=1,u=-1;for(o=0,a=n.length;o<a;++o){const t=n[o];let e;if("B"==t.charAt(0)){if(e=By.exec(t),e){const t=parseInt(e[1],10),n=parseInt(e[2],10),r=parseInt(e[3],10);let o=parseInt(e[4],10)+parseInt(e[5],10)/6e4;"S"==e[6]&&(o=-o);let a=parseInt(e[7],10)+parseInt(e[8],10)/6e4;if("W"==e[9]&&(a=-a),s.push(a,o),"none"!=i){let t;t="gps"==i?parseInt(e[11],10):"barometric"==i?parseInt(e[12],10):0,s.push(t)}let d=Date.UTC(l,h,c,t,n,r);d<u&&(d=Date.UTC(l,h,c+1,t,n,r)),s.push(d/1e3),u=d}}else"H"==t.charAt(0)&&(e=zy.exec(t),e?(c=parseInt(e[1],10),h=parseInt(e[2],10)-1,l=2e3+parseInt(e[3],10)):(e=Uy.exec(t),e&&(r[e[1]]=e[2].trim())))}if(0===s.length)return null;const d=new Dp(s,"none"==i?"XYM":"XYZM"),g=new lt(em(d,!1,e));return g.setProperties(r,!0),g}readFeaturesFromText(t,e){const i=this.readFeatureFromText(t,e);return i?[i]:[]}},xE.format.IIIFInfo=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e<t.length;e++)switch(t[e]){case"http://library.stanford.edu/iiif/image-api/1.1/context.json":case"http://iiif.io/api/image/1/context.json":return oc;case"http://iiif.io/api/image/2/context.json":return ac;case"http://iiif.io/api/image/3/context.json":return lc;case"ol-no-context":if(this.getComplianceLevelEntryFromProfile(oc)&&this.imageInfo.identifier)return oc}at(!1,61)}getComplianceLevelEntryFromProfile(t){if(void 0!==this.imageInfo&&void 0!==this.imageInfo.profile)switch(void 0===t&&(t=this.getImageApiVersion()),t){case oc:if(cc.test(this.imageInfo.profile))return this.imageInfo.profile;break;case lc:if(dc.test(this.imageInfo.profile))return this.imageInfo.profile;break;case ac:if("string"==typeof this.imageInfo.profile&&uc.test(this.imageInfo.profile))return this.imageInfo.profile;if(Array.isArray(this.imageInfo.profile)&&this.imageInfo.profile.length>0&&"string"==typeof this.imageInfo.profile[0]&&uc.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?hc.none.none:hc[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const n=void 0===i?void 0:gc[i](this);return void 0!==n?{url:n.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}:void 0}},xE.format.JSONFeature=C_,xE.format.KML=class extends A_{constructor(t){super(),t=t||{},gx||(Qy=[255,255,255,1],sx=new og({color:Qy}),tx=[20,2],ex="pixels",ix="pixels",nx=[64,64],rx="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",ax=new cg({anchor:tx,anchorOrigin:"bottom-left",anchorXUnits:ex,anchorYUnits:ix,crossOrigin:"anonymous",rotation:0,scale:fx(nx),size:nx,src:rx}),ox="NO_IMAGE",hx=new ug({color:Qy,width:1}),lx=new ug({color:[51,51,51,1],width:2}),cx=new yg({font:"bold 16px Helvetica",fill:sx,stroke:lx,scale:.8}),ux=new dg({fill:sx,image:ax,text:cx,stroke:hx,zIndex:0}),gx=[ux]),this.dataProjection=Ui("EPSG:4326"),this.defaultStyle_=t.defaultStyle?t.defaultStyle:gx,this.extractStyles_=void 0===t.extractStyles||t.extractStyles,this.writeStyles_=void 0===t.writeStyles||t.writeStyles,this.sharedStyles_={},this.showPointNames_=void 0===t.showPointNames||t.showPointNames,this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",this.iconUrlFunction_=t.iconUrlFunction?t.iconUrlFunction:px,this.supportedMediaTypes=["application/vnd.google-earth.kml+xml"]}readDocumentOrFolder_(t,e){const i=Mu([],Lu(Wy,{Document:vu(this.readDocumentOrFolder_,this),Folder:vu(this.readDocumentOrFolder_,this),Placemark:Su(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),t,e,this);if(i)return i}readPlacemark_(t,e){const i=Mu({geometry:null},Yy,t,e,this);if(!i)return;const n=new lt,r=t.getAttribute("id");null!==r&&n.setId(r);const s=e[0],o=i.geometry;if(o&&em(o,!1,s),n.setGeometry(o),delete i.geometry,this.extractStyles_){const t=function(t,e,i,n,r){return function(s,o){let a=r,l="",h=[];if(a){const t=s.getGeometry();if(t)if(t instanceof Fp)h=t.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Point"===e||"MultiPoint"===e})),a=h.length>0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(dx||(dx=document.createElement("textarea")),dx.innerHTML=l,l=dx.value));let c=i;if(t?c=t:e&&(c=mx(e,i,n)),a){const t=function(t,e){const i=[0,0];let n="start";const r=t.getImage();if(r){const t=r.getSize();if(t&&2==t.length){const e=r.getScaleArray(),s=r.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),n="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||cx.getFont()),s.setScale(s.getScale()||cx.getScale()),s.setFill(s.getFill()||cx.getFill()),s.setStroke(s.getStroke()||lx)):s=cx.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(n);return new dg({image:r,text:s})}(c[0],l);if(h.length>0){t.setGeometry(new Fp(h));return[t,new dg({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(t)}return delete i.Style,n.setProperties(i,!0),n}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const n=Wx.call(this,t,e);if(n){let e,r=t.baseURI;if(r&&"about:blank"!=r||(r=window.location.href),r){e=new URL("#"+i,r).href}else e="#"+i;this.sharedStyles_[e]=n}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const n=Tx.call(this,t,e);if(!n)return;let r,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){r=new URL("#"+i,s).href}else r="#"+i;this.sharedStyles_[r]=n}readFeatureFromNode(t,e){if(!Wy.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!Wy.includes(t.namespaceURI))return[];let i;const n=t.localName;if("Document"==n||"Folder"==n)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==n){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){i=[];for(let n=t.firstElementChild;n;n=n.nextElementSibling){const t=this.readFeaturesFromNode(n,e);t&&c(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=xu(t);return this.readNameFromDocument(e)}return _u(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(Wy.includes(e.namespaceURI)&&"name"==e.localName)return V_(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(Wy.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=xu(t);c(e,this.readNetworkLinksFromDocument(i))}else _u(t)?c(e,this.readNetworkLinksFromDocument(t)):c(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&c(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(Wy.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=Mu({},Ky,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!Wy.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||c(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=xu(t);c(e,this.readRegionFromDocument(i))}else _u(t)?c(e,this.readRegionFromDocument(t)):c(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&c(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(Wy.includes(i.namespaceURI)&&"Region"==i.localName){const t=Mu({},Hy,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!Wy.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||c(e,this.readRegionFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=fu(Wy[4],"kml"),n="http://www.w3.org/2000/xmlns/";i.setAttributeNS(n,"xmlns:gx",Vy[0]),i.setAttributeNS(n,"xmlns:xsi",gu),i.setAttributeNS(gu,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const r={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=$y[i.namespaceURI],a=Iu(s,o);return Ou(r,Jy,Pu,a,[e],o,this),i}},xE.format.KML.getDefaultFillStyle=function(){return sx},xE.format.KML.getDefaultImageStyle=function(){return ax},xE.format.KML.getDefaultStrokeStyle=function(){return hx},xE.format.KML.getDefaultStyle=function(){return ux},xE.format.KML.getDefaultStyleArray=function(){return gx},xE.format.KML.getDefaultTextStyle=function(){return cx},xE.format.KML.readFlatCoordinates=yx,xE.format.MVT=Cm,xE.format.OSMXML=class extends A_{constructor(){super(),this.dataProjection=Ui("EPSG:4326")}readFeaturesFromNode(t,e){if(e=this.getReadOptions(t,e),"osm"==t.localName){const i=Mu({nodes:{},ways:[],features:[]},Wv,t,[e]);for(let t=0;t<i.ways.length;t++){const n=i.ways[t],r=[];for(let t=0,e=n.ndrefs.length;t<e;t++){c(r,i.nodes[n.ndrefs[t]])}let s;s=n.ndrefs[0]==n.ndrefs[n.ndrefs.length-1]?new ur(r,"XY",[r.length]):new Dp(r,"XY"),em(s,!1,e);const o=new lt(s);void 0!==n.id&&o.setId(n.id),o.setProperties(n.tags,!0),i.features.push(o)}if(i.features)return i.features}return[]}},xE.format.OWS=Jv,xE.format.Polyline=class extends ky{constructor(t){super(),t=t||{},this.dataProjection=Ui("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new lt(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=yn(this.geometryLayout_),n=gS(t,i,this.factor_);E_(n,0,n.length,i,n);const r=kn(n,0,n.length,i);return em(new Dp(r,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();return i?this.writeGeometryText(i,e):(at(!1,40),"")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=em(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return E_(i,0,i.length,n,i),dS(i,n,this.factor_)}},xE.format.Polyline.decodeDeltas=gS,xE.format.Polyline.decodeFloats=pS,xE.format.Polyline.decodeSignedIntegers=_S,xE.format.Polyline.decodeUnsignedIntegers=xS,xE.format.Polyline.encodeDeltas=dS,xE.format.Polyline.encodeFloats=fS,xE.format.Polyline.encodeSignedIntegers=mS,xE.format.Polyline.encodeUnsignedInteger=vS,xE.format.Polyline.encodeUnsignedIntegers=yS,xE.format.TextFeature=ky,xE.format.TopoJSON=class extends C_{constructor(t){super(),t=t||{},this.layerName_=t.layerName,this.layers_=t.layers?t.layers:null,this.dataProjection=Ui(t.dataProjection?t.dataProjection:"EPSG:4326")}readFeaturesFromObject(t,e){if("Topology"==t.type){const i=t;let n,r=null,s=null;i.transform&&(n=i.transform,r=n.scale,s=n.translate);const o=i.arcs;n&&function(t,e,i){for(let n=0,r=t.length;n<r;++n)CS(t[n],e,i)}(o,r,s);const a=[],l=i.objects,h=this.layerName_;let c;for(const t in l)this.layers_&&!this.layers_.includes(t)||("GeometryCollection"===l[t].type?(c=l[t],a.push.apply(a,TS(c,o,r,s,h,t,e))):(c=l[t],a.push(ES(c,o,r,s,h,t,e))));return a}return[]}readProjectionFromObject(t){return this.dataProjection}},xE.format.WFS=class extends A_{constructor(t){super(),t=t||{},this.version_=t.version?t.version:"1.1.0",this.featureType_=t.featureType,this.featureNS_=t.featureNS,this.gmlFormat_=t.gmlFormat?t.gmlFormat:new uw[this.version_],this.schemaLocation_=t.schemaLocation?t.schemaLocation:cw[this.version_]}getFeatureType(){return this.featureType_}setFeatureType(t){this.featureType_=t}readFeaturesFromNode(t,e){const i={node:t};Object.assign(i,{featureType:this.featureType_,featureNS:this.featureNS_}),Object.assign(i,this.getReadOptions(t,e||{}));const n=[i];let r;r="2.0.0"===this.version_?tw:this.gmlFormat_.FEATURE_COLLECTION_PARSERS;let s=Mu([],r,t,n,this.gmlFormat_);return s||(s=[]),s}readTransactionResponse(t){if(t){if("string"==typeof t){const e=xu(t);return this.readTransactionResponseFromDocument(e)}return _u(t)?this.readTransactionResponseFromDocument(t):this.readTransactionResponseFromNode(t)}}readFeatureCollectionMetadata(t){if(t){if("string"==typeof t){const e=xu(t);return this.readFeatureCollectionMetadataFromDocument(e)}return _u(t)?this.readFeatureCollectionMetadataFromDocument(t):this.readFeatureCollectionMetadataFromNode(t)}}readFeatureCollectionMetadataFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readFeatureCollectionMetadataFromNode(e)}readFeatureCollectionMetadataFromNode(t){const e={},i=X_(t.getAttribute("numberOfFeatures"));return e.numberOfFeatures=i,Mu(e,tw,t,[],this.gmlFormat_)}readTransactionResponseFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readTransactionResponseFromNode(e)}readTransactionResponseFromNode(t){return Mu({},iw,t,[])}writeGetFeature(t){const e=fu(lw[this.version_],"GetFeature");e.setAttribute("service","WFS"),e.setAttribute("version",this.version_),t.handle&&e.setAttribute("handle",t.handle),t.outputFormat&&e.setAttribute("outputFormat",t.outputFormat),void 0!==t.maxFeatures&&e.setAttribute("maxFeatures",String(t.maxFeatures)),t.resultType&&e.setAttribute("resultType",t.resultType),void 0!==t.startIndex&&e.setAttribute("startIndex",String(t.startIndex)),void 0!==t.count&&e.setAttribute("count",String(t.count)),void 0!==t.viewParams&&e.setAttribute("viewParams",t.viewParams),e.setAttributeNS(gu,"xsi:schemaLocation",this.schemaLocation_);const i={node:e};if(Object.assign(i,{version:this.version_,srsName:t.srsName,featureNS:t.featureNS?t.featureNS:this.featureNS_,featurePrefix:t.featurePrefix,propertyNames:t.propertyNames?t.propertyNames:[]}),at(Array.isArray(t.featureTypes),11),"string"==typeof t.featureTypes[0]){let n=t.filter;t.bbox&&(at(t.geometryName,12),n=this.combineBboxAndFilter(t.geometryName,t.bbox,t.srsName,n)),Object.assign(i,{geometryName:t.geometryName,filter:n}),zw(e,t.featureTypes,[i])}else t.featureTypes.forEach((n=>{const r=this.combineBboxAndFilter(n.geometryName,n.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:n.geometryName,filter:r}),zw(e,[n.name],[i])}));return e}combineBboxAndFilter(t,e,i,n){const r=QS(t,e,i);return n?JS(n,r):r}writeTransaction(t,e,i,n){const r=[],s=n.version?n.version:this.version_,o=fu(lw[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),n&&(a=n.gmlOptions?n.gmlOptions:{},n.handle&&o.setAttribute("handle",n.handle)),o.setAttributeNS(gu,"xsi:schemaLocation",cw[s]);const l=function(t,e,i,n){const r=n.featurePrefix?n.featurePrefix:sw;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);return Object.assign({node:t},{version:i,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:r,gmlVersion:s,hasZ:n.hasZ,srsName:n.srsName},e)}(o,a,s,n);return t&&dw("Insert",t,r,l),e&&dw("Update",e,r,l),i&&dw("Delete",i,r,l),n.nativeElements&&dw("Native",n.nativeElements,r,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),Ui(t.pop().srsName)}return null}},xE.format.WFS.writeFilter=function(t,e){const i=fu(Xw(e=e||"1.1.0"),"Filter"),n={node:i};return Object.assign(n,{version:e,filter:t}),Rw(i,t,[n]),i},xE.format.WKB=class extends tm{constructor(t){super(),t=t||{},this.splitCollection=Boolean(t.splitCollection),this.viewCache_=null,this.hex_=!1!==t.hex,this.littleEndian_=!1!==t.littleEndian,this.ewkb_=!1!==t.ewkb,this.layout_=t.geometryLayout,this.nodataZ_=t.nodataZ||0,this.nodataM_=t.nodataM||0,this.srid_=t.srid}getType(){return this.hex_?"text":"arraybuffer"}readFeature(t,e){return new lt({geometry:this.readGeometry(t,e)})}readFeatures(t,e){let i=[];const n=this.readGeometry(t,e);return i=this.splitCollection&&n instanceof Fp?n.getGeometriesArray():[n],i.map((t=>new lt({geometry:t})))}readGeometry(t,e){const i=iT(t);if(!i)return null;const n=new tT(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,em(n,!1,e)}readProjection(t){const e=this.viewCache_||iT(t);if(!e)return;const i=new tT(e);return i.readWkbHeader(),i.getSrid()&&Ui("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new Fp(t.map((t=>t.getGeometry()))),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new eT({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let n=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&Ui(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(n=Number(e.substring(5)))}}i.writeGeometry(em(t,!0,e),n);const r=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map((t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase())).join("")}(r):r}},xE.format.WKT=class extends ky{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new gT(t);return new fT(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),n=new lt;return n.setGeometry(i),n}readFeaturesFromText(t,e){let i=[];const n=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==n.getType()?n.getGeometriesArray():[n];const r=[];for(let t=0,e=i.length;t<e;++t){const e=new lt;e.setGeometry(i[t]),r.push(e)}return r}readGeometryFromText(t,e){return em(this.parse_(t),!1,e)}writeFeatureText(t,e){const i=t.getGeometry();return i?this.writeGeometryText(i,e):""}writeFeaturesText(t,e){if(1==t.length)return this.writeFeatureText(t[0],e);const i=[];for(let e=0,n=t.length;e<n;++e)i.push(t[e].getGeometry());const n=new Fp(i);return this.writeGeometryText(n,e)}writeGeometryText(t,e){return xT(em(t,!0,e))}},xE.format.WMSCapabilities=class extends Kv{constructor(){super(),this.version=void 0}readFromNode(t){this.version=t.getAttribute("version").trim();const e=Mu({version:this.version},ST,t,[]);return e||null}},xE.format.WMSGetFeatureInfo=class extends A_{constructor(t){super(),t=t||{},this.featureNS_="http://mapserver.gis.umn.edu/mapserver",this.gmlFormat_=new J_,this.layers_=t.layers?t.layers:null}getLayers(){return this.layers_}setLayers(t){this.layers_=t}readFeatures_(t,e){t.setAttribute("namespaceURI",this.featureNS_);const i=t.localName;let n=[];if(0===t.childNodes.length)return n;if("msGMLOutput"==i)for(let i=0,r=t.childNodes.length;i<r;i++){const r=t.childNodes[i];if(r.nodeType!==Node.ELEMENT_NODE)continue;const s=r,o=e[0],a="_layer",l=s.localName.replace(a,"");if(this.layers_&&!this.layers_.includes(l))continue;const h=l+"_feature";o.featureType=h,o.featureNS=this.featureNS_;const u={};u[h]=Su(this.gmlFormat_.readFeatureElement,this.gmlFormat_);const d=Lu([o.featureNS,null],u);s.setAttribute("namespaceURI",this.featureNS_);const g=Mu([],d,s,e,this.gmlFormat_);g&&c(n,g)}if("FeatureCollection"==i){const e=Mu([],this.gmlFormat_.FEATURE_COLLECTION_PARSERS,t,[{}],this.gmlFormat_);e&&(n=e)}return n}readFeaturesFromNode(t,e){const i={};return e&&Object.assign(i,this.getReadOptions(t,e)),this.readFeatures_(t,[i])}},xE.format.WMTSCapabilities=class extends Kv{constructor(){super(),this.owsParser_=new Jv}readFromNode(t){let e=t.getAttribute("version");e&&(e=e.trim());let i=this.owsParser_.readFromNode(t);return i?(i.version=e,i=Mu(i,WT,t,[]),i||null):null}},xE.format.XML=Kv,xE.format.XMLFeature=A_,xE.format.filter={},xE.format.filter.And=IS,xE.format.filter.Bbox=LS,xE.format.filter.Comparison=NS,xE.format.filter.ComparisonBinary=GS,xE.format.filter.Contains=MS,xE.format.filter.DWithin=AS,xE.format.filter.Disjoint=OS,xE.format.filter.During=DS,xE.format.filter.EqualTo=kS,xE.format.filter.Filter=RS,xE.format.filter.GreaterThan=jS,xE.format.filter.GreaterThanOrEqualTo=BS,xE.format.filter.Intersects=US,xE.format.filter.IsBetween=zS,xE.format.filter.IsLike=XS,xE.format.filter.IsNull=VS,xE.format.filter.LessThan=WS,xE.format.filter.LessThanOrEqualTo=ZS,xE.format.filter.LogicalNary=PS,xE.format.filter.Not=YS,xE.format.filter.NotEqualTo=KS,xE.format.filter.Or=qS,xE.format.filter.ResourceId=HS,xE.format.filter.Spatial=FS,xE.format.filter.Within=$S,xE.format.filter.and=JS,xE.format.filter.bbox=QS,xE.format.filter.between=function(t,e,i){return new zS(t,e,i)},xE.format.filter.contains=function(t,e,i){return new MS(t,e,i)},xE.format.filter.disjoint=function(t,e,i){return new OS(t,e,i)},xE.format.filter.during=function(t,e,i){return new DS(t,e,i)},xE.format.filter.dwithin=function(t,e,i,n,r){return new AS(t,e,i,n,r)},xE.format.filter.equalTo=function(t,e,i){return new kS(t,e,i)},xE.format.filter.greaterThan=function(t,e){return new jS(t,e)},xE.format.filter.greaterThanOrEqualTo=function(t,e){return new BS(t,e)},xE.format.filter.intersects=function(t,e,i){return new US(t,e,i)},xE.format.filter.isNull=function(t){return new VS(t)},xE.format.filter.lessThan=function(t,e){return new WS(t,e)},xE.format.filter.lessThanOrEqualTo=function(t,e){return new ZS(t,e)},xE.format.filter.like=function(t,e,i,n,r,s){return new XS(t,e,i,n,r,s)},xE.format.filter.not=function(t){return new YS(t)},xE.format.filter.notEqualTo=function(t,e,i){return new KS(t,e,i)},xE.format.filter.or=function(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(qS,e))},xE.format.filter.resourceId=function(t){return new HS(t)},xE.format.filter.within=function(t,e,i){return new $S(t,e,i)},xE.format.xlink={},xE.format.xlink.readHref=qv,xE.format.xsd={},xE.format.xsd.readBoolean=G_,xE.format.xsd.readBooleanString=k_,xE.format.xsd.readDateTime=j_,xE.format.xsd.readDecimal=B_,xE.format.xsd.readDecimalString=U_,xE.format.xsd.readNonNegativeIntegerString=X_,xE.format.xsd.readPositiveInteger=z_,xE.format.xsd.readString=V_,xE.format.xsd.writeBooleanTextNode=W_,xE.format.xsd.writeCDATASection=Z_,xE.format.xsd.writeDateTimeTextNode=Y_,xE.format.xsd.writeDecimalTextNode=K_,xE.format.xsd.writeNonNegativeIntegerTextNode=q_,xE.format.xsd.writeStringTextNode=H_,xE.functions={},xE.functions.FALSE=f,xE.functions.TRUE=g,xE.functions.VOID=p,xE.functions.memoizeOne=m,xE.functions.toPromise=_,xE.geom={},xE.geom.Circle=Lp,xE.geom.Geometry=mn,xE.geom.GeometryCollection=Fp,xE.geom.LineString=Dp,xE.geom.LinearRing=Vn,xE.geom.MultiLineString=Gp,xE.geom.MultiPoint=kp,xE.geom.MultiPolygon=Bp,xE.geom.Point=Wn,xE.geom.Polygon=ur,xE.geom.Polygon.circular=dr,xE.geom.Polygon.fromCircle=fr,xE.geom.Polygon.fromExtent=gr,xE.geom.Polygon.makeRegular=pr,xE.geom.SimpleGeometry=_n,xE.geom.SimpleGeometry.getStrideForLayout=yn,xE.geom.SimpleGeometry.transformGeom2D=xn,xE.geom.flat={},xE.geom.flat.area={},xE.geom.flat.area.linearRing=Un,xE.geom.flat.area.linearRings=zn,xE.geom.flat.area.linearRingss=Xn,xE.geom.flat.center={},xE.geom.flat.center.linearRingss=jp,xE.geom.flat.closest={},xE.geom.flat.closest.arrayMaxSquaredDelta=wn,xE.geom.flat.closest.assignClosestArrayPoint=Cn,xE.geom.flat.closest.assignClosestMultiArrayPoint=bn,xE.geom.flat.closest.assignClosestPoint=En,xE.geom.flat.closest.maxSquaredDelta=Sn,xE.geom.flat.closest.multiArrayMaxSquaredDelta=Tn,xE.geom.flat.contains={},xE.geom.flat.contains.linearRingContainsExtent=Zn,xE.geom.flat.contains.linearRingContainsXY=Yn,xE.geom.flat.contains.linearRingsContainsXY=Kn,xE.geom.flat.contains.linearRingssContainsXY=qn,xE.geom.flat.deflate={},xE.geom.flat.deflate.deflateCoordinate=Rn,xE.geom.flat.deflate.deflateCoordinates=Pn,xE.geom.flat.deflate.deflateCoordinatesArray=In,xE.geom.flat.deflate.deflateMultiCoordinatesArray=Ln,xE.geom.flat.flip={},xE.geom.flat.flip.flipXY=E_,xE.geom.flat.geodesic={},xE.geom.flat.geodesic.greatCircleArc=function(t,e,i,n,r,s){const o=Ui("EPSG:4326"),a=Math.cos(ai(e)),l=Math.sin(ai(e)),h=Math.cos(ai(n)),c=Math.sin(ai(n)),u=Math.cos(ai(i-t)),d=Math.sin(ai(i-t)),g=l*c+a*h*u;return Wp((function(e){if(1<=g)return[i,n];const r=e*Math.acos(g),s=Math.cos(r),o=Math.sin(r),f=d*h,p=a*c-l*h*u,m=Math.atan2(f,p),_=Math.asin(l*s+a*o*Math.cos(m));return[oi(ai(t)+Math.atan2(Math.sin(m)*o*a,s-l*Math.sin(_))),oi(_)]}),Hi(o,r),s)},xE.geom.flat.geodesic.meridian=Zp,xE.geom.flat.geodesic.parallel=Yp,xE.geom.flat.inflate={},xE.geom.flat.inflate.inflateCoordinates=kn,xE.geom.flat.inflate.inflateCoordinatesArray=jn,xE.geom.flat.inflate.inflateMultiCoordinatesArray=Bn,xE.geom.flat.interiorpoint={},xE.geom.flat.interiorpoint.getInteriorPointOfArray=Hn,xE.geom.flat.interiorpoint.getInteriorPointsOfMultiArray=$n,xE.geom.flat.interpolate={},xE.geom.flat.interpolate.interpolatePoint=Ap,xE.geom.flat.interpolate.lineStringCoordinateAtM=Op,xE.geom.flat.interpolate.lineStringsCoordinateAtM=Np,xE.geom.flat.intersectsextent={},xE.geom.flat.intersectsextent.intersectsLineString=Qn,xE.geom.flat.intersectsextent.intersectsLineStringArray=tr,xE.geom.flat.intersectsextent.intersectsLinearRing=er,xE.geom.flat.intersectsextent.intersectsLinearRingArray=ir,xE.geom.flat.intersectsextent.intersectsLinearRingMultiArray=nr,xE.geom.flat.length={},xE.geom.flat.length.lineStringLength=ap,xE.geom.flat.length.linearRingLength=function(t,e,i,n){let r=ap(t,e,i,n);const s=t[i-n]-t[e],o=t[i-n+1]-t[e+1];return r+=Math.sqrt(s*s+o*o),r},xE.geom.flat.orient={},xE.geom.flat.orient.inflateEnds=cr,xE.geom.flat.orient.linearRingIsClockwise=sr,xE.geom.flat.orient.linearRingsAreOriented=or,xE.geom.flat.orient.linearRingssAreOriented=ar,xE.geom.flat.orient.orientLinearRings=lr,xE.geom.flat.orient.orientLinearRingsArray=hr,xE.geom.flat.reverse={},xE.geom.flat.reverse.coordinates=rr,xE.geom.flat.segments={},xE.geom.flat.segments.forEach=Jn,xE.geom.flat.simplify={},xE.geom.flat.simplify.douglasPeucker=Fn,xE.geom.flat.simplify.douglasPeuckerArray=Mn,xE.geom.flat.simplify.douglasPeuckerMultiArray=function(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l],c=[];o=Mn(t,e,h,n,r,s,o,c),a.push(c),e=h[h.length-1]}return o},xE.geom.flat.simplify.quantize=Nn,xE.geom.flat.simplify.quantizeArray=Dn,xE.geom.flat.simplify.quantizeMultiArray=Gn,xE.geom.flat.simplify.radialDistance=An,xE.geom.flat.simplify.simplifyLineString=function(t,e,i,n,r,s,o){return o=void 0!==o?o:[],s||(i=An(t,e,i,n,r,o,0),t=o,e=0,n=2),o.length=Fn(t,e,i,n,r,o,0),o},xE.geom.flat.simplify.snap=On,xE.geom.flat.straightchunk={},xE.geom.flat.straightchunk.matchingChunk=ep,xE.geom.flat.textpath={},xE.geom.flat.textpath.drawTextOnPath=op,xE.geom.flat.topology={},xE.geom.flat.topology.lineStringIsClosed=function(t,e,i,n){const r=i-n;return t[e]===t[r]&&t[e+1]===t[r+1]&&(i-e)/n>3&&!!Un(t,e,i,n)},xE.geom.flat.transform={},xE.geom.flat.transform.rotate=dn,xE.geom.flat.transform.scale=gn,xE.geom.flat.transform.transform2D=un,xE.geom.flat.transform.translate=fn,xE.has={},xE.has.DEVICE_PIXEL_RATIO=mt,xE.has.FIREFOX=ut,xE.has.IMAGE_DECODE=yt,xE.has.MAC=pt,xE.has.PASSIVE_EVENT_LISTENERS=xt,xE.has.SAFARI=dt,xE.has.SAFARI_BUG_237906=gt,xE.has.WEBKIT=ft,xE.has.WORKER_OFFSCREEN_CANVAS=_t,xE.interaction={},xE.interaction.DoubleClickZoom=ra,xE.interaction.DragAndDrop=class extends ea{constructor(t){t=t||{},super({handleEvent:g}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];const e=t.formatConstructors?t.formatConstructors:[];for(let t=0,i=e.length;t<i;++t){let i=e[t];"function"==typeof i&&(i=new i),this.formats_.push(i),this.readAsBuffer_=this.readAsBuffer_||"arraybuffer"===i.getType()}this.projection_=t.projection?Ui(t.projection):null,this.dropListenKeys_=null,this.source_=t.source||null,this.target=t.target?t.target:null}handleResult_(t,e){const i=e.target.result,n=this.getMap();let r,s=this.projection_;if(!s&&(s=en(),!s)){s=n.getView().getProjection()}const o=this.formats_;for(let e=0,n=o.length;e<n;++e){const n=o[e];let a=i;this.readAsBuffer_&&"arraybuffer"!==n.getType()&&(void 0===r&&(r=(new TextDecoder).decode(i)),a=r);const l=this.tryReadFeatures_(n,a,{featureProjection:s});if(l&&l.length>0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new Nm(Om,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[N(e,P,this.handleDrop,this),N(e,b,this.handleStop,this),N(e,R,this.handleStop,this),N(e,P,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(G),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t<i;++t){const i=e.item(t),n=new FileReader;n.addEventListener(F,this.handleResult_.bind(this,i)),this.readAsBuffer_?n.readAsArrayBuffer(i):n.readAsText(i)}}handleStop(t){t.stopPropagation(),t.preventDefault(),t.dataTransfer.dropEffect="copy"}},xE.interaction.DragAndDrop.DragAndDropEvent=Nm,xE.interaction.DragBox=Ia,xE.interaction.DragBox.DragBoxEvent=Pa,xE.interaction.DragPan=Sa,xE.interaction.DragRotate=wa,xE.interaction.DragRotateAndZoom=class extends sa{constructor(t){super(t=t||{}),this.condition_=t.condition?t.condition:_a,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==t.duration?t.duration:400}handleDragEvent(t){if(!xa(t))return;const e=t.map,i=e.getSize(),n=t.pixel,r=n[0]-i[0]/2,s=i[1]/2-n[1],o=Math.atan2(s,r),a=Math.sqrt(r*r+s*s),l=e.getView();if(void 0!==this.lastAngle_){const t=this.lastAngle_-o;l.adjustRotationInternal(t)}this.lastAngle_=o,void 0!==this.lastMagnitude_&&l.adjustResolutionInternal(this.lastMagnitude_/a),void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}handleUpEvent(t){if(!xa(t))return!0;const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!xa(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}},xE.interaction.DragZoom=La,xE.interaction.Draw=class extends sa{constructor(t){const e=t;e.stopDown||(e.stopDown=f),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:g,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const n=e||new Lp([NaN,NaN]),r=rn(t[0],i),s=Ei(r,rn(t[t.length-1],i));n.setCenterAndRadius(r,Math.sqrt(s),this.geometryLayout_);const o=en();return o&&n.transform(i,o),n};else{let e;"Point"===t?e=Wn:"LineString"===t?e=Dp:"Polygon"===t&&(e=ur),i=function(i,n,r){return n?"Polygon"===t?i[0].length?n.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):n.setCoordinates([],this.geometryLayout_):n.setCoordinates(i,this.geometryLayout_):n=new e(i,this.geometryLayout_),n}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new Vp({source:new Xh({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:qm(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:ma,this.freehandCondition_,t.freehand?this.freehandCondition_=da:this.freehandCondition_=t.freehandCondition?t.freehandCondition:_a,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(ta,this.updateState_)}setTrace(t){let e;e=t?!0===t?da:t:fa,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===T&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===ao.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===ao.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===ao.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===ao.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===ao.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===ao.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===ao.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new oo(ao.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=zt([e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_])]),n=this.traceSource_.getFeaturesInExtent(i);if(0===n.length)return;const r=function(t,e){const i=[];for(let n=0;n<e.length;++n)Xm(t,e[n].getGeometry(),i);return i}(t.coordinate,n);r.length&&(this.traceState_={active:!0,startPx:t.pixel.slice(),targets:r,targetIndex:-1})}addOrRemoveTracedCoordinates_(t,e){const i=t.startIndex<=t.endIndex;i===t.startIndex<=e?i&&e>t.endIndex||!i&&e<t.endIndex?this.addTracedCoordinates_(t,t.endIndex,e):(i&&e<t.endIndex||!i&&e>t.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t<e){const n=Math.ceil(t);let r=Math.floor(e);r===e&&(r-=1),i=r-n+1}else{const n=Math.floor(t);let r=Math.ceil(e);r===e&&(r+=1),i=n-r+1}i>0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const n=[];if(e<i){const r=Math.ceil(e);let s=Math.floor(i);s===i&&(s-=1);for(let e=r;e<=s;++e)n.push(Um(t.coordinates,e))}else{const r=Math.floor(e);let s=Math.ceil(i);s===i&&(s+=1);for(let e=r;e>=s;--e)n.push(Um(t.coordinates,e))}n.length&&this.appendCoordinates(n)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Ci(e.startPx,t.pixel)<this.snapTolerance_)return;const i=function(t,e,i,n){const r=t[0],s=t[1];let o=1/0,a=-1,l=NaN;for(let t=0;t<e.targets.length;++t){const i=e.targets[t],n=i.coordinates;let h,c=1/0;for(let t=0;t<n.length-1;++t){const e=Ym(r,s,n[t],n[t+1]);e.squaredDistance<c&&(c=e.squaredDistance,h=t+e.along)}c<o&&(o=c,i.ring&&e.targetIndex===t&&(i.endIndex>i.startIndex?h<i.startIndex&&(h+=n.length):i.endIndex<i.startIndex&&h>i.startIndex&&(h-=n.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=Km(h.coordinates,l);Ci(i.getPixelFromCoordinate(t),e.startPx)>n&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,n=l;if(i<n){const r=zm(t,i,n);zm(t,i,n-e)<r&&(l-=e)}else{const r=zm(t,i,n);zm(t,i,n+e)<r&&(l+=e)}}return Vm.index=a,Vm.endIndex=l,Vm}(t.coordinate,e,this.getMap(),this.snapTolerance_);if(e.targetIndex!==i.index){if(-1!==e.targetIndex){const t=e.targets[e.targetIndex];this.removeTracedCoordinates_(t.startIndex,t.endIndex)}const t=e.targets[i.index];this.addTracedCoordinates_(t,t.startIndex,i.endIndex)}else{const t=e.targets[e.targetIndex];this.addOrRemoveTracedCoordinates_(t,i.endIndex)}e.targetIndex=i.index;const n=e.targets[e.targetIndex];n.endIndex=i.endIndex;const r=Km(n.coordinates,n.endIndex),s=this.getMap().getPixelFromCoordinate(r);t.coordinate=r,t.pixel=[Math.round(s[0]),Math.round(s[1])]}handleUpEvent(t){let e=!0;if(0===this.getPointerCount()){this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);const i=this.traceState_.active;if(this.toggleTraceState_(t),this.shouldHandle_){const n=!this.finishCoordinate_;n&&this.startDrawing_(t.coordinate),!n&&this.freehand_?this.finishDrawing():this.freehand_||n&&"Point"!==this.mode_||(this.atFinish_(t.pixel,i)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t.coordinate)),e=!1}else this.freehand_&&this.abortDrawing()}return!e&&this.stopClick_&&t.preventDefault(),e}handlePointerMove_(t){if(this.pointerType_=t.originalEvent.pointerType,this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){const e=this.downPx_,i=t.pixel,n=e[0]-i[0],r=e[1]-i[1],s=n*n+r*r;if(this.shouldHandle_=this.freehand_?s>this.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let n=!1,r=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)n=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;n=t[0].length>this.minPoints_,r=[t[0][0],t[0][t[0].length-2]],r=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(n){const e=this.getMap();for(let n=0,s=r.length;n<s;n++){const s=r[n],o=e.getPixelFromCoordinate(s),a=t[0]-o[0],l=t[1]-o[1],h=this.freehand_?1:this.snapTolerance_;if(i=Math.sqrt(a*a+l*l)<=h,i){this.finishCoordinate_=s;break}}}}return i}createOrUpdateSketchPoint_(t){if(this.sketchPoint_){this.sketchPoint_.getGeometry().setCoordinates(t)}else this.sketchPoint_=new lt(new Wn(t)),this.updateSketchFeatures_()}createOrUpdateCustomSketchLine_(t){this.sketchLine_||(this.sketchLine_=new lt);const e=t.getLinearRing(0);let i=this.sketchLine_.getGeometry();i?(i.setFlatCoordinates(e.getLayout(),e.getFlatCoordinates()),i.changed()):(i=new Dp(e.getFlatCoordinates(),e.getLayout()),this.sketchLine_.setGeometry(i))}startDrawing_(t){const e=this.getMap().getView().getProjection(),i=yn(this.geometryLayout_);for(;t.length<i;)t.push(0);this.finishCoordinate_=t,"Point"===this.mode_?this.sketchCoords_=t.slice():"Polygon"===this.mode_?(this.sketchCoords_=[[t.slice(),t.slice()]],this.sketchLineCoords_=this.sketchCoords_[0]):this.sketchCoords_=[t.slice(),t.slice()],this.sketchLineCoords_&&(this.sketchLine_=new lt(new Dp(this.sketchLineCoords_)));const n=this.geometryFunction_(this.sketchCoords_,void 0,e);this.sketchFeature_=new lt,this.geometryName_&&this.sketchFeature_.setGeometryName(this.geometryName_),this.sketchFeature_.setGeometry(n),this.updateSketchFeatures_(),this.dispatchEvent(new jm(Dm,this.sketchFeature_))}modifyDrawing_(t){const e=this.getMap(),i=this.sketchFeature_.getGeometry(),n=e.getView().getProjection(),r=yn(this.geometryLayout_);let s,o;for(;t.length<r;)t.push(0);if("Point"===this.mode_?o=this.sketchCoords_:"Polygon"===this.mode_?(s=this.sketchCoords_[0],o=s[s.length-1],this.atFinish_(e.getPixelFromCoordinate(t))&&(t=this.finishCoordinate_.slice())):(s=this.sketchCoords_,o=s[s.length-1]),o[0]=t[0],o[1]=t[1],this.geometryFunction_(this.sketchCoords_,i,n),this.sketchPoint_){this.sketchPoint_.getGeometry().setCoordinates(t)}if("Polygon"===i.getType()&&"Polygon"!==this.mode_)this.createOrUpdateCustomSketchLine_(i);else if(this.sketchLineCoords_){this.sketchLine_.getGeometry().setCoordinates(this.sketchLineCoords_)}this.updateSketchFeatures_()}addToDrawing_(t){const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection();let n,r;const s=this.mode_;"LineString"===s||"Circle"===s?(this.finishCoordinate_=t.slice(),r=this.sketchCoords_,r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),this.geometryFunction_(r,e,i)):"Polygon"===s&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),n&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),n&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),n=this.mode_;for(let r=0;r<t;++r){let t;if("LineString"===n||"Circle"===n){if(t=this.sketchCoords_,t.splice(-2,1),t.length>=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===n){t=this.sketchCoords_[0],t.splice(-2,1);const n=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}n.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),n=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,n)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,n),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new kp([e])):"MultiLineString"===this.type_?t.setGeometry(new Gp([e])):"MultiPolygon"===this.type_&&t.setGeometry(new Bp([e])),this.dispatchEvent(new jm(Gm,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new jm(km,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let n;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)n=this.sketchCoords_;else{if("Polygon"!==e)return;n=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&n.shift(),n.pop();for(let e=0;e<t.length;e++)this.addToDrawing_(t[e]);const r=t[t.length-1];this.addToDrawing_(r),this.modifyDrawing_(r)}extend(t){const e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();const i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.sketchPoint_=new lt(new Wn(i)),this.updateSketchFeatures_(),this.dispatchEvent(new jm(Dm,this.sketchFeature_))}updateSketchFeatures_(){const t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);const e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)}updateState_(){const t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing(),this.overlay_.setMap(e?t:null)}},xE.interaction.Draw.DrawEvent=jm,xE.interaction.Draw.createBox=function(){return function(t,e,i){const n=zt([t[0],t[t.length-1]].map((function(t){return rn(t,i)}))),r=[[ue(n),de(n),ve(n),xe(n),ue(n)]];e?e.setCoordinates(r):e=new ur(r);const s=en();return s&&e.transform(i,s),e}},xE.interaction.Draw.createRegularPolygon=function(t,e){return function(i,n,r){const s=rn(i[0],r),o=rn(i[i.length-1],r),a=Math.sqrt(Ei(s,o));n=n||fr(new Lp(s),t);let l=e;if(!e&&0!==e){const t=o[0]-s[0],e=o[1]-s[1];l=Math.atan2(e,t)}pr(n,s,a,l);const h=en();return h&&n.transform(r,h),n}},xE.interaction.Extent=class extends sa{constructor(t){super(t=t||{}),this.on,this.once,this.un,this.condition_=t.condition?t.condition:da,this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,t||(t={}),this.extentOverlay_=new Vp({source:new Xh({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.boxStyle?t.boxStyle:Jm(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new Vp({source:new Xh({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.pointerStyle?t.pointerStyle:Qm(),updateWhileAnimating:!0,updateWhileInteracting:!0}),t.extent&&this.setExtent(t.extent)}snapToVertex_(t,e){const i=e.getCoordinateFromPixelInternal(t),n=function(t,e){return bi(i,t)-bi(i,e)},r=this.getExtentInternal();if(r){const s=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);s.sort(n);const o=s[0];let a=yi(i,o);const l=e.getPixelFromCoordinateInternal(a);if(Ci(t,l)<=this.pixelTolerance_){const t=e.getPixelFromCoordinateInternal(o[0]),i=e.getPixelFromCoordinateInternal(o[1]),n=Ei(l,t),r=Ei(l,i),s=Math.sqrt(Math.min(n,r));return this.snappedToVertex_=s<=this.pixelTolerance_,this.snappedToVertex_&&(a=n>r?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let n=this.snapToVertex_(e,i);n||(n=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(gr(t)):e.setGeometry(void 0):(e=new lt(t?gr(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new lt(new Wn(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=ao.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,n=this.getExtentInternal();let r=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?i=n[3]:t[1]==n[3]&&(i=n[1]),null!==e&&null!==i?[e,i]:null};if(r&&n){const t=r[0]==n[0]||r[0]==n[2]?r[0]:null,e=r[1]==n[1]||r[1]==n[3]?r[1]:null;null!==t&&null!==e?this.pointerHandler_=t_(s(r)):null!==t?this.pointerHandler_=e_(s([t,n[1]]),s([t,n[3]])):null!==e&&(this.pointerHandler_=e_(s([n[0],e]),s([n[2],e])))}else r=i.getCoordinateFromPixelInternal(e),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=t_(r);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==ce(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return sn(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new $m(this.extent_))}},xE.interaction.Extent.ExtentEvent=$m,xE.interaction.Interaction=ea,xE.interaction.Interaction.pan=ia,xE.interaction.Interaction.zoomByDelta=na,xE.interaction.KeyboardPan=Na,xE.interaction.KeyboardZoom=Da,xE.interaction.Link=class extends ea{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this)}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){t.set(this.getParamName_(e),i)}delete_(t,e){t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(N(t,mo,this.updateUrl_,this),N(t.getLayerGroup(),S,this.updateUrl_,this),N(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t<e;++t)G(this.listenerKeys_[t]);this.listenerKeys_.length=0,this.replace_||removeEventListener("popstate",this.updateState_);const e=new URL(window.location.href),i=e.searchParams;this.delete_(i,"x"),this.delete_(i,"y"),this.delete_(i,"z"),this.delete_(i,"r"),this.delete_(i,"l"),window.history.replaceState(null,"",e)}handleChangeLayerGroup_(){const t=this.getMap();t&&(this.unregisterListeners_(t),this.registerListeners_(t),this.initial_=!0,this.updateUrl_())}updateState_(){const t=this.getMap();if(!t)return;const e=t.getView();if(!e)return;const i=new URL(window.location.href).searchParams;let n=!1;const r={},s=i_(this.get_(i,"z"));r_(s,e.getZoom())&&(n=!0,r.zoom=s);const o=i_(this.get_(i,"r"));r_(o,e.getRotation())&&(n=!0,r.rotation=o);const a=[i_(this.get_(i,"x")),i_(this.get_(i,"y"))];var l,h;l=a,h=e.getCenter(),(r_(l[0],h[0])||r_(l[1],h[1]))&&(n=!0,r.center=a),n&&(!this.initial_&&this.animationOptions_?e.animate(Object.assign(r,this.animationOptions_)):(r.center&&e.setCenter(r.center),"zoom"in r&&e.setZoom(r.zoom),"rotation"in r&&e.setRotation(r.rotation)));const c=t.getAllLayers(),u=this.get_(i,"l");if(u&&u.length===c.length)for(let t=0,e=c.length;t<e;++t){const e=parseInt(u[t]);if(!isNaN(e)){const i=Boolean(e),n=c[t];n.getVisible()!==i&&n.setVisible(i)}}}updateUrl_(){const t=this.getMap();if(!t)return;const e=t.getView();if(!e)return;const i=this.initial_;this.initial_=!1;const n=e.getCenter(),r=e.getZoom(),s=e.getRotation(),o=t.getAllLayers(),a=new Array(o.length);for(let t=0,e=o.length;t<e;++t)a[t]=o[t].getVisible()?"1":"0";const l=new URL(window.location.href),h=l.searchParams;this.set_(h,"x",n_(n[0])),this.set_(h,"y",n_(n[1])),this.set_(h,"z",n_(r)),this.set_(h,"r",n_(s)),this.set_(h,"l",a.join("")),l.href!==window.location.href&&(i||this.replace_?window.history.replaceState(null,"",l):window.history.pushState(null,"",l))}},xE.interaction.Modify=class extends sa{constructor(t){let e;if(super(t),this.on,this.once,this.un,this.boundHandleFeatureChange_=this.handleFeatureChange_.bind(this),this.condition_=t.condition?t.condition:va,this.defaultDeleteCondition_=function(t){return la(t)&&pa(t)},this.deleteCondition_=t.deleteCondition?t.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=t.insertVertexCondition?t.insertVertexCondition:da,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.featuresBeingModified_=null,this.rBush_=new Oh,this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new Vp({source:new Xh({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.style?t.style:g_(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_.bind(this),LineString:this.writeLineStringGeometry_.bind(this),LinearRing:this.writeLineStringGeometry_.bind(this),Polygon:this.writePolygonGeometry_.bind(this),MultiPoint:this.writeMultiPointGeometry_.bind(this),MultiLineString:this.writeMultiLineStringGeometry_.bind(this),MultiPolygon:this.writeMultiPolygonGeometry_.bind(this),Circle:this.writeCircleGeometry_.bind(this),GeometryCollection:this.writeGeometryCollectionGeometry_.bind(this)},this.source_=null,this.hitDetection_=null,t.features?e=t.features:t.source&&(this.source_=t.source,e=new q(this.source_.getFeatures()),this.source_.addEventListener(Nh,this.handleSourceAdd_.bind(this)),this.source_.addEventListener(kh,this.handleSourceRemove_.bind(this))),!e)throw new Error("The modify interaction requires features, a source or a layer");t.hitDetection&&(this.hitDetection_=t.hitDetection),this.features_=e,this.features_.forEach(this.addFeature_.bind(this)),this.features_.addEventListener(W,this.handleFeatureAdd_.bind(this)),this.features_.addEventListener(Z,this.handleFeatureRemove_.bind(this)),this.lastPointerEvent_=null,this.delta_=[0,0],this.snapToPointer_=void 0===t.snapToPointer?!this.hitDetection_:t.snapToPointer}addFeature_(t){const e=t.getGeometry();if(e){const i=this.SEGMENT_WRITERS_[e.getType()];i&&i(t,e)}const i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),t.addEventListener(S,this.boundHandleFeatureChange_)}willModifyFeatures_(t,e){if(!this.featuresBeingModified_){this.featuresBeingModified_=new q;const i=this.featuresBeingModified_.getArray();for(let t=0,n=e.length;t<n;++t){const n=e[t];for(let t=0,e=n.length;t<e;++t){const e=n[t].feature;e&&!i.includes(e)&&this.featuresBeingModified_.push(e)}}0===this.featuresBeingModified_.getLength()?this.featuresBeingModified_=null:this.dispatchEvent(new h_(a_,this.featuresBeingModified_,t))}}removeFeature_(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.removeEventListener(S,this.boundHandleFeatureChange_)}removeFeatureSegmentData_(t){const e=this.rBush_,i=[];e.forEach((function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t){const n=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===n&&this.dragSegments_.splice(t,1);e.remove(n)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),n={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),n)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n],s={feature:t,geometry:e,depth:[n],index:n,segment:[r,r]};this.rBush_.insert(e.getExtent(),s)}}writeLineStringGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length-1;n<r;++n){const r=i.slice(n,n+2),s={feature:t,geometry:e,index:n,segment:r};this.rBush_.insert(zt(r),s)}}writeMultiLineStringGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length-1;i<s;++i){const s=r.slice(i,i+2),o={feature:t,geometry:e,depth:[n],index:i,segment:s};this.rBush_.insert(zt(s),o)}}}writePolygonGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length-1;i<s;++i){const s=r.slice(i,i+2),o={feature:t,geometry:e,depth:[n],index:i,segment:s};this.rBush_.insert(zt(s),o)}}}writeMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length;i<s;++i){const s=r[i];for(let r=0,o=s.length-1;r<o;++r){const o=s.slice(r,r+2),a={feature:t,geometry:e,depth:[i,n],index:r,segment:o};this.rBush_.insert(zt(o),a)}}}}writeCircleGeometry_(t,e){const i=e.getCenter(),n={feature:t,geometry:e,index:0,segment:[i,i]},r={feature:t,geometry:e,index:1,segment:[i,i]},s=[n,r];n.featureSegments=s,r.featureSegments=s,this.rBush_.insert(Qt(i),n);let o=e;const a=en();if(a&&this.getMap()){const t=this.getMap().getView().getProjection();o=o.clone().transform(a,t),o=fr(o).transform(t,a)}this.rBush_.insert(o.getExtent(),r)}writeGeometryCollectionGeometry_(t,e){const i=e.getGeometriesArray();for(let e=0;e<i.length;++e){const n=i[e];(0,this.SEGMENT_WRITERS_[n.getType()])(t,n)}}createOrUpdateVertexFeature_(t,e,i){let n=this.vertexFeature_;if(n){n.getGeometry().setCoordinates(t)}else n=new lt(new Wn(t)),this.vertexFeature_=n,this.overlay_.getSource().addFeature(n);return n.set("features",e),n.set("geometries",i),n}handleEvent(t){if(!t.originalEvent)return!0;let e;return this.lastPointerEvent_=t,t.map.getView().getInteracting()||t.type!=ao.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),this.vertexFeature_&&this.deleteCondition_(t)&&(e=!(t.type!=ao.SINGLECLICK||!this.ignoreNextSingleClick_)||this.removePoint()),t.type==ao.SINGLECLICK&&(this.ignoreNextSingleClick_=!1),super.handleEvent(t)&&!e}handleDragEvent(t){this.ignoreNextSingleClick_=!1,this.willModifyFeatures_(t,this.dragSegments_);const e=[t.coordinate[0]+this.delta_[0],t.coordinate[1]+this.delta_[1]],i=[],n=[];for(let r=0,s=this.dragSegments_.length;r<s;++r){const s=this.dragSegments_[r],o=s[0],a=o.feature;i.includes(a)||i.push(a);const l=o.geometry;n.includes(l)||n.push(l);const h=o.depth;let c;const u=o.segment,d=s[1];for(;e.length<l.getStride();)e.push(u[d][e.length]);switch(l.getType()){case"Point":c=e,u[0]=e,u[1]=e;break;case"MultiPoint":c=l.getCoordinates(),c[o.index]=e,u[0]=e,u[1]=e;break;case"LineString":c=l.getCoordinates(),c[o.index+d]=e,u[d]=e;break;case"MultiLineString":case"Polygon":c=l.getCoordinates(),c[h[0]][o.index+d]=e,u[d]=e;break;case"MultiPolygon":c=l.getCoordinates(),c[h[1]][h[0]][o.index+d]=e,u[d]=e;break;case"Circle":if(u[0]=e,u[1]=e,0===o.index)this.changingFeature_=!0,l.setCenter(e),this.changingFeature_=!1;else{this.changingFeature_=!0;const i=t.map.getView().getProjection();let n=Ci(rn(l.getCenter(),i),rn(e,i));const r=en();if(r){const t=l.clone().transform(r,i);t.setRadius(n),n=t.transform(i,r).getRadius()}l.setRadius(n),this.changingFeature_=!1}}c&&this.setGeometryCoordinates_(l,c)}this.createOrUpdateVertexFeature_(e,i,n)}handleDownEvent(t){if(!this.condition_(t))return!1;const e=t.coordinate;this.handlePointerAtPixel_(t.pixel,t.map,e),this.dragSegments_.length=0,this.featuresBeingModified_=null;const i=this.vertexFeature_;if(i){const n=t.map.getView().getProjection(),r=[],s=i.getGeometry().getCoordinates(),o=zt([s]),a=this.rBush_.getInExtent(o),l={};a.sort(c_);for(let i=0,o=a.length;i<o;++i){const o=a[i],h=o.segment;let c=z(o.geometry);const u=o.depth;if(u&&(c+="-"+u.join("-")),l[c]||(l[c]=new Array(2)),"Circle"!==o.geometry.getType()||1!==o.index)if(!Si(h[0],s)||l[c][0])if(!Si(h[1],s)||l[c][1])z(h)in this.vertexSegments_&&!l[c][0]&&!l[c][1]&&this.insertVertexCondition_(t)&&r.push(o);else{if(l[c][0]&&0===l[c][0].index){let t=o.geometry.getCoordinates();switch(o.geometry.getType()){case"LineString":case"MultiLineString":continue;case"MultiPolygon":t=t[u[1]];case"Polygon":if(o.index!==t[u[0]].length-2)continue}}this.dragSegments_.push([o,1]),l[c][1]=o}else this.dragSegments_.push([o,0]),l[c][0]=o;else{Si(d_(e,o,n),s)&&!l[c][0]&&(this.dragSegments_.push([o,0]),l[c][0]=o)}}r.length&&this.willModifyFeatures_(t,[r]);for(let t=r.length-1;t>=0;--t)this.insertVertex_(r[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],n=i.geometry;if("Circle"===n.getType()){const e=n.getCenter(),r=i.featureSegments[0],s=i.featureSegments[1];r.segment[0]=e,r.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(Qt(e),r);let o=n;const a=en();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=fr(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(zt(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new h_(l_,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const n=i||e.getCoordinateFromPixel(t),r=e.getView().getProjection(),s=function(t,e){return u_(n,t,r)-u_(n,e,r)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,((t,e,i)=>{if("Point"===(i=i||t.getGeometry()).getType()&&this.features_.getArray().includes(t)){a=i;const e=i.getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:i,segment:[e,e]}]}return!0}),{layerFilter:i})}if(!o){const t=sn(Xt(on(Qt(n,s_),r),e.getView().getResolution()*this.pixelTolerance_,s_),r);o=this.rBush_.getInExtent(t)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=d_(n,i,r);const c=e.getPixelFromCoordinate(h);let u=Ci(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[z(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-n[0],this.delta_[1]=h[1]-n[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const n=e.getPixelFromCoordinate(l[0]),r=e.getPixelFromCoordinate(l[1]),s=Ei(c,n),a=Ei(c,r);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const d={};d[z(i.geometry)]=!0;for(let e=1,i=o.length;e<i;++e){const i=o[e].segment;if(!(Si(l[0],i[0])&&Si(l[1],i[1])||Si(l[0],i[1])&&Si(l[1],i[0])))break;{const n=z(o[e].geometry);n in d||(d[n]=!0,t[z(i)]=!0)}}}return void(this.vertexSegments_=t)}}this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null)}insertVertex_(t,e){const i=t.segment,n=t.feature,r=t.geometry,s=t.depth,o=t.index;let a;for(;e.length<r.getStride();)e.push(0);switch(r.getType()){case"MultiLineString":case"Polygon":a=r.getCoordinates(),a[s[0]].splice(o+1,0,e);break;case"MultiPolygon":a=r.getCoordinates(),a[s[1]][s[0]].splice(o+1,0,e);break;case"LineString":a=r.getCoordinates(),a.splice(o+1,0,e);break;default:return}this.setGeometryCoordinates_(r,a);const l=this.rBush_;l.remove(t),this.updateSegmentIndices_(r,o,s,1);const h={segment:[i[0],e],feature:n,geometry:r,depth:s,index:o};l.insert(zt(h.segment),h),this.dragSegments_.push([h,1]);const c={segment:[e,i[1]],feature:n,geometry:r,depth:s,index:o+1};l.insert(zt(c.segment),c),this.dragSegments_.push([c,0]),this.ignoreNextSingleClick_=!0}removePoint(){if(this.lastPointerEvent_&&this.lastPointerEvent_.type!=ao.POINTERDRAG){const t=this.lastPointerEvent_;this.willModifyFeatures_(t,this.dragSegments_);const e=this.removeVertex_();return this.featuresBeingModified_&&this.dispatchEvent(new h_(l_,this.featuresBeingModified_,t)),this.featuresBeingModified_=null,e}return!1}removeVertex_(){const t=this.dragSegments_,e={};let i,n,r,s,o,a,l,h,c,u,d,g=!1;for(o=t.length-1;o>=0;--o)r=t[o],u=r[0],d=z(u.feature),u.depth&&(d+="-"+u.depth.join("-")),d in e||(e[d]={}),0===r[1]?(e[d].right=u,e[d].index=u.index):1==r[1]&&(e[d].left=u,e[d].index=u.index+1);for(d in e){switch(c=e[d].right,l=e[d].left,a=e[d].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,n=s.getCoordinates(),i=n,g=!1,s.getType()){case"MultiLineString":n[u.depth[0]].length>2&&(n[u.depth[0]].splice(a,1),g=!0);break;case"LineString":n.length>2&&(n.splice(a,1),g=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),g=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(g){this.setGeometryCoordinates_(s,n);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(zt(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return g}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,n){this.rBush_.forEachInExtent(t.getExtent(),(function(r){r.geometry===t&&(void 0===i||void 0===r.depth||u(r.depth,i))&&r.index>e&&(r.index+=n)}))}},xE.interaction.Modify.ModifyEvent=h_,xE.interaction.MouseWheelZoom=Ga,xE.interaction.PinchRotate=ka,xE.interaction.PinchZoom=ja,xE.interaction.Pointer=sa,xE.interaction.Pointer.centroid=oa,xE.interaction.Select=__,xE.interaction.Select.SelectEvent=p_,xE.interaction.Snap=class extends sa{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=g),e.stopDown||(e.stopDown=f),super(e),this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new Oh,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=z(t),n=t.getGeometry();if(n){const e=this.GEOMETRY_SEGMENTERS_[n.getType()];if(e){this.indexedFeaturesExtents_[i]=n.getExtent([1/0,1/0,-1/0,-1/0]);const r=[];if(e(r,n),1===r.length)this.rBush_.insert(zt(r[0]),{feature:t,segment:r[0]});else if(r.length>1){const e=r.map((t=>zt(t))),i=r.map((e=>({feature:t,segment:e})));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=N(t,S,this.handleFeatureChange_,this))}forEachFeatureAdd_(t){this.addFeature(t)}forEachFeatureRemove_(t){this.removeFeature(t)}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel),super.handleEvent(t)}handleFeatureAdd_(t){const e=y_(t);this.addFeature(e)}handleFeatureRemove_(t){const e=y_(t);this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=z(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,n=z(t),r=this.indexedFeaturesExtents_[n];if(r){const e=this.rBush_,i=[];e.forEachInExtent(r,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(G(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,n=this.getFeatures_();e&&(i.forEach(G),i.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),super.setMap(t),t&&(this.features_?i.push(N(this.features_,W,this.handleFeatureAdd_,this),N(this.features_,Z,this.handleFeatureRemove_,this)):this.source_&&i.push(N(this.source_,Nh,this.handleFeatureAdd_,this),N(this.source_,kh,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))}snapTo(t,e,i){const n=zt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),r=this.rBush_.getInExtent(n),s=r.length;if(0===s)return null;const o=i.getView().getProjection(),a=rn(e,o);let l,h=1/0;const c=this.pixelTolerance_*this.pixelTolerance_,u=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Ei(t,e)<=c)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])]}}return null};if(this.vertex_){for(let t=0;t<s;++t){const e=r[t];"Circle"!==e.feature.getGeometry().getType()&&e.segment.forEach((t=>{const e=rn(t,o),i=Ei(a,e);i<h&&(l=t,h=i)}))}const t=u();if(t)return t}if(this.edge_){for(let t=0;t<s;++t){let e=null;const i=r[t];if("Circle"===i.feature.getGeometry().getType()){let t=i.feature.getGeometry();const n=en();n&&(t=t.clone().transform(n,o)),e=nn(_i(a,t),o)}else{const[t,n]=i.segment;n&&(x_[0]=rn(t,o),x_[1]=rn(n,o),e=yi(a,x_))}if(e){const t=Ei(a,e);t<h&&(l=e,h=t)}}const t=u();if(t)return t}return null}updateFeature_(t){this.removeFeature(t,!1),this.addFeature(t,!1)}segmentCircleGeometry_(t,e){const i=this.getMap().getView().getProjection();let n=e;const r=en();r&&(n=n.clone().transform(r,i));const s=fr(n);r&&s.transform(i,r);const o=s.getCoordinates()[0];for(let e=0,i=o.length-1;e<i;++e)t.push(o.slice(e,e+2))}segmentGeometryCollectionGeometry_(t,e){const i=e.getGeometriesArray();for(let e=0;e<i.length;++e){const n=this.GEOMETRY_SEGMENTERS_[i[e].getType()];n&&n(t,i[e])}}segmentLineStringGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length-1;e<n;++e)t.push(i.slice(e,e+2))}segmentMultiLineStringGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length-1;e<i;++e)t.push(n.slice(e,e+2))}}segmentMultiPointGeometry_(t,e){e.getCoordinates().forEach((e=>{t.push([e])}))}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length;e<i;++e){const i=n[e];for(let e=0,n=i.length-1;e<n;++e)t.push(i.slice(e,e+2))}}}segmentPointGeometry_(t,e){t.push([e.getCoordinates()])}segmentPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length-1;e<i;++e)t.push(n.slice(e,e+2))}}},xE.interaction.Translate=class extends sa{constructor(t){let e;if(super(t=t||{}),this.on,this.once,this.un,this.lastCoordinate_=null,this.startCoordinate_=null,this.features_=void 0!==t.features?t.features:null,t.layers&&!this.features_)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=g;this.layerFilter_=e,this.filter_=t.filter&&!this.features_?t.filter:g,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.condition_=t.condition?t.condition:da,this.lastFeature_=null,this.addChangeListener(ta,this.handleActiveChanged_)}handleDownEvent(t){if(!t.originalEvent||!this.condition_(t))return!1;if(this.lastFeature_=this.featuresAtPixel_(t.pixel,t.map),!this.lastCoordinate_&&this.lastFeature_){this.startCoordinate_=t.coordinate,this.lastCoordinate_=t.coordinate,this.handleMoveEvent(t);const e=this.features_||new q([this.lastFeature_]);return this.dispatchEvent(new T_(v_,e,t.coordinate,this.startCoordinate_,t)),!0}return!1}handleUpEvent(t){if(this.lastCoordinate_){this.lastCoordinate_=null,this.handleMoveEvent(t);const e=this.features_||new q([this.lastFeature_]);return this.dispatchEvent(new T_(w_,e,t.coordinate,this.startCoordinate_,t)),this.startCoordinate_=null,!0}return!1}handleDragEvent(t){if(this.lastCoordinate_){const e=t.coordinate,i=e[0]-this.lastCoordinate_[0],n=e[1]-this.lastCoordinate_[1],r=this.features_||new q([this.lastFeature_]);r.forEach((function(t){const e=t.getGeometry();e.translate(i,n),t.setGeometry(e)})),this.lastCoordinate_=e,this.dispatchEvent(new T_(S_,r,e,this.startCoordinate_,t))}}handleMoveEvent(t){const e=t.map.getViewport();this.featuresAtPixel_(t.pixel,t.map)?(e.classList.remove(this.lastCoordinate_?"ol-grab":"ol-grabbing"),e.classList.add(this.lastCoordinate_?"ol-grabbing":"ol-grab")):e.classList.remove("ol-grab","ol-grabbing")}featuresAtPixel_(t,e){return e.forEachFeatureAtPixel(t,function(t,e){if(this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}},xE.interaction.Translate.TranslateEvent=T_,xE.interaction.defaults={},xE.interaction.defaults.defaults=Ba,xE.layer={},xE.layer.Base=fs,xE.layer.BaseImage=bc,xE.layer.BaseTile=Nc,xE.layer.BaseVector=Fg,xE.layer.Graticule=class extends Vp{constructor(t){t=t||{};const e=Object.assign({updateWhileAnimating:!0,updateWhileInteracting:!0,renderBuffer:0},t);delete e.maxLines,delete e.strokeStyle,delete e.targetSize,delete e.showLabels,delete e.lonLabelFormatter,delete e.latLabelFormatter,delete e.lonLabelPosition,delete e.latLabelPosition,delete e.lonLabelStyle,delete e.latLabelStyle,delete e.intervals,super(e),this.projection_=null,this.maxLat_=1/0,this.maxLon_=1/0,this.minLat_=-1/0,this.minLon_=-1/0,this.maxX_=1/0,this.maxY_=1/0,this.minX_=-1/0,this.minY_=-1/0,this.targetSize_=void 0!==t.targetSize?t.targetSize:100,this.maxLines_=void 0!==t.maxLines?t.maxLines:100,this.meridians_=[],this.parallels_=[],this.strokeStyle_=void 0!==t.strokeStyle?t.strokeStyle:Kp,this.fromLonLatTransform_=void 0,this.toLonLatTransform_=void 0,this.projectionCenterLonLat_=null,this.bottomLeft_=null,this.bottomRight_=null,this.topLeft_=null,this.topRight_=null,this.meridiansLabels_=null,this.parallelsLabels_=null,t.showLabels&&(this.lonLabelFormatter_=null==t.lonLabelFormatter?xi.bind(this,"EW"):t.lonLabelFormatter,this.latLabelFormatter_=null==t.latLabelFormatter?xi.bind(this,"NS"):t.latLabelFormatter,this.lonLabelPosition_=null==t.lonLabelPosition?0:t.lonLabelPosition,this.latLabelPosition_=null==t.latLabelPosition?1:t.latLabelPosition,this.lonLabelStyleBase_=new dg({text:void 0!==t.lonLabelStyle?t.lonLabelStyle.clone():new yg({font:"12px Calibri,sans-serif",textBaseline:"bottom",fill:new og({color:"rgba(0,0,0,1)"}),stroke:new ug({color:"rgba(255,255,255,1)",width:3})})}),this.lonLabelStyle_=function(t){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_}.bind(this),this.latLabelStyleBase_=new dg({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new yg({font:"12px Calibri,sans-serif",textAlign:"right",fill:new og({color:"rgba(0,0,0,1)"}),stroke:new ug({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=function(t){const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_}.bind(this),this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(ms,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:qp,this.setSource(new Xh({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new q,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new dg({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();return this.projection_&&this.getSource().getWrapX()&&Pe(i,this.projection_),this.loadedExtent_&&(ie(this.loadedExtent_,i,e)?i=this.loadedExtent_.slice():this.getSource().removeLoadedExtent(this.loadedExtent_)),[i]}loaderFunction(t,e,i){this.loadedExtent_=t;const n=this.getSource(),r=ye(this.getExtent()||[-1/0,-1/0,1/0,1/0],t);if(this.renderedExtent_&&ee(this.renderedExtent_,r)&&this.renderedResolution_===e)return;if(this.renderedExtent_=r,this.renderedResolution_=e,Te(r))return;const s=ge(r),o=e*e/4;(!this.projection_||!Ki(this.projection_,i))&&this.updateProjectionInfo_(i),this.createGraticule_(r,s,e,o);let a,l=this.meridians_.length+this.parallels_.length;for(this.meridiansLabels_&&(l+=this.meridians_.length),this.parallelsLabels_&&(l+=this.parallels_.length);l>this.featurePool_.length;)a=new lt,this.featurePool_.push(a);const h=n.getFeaturesCollection();h.clear();let c,u,d=0;for(c=0,u=this.meridians_.length;c<u;++c)a=this.featurePool_[d++],a.setGeometry(this.meridians_[c]),a.setStyle(this.lineStyle_),h.push(a);for(c=0,u=this.parallels_.length;c<u;++c)a=this.featurePool_[d++],a.setGeometry(this.parallels_[c]),a.setStyle(this.lineStyle_),h.push(a)}addMeridian_(t,e,i,n,r,s){const o=this.getMeridian_(t,e,i,n,s);if(we(o.getExtent(),r)){if(this.meridiansLabels_){const e=this.lonLabelFormatter_(t);s in this.meridiansLabels_?this.meridiansLabels_[s].text=e:this.meridiansLabels_[s]={geom:new Wn([]),text:e}}this.meridians_[s++]=o}return s}addParallel_(t,e,i,n,r,s){const o=this.getParallel_(t,e,i,n,s);if(we(o.getExtent(),r)){if(this.parallelsLabels_){const e=this.latLabelFormatter_(t);s in this.parallelsLabels_?this.parallelsLabels_[s].text=e:this.parallelsLabels_[s]={geom:new Wn([]),text:e}}this.parallels_[s++]=o}return s}drawLabels_(t){const e=t.frameState.viewState.rotation,i=t.frameState.viewState.resolution,n=t.frameState.size,r=t.frameState.extent,s=ge(r);let o=r;if(e){const t=n[0]*i,e=n[1]*i;o=[s[0]-t/2,s[1]-e/2,s[0]+t/2,s[1]+e/2]}let a=0,l=0,h=this.latLabelPosition_<.5;const c=this.projection_.getExtent(),u=Se(c);if(this.getSource().getWrapX()&&this.projection_.canWrapX()&&!Yt(c,r)){a=Math.floor((r[0]-c[0])/u),l=Math.ceil((r[2]-c[2])/u);h=h!==Math.abs(e)>Math.PI/2}const d=Al(t);for(let t=a;t<=l;++t){let i,n,c,g,f=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(n=0,c=this.meridiansLabels_.length;n<c;++n){const a=this.meridians_[n];if(e||0!==t){const i=a.clone();i.translate(t*u,0),i.rotate(-e,s),g=this.getMeridianPoint_(i,o,n),g.rotate(e,s)}else g=this.getMeridianPoint_(a,r,n);i=this.featurePool_[f++],i.setGeometry(g),i.set("graticule_label",this.meridiansLabels_[n].text),d.drawFeature(i,this.lonLabelStyle_(i))}if(this.parallelsLabels_&&(t===a&&h||t===l&&!h))for(n=0,c=this.parallels_.length;n<c;++n){const a=this.parallels_[n];if(e||0!==t){const i=a.clone();i.translate(t*u,0),i.rotate(-e,s),g=this.getParallelPoint_(i,o,n),g.rotate(e,s)}else g=this.getParallelPoint_(a,r,n);i=this.featurePool_[f++],i.setGeometry(g),i.set("graticule_label",this.parallelsLabels_[n].text),d.drawFeature(i,this.latLabelStyle_(i))}}}createGraticule_(t,e,i,n){const r=this.getInterval_(i);if(-1==r)return this.meridians_.length=0,this.parallels_.length=0,this.meridiansLabels_&&(this.meridiansLabels_.length=0),void(this.parallelsLabels_&&(this.parallelsLabels_.length=0));let s=!1;const o=this.projection_.getExtent(),a=Se(o);this.getSource().getWrapX()&&this.projection_.canWrapX()&&!Yt(o,t)&&(Se(t)>=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[ii(e[0],this.minX_,this.maxX_),ii(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=ii(h[0],this.minLon_,this.maxLon_),u=ii(h[1],this.minLat_,this.maxLat_);const d=this.maxLines_;let g,f,p,m,_=t;s||(_=[ii(t[0],this.minX_,this.maxX_),ii(t[1],this.minY_,this.maxY_),ii(t[2],this.minX_,this.maxX_),ii(t[3],this.minY_,this.maxY_)]);const y=Re(_,this.toLonLatTransform_,void 0,8);let x=y[3],v=y[2],S=y[1],w=y[0];if(s||(Zt(_,this.bottomLeft_)&&(w=this.minLon_,S=this.minLat_),Zt(_,this.bottomRight_)&&(v=this.maxLon_,S=this.minLat_),Zt(_,this.topLeft_)&&(w=this.minLon_,x=this.maxLat_),Zt(_,this.topRight_)&&(v=this.maxLon_,x=this.maxLat_),x=ii(x,u,this.maxLat_),v=ii(v,c,this.maxLon_),S=ii(S,this.minLat_,u),w=ii(w,this.minLon_,c)),c=Math.floor(c/r)*r,m=ii(c,this.minLon_,this.maxLon_),f=this.addMeridian_(m,S,x,n,t,0),g=0,s)for(;(m-=r)>=w&&g++<d;)f=this.addMeridian_(m,S,x,n,t,f);else for(;m!=this.minLon_&&g++<d;)m=Math.max(m-r,this.minLon_),f=this.addMeridian_(m,S,x,n,t,f);if(m=ii(c,this.minLon_,this.maxLon_),g=0,s)for(;(m+=r)<=v&&g++<d;)f=this.addMeridian_(m,S,x,n,t,f);else for(;m!=this.maxLon_&&g++<d;)m=Math.min(m+r,this.maxLon_),f=this.addMeridian_(m,S,x,n,t,f);for(this.meridians_.length=f,this.meridiansLabels_&&(this.meridiansLabels_.length=f),u=Math.floor(u/r)*r,p=ii(u,this.minLat_,this.maxLat_),f=this.addParallel_(p,w,v,n,t,0),g=0;p!=this.minLat_&&g++<d;)p=Math.max(p-r,this.minLat_),f=this.addParallel_(p,w,v,n,t,f);for(p=ii(u,this.minLat_,this.maxLat_),g=0;p!=this.maxLat_&&g++<d;)p=Math.min(p+r,this.maxLat_),f=this.addParallel_(p,w,v,n,t,f);this.parallels_.length=f,this.parallelsLabels_&&(this.parallelsLabels_.length=f)}getInterval_(t){const e=this.projectionCenterLonLat_[0],i=this.projectionCenterLonLat_[1];let n=-1;const r=Math.pow(this.targetSize_*t,2),s=[],o=[];for(let t=0,a=this.intervals_.length;t<a;++t){const a=ii(this.intervals_[t]/2,0,90),l=ii(i,-90+a,90-a);s[0]=e-a,s[1]=l-a,o[0]=e+a,o[1]=l+a,this.fromLonLatTransform_(s,s),this.fromLonLatTransform_(o,o);if(Math.pow(o[0]-s[0],2)+Math.pow(o[1]-s[1],2)<=r)break;n=this.intervals_[t]}return n}getMeridian_(t,e,i,n,r){const s=Zp(t,e,i,this.projection_,n);let o=this.meridians_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):(o=new Dp(s,"XY"),this.meridians_[r]=o),o}getMeridianPoint_(t,e,i){const n=t.getFlatCoordinates();let r=1,s=n.length-1;n[r]>n[s]&&(r=s,s=1);const o=Math.max(e[1],n[r]),a=Math.min(e[3],n[s]),l=ii(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[n[r-1]+(n[s-1]-n[r-1])*(l-n[r])/(n[s]-n[r]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,n,r){const s=Yp(t,e,i,this.projection_,n);let o=this.parallels_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new Dp(s,"XY"),o}getParallelPoint_(t,e,i){const n=t.getFlatCoordinates();let r=0,s=n.length-2;n[r]>n[s]&&(r=s,s=0);const o=Math.max(e[0],n[r]),a=Math.min(e[2],n[s]),l=ii(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,n[r+1]+(n[s+1]-n[r+1])*(l-n[r])/(n[s]-n[r])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=Ui("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const n=Hi(t,e);if(this.minLon_<this.maxLon_)this.toLonLatTransform_=n;else{const t=this.minLon_+this.maxLon_/2;this.maxLon_+=360,this.toLonLatTransform_=function(e,i,r){const s=n(e,i,r=r||2);for(let e=0,i=s.length;e<i;e+=r)s[e]<t&&(s[e]+=360);return s}}this.fromLonLatTransform_=Hi(e,t);const r=Re([this.minLon_,this.minLat_,this.maxLon_,this.maxLat_],this.fromLonLatTransform_,void 0,8);this.minX_=r[0],this.maxX_=r[2],this.minY_=r[1],this.maxY_=r[3],this.bottomLeft_=this.fromLonLatTransform_([this.minLon_,this.minLat_]),this.bottomRight_=this.fromLonLatTransform_([this.maxLon_,this.minLat_]),this.topLeft_=this.fromLonLatTransform_([this.minLon_,this.maxLat_]),this.topRight_=this.fromLonLatTransform_([this.maxLon_,this.maxLat_]),this.projectionCenterLonLat_=this.toLonLatTransform_(ge(t.getExtent())),isNaN(this.projectionCenterLonLat_[1])&&(this.projectionCenterLonLat_[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}},xE.layer.Group=ro,xE.layer.Group.GroupEvent=io,xE.layer.Heatmap=class extends Fg{constructor(t){t=t||{};const e=Object.assign({},t);delete e.gradient,delete e.radius,delete e.blur,delete e.weight,super(e),this.gradient_=null,this.addChangeListener($p,this.handleGradientChanged_),this.setGradient(t.gradient?t.gradient:Qp),this.setBlur(void 0!==t.blur?t.blur:15),this.setRadius(void 0!==t.radius?t.radius:8);const i=t.weight?t.weight:"weight";this.weightFunction_="string"==typeof i?function(t){return t.get(i)}:i,this.setRenderOrder(null)}getBlur(){return this.get(Hp)}getGradient(){return this.get($p)}getRadius(){return this.get(Jp)}handleGradientChanged_(){this.gradient_=function(t){const e=1,i=256,n=Dr(e,i),r=n.createLinearGradient(0,0,e,i),s=1/(t.length-1);for(let e=0,i=t.length;e<i;++e)r.addColorStop(e*s,t[e]);return n.fillStyle=r,n.fillRect(0,0,e,i),n.canvas}(this.getGradient())}setBlur(t){this.set(Hp,t)}setGradient(t){this.set($p,t)}setRadius(t){this.set(Jp,t)}createRenderer(){return new pf(this,{className:this.getClassName(),attributes:[{name:"weight",callback:function(t){const e=this.weightFunction_(t);return void 0!==e?ii(e,0,1):1}.bind(this)}],vertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_weight = a_weight;\n }",fragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n gl_FragColor = vec4(alpha, alpha, alpha, alpha);\n }",hitVertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n attribute vec4 a_hitColor;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_hitColor = a_hitColor;\n v_weight = a_weight;\n }",hitFragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n if (alpha < 0.05) {\n discard;\n }\n\n gl_FragColor = v_hitColor;\n }",uniforms:{u_size:function(){return 2*(this.get(Jp)+this.get(Hp))}.bind(this),u_blurSlope:function(){return this.get(Jp)/Math.max(1,this.get(Hp))}.bind(this)},postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:function(){return this.gradient_}.bind(this),u_opacity:function(){return this.getOpacity()}.bind(this)}}]})}renderDeclutter(){}},xE.layer.Image=Mc,xE.layer.Layer=vs,xE.layer.Layer.inView=Ss,xE.layer.MapboxVector=class extends Lm{constructor(t){const e=!("declutter"in t)||t.declutter,i=new eu({state:"loading",format:new Cm});super({source:i,background:t.background,declutter:e,className:t.className,opacity:t.opacity,visible:t.visible,zIndex:t.zIndex,minResolution:t.minResolution,maxResolution:t.maxResolution,minZoom:t.minZoom,maxZoom:t.maxZoom,renderOrder:t.renderOrder,renderBuffer:t.renderBuffer,renderMode:t.renderMode,map:t.map,updateWhileAnimating:t.updateWhileAnimating,updateWhileInteracting:t.updateWhileInteracting,preload:t.preload,useInterimTilesOnError:t.useInterimTilesOnError,properties:t.properties}),t.accessToken&&(this.accessToken=t.accessToken);const n=t.styleUrl;olms.applyStyle(this,n,t.layers||t.source,{accessToken:this.accessToken}).then((()=>{i.setState("ready")})).catch((t=>{this.dispatchEvent(new Fm(t));this.getSource().setState("error")})),void 0===this.getBackground()&&olms.applyBackground(this,t.styleUrl,{accessToken:this.accessToken})}},xE.layer.Tile=Gc,xE.layer.Vector=Vp,xE.layer.VectorImage=class extends Fg{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new bp(this)}},xE.layer.VectorTile=Lm,xE.layer.WebGLPoints=class extends vs{constructor(t){super(Object.assign({},t)),this.parseResult_=ig(t.style),this.styleVariables_=t.style.variables||{},this.hitDetectionDisabled_=!!t.disableHitDetection}createRenderer(){return new pf(this,{vertexShader:this.parseResult_.builder.getSymbolVertexShader(),fragmentShader:this.parseResult_.builder.getSymbolFragmentShader(),hitVertexShader:!this.hitDetectionDisabled_&&this.parseResult_.builder.getSymbolVertexShader(!0),hitFragmentShader:!this.hitDetectionDisabled_&&this.parseResult_.builder.getSymbolFragmentShader(!0),uniforms:this.parseResult_.uniforms,attributes:this.parseResult_.attributes})}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}},xE.layer.WebGLTile=Am,xE.loadingstrategy={},xE.loadingstrategy.all=xl,xE.loadingstrategy.bbox=function(t,e){return[t]},xE.loadingstrategy.tile=function(t){return function(e,i,n){const r=t.getZForResolution(ln(i,n)),s=t.getTileRangeForExtentAndZ(on(e,n),r),o=[],a=[r,0,0];for(a[1]=s.minX;a[1]<=s.maxX;++a[1])for(a[2]=s.minY;a[2]<=s.maxY;++a[2])o.push(sn(t.getTileCoordExtent(a),n));return o}},xE.math={},xE.math.ceil=gi,xE.math.clamp=ii,xE.math.floor=di,xE.math.lerp=hi,xE.math.modulo=li,xE.math.round=ui,xE.math.solveLinearSystem=si,xE.math.squaredDistance=ri,xE.math.squaredSegmentDistance=ni,xE.math.toDegrees=oi,xE.math.toFixed=ci,xE.math.toRadians=ai,xE.net={},xE.net.ClientError=wl,xE.net.ResponseError=Sl,xE.net.getJSON=Tl,xE.net.jsonp=vl,xE.net.overrideXHR=function(t){"undefined"!=typeof XMLHttpRequest&&(pl=XMLHttpRequest),global.XMLHttpRequest=t},xE.net.resolveUrl=El,xE.net.restoreXHR=function(){global.XMLHttpRequest=pl},xE.obj={},xE.obj.clear=y,xE.obj.isEmpty=x,xE.proj={},xE.proj.Projection=Ae,xE.proj.Units={},xE.proj.Units.METERS_PER_UNIT=Me,xE.proj.Units.fromCode=Fe,xE.proj.addCommon=cn,xE.proj.addCoordinateTransforms=Yi,xE.proj.addEquivalentProjections=Xi,xE.proj.addEquivalentTransforms=Vi,xE.proj.addProjection=ji,xE.proj.addProjections=Bi,xE.proj.clearAllProjections=function(){qe(),Qe()},xE.proj.clearUserProjection=function(){Qi=null},xE.proj.cloneTransform=Gi,xE.proj.createProjection=Wi,xE.proj.createSafeCoordinateTransform=hn,xE.proj.createTransformFromCoordinateTransform=Zi,xE.proj.disableCoordinateWarning=Di,xE.proj.epsg3857={},xE.proj.epsg3857.EXTENT=De,xE.proj.epsg3857.HALF_SIZE=Ne,xE.proj.epsg3857.MAX_SAFE_Y=ke,xE.proj.epsg3857.PROJECTIONS=Be,xE.proj.epsg3857.RADIUS=Oe,xE.proj.epsg3857.WORLD_EXTENT=Ge,xE.proj.epsg3857.fromEPSG4326=Ue,xE.proj.epsg3857.toEPSG4326=ze,xE.proj.epsg4326={},xE.proj.epsg4326.EXTENT=Ve,xE.proj.epsg4326.METERS_PER_UNIT=We,xE.proj.epsg4326.PROJECTIONS=Ye,xE.proj.epsg4326.RADIUS=Xe,xE.proj.equivalent=Ki,xE.proj.fromLonLat=function(t,e){return Di(),$i(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")},xE.proj.fromUserCoordinate=rn,xE.proj.fromUserExtent=on,xE.proj.fromUserResolution=ln,xE.proj.get=Ui,xE.proj.getPointResolution=zi,xE.proj.getTransform=Hi,xE.proj.getTransformFromProjections=qi,xE.proj.getUserProjection=en,xE.proj.identityTransform=ki,xE.proj.proj4={},xE.proj.proj4.register=function(t){const e=Object.keys(t.defs),i=e.length;let n,r;for(n=0;n<i;++n){const i=e[n];if(!Ui(i)){const e=t.defs(i);let n=e.units;n||"longlat"!==e.projName||(n="degrees"),ji(new Ae({code:i,axisOrientation:e.axis,metersPerUnit:e.to_meter,units:n}))}}for(n=0;n<i;++n){const s=e[n],o=Ui(s);for(r=0;r<i;++r){const i=e[r],n=Ui(i);if(!ei(s,i))if(t.defs[s]===t.defs[i])Xi([o,n]);else{const e=t(s,i);Yi(o,n,hn(o,n,e.forward),hn(n,o,e.inverse))}}}},xE.proj.projections={},xE.proj.projections.add=$e,xE.proj.projections.clear=qe,xE.proj.projections.get=He,xE.proj.setUserProjection=tn,xE.proj.toLonLat=function(t,e){const i=$i(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=li(n+180,360)-180),i},xE.proj.toUserCoordinate=nn,xE.proj.toUserExtent=sn,xE.proj.toUserResolution=an,xE.proj.transform=$i,xE.proj.transformExtent=Ji,xE.proj.transformWithProjections=function(t,e,i){return qi(e,i)(t)},xE.proj.transforms={},xE.proj.transforms.add=ti,xE.proj.transforms.clear=Qe,xE.proj.transforms.get=ei,xE.proj.transforms.remove=function(t,e){const i=t.getCode(),n=e.getCode(),r=Je[i][n];return delete Je[i][n],x(Je[i])&&delete Je[i],r},xE.proj.useGeographic=function(){tn("EPSG:4326")},xE.render={},xE.render.Box=Ta,xE.render.Event=Es,xE.render.Feature=zp,xE.render.Feature.toFeature=function(t,e){const i=t.getId(),n=Xp(t),r=t.getProperties(),s=new lt;return void 0!==e&&s.setGeometryName(e),s.setGeometry(n),void 0!==i&&s.setId(i),s.setProperties(r,!0),s},xE.render.Feature.toGeometry=Xp,xE.render.VectorContext=Cl,xE.render.canvas={},xE.render.canvas.Builder=$f,xE.render.canvas.BuilderGroup=sp,xE.render.canvas.Executor=_p,xE.render.canvas.ExecutorGroup=xp,xE.render.canvas.ExecutorGroup.getPixelIndexArray=Sp,xE.render.canvas.ImageBuilder=Jf,xE.render.canvas.Immediate=bl,xE.render.canvas.Instruction={},xE.render.canvas.Instruction.beginPathInstruction=qf,xE.render.canvas.Instruction.closePathInstruction=Hf,xE.render.canvas.Instruction.fillInstruction=Yf,xE.render.canvas.Instruction.strokeInstruction=Kf,xE.render.canvas.LineStringBuilder=Qf,xE.render.canvas.PolygonBuilder=tp,xE.render.canvas.TextBuilder=np,xE.render.canvas.checkedFonts=Vs,xE.render.canvas.defaultFillStyle=Ns,xE.render.canvas.defaultFont=Os,xE.render.canvas.defaultLineCap=Ds,xE.render.canvas.defaultLineDash=Gs,xE.render.canvas.defaultLineDashOffset=0,xE.render.canvas.defaultLineJoin=ks,xE.render.canvas.defaultLineWidth=1,xE.render.canvas.defaultMiterLimit=js,xE.render.canvas.defaultPadding=Xs,xE.render.canvas.defaultStrokeStyle=Bs,xE.render.canvas.defaultTextAlign=Us,xE.render.canvas.defaultTextBaseline=zs,xE.render.canvas.drawImageOrLabel=to,xE.render.canvas.getTextDimensions=Qs,xE.render.canvas.hitdetect={},xE.render.canvas.hitdetect.HIT_DETECT_RESOLUTION=wp,xE.render.canvas.hitdetect.createHitDetectionImageData=Tp,xE.render.canvas.hitdetect.hitDetect=Ep,xE.render.canvas.measureAndCacheTextWidth=Js,xE.render.canvas.measureTextHeight=qs,xE.render.canvas.measureTextWidth=$s,xE.render.canvas.registerFont=Ks,xE.render.canvas.rotateAtOffset=function(t,e,i,n){0!==e&&(t.translate(i,n),t.rotate(e),t.translate(-i,-n))},xE.render.canvas.textHeights=Ys,xE.render.getRenderPixel=function(t,e){return bt(t.inversePixelTransform,e.slice(0))},xE.render.getVectorContext=Al,xE.render.toContext=function(t,e){const i=t.canvas,n=(e=e||{}).pixelRatio||mt,r=e.size;r&&(i.width=r[0]*n,i.height=r[1]*n,i.style.width=r[0]+"px",i.style.height=r[1]+"px");const s=[0,0,i.width,i.height],o=Pt([1,0,0,1,0,0],n,n);return new bl(t,n,s,o,0)},xE.render.webgl={},xE.render.webgl.BatchRenderer=_f,xE.render.webgl.LineStringBatchRenderer=xf,xE.render.webgl.MixedGeometryBatch=vf,xE.render.webgl.PointBatchRenderer=wf,xE.render.webgl.PolygonBatchRenderer=Ef,xE.render.webgl.utils={},xE.render.webgl.utils.colorDecodeId=gf,xE.render.webgl.utils.colorEncodeId=df,xE.render.webgl.utils.getBlankImageData=function(){const t=document.createElement("canvas").getContext("2d").createImageData(1,1);return t.data[0]=255,t.data[1]=255,t.data[2]=255,t.data[3]=255,t},xE.render.webgl.utils.writeLineSegmentToBuffers=function(t,e,i,n,r,s,o,a,l,h){const c=5+a.length,u=s.length/c,d=[t[e+0],t[e+1]],g=[t[i],t[i+1]],f=bt(h,[...d]),p=bt(h,[...g]);function m(t,e,i){const n=1e4;return Math.round(1500*e)+Math.round(1500*i)*n+t*n*n}function _(t,e,i){const n=Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])),r=[(e[0]-t[0])/n,(e[1]-t[1])/n],s=[-r[1],r[0]],o=Math.sqrt((i[0]-t[0])*(i[0]-t[0])+(i[1]-t[1])*(i[1]-t[1])),a=[(i[0]-t[0])/o,(i[1]-t[1])/o],l=0===n||0===o?0:Math.acos(ii(a[0]*r[0]+a[1]*r[1],-1,1));return a[0]*s[0]+a[1]*s[1]>0?l:2*Math.PI-l}const y=null!==r;let x=0,v=0;if(null!==n){x=_(f,p,bt(h,[...[t[n],t[n+1]]]))}if(y){v=_(p,f,bt(h,[...[t[r],t[r+1]]]))}s.push(d[0],d[1],g[0],g[1],m(0,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(1,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(2,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(3,x,v)),s.push(...a),o.push(u,u+1,u+2,u+1,u+3,u+2)},xE.render.webgl.utils.writePointFeatureToBuffers=function(t,e,i,n,r,s){const o=3+r,a=t[e+0],l=t[e+1],h=hf;h.length=r;for(let i=0;i<h.length;i++)h[i]=t[e+2+i];let c=s?s.vertexPosition:0,u=s?s.indexPosition:0;const d=c/o;return uf(i,c,a,l,0),h.length&&i.set(h,c+3),c+=o,uf(i,c,a,l,1),h.length&&i.set(h,c+3),c+=o,uf(i,c,a,l,2),h.length&&i.set(h,c+3),c+=o,uf(i,c,a,l,3),h.length&&i.set(h,c+3),c+=o,n[u++]=d,n[u++]=d+1,n[u++]=d+3,n[u++]=d+1,n[u++]=d+2,n[u++]=d+3,cf.vertexPosition=c,cf.indexPosition=u,cf},xE.render.webgl.utils.writePolygonTrianglesToBuffers=function(t,e,i,n,r){const s=2+r;let o=e;const a=t.slice(o,o+r);o+=r;const l=t[o++];let h=0;const c=new Array(l-1);for(let e=0;e<l;e++)h+=t[o++],e<l-1&&(c[e]=h);const u=t.slice(o,o+2*h),d=Ng.exports(u,c,2);for(let t=0;t<d.length;t++)n.push(d[t]+i.length/s);for(let t=0;t<u.length;t+=2)i.push(u[t],u[t+1],...a);return o+2*h},xE.renderer={},xE.renderer.Composite=eo,xE.renderer.Layer=Rc,xE.renderer.Map=ws,xE.renderer.canvas={},xE.renderer.canvas.ImageLayer=Fc,xE.renderer.canvas.Layer=Lc,xE.renderer.canvas.Layer.canvasPool=Pc,xE.renderer.canvas.TileLayer=Dc,xE.renderer.canvas.VectorImageLayer=bp,xE.renderer.canvas.VectorLayer=Cp,xE.renderer.canvas.VectorTileLayer=Ip,xE.renderer.vector={},xE.renderer.vector.defaultOrder=Pl,xE.renderer.vector.getSquaredTolerance=Il,xE.renderer.vector.getTolerance=Ll,xE.renderer.vector.renderFeature=Fl,xE.renderer.webgl={},xE.renderer.webgl.Layer=pd,xE.renderer.webgl.PointsLayer=pf,xE.renderer.webgl.TileLayer=Ed,xE.renderer.webgl.TileLayer.Attributes=_d,xE.renderer.webgl.TileLayer.Uniforms=md,xE.renderer.webgl.VectorLayer=class extends pd{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[Yu]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.sourceRevision_=-1,this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n;const r={color:function(){return Cf("#ddd")},opacity:function(){return 1},...e.fill&&e.fill.attributes},s={color:function(){return Cf("#eee")},opacity:function(){return 1},width:function(){return 1.5},...e.stroke&&e.stroke.attributes},o={color:function(){return Cf("#eee")},opacity:function(){return 1},...e.point&&e.point.attributes};this.fillVertexShader_=e.fill&&e.fill.vertexShader||Rf,this.fillFragmentShader_=e.fill&&e.fill.fragmentShader||Pf,this.fillAttributes_=Af(r),this.strokeVertexShader_=e.stroke&&e.stroke.vertexShader||If,this.strokeFragmentShader_=e.stroke&&e.stroke.fragmentShader||Lf,this.strokeAttributes_=Af(s),this.pointVertexShader_=e.point&&e.point.vertexShader||Ff,this.pointFragmentShader_=e.point&&e.point.fragmentShader||Mf,this.pointAttributes_=Af(o),this.worker_=ff(),this.batch_=new vf;const a=this.getLayer().getSource();this.batch_.addFeatures(a.getFeatures()),this.sourceListenKeys_=[N(a,Nh,this.handleSourceFeatureAdded_,this),N(a,Dh,this.handleSourceFeatureChanged_,this),N(a,kh,this.handleSourceFeatureDelete_,this),N(a,Gh,this.handleSourceFeatureClear_,this)]}afterHelperCreated(){this.polygonRenderer_=new Ef(this.helper,this.worker_,this.fillVertexShader_,this.fillFragmentShader_,this.fillAttributes_),this.pointRenderer_=new wf(this.helper,this.worker_,this.pointVertexShader_,this.pointFragmentShader_,this.pointAttributes_),this.lineStringRenderer_=new xf(this.helper,this.worker_,this.strokeVertexShader_,this.strokeFragmentShader_,this.strokeAttributes_)}handleSourceFeatureAdded_(t){const e=t.feature;this.batch_.addFeature(e)}handleSourceFeatureChanged_(t){const e=t.feature;this.batch_.changeFeature(e)}handleSourceFeatureDelete_(t){const e=t.feature;this.batch_.removeFeature(e)}handleSourceFeatureClear_(){this.batch_.clear()}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const i=this.getLayer().getSource(),n=t.viewState.projection,r=i.getWrapX()&&n.canWrapX(),s=n.getExtent(),o=t.extent,a=r?Se(s):null,l=r?Math.ceil((o[2]-s[2])/a)+1:1;let h=r?Math.floor((o[0]-s[0])/a):0;do{this.polygonRenderer_.render(this.batch_.polygonBatch,this.currentTransform_,t,h*a),this.lineStringRenderer_.render(this.batch_.lineStringBatch,this.currentTransform_,t,h*a),this.pointRenderer_.render(this.batch_.pointBatch,this.currentTransform_,t,h*a)}while(++h<l);this.helper.finalizeDraw(t);const c=this.helper.getCanvas(),u=t.layerStatesArray[t.layerIndex].opacity;return u!==parseFloat(c.style.opacity)&&(c.style.opacity=String(u)),this.postRender(e,t),c}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Ro]&&!t.viewHints[Po],s=!ee(this.previousExtent_,t.extent),o=this.sourceRevision_<i.getRevision();if(o&&(this.sourceRevision_=i.getRevision()),r&&(s||o)){const r=n.projection,s=n.resolution,o=e instanceof Fg?e.getRenderBuffer():0,a=Xt(t.extent,o*s);i.loadFeatures(a,s,r),this.ready=!1;let l=3;const h=()=>{l--,this.ready=l<=0,this.getLayer().changed()};this.polygonRenderer_.rebuild(this.batch_.polygonBatch,t,"Polygon",h),this.lineStringRenderer_.rebuild(this.batch_.lineStringBatch,t,"LineString",h),this.pointRenderer_.rebuild(this.batch_.pointBatch,t,"Point",h),this.previousExtent_=t.extent.slice()}return this.helper.makeProjectionTransform(t,this.currentTransform_),this.helper.prepareDraw(t),!0}forEachFeatureAtCoordinate(t,e,i,n,r){}disposeInternal(){this.worker_.terminate(),this.layer_=null,this.sourceListenKeys_.forEach((function(t){G(t)})),this.sourceListenKeys_=null,super.disposeInternal()}},xE.renderer.webgl.shaders={},xE.renderer.webgl.shaders.FILL_FRAGMENT_SHADER=Pf,xE.renderer.webgl.shaders.FILL_VERTEX_SHADER=Rf,xE.renderer.webgl.shaders.POINT_FRAGMENT_SHADER=Mf,xE.renderer.webgl.shaders.POINT_VERTEX_SHADER=Ff,xE.renderer.webgl.shaders.STROKE_FRAGMENT_SHADER=Lf,xE.renderer.webgl.shaders.STROKE_VERTEX_SHADER=If,xE.renderer.webgl.shaders.packColor=Cf,xE.reproj={},xE.reproj.DataTile=Vh,xE.reproj.Image=pc,xE.reproj.Tile=Xl,xE.reproj.Triangulation=zl,xE.reproj.calculateSourceExtentResolution=jl,xE.reproj.calculateSourceResolution=kl,xE.reproj.canvasPool=Nl,xE.reproj.common={},xE.reproj.common.ERROR_THRESHOLD=Ul,xE.reproj.render=Bl,xE.resolutionconstraint={},xE.resolutionconstraint.createMinMaxResolution=Go,xE.resolutionconstraint.createSnapToPower=Do,xE.resolutionconstraint.createSnapToResolutions=No,xE.rotationconstraint={},xE.rotationconstraint.createSnapToN=Bo,xE.rotationconstraint.createSnapToZero=Uo,xE.rotationconstraint.disable=ko,xE.rotationconstraint.none=jo,xE.size={},xE.size.buffer=Ua,xE.size.hasArea=za,xE.size.scale=Xa,xE.size.toSize=Va,xE.source={},xE.source.BingMaps=class extends dh{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:Ui("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet;vl("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=nh(this.getProjection()),r=this.hidpi_?2:1,s=e.imageWidth==e.imageHeight?e.imageWidth/r:[e.imageWidth/r,e.imageHeight/r],o=th({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:s});this.tileGrid=o;const a=this.culture_,l=this.hidpi_;if(this.tileUrlFunction=lh(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,r){if(!t)return;el(t[0],t[1],t[2],i);let s=n;return l&&(s+="&dpi=d1&device=mobile"),s.replace("{quadkey}",fh(i))}}))),e.imageryProviders){const t=qi(Ui("EPSG:4326"),this.getProjection());this.setAttributions(function(i){const n=[],r=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(r.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(r.center,o)[0];return e.imageryProviders.map((function(e){let r=!1;const s=e.coverageAreas;for(let e=0,n=s.length;e<n;++e){const n=s[e];if(a>=n.zoomMin&&a<=n.zoomMax){const e=n.bbox;if(we(Re([e[1],e[0],e[3],e[2]],t),i.extent)){r=!0;break}}}r&&n.push(e.attribution)})),n.push('<a class="ol-attribution-bing-tos" href="https://www.microsoft.com/maps/product/terms.html" target="_blank">Terms of Use</a>'),n}.bind(this))}this.setState("ready")}},xE.source.BingMaps.quadKey=fh,xE.source.CartoDB=class extends ph{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}},xE.source.Cluster=class extends Xh{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return at("Point"==e.getType(),10),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(S,this.boundRefresh_),this.source=t,t&&t.addEventListener(S,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,n=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,n&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=[1/0,1/0,-1/0,-1/0],e=this.distance*this.resolution,i=this.source.getFeatures(),n={};for(let r=0,s=i.length;r<s;r++){const s=i[r];if(!(z(s)in n)){const i=this.geometryFunction(s);if(i){Qt(i.getCoordinates(),t),Xt(t,e,t);const r=this.source.getFeaturesInExtent(t).filter((function(t){const e=z(t);return!(e in n)&&(n[e]=!0,!0)}));this.features.push(this.createCluster(r,t))}}}}createCluster(t,e){const i=[0,0];for(let e=t.length-1;e>=0;--e){const n=this.geometryFunction(t[e]);n?mi(i,n.getCoordinates()):t.splice(e,1)}Ti(i,1/t.length);const n=ge(e),r=this.interpolationRatio,s=new Wn([i[0]*(1-r)+n[0]*r,i[1]*(1-r)+n[1]*r]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new lt({geometry:s,features:t})}},xE.source.DataTile=Wh,xE.source.GeoTIFF=rc,xE.source.IIIF=class extends dh{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const n=e.version||ac,r=e.sizes||[],s=e.size;at(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,60);const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==oc?"native":"default");let d=e.resolutions||[];const g=e.supports||[],f=e.extent||[0,-a,o,0],p=null!=r&&Array.isArray(r)&&r.length>0,m=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),_=null!=g&&Array.isArray(g)&&(g.includes("regionByPx")||g.includes("regionByPct"))&&(g.includes("sizeByWh")||g.includes("sizeByH")||g.includes("sizeByW")||g.includes("sizeByPct"));let y,x,v;if(d.sort((function(t,e){return e-t})),m||_)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(y=l,x=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(y=l[0],x=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(y=l[0],x=l[1]):null==l[0]&&Number.isInteger(l[1])&&(y=l[1],x=l[1])))),void 0!==y&&void 0!==x||(y=Lo,x=Lo),0==d.length){v=Math.max(Math.ceil(Math.log(o/y)/Math.LN2),Math.ceil(Math.log(a/x)/Math.LN2));for(let t=v;t>=0;t--)d.push(Math.pow(2,t))}else{const t=Math.max(...d);v=Math.round(Math.log(t)/Math.LN2)}else if(y=o,x=a,d=[],p){r.sort((function(t,e){return t[0]-e[0]})),v=-1;const t=[];for(let e=0;e<r.length;e++){const i=o/r[e][0];d.length>0&&d[d.length-1]==i?t.push(e):(d.push(i),v++)}if(t.length>0)for(let e=0;e<t.length;e++)r.splice(t[e]-e,1)}else d.push(1),r.push([o,a]),v=0;const S=new Hl({tileSize:[y,x],extent:f,origin:xe(f),resolutions:d}),w=sc.bind(null,Va(l||256).map((function(t){return t*h})));super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:e.projection,reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:e.state,tileClass:w,tileGrid:S,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:function(t,e,s){let l,h;const f=t[0];if(f>v)return;const S=t[1],w=t[2],T=d[f];if(!(void 0===S||void 0===w||void 0===T||S<0||Math.ceil(o/T/y)<=S||w<0||Math.ceil(a/T/x)<=w)){if(_||m){const t=S*y*T,e=w*x*T;let i=y*T,r=x*T,s=y,c=x;if(t+i>o&&(i=o-t),e+r>a&&(r=a-e),t+y*T>o&&(s=Math.floor((o-t+T-1)/T)),e+x*T>a&&(c=Math.floor((a-e+T-1)/T)),0==t&&i==o&&0==e&&r==a)l="full";else if(!_||g.includes("regionByPx"))l=t+","+e+","+i+","+r;else if(g.includes("regionByPct")){l="pct:"+fc(t/o*100)+","+fc(e/a*100)+","+fc(i/o*100)+","+fc(r/a*100)}n!=lc||_&&!g.includes("sizeByWh")?!_||g.includes("sizeByW")?h=s+",":g.includes("sizeByH")?h=","+c:g.includes("sizeByWh")?h=s+","+c:g.includes("sizeByPct")&&(h="pct:"+fc(100/T)):h=s+","+c}else if(l="full",p){const t=r[f][0],e=r[f][1];h=n==lc?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=n==lc?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}},xE.source.Image=vc,xE.source.Image.ImageSourceEvent=xc,xE.source.Image.defaultImageLoadFunction=Sc,xE.source.ImageArcGISRest=class extends vc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Sc,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getParams(){return this.params_}getImageInternal(t,e,i,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;const r=this.image_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Yt(r.getExtent(),t))return r;const s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(s,this.params_);const o=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){const e=this.ratio_*Se(t)/2,i=this.ratio_*_e(t)/2;t[0]=o-e,t[1]=a-i,t[2]=o+e,t[3]=a+i}const l=e/i,h=Math.ceil(Se(t)/l),c=Math.ceil(_e(t)/l);t[0]=o-l*h/2,t[2]=o+l*h/2,t[1]=a-l*c/2,t[3]=a+l*c/2,this.imageSize_[0]=h,this.imageSize_[1]=c;const u=this.getRequestUrl_(t,this.imageSize_,i,n,s);return this.image_=new Ar(t,e,i,u,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(S,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,n,r){const s=n.getCode().split(/:(?=\d+$)/).pop();r.SIZE=e[0]+","+e[1],r.BBOX=t.join(","),r.BBOXSR=s,r.IMAGESR=s,r.DPI=Math.round(90*i);const o=this.url_,a=o.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==o&&at(!1,50),wc(a,r)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}},xE.source.ImageCanvas=class extends vc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,n){e=this.findNearestResolution(e);let r=this.canvas_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Yt(r.getExtent(),t))return r;Ce(t=t.slice(),this.ratio_);const s=[Se(t)/e*i,_e(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,n);return o&&(r=new Nr(t,e,i,o)),this.canvas_=r,this.renderedRevision_=this.getRevision(),r}},xE.source.ImageMapGuide=class extends vc{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Sc,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0}getParams(){return this.params_}getImageInternal(t,e,i,n){e=this.findNearestResolution(e),i=this.hidpi_?i:1;let r=this.image_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&Yt(r.getExtent(),t))return r;1!=this.ratio_&&Ce(t=t.slice(),this.ratio_);const s=[Se(t)/e*i,_e(t)/e*i];if(void 0!==this.url_){const o=this.getUrl(this.url_,this.params_,t,s,n);r=new Ar(t,e,i,o,this.crossOrigin_,this.imageLoadFunction_),r.addEventListener(S,this.handleImageChange.bind(this))}else r=null;return this.image_=r,this.renderedRevision_=this.getRevision(),r}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}getUrl(t,e,i,n,r){const s=function(t,e,i,n){const r=Se(t),s=_e(t),o=e[0],a=e[1],l=.0254/n;if(a*r>o*s)return r*i/(o*l);return s*i/(a*l)}(i,n,this.metersPerUnit_,this.displayDpi_),o=ge(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:s,SETVIEWCENTERX:o[0],SETVIEWCENTERY:o[1]};return Object.assign(a,e),wc(t,a)}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}},xE.source.ImageStatic=class extends vc{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:Sc;super({attributions:t.attributions,interpolate:t.interpolate,projection:Ui(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image_=new Ar(this.imageExtent_,void 0,1,this.url_,e,i),this.imageSize_=t.imageSize?t.imageSize:null,this.image_.addEventListener(S,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,n){return we(t,this.image_.getExtent())?this.image_:null}getUrl(){return this.url_}handleImageChange(t){if(this.image_.getState()==Lr){const t=this.image_.getExtent(),e=this.image_.getImage();let i,n;this.imageSize_?(i=this.imageSize_[0],n=this.imageSize_[1]):(i=e.width,n=e.height);const r=Se(t),s=_e(t),o=r/i,a=s/n;let l=i,h=n;if(o>a?l=Math.round(r/a):h=Math.round(s/o),l!==i||h!==n){const t=Dr(l,h);this.getInterpolate()||(t.imageSmoothingEnabled=!1);const r=t.canvas;t.drawImage(e,0,0,i,n,0,0,r.width,r.height),this.image_.setImage(r)}}super.handleImageChange(t)}},xE.source.ImageWMS=class extends vc{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Sc,this.params_=Object.assign({},t.params),this.v13_=!0,this.updateV13_(),this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getFeatureInfoUrl(t,e,i,n){if(void 0===this.url_)return;const r=Ui(i),s=this.getProjection();s&&s!==r&&(e=kl(s,r,t,e),t=$i(t,r,s));const o=pe(t,e,0,Ec),a={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(a,this.params_,n);const l=di((t[0]-o[0])/e,4),h=di((o[3]-t[1])/e,4);return a[this.v13_?"I":"X"]=l,a[this.v13_?"J":"Y"]=h,this.getRequestUrl_(o,Ec,1,s||r,a)}getLegendUrl(t,e){if(void 0===this.url_)return;const i={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),wc(this.url_,i)}getParams(){return this.params_}getImageInternal(t,e,i,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);const r=e/i,s=ge(t),o=pe(s,r,0,[gi(Se(t)/r,4),gi(_e(t)/r,4)]),a=pe(s,r,0,[gi(this.ratio_*Se(t)/r,4),gi(this.ratio_*_e(t)/r,4)]),l=this.image_;if(l&&this.renderedRevision_==this.getRevision()&&l.getResolution()==e&&l.getPixelRatio()==i&&Yt(l.getExtent(),o))return l;const h={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Object.assign(h,this.params_),this.imageSize_[0]=ui(Se(a)/r,4),this.imageSize_[1]=ui(_e(a)/r,4);const c=this.getRequestUrl_(a,this.imageSize_,i,n,h);return this.image_=new Ar(a,e,i,c,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(S,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,n,r){if(at(void 0!==this.url_,9),r[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(r.STYLES=""),1!=i)switch(this.serverType_){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in r?r.FORMAT_OPTIONS+=";dpi:"+t:r.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":r.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":r.DPI=90*i;break;default:at(!1,8)}r.WIDTH=e[0],r.HEIGHT=e[1];const s=n.getAxisOrientation();let o;return o=this.v13_&&"ne"==s.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,r.BBOX=o.join(","),wc(this.url_,r)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.image_=null,this.changed()}updateV13_(){const t=this.params_.VERSION||Tc;this.v13_=pi(t,"1.3")>=0}},xE.source.OGCMapTile=class extends dh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});Ig({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){console.error(t),this.setState("error")}},xE.source.OGCVectorTile=class extends eu{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,format:t.format,overlaps:t.overlaps,projection:t.projection,tileClass:t.tileClass,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection,state:"loading"});Ig({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,supportedMediaTypes:t.format.supportedMediaTypes,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){console.error(t),this.setState("error")}},xE.source.OSM=class extends ph{constructor(t){let e;e=void 0!==(t=t||{}).attributions?t.attributions:[Cc];const i=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",n=void 0!==t.url?t.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:e,attributionsCollapsible:!1,cacheSize:t.cacheSize,crossOrigin:i,interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:19,opaque:void 0===t.opaque||t.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:n,wrapX:t.wrapX,zDirection:t.zDirection})}},xE.source.OSM.ATTRIBUTION=Cc,xE.source.Raster=Yc,xE.source.Raster.Processor=Xc,xE.source.Raster.RasterSourceEvent=Zc,xE.source.Raster.newImageData=Bc,xE.source.Source=Yl,xE.source.Stamen=class extends ph{constructor(t){const e=t.layer.indexOf("-"),i=-1==e?t.layer:t.layer.slice(0,e),n=Qc[i],r=Jc[t.layer],s=void 0!==t.url?t.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+t.layer+"/{z}/{x}/{y}."+r.extension;super({attributions:$c,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:null!=t.maxZoom?t.maxZoom:n.maxZoom,minZoom:null!=t.minZoom?t.minZoom:n.minZoom,opaque:r.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:s,wrapX:t.wrapX,zDirection:t.zDirection})}},xE.source.Tile=rh,xE.source.Tile.TileSourceEvent=sh,xE.source.TileArcGISRest=class extends dh{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;const a=r.getCode().split(/:(?=\d+$)/).pop();let l;if(s.SIZE=e[0]+","+e[1],s.BBOX=i.join(","),s.BBOXSR=a,s.IMAGESR=a,s.DPI=Math.round(s.DPI?s.DPI*n:90*n),1==o.length)l=o[0];else{l=o[li(ol(t),o.length)]}return wc(l.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const r=n.getTileCoordExtent(t,this.tmpExtent_);let s=Va(n.getTileSize(t[0]),this.tmpSize);1!=e&&(s=Xa(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,r,e,i,o)}},xE.source.TileDebug=class extends ph{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],n=Va(this.tileGrid.getTileSize(i)),r=Dr(n[0],n[1]);r.strokeStyle="grey",r.strokeRect(.5,.5,n[0]+.5,n[1]+.5),r.fillStyle="grey",r.strokeStyle="white",r.textAlign="center",r.textBaseline="middle",r.font="24px sans-serif",r.lineWidth=4,r.strokeText(e,n[0]/2,n[1]/2,n[0]),r.fillText(e,n[0]/2,n[1]/2,n[0]),t.setImage(r.canvas)}})}},xE.source.TileImage=dh,xE.source.TileJSON=class extends dh{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:Ui("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)vl(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):at(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=Ui("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=qi(e,i);n=Re(t.bounds,r)}const r=nh(i),s=t.minzoom||0,o=th({extent:r,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=ah(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==n?n:r;this.setAttributions((function(i){return we(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}},xE.source.TileWMS=class extends dh{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,n){const r=Ui(i),s=this.getProjection();let o=this.getTileGrid();o||(o=this.getTileGridForProjection(r));const a=o.getZForResolution(e,this.zDirection),l=o.getTileCoordForCoordAndZ(t,a);if(o.getResolutions().length<=l[0])return;let h=o.getResolution(l[0]),c=o.getTileCoordExtent(l,this.tmpExtent_),u=Va(o.getTileSize(l[0]),this.tmpSize);const d=this.gutter_;0!==d&&(u=Ua(u,d,this.tmpSize),c=Xt(c,h*d,c)),s&&s!==r&&(h=kl(s,r,t,h),c=Ji(c,r,s),t=$i(t,r,s));const g={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(g,this.params_,n);const f=Math.floor((t[0]-c[0])/h),p=Math.floor((c[3]-t[1])/h);return g[this.v13_?"I":"X"]=f,g[this.v13_?"J":"Y"]=p,this.getRequestUrl_(l,u,c,1,s||r,g)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),wc(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;if(s.WIDTH=e[0],s.HEIGHT=e[1],s[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(s.STYLES=""),1!=n)switch(this.serverType_){case"geoserver":const t=90*n+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*n;break;case"carmentaserver":case"qgis":s.DPI=90*n;break;default:at(!1,52)}const a=r.getAxisOrientation(),l=i;if(this.v13_&&"ne"==a.substr(0,2)){let t;t=i[0],l[0]=i[1],l[1]=t,t=i[2],l[2]=i[3],l[3]=t}let h;if(s.BBOX=l.join(","),1==o.length)h=o[0];else{h=o[li(ol(t),o.length)]}return wc(h,s)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||Tc;this.v13_=pi(t,"1.3")>=0}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const r=n.getResolution(t[0]);let s=n.getTileCoordExtent(t,this.tmpExtent_),o=Va(n.getTileSize(t[0]),this.tmpSize);const a=this.gutter_;0!==a&&(o=Ua(o,a,this.tmpSize),s=Xt(s,r*a,s)),1!=e&&(o=Xa(o,e,this.tmpSize));const l={SERVICE:"WMS",VERSION:Tc,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return Object.assign(l,this.params_),this.getRequestUrl_(t,o,s,e,i,l)}},xE.source.UTFGrid=class extends rh{constructor(t){if(super({projection:Ui("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=hh,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)vl(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):at(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,n){if(this.tileGrid){const r=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,r);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,n)}else!0===n?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=Ui("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=qi(e,i);n=Re(t.bounds,r)}const r=nh(i),s=t.minzoom||0,o=th({extent:r,maxZoom:t.maxzoom||22,minZoom:s});this.tileGrid=o,this.template_=t.template;const a=t.grids;if(a){if(this.tileUrlFunction_=ah(a,o),void 0!==t.attribution){const e=void 0!==n?n:r;this.setAttributions((function(i){return we(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,n,r){const s=il(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=this.tileUrlFunction_(a,n,r),h=new tu(o,void 0!==l?H:tt,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const n=il(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}},xE.source.UTFGrid.CustomTile=tu,xE.source.UrlTile=uh,xE.source.Vector=Xh,xE.source.Vector.VectorSourceEvent=zh,xE.source.VectorTile=eu,xE.source.VectorTile.defaultLoadFunction=iu,xE.source.WMTS=class extends dh{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let n=t.urls;void 0===n&&void 0!==t.url&&(n=ch(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:n,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=lh(n.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(lh(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?wc(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const n=this.tileGrid,r=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:n.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,r);let l=t;return l="KVP"==e?wc(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}},xE.source.WMTS.optionsFromCapabilities=function(t,e){const i=t.Contents.Layer.find((function(t){return t.Identifier==e.layer}));if(!i)return null;const n=t.Contents.TileMatrixSet;let r;r=i.TileMatrixSetLink.length>1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=n.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,r=Ui(i),s=Ui(e.projection);return r&&s?Ki(r,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,r<0&&(r=0);const s=i.TileMatrixSetLink[r].TileMatrixSet,o=i.TileMatrixSetLink[r].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),r=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),r<0&&(r=0);const l=i.Style[r].Identifier,h={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const n=t.Identifier;let r=t.Default;void 0===r&&(r=t.Value[0]),h[n]=r}));const c=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let u;const d=c.SupportedCRS;if(d&&(u=Ui(d)),"projection"in e){const t=Ui(e.projection);t&&(u&&!Ki(t,u)||(u=t))}let g=!1;const f="ne"==u.getAxisOrientation().substr(0,2);let p=c.TileMatrix[0],m={MinTileCol:0,MinTileRow:0,MaxTileCol:p.MatrixWidth-1,MaxTileRow:p.MatrixHeight-1};if(o){m=o[o.length-1];const t=c.TileMatrix.find((t=>t.Identifier===m.TileMatrix||c.Identifier+":"+t.Identifier===m.TileMatrix));t&&(p=t)}const _=28e-5*p.ScaleDenominator/u.getMetersPerUnit(),y=f?[p.TopLeftCorner[1],p.TopLeftCorner[0]]:p.TopLeftCorner,x=p.TileWidth*_,v=p.TileHeight*_;let S=c.BoundingBox;S&&f&&(S=[S[1],S[0],S[3],S[2]]);let w=[y[0]+x*m.MinTileCol,y[1]-v*(1+m.MaxTileRow),y[0]+x*(1+m.MaxTileCol),y[1]-v*m.MinTileRow];if(void 0!==S&&!Yt(S,w)){const t=i.WGS84BoundingBox,e=Ui("EPSG:4326").getExtent();if(w=S,t)g=t[0]===e[0]&&t[2]===e[2];else{const t=Ji(S,c.SupportedCRS,"EPSG:4326");g=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const T=ru(c,w,o),E=[];let C=e.requestEncoding;if(C=void 0!==C?C:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;t<i;++t)if(e[t].Constraint){const i=e[t].Constraint.find((function(t){return"GetEncoding"==t.name})).AllowedValues.Value;if(""===C&&(C=i[0]),"KVP"!==C)break;i.includes("KVP")&&E.push(e[t].href)}else e[t].href&&(C="KVP",E.push(e[t].href))}return 0===E.length&&(C="REST",i.ResourceURL.forEach((function(t){"tile"===t.resourceType&&(a=t.format,E.push(t.template))}))),{urls:E,layer:e.layer,matrixSet:s,format:a,projection:u,requestEncoding:C,tileGrid:T,style:l,dimensions:h,wrapX:g,crossOrigin:e.crossOrigin}},xE.source.XYZ=ph,xE.source.Zoomify=class extends dh{constructor(t){const e=t.size,i=void 0!==t.tierSizeCalculation?t.tierSizeCalculation:"default",n=t.tilePixelRatio||1,r=e[0],s=e[1],o=[],a=t.tileSize||Lo;let l=a*n;switch(i){case"default":for(;r>l||s>l;)o.push([Math.ceil(r/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=r,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:at(!1,53)}o.push([1,1]),o.reverse();const h=[n],c=[0];for(let t=1,e=o.length;t<e;t++)h.push(n<<t),c.push(o[t-1][0]*o[t-1][1]+c[t-1]);h.reverse();const u=new Hl({tileSize:a,extent:t.extent||[0,-s,r,0],resolutions:h});let d=t.url;!d||d.includes("{TileGroup}")||d.includes("{tileIndex}")||(d+="{TileGroup}/{z}-{x}-{y}.jpg");const g=ch(d);let f=a*n;const p=lh(g.map((function(t){return function(e,i,n){if(!e)return;const r=e[0],s=e[1],a=e[2],l=s+a*o[r][0],h={z:r,x:s,y:a,tileIndex:l,TileGroup:"TileGroup"+((l+c[r])/f|0)};return t.replace(/\{(\w+?)\}/g,(function(t,e){return h[e]}))}}))),m=sc.bind(null,Va(a*n));super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,tilePixelRatio:n,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:m,tileGrid:u,tileUrlFunction:p,transition:t.transition}),this.zDirection=t.zDirection;const _=p(u.getTileCoordForCoordAndResolution(ge(u.getExtent()),h[h.length-1]),1,null),y=new Image;y.addEventListener("error",function(){f=a,this.changed()}.bind(this)),y.src=_}},xE.source.Zoomify.CustomTile=sc,xE.source.common={},xE.source.common.DEFAULT_WMS_VERSION="1.3.0",xE.source.ogcTileUtil={},xE.source.ogcTileUtil.getMapTileUrlTemplate=bg,xE.source.ogcTileUtil.getTileSetInfo=Ig,xE.source.ogcTileUtil.getVectorTileUrlTemplate=Rg,xE.source.sourcesFromTileGrid=function(t,e){const i=new tl(32),n=t.getExtent();return function(r,s){i.expireCache(),n&&(r=ye(n,r));const o=t.getZForResolution(s),a=[];return t.forEachTileCoord(r,o,(t=>{const n=t.toString();if(!i.containsKey(n)){const r=e(t);i.set(n,r)}a.push(i.get(n))})),a}},xE.source.wms={},xE.source.wms.DEFAULT_VERSION=Tc,xE.sphere={},xE.sphere.DEFAULT_RADIUS=Li,xE.sphere.getArea=function t(e,i){const n=(i=i||{}).radius||Li,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,d=0;switch(s){case"Point":case"MultiPoint":case"LineString":case"MultiLineString":case"LinearRing":break;case"Polygon":for(o=e.getCoordinates(),d=Math.abs(Ai(o[0],n)),l=1,h=o.length;l<h;++l)d-=Math.abs(Ai(o[l],n));break;case"MultiPolygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)for(a=o[l],d+=Math.abs(Ai(a[0],n)),c=1,u=a.length;c<u;++c)d-=Math.abs(Ai(a[c],n));break;case"GeometryCollection":{const n=e.getGeometries();for(l=0,h=n.length;l<h;++l)d+=t(n[l],i);break}default:throw new Error("Unsupported geometry type: "+s)}return d},xE.sphere.getDistance=Fi,xE.sphere.getLength=function t(e,i){const n=(i=i||{}).radius||Li,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,d=0;switch(s){case"Point":case"MultiPoint":break;case"LineString":case"LinearRing":o=e.getCoordinates(),d=Mi(o,n);break;case"MultiLineString":case"Polygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)d+=Mi(o[l],n);break;case"MultiPolygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)for(a=o[l],c=0,u=a.length;c<u;++c)d+=Mi(a[c],n);break;case"GeometryCollection":{const n=e.getGeometries();for(l=0,h=n.length;l<h;++l)d+=t(n[l],i);break}default:throw new Error("Unsupported geometry type: "+s)}return d},xE.sphere.offset=Oi,xE.string={},xE.string.compareVersions=pi,xE.string.padNumber=fi,xE.structs={},xE.structs.LRUCache=tl,xE.structs.LinkedList=class{constructor(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0}insertItem(t){const e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){const t=i.next;e.prev=i,e.next=t,i.next=e,t&&(t.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++}removeItem(){const t=this.head_;if(t){const e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}}firstItem(){if(this.head_=this.first_,this.head_)return this.head_.data}lastItem(){if(this.head_=this.last_,this.head_)return this.head_.data}nextItem(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data}getNextItem(){if(this.head_&&this.head_.next)return this.head_.next.data}prevItem(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data}getPrevItem(){if(this.head_&&this.head_.prev)return this.head_.prev.data}getCurrItem(){if(this.head_)return this.head_.data}setFirstItem(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)}concat(t){if(t.head_){if(this.head_){const e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}}getLength(){return this.length_}},xE.structs.PriorityQueue=Eo,xE.structs.PriorityQueue.DROP=To,xE.structs.RBush=Oh,xE.style={},xE.style.Circle=sg,xE.style.Fill=og,xE.style.Icon=cg,xE.style.IconImage=lg,xE.style.IconImage.get=hg,xE.style.IconImageCache=es,xE.style.IconImageCache.shared=ns,xE.style.Image=ng,xE.style.RegularShape=rg,xE.style.Stroke=ug,xE.style.Style=dg,xE.style.Style.createDefaultStyle=pg,xE.style.Style.createEditingStyle=mg,xE.style.Style.toFunction=gg,xE.style.Text=yg,xE.style.expressions={},xE.style.expressions.Operators=Md,xE.style.expressions.PALETTE_TEXTURE_ARRAY=$d,xE.style.expressions.arrayToGlsl=Dd,xE.style.expressions.colorToGlsl=Gd,xE.style.expressions.expressionToGlsl=Bd,xE.style.expressions.getStringNumberEquivalent=kd,xE.style.expressions.getValueType=Ad,xE.style.expressions.isTypeUnique=Od,xE.style.expressions.numberToGlsl=Nd,xE.style.expressions.stringToGlsl=jd,xE.style.expressions.uniformNameForVariable=Hd,xE.style.flat={},xE.style.flat.toStyle=xg,xE.tilecoord={},xE.tilecoord.createOrUpdate=el,xE.tilecoord.fromKey=sl,xE.tilecoord.getCacheKeyForTileKey=rl,xE.tilecoord.getKey=nl,xE.tilecoord.getKeyZXY=il,xE.tilecoord.hash=ol,xE.tilecoord.withinExtentAndZ=al,xE.tilegrid={},xE.tilegrid.TileGrid=Hl,xE.tilegrid.WMTS=nu,xE.tilegrid.WMTS.createFromCapabilitiesMatrixSet=ru,xE.tilegrid.common={},xE.tilegrid.common.DEFAULT_MAX_ZOOM=42,xE.tilegrid.common.DEFAULT_TILE_SIZE=Lo,xE.tilegrid.createForExtent=Ql,xE.tilegrid.createForProjection=ih,xE.tilegrid.createXYZ=th,xE.tilegrid.extentFromProjection=nh,xE.tilegrid.getForProjection=$l,xE.tilegrid.wrapX=Jl,xE.tileurlfunction={},xE.tileurlfunction.createFromTemplate=oh,xE.tileurlfunction.createFromTemplates=ah,xE.tileurlfunction.createFromTileUrlFunctions=lh,xE.tileurlfunction.expandUrl=ch,xE.tileurlfunction.nullTileUrlFunction=hh,xE.transform={},xE.transform.apply=bt,xE.transform.compose=Ft,xE.transform.composeCssTransform=function(t,e,i,n,r,s,o){return Nt(Ft([1,0,0,1,0,0],t,e,i,n,r,s,o))},xE.transform.create=St,xE.transform.determinant=At,xE.transform.invert=function(t){return Mt(t,t)},xE.transform.makeInverse=Mt,xE.transform.makeScale=It,xE.transform.multiply=Tt,xE.transform.reset=wt,xE.transform.rotate=Rt,xE.transform.scale=Pt,xE.transform.set=Et,xE.transform.setFromArray=Ct,xE.transform.toString=Nt,xE.transform.translate=Lt,xE.uri={},xE.uri.appendParams=wc,xE.util={},xE.util.VERSION="latest",xE.util.abstract=B,xE.util.getUid=z,xE.vec={},xE.vec.mat4={},xE.vec.mat4.create=Wu,xE.vec.mat4.fromTransform=Zu,xE.webgl={},xE.webgl.ARRAY_BUFFER=su,xE.webgl.Buffer=Bu,xE.webgl.Buffer.getArrayClassForType=Uu,xE.webgl.DYNAMIC_DRAW=lu,xE.webgl.ELEMENT_ARRAY_BUFFER=ou,xE.webgl.FLOAT=hu,xE.webgl.Helper=sd,xE.webgl.Helper.computeAttributesStride=od,xE.webgl.PaletteTexture=ld,xE.webgl.PostProcessingPass=Vu,xE.webgl.RenderTarget=cd,xE.webgl.STATIC_DRAW=au,xE.webgl.STREAM_DRAW=35040,xE.webgl.ShaderBuilder={},xE.webgl.ShaderBuilder.ShaderBuilder=eg,xE.webgl.ShaderBuilder.parseLiteralStyle=ig,xE.webgl.TileTexture=fd,xE.webgl.UNSIGNED_BYTE=5121,xE.webgl.UNSIGNED_INT=5125,xE.webgl.UNSIGNED_SHORT=5123,xE.webgl.getContext=uu,xE.webgl.getSupportedExtensions=function(){if(!du){const t=uu(document.createElement("canvas"));t&&(du=t.getSupportedExtensions())}return du},xE.xml={},xE.xml.OBJECT_PROPERTY_NODE_FACTORY=Pu,xE.xml.XML_SCHEMA_INSTANCE_URI=gu,xE.xml.createElementNS=fu,xE.xml.getAllTextContent=pu,xE.xml.getAllTextContent_=mu,xE.xml.getAttributeNS=yu,xE.xml.getDocument=ku,xE.xml.getXMLSerializer=Gu,xE.xml.isDocument=_u,xE.xml.makeArrayExtender=vu,xE.xml.makeArrayPusher=Su,xE.xml.makeArraySerializer=bu,xE.xml.makeChildAppender=Cu,xE.xml.makeObjectPropertyPusher=Tu,xE.xml.makeObjectPropertySetter=Eu,xE.xml.makeReplacer=wu,xE.xml.makeSequence=Iu,xE.xml.makeSimpleNodeFactory=Ru,xE.xml.makeStructureNS=Lu,xE.xml.parse=xu,xE.xml.parseNode=Fu,xE.xml.pushParseAndPop=Mu,xE.xml.pushSerializeAndPop=Ou,xE.xml.registerDocument=function(t){Du=t},xE.xml.registerXMLSerializer=function(t){Nu=t},xE.xml.serialize=Au,xE}();
|
|
3
|
+
read:function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<<a)-1,h=l>>1,c=-7,u=i?r-1:0,d=i?-1:1,g=t[e+u];for(u+=d,s=g&(1<<-c)-1,g>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=256*o+t[e+u],u+=d,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,n),s-=h}return(g?-1:1)*o*Math.pow(2,s-n)},write:function(t,e,i,n,r,s){var o,a,l,h=8*s-r-1,c=(1<<h)-1,u=c>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:s-1,f=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+g]=255&a,g+=f,a/=256,r-=8);for(o=o<<r|a,h+=r;h>0;t[i+g]=255&o,g+=f,o/=256,h-=8);t[i+g-f]|=128*p}},o_=l_,a_=s_;function l_(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}l_.Varint=0,l_.Fixed64=1,l_.Bytes=2,l_.Fixed32=5;var h_=4294967296,c_=1/h_,u_="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function d_(t){return t.type===l_.Bytes?t.readVarint()+t.pos:t.pos+1}function g_(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function f_(t,e,i){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(n);for(var r=i.pos-1;r>=t;r--)i.buf[r+n]=i.buf[r]}function p_(t,e){for(var i=0;i<t.length;i++)e.writeVarint(t[i])}function m_(t,e){for(var i=0;i<t.length;i++)e.writeSVarint(t[i])}function __(t,e){for(var i=0;i<t.length;i++)e.writeFloat(t[i])}function y_(t,e){for(var i=0;i<t.length;i++)e.writeDouble(t[i])}function x_(t,e){for(var i=0;i<t.length;i++)e.writeBoolean(t[i])}function v_(t,e){for(var i=0;i<t.length;i++)e.writeFixed32(t[i])}function S_(t,e){for(var i=0;i<t.length;i++)e.writeSFixed32(t[i])}function w_(t,e){for(var i=0;i<t.length;i++)e.writeFixed64(t[i])}function T_(t,e){for(var i=0;i<t.length;i++)e.writeSFixed64(t[i])}function E_(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function C_(t,e,i){t[i]=e,t[i+1]=e>>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function b_(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}l_.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos<i;){var n=this.readVarint(),r=n>>3,s=this.pos;this.type=7&n,t(r,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=E_(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=b_(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=E_(this.buf,this.pos)+E_(this.buf,this.pos+4)*h_;return this.pos+=8,t},readSFixed64:function(){var t=E_(this.buf,this.pos)+b_(this.buf,this.pos+4)*h_;return this.pos+=8,t},readFloat:function(){var t=a_.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=a_.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,n=this.buf;return e=127&(i=n[this.pos++]),i<128?e:(e|=(127&(i=n[this.pos++]))<<7,i<128?e:(e|=(127&(i=n[this.pos++]))<<14,i<128?e:(e|=(127&(i=n[this.pos++]))<<21,i<128?e:function(t,e,i){var n,r,s=i.buf;if(r=s[i.pos++],n=(112&r)>>4,r<128)return g_(t,n,e);if(r=s[i.pos++],n|=(127&r)<<3,r<128)return g_(t,n,e);if(r=s[i.pos++],n|=(127&r)<<10,r<128)return g_(t,n,e);if(r=s[i.pos++],n|=(127&r)<<17,r<128)return g_(t,n,e);if(r=s[i.pos++],n|=(127&r)<<24,r<128)return g_(t,n,e);if(r=s[i.pos++],n|=(1&r)<<31,r<128)return g_(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=n[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,e=this.pos;return this.pos=t,t-e>=12&&u_?function(t,e,i){return u_.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var n="",r=e;for(;r<i;){var s,o,a,l=t[r],h=null,c=l>239?4:l>223?3:l>191?2:1;if(r+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[r+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[r+1],o=t[r+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[r+1],o=t[r+2],a=t[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),n+=String.fromCharCode(h),r+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==l_.Bytes)return t.push(this.readVarint(e));var i=d_(this);for(t=t||[];this.pos<i;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==l_.Bytes)return t.push(this.readSVarint());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==l_.Bytes)return t.push(this.readBoolean());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==l_.Bytes)return t.push(this.readFloat());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==l_.Bytes)return t.push(this.readDouble());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==l_.Bytes)return t.push(this.readFixed32());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==l_.Bytes)return t.push(this.readSFixed32());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==l_.Bytes)return t.push(this.readFixed64());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==l_.Bytes)return t.push(this.readSFixed64());var e=d_(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===l_.Varint)for(;this.buf[this.pos++]>127;);else if(e===l_.Bytes)this.pos=this.readVarint()+this.pos;else if(e===l_.Fixed32)this.pos+=4;else{if(e!==l_.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var i=new Uint8Array(e);i.set(this.buf),this.buf=i,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),C_(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),C_(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),C_(this.buf,-1&t,this.pos),C_(this.buf,Math.floor(t*c_),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),C_(this.buf,-1&t,this.pos),C_(this.buf,Math.floor(t*c_),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var i,n;t>=0?(i=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(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 e=this.pos;this.pos=function(t,e,i){for(var n,r,s=0;s<e.length;s++){if((n=e.charCodeAt(s))>55295&&n<57344){if(!r){n>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):r=n;continue}if(n<56320){t[i++]=239,t[i++]=191,t[i++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(t[i++]=239,t[i++]=191,t[i++]=189,r=null);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:(n<65536?t[i++]=n>>12|224:(t[i++]=n>>18|240,t[i++]=n>>12&63|128),t[i++]=n>>6&63|128),t[i++]=63&n|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&f_(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),a_.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),a_.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i<e;i++)this.buf[this.pos++]=t[i]},writeRawMessage:function(t,e){this.pos++;var i=this.pos;t(e,this);var n=this.pos-i;n>=128&&f_(i,n,this),this.pos=i-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,i){this.writeTag(t,l_.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,p_,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,m_,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,x_,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,__,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,y_,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,v_,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,S_,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,w_,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,T_,e)},writeBytesField:function(t,e){this.writeTag(t,l_.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,l_.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,l_.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,l_.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,l_.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,l_.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,l_.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,l_.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,l_.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,l_.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function R_(t,e,i){if(3===t){const t={keys:[],values:[],features:[]},n=i.readVarint()+i.pos;i.readFields(P_,t,n),t.length=t.features.length,t.length&&(e[t.name]=t)}}function P_(t,e,i){if(15===t)e.version=i.readVarint();else if(1===t)e.name=i.readString();else if(5===t)e.extent=i.readVarint();else if(2===t)e.features.push(i.pos);else if(3===t)e.keys.push(i.readString());else if(4===t){let n=null;const r=i.readVarint()+i.pos;for(;i.pos<r;)n=1===(t=i.readVarint()>>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(n)}}function I_(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos<t;){const t=e.layer.keys[i.readVarint()],n=e.layer.values[i.readVarint()];e.properties[t]=n}}else 3==t?e.type=i.readVarint():4==t&&(e.geometry=i.pos)}function L_(t,e,i){t.pos=e.features[i];const n=t.readVarint()+t.pos,r={layer:e,type:0,properties:{}};return t.readFields(I_,r,n),r}var F_=class extends i_{constructor(t){super(),t=t||{},this.dataProjection=new De({code:"",units:"tile-pixels"}),this.featureClass_=t.featureClass?t.featureClass:Xm,this.geometryName_=t.geometryName,this.layerName_=t.layerName?t.layerName:"layer",this.layers_=t.layers?t.layers:null,this.idProperty_=t.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(t,e,i,n){t.pos=e.geometry;const r=t.readVarint()+t.pos;let s=1,o=0,a=0,l=0,h=0,c=0;for(;t.pos<r;){if(!o){const e=t.readVarint();s=7&e,o=e>>3}o--,1===s||2===s?(a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(n.push(h),c=h),i.push(a,l),h+=2):7===s?h>c&&(i.push(i[c],i[c+1]),h+=2):ht(!1,59)}h>c&&(n.push(h),c=h)}createFeature_(t,e,i){const n=e.type;if(0===n)return null;let r;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(n,l.length);if(this.featureClass_===Xm)r=new this.featureClass_(h,a,l,s,o),r.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=pr(a,l);t=e.length>1?new jm(a,"XY",e):new _r(a,"XY",l)}else t="Point"===h?new Hn(a,"XY"):"LineString"===h?new Mm(a,"XY"):"MultiPoint"===h?new Dm(a,"XY"):"MultiLineString"===h?new Om(a,"XY",l):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);const e=n_(t,!1,i);r.setGeometry(e),void 0!==o&&r.setId(o),r.setProperties(s,!0)}return r}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_,n=Vi((e=this.adaptOptions(e)).dataProjection);n.setWorldExtent(e.extent),e.dataProjection=n;const r=new o_(t),s=r.readFields(R_,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;n.setExtent(l);for(let t=0,i=a.length;t<i;++t){const i=L_(r,a,t),n=this.createFeature_(r,i,e);null!==n&&o.push(n)}}return o}readProjection(t){return this.dataProjection}setLayers(t){this.layers_=t}};var M_=class extends Ef{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un;const i=t.renderMode||"hybrid";ht("hybrid"==i||"vector"==i,28),this.renderMode_=i,this.setPreload(t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError),this.getBackground,this.setBackground}createRenderer(){return new wm(this)}getFeatures(t){return super.getFeatures(t)}getRenderMode(){return this.renderMode_}getPreload(){return this.get(nu)}getUseInterimTilesOnError(){return this.get(ru)}setPreload(t){this.set(nu,t)}setUseInterimTilesOnError(t){this.set(ru,t)}};class A_ extends r{constructor(t){super(T),this.error=t}}var O_=class extends M_{constructor(t){const e=!("declutter"in t)||t.declutter,i=new Mu({state:"loading",format:new F_});super({source:i,background:t.background,declutter:e,className:t.className,opacity:t.opacity,visible:t.visible,zIndex:t.zIndex,minResolution:t.minResolution,maxResolution:t.maxResolution,minZoom:t.minZoom,maxZoom:t.maxZoom,renderOrder:t.renderOrder,renderBuffer:t.renderBuffer,renderMode:t.renderMode,map:t.map,updateWhileAnimating:t.updateWhileAnimating,updateWhileInteracting:t.updateWhileInteracting,preload:t.preload,useInterimTilesOnError:t.useInterimTilesOnError,properties:t.properties}),t.accessToken&&(this.accessToken=t.accessToken);const n=t.styleUrl;olms.applyStyle(this,n,t.layers||t.source,{accessToken:this.accessToken}).then((()=>{i.setState("ready")})).catch((t=>{this.dispatchEvent(new A_(t));this.getSource().setState("error")})),void 0===this.getBackground()&&olms.applyBackground(this,t.styleUrl,{accessToken:this.accessToken})}};var N_=class extends Ef{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new xm(this)}};var D_=class extends Is{constructor(t){super(Object.assign({},t)),this.parseResult_=Dg(t.style),this.styleVariables_=t.style.variables||{},this.hitDetectionDisabled_=!!t.disableHitDetection}createRenderer(){return new ap(this,{vertexShader:this.parseResult_.builder.getSymbolVertexShader(),fragmentShader:this.parseResult_.builder.getSymbolFragmentShader(),hitVertexShader:!this.hitDetectionDisabled_&&this.parseResult_.builder.getSymbolVertexShader(!0),hitFragmentShader:!this.hitDetectionDisabled_&&this.parseResult_.builder.getSymbolFragmentShader(!0),uniforms:this.parseResult_.uniforms,attributes:this.parseResult_.attributes})}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}};function G_(t,e){const i=`\n attribute vec2 ${$d.TEXTURE_COORD};\n uniform mat4 ${Hd.TILE_TRANSFORM};\n uniform float ${Hd.TEXTURE_PIXEL_WIDTH};\n uniform float ${Hd.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Hd.TEXTURE_RESOLUTION};\n uniform float ${Hd.TEXTURE_ORIGIN_X};\n uniform float ${Hd.TEXTURE_ORIGIN_Y};\n uniform float ${Hd.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${$d.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${Hd.TEXTURE_ORIGIN_X} + ${Hd.TEXTURE_RESOLUTION} * ${Hd.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${Hd.TEXTURE_ORIGIN_Y} - ${Hd.TEXTURE_RESOLUTION} * ${Hd.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${Hd.TILE_TRANSFORM} * vec4(${$d.TEXTURE_COORD}, ${Hd.DEPTH}, 1.0);\n }\n `,n={inFragmentShader:!0,variables:[],attributes:[],stringLiteralsMap:{},functions:{},bandCount:e},r=[];if(void 0!==t.color){const e=vg(n,t.color,ag);r.push(`color = ${e};`)}if(void 0!==t.contrast){const e=vg(n,t.contrast,sg);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=vg(n,t.exposure,sg);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=vg(n,t.saturation,sg);r.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=vg(n,t.gamma,sg);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=vg(n,t.brightness,sg);r.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=n.variables.length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let e=0;e<o;++e){const i=n.variables[e];if(!(i in t.variables))throw new Error(`Missing '${i}' in style variables`);s[Lg(i)]=function(){let e=t.variables[i];return"string"==typeof e&&(e=yg(n,e)),void 0!==e?e:-9999999}}const a=Object.keys(s).map((function(t){return`uniform float ${t};`})),l=Math.ceil(e/4);a.push(`uniform sampler2D ${Hd.TILE_TEXTURE_ARRAY}[${l}];`),n.paletteTextures&&a.push(`uniform sampler2D u_paletteTextures[${n.paletteTextures.length}];`);const h=Object.keys(n.functions).map((function(t){return n.functions[t]}));return{vertexShader:i,fragmentShader:`\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n #else\n precision mediump float;\n #endif\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n uniform vec4 ${Hd.RENDER_EXTENT};\n uniform float ${Hd.TRANSITION_ALPHA};\n uniform float ${Hd.TEXTURE_PIXEL_WIDTH};\n uniform float ${Hd.TEXTURE_PIXEL_HEIGHT};\n uniform float ${Hd.RESOLUTION};\n uniform float ${Hd.ZOOM};\n\n ${a.join("\n")}\n\n ${h.join("\n")}\n\n void main() {\n if (\n v_mapCoord[0] < ${Hd.RENDER_EXTENT}[0] ||\n v_mapCoord[1] < ${Hd.RENDER_EXTENT}[1] ||\n v_mapCoord[0] > ${Hd.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${Hd.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${Hd.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${r.join("\n")}\n\n if (color.a == 0.0) {\n discard;\n }\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${Hd.TRANSITION_ALPHA};\n }`,uniforms:s,paletteTextures:n.paletteTextures}}class k_ extends su{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(vs,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=G_(this.style_,this.getSourceBandCount_());return new rg(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let n;for(let r=0,s=e.length;r<s;++r)this.renderedSource_=e[r],i.prepareFrame(t)&&(n=i.renderFrame(t));return n}render(t,e){this.rendered=!0;const i=t.viewState,n=this.getSources(t.extent,i.resolution);let r=!0;for(let t=0,e=n.length;t<e;++t){const e=n[t],i=e.getState();if("loading"==i){const t=()=>{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}r=r&&"ready"==i}const s=this.renderSources(t,n);if(this.getRenderer().renderComplete&&r)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter((t=>!n.includes(t)));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=G_(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,paletteTextures:e.paletteTextures}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}k_.prototype.dispose;var j_=k_;const B_="addfeatures";class U_ extends r{constructor(t,e,i,n){super(t),this.features=i,this.file=e,this.projection=n}}var z_=class extends da{constructor(t){t=t||{},super({handleEvent:f}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];const e=t.formatConstructors?t.formatConstructors:[];for(let t=0,i=e.length;t<i;++t){let i=e[t];"function"==typeof i&&(i=new i),this.formats_.push(i),this.readAsBuffer_=this.readAsBuffer_||"arraybuffer"===i.getType()}this.projection_=t.projection?Vi(t.projection):null,this.dropListenKeys_=null,this.source_=t.source||null,this.target=t.target?t.target:null}handleResult_(t,e){const i=e.target.result,n=this.getMap();let r,s=this.projection_;if(!s&&(s=sn(),!s)){s=n.getView().getProjection()}const o=this.formats_;for(let e=0,n=o.length;e<n;++e){const n=o[e];let a=i;this.readAsBuffer_&&"arraybuffer"!==n.getType()&&(void 0===r&&(r=(new TextDecoder).decode(i)),a=r);const l=this.tryReadFeatures_(n,a,{featureProjection:s});if(l&&l.length>0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new U_(B_,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[D(e,I,this.handleDrop,this),D(e,R,this.handleStop,this),D(e,P,this.handleStop,this),D(e,I,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(k),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t<i;++t){const i=e.item(t),n=new FileReader;n.addEventListener(M,this.handleResult_.bind(this,i)),this.readAsBuffer_?n.readAsArrayBuffer(i):n.readAsText(i)}}handleStop(t){t.stopPropagation(),t.preventDefault(),t.dataTransfer.dropEffect="copy"}};var X_=class extends pa{constructor(t){super(t=t||{}),this.condition_=t.condition?t.condition:ba,this.lastAngle_=void 0,this.lastMagnitude_=void 0,this.lastScaleDelta_=0,this.duration_=void 0!==t.duration?t.duration:400}handleDragEvent(t){if(!Pa(t))return;const e=t.map,i=e.getSize(),n=t.pixel,r=n[0]-i[0]/2,s=i[1]/2-n[1],o=Math.atan2(s,r),a=Math.sqrt(r*r+s*s),l=e.getView();if(void 0!==this.lastAngle_){const t=this.lastAngle_-o;l.adjustRotationInternal(t)}this.lastAngle_=o,void 0!==this.lastMagnitude_&&l.adjustResolutionInternal(this.lastMagnitude_/a),void 0!==this.lastMagnitude_&&(this.lastScaleDelta_=this.lastMagnitude_/a),this.lastMagnitude_=a}handleUpEvent(t){if(!Pa(t))return!0;const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!Pa(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}};const V_="drawstart",W_="drawend",Z_="drawabort";class Y_ extends r{constructor(t,e){super(t),this.feature=e}}function K_(t,e){return ai(t[0],t[1],e[0],e[1])}function q_(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function H_(t,e,i){let n,r;e<i?(n=e,r=i):(n=i,r=e);const s=Math.ceil(n),o=Math.floor(r);if(s>o){return K_(iy(t,n),iy(t,r))}let a=0;if(n<s){a+=K_(iy(t,n),q_(t,s))}if(o<r){a+=K_(q_(t,o),iy(t,r))}for(let e=s;e<o-1;++e){a+=K_(q_(t,e),q_(t,e+1))}return a}function $_(t,e,i){if(e instanceof Mm)Q_(t,e.getCoordinates(),!1,i);else if(e instanceof Om){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e)Q_(t,n[e],!1,i)}else if(e instanceof _r){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e)Q_(t,n[e],!0,i)}else if(e instanceof jm){const n=e.getCoordinates();for(let e=0,r=n.length;e<r;++e){const r=n[e];for(let e=0,n=r.length;e<n;++e)Q_(t,r[e],!0,i)}}else if(e instanceof Rm){const n=e.getGeometries();for(let e=0;e<n.length;++e)$_(t,n[e],i)}else;}const J_={index:-1,endIndex:NaN};function Q_(t,e,i,n){const r=t[0],s=t[1];for(let t=0,o=e.length-1;t<o;++t){const o=ey(r,s,e[t],e[t+1]);if(0===o.squaredDistance){const r=t+o.along;return void n.push({coordinates:e,ring:i,startIndex:r,endIndex:r})}}}const ty={along:0,squaredDistance:0};function ey(t,e,i,n){const r=i[0],s=i[1],o=n[0]-r,a=n[1]-s;let l=0,h=r,c=s;return 0===o&&0===a||(l=si(((t-r)*o+(e-s)*a)/(o*o+a*a),0,1),h+=o*l,c+=a*l),ty.along=l,ty.squaredDistance=gi(ai(t,e,h,c),10),ty}function iy(t,e){const i=t.length;let n=Math.floor(e);const r=e-n;n>=i?n-=i:n<0&&(n+=i);let s=n+1;s>=i&&(s-=i);const o=t[n],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*r,l+(h[1]-l)*r]}function ny(){const t=rf();return function(e,i){return t[e.getGeometry().getType()]}}var ry=class extends pa{constructor(t){const e=t;e.stopDown||(e.stopDown=p),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:f,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const n=e||new Em([NaN,NaN]),r=an(t[0],i),s=Ri(r,an(t[t.length-1],i));n.setCenterAndRadius(r,Math.sqrt(s),this.geometryLayout_);const o=sn();return o&&n.transform(i,o),n};else{let e;"Point"===t?e=Hn:"LineString"===t?e=Mm:"Polygon"===t&&(e=_r),i=function(i,n,r){return n?"Polygon"===t?i[0].length?n.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):n.setCoordinates([],this.geometryLayout_):n.setCoordinates(i,this.geometryLayout_):n=new e(i,this.geometryLayout_),n}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new Vm({source:new ic({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:ny(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:Ca,this.freehandCondition_,t.freehand?this.freehandCondition_=Sa:this.freehandCondition_=t.freehandCondition?t.freehandCondition:ba,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(ha,this.updateState_)}setTrace(t){let e;e=t?!0===t?Sa:t:Ta,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===E&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===_o.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===_o.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===_o.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===_o.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===_o.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===_o.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===_o.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new mo(_o.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=Wt([e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_])]),n=this.traceSource_.getFeaturesInExtent(i);if(0===n.length)return;const r=function(t,e){const i=[];for(let n=0;n<e.length;++n)$_(t,e[n].getGeometry(),i);return i}(t.coordinate,n);r.length&&(this.traceState_={active:!0,startPx:t.pixel.slice(),targets:r,targetIndex:-1})}addOrRemoveTracedCoordinates_(t,e){const i=t.startIndex<=t.endIndex;i===t.startIndex<=e?i&&e>t.endIndex||!i&&e<t.endIndex?this.addTracedCoordinates_(t,t.endIndex,e):(i&&e<t.endIndex||!i&&e>t.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t<e){const n=Math.ceil(t);let r=Math.floor(e);r===e&&(r-=1),i=r-n+1}else{const n=Math.floor(t);let r=Math.ceil(e);r===e&&(r+=1),i=n-r+1}i>0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const n=[];if(e<i){const r=Math.ceil(e);let s=Math.floor(i);s===i&&(s-=1);for(let e=r;e<=s;++e)n.push(q_(t.coordinates,e))}else{const r=Math.floor(e);let s=Math.ceil(i);s===i&&(s+=1);for(let e=r;e>=s;--e)n.push(q_(t.coordinates,e))}n.length&&this.appendCoordinates(n)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Pi(e.startPx,t.pixel)<this.snapTolerance_)return;const i=function(t,e,i,n){const r=t[0],s=t[1];let o=1/0,a=-1,l=NaN;for(let t=0;t<e.targets.length;++t){const i=e.targets[t],n=i.coordinates;let h,c=1/0;for(let t=0;t<n.length-1;++t){const e=ey(r,s,n[t],n[t+1]);e.squaredDistance<c&&(c=e.squaredDistance,h=t+e.along)}c<o&&(o=c,i.ring&&e.targetIndex===t&&(i.endIndex>i.startIndex?h<i.startIndex&&(h+=n.length):i.endIndex<i.startIndex&&h>i.startIndex&&(h-=n.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=iy(h.coordinates,l);Pi(i.getPixelFromCoordinate(t),e.startPx)>n&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,n=l;if(i<n){const r=H_(t,i,n);H_(t,i,n-e)<r&&(l-=e)}else{const r=H_(t,i,n);H_(t,i,n+e)<r&&(l+=e)}}return J_.index=a,J_.endIndex=l,J_}(t.coordinate,e,this.getMap(),this.snapTolerance_);if(e.targetIndex!==i.index){if(-1!==e.targetIndex){const t=e.targets[e.targetIndex];this.removeTracedCoordinates_(t.startIndex,t.endIndex)}const t=e.targets[i.index];this.addTracedCoordinates_(t,t.startIndex,i.endIndex)}else{const t=e.targets[e.targetIndex];this.addOrRemoveTracedCoordinates_(t,i.endIndex)}e.targetIndex=i.index;const n=e.targets[e.targetIndex];n.endIndex=i.endIndex;const r=iy(n.coordinates,n.endIndex),s=this.getMap().getPixelFromCoordinate(r);t.coordinate=r,t.pixel=[Math.round(s[0]),Math.round(s[1])]}handleUpEvent(t){let e=!0;if(0===this.getPointerCount()){this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t);const i=this.traceState_.active;if(this.toggleTraceState_(t),this.shouldHandle_){const n=!this.finishCoordinate_;n&&this.startDrawing_(t.coordinate),!n&&this.freehand_?this.finishDrawing():this.freehand_||n&&"Point"!==this.mode_||(this.atFinish_(t.pixel,i)?this.finishCondition_(t)&&this.finishDrawing():this.addToDrawing_(t.coordinate)),e=!1}else this.freehand_&&this.abortDrawing()}return!e&&this.stopClick_&&t.preventDefault(),e}handlePointerMove_(t){if(this.pointerType_=t.originalEvent.pointerType,this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){const e=this.downPx_,i=t.pixel,n=e[0]-i[0],r=e[1]-i[1],s=n*n+r*r;if(this.shouldHandle_=this.freehand_?s>this.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let n=!1,r=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)n=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;n=t[0].length>this.minPoints_,r=[t[0][0],t[0][t[0].length-2]],r=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(n){const e=this.getMap();for(let n=0,s=r.length;n<s;n++){const s=r[n],o=e.getPixelFromCoordinate(s),a=t[0]-o[0],l=t[1]-o[1],h=this.freehand_?1:this.snapTolerance_;if(i=Math.sqrt(a*a+l*l)<=h,i){this.finishCoordinate_=s;break}}}}return i}createOrUpdateSketchPoint_(t){if(this.sketchPoint_){this.sketchPoint_.getGeometry().setCoordinates(t)}else this.sketchPoint_=new dt(new Hn(t)),this.updateSketchFeatures_()}createOrUpdateCustomSketchLine_(t){this.sketchLine_||(this.sketchLine_=new dt);const e=t.getLinearRing(0);let i=this.sketchLine_.getGeometry();i?(i.setFlatCoordinates(e.getLayout(),e.getFlatCoordinates()),i.changed()):(i=new Mm(e.getFlatCoordinates(),e.getLayout()),this.sketchLine_.setGeometry(i))}startDrawing_(t){const e=this.getMap().getView().getProjection(),i=vn(this.geometryLayout_);for(;t.length<i;)t.push(0);this.finishCoordinate_=t,"Point"===this.mode_?this.sketchCoords_=t.slice():"Polygon"===this.mode_?(this.sketchCoords_=[[t.slice(),t.slice()]],this.sketchLineCoords_=this.sketchCoords_[0]):this.sketchCoords_=[t.slice(),t.slice()],this.sketchLineCoords_&&(this.sketchLine_=new dt(new Mm(this.sketchLineCoords_)));const n=this.geometryFunction_(this.sketchCoords_,void 0,e);this.sketchFeature_=new dt,this.geometryName_&&this.sketchFeature_.setGeometryName(this.geometryName_),this.sketchFeature_.setGeometry(n),this.updateSketchFeatures_(),this.dispatchEvent(new Y_(V_,this.sketchFeature_))}modifyDrawing_(t){const e=this.getMap(),i=this.sketchFeature_.getGeometry(),n=e.getView().getProjection(),r=vn(this.geometryLayout_);let s,o;for(;t.length<r;)t.push(0);if("Point"===this.mode_?o=this.sketchCoords_:"Polygon"===this.mode_?(s=this.sketchCoords_[0],o=s[s.length-1],this.atFinish_(e.getPixelFromCoordinate(t))&&(t=this.finishCoordinate_.slice())):(s=this.sketchCoords_,o=s[s.length-1]),o[0]=t[0],o[1]=t[1],this.geometryFunction_(this.sketchCoords_,i,n),this.sketchPoint_){this.sketchPoint_.getGeometry().setCoordinates(t)}if("Polygon"===i.getType()&&"Polygon"!==this.mode_)this.createOrUpdateCustomSketchLine_(i);else if(this.sketchLineCoords_){this.sketchLine_.getGeometry().setCoordinates(this.sketchLineCoords_)}this.updateSketchFeatures_()}addToDrawing_(t){const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection();let n,r;const s=this.mode_;"LineString"===s||"Circle"===s?(this.finishCoordinate_=t.slice(),r=this.sketchCoords_,r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),this.geometryFunction_(r,e,i)):"Polygon"===s&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),n&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),n&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),n=this.mode_;for(let r=0;r<t;++r){let t;if("LineString"===n||"Circle"===n){if(t=this.sketchCoords_,t.splice(-2,1),t.length>=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===n){t=this.sketchCoords_[0],t.splice(-2,1);const n=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}n.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),n=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,n)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,n),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new Dm([e])):"MultiLineString"===this.type_?t.setGeometry(new Om([e])):"MultiPolygon"===this.type_&&t.setGeometry(new jm([e])),this.dispatchEvent(new Y_(W_,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new Y_(Z_,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let n;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)n=this.sketchCoords_;else{if("Polygon"!==e)return;n=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&n.shift(),n.pop();for(let e=0;e<t.length;e++)this.addToDrawing_(t[e]);const r=t[t.length-1];this.addToDrawing_(r),this.modifyDrawing_(r)}extend(t){const e=t.getGeometry();this.sketchFeature_=t,this.sketchCoords_=e.getCoordinates();const i=this.sketchCoords_[this.sketchCoords_.length-1];this.finishCoordinate_=i.slice(),this.sketchCoords_.push(i.slice()),this.sketchPoint_=new dt(new Hn(i)),this.updateSketchFeatures_(),this.dispatchEvent(new Y_(V_,this.sketchFeature_))}updateSketchFeatures_(){const t=[];this.sketchFeature_&&t.push(this.sketchFeature_),this.sketchLine_&&t.push(this.sketchLine_),this.sketchPoint_&&t.push(this.sketchPoint_);const e=this.overlay_.getSource();e.clear(!0),e.addFeatures(t)}updateState_(){const t=this.getMap(),e=this.getActive();t&&e||this.abortDrawing(),this.overlay_.setMap(e?t:null)}};const sy="extentchanged";class oy extends r{constructor(t){super(sy),this.extent=t}}function ay(){const t=rf();return function(e,i){return t.Polygon}}function ly(){const t=rf();return function(e,i){return t.Point}}function hy(t){return function(e){return Wt([t,e])}}function cy(t,e){return t[0]==e[0]?function(i){return Wt([t,[i[0],e[1]]])}:t[1]==e[1]?function(i){return Wt([t,[e[0],i[1]]])}:null}var uy=class extends pa{constructor(t){super(t=t||{}),this.on,this.once,this.un,this.condition_=t.condition?t.condition:Sa,this.extent_=null,this.pointerHandler_=null,this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.snappedToVertex_=!1,this.extentFeature_=null,this.vertexFeature_=null,t||(t={}),this.extentOverlay_=new Vm({source:new ic({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.boxStyle?t.boxStyle:ay(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.vertexOverlay_=new Vm({source:new ic({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.pointerStyle?t.pointerStyle:ly(),updateWhileAnimating:!0,updateWhileInteracting:!0}),t.extent&&this.setExtent(t.extent)}snapToVertex_(t,e){const i=e.getCoordinateFromPixelInternal(t),n=function(t,e){return Ii(i,t)-Ii(i,e)},r=this.getExtentInternal();if(r){const s=function(t){return[[[t[0],t[1]],[t[0],t[3]]],[[t[0],t[3]],[t[2],t[3]]],[[t[2],t[3]],[t[2],t[1]]],[[t[2],t[1]],[t[0],t[1]]]]}(r);s.sort(n);const o=s[0];let a=Si(i,o);const l=e.getPixelFromCoordinateInternal(a);if(Pi(t,l)<=this.pixelTolerance_){const t=e.getPixelFromCoordinateInternal(o[0]),i=e.getPixelFromCoordinateInternal(o[1]),n=Ri(l,t),r=Ri(l,i),s=Math.sqrt(Math.min(n,r));return this.snappedToVertex_=s<=this.pixelTolerance_,this.snappedToVertex_&&(a=n>r?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let n=this.snapToVertex_(e,i);n||(n=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(xr(t)):e.setGeometry(void 0):(e=new dt(t?xr(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new dt(new Hn(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=_o.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,n=this.getExtentInternal();let r=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?i=n[3]:t[1]==n[3]&&(i=n[1]),null!==e&&null!==i?[e,i]:null};if(r&&n){const t=r[0]==n[0]||r[0]==n[2]?r[0]:null,e=r[1]==n[1]||r[1]==n[3]?r[1]:null;null!==t&&null!==e?this.pointerHandler_=hy(s(r)):null!==t?this.pointerHandler_=cy(s([t,n[1]]),s([t,n[3]])):null!==e&&(this.pointerHandler_=cy(s([n[0],e]),s([n[2],e])))}else r=i.getCoordinateFromPixelInternal(e),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=hy(r);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==ge(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return ln(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new oy(this.extent_))}};function dy(t){return parseFloat(t)}function gy(t){return function(t){return gi(t,5)}(t).toString()}function fy(t,e){return!isNaN(t)&&t!==dy(gy(e))}var py=class extends da{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this)}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){t.set(this.getParamName_(e),i)}delete_(t,e){t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(D(t,Co,this.updateUrl_,this),D(t.getLayerGroup(),w,this.updateUrl_,this),D(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t<e;++t)k(this.listenerKeys_[t]);this.listenerKeys_.length=0,this.replace_||removeEventListener("popstate",this.updateState_);const e=new URL(window.location.href),i=e.searchParams;this.delete_(i,"x"),this.delete_(i,"y"),this.delete_(i,"z"),this.delete_(i,"r"),this.delete_(i,"l"),window.history.replaceState(null,"",e)}handleChangeLayerGroup_(){const t=this.getMap();t&&(this.unregisterListeners_(t),this.registerListeners_(t),this.initial_=!0,this.updateUrl_())}updateState_(){const t=this.getMap();if(!t)return;const e=t.getView();if(!e)return;const i=new URL(window.location.href).searchParams;let n=!1;const r={},s=dy(this.get_(i,"z"));fy(s,e.getZoom())&&(n=!0,r.zoom=s);const o=dy(this.get_(i,"r"));fy(o,e.getRotation())&&(n=!0,r.rotation=o);const a=[dy(this.get_(i,"x")),dy(this.get_(i,"y"))];var l,h;l=a,h=e.getCenter(),(fy(l[0],h[0])||fy(l[1],h[1]))&&(n=!0,r.center=a),n&&(!this.initial_&&this.animationOptions_?e.animate(Object.assign(r,this.animationOptions_)):(r.center&&e.setCenter(r.center),"zoom"in r&&e.setZoom(r.zoom),"rotation"in r&&e.setRotation(r.rotation)));const c=t.getAllLayers(),u=this.get_(i,"l");if(u&&u.length===c.length)for(let t=0,e=c.length;t<e;++t){const e=parseInt(u[t]);if(!isNaN(e)){const i=Boolean(e),n=c[t];n.getVisible()!==i&&n.setVisible(i)}}}updateUrl_(){const t=this.getMap();if(!t)return;const e=t.getView();if(!e)return;const i=this.initial_;this.initial_=!1;const n=e.getCenter(),r=e.getZoom(),s=e.getRotation(),o=t.getAllLayers(),a=new Array(o.length);for(let t=0,e=o.length;t<e;++t)a[t]=o[t].getVisible()?"1":"0";const l=new URL(window.location.href),h=l.searchParams;this.set_(h,"x",gy(n[0])),this.set_(h,"y",gy(n[1])),this.set_(h,"z",gy(r)),this.set_(h,"r",gy(s)),this.set_(h,"l",a.join("")),l.href!==window.location.href&&(i||this.replace_?window.history.replaceState(null,"",l):window.history.pushState(null,"",l))}};const my=[0,0,0,0],_y=[],yy="modifystart",xy="modifyend";class vy extends r{constructor(t,e,i){super(t),this.features=e,this.mapBrowserEvent=i}}function Sy(t,e){return t.index-e.index}function wy(t,e,i){const n=e.geometry;if("Circle"===n.getType()){let r=n;if(1===e.index){const e=sn();e&&(r=r.clone().transform(e,i));const n=Ri(r.getCenter(),an(t,i)),s=Math.sqrt(n)-r.getRadius();return s*s}}const r=an(t,i);return _y[0]=an(e.segment[0],i),_y[1]=an(e.segment[1],i),Ii(r,_y)}function Ty(t,e,i){const n=e.geometry;if("Circle"===n.getType()&&1===e.index){let e=n;const r=sn();return r&&(e=e.clone().transform(r,i)),on(e.getClosestPoint(an(t,i)),i)}const r=an(t,i);return _y[0]=an(e.segment[0],i),_y[1]=an(e.segment[1],i),on(Si(r,_y),i)}function Ey(){const t=rf();return function(e,i){return t.Point}}var Cy=class extends pa{constructor(t){let e;if(super(t),this.on,this.once,this.un,this.boundHandleFeatureChange_=this.handleFeatureChange_.bind(this),this.condition_=t.condition?t.condition:Ia,this.defaultDeleteCondition_=function(t){return _a(t)&&Ea(t)},this.deleteCondition_=t.deleteCondition?t.deleteCondition:this.defaultDeleteCondition_,this.insertVertexCondition_=t.insertVertexCondition?t.insertVertexCondition:Sa,this.vertexFeature_=null,this.vertexSegments_=null,this.lastPixel_=[0,0],this.ignoreNextSingleClick_=!1,this.featuresBeingModified_=null,this.rBush_=new Yh,this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.snappedToVertex_=!1,this.changingFeature_=!1,this.dragSegments_=[],this.overlay_=new Vm({source:new ic({useSpatialIndex:!1,wrapX:!!t.wrapX}),style:t.style?t.style:Ey(),updateWhileAnimating:!0,updateWhileInteracting:!0}),this.SEGMENT_WRITERS_={Point:this.writePointGeometry_.bind(this),LineString:this.writeLineStringGeometry_.bind(this),LinearRing:this.writeLineStringGeometry_.bind(this),Polygon:this.writePolygonGeometry_.bind(this),MultiPoint:this.writeMultiPointGeometry_.bind(this),MultiLineString:this.writeMultiLineStringGeometry_.bind(this),MultiPolygon:this.writeMultiPolygonGeometry_.bind(this),Circle:this.writeCircleGeometry_.bind(this),GeometryCollection:this.writeGeometryCollectionGeometry_.bind(this)},this.source_=null,this.hitDetection_=null,t.features?e=t.features:t.source&&(this.source_=t.source,e=new $(this.source_.getFeatures()),this.source_.addEventListener(Kh,this.handleSourceAdd_.bind(this)),this.source_.addEventListener($h,this.handleSourceRemove_.bind(this))),!e)throw new Error("The modify interaction requires features, a source or a layer");t.hitDetection&&(this.hitDetection_=t.hitDetection),this.features_=e,this.features_.forEach(this.addFeature_.bind(this)),this.features_.addEventListener(Y,this.handleFeatureAdd_.bind(this)),this.features_.addEventListener(K,this.handleFeatureRemove_.bind(this)),this.lastPointerEvent_=null,this.delta_=[0,0],this.snapToPointer_=void 0===t.snapToPointer?!this.hitDetection_:t.snapToPointer}addFeature_(t){const e=t.getGeometry();if(e){const i=this.SEGMENT_WRITERS_[e.getType()];i&&i(t,e)}const i=this.getMap();i&&i.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,i),t.addEventListener(w,this.boundHandleFeatureChange_)}willModifyFeatures_(t,e){if(!this.featuresBeingModified_){this.featuresBeingModified_=new $;const i=this.featuresBeingModified_.getArray();for(let t=0,n=e.length;t<n;++t){const n=e[t];for(let t=0,e=n.length;t<e;++t){const e=n[t].feature;e&&!i.includes(e)&&this.featuresBeingModified_.push(e)}}0===this.featuresBeingModified_.getLength()?this.featuresBeingModified_=null:this.dispatchEvent(new vy(yy,this.featuresBeingModified_,t))}}removeFeature_(t){this.removeFeatureSegmentData_(t),this.vertexFeature_&&0===this.features_.getLength()&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.removeEventListener(w,this.boundHandleFeatureChange_)}removeFeatureSegmentData_(t){const e=this.rBush_,i=[];e.forEach((function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t){const n=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===n&&this.dragSegments_.splice(t,1);e.remove(n)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),n={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),n)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n],s={feature:t,geometry:e,depth:[n],index:n,segment:[r,r]};this.rBush_.insert(e.getExtent(),s)}}writeLineStringGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length-1;n<r;++n){const r=i.slice(n,n+2),s={feature:t,geometry:e,index:n,segment:r};this.rBush_.insert(Wt(r),s)}}writeMultiLineStringGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length-1;i<s;++i){const s=r.slice(i,i+2),o={feature:t,geometry:e,depth:[n],index:i,segment:s};this.rBush_.insert(Wt(s),o)}}}writePolygonGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length-1;i<s;++i){const s=r.slice(i,i+2),o={feature:t,geometry:e,depth:[n],index:i,segment:s};this.rBush_.insert(Wt(s),o)}}}writeMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n<r;++n){const r=i[n];for(let i=0,s=r.length;i<s;++i){const s=r[i];for(let r=0,o=s.length-1;r<o;++r){const o=s.slice(r,r+2),a={feature:t,geometry:e,depth:[i,n],index:r,segment:o};this.rBush_.insert(Wt(o),a)}}}}writeCircleGeometry_(t,e){const i=e.getCenter(),n={feature:t,geometry:e,index:0,segment:[i,i]},r={feature:t,geometry:e,index:1,segment:[i,i]},s=[n,r];n.featureSegments=s,r.featureSegments=s,this.rBush_.insert(ie(i),n);let o=e;const a=sn();if(a&&this.getMap()){const t=this.getMap().getView().getProjection();o=o.clone().transform(a,t),o=vr(o).transform(t,a)}this.rBush_.insert(o.getExtent(),r)}writeGeometryCollectionGeometry_(t,e){const i=e.getGeometriesArray();for(let e=0;e<i.length;++e){const n=i[e];(0,this.SEGMENT_WRITERS_[n.getType()])(t,n)}}createOrUpdateVertexFeature_(t,e,i){let n=this.vertexFeature_;if(n){n.getGeometry().setCoordinates(t)}else n=new dt(new Hn(t)),this.vertexFeature_=n,this.overlay_.getSource().addFeature(n);return n.set("features",e),n.set("geometries",i),n}handleEvent(t){if(!t.originalEvent)return!0;let e;return this.lastPointerEvent_=t,t.map.getView().getInteracting()||t.type!=_o.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),this.vertexFeature_&&this.deleteCondition_(t)&&(e=!(t.type!=_o.SINGLECLICK||!this.ignoreNextSingleClick_)||this.removePoint()),t.type==_o.SINGLECLICK&&(this.ignoreNextSingleClick_=!1),super.handleEvent(t)&&!e}handleDragEvent(t){this.ignoreNextSingleClick_=!1,this.willModifyFeatures_(t,this.dragSegments_);const e=[t.coordinate[0]+this.delta_[0],t.coordinate[1]+this.delta_[1]],i=[],n=[];for(let r=0,s=this.dragSegments_.length;r<s;++r){const s=this.dragSegments_[r],o=s[0],a=o.feature;i.includes(a)||i.push(a);const l=o.geometry;n.includes(l)||n.push(l);const h=o.depth;let c;const u=o.segment,d=s[1];for(;e.length<l.getStride();)e.push(u[d][e.length]);switch(l.getType()){case"Point":c=e,u[0]=e,u[1]=e;break;case"MultiPoint":c=l.getCoordinates(),c[o.index]=e,u[0]=e,u[1]=e;break;case"LineString":c=l.getCoordinates(),c[o.index+d]=e,u[d]=e;break;case"MultiLineString":case"Polygon":c=l.getCoordinates(),c[h[0]][o.index+d]=e,u[d]=e;break;case"MultiPolygon":c=l.getCoordinates(),c[h[1]][h[0]][o.index+d]=e,u[d]=e;break;case"Circle":if(u[0]=e,u[1]=e,0===o.index)this.changingFeature_=!0,l.setCenter(e),this.changingFeature_=!1;else{this.changingFeature_=!0;const i=t.map.getView().getProjection();let n=Pi(an(l.getCenter(),i),an(e,i));const r=sn();if(r){const t=l.clone().transform(r,i);t.setRadius(n),n=t.transform(i,r).getRadius()}l.setRadius(n),this.changingFeature_=!1}}c&&this.setGeometryCoordinates_(l,c)}this.createOrUpdateVertexFeature_(e,i,n)}handleDownEvent(t){if(!this.condition_(t))return!1;const e=t.coordinate;this.handlePointerAtPixel_(t.pixel,t.map,e),this.dragSegments_.length=0,this.featuresBeingModified_=null;const i=this.vertexFeature_;if(i){const n=t.map.getView().getProjection(),r=[],s=i.getGeometry().getCoordinates(),o=Wt([s]),a=this.rBush_.getInExtent(o),l={};a.sort(Sy);for(let i=0,o=a.length;i<o;++i){const o=a[i],h=o.segment;let c=V(o.geometry);const u=o.depth;if(u&&(c+="-"+u.join("-")),l[c]||(l[c]=new Array(2)),"Circle"!==o.geometry.getType()||1!==o.index)if(!Ei(h[0],s)||l[c][0])if(!Ei(h[1],s)||l[c][1])V(h)in this.vertexSegments_&&!l[c][0]&&!l[c][1]&&this.insertVertexCondition_(t)&&r.push(o);else{if(l[c][0]&&0===l[c][0].index){let t=o.geometry.getCoordinates();switch(o.geometry.getType()){case"LineString":case"MultiLineString":continue;case"MultiPolygon":t=t[u[1]];case"Polygon":if(o.index!==t[u[0]].length-2)continue}}this.dragSegments_.push([o,1]),l[c][1]=o}else this.dragSegments_.push([o,0]),l[c][0]=o;else{Ei(Ty(e,o,n),s)&&!l[c][0]&&(this.dragSegments_.push([o,0]),l[c][0]=o)}}r.length&&this.willModifyFeatures_(t,[r]);for(let t=r.length-1;t>=0;--t)this.insertVertex_(r[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],n=i.geometry;if("Circle"===n.getType()){const e=n.getCenter(),r=i.featureSegments[0],s=i.featureSegments[1];r.segment[0]=e,r.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(ie(e),r);let o=n;const a=sn();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=vr(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(Wt(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new vy(xy,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const n=i||e.getCoordinateFromPixel(t),r=e.getView().getProjection(),s=function(t,e){return wy(n,t,r)-wy(n,e,r)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,((t,e,i)=>{if("Point"===(i=i||t.getGeometry()).getType()&&this.features_.getArray().includes(t)){a=i;const e=i.getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:i,segment:[e,e]}]}return!0}),{layerFilter:i})}if(!o){const t=ln(Zt(hn(ie(n,my),r),e.getView().getResolution()*this.pixelTolerance_,my),r);o=this.rBush_.getInExtent(t)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=Ty(n,i,r);const c=e.getPixelFromCoordinate(h);let u=Pi(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[V(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-n[0],this.delta_[1]=h[1]-n[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const n=e.getPixelFromCoordinate(l[0]),r=e.getPixelFromCoordinate(l[1]),s=Ri(c,n),a=Ri(c,r);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const d={};d[V(i.geometry)]=!0;for(let e=1,i=o.length;e<i;++e){const i=o[e].segment;if(!(Ei(l[0],i[0])&&Ei(l[1],i[1])||Ei(l[0],i[1])&&Ei(l[1],i[0])))break;{const n=V(o[e].geometry);n in d||(d[n]=!0,t[V(i)]=!0)}}}return void(this.vertexSegments_=t)}}this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null)}insertVertex_(t,e){const i=t.segment,n=t.feature,r=t.geometry,s=t.depth,o=t.index;let a;for(;e.length<r.getStride();)e.push(0);switch(r.getType()){case"MultiLineString":case"Polygon":a=r.getCoordinates(),a[s[0]].splice(o+1,0,e);break;case"MultiPolygon":a=r.getCoordinates(),a[s[1]][s[0]].splice(o+1,0,e);break;case"LineString":a=r.getCoordinates(),a.splice(o+1,0,e);break;default:return}this.setGeometryCoordinates_(r,a);const l=this.rBush_;l.remove(t),this.updateSegmentIndices_(r,o,s,1);const h={segment:[i[0],e],feature:n,geometry:r,depth:s,index:o};l.insert(Wt(h.segment),h),this.dragSegments_.push([h,1]);const c={segment:[e,i[1]],feature:n,geometry:r,depth:s,index:o+1};l.insert(Wt(c.segment),c),this.dragSegments_.push([c,0]),this.ignoreNextSingleClick_=!0}removePoint(){if(this.lastPointerEvent_&&this.lastPointerEvent_.type!=_o.POINTERDRAG){const t=this.lastPointerEvent_;this.willModifyFeatures_(t,this.dragSegments_);const e=this.removeVertex_();return this.featuresBeingModified_&&this.dispatchEvent(new vy(xy,this.featuresBeingModified_,t)),this.featuresBeingModified_=null,e}return!1}removeVertex_(){const t=this.dragSegments_,e={};let i,n,r,s,o,a,l,h,c,u,d,g=!1;for(o=t.length-1;o>=0;--o)r=t[o],u=r[0],d=V(u.feature),u.depth&&(d+="-"+u.depth.join("-")),d in e||(e[d]={}),0===r[1]?(e[d].right=u,e[d].index=u.index):1==r[1]&&(e[d].left=u,e[d].index=u.index+1);for(d in e){switch(c=e[d].right,l=e[d].left,a=e[d].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,n=s.getCoordinates(),i=n,g=!1,s.getType()){case"MultiLineString":n[u.depth[0]].length>2&&(n[u.depth[0]].splice(a,1),g=!0);break;case"LineString":n.length>2&&(n.splice(a,1),g=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),g=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(g){this.setGeometryCoordinates_(s,n);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(Wt(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return g}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,n){this.rBush_.forEachInExtent(t.getExtent(),(function(r){r.geometry===t&&(void 0===i||void 0===r.depth||d(r.depth,i))&&r.index>e&&(r.index+=n)}))}};const by="select";class Ry extends r{constructor(t,e,i,n){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=n}}const Py={};class Iy extends da{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:Ea,this.addCondition_=t.addCondition?t.addCondition:Ta,this.removeCondition_=t.removeCondition?t.removeCondition:Ta,this.toggleCondition_=t.toggleCondition?t.toggleCondition:ba,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:f,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=rf();return u(t.Polygon,t.LineString),u(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new $,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=f;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[V(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[V(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(Y,this.boundAddFeature_),this.features_.addEventListener(K,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(Y,this.boundAddFeature_),this.features_.removeEventListener(K,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof Vm&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=V(t);e in Py||(Py[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const n=e[i];if(n!==this&&n instanceof Iy&&n.getStyle()&&-1!==n.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(n.getStyle())}const i=V(t);t.setStyle(Py[i]),delete Py[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[V(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),n=this.toggleCondition_(t),r=!e&&!i&&!n,s=t.map,o=this.getFeatures(),a=[],l=[];if(r){x(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,function(t,e){if(t instanceof dt&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,function(t,r){if(t instanceof dt&&this.filter_(t,r))return!e&&!n||o.getArray().includes(t)?(i||n)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,r),l.push(t)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new Ry(by,l,a,t)),!0}}var Ly=Iy;function Fy(t){return t.feature?t.feature:t.element?t.element:void 0}const My=[];var Ay=class extends pa{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=f),e.stopDown||(e.stopDown=p),super(e),this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new Yh,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=V(t),n=t.getGeometry();if(n){const e=this.GEOMETRY_SEGMENTERS_[n.getType()];if(e){this.indexedFeaturesExtents_[i]=n.getExtent([1/0,1/0,-1/0,-1/0]);const r=[];if(e(r,n),1===r.length)this.rBush_.insert(Wt(r[0]),{feature:t,segment:r[0]});else if(r.length>1){const e=r.map((t=>Wt(t))),i=r.map((e=>({feature:t,segment:e})));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=D(t,w,this.handleFeatureChange_,this))}forEachFeatureAdd_(t){this.addFeature(t)}forEachFeatureRemove_(t){this.removeFeature(t)}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel),super.handleEvent(t)}handleFeatureAdd_(t){const e=Fy(t);this.addFeature(e)}handleFeatureRemove_(t){const e=Fy(t);this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=V(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,n=V(t),r=this.indexedFeaturesExtents_[n];if(r){const e=this.rBush_,i=[];e.forEachInExtent(r,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(k(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,n=this.getFeatures_();e&&(i.forEach(k),i.length=0,n.forEach(this.forEachFeatureRemove_.bind(this))),super.setMap(t),t&&(this.features_?i.push(D(this.features_,Y,this.handleFeatureAdd_,this),D(this.features_,K,this.handleFeatureRemove_,this)):this.source_&&i.push(D(this.source_,Kh,this.handleFeatureAdd_,this),D(this.source_,$h,this.handleFeatureRemove_,this)),n.forEach(this.forEachFeatureAdd_.bind(this)))}snapTo(t,e,i){const n=Wt([i.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),i.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),r=this.rBush_.getInExtent(n),s=r.length;if(0===s)return null;const o=i.getView().getProjection(),a=an(e,o);let l,h=1/0;const c=this.pixelTolerance_*this.pixelTolerance_,u=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Ri(t,e)<=c)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])]}}return null};if(this.vertex_){for(let t=0;t<s;++t){const e=r[t];"Circle"!==e.feature.getGeometry().getType()&&e.segment.forEach((t=>{const e=an(t,o),i=Ri(a,e);i<h&&(l=t,h=i)}))}const t=u();if(t)return t}if(this.edge_){for(let t=0;t<s;++t){let e=null;const i=r[t];if("Circle"===i.feature.getGeometry().getType()){let t=i.feature.getGeometry();const n=sn();n&&(t=t.clone().transform(n,o)),e=on(vi(a,t),o)}else{const[t,n]=i.segment;n&&(My[0]=an(t,o),My[1]=an(n,o),e=Si(a,My))}if(e){const t=Ri(a,e);t<h&&(l=e,h=t)}}const t=u();if(t)return t}return null}updateFeature_(t){this.removeFeature(t,!1),this.addFeature(t,!1)}segmentCircleGeometry_(t,e){const i=this.getMap().getView().getProjection();let n=e;const r=sn();r&&(n=n.clone().transform(r,i));const s=vr(n);r&&s.transform(i,r);const o=s.getCoordinates()[0];for(let e=0,i=o.length-1;e<i;++e)t.push(o.slice(e,e+2))}segmentGeometryCollectionGeometry_(t,e){const i=e.getGeometriesArray();for(let e=0;e<i.length;++e){const n=this.GEOMETRY_SEGMENTERS_[i[e].getType()];n&&n(t,i[e])}}segmentLineStringGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length-1;e<n;++e)t.push(i.slice(e,e+2))}segmentMultiLineStringGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length-1;e<i;++e)t.push(n.slice(e,e+2))}}segmentMultiPointGeometry_(t,e){e.getCoordinates().forEach((e=>{t.push([e])}))}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length;e<i;++e){const i=n[e];for(let e=0,n=i.length-1;e<n;++e)t.push(i.slice(e,e+2))}}}segmentPointGeometry_(t,e){t.push([e.getCoordinates()])}segmentPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e<n;++e){const n=i[e];for(let e=0,i=n.length-1;e<i;++e)t.push(n.slice(e,e+2))}}};const Oy="translatestart",Ny="translating",Dy="translateend";class Gy extends r{constructor(t,e,i,n,r){super(t),this.features=e,this.coordinate=i,this.startCoordinate=n,this.mapBrowserEvent=r}}var ky=class extends pa{constructor(t){let e;if(super(t=t||{}),this.on,this.once,this.un,this.lastCoordinate_=null,this.startCoordinate_=null,this.features_=void 0!==t.features?t.features:null,t.layers&&!this.features_)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=f;this.layerFilter_=e,this.filter_=t.filter&&!this.features_?t.filter:f,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.condition_=t.condition?t.condition:Sa,this.lastFeature_=null,this.addChangeListener(ha,this.handleActiveChanged_)}handleDownEvent(t){if(!t.originalEvent||!this.condition_(t))return!1;if(this.lastFeature_=this.featuresAtPixel_(t.pixel,t.map),!this.lastCoordinate_&&this.lastFeature_){this.startCoordinate_=t.coordinate,this.lastCoordinate_=t.coordinate,this.handleMoveEvent(t);const e=this.features_||new $([this.lastFeature_]);return this.dispatchEvent(new Gy(Oy,e,t.coordinate,this.startCoordinate_,t)),!0}return!1}handleUpEvent(t){if(this.lastCoordinate_){this.lastCoordinate_=null,this.handleMoveEvent(t);const e=this.features_||new $([this.lastFeature_]);return this.dispatchEvent(new Gy(Dy,e,t.coordinate,this.startCoordinate_,t)),this.startCoordinate_=null,!0}return!1}handleDragEvent(t){if(this.lastCoordinate_){const e=t.coordinate,i=e[0]-this.lastCoordinate_[0],n=e[1]-this.lastCoordinate_[1],r=this.features_||new $([this.lastFeature_]);r.forEach((function(t){const e=t.getGeometry();e.translate(i,n),t.setGeometry(e)})),this.lastCoordinate_=e,this.dispatchEvent(new Gy(Ny,r,e,this.startCoordinate_,t))}}handleMoveEvent(t){const e=t.map.getViewport();this.featuresAtPixel_(t.pixel,t.map)?(e.classList.remove(this.lastCoordinate_?"ol-grab":"ol-grabbing"),e.classList.add(this.lastCoordinate_?"ol-grabbing":"ol-grab")):e.classList.remove("ol-grab","ol-grabbing")}featuresAtPixel_(t,e){return e.forEachFeatureAtPixel(t,function(t,e){if(this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}};function jy(t,e,i,n,r,s){void 0!==r?s=void 0!==s?s:0:(r=[],s=0);let o=e;for(;o<i;){const e=t[o++];r[s++]=t[o++],r[s++]=e;for(let e=2;e<n;++e)r[s++]=t[o++]}return r.length=s,r}function By(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}var Uy=class extends i_{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(By(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(By(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return z()}readFeaturesFromObject(t,e){return z()}readGeometry(t,e){return this.readGeometryFromObject(By(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return z()}readProjection(t){return this.readProjectionFromObject(By(t))}readProjectionFromObject(t){return z()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return z()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return z()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return z()}};const zy={Point:function(t){let e;e=void 0!==t.m&&void 0!==t.z?new Hn([t.x,t.y,t.z,t.m],"XYZM"):void 0!==t.z?new Hn([t.x,t.y,t.z],"XYZ"):void 0!==t.m?new Hn([t.x,t.y,t.m],"XYM"):new Hn([t.x,t.y]);return e},LineString:function(t){const e=Wy(t);return new Mm(t.paths[0],e)},Polygon:function(t){const e=Wy(t);return new _r(t.rings,e)},MultiPoint:function(t){const e=Wy(t);return new Dm(t.points,e)},MultiLineString:function(t){const e=Wy(t);return new Om(t.paths,e)},MultiPolygon:function(t){const e=Wy(t);return new jm(t.rings,e)}},Xy={Point:function(t,e){const i=t.getCoordinates();let n;const r=t.getLayout();"XYZ"===r?n={x:i[0],y:i[1],z:i[2]}:"XYM"===r?n={x:i[0],y:i[1],m:i[2]}:"XYZM"===r?n={x:i[0],y:i[1],z:i[2],m:i[3]}:"XY"===r?n={x:i[0],y:i[1]}:ht(!1,34);return n},LineString:function(t,e){const i=Zy(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:[t.getCoordinates()]}},Polygon:function(t,e){const i=Zy(t);return{hasZ:i.hasZ,hasM:i.hasM,rings:t.getCoordinates(!1)}},MultiPoint:function(t,e){const i=Zy(t);return{hasZ:i.hasZ,hasM:i.hasM,points:t.getCoordinates()}},MultiLineString:function(t,e){const i=Zy(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:t.getCoordinates()}},MultiPolygon:function(t,e){const i=Zy(t),n=t.getCoordinates(!1),r=[];for(let t=0;t<n.length;t++)for(let e=n[t].length-1;e>=0;e--)r.push(n[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:r}}};function Vy(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,n=Wy(e),r=function(t,e){const i=[],n=[],r=[];let s,o;for(s=0,o=t.length;s<o;++s){i.length=0,Fn(i,0,t[s],e.length);cr(i,0,i.length,e.length)?n.push([t[s]]):r.push(t[s])}for(;r.length;){const t=r.shift();let e=!1;for(s=n.length-1;s>=0;s--){const i=n[s][0];if(Ht(new Kn(i).getExtent(),new Kn(t).getExtent())){n[s].push(t),e=!0;break}}e||n.push([t.reverse()])}return n}(e.rings,n);1===r.length?(i="Polygon",t=Object.assign({},t,{rings:r[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:r}))}return n_((0,zy[i])(t),!1,e)}function Wy(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function Zy(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function Yy(t,e){return(0,Xy[t.getType()])(n_(t,!0,e),e)}var Ky=class extends Uy{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const n=t,r=Vy(n.geometry,e),s=new dt;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(r),n.attributes){s.setProperties(n.attributes,!0);const t=n.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],n=t.features;for(let r=0,s=n.length;r<s;++r)i.push(this.readFeatureFromObject(n[r],e,t.objectIdFieldName));return i}return[this.readFeatureFromObject(t,e)]}readGeometryFromObject(t,e){return Vy(t,e)}readProjectionFromObject(t){if(t.spatialReference&&void 0!==t.spatialReference.wkid){return Vi("EPSG:"+t.spatialReference.wkid)}return null}writeGeometryObject(t,e){return Yy(t,this.adaptOptions(e))}writeFeatureObject(t,e){e=this.adaptOptions(e);const i={};if(!t.hasProperties())return i.attributes={},i;const n=t.getProperties(),r=t.getGeometry();if(r){i.geometry=Yy(r,e);const s=e&&(e.dataProjection||e.featureProjection);s&&(i.geometry.spatialReference={wkid:Number(Vi(s).getCode().split(":").pop())}),delete n[t.getGeometryName()]}return v(n)?i.attributes={}:i.attributes=n,i}writeFeaturesObject(t,e){e=this.adaptOptions(e);const i=[];for(let n=0,r=t.length;n<r;++n)i.push(this.writeFeatureObject(t[n],e));return{features:i}}};var qy=class extends i_{constructor(){super(),this.xmlSerializer_=md()}getType(){return"xml"}readFeature(t,e){if(!t)return null;if("string"==typeof t){const i=Ju(t);return this.readFeatureFromDocument(i,e)}return Hu(t)?this.readFeatureFromDocument(t,e):this.readFeatureFromNode(t,e)}readFeatureFromDocument(t,e){const i=this.readFeaturesFromDocument(t,e);return i.length>0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=Ju(t);return this.readFeaturesFromDocument(i,e)}return Hu(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&u(i,this.readFeaturesFromNode(n,e));return i}readFeaturesFromNode(t,e){return z()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=Ju(t);return this.readGeometryFromDocument(i,e)}return Hu(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=Ju(t);return this.readProjectionFromDocument(e)}return Hu(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}};const Hy="http://www.opengis.net/gml",$y=/^\s*$/;class Jy extends qy{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:td(this.readFeaturesInternal),featureMembers:ed(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let n=null;if("FeatureCollection"==i)n=ud([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const r=e[0];let s=r.featureType,o=r.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e<i;++e){const i=t.childNodes[e];if(1===i.nodeType){const t=i.nodeName.split(":").pop();if(!s.includes(t)){let e="",n=0;const r=i.namespaceURI;for(const t in o){if(o[t]===r){e=t;break}++n}e||(e=a+n,o[e]=r),s.push(e+":"+t)}}}"featureMember"!=i&&(r.featureType=s,r.featureNS=o)}if("string"==typeof o){const t=o;o={},o[l]=t}const h={},c=Array.isArray(s)?s:[s];for(const t in o){const e={};for(let n=0,r=c.length;n<r;++n){(c[n].includes(":")?c[n].split(":")[0]:l)===t&&(e[c[n].split(":").pop()]="featureMembers"==i?td(this.readFeatureElement,this):ed(this.readFeatureElement,this))}h[o[t]]=e}n=ud("featureMember"==i||"member"==i?void 0:[],h,t,e)}return null===n&&(n=[]),n}readGeometryOrExtent(t,e){const i=e[0];return i.srsName=t.firstElementChild.getAttribute("srsName"),i.srsDimension=t.firstElementChild.getAttribute("srsDimension"),ud(null,this.GEOMETRY_PARSERS,t,e,this)}readExtentElement(t,e){const i=e[0],n=this.readGeometryOrExtent(t,e);return n?r_(n,i):void 0}readGeometryElement(t,e){const i=e[0],n=this.readGeometryOrExtent(t,e);return n?n_(n,!1,i):void 0}readFeatureElementInternal(t,e,i){let n;const r={};for(let s=t.firstElementChild;s;s=s.nextElementSibling){let t;const o=s.localName;0===s.childNodes.length||1===s.childNodes.length&&(3===s.firstChild.nodeType||4===s.firstChild.nodeType)?(t=Ku(s,!1),$y.test(t)&&(t=void 0)):(i&&(t="boundedBy"===o?this.readExtentElement(s,e):this.readGeometryElement(s,e)),t?"boundedBy"!==o&&(n=o):t=this.readFeatureElementInternal(s,e,!1));const a=s.attributes.length;if(a>0){t={_content_:t};for(let e=0;e<a;e++){t[s.attributes[e].name]=s.attributes[e].value}}r[o]?(r[o]instanceof Array||(r[o]=[r[o]]),r[o].push(t)):r[o]=t}if(!i)return r;const s=new dt(r);n&&s.setGeometryName(n);const o=t.getAttribute("fid")||$u(t,this.namespace,"id");return o&&s.setId(o),s}readFeatureElement(t,e){return this.readFeatureElementInternal(t,e,!0)}readPoint(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i)return new Hn(i,"XYZ")}readMultiPoint(t,e){const i=ud([],this.MULTIPOINT_PARSERS,t,e,this);if(i)return new Dm(i)}readMultiLineString(t,e){const i=ud([],this.MULTILINESTRING_PARSERS,t,e,this);if(i)return new Om(i)}readMultiPolygon(t,e){const i=ud([],this.MULTIPOLYGON_PARSERS,t,e,this);if(i)return new jm(i)}pointMemberParser(t,e){cd(this.POINTMEMBER_PARSERS,t,e,this)}lineStringMemberParser(t,e){cd(this.LINESTRINGMEMBER_PARSERS,t,e,this)}polygonMemberParser(t,e){cd(this.POLYGONMEMBER_PARSERS,t,e,this)}readLineString(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i){return new Mm(i,"XYZ")}}readFlatLinearRing(t,e){const i=ud(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this);if(i)return i}readLinearRing(t,e){const i=this.readFlatCoordinatesFromNode(t,e);if(i)return new Kn(i,"XYZ")}readPolygon(t,e){const i=ud([null],this.FLAT_LINEAR_RINGS_PARSERS,t,e,this);if(i&&i[0]){const t=i[0],e=[t.length];let n,r;for(n=1,r=i.length;n<r;++n)u(t,i[n]),e.push(t.length);return new _r(t,"XYZ",e)}}readFlatCoordinatesFromNode(t,e){return ud(null,this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this)}readGeometryFromNode(t,e){const i=this.readGeometryElement(t,[this.getReadOptions(t,e||{})]);return i||null}readFeaturesFromNode(t,e){const i={featureType:this.featureType,featureNS:this.featureNS};i&&Object.assign(i,this.getReadOptions(t,e));return this.readFeaturesInternal(t,[i])||[]}readProjectionFromNode(t){return Vi(this.srsName?this.srsName:t.firstElementChild.getAttribute("srsName"))}}Jy.prototype.namespace=Hy,Jy.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{}},Jy.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{}},Jy.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{}},Jy.prototype.MULTIPOINT_PARSERS={"http://www.opengis.net/gml":{pointMember:td(Jy.prototype.pointMemberParser),pointMembers:td(Jy.prototype.pointMemberParser)}},Jy.prototype.MULTILINESTRING_PARSERS={"http://www.opengis.net/gml":{lineStringMember:td(Jy.prototype.lineStringMemberParser),lineStringMembers:td(Jy.prototype.lineStringMemberParser)}},Jy.prototype.MULTIPOLYGON_PARSERS={"http://www.opengis.net/gml":{polygonMember:td(Jy.prototype.polygonMemberParser),polygonMembers:td(Jy.prototype.polygonMemberParser)}},Jy.prototype.POINTMEMBER_PARSERS={"http://www.opengis.net/gml":{Point:td(Jy.prototype.readFlatCoordinatesFromNode)}},Jy.prototype.LINESTRINGMEMBER_PARSERS={"http://www.opengis.net/gml":{LineString:td(Jy.prototype.readLineString)}},Jy.prototype.POLYGONMEMBER_PARSERS={"http://www.opengis.net/gml":{Polygon:td(Jy.prototype.readPolygon)}},Jy.prototype.RING_PARSERS={"http://www.opengis.net/gml":{LinearRing:ed(Jy.prototype.readFlatLinearRing)}};var Qy=Jy;function tx(t){return ex(Ku(t,!1))}function ex(t){const e=/^\s*(true|1)|(false|0)\s*$/.exec(t);if(e)return void 0!==e[1]||!1}function ix(t){const e=Ku(t,!1),i=Date.parse(e);return isNaN(i)?void 0:i/1e3}function nx(t){return rx(Ku(t,!1))}function rx(t){const e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(t);if(e)return parseFloat(e[1])}function sx(t){return ox(Ku(t,!1))}function ox(t){const e=/^\s*(\d+)\s*$/.exec(t);if(e)return parseInt(e[1],10)}function ax(t){return Ku(t,!1).trim()}function lx(t,e){gx(t,e?"1":"0")}function hx(t,e){t.appendChild(_d().createCDATASection(e))}function cx(t,e){const i=new Date(1e3*e),n=i.getUTCFullYear()+"-"+_i(i.getUTCMonth()+1,2)+"-"+_i(i.getUTCDate(),2)+"T"+_i(i.getUTCHours(),2)+":"+_i(i.getUTCMinutes(),2)+":"+_i(i.getUTCSeconds(),2)+"Z";t.appendChild(_d().createTextNode(n))}function ux(t,e){const i=e.toPrecision();t.appendChild(_d().createTextNode(i))}function dx(t,e){const i=e.toString();t.appendChild(_d().createTextNode(i))}function gx(t,e){t.appendChild(_d().createTextNode(e))}const fx={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};class px extends Qy{constructor(t){super(t=t||{}),this.FEATURE_COLLECTION_PARSERS[Hy].featureMember=td(this.readFeaturesInternal),this.schemaLocation=t.schemaLocation?t.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd"}readFlatCoordinates(t,e){const i=Ku(t,!1).replace(/^\s*|\s*$/g,""),n=e[0].srsName;let r="enu";if(n){const t=Vi(n);t&&(r=t.getAxisOrientation())}const s=i.trim().split(/\s+/),o=[];for(let t=0,e=s.length;t<e;t++){const e=s[t].split(/,+/),i=parseFloat(e[0]),n=parseFloat(e[1]),a=3===e.length?parseFloat(e[2]):0;"en"===r.substr(0,2)?o.push(i,n,a):o.push(n,i,a)}return o}readBox(t,e){const i=ud([null],this.BOX_PARSERS_,t,e,this);return te(i[1][0],i[1][1],i[1][3],i[1][4])}innerBoundaryIsParser(t,e){const i=ud(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1].push(i)}}outerBoundaryIsParser(t,e){const i=ud(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1][0]=i}}GEOMETRY_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.multiSurface,s=n.surface,o=n.multiCurve;return Array.isArray(t)?i="Envelope":"MultiPolygon"===(i=t.getType())&&!0===r?i="MultiSurface":"Polygon"===i&&!0===s?i="Surface":"MultiLineString"===i&&!0===o&&(i="MultiCurve"),Yu("http://www.opengis.net/gml",i)}writeFeatureElement(t,e,i){const n=e.getId();n&&t.setAttribute("fid",n);const r=i[i.length-1],s=r.featureNS,o=e.getGeometryName();r.serializers||(r.serializers={},r.serializers[s]={});const a=[],l=[];if(e.hasProperties()){const t=e.getProperties();for(const e in t){const i=t[e];null!==i&&(a.push(e),l.push(i),e==o||"function"==typeof i.getSimplifiedGeometry?e in r.serializers[s]||(r.serializers[s][e]=rd(this.writeGeometryElement,this)):e in r.serializers[s]||(r.serializers[s][e]=rd(gx)))}}const h=Object.assign({},r);h.node=t,gd(h,r.serializers,od(void 0,s),l,i,a)}writeCurveOrLineString(t,e,i){const n=i[i.length-1].srsName;if("LineStringSegment"!==t.nodeName&&n&&t.setAttribute("srsName",n),"LineString"===t.nodeName||"LineStringSegment"===t.nodeName){const n=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(n),this.writeCoordinates_(n,e,i)}else if("Curve"===t.nodeName){const n=Yu(t.namespaceURI,"segments");t.appendChild(n),this.writeCurveSegments_(n,e,i)}}writeLineStringOrCurveMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeCurveOrLineString(n,e,i))}writeMultiCurveOrLineString(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.curve;s&&t.setAttribute("srsName",s);const a=e.getLineStrings();gd({node:t,hasZ:r,srsName:s,curve:o},this.LINESTRINGORCURVEMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeGeometryElement(t,e,i){const n=i[i.length-1],r=Object.assign({},n);let s;r.node=t,s=Array.isArray(e)?r_(e,n):n_(e,!0,n),gd(r,this.GEOMETRY_SERIALIZERS,this.GEOMETRY_NODE_FACTORY_,[s],i,void 0,this)}createCoordinatesNode_(t){const e=Yu(t,"coordinates");return e.setAttribute("decimal","."),e.setAttribute("cs",","),e.setAttribute("ts"," "),e}writeCoordinates_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=e.getCoordinates(),a=o.length,l=new Array(a);for(let t=0;t<a;++t){const e=o[t];l[t]=this.getCoords_(e,s,r)}gx(t,l.join(" "))}writeCurveSegments_(t,e,i){const n=Yu(t.namespaceURI,"LineStringSegment");t.appendChild(n),this.writeCurveOrLineString(n,e,i)}writeSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;if("PolygonPatch"!==t.nodeName&&s&&t.setAttribute("srsName",s),"Polygon"===t.nodeName||"PolygonPatch"===t.nodeName){const n=e.getLinearRings();gd({node:t,hasZ:r,srsName:s},this.RING_SERIALIZERS,this.RING_NODE_FACTORY_,n,i,void 0,this)}else if("Surface"===t.nodeName){const n=Yu(t.namespaceURI,"patches");t.appendChild(n),this.writeSurfacePatches_(n,e,i)}}RING_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.node,s=n.exteriorWritten;return void 0===s&&(n.exteriorWritten=!0),Yu(r.namespaceURI,void 0!==s?"innerBoundaryIs":"outerBoundaryIs")}writeSurfacePatches_(t,e,i){const n=Yu(t.namespaceURI,"PolygonPatch");t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i)}writeRing(t,e,i){const n=Yu(t.namespaceURI,"LinearRing");t.appendChild(n),this.writeLinearRing(n,e,i)}getCoords_(t,e,i){let n="enu";e&&(n=Vi(e).getAxisOrientation());let r="en"===n.substr(0,2)?t[0]+","+t[1]:t[1]+","+t[0];if(i){r+=","+(t[2]||0)}return r}writePoint(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;s&&t.setAttribute("srsName",s);const o=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(o);const a=e.getCoordinates();gx(o,this.getCoords_(a,s,r))}writeMultiPoint(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;s&&t.setAttribute("srsName",s);const o=e.getPoints();gd({node:t,hasZ:r,srsName:s},this.POINTMEMBER_SERIALIZERS,od("pointMember"),o,i,void 0,this)}writePointMember(t,e,i){const n=Yu(t.namespaceURI,"Point");t.appendChild(n),this.writePoint(n,e,i)}writeLinearRing(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=this.createCoordinatesNode_(t.namespaceURI);t.appendChild(r),this.writeCoordinates_(r,e,i)}writeMultiSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.surface;s&&t.setAttribute("srsName",s);const a=e.getPolygons();gd({node:t,hasZ:r,srsName:s,surface:o},this.SURFACEORPOLYGONMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeSurfaceOrPolygonMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i))}writeEnvelope(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=[e[0]+" "+e[1],e[2]+" "+e[3]];gd({node:t},this.ENVELOPE_SERIALIZERS,ad,r,i,["lowerCorner","upperCorner"],this)}MULTIGEOMETRY_MEMBER_NODE_FACTORY_(t,e,i){const n=e[e.length-1].node;return Yu("http://www.opengis.net/gml",fx[n.nodeName])}}px.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{coordinates:ed(px.prototype.readFlatCoordinates)}},px.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{innerBoundaryIs:px.prototype.innerBoundaryIsParser,outerBoundaryIs:px.prototype.outerBoundaryIsParser}},px.prototype.BOX_PARSERS_={"http://www.opengis.net/gml":{coordinates:td(px.prototype.readFlatCoordinates)}},px.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{Point:ed(Qy.prototype.readPoint),MultiPoint:ed(Qy.prototype.readMultiPoint),LineString:ed(Qy.prototype.readLineString),MultiLineString:ed(Qy.prototype.readMultiLineString),LinearRing:ed(Qy.prototype.readLinearRing),Polygon:ed(Qy.prototype.readPolygon),MultiPolygon:ed(Qy.prototype.readMultiPolygon),Box:ed(px.prototype.readBox)}},px.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml":{Curve:rd(px.prototype.writeCurveOrLineString),MultiCurve:rd(px.prototype.writeMultiCurveOrLineString),Point:rd(px.prototype.writePoint),MultiPoint:rd(px.prototype.writeMultiPoint),LineString:rd(px.prototype.writeCurveOrLineString),MultiLineString:rd(px.prototype.writeMultiCurveOrLineString),LinearRing:rd(px.prototype.writeLinearRing),Polygon:rd(px.prototype.writeSurfaceOrPolygon),MultiPolygon:rd(px.prototype.writeMultiSurfaceOrPolygon),Surface:rd(px.prototype.writeSurfaceOrPolygon),MultiSurface:rd(px.prototype.writeMultiSurfaceOrPolygon),Envelope:rd(px.prototype.writeEnvelope)}},px.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{lineStringMember:rd(px.prototype.writeLineStringOrCurveMember),curveMember:rd(px.prototype.writeLineStringOrCurveMember)}},px.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml":{outerBoundaryIs:rd(px.prototype.writeRing),innerBoundaryIs:rd(px.prototype.writeRing)}},px.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{pointMember:rd(px.prototype.writePointMember)}},px.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{surfaceMember:rd(px.prototype.writeSurfaceOrPolygonMember),polygonMember:rd(px.prototype.writeSurfaceOrPolygonMember)}},px.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml":{lowerCorner:rd(gx),upperCorner:rd(gx)}};var mx=px;const _x={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};class yx extends Qy{constructor(t){super(t=t||{}),this.surface_=void 0!==t.surface&&t.surface,this.curve_=void 0!==t.curve&&t.curve,this.multiCurve_=void 0===t.multiCurve||t.multiCurve,this.multiSurface_=void 0===t.multiSurface||t.multiSurface,this.schemaLocation=t.schemaLocation?t.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd",this.hasZ=void 0!==t.hasZ&&t.hasZ}readMultiCurve(t,e){const i=ud([],this.MULTICURVE_PARSERS,t,e,this);if(i){return new Om(i)}}readFlatCurveRing(t,e){const i=ud([],this.MULTICURVE_PARSERS,t,e,this),n=[];for(let t=0,e=i.length;t<e;++t)u(n,i[t].getFlatCoordinates());return n}readMultiSurface(t,e){const i=ud([],this.MULTISURFACE_PARSERS,t,e,this);if(i)return new jm(i)}curveMemberParser(t,e){cd(this.CURVEMEMBER_PARSERS,t,e,this)}surfaceMemberParser(t,e){cd(this.SURFACEMEMBER_PARSERS,t,e,this)}readPatch(t,e){return ud([null],this.PATCHES_PARSERS,t,e,this)}readSegment(t,e){return ud([],this.SEGMENTS_PARSERS,t,e,this)}readPolygonPatch(t,e){return ud([null],this.FLAT_LINEAR_RINGS_PARSERS,t,e,this)}readLineStringSegment(t,e){return ud([null],this.GEOMETRY_FLAT_COORDINATES_PARSERS,t,e,this)}interiorParser(t,e){const i=ud(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1].push(i)}}exteriorParser(t,e){const i=ud(void 0,this.RING_PARSERS,t,e,this);if(i){e[e.length-1][0]=i}}readSurface(t,e){const i=ud([null],this.SURFACE_PARSERS,t,e,this);if(i&&i[0]){const t=i[0],e=[t.length];let n,r;for(n=1,r=i.length;n<r;++n)u(t,i[n]),e.push(t.length);return new _r(t,"XYZ",e)}}readCurve(t,e){const i=ud([null],this.CURVE_PARSERS,t,e,this);if(i){return new Mm(i,"XYZ")}}readEnvelope(t,e){const i=ud([null],this.ENVELOPE_PARSERS,t,e,this);return te(i[1][0],i[1][1],i[2][0],i[2][1])}readFlatPos(t,e){let i=Ku(t,!1);const n=/^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/,r=[];let s;for(;s=n.exec(i);)r.push(parseFloat(s[1])),i=i.substr(s[0].length);if(""!==i)return;const o=e[0].srsName;let a="enu";if(o){a=Vi(o).getAxisOrientation()}if("neu"===a){let t,e;for(t=0,e=r.length;t<e;t+=3){const e=r[t],i=r[t+1];r[t]=i,r[t+1]=e}}const l=r.length;return 2==l&&r.push(0),0!==l?r:void 0}readFlatPosList(t,e){const i=Ku(t,!1).replace(/^\s*|\s*$/g,""),n=e[0],r=n.srsName,s=n.srsDimension;let o="enu";if(r){o=Vi(r).getAxisOrientation()}const a=i.split(/\s+/);let l,h,c,u=2;t.getAttribute("srsDimension")?u=ox(t.getAttribute("srsDimension")):t.getAttribute("dimension")?u=ox(t.getAttribute("dimension")):t.parentNode.getAttribute("srsDimension")?u=ox(t.parentNode.getAttribute("srsDimension")):s&&(u=ox(s));const d=[];for(let t=0,e=a.length;t<e;t+=u)l=parseFloat(a[t]),h=parseFloat(a[t+1]),c=3===u?parseFloat(a[t+2]):0,"en"===o.substr(0,2)?d.push(l,h,c):d.push(h,l,c);return d}writePos_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=r?"3":"2";t.setAttribute("srsDimension",s);const o=n.srsName;let a="enu";o&&(a=Vi(o).getAxisOrientation());const l=e.getCoordinates();let h;if(h="en"===a.substr(0,2)?l[0]+" "+l[1]:l[1]+" "+l[0],r){h+=" "+(l[2]||0)}gx(t,h)}getCoords_(t,e,i){let n="enu";e&&(n=Vi(e).getAxisOrientation());let r="en"===n.substr(0,2)?t[0]+" "+t[1]:t[1]+" "+t[0];if(i){r+=" "+(t[2]||0)}return r}writePosList_(t,e,i){const n=i[i.length-1],r=n.hasZ,s=r?"3":"2";t.setAttribute("srsDimension",s);const o=n.srsName,a=e.getCoordinates(),l=a.length,h=new Array(l);let c;for(let t=0;t<l;++t)c=a[t],h[t]=this.getCoords_(c,o,r);gx(t,h.join(" "))}writePoint(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=Yu(t.namespaceURI,"pos");t.appendChild(r),this.writePos_(r,e,i)}writeEnvelope(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=[e[0]+" "+e[1],e[2]+" "+e[3]];gd({node:t},this.ENVELOPE_SERIALIZERS,ad,r,i,["lowerCorner","upperCorner"],this)}writeLinearRing(t,e,i){const n=i[i.length-1].srsName;n&&t.setAttribute("srsName",n);const r=Yu(t.namespaceURI,"posList");t.appendChild(r),this.writePosList_(r,e,i)}RING_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.node,s=n.exteriorWritten;return void 0===s&&(n.exteriorWritten=!0),Yu(r.namespaceURI,void 0!==s?"interior":"exterior")}writeSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName;if("PolygonPatch"!==t.nodeName&&s&&t.setAttribute("srsName",s),"Polygon"===t.nodeName||"PolygonPatch"===t.nodeName){const n=e.getLinearRings();gd({node:t,hasZ:r,srsName:s},this.RING_SERIALIZERS,this.RING_NODE_FACTORY_,n,i,void 0,this)}else if("Surface"===t.nodeName){const n=Yu(t.namespaceURI,"patches");t.appendChild(n),this.writeSurfacePatches_(n,e,i)}}writeCurveOrLineString(t,e,i){const n=i[i.length-1].srsName;if("LineStringSegment"!==t.nodeName&&n&&t.setAttribute("srsName",n),"LineString"===t.nodeName||"LineStringSegment"===t.nodeName){const n=Yu(t.namespaceURI,"posList");t.appendChild(n),this.writePosList_(n,e,i)}else if("Curve"===t.nodeName){const n=Yu(t.namespaceURI,"segments");t.appendChild(n),this.writeCurveSegments_(n,e,i)}}writeMultiSurfaceOrPolygon(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.surface;s&&t.setAttribute("srsName",s);const a=e.getPolygons();gd({node:t,hasZ:r,srsName:s,surface:o},this.SURFACEORPOLYGONMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeMultiPoint(t,e,i){const n=i[i.length-1],r=n.srsName,s=n.hasZ;r&&t.setAttribute("srsName",r);const o=e.getPoints();gd({node:t,hasZ:s,srsName:r},this.POINTMEMBER_SERIALIZERS,od("pointMember"),o,i,void 0,this)}writeMultiCurveOrLineString(t,e,i){const n=i[i.length-1],r=n.hasZ,s=n.srsName,o=n.curve;s&&t.setAttribute("srsName",s);const a=e.getLineStrings();gd({node:t,hasZ:r,srsName:s,curve:o},this.LINESTRINGORCURVEMEMBER_SERIALIZERS,this.MULTIGEOMETRY_MEMBER_NODE_FACTORY_,a,i,void 0,this)}writeRing(t,e,i){const n=Yu(t.namespaceURI,"LinearRing");t.appendChild(n),this.writeLinearRing(n,e,i)}writeSurfaceOrPolygonMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i))}writePointMember(t,e,i){const n=Yu(t.namespaceURI,"Point");t.appendChild(n),this.writePoint(n,e,i)}writeLineStringOrCurveMember(t,e,i){const n=this.GEOMETRY_NODE_FACTORY_(e,i);n&&(t.appendChild(n),this.writeCurveOrLineString(n,e,i))}writeSurfacePatches_(t,e,i){const n=Yu(t.namespaceURI,"PolygonPatch");t.appendChild(n),this.writeSurfaceOrPolygon(n,e,i)}writeCurveSegments_(t,e,i){const n=Yu(t.namespaceURI,"LineStringSegment");t.appendChild(n),this.writeCurveOrLineString(n,e,i)}writeGeometryElement(t,e,i){const n=i[i.length-1],r=Object.assign({},n);let s;r.node=t,s=Array.isArray(e)?r_(e,n):n_(e,!0,n),gd(r,this.GEOMETRY_SERIALIZERS,this.GEOMETRY_NODE_FACTORY_,[s],i,void 0,this)}writeFeatureElement(t,e,i){const n=e.getId();n&&t.setAttribute("fid",n);const r=i[i.length-1],s=r.featureNS,o=e.getGeometryName();r.serializers||(r.serializers={},r.serializers[s]={});const a=[],l=[];if(e.hasProperties()){const t=e.getProperties();for(const e in t){const i=t[e];null!==i&&(a.push(e),l.push(i),e==o||"function"==typeof i.getSimplifiedGeometry?e in r.serializers[s]||(r.serializers[s][e]=rd(this.writeGeometryElement,this)):e in r.serializers[s]||(r.serializers[s][e]=rd(gx)))}}const h=Object.assign({},r);h.node=t,gd(h,r.serializers,od(void 0,s),l,i,a)}writeFeatureMembers_(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o={};o[s]={},o[s][r]=rd(this.writeFeatureElement,this);const a=Object.assign({},n);a.node=t,gd(a,o,od(r,s),e,i)}MULTIGEOMETRY_MEMBER_NODE_FACTORY_(t,e,i){const n=e[e.length-1].node;return Yu(this.namespace,_x[n.nodeName])}GEOMETRY_NODE_FACTORY_(t,e,i){const n=e[e.length-1],r=n.multiSurface,s=n.surface,o=n.curve,a=n.multiCurve;return Array.isArray(t)?i="Envelope":"MultiPolygon"===(i=t.getType())&&!0===r?i="MultiSurface":"Polygon"===i&&!0===s?i="Surface":"LineString"===i&&!0===o?i="Curve":"MultiLineString"===i&&!0===a&&(i="MultiCurve"),Yu(this.namespace,i)}writeGeometryNode(t,e){e=this.adaptOptions(e);const i=Yu(this.namespace,"geom"),n={node:i,hasZ:this.hasZ,srsName:this.srsName,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_};return e&&Object.assign(n,e),this.writeGeometryElement(i,t,[n]),i}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=Yu(this.namespace,"featureMembers");i.setAttributeNS(Zu,"xsi:schemaLocation",this.schemaLocation);const n={srsName:this.srsName,hasZ:this.hasZ,curve:this.curve_,surface:this.surface_,multiSurface:this.multiSurface_,multiCurve:this.multiCurve_,featureNS:this.featureNS,featureType:this.featureType};return e&&Object.assign(n,e),this.writeFeatureMembers_(i,t,[n]),i}}yx.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml":{pos:ed(yx.prototype.readFlatPos),posList:ed(yx.prototype.readFlatPosList),coordinates:ed(mx.prototype.readFlatCoordinates)}},yx.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml":{interior:yx.prototype.interiorParser,exterior:yx.prototype.exteriorParser}},yx.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml":{Point:ed(Qy.prototype.readPoint),MultiPoint:ed(Qy.prototype.readMultiPoint),LineString:ed(Qy.prototype.readLineString),MultiLineString:ed(Qy.prototype.readMultiLineString),LinearRing:ed(Qy.prototype.readLinearRing),Polygon:ed(Qy.prototype.readPolygon),MultiPolygon:ed(Qy.prototype.readMultiPolygon),Surface:ed(yx.prototype.readSurface),MultiSurface:ed(yx.prototype.readMultiSurface),Curve:ed(yx.prototype.readCurve),MultiCurve:ed(yx.prototype.readMultiCurve),Envelope:ed(yx.prototype.readEnvelope)}},yx.prototype.MULTICURVE_PARSERS={"http://www.opengis.net/gml":{curveMember:td(yx.prototype.curveMemberParser),curveMembers:td(yx.prototype.curveMemberParser)}},yx.prototype.MULTISURFACE_PARSERS={"http://www.opengis.net/gml":{surfaceMember:td(yx.prototype.surfaceMemberParser),surfaceMembers:td(yx.prototype.surfaceMemberParser)}},yx.prototype.CURVEMEMBER_PARSERS={"http://www.opengis.net/gml":{LineString:td(Qy.prototype.readLineString),Curve:td(yx.prototype.readCurve)}},yx.prototype.SURFACEMEMBER_PARSERS={"http://www.opengis.net/gml":{Polygon:td(Qy.prototype.readPolygon),Surface:td(yx.prototype.readSurface)}},yx.prototype.SURFACE_PARSERS={"http://www.opengis.net/gml":{patches:ed(yx.prototype.readPatch)}},yx.prototype.CURVE_PARSERS={"http://www.opengis.net/gml":{segments:ed(yx.prototype.readSegment)}},yx.prototype.ENVELOPE_PARSERS={"http://www.opengis.net/gml":{lowerCorner:td(yx.prototype.readFlatPosList),upperCorner:td(yx.prototype.readFlatPosList)}},yx.prototype.PATCHES_PARSERS={"http://www.opengis.net/gml":{PolygonPatch:ed(yx.prototype.readPolygonPatch)}},yx.prototype.SEGMENTS_PARSERS={"http://www.opengis.net/gml":{LineStringSegment:Qu(yx.prototype.readLineStringSegment)}},Qy.prototype.RING_PARSERS={"http://www.opengis.net/gml":{LinearRing:ed(Qy.prototype.readFlatLinearRing),Ring:ed(yx.prototype.readFlatCurveRing)}},yx.prototype.writeFeatures,yx.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml":{exterior:rd(yx.prototype.writeRing),interior:rd(yx.prototype.writeRing)}},yx.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml":{lowerCorner:rd(gx),upperCorner:rd(gx)}},yx.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{surfaceMember:rd(yx.prototype.writeSurfaceOrPolygonMember),polygonMember:rd(yx.prototype.writeSurfaceOrPolygonMember)}},yx.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{pointMember:rd(yx.prototype.writePointMember)}},yx.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml":{lineStringMember:rd(yx.prototype.writeLineStringOrCurveMember),curveMember:rd(yx.prototype.writeLineStringOrCurveMember)}},yx.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml":{Curve:rd(yx.prototype.writeCurveOrLineString),MultiCurve:rd(yx.prototype.writeMultiCurveOrLineString),Point:rd(yx.prototype.writePoint),MultiPoint:rd(yx.prototype.writeMultiPoint),LineString:rd(yx.prototype.writeCurveOrLineString),MultiLineString:rd(yx.prototype.writeMultiCurveOrLineString),LinearRing:rd(yx.prototype.writeLinearRing),Polygon:rd(yx.prototype.writeSurfaceOrPolygon),MultiPolygon:rd(yx.prototype.writeMultiSurfaceOrPolygon),Surface:rd(yx.prototype.writeSurfaceOrPolygon),MultiSurface:rd(yx.prototype.writeMultiSurfaceOrPolygon),Envelope:rd(yx.prototype.writeEnvelope)}};var xx=yx;const vx=xx;vx.prototype.writeFeatures,vx.prototype.writeFeaturesNode;var Sx=vx;class wx extends xx{constructor(t){super(t=t||{}),this.schemaLocation=t.schemaLocation?t.schemaLocation:this.namespace+" http://schemas.opengis.net/gml/3.2.1/gml.xsd"}}wx.prototype.namespace="http://www.opengis.net/gml/3.2",wx.prototype.GEOMETRY_FLAT_COORDINATES_PARSERS={"http://www.opengis.net/gml/3.2":{pos:ed(xx.prototype.readFlatPos),posList:ed(xx.prototype.readFlatPosList),coordinates:ed(mx.prototype.readFlatCoordinates)}},wx.prototype.FLAT_LINEAR_RINGS_PARSERS={"http://www.opengis.net/gml/3.2":{interior:xx.prototype.interiorParser,exterior:xx.prototype.exteriorParser}},wx.prototype.GEOMETRY_PARSERS={"http://www.opengis.net/gml/3.2":{Point:ed(Qy.prototype.readPoint),MultiPoint:ed(Qy.prototype.readMultiPoint),LineString:ed(Qy.prototype.readLineString),MultiLineString:ed(Qy.prototype.readMultiLineString),LinearRing:ed(Qy.prototype.readLinearRing),Polygon:ed(Qy.prototype.readPolygon),MultiPolygon:ed(Qy.prototype.readMultiPolygon),Surface:ed(wx.prototype.readSurface),MultiSurface:ed(xx.prototype.readMultiSurface),Curve:ed(wx.prototype.readCurve),MultiCurve:ed(xx.prototype.readMultiCurve),Envelope:ed(wx.prototype.readEnvelope)}},wx.prototype.MULTICURVE_PARSERS={"http://www.opengis.net/gml/3.2":{curveMember:td(xx.prototype.curveMemberParser),curveMembers:td(xx.prototype.curveMemberParser)}},wx.prototype.MULTISURFACE_PARSERS={"http://www.opengis.net/gml/3.2":{surfaceMember:td(xx.prototype.surfaceMemberParser),surfaceMembers:td(xx.prototype.surfaceMemberParser)}},wx.prototype.CURVEMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{LineString:td(Qy.prototype.readLineString),Curve:td(xx.prototype.readCurve)}},wx.prototype.SURFACEMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Polygon:td(Qy.prototype.readPolygon),Surface:td(xx.prototype.readSurface)}},wx.prototype.SURFACE_PARSERS={"http://www.opengis.net/gml/3.2":{patches:ed(xx.prototype.readPatch)}},wx.prototype.CURVE_PARSERS={"http://www.opengis.net/gml/3.2":{segments:ed(xx.prototype.readSegment)}},wx.prototype.ENVELOPE_PARSERS={"http://www.opengis.net/gml/3.2":{lowerCorner:td(xx.prototype.readFlatPosList),upperCorner:td(xx.prototype.readFlatPosList)}},wx.prototype.PATCHES_PARSERS={"http://www.opengis.net/gml/3.2":{PolygonPatch:ed(xx.prototype.readPolygonPatch)}},wx.prototype.SEGMENTS_PARSERS={"http://www.opengis.net/gml/3.2":{LineStringSegment:Qu(xx.prototype.readLineStringSegment)}},wx.prototype.MULTIPOINT_PARSERS={"http://www.opengis.net/gml/3.2":{pointMember:td(Qy.prototype.pointMemberParser),pointMembers:td(Qy.prototype.pointMemberParser)}},wx.prototype.MULTILINESTRING_PARSERS={"http://www.opengis.net/gml/3.2":{lineStringMember:td(Qy.prototype.lineStringMemberParser),lineStringMembers:td(Qy.prototype.lineStringMemberParser)}},wx.prototype.MULTIPOLYGON_PARSERS={"http://www.opengis.net/gml/3.2":{polygonMember:td(Qy.prototype.polygonMemberParser),polygonMembers:td(Qy.prototype.polygonMemberParser)}},wx.prototype.POINTMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Point:td(Qy.prototype.readFlatCoordinatesFromNode)}},wx.prototype.LINESTRINGMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{LineString:td(Qy.prototype.readLineString)}},wx.prototype.POLYGONMEMBER_PARSERS={"http://www.opengis.net/gml/3.2":{Polygon:td(Qy.prototype.readPolygon)}},wx.prototype.RING_PARSERS={"http://www.opengis.net/gml/3.2":{LinearRing:ed(Qy.prototype.readFlatLinearRing),Ring:ed(wx.prototype.readFlatCurveRing)}},wx.prototype.RING_SERIALIZERS={"http://www.opengis.net/gml/3.2":{exterior:rd(xx.prototype.writeRing),interior:rd(xx.prototype.writeRing)}},wx.prototype.ENVELOPE_SERIALIZERS={"http://www.opengis.net/gml/3.2":{lowerCorner:rd(gx),upperCorner:rd(gx)}},wx.prototype.SURFACEORPOLYGONMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{surfaceMember:rd(xx.prototype.writeSurfaceOrPolygonMember),polygonMember:rd(xx.prototype.writeSurfaceOrPolygonMember)}},wx.prototype.POINTMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{pointMember:rd(xx.prototype.writePointMember)}},wx.prototype.LINESTRINGORCURVEMEMBER_SERIALIZERS={"http://www.opengis.net/gml/3.2":{lineStringMember:rd(xx.prototype.writeLineStringOrCurveMember),curveMember:rd(xx.prototype.writeLineStringOrCurveMember)}},wx.prototype.GEOMETRY_SERIALIZERS={"http://www.opengis.net/gml/3.2":{Curve:rd(xx.prototype.writeCurveOrLineString),MultiCurve:rd(xx.prototype.writeMultiCurveOrLineString),Point:rd(wx.prototype.writePoint),MultiPoint:rd(xx.prototype.writeMultiPoint),LineString:rd(xx.prototype.writeCurveOrLineString),MultiLineString:rd(xx.prototype.writeMultiCurveOrLineString),LinearRing:rd(xx.prototype.writeLinearRing),Polygon:rd(xx.prototype.writeSurfaceOrPolygon),MultiPolygon:rd(xx.prototype.writeMultiSurfaceOrPolygon),Surface:rd(xx.prototype.writeSurfaceOrPolygon),MultiSurface:rd(xx.prototype.writeMultiSurfaceOrPolygon),Envelope:rd(xx.prototype.writeEnvelope)}};var Tx=wx;const Ex=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"],Cx={rte:Jx,trk:Qx,wpt:tv},bx=hd(Ex,{rte:td(Jx),trk:td(Qx),wpt:td(tv)}),Rx=hd(Ex,{text:nd(ax,"linkText"),type:nd(ax,"linkType")}),Px=hd(Ex,{rte:rd((function(t,e,i){const n=i[0],r=e.getProperties(),s={node:t};s.properties=r;const o=e.getGeometry();if("LineString"==o.getType()){const t=n_(o,!0,n);s.geometryLayout=t.getLayout(),r.rtept=t.getCoordinates()}const a=i[i.length-1].node,l=Gx[a.namespaceURI],h=ld(r,l);gd(s,kx,ad,h,i,l)})),trk:rd((function(t,e,i){const n=i[0],r=e.getProperties(),s={node:t};s.properties=r;const o=e.getGeometry();if("MultiLineString"==o.getType()){const t=n_(o,!0,n);r.trkseg=t.getLineStrings()}const a=i[i.length-1].node,l=Bx[a.namespaceURI],h=ld(r,l);gd(s,Ux,ad,h,i,l)})),wpt:rd((function(t,e,i){const n=i[0],r=i[i.length-1];r.properties=e.getProperties();const s=e.getGeometry();if("Point"==s.getType()){const e=n_(s,!0,n);r.geometryLayout=e.getLayout(),iv(t,e.getCoordinates(),i)}}))});const Ix=hd(Ex,{name:nd(ax),cmt:nd(ax),desc:nd(ax),src:nd(ax),link:Hx,number:nd(sx),extensions:$x,type:nd(ax),rtept:function(t,e){const i=ud({},Lx,t,e);if(i){const n=e[e.length-1],r=n.flatCoordinates,s=n.layoutOptions;Kx(r,s,t,i)}}}),Lx=hd(Ex,{ele:nd(nx),time:nd(ix)}),Fx=hd(Ex,{name:nd(ax),cmt:nd(ax),desc:nd(ax),src:nd(ax),link:Hx,number:nd(sx),type:nd(ax),extensions:$x,trkseg:function(t,e){const i=e[e.length-1];cd(Mx,t,e);const n=i.flatCoordinates;i.ends.push(n.length)}}),Mx=hd(Ex,{trkpt:function(t,e){const i=ud({},Ax,t,e);if(i){const n=e[e.length-1],r=n.flatCoordinates,s=n.layoutOptions;Kx(r,s,t,i)}}}),Ax=hd(Ex,{ele:nd(nx),time:nd(ix)}),Ox=hd(Ex,{ele:nd(nx),time:nd(ix),magvar:nd(nx),geoidheight:nd(nx),name:nd(ax),cmt:nd(ax),desc:nd(ax),src:nd(ax),link:Hx,sym:nd(ax),type:nd(ax),fix:nd(ax),sat:nd(sx),hdop:nd(nx),vdop:nd(nx),pdop:nd(nx),ageofdgpsdata:nd(nx),dgpsid:nd(sx),extensions:$x}),Nx=["text","type"],Dx=hd(Ex,{text:rd(gx),type:rd(gx)}),Gx=hd(Ex,["name","cmt","desc","src","link","number","type","rtept"]),kx=hd(Ex,{name:rd(gx),cmt:rd(gx),desc:rd(gx),src:rd(gx),link:rd(ev),number:rd(dx),type:rd(gx),rtept:sd(rd(iv))}),jx=hd(Ex,["ele","time"]),Bx=hd(Ex,["name","cmt","desc","src","link","number","type","trkseg"]),Ux=hd(Ex,{name:rd(gx),cmt:rd(gx),desc:rd(gx),src:rd(gx),link:rd(ev),number:rd(dx),type:rd(gx),trkseg:sd(rd((function(t,e,i){const n={node:t};n.geometryLayout=e.getLayout(),n.properties={},gd(n,Xx,zx,e.getCoordinates(),i)})))}),zx=od("trkpt"),Xx=hd(Ex,{trkpt:rd(iv)}),Vx=hd(Ex,["ele","time","magvar","geoidheight","name","cmt","desc","src","link","sym","type","fix","sat","hdop","vdop","pdop","ageofdgpsdata","dgpsid"]),Wx=hd(Ex,{ele:rd(ux),time:rd(cx),magvar:rd(ux),geoidheight:rd(ux),name:rd(gx),cmt:rd(gx),desc:rd(gx),src:rd(gx),link:rd(ev),sym:rd(gx),type:rd(gx),fix:rd(gx),sat:rd(dx),hdop:rd(ux),vdop:rd(ux),pdop:rd(ux),ageofdgpsdata:rd(ux),dgpsid:rd(dx)}),Zx={Point:"wpt",LineString:"rte",MultiLineString:"trk"};function Yx(t,e,i){const n=t.getGeometry();if(n){const t=Zx[n.getType()];if(t){return Yu(e[e.length-1].node.namespaceURI,t)}}}function Kx(t,e,i,n){return t.push(parseFloat(i.getAttribute("lon")),parseFloat(i.getAttribute("lat"))),"ele"in n?(t.push(n.ele),delete n.ele,e.hasZ=!0):t.push(0),"time"in n?(t.push(n.time),delete n.time,e.hasM=!0):t.push(0),t}function qx(t,e,i){let n="XY",r=2;if(t.hasZ&&t.hasM?(n="XYZM",r=4):t.hasZ?(n="XYZ",r=3):t.hasM&&(n="XYM",r=3),4!==r){for(let i=0,n=e.length/4;i<n;i++)e[i*r]=e[4*i],e[i*r+1]=e[4*i+1],t.hasZ&&(e[i*r+2]=e[4*i+2]),t.hasM&&(e[i*r+2]=e[4*i+3]);if(e.length=e.length/4*r,i)for(let t=0,e=i.length;t<e;t++)i[t]=i[t]/4*r}return n}function Hx(t,e){const i=e[e.length-1],n=t.getAttribute("href");null!==n&&(i.link=n),cd(Rx,t,e)}function $x(t,e){e[e.length-1].extensionsNode_=t}function Jx(t,e){const i=e[0],n=ud({flatCoordinates:[],layoutOptions:{}},Ix,t,e);if(!n)return;const r=n.flatCoordinates;delete n.flatCoordinates;const s=n.layoutOptions;delete n.layoutOptions;const o=qx(s,r),a=new Mm(r,o);n_(a,!1,i);const l=new dt(a);return l.setProperties(n,!0),l}function Qx(t,e){const i=e[0],n=ud({flatCoordinates:[],ends:[],layoutOptions:{}},Fx,t,e);if(!n)return;const r=n.flatCoordinates;delete n.flatCoordinates;const s=n.ends;delete n.ends;const o=n.layoutOptions;delete n.layoutOptions;const a=qx(o,r,s),l=new Om(r,a,s);n_(l,!1,i);const h=new dt(l);return h.setProperties(n,!0),h}function tv(t,e){const i=e[0],n=ud({},Ox,t,e);if(!n)return;const r={},s=Kx([],r,t,n),o=qx(r,s),a=new Hn(s,o);n_(a,!1,i);const l=new dt(a);return l.setProperties(n,!0),l}function ev(t,e,i){t.setAttribute("href",e);const n=i[i.length-1].properties,r=[n.linkText,n.linkType];gd({node:t},Dx,ad,r,i,Nx)}function iv(t,e,i){const n=i[i.length-1],r=n.node.namespaceURI,s=n.properties;t.setAttributeNS(null,"lat",String(e[1])),t.setAttributeNS(null,"lon",String(e[0]));switch(n.geometryLayout){case"XYZM":0!==e[3]&&(s.time=e[3]);case"XYZ":0!==e[2]&&(s.ele=e[2]);break;case"XYM":0!==e[2]&&(s.time=e[2])}const o="rtept"==t.nodeName?jx[r]:Vx[r],a=ld(s,o);gd({node:t,properties:s},Wx,ad,a,i,o)}var nv=class extends qy{constructor(t){super(),t=t||{},this.dataProjection=Vi("EPSG:4326"),this.readExtensions_=t.readExtensions}handleReadExtensions_(t){t||(t=[]);for(let e=0,i=t.length;e<i;++e){const i=t[e];if(this.readExtensions_){const t=i.get("extensionsNode_")||null;this.readExtensions_(i,t)}i.set("extensionsNode_",void 0)}}readFeatureFromNode(t,e){if(!Ex.includes(t.namespaceURI))return null;const i=Cx[t.localName];if(!i)return null;const n=i(t,[this.getReadOptions(t,e)]);return n?(this.handleReadExtensions_([n]),n):null}readFeaturesFromNode(t,e){if(!Ex.includes(t.namespaceURI))return[];if("gpx"==t.localName){const i=ud([],bx,t,[this.getReadOptions(t,e)]);return i?(this.handleReadExtensions_(i),i):[]}return[]}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=Yu("http://www.topografix.com/GPX/1/1","gpx");return i.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi",Zu),i.setAttributeNS(Zu,"xsi:schemaLocation","http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"),i.setAttribute("version","1.1"),i.setAttribute("creator","OpenLayers"),gd({node:i},Px,Yx,t,[e]),i}};function rv(t,e){if(!t)return null;let i;switch(t.type){case"Point":i=function(t){return new Hn(t.coordinates)}(t);break;case"LineString":i=function(t){return new Mm(t.coordinates)}(t);break;case"Polygon":i=function(t){return new _r(t.coordinates)}(t);break;case"MultiPoint":i=function(t){return new Dm(t.coordinates)}(t);break;case"MultiLineString":i=function(t){return new Om(t.coordinates)}(t);break;case"MultiPolygon":i=function(t){return new jm(t.coordinates)}(t);break;case"GeometryCollection":i=function(t,e){const i=t.geometries.map((function(t){return rv(t,e)}));return new Rm(i)}(t);break;default:throw new Error("Unsupported GeoJSON type: "+t.type)}return n_(i,!1,e)}function sv(t,e){const i=(t=n_(t,!0,e)).getType();let n;switch(i){case"Point":n=function(t,e){return{type:"Point",coordinates:t.getCoordinates()}}(t);break;case"LineString":n=function(t,e){return{type:"LineString",coordinates:t.getCoordinates()}}(t);break;case"Polygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"Polygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"MultiPoint":n=function(t,e){return{type:"MultiPoint",coordinates:t.getCoordinates()}}(t);break;case"MultiLineString":n=function(t,e){return{type:"MultiLineString",coordinates:t.getCoordinates()}}(t);break;case"MultiPolygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"MultiPolygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"GeometryCollection":n=function(t,e){delete(e=Object.assign({},e)).featureProjection;return{type:"GeometryCollection",geometries:t.getGeometriesArray().map((function(t){return sv(t,e)}))}}(t,e);break;case"Circle":n={type:"GeometryCollection",geometries:[]};break;default:throw new Error("Unsupported geometry type: "+i)}return n}var ov=class extends Uy{constructor(t){t=t||{},super(),this.dataProjection=Vi(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=Vi(t.featureProjection)),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let i=null;i="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const n=rv(i.geometry,e),r=new dt;return this.geometryName_?r.setGeometryName(this.geometryName_):this.extractGeometryName_&&"geometry_name"in i!==void 0&&r.setGeometryName(i.geometry_name),r.setGeometry(n),"id"in i&&r.setId(i.id),i.properties&&r.setProperties(i.properties,!0),r}readFeaturesFromObject(t,e){let i=null;if("FeatureCollection"===t.type){i=[];const n=t.features;for(let t=0,r=n.length;t<r;++t)i.push(this.readFeatureFromObject(n[t],e))}else i=[this.readFeatureFromObject(t,e)];return i}readGeometryFromObject(t,e){return rv(t,e)}readProjectionFromObject(t){const e=t.crs;let i;return e?"name"==e.type?i=Vi(e.properties.name):"EPSG"===e.type?i=Vi("EPSG:"+e.properties.code):ht(!1,36):i=this.dataProjection,i}writeFeatureObject(t,e){e=this.adaptOptions(e);const i={type:"Feature",geometry:null,properties:null},n=t.getId();if(void 0!==n&&(i.id=n),!t.hasProperties())return i;const r=t.getProperties(),s=t.getGeometry();return s&&(i.geometry=sv(s,e),delete r[t.getGeometryName()]),v(r)||(i.properties=r),i}writeFeaturesObject(t,e){e=this.adaptOptions(e);const i=[];for(let n=0,r=t.length;n<r;++n)i.push(this.writeFeatureObject(t[n],e));return{type:"FeatureCollection",features:i}}writeGeometryObject(t,e){return sv(t,this.adaptOptions(e))}};function av(t){return"string"==typeof t?t:""}var lv=class extends i_{constructor(){super()}getType(){return"text"}readFeature(t,e){return this.readFeatureFromText(av(t),this.adaptOptions(e))}readFeatureFromText(t,e){return z()}readFeatures(t,e){return this.readFeaturesFromText(av(t),this.adaptOptions(e))}readFeaturesFromText(t,e){return z()}readGeometry(t,e){return this.readGeometryFromText(av(t),this.adaptOptions(e))}readGeometryFromText(t,e){return z()}readProjection(t){return this.readProjectionFromText(av(t))}readProjectionFromText(t){return this.dataProjection}writeFeature(t,e){return this.writeFeatureText(t,this.adaptOptions(e))}writeFeatureText(t,e){return z()}writeFeatures(t,e){return this.writeFeaturesText(t,this.adaptOptions(e))}writeFeaturesText(t,e){return z()}writeGeometry(t,e){return this.writeGeometryText(t,this.adaptOptions(e))}writeGeometryText(t,e){return z()}};const hv=/^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,cv=/^H.([A-Z]{3}).*?:(.*)/,uv=/^HFDTE(\d{2})(\d{2})(\d{2})/,dv=/\r\n|\r|\n/;var gv=class extends lv{constructor(t){super(),t=t||{},this.dataProjection=Vi("EPSG:4326"),this.altitudeMode_=t.altitudeMode?t.altitudeMode:"none"}readFeatureFromText(t,e){const i=this.altitudeMode_,n=t.split(dv),r={},s=[];let o,a,l=2e3,h=0,c=1,u=-1;for(o=0,a=n.length;o<a;++o){const t=n[o];let e;if("B"==t.charAt(0)){if(e=hv.exec(t),e){const t=parseInt(e[1],10),n=parseInt(e[2],10),r=parseInt(e[3],10);let o=parseInt(e[4],10)+parseInt(e[5],10)/6e4;"S"==e[6]&&(o=-o);let a=parseInt(e[7],10)+parseInt(e[8],10)/6e4;if("W"==e[9]&&(a=-a),s.push(a,o),"none"!=i){let t;t="gps"==i?parseInt(e[11],10):"barometric"==i?parseInt(e[12],10):0,s.push(t)}let d=Date.UTC(l,h,c,t,n,r);d<u&&(d=Date.UTC(l,h,c+1,t,n,r)),s.push(d/1e3),u=d}}else"H"==t.charAt(0)&&(e=uv.exec(t),e?(c=parseInt(e[1],10),h=parseInt(e[2],10)-1,l=2e3+parseInt(e[3],10)):(e=cv.exec(t),e&&(r[e[1]]=e[2].trim())))}if(0===s.length)return null;const d=new Mm(s,"none"==i?"XYM":"XYZM"),g=new dt(n_(d,!1,e));return g.setProperties(r,!0),g}readFeaturesFromText(t,e){const i=this.readFeatureFromText(t,e);return i?[i]:[]}};const fv=["http://www.google.com/kml/ext/2.2"],pv=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],mv={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},_v=hd(pv,{ExtendedData:xS,Region:vS,MultiGeometry:nd(cS,"geometry"),LineString:nd(aS,"geometry"),LinearRing:nd(lS,"geometry"),Point:nd(uS,"geometry"),Polygon:nd(gS,"geometry"),Style:nd(pS),StyleMap:function(t,e){const i=Yv.call(this,t,e);if(!i)return;const n=e[e.length-1];Array.isArray(i)?n.Style=i:"string"==typeof i?n.styleUrl=i:ht(!1,38)},address:nd(ax),description:nd(ax),name:nd(ax),open:nd(tx),phoneNumber:nd(ax),styleUrl:nd(Vv),visibility:nd(tx)},hd(fv,{MultiTrack:nd((function(t,e){const i=ud([],tS,t,e);if(!i)return;return new Om(i)}),"geometry"),Track:nd(iS,"geometry")})),yv=hd(pv,{ExtendedData:xS,Region:vS,Link:function(t,e){cd(xv,t,e)},address:nd(ax),description:nd(ax),name:nd(ax),open:nd(tx),phoneNumber:nd(ax),visibility:nd(tx)}),xv=hd(pv,{href:nd(Xv)}),vv=hd(pv,{LatLonAltBox:function(t,e){const i=ud({},TS,t,e);if(!i)return;const n=e[e.length-1],r=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)];n.extent=r,n.altitudeMode=i.altitudeMode,n.minAltitude=parseFloat(i.minAltitude),n.maxAltitude=parseFloat(i.maxAltitude)},Lod:function(t,e){const i=ud({},ES,t,e);if(!i)return;const n=e[e.length-1];n.minLodPixels=parseFloat(i.minLodPixels),n.maxLodPixels=parseFloat(i.maxLodPixels),n.minFadeExtent=parseFloat(i.minFadeExtent),n.maxFadeExtent=parseFloat(i.maxFadeExtent)}}),Sv=hd(pv,["Document","Placemark"]),wv=hd(pv,{Document:rd((function(t,e,i){gd({node:t},IS,LS,e,i,void 0,this)})),Placemark:rd(tw)});let Tv,Ev,Cv,bv,Rv,Pv,Iv=null;let Lv,Fv=null;let Mv,Av=null;let Ov=null;let Nv=null;let Dv,Gv=null;function kv(t){return 32/Math.min(t[0],t[1])}function jv(t){return t}function Bv(t,e,i){return Array.isArray(t)?t:"string"==typeof t?Bv(i[t],e,i):e}function Uv(t){const e=Ku(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){const t=i[1];return[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]}}function zv(t){let e=Ku(t,!1);const i=[];e=e.replace(/\s*,\s*/g,",");const n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;let r;for(;r=n.exec(e);){const t=parseFloat(r[1]),n=parseFloat(r[2]),s=r[3]?parseFloat(r[3]):0;i.push(t,n,s),e=e.substr(r[0].length)}if(""===e)return i}function Xv(t){const e=Ku(t,!1).trim();let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Vv(t){const e=Ku(t,!1).trim().replace(/^(?!.*#)/,"#");let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Wv(t){return nx(t)}const Zv=hd(pv,{Pair:function(t,e){const i=ud({},SS,t,e,this);if(!i)return;const n=i.key;if(n&&"normal"==n){const t=i.styleUrl;t&&(e[e.length-1]=t);const n=i.Style;n&&(e[e.length-1]=n)}}});function Yv(t,e){return ud(void 0,Zv,t,e,this)}const Kv=hd(pv,{Icon:nd((function(t,e){const i=ud({},nS,t,e);if(i)return i;return null})),color:nd(Uv),heading:nd(nx),hotSpot:nd((function(t){const e=t.getAttribute("xunits"),i=t.getAttribute("yunits");let n;return n="insetPixels"!==e?"insetPixels"!==i?"bottom-left":"top-left":"insetPixels"!==i?"bottom-right":"top-right",{x:parseFloat(t.getAttribute("x")),xunits:mv[e],y:parseFloat(t.getAttribute("y")),yunits:mv[i],origin:n}})),scale:nd(Wv)});const qv=hd(pv,{color:nd(Uv),scale:nd(Wv)});const Hv=hd(pv,{color:nd(Uv),width:nd(nx)});const $v=hd(pv,{color:nd(Uv),fill:nd(tx),outline:nd(tx)});const Jv=hd(pv,{coordinates:ed(zv)});function Qv(t,e){return ud(null,Jv,t,e)}const tS=hd(fv,{Track:td(iS)});const eS=hd(pv,{when:function(t,e){const i=e[e.length-1].whens,n=Ku(t,!1),r=Date.parse(n);i.push(isNaN(r)?0:r)}},hd(fv,{coord:function(t,e){const i=e[e.length-1].coordinates,n=Ku(t,!1),r=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);if(r){const t=parseFloat(r[1]),e=parseFloat(r[2]),n=parseFloat(r[3]);i.push([t,e,n])}else i.push([])}}));function iS(t,e){const i=ud({coordinates:[],whens:[]},eS,t,e);if(!i)return;const n=[],r=i.coordinates,s=i.whens;for(let t=0,e=Math.min(r.length,s.length);t<e;++t)3==r[t].length&&n.push(r[t][0],r[t][1],r[t][2],s[t]);return new Mm(n,"XYZM")}const nS=hd(pv,{href:nd(Xv)},hd(fv,{x:nd(nx),y:nd(nx),w:nd(nx),h:nd(nx)}));const rS=hd(pv,{coordinates:ed(zv)});function sS(t,e){return ud(null,rS,t,e)}const oS=hd(pv,{extrude:nd(tx),tessellate:nd(tx),altitudeMode:nd(ax)});function aS(t,e){const i=ud({},oS,t,e),n=sS(t,e);if(n){const t=new Mm(n,"XYZ");return t.setProperties(i,!0),t}}function lS(t,e){const i=ud({},oS,t,e),n=sS(t,e);if(n){const t=new _r(n,"XYZ",[n.length]);return t.setProperties(i,!0),t}}const hS=hd(pv,{LineString:td(aS),LinearRing:td(lS),MultiGeometry:td(cS),Point:td(uS),Polygon:td(gS)});function cS(t,e){const i=ud([],hS,t,e);if(!i)return null;if(0===i.length)return new Rm(i);let n,r=!0;const s=i[0].getType();let o;for(let t=1,e=i.length;t<e;++t)if(o=i[t],o.getType()!=s){r=!1;break}if(r){let t,e;if("Point"==s){const r=i[0];t=r.getLayout(),e=r.getFlatCoordinates();for(let t=1,n=i.length;t<n;++t)o=i[t],u(e,o.getFlatCoordinates());n=new Dm(e,t),mS(n,i)}else"LineString"==s?(n=new Om(i),mS(n,i)):"Polygon"==s?(n=new jm(i),mS(n,i)):"GeometryCollection"==s?n=new Rm(i):ht(!1,37)}else n=new Rm(i);return n}function uS(t,e){const i=ud({},oS,t,e),n=sS(t,e);if(n){const t=new Hn(n,"XYZ");return t.setProperties(i,!0),t}}const dS=hd(pv,{innerBoundaryIs:function(t,e){const i=ud([],CS,t,e);if(i.length>0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=ud(void 0,bS,t,e);if(i){e[e.length-1][0]=i}}});function gS(t,e){const i=ud({},oS,t,e),n=ud([null],dS,t,e);if(n&&n[0]){const t=n[0],e=[t.length];for(let i=1,r=n.length;i<r;++i)u(t,n[i]),e.push(t.length);const r=new _r(t,"XYZ",e);return r.setProperties(i,!0),r}}const fS=hd(pv,{IconStyle:function(t,e){const i=ud({},Kv,t,e);if(!i)return;const n=e[e.length-1],r="Icon"in i?i.Icon:{},s=!("Icon"in i)||Object.keys(r).length>0;let o;const a=r.href;let l,h,c;a?o=a:s&&(o=Pv);let u="bottom-left";const d=i.hotSpot;let g;d?(l=[d.x,d.y],h=d.xunits,c=d.yunits,u=d.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=Ev,h=Cv,c=bv):o.includes("arrow-reverse")?(l=[54,42],h=Cv,c=bv):o.includes("paddle")&&(l=[32,1],h=Cv,c=bv));const f=r.x,p=r.y;let m;void 0!==f&&void 0!==p&&(g=[f,p]);const _=r.w,y=r.h;let x;void 0!==_&&void 0!==y&&(m=[_,y]);const v=i.heading;void 0!==v&&(x=ci(v));const S=i.scale,w=i.color;if(s){o==Pv&&(m=Rv);const t=new Hg({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:g,offsetOrigin:"bottom-left",rotation:x,scale:S,size:m,src:this.iconUrlFunction_(o),color:w}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Nr||i===Dr){const n=function(){const i=t.getImageState();if(i!==Nr&&i!==Dr){const i=t.getSize();if(i&&2==i.length){const n=kv(i);t.setScale(e*n)}t.unlistenImageChange(n)}};t.listenImageChange(n),i===Nr&&t.load()}}else if(2==i.length){const n=kv(i);t.setScale(e*n)}n.imageStyle=t}else n.imageStyle=Lv},LabelStyle:function(t,e){const i=ud({},qv,t,e);if(!i)return;const n=e[e.length-1],r=new lf({fill:new Vg({color:"color"in i?i.color:Tv}),scale:i.scale});n.textStyle=r},LineStyle:function(t,e){const i=ud({},Hv,t,e);if(!i)return;const n=e[e.length-1],r=new Jg({color:"color"in i?i.color:Tv,width:"width"in i?i.width:1});n.strokeStyle=r},PolyStyle:function(t,e){const i=ud({},$v,t,e);if(!i)return;const n=e[e.length-1],r=new Vg({color:"color"in i?i.color:Tv});n.fillStyle=r;const s=i.fill;void 0!==s&&(n.fill=s);const o=i.outline;void 0!==o&&(n.outline=o)}});function pS(t,e){const i=ud({},fS,t,e,this);if(!i)return null;let n="fillStyle"in i?i.fillStyle:Iv;const r=i.fill;let s;void 0===r||r||(n=null),"imageStyle"in i?i.imageStyle!=Lv&&(s=i.imageStyle):s=Fv;const o="textStyle"in i?i.textStyle:Ov,a="strokeStyle"in i?i.strokeStyle:Av,l=i.outline;return void 0===l||l?[new of({fill:n,image:s,stroke:a,text:o,zIndex:void 0})]:[new of({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Rm(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:n,image:s,stroke:a,text:o,zIndex:void 0}),new of({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Rm(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:n,stroke:null,zIndex:void 0})]}function mS(t,e){const i=e.length,n=new Array(e.length),r=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t<i;++t){const i=e[t];n[t]=i.get("extrude"),r[t]=i.get("tessellate"),s[t]=i.get("altitudeMode"),o=o||void 0!==n[t],a=a||void 0!==r[t],l=l||s[t]}o&&t.set("extrude",n),a&&t.set("tessellate",r),l&&t.set("altitudeMode",s)}const _S=hd(pv,{displayName:nd(ax),value:nd(ax)});const yS=hd(pv,{Data:function(t,e){const i=t.getAttribute("name");cd(_S,t,e);const n=e[e.length-1];i&&n.displayName?n[i]={value:n.value,displayName:n.displayName,toString:function(){return n.value}}:null!==i?n[i]=n.value:null!==n.displayName&&(n[n.displayName]=n.value),delete n.value},SchemaData:function(t,e){cd(wS,t,e)}});function xS(t,e){cd(yS,t,e)}function vS(t,e){cd(vv,t,e)}const SS=hd(pv,{Style:nd(pS),key:nd(ax),styleUrl:nd(Vv)});const wS=hd(pv,{SimpleData:function(t,e){const i=t.getAttribute("name");if(null!==i){const n=ax(t);e[e.length-1][i]=n}}});const TS=hd(pv,{altitudeMode:nd(ax),minAltitude:nd(nx),maxAltitude:nd(nx),north:nd(nx),south:nd(nx),east:nd(nx),west:nd(nx)});const ES=hd(pv,{minLodPixels:nd(nx),maxLodPixels:nd(nx),minFadeExtent:nd(nx),maxFadeExtent:nd(nx)});const CS=hd(pv,{LinearRing:td(Qv)});const bS=hd(pv,{LinearRing:ed(Qv)});function RS(t,e){const i=rs(e),n=[255*(4==i.length?i[3]:1),i[2],i[1],i[0]];for(let t=0;t<4;++t){const e=Math.floor(n[t]).toString(16);n[t]=1==e.length?"0"+e:e}gx(t,n.join(""))}const PS=hd(pv,{Data:rd((function(t,e,i){t.setAttribute("name",e.name);const n={node:t},r=e.value;"object"==typeof r?(null!==r&&r.displayName&&gd(n,PS,ad,[r.displayName],i,["displayName"]),null!==r&&r.value&&gd(n,PS,ad,[r.value],i,["value"])):gd(n,PS,ad,[r],i,["value"])})),value:rd((function(t,e){gx(t,e)})),displayName:rd((function(t,e){hx(t,e)}))});const IS=hd(pv,{Placemark:rd(tw)}),LS=function(t,e,i){return Yu(e[e.length-1].node.namespaceURI,"Placemark")};const FS=od("Data");const MS=hd(pv,["href"],hd(fv,["x","y","w","h"])),AS=hd(pv,{href:rd(gx)},hd(fv,{x:rd(ux),y:rd(ux),w:rd(ux),h:rd(ux)})),OS=function(t,e,i){return Yu(fv[0],"gx:"+i)};const NS=hd(pv,["scale","heading","Icon","color","hotSpot"]),DS=hd(pv,{Icon:rd((function(t,e,i){const n={node:t},r=i[i.length-1].node;let s=MS[r.namespaceURI],o=ld(e,s);gd(n,AS,ad,o,i,s),s=MS[fv[0]],o=ld(e,s),gd(n,AS,OS,o,i,s)})),color:rd(RS),heading:rd(ux),hotSpot:rd((function(t,e){t.setAttribute("x",String(e.x)),t.setAttribute("y",String(e.y)),t.setAttribute("xunits",e.xunits),t.setAttribute("yunits",e.yunits)})),scale:rd(cw)});const GS=hd(pv,["color","scale"]),kS=hd(pv,{color:rd(RS),scale:rd(cw)});const jS=hd(pv,["color","width"]),BS=hd(pv,{color:rd(RS),width:rd(ux)});const US={Point:"Point",LineString:"LineString",LinearRing:"LinearRing",Polygon:"Polygon",MultiPoint:"MultiGeometry",MultiLineString:"MultiGeometry",MultiPolygon:"MultiGeometry",GeometryCollection:"MultiGeometry"},zS=function(t,e,i){if(t){return Yu(e[e.length-1].node.namespaceURI,US[t.getType()])}},XS=od("Point"),VS=od("LineString"),WS=od("LinearRing"),ZS=od("Polygon"),YS=hd(pv,{LineString:rd(nw),Point:rd(nw),Polygon:rd(lw),GeometryCollection:rd(KS)});function KS(t,e,i){const n={node:t},r=e.getType();let s,o=[];"GeometryCollection"===r?(e.getGeometriesArrayRecursive().forEach((function(t){const e=t.getType();"MultiPoint"===e?o=o.concat(t.getPoints()):"MultiLineString"===e?o=o.concat(t.getLineStrings()):"MultiPolygon"===e?o=o.concat(t.getPolygons()):"Point"===e||"LineString"===e||"Polygon"===e?o.push(t):ht(!1,39)})),s=zS):"MultiPoint"===r?(o=e.getPoints(),s=XS):"MultiLineString"===r?(o=e.getLineStrings(),s=VS):"MultiPolygon"===r?(o=e.getPolygons(),s=ZS):ht(!1,39),gd(n,YS,s,o,i)}const qS=hd(pv,{LinearRing:rd(nw)});function HS(t,e,i){gd({node:t},qS,WS,[e],i)}const $S=hd(pv,{ExtendedData:rd((function(t,e,i){const n={node:t},r=e.names,s=e.values,o=r.length;for(let t=0;t<o;t++)gd(n,PS,FS,[{name:r[t],value:s[t]}],i)})),MultiGeometry:rd(KS),LineString:rd(nw),LinearRing:rd(nw),Point:rd(nw),Polygon:rd(lw),Style:rd((function(t,e,i){const n={node:t},r={};if(e.pointStyles.length){const t=e.pointStyles[0].getText();t&&(r.LabelStyle=t);const i=e.pointStyles[0].getImage();i&&"function"==typeof i.getSrc&&(r.IconStyle=i)}if(e.lineStyles.length){const t=e.lineStyles[0].getStroke();t&&(r.LineStyle=t)}if(e.polyStyles.length){const t=e.polyStyles[0].getStroke();t&&!r.LineStyle&&(r.LineStyle=t),r.PolyStyle=e.polyStyles[0]}const s=i[i.length-1].node,o=uw[s.namespaceURI],a=ld(r,o);gd(n,dw,ad,a,i,o)})),address:rd(gx),description:rd(gx),name:rd(gx),open:rd(lx),phoneNumber:rd(gx),styleUrl:rd(gx),visibility:rd(lx)}),JS=hd(pv,["name","open","visibility","address","phoneNumber","description","styleUrl","Style"]),QS=od("ExtendedData");function tw(t,e,i){const n={node:t};e.getId()&&t.setAttribute("id",e.getId());const r=e.getProperties(),s={address:1,description:1,name:1,open:1,phoneNumber:1,styleUrl:1,visibility:1};s[e.getGeometryName()]=1;const o=Object.keys(r||{}).sort().filter((function(t){return!s[t]})),a=e.getStyleFunction();if(a){const t=a(e,0);if(t){const i=Array.isArray(t)?t:[t];let n=i;if(e.getGeometry()&&(n=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Point"===e||"MultiPoint"===e})).length:"Point"===t||"MultiPoint"===t}}))),this.writeStyles_){let t=i,s=i;e.getGeometry()&&(t=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"LineString"===e||"MultiLineString"===e})).length:"LineString"===t||"MultiLineString"===t}})),s=i.filter((function(t){const i=t.getGeometryFunction()(e);if(i){const t=i.getType();return"GeometryCollection"===t?i.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})).length:"Polygon"===t||"MultiPolygon"===t}}))),r.Style={pointStyles:n,lineStyles:t,polyStyles:s}}if(n.length&&void 0===r.name){const t=n[0].getText();t&&(r.name=t.getText())}}}const l=i[i.length-1].node,h=JS[l.namespaceURI],c=ld(r,h);if(gd(n,$S,ad,c,i,h),o.length>0){const t=ld(r,o);gd(n,$S,QS,[{names:o,values:t}],i)}const u=i[0];let d=e.getGeometry();d&&(d=n_(d,!0,u)),gd(n,$S,zS,[d],i)}const ew=hd(pv,["extrude","tessellate","altitudeMode","coordinates"]),iw=hd(pv,{extrude:rd(lx),tessellate:rd(lx),altitudeMode:rd(gx),coordinates:rd((function(t,e,i){const n=i[i.length-1],r=n.layout,s=n.stride;let o;"XY"==r||"XYM"==r?o=2:"XYZ"==r||"XYZM"==r?o=3:ht(!1,34);const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t<o;++t)l+=","+e[t];for(let t=s;t<a;t+=s){l+=" "+e[t];for(let i=1;i<o;++i)l+=","+e[t+i]}}gx(t,l)}))});function nw(t,e,i){const n=e.getFlatCoordinates(),r={node:t};r.layout=e.getLayout(),r.stride=e.getStride();const s=e.getProperties();s.coordinates=n;const o=i[i.length-1].node,a=ew[o.namespaceURI],l=ld(s,a);gd(r,iw,ad,l,i,a)}const rw=hd(pv,["color","fill","outline"]),sw=hd(pv,{outerBoundaryIs:rd(HS),innerBoundaryIs:rd(HS)}),ow=od("innerBoundaryIs"),aw=od("outerBoundaryIs");function lw(t,e,i){const n=e.getLinearRings(),r=n.shift(),s={node:t};gd(s,sw,ow,n,i),gd(s,sw,aw,[r],i)}const hw=hd(pv,{color:rd(RS),fill:rd(lx),outline:rd(lx)});function cw(t,e){ux(t,Math.round(1e6*e)/1e6)}const uw=hd(pv,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),dw=hd(pv,{IconStyle:rd((function(t,e,i){const n={node:t},r={},s=e.getSrc(),o=e.getSize(),a=e.getImageSize(),l={href:s};if(o){l.w=o[0],l.h=o[1];const t=e.getAnchor(),i=e.getOrigin();if(i&&a&&0!==i[0]&&i[1]!==o[1]&&(l.x=i[0],l.y=a[1]-(i[1]+o[1])),t&&(t[0]!==o[0]/2||t[1]!==o[1]/2)){const e={x:t[0],xunits:"pixels",y:o[1]-t[1],yunits:"pixels"};r.hotSpot=e}}r.Icon=l;let h=e.getScaleArray()[0],c=o;if(null===c&&(c=Rv),2==c.length){h/=kv(c)}1!==h&&(r.scale=h);const u=e.getRotation();0!==u&&(r.heading=u);const d=e.getColor();d&&(r.color=d);const g=i[i.length-1].node,f=NS[g.namespaceURI],p=ld(r,f);gd(n,DS,ad,p,i,f)})),LabelStyle:rd((function(t,e,i){const n={node:t},r={},s=e.getFill();s&&(r.color=s.getColor());const o=e.getScale();o&&1!==o&&(r.scale=o);const a=i[i.length-1].node,l=GS[a.namespaceURI],h=ld(r,l);gd(n,kS,ad,h,i,l)})),LineStyle:rd((function(t,e,i){const n={node:t},r={color:e.getColor(),width:Number(e.getWidth())||1},s=i[i.length-1].node,o=jS[s.namespaceURI],a=ld(r,o);gd(n,BS,ad,a,i,o)})),PolyStyle:rd((function(t,e,i){const n={node:t},r=e.getFill(),s=e.getStroke(),o={color:r?r.getColor():void 0,fill:!!r&&void 0,outline:!!s&&void 0},a=i[i.length-1].node,l=rw[a.namespaceURI],h=ld(o,l);gd(n,hw,ad,h,i,l)}))});var gw=class extends qy{constructor(t){super(),t=t||{},Gv||(Tv=[255,255,255,1],Iv=new Vg({color:Tv}),Ev=[20,2],Cv="pixels",bv="pixels",Rv=[64,64],Pv="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",Fv=new Hg({anchor:Ev,anchorOrigin:"bottom-left",anchorXUnits:Cv,anchorYUnits:bv,crossOrigin:"anonymous",rotation:0,scale:kv(Rv),size:Rv,src:Pv}),Lv="NO_IMAGE",Av=new Jg({color:Tv,width:1}),Mv=new Jg({color:[51,51,51,1],width:2}),Ov=new lf({font:"bold 16px Helvetica",fill:Iv,stroke:Mv,scale:.8}),Nv=new of({fill:Iv,image:Fv,text:Ov,stroke:Av,zIndex:0}),Gv=[Nv]),this.dataProjection=Vi("EPSG:4326"),this.defaultStyle_=t.defaultStyle?t.defaultStyle:Gv,this.extractStyles_=void 0===t.extractStyles||t.extractStyles,this.writeStyles_=void 0===t.writeStyles||t.writeStyles,this.sharedStyles_={},this.showPointNames_=void 0===t.showPointNames||t.showPointNames,this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",this.iconUrlFunction_=t.iconUrlFunction?t.iconUrlFunction:jv,this.supportedMediaTypes=["application/vnd.google-earth.kml+xml"]}readDocumentOrFolder_(t,e){const i=ud([],hd(pv,{Document:Qu(this.readDocumentOrFolder_,this),Folder:Qu(this.readDocumentOrFolder_,this),Placemark:td(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),t,e,this);if(i)return i}readPlacemark_(t,e){const i=ud({geometry:null},_v,t,e,this);if(!i)return;const n=new dt,r=t.getAttribute("id");null!==r&&n.setId(r);const s=e[0],o=i.geometry;if(o&&n_(o,!1,s),n.setGeometry(o),delete i.geometry,this.extractStyles_){const t=function(t,e,i,n,r){return function(s,o){let a=r,l="",h=[];if(a){const t=s.getGeometry();if(t)if(t instanceof Rm)h=t.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Point"===e||"MultiPoint"===e})),a=h.length>0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Dv||(Dv=document.createElement("textarea")),Dv.innerHTML=l,l=Dv.value));let c=i;if(t?c=t:e&&(c=Bv(e,i,n)),a){const t=function(t,e){const i=[0,0];let n="start";const r=t.getImage();if(r){const t=r.getSize();if(t&&2==t.length){const e=r.getScaleArray(),s=r.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),n="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||Ov.getFont()),s.setScale(s.getScale()||Ov.getScale()),s.setFill(s.getFill()||Ov.getFill()),s.setStroke(s.getStroke()||Mv)):s=Ov.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(n);return new of({image:r,text:s})}(c[0],l);if(h.length>0){t.setGeometry(new Rm(h));return[t,new of({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(t)}return delete i.Style,n.setProperties(i,!0),n}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const n=pS.call(this,t,e);if(n){let e,r=t.baseURI;if(r&&"about:blank"!=r||(r=window.location.href),r){e=new URL("#"+i,r).href}else e="#"+i;this.sharedStyles_[e]=n}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const n=Yv.call(this,t,e);if(!n)return;let r,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){r=new URL("#"+i,s).href}else r="#"+i;this.sharedStyles_[r]=n}readFeatureFromNode(t,e){if(!pv.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!pv.includes(t.namespaceURI))return[];let i;const n=t.localName;if("Document"==n||"Folder"==n)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==n){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){i=[];for(let n=t.firstElementChild;n;n=n.nextElementSibling){const t=this.readFeaturesFromNode(n,e);t&&u(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=Ju(t);return this.readNameFromDocument(e)}return Hu(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(pv.includes(e.namespaceURI)&&"name"==e.localName)return ax(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(pv.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=Ju(t);u(e,this.readNetworkLinksFromDocument(i))}else Hu(t)?u(e,this.readNetworkLinksFromDocument(t)):u(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&u(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(pv.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=ud({},yv,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!pv.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||u(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=Ju(t);u(e,this.readRegionFromDocument(i))}else Hu(t)?u(e,this.readRegionFromDocument(t)):u(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&u(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(pv.includes(i.namespaceURI)&&"Region"==i.localName){const t=ud({},vv,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!pv.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||u(e,this.readRegionFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=Yu(pv[4],"kml"),n="http://www.w3.org/2000/xmlns/";i.setAttributeNS(n,"xmlns:gx",fv[0]),i.setAttributeNS(n,"xmlns:xsi",Zu),i.setAttributeNS(Zu,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const r={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=Sv[i.namespaceURI],a=ld(s,o);return gd(r,wv,ad,a,[e],o,this),i}};const fw=[null],pw=hd(fw,{nd:function(t,e){e[e.length-1].ndrefs.push(t.getAttribute("ref"))},tag:yw}),mw=hd(fw,{node:function(t,e){const i=e[0],n=e[e.length-1],r=t.getAttribute("id"),s=[parseFloat(t.getAttribute("lon")),parseFloat(t.getAttribute("lat"))];n.nodes[r]=s;const o=ud({tags:{}},_w,t,e);if(!v(o.tags)){const t=new Hn(s);n_(t,!1,i);const e=new dt(t);void 0!==r&&e.setId(r),e.setProperties(o.tags,!0),n.features.push(e)}},way:function(t,e){const i=ud({id:t.getAttribute("id"),ndrefs:[],tags:{}},pw,t,e);e[e.length-1].ways.push(i)}});const _w=hd(fw,{tag:yw});function yw(t,e){e[e.length-1].tags[t.getAttribute("k")]=t.getAttribute("v")}var xw=class extends qy{constructor(){super(),this.dataProjection=Vi("EPSG:4326")}readFeaturesFromNode(t,e){if(e=this.getReadOptions(t,e),"osm"==t.localName){const i=ud({nodes:{},ways:[],features:[]},mw,t,[e]);for(let t=0;t<i.ways.length;t++){const n=i.ways[t],r=[];for(let t=0,e=n.ndrefs.length;t<e;t++){u(r,i.nodes[n.ndrefs[t]])}let s;s=n.ndrefs[0]==n.ndrefs[n.ndrefs.length-1]?new _r(r,"XY",[r.length]):new Mm(r,"XY"),n_(s,!1,e);const o=new dt(s);void 0!==n.id&&o.setId(n.id),o.setProperties(n.tags,!0),i.features.push(o)}if(i.features)return i.features}return[]}};var vw=class{read(t){if(!t)return null;if("string"==typeof t){const e=Ju(t);return this.readFromDocument(e)}return Hu(t)?this.readFromDocument(t):this.readFromNode(t)}readFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readFromNode(e);return null}readFromNode(t){}};function Sw(t){return t.getAttributeNS("http://www.w3.org/1999/xlink","href")}const ww=[null,"http://www.opengis.net/ows/1.1"],Tw=hd(ww,{ServiceIdentification:nd((function(t,e){return ud({},Nw,t,e)})),ServiceProvider:nd((function(t,e){return ud({},Dw,t,e)})),OperationsMetadata:nd((function(t,e){return ud({},Fw,t,e)}))});const Ew=hd(ww,{DeliveryPoint:nd(ax),City:nd(ax),AdministrativeArea:nd(ax),PostalCode:nd(ax),Country:nd(ax),ElectronicMailAddress:nd(ax)}),Cw=hd(ww,{Value:id((function(t,e){return ax(t)}))}),bw=hd(ww,{AllowedValues:nd((function(t,e){return ud({},Cw,t,e)}))}),Rw=hd(ww,{Phone:nd((function(t,e){return ud({},Mw,t,e)})),Address:nd((function(t,e){return ud({},Ew,t,e)}))}),Pw=hd(ww,{HTTP:nd((function(t,e){return ud({},Iw,t,e)}))}),Iw=hd(ww,{Get:id((function(t,e){const i=Sw(t);if(!i)return;return ud({href:i},Aw,t,e)})),Post:void 0}),Lw=hd(ww,{DCP:nd((function(t,e){return ud({},Pw,t,e)}))}),Fw=hd(ww,{Operation:function(t,e){const i=t.getAttribute("name"),n=ud({},Lw,t,e);if(!n)return;e[e.length-1][i]=n}}),Mw=hd(ww,{Voice:nd(ax),Facsimile:nd(ax)}),Aw=hd(ww,{Constraint:id((function(t,e){const i=t.getAttribute("name");if(!i)return;return ud({name:i},bw,t,e)}))}),Ow=hd(ww,{IndividualName:nd(ax),PositionName:nd(ax),ContactInfo:nd((function(t,e){return ud({},Rw,t,e)}))}),Nw=hd(ww,{Abstract:nd(ax),AccessConstraints:nd(ax),Fees:nd(ax),Title:nd(ax),ServiceTypeVersion:nd(ax),ServiceType:nd(ax)}),Dw=hd(ww,{ProviderName:nd(ax),ProviderSite:nd(Sw),ServiceContact:nd((function(t,e){return ud({},Ow,t,e)}))});var Gw=class extends vw{constructor(){super()}readFromNode(t){const e=ud({},Tw,t,[]);return e||null}};function kw(t,e,i){let n;i=i||1e5;const r=new Array(e);for(n=0;n<e;++n)r[n]=0;for(let i=0,s=t.length;i<s;)for(n=0;n<e;++n,++i){const e=t[i],s=e-r[n];r[n]=e,t[i]=s}return Bw(t,i)}function jw(t,e,i){let n;i=i||1e5;const r=new Array(e);for(n=0;n<e;++n)r[n]=0;const s=Uw(t,i);for(let t=0,i=s.length;t<i;)for(n=0;n<e;++n,++t)r[n]+=s[t],s[t]=r[n];return s}function Bw(t,e){e=e||1e5;for(let i=0,n=t.length;i<n;++i)t[i]=Math.round(t[i]*e);return zw(t)}function Uw(t,e){e=e||1e5;const i=Xw(t);for(let t=0,n=i.length;t<n;++t)i[t]/=e;return i}function zw(t){for(let e=0,i=t.length;e<i;++e){const i=t[e];t[e]=i<0?~(i<<1):i<<1}return Vw(t)}function Xw(t){const e=Ww(t);for(let t=0,i=e.length;t<i;++t){const i=e[t];e[t]=1&i?~(i>>1):i>>1}return e}function Vw(t){let e="";for(let i=0,n=t.length;i<n;++i)e+=Zw(t[i]);return e}function Ww(t){const e=[];let i=0,n=0;for(let r=0,s=t.length;r<s;++r){const s=t.charCodeAt(r)-63;i|=(31&s)<<n,s<32?(e.push(i),i=0,n=0):n+=5}return e}function Zw(t){let e,i="";for(;t>=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}var Yw=class extends lv{constructor(t){super(),t=t||{},this.dataProjection=Vi("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new dt(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=vn(this.geometryLayout_),n=jw(t,i,this.factor_);jy(n,0,n.length,i,n);const r=Un(n,0,n.length,i);return n_(new Mm(r,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();return i?this.writeGeometryText(i,e):(ht(!1,40),"")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=n_(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return jy(i,0,i.length,n,i),kw(i,n,this.factor_)}};const Kw={Point:function(t,e,i){const n=t.coordinates;e&&i&&Qw(n,e,i);return new Hn(n)},LineString:function(t,e){const i=qw(t.arcs,e);return new Mm(i)},Polygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n)i[n]=qw(t.arcs[n],e);return new _r(i)},MultiPoint:function(t,e,i){const n=t.coordinates;if(e&&i)for(let t=0,r=n.length;t<r;++t)Qw(n[t],e,i);return new Dm(n)},MultiLineString:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n)i[n]=qw(t.arcs[n],e);return new Om(i)},MultiPolygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n<r;++n){const r=t.arcs[n],s=[];for(let t=0,i=r.length;t<i;++t)s[t]=qw(r[t],e);i[n]=s}return new jm(i)}};function qw(t,e){const i=[];let n;for(let r=0,s=t.length;r<s;++r)if(n=t[r],r>0&&i.pop(),n>=0){const t=e[n];for(let e=0,n=t.length;e<n;++e)i.push(t[e].slice(0))}else{const t=e[~n];for(let e=t.length-1;e>=0;--e)i.push(t[e].slice(0))}return i}function Hw(t,e,i,n,r,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t<h;++t)l[t]=$w(a[t],e,i,n,r,s,o);return l}function $w(t,e,i,n,r,s,o){let a=null;const l=t.type;if(l){const r=Kw[l];a="Point"===l||"MultiPoint"===l?r(t,i,n):r(t,e),a=n_(a,!1,o)}const h=new dt({geometry:a});void 0!==t.id&&h.setId(t.id);let c=t.properties;return r&&(c||(c={}),c[r]=s),c&&h.setProperties(c,!0),h}function Jw(t,e,i){let n=0,r=0;for(let s=0,o=t.length;s<o;++s){const o=t[s];n+=o[0],r+=o[1],o[0]=n,o[1]=r,Qw(o,e,i)}}function Qw(t,e,i){t[0]=t[0]*e[0]+i[0],t[1]=t[1]*e[1]+i[1]}var tT=class extends Uy{constructor(t){super(),t=t||{},this.layerName_=t.layerName,this.layers_=t.layers?t.layers:null,this.dataProjection=Vi(t.dataProjection?t.dataProjection:"EPSG:4326")}readFeaturesFromObject(t,e){if("Topology"==t.type){const i=t;let n,r=null,s=null;i.transform&&(n=i.transform,r=n.scale,s=n.translate);const o=i.arcs;n&&function(t,e,i){for(let n=0,r=t.length;n<r;++n)Jw(t[n],e,i)}(o,r,s);const a=[],l=i.objects,h=this.layerName_;let c;for(const t in l)this.layers_&&!this.layers_.includes(t)||("GeometryCollection"===l[t].type?(c=l[t],a.push.apply(a,Hw(c,o,r,s,h,t,e))):(c=l[t],a.push($w(c,o,r,s,h,t,e))));return a}return[]}readProjectionFromObject(t){return this.dataProjection}};var eT=class{constructor(t){this.tagName_=t}getTagName(){return this.tagName_}};var iT=class extends eT{constructor(t,e){super(t),this.conditions=e,ht(this.conditions.length>=2,57)}};var nT=class extends iT{constructor(t){super("And",Array.prototype.slice.call(arguments))}};var rT=class extends eT{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}};var sT=class extends eT{constructor(t,e,i,n){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=n}};var oT=class extends sT{constructor(t,e,i){super("Contains",t,e,i)}};var aT=class extends sT{constructor(t,e,i,n,r){super("DWithin",t,e,r),this.distance=i,this.unit=n}};var lT=class extends sT{constructor(t,e,i){super("Disjoint",t,e,i)}};var hT=class extends eT{constructor(t,e){super(t),this.propertyName=e}};var cT=class extends hT{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}};var uT=class extends hT{constructor(t,e,i,n){super(t,e),this.expression=i,this.matchCase=n}};var dT=class extends uT{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}};var gT=class extends uT{constructor(t,e){super("PropertyIsGreaterThan",t,e)}};var fT=class extends uT{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}};var pT=class extends sT{constructor(t,e,i){super("Intersects",t,e,i)}};var mT=class extends hT{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}};var _T=class extends hT{constructor(t,e,i,n,r,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==r?r:"!",this.matchCase=s}};var yT=class extends hT{constructor(t){super("PropertyIsNull",t)}};var xT=class extends uT{constructor(t,e){super("PropertyIsLessThan",t,e)}};var vT=class extends uT{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}};var ST=class extends eT{constructor(t){super("Not"),this.condition=t}};var wT=class extends uT{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}};var TT=class extends iT{constructor(t){super("Or",Array.prototype.slice.call(arguments))}};var ET=class extends eT{constructor(t){super("ResourceId"),this.rid=t}};var CT=class extends sT{constructor(t,e,i){super("Within",t,e,i)}};function bT(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(nT,e))}function RT(t,e,i){return new rT(t,e,i)}const PT={"http://www.opengis.net/gml":{boundedBy:nd(Qy.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:td(Qy.prototype.readFeaturesInternal)}},IT={"http://www.opengis.net/wfs":{totalInserted:nd(sx),totalUpdated:nd(sx),totalDeleted:nd(sx)},"http://www.opengis.net/wfs/2.0":{totalInserted:nd(sx),totalUpdated:nd(sx),totalDeleted:nd(sx)}},LT={"http://www.opengis.net/wfs":{TransactionSummary:nd(UT,"transactionSummary"),InsertResults:nd(WT,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:nd(UT,"transactionSummary"),InsertResults:nd(WT,"insertIds")}},FT={"http://www.opengis.net/wfs":{PropertyName:rd(gx)},"http://www.opengis.net/wfs/2.0":{PropertyName:rd(gx)}},MT={"http://www.opengis.net/wfs":{Insert:rd(ZT),Update:rd(HT),Delete:rd(qT),Property:rd($T),Native:rd(JT)},"http://www.opengis.net/wfs/2.0":{Insert:rd(ZT),Update:rd(HT),Delete:rd(qT),Property:rd($T),Native:rd(JT)}},AT="feature",OT="http://www.w3.org/2000/xmlns/",NT={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},DT={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},GT={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},kT={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},jT={"2.0.0":Tx,"1.1.0":xx,"1.0.0":mx};function BT(t,e,i,n){gd(n,MT,od(t),e,i)}function UT(t,e){return ud({},IT,t,e)}const zT={"http://www.opengis.net/ogc":{FeatureId:td((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:td((function(t,e){return t.getAttribute("fid")}))}};function XT(t,e){cd(zT,t,e)}const VT={"http://www.opengis.net/wfs":{Feature:XT},"http://www.opengis.net/wfs/2.0":{Feature:XT}};function WT(t,e){return ud([],VT,t,e)}function ZT(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o=n.gmlVersion,a=Yu(s,r);t.appendChild(a),2===o?mx.prototype.writeFeatureElement(a,e,i):3===o?xx.prototype.writeFeatureElement(a,e,i):Tx.prototype.writeFeatureElement(a,e,i)}function YT(t,e,i){const n=i[i.length-1].version,r=NT[n],s=Yu(r,"Filter"),o=Yu(r,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function KT(t,e){const i=(t=t||AT)+":";return e.startsWith(i)?e:i+e}function qT(t,e,i){const n=i[i.length-1];ht(void 0!==e.getId(),26);const r=n.featureType,s=n.featurePrefix,o=n.featureNS,a=KT(s,r);t.setAttribute("typeName",a),t.setAttributeNS(OT,"xmlns:"+s,o);const l=e.getId();void 0!==l&&YT(t,l,i)}function HT(t,e,i){const n=i[i.length-1];ht(void 0!==e.getId(),27);const r=n.version,s=n.featureType,o=n.featurePrefix,a=n.featureNS,l=KT(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(OT,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t<i;t++){const i=e.get(s[t]);if(void 0!==i){let e=s[t];i&&"function"==typeof i.getSimplifiedGeometry&&(e=h),o.push({name:e,value:i})}}gd({version:r,gmlVersion:n.gmlVersion,node:t,hasZ:n.hasZ,srsName:n.srsName},MT,od("Property"),o,i),YT(t,c,i)}}function $T(t,e,i){const n=i[i.length-1],r=n.version,s=DT[r],o=Yu(s,"Name"),a=n.gmlVersion;if(t.appendChild(o),gx(o,e.name),void 0!==e.value&&null!==e.value){const n=Yu(s,"Value");t.appendChild(n),e.value&&"function"==typeof e.value.getSimplifiedGeometry?2===a?mx.prototype.writeGeometryElement(n,e.value,i):3===a?xx.prototype.writeGeometryElement(n,e.value,i):Tx.prototype.writeGeometryElement(n,e.value,i):gx(n,e.value)}}function JT(t,e,i){e.vendorId&&t.setAttribute("vendorId",e.vendorId),void 0!==e.safeToIgnore&&t.setAttribute("safeToIgnore",String(e.safeToIgnore)),void 0!==e.value&&gx(t,e.value)}const QT={"http://www.opengis.net/wfs":{Query:rd(tE)},"http://www.opengis.net/wfs/2.0":{Query:rd(tE)},"http://www.opengis.net/ogc":{During:rd(sE),And:rd(oE),Or:rd(oE),Not:rd(aE),BBOX:rd(iE),Contains:rd(nE),Intersects:rd(nE),Within:rd(nE),DWithin:rd(rE),PropertyIsEqualTo:rd(lE),PropertyIsNotEqualTo:rd(lE),PropertyIsLessThan:rd(lE),PropertyIsLessThanOrEqualTo:rd(lE),PropertyIsGreaterThan:rd(lE),PropertyIsGreaterThanOrEqualTo:rd(lE),PropertyIsNull:rd(hE),PropertyIsBetween:rd(cE),PropertyIsLike:rd(uE)},"http://www.opengis.net/fes/2.0":{During:rd(sE),And:rd(oE),Or:rd(oE),Not:rd(aE),BBOX:rd(iE),Contains:rd(nE),Disjoint:rd(nE),Intersects:rd(nE),ResourceId:rd((function(t,e,i){t.setAttribute("rid",e.rid)})),Within:rd(nE),DWithin:rd(rE),PropertyIsEqualTo:rd(lE),PropertyIsNotEqualTo:rd(lE),PropertyIsLessThan:rd(lE),PropertyIsLessThanOrEqualTo:rd(lE),PropertyIsGreaterThan:rd(lE),PropertyIsGreaterThanOrEqualTo:rd(lE),PropertyIsNull:rd(hE),PropertyIsBetween:rd(cE),PropertyIsLike:rd(uE)}};function tE(t,e,i){const n=i[i.length-1],r=n.version,s=n.featurePrefix,o=n.featureNS,a=n.propertyNames,l=n.srsName;let h,c;h=s?KT(s,e):e,c="2.0.0"===r?"typeNames":"typeName",t.setAttribute(c,h),l&&t.setAttribute("srsName",l),o&&t.setAttributeNS(OT,"xmlns:"+s,o);const u=Object.assign({},n);u.node=t,gd(u,FT,od("PropertyName"),a,i);const d=n.filter;if(d){const e=Yu(_E(r),"Filter");t.appendChild(e),eE(e,d,i)}}function eE(t,e,i){const n=i[i.length-1],r={node:t};Object.assign(r,{context:n}),gd(r,QT,od(e.getTagName()),[e],i)}function iE(t,e,i){const n=i[i.length-1],r=n.context.version;n.srsName=e.srsName;const s=jT[r];fE(r,t,e.geometryName),s.prototype.writeGeometryElement(t,e.extent,i)}function nE(t,e,i){const n=i[i.length-1],r=n.context.version;n.srsName=e.srsName;const s=jT[r];fE(r,t,e.geometryName),s.prototype.writeGeometryElement(t,e.geometry,i)}function rE(t,e,i){const n=i[i.length-1].context.version;nE(t,e,i);const r=Yu(_E(n),"Distance");gx(r,e.distance.toString()),"2.0.0"===n?r.setAttribute("uom",e.unit):r.setAttribute("units",e.unit),t.appendChild(r)}function sE(t,e,i){const n=i[i.length-1].context.version;dE(GT[n],"ValueReference",t,e.propertyName);const r=Yu(Hy,"TimePeriod");t.appendChild(r);const s=Yu(Hy,"begin");r.appendChild(s),pE(s,e.begin);const o=Yu(Hy,"end");r.appendChild(o),pE(o,e.end)}function oE(t,e,i){const n=i[i.length-1].context,r={node:t};Object.assign(r,{context:n});const s=e.conditions;for(let t=0,e=s.length;t<e;++t){const e=s[t];gd(r,QT,od(e.getTagName()),[e],i)}}function aE(t,e,i){const n=i[i.length-1].context,r={node:t};Object.assign(r,{context:n});const s=e.condition;gd(r,QT,od(s.getTagName()),[s],i)}function lE(t,e,i){const n=i[i.length-1].context.version;void 0!==e.matchCase&&t.setAttribute("matchCase",e.matchCase.toString()),fE(n,t,e.propertyName),gE(n,t,""+e.expression)}function hE(t,e,i){fE(i[i.length-1].context.version,t,e.propertyName)}function cE(t,e,i){const n=i[i.length-1].context.version,r=_E(n);fE(n,t,e.propertyName);const s=Yu(r,"LowerBoundary");t.appendChild(s),gE(n,s,""+e.lowerBoundary);const o=Yu(r,"UpperBoundary");t.appendChild(o),gE(n,o,""+e.upperBoundary)}function uE(t,e,i){const n=i[i.length-1].context.version;t.setAttribute("wildCard",e.wildCard),t.setAttribute("singleChar",e.singleChar),t.setAttribute("escapeChar",e.escapeChar),void 0!==e.matchCase&&t.setAttribute("matchCase",e.matchCase.toString()),fE(n,t,e.propertyName),gE(n,t,""+e.pattern)}function dE(t,e,i,n){const r=Yu(t,e);gx(r,n),i.appendChild(r)}function gE(t,e,i){dE(_E(t),"Literal",e,i)}function fE(t,e,i){"2.0.0"===t?dE(GT[t],"ValueReference",e,i):dE(NT[t],"PropertyName",e,i)}function pE(t,e){const i=Yu(Hy,"TimeInstant");t.appendChild(i);const n=Yu(Hy,"timePosition");i.appendChild(n),gx(n,e)}function mE(t,e,i){const n=i[i.length-1],r=Object.assign({},n);r.node=t,gd(r,QT,od("Query"),e,i)}function _E(t){let e;return e="2.0.0"===t?GT[t]:NT[t],e}var yE=class extends qy{constructor(t){super(),t=t||{},this.version_=t.version?t.version:"1.1.0",this.featureType_=t.featureType,this.featureNS_=t.featureNS,this.gmlFormat_=t.gmlFormat?t.gmlFormat:new jT[this.version_],this.schemaLocation_=t.schemaLocation?t.schemaLocation:kT[this.version_]}getFeatureType(){return this.featureType_}setFeatureType(t){this.featureType_=t}readFeaturesFromNode(t,e){const i={node:t};Object.assign(i,{featureType:this.featureType_,featureNS:this.featureNS_}),Object.assign(i,this.getReadOptions(t,e||{}));const n=[i];let r;r="2.0.0"===this.version_?PT:this.gmlFormat_.FEATURE_COLLECTION_PARSERS;let s=ud([],r,t,n,this.gmlFormat_);return s||(s=[]),s}readTransactionResponse(t){if(t){if("string"==typeof t){const e=Ju(t);return this.readTransactionResponseFromDocument(e)}return Hu(t)?this.readTransactionResponseFromDocument(t):this.readTransactionResponseFromNode(t)}}readFeatureCollectionMetadata(t){if(t){if("string"==typeof t){const e=Ju(t);return this.readFeatureCollectionMetadataFromDocument(e)}return Hu(t)?this.readFeatureCollectionMetadataFromDocument(t):this.readFeatureCollectionMetadataFromNode(t)}}readFeatureCollectionMetadataFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readFeatureCollectionMetadataFromNode(e)}readFeatureCollectionMetadataFromNode(t){const e={},i=ox(t.getAttribute("numberOfFeatures"));return e.numberOfFeatures=i,ud(e,PT,t,[],this.gmlFormat_)}readTransactionResponseFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readTransactionResponseFromNode(e)}readTransactionResponseFromNode(t){return ud({},LT,t,[])}writeGetFeature(t){const e=Yu(DT[this.version_],"GetFeature");e.setAttribute("service","WFS"),e.setAttribute("version",this.version_),t.handle&&e.setAttribute("handle",t.handle),t.outputFormat&&e.setAttribute("outputFormat",t.outputFormat),void 0!==t.maxFeatures&&e.setAttribute("maxFeatures",String(t.maxFeatures)),t.resultType&&e.setAttribute("resultType",t.resultType),void 0!==t.startIndex&&e.setAttribute("startIndex",String(t.startIndex)),void 0!==t.count&&e.setAttribute("count",String(t.count)),void 0!==t.viewParams&&e.setAttribute("viewParams",t.viewParams),e.setAttributeNS(Zu,"xsi:schemaLocation",this.schemaLocation_);const i={node:e};if(Object.assign(i,{version:this.version_,srsName:t.srsName,featureNS:t.featureNS?t.featureNS:this.featureNS_,featurePrefix:t.featurePrefix,propertyNames:t.propertyNames?t.propertyNames:[]}),ht(Array.isArray(t.featureTypes),11),"string"==typeof t.featureTypes[0]){let n=t.filter;t.bbox&&(ht(t.geometryName,12),n=this.combineBboxAndFilter(t.geometryName,t.bbox,t.srsName,n)),Object.assign(i,{geometryName:t.geometryName,filter:n}),mE(e,t.featureTypes,[i])}else t.featureTypes.forEach((n=>{const r=this.combineBboxAndFilter(n.geometryName,n.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:n.geometryName,filter:r}),mE(e,[n.name],[i])}));return e}combineBboxAndFilter(t,e,i,n){const r=RT(t,e,i);return n?bT(n,r):r}writeTransaction(t,e,i,n){const r=[],s=n.version?n.version:this.version_,o=Yu(DT[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),n&&(a=n.gmlOptions?n.gmlOptions:{},n.handle&&o.setAttribute("handle",n.handle)),o.setAttributeNS(Zu,"xsi:schemaLocation",kT[s]);const l=function(t,e,i,n){const r=n.featurePrefix?n.featurePrefix:AT;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);return Object.assign({node:t},{version:i,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:r,gmlVersion:s,hasZ:n.hasZ,srsName:n.srsName},e)}(o,a,s,n);return t&&BT("Insert",t,r,l),e&&BT("Update",e,r,l),i&&BT("Delete",i,r,l),n.nativeElements&&BT("Native",n.nativeElements,r,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),Vi(t.pop().srsName)}return null}};const xE=1,vE=2,SE=3,wE=4,TE=5,EE=6,CE=7,bE=15,RE=16,PE=17;class IE{constructor(t){this.view_=t,this.pos_=0,this.initialized_=!1,this.isLittleEndian_=!1,this.hasZ_=!1,this.hasM_=!1,this.srid_=null,this.layout_="XY"}readUint8(){return this.view_.getUint8(this.pos_++)}readUint32(t){return this.view_.getUint32((this.pos_+=4)-4,void 0!==t?t:this.isLittleEndian_)}readDouble(t){return this.view_.getFloat64((this.pos_+=8)-8,void 0!==t?t:this.isLittleEndian_)}readPoint(){const t=[];return t.push(this.readDouble()),t.push(this.readDouble()),this.hasZ_&&t.push(this.readDouble()),this.hasM_&&t.push(this.readDouble()),t}readLineString(){const t=this.readUint32(),e=[];for(let i=0;i<t;i++)e.push(this.readPoint());return e}readPolygon(){const t=this.readUint32(),e=[];for(let i=0;i<t;i++)e.push(this.readLineString());return e}readWkbHeader(t){const e=this.readUint8()>0,i=this.readUint32(e),n=Math.floor((268435455&i)/1e3),r=Boolean(2147483648&i)||1===n||3===n,s=Boolean(1073741824&i)||2===n||3===n,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",r?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=r,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case xE:return this.readPoint();case vE:return this.readLineString();case SE:case PE:return this.readPolygon();case wE:return this.readMultiPoint();case TE:return this.readMultiLineString();case EE:case bE:case RE:return this.readMultiPolygon();case CE:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),n=[];for(let r=0;r<i;r++){const i=t.call(this,e);i&&n.push(i)}return n}readMultiPoint(){return this.readWkbCollection(this.readWkbBlock,xE)}readMultiLineString(){return this.readWkbCollection(this.readWkbBlock,vE)}readMultiPolygon(){return this.readWkbCollection(this.readWkbBlock,SE)}readGeometryCollection(){return this.readWkbCollection(this.readGeometry)}readGeometry(){const t=this.readWkbHeader(),e=this.readWkbPayload(t);switch(t){case xE:return new Hn(e,this.layout_);case vE:return new Mm(e,this.layout_);case SE:case PE:return new _r(e,this.layout_);case wE:return new Dm(e,this.layout_);case TE:return new Om(e,this.layout_);case EE:case bE:case RE:return new jm(e,this.layout_);case CE:return new Rm(e);default:return null}}getSrid(){return this.srid_}}class LE{constructor(t){t=t||{},this.layout_=t.layout,this.isLittleEndian_=!1!==t.littleEndian,this.isEWKB_=!1!==t.ewkb,this.writeQueue_=[],this.nodata_=Object.assign({X:0,Y:0,Z:0,M:0},t.nodata)}writeUint8(t){this.writeQueue_.push([1,t])}writeUint32(t){this.writeQueue_.push([4,t])}writeDouble(t){this.writeQueue_.push([8,t])}writePoint(t,e){const i=Object.assign.apply(null,e.split("").map(((e,i)=>({[e]:t[i]}))));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writePoint(t[i],e)}writePolygon(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeLineString(t[i],e)}writeWkbHeader(t,e){t%=1e3,this.layout_.includes("Z")&&(t+=this.isEWKB_?2147483648:1e3),this.layout_.includes("M")&&(t+=this.isEWKB_?1073741824:2e3),this.isEWKB_&&Number.isInteger(e)&&(t|=536870912),this.writeUint8(this.isLittleEndian_?1:0),this.writeUint32(t),this.isEWKB_&&Number.isInteger(e)&&this.writeUint32(e)}writeMultiPoint(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(1),this.writePoint(t[i],e)}writeMultiLineString(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(2),this.writeLineString(t[i],e)}writeMultiPolygon(t,e){this.writeUint32(t.length);for(let i=0;i<t.length;i++)this.writeWkbHeader(3),this.writePolygon(t[i],e)}writeGeometryCollection(t){this.writeUint32(t.length);for(let e=0;e<t.length;e++)this.writeGeometry(t[e])}findMinimumLayout(t,e="XYZM"){if(t instanceof wn)return(i=t.getLayout())===(n=e)?i:"XYZM"===i?n:"XYZM"===n?i:"XY";var i,n;if(t instanceof Rm){const i=t.getGeometriesArray();for(let t=0;t<i.length&&"XY"!==e;t++)e=this.findMinimumLayout(i[t],e)}return e}writeGeometry(t,e){const i={Point:xE,LineString:vE,Polygon:SE,MultiPoint:wE,MultiLineString:TE,MultiPolygon:EE,GeometryCollection:CE},n=t.getType(),r=i[n];if(!r)throw new Error("GeometryType "+n+" is not supported");if(this.layout_||(this.layout_=this.findMinimumLayout(t)),this.writeWkbHeader(r,e),t instanceof wn){({Point:this.writePoint,LineString:this.writeLineString,Polygon:this.writePolygon,MultiPoint:this.writeMultiPoint,MultiLineString:this.writeMultiLineString,MultiPolygon:this.writeMultiPolygon})[n].call(this,t.getCoordinates(),t.getLayout())}else t instanceof Rm&&this.writeGeometryCollection(t.getGeometriesArray())}getBuffer(){const t=this.writeQueue_.reduce(((t,e)=>t+e[0]),0),e=new ArrayBuffer(t),i=new DataView(e);let n=0;return this.writeQueue_.forEach((t=>{switch(t[0]){case 1:i.setUint8(n,t[1]);break;case 4:i.setUint32(n,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(n,t[1],this.isLittleEndian_)}n+=t[0]})),e}}function FE(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;i<t.length/2;i++)e[i]=parseInt(t.substr(2*i,2),16);return new DataView(e.buffer)}(t):ArrayBuffer.isView(t)?t instanceof DataView?t:new DataView(t.buffer,t.byteOffset,t.byteLength):t instanceof ArrayBuffer?new DataView(t):null}var ME=class extends i_{constructor(t){super(),t=t||{},this.splitCollection=Boolean(t.splitCollection),this.viewCache_=null,this.hex_=!1!==t.hex,this.littleEndian_=!1!==t.littleEndian,this.ewkb_=!1!==t.ewkb,this.layout_=t.geometryLayout,this.nodataZ_=t.nodataZ||0,this.nodataM_=t.nodataM||0,this.srid_=t.srid}getType(){return this.hex_?"text":"arraybuffer"}readFeature(t,e){return new dt({geometry:this.readGeometry(t,e)})}readFeatures(t,e){let i=[];const n=this.readGeometry(t,e);return i=this.splitCollection&&n instanceof Rm?n.getGeometriesArray():[n],i.map((t=>new dt({geometry:t})))}readGeometry(t,e){const i=FE(t);if(!i)return null;const n=new IE(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,n_(n,!1,e)}readProjection(t){const e=this.viewCache_||FE(t);if(!e)return;const i=new IE(e);return i.readWkbHeader(),i.getSrid()&&Vi("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new Rm(t.map((t=>t.getGeometry()))),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new LE({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let n=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&Vi(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(n=Number(e.substring(5)))}}i.writeGeometry(n_(t,!0,e),n);const r=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map((t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase())).join("")}(r):r}};const AE={POINT:Hn,LINESTRING:Mm,POLYGON:_r,MULTIPOINT:Dm,MULTILINESTRING:Om,MULTIPOLYGON:jm},OE="EMPTY",NE=0,DE=1,GE=2,kE=3,jE=4,BE=5,UE=6,zE={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class XE{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,n=t;if("("==t)i=GE;else if(","==t)i=BE;else if(")"==t)i=kE;else if(this.isNumeric_(t)||"-"==t)i=jE,n=this.readNumber_();else if(this.isAlpha_(t))i=DE,n=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=UE}return{position:e,value:n,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,n=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class VE{constructor(t){this.lexer_=t,this.token_={position:0,type:NE},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(DE)){const i=e.value;"Z"===i?t="XYZ":"M"===i?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(GE)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(BE));if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(GE)){const t=this.parsePoint_();if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(GE)){const t=this.parsePointList_();if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(GE)){const t=this.parseLineStringTextList_();if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(GE)){let t;if(t=this.token_.type==GE?this.parsePointTextList_():this.parsePointList_(),this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(GE)){const t=this.parseLineStringTextList_();if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(GE)){const t=this.parsePolygonTextList_();if(this.match(kE))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i<e;++i){const e=this.token_;if(!this.match(jE))break;t.push(e.value)}if(t.length==e)return t;throw new Error(this.formatErrorMessage_())}parsePointList_(){const t=[this.parsePoint_()];for(;this.match(BE);)t.push(this.parsePoint_());return t}parsePointTextList_(){const t=[this.parsePointText_()];for(;this.match(BE);)t.push(this.parsePointText_());return t}parseLineStringTextList_(){const t=[this.parseLineStringText_()];for(;this.match(BE);)t.push(this.parseLineStringText_());return t}parsePolygonTextList_(){const t=[this.parsePolygonText_()];for(;this.match(BE);)t.push(this.parsePolygonText_());return t}isEmptyGeometry_(){const t=this.isTokenType(DE)&&this.token_.value==OE;return t&&this.consume_(),t}formatErrorMessage_(){return"Unexpected `"+this.token_.value+"` at position "+this.token_.position+" in `"+this.lexer_.wkt+"`"}parseGeometry_(){const t=this.token_;if(this.match(DE)){const e=t.value;this.layout_=this.parseGeometryLayout_();const i=this.isEmptyGeometry_();if("GEOMETRYCOLLECTION"==e){if(i)return new Rm([]);const t=this.parseGeometryCollectionText_();return new Rm(t)}const n=AE[e];if(!n)throw new Error("Invalid geometry type: "+e);let r;if(i)r="POINT"==e?[NaN,NaN]:[];else switch(e){case"POINT":r=this.parsePointText_();break;case"LINESTRING":r=this.parseLineStringText_();break;case"POLYGON":r=this.parsePolygonText_();break;case"MULTIPOINT":r=this.parseMultiPointText_();break;case"MULTILINESTRING":r=this.parseMultiLineStringText_();break;case"MULTIPOLYGON":r=this.parseMultiPolygonText_()}return new n(r,this.layout_)}throw new Error(this.formatErrorMessage_())}}function WE(t){const e=t.getCoordinates();return 0===e.length?"":e.join(" ")}function ZE(t){const e=t.getCoordinates(),i=[];for(let t=0,n=e.length;t<n;++t)i.push(e[t].join(" "));return i.join(",")}function YE(t){const e=[],i=t.getLinearRings();for(let t=0,n=i.length;t<n;++t)e.push("("+ZE(i[t])+")");return e.join(",")}const KE={Point:WE,LineString:ZE,Polygon:YE,MultiPoint:function(t){const e=[],i=t.getPoints();for(let t=0,n=i.length;t<n;++t)e.push("("+WE(i[t])+")");return e.join(",")},MultiLineString:function(t){const e=[],i=t.getLineStrings();for(let t=0,n=i.length;t<n;++t)e.push("("+ZE(i[t])+")");return e.join(",")},MultiPolygon:function(t){const e=[],i=t.getPolygons();for(let t=0,n=i.length;t<n;++t)e.push("("+YE(i[t])+")");return e.join(",")},GeometryCollection:function(t){const e=[],i=t.getGeometries();for(let t=0,n=i.length;t<n;++t)e.push(qE(i[t]));return e.join(",")}};function qE(t){const e=t.getType(),i=(0,KE[e])(t);let n=zE[e];if("function"==typeof t.getFlatCoordinates){const e=function(t){const e=t.getLayout();let i="";return"XYZ"!==e&&"XYZM"!==e||(i+="Z"),"XYM"!==e&&"XYZM"!==e||(i+="M"),i}(t);e.length>0&&(n+=" "+e)}return 0===i.length?n+" "+OE:n+"("+i+")"}var HE=class extends lv{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new XE(t);return new VE(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),n=new dt;return n.setGeometry(i),n}readFeaturesFromText(t,e){let i=[];const n=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==n.getType()?n.getGeometriesArray():[n];const r=[];for(let t=0,e=i.length;t<e;++t){const e=new dt;e.setGeometry(i[t]),r.push(e)}return r}readGeometryFromText(t,e){return n_(this.parse_(t),!1,e)}writeFeatureText(t,e){const i=t.getGeometry();return i?this.writeGeometryText(i,e):""}writeFeaturesText(t,e){if(1==t.length)return this.writeFeatureText(t[0],e);const i=[];for(let e=0,n=t.length;e<n;++e)i.push(t[e].getGeometry());const n=new Rm(i);return this.writeGeometryText(n,e)}writeGeometryText(t,e){return qE(n_(t,!0,e))}};const $E=[null,"http://www.opengis.net/wms"],JE=hd($E,{Service:nd((function(t,e){return ud({},tC,t,e)})),Capability:nd((function(t,e){return ud({},QE,t,e)}))}),QE=hd($E,{Request:nd((function(t,e){return ud({},lC,t,e)})),Exception:nd((function(t,e){return ud([],rC,t,e)})),Layer:nd((function(t,e){const i=ud({},sC,t,e);if(void 0===i.Layer)return Object.assign(i,pC(t,e));return i}))});const tC=hd($E,{Name:nd(ax),Title:nd(ax),Abstract:nd(ax),KeywordList:nd(xC),OnlineResource:nd(Sw),ContactInformation:nd((function(t,e){return ud({},eC,t,e)})),Fees:nd(ax),AccessConstraints:nd(ax),LayerLimit:nd(sx),MaxWidth:nd(sx),MaxHeight:nd(sx)}),eC=hd($E,{ContactPersonPrimary:nd((function(t,e){return ud({},iC,t,e)})),ContactPosition:nd(ax),ContactAddress:nd((function(t,e){return ud({},nC,t,e)})),ContactVoiceTelephone:nd(ax),ContactFacsimileTelephone:nd(ax),ContactElectronicMailAddress:nd(ax)}),iC=hd($E,{ContactPerson:nd(ax),ContactOrganization:nd(ax)}),nC=hd($E,{AddressType:nd(ax),Address:nd(ax),City:nd(ax),StateOrProvince:nd(ax),PostCode:nd(ax),Country:nd(ax)}),rC=hd($E,{Format:td(ax)}),sC=hd($E,{Name:nd(ax),Title:nd(ax),Abstract:nd(ax),KeywordList:nd(xC),CRS:id(ax),EX_GeographicBoundingBox:nd((function(t,e){const i=ud({},aC,t,e);if(!i)return;const n=i.westBoundLongitude,r=i.southBoundLatitude,s=i.eastBoundLongitude,o=i.northBoundLatitude;if(void 0===n||void 0===r||void 0===s||void 0===o)return;return[n,r,s,o]})),BoundingBox:id((function(t,e){const i=[rx(t.getAttribute("minx")),rx(t.getAttribute("miny")),rx(t.getAttribute("maxx")),rx(t.getAttribute("maxy"))],n=[rx(t.getAttribute("resx")),rx(t.getAttribute("resy"))];return{crs:t.getAttribute("CRS"),extent:i,res:n}})),Dimension:id((function(t,e){return{name:t.getAttribute("name"),units:t.getAttribute("units"),unitSymbol:t.getAttribute("unitSymbol"),default:t.getAttribute("default"),multipleValues:ex(t.getAttribute("multipleValues")),nearestValue:ex(t.getAttribute("nearestValue")),current:ex(t.getAttribute("current")),values:ax(t)}})),Attribution:nd((function(t,e){return ud({},oC,t,e)})),AuthorityURL:id((function(t,e){const i=mC(t,e);if(i)return i.name=t.getAttribute("name"),i;return})),Identifier:id(ax),MetadataURL:id((function(t,e){const i=mC(t,e);if(i)return i.type=t.getAttribute("type"),i;return})),DataURL:id(mC),FeatureListURL:id(mC),Style:id((function(t,e){return ud({},dC,t,e)})),MinScaleDenominator:nd(nx),MaxScaleDenominator:nd(nx),Layer:id(pC)}),oC=hd($E,{Title:nd(ax),OnlineResource:nd(Sw),LogoURL:nd(yC)}),aC=hd($E,{westBoundLongitude:nd(nx),eastBoundLongitude:nd(nx),southBoundLatitude:nd(nx),northBoundLatitude:nd(nx)}),lC=hd($E,{GetCapabilities:nd(_C),GetMap:nd(_C),GetFeatureInfo:nd(_C)}),hC=hd($E,{Format:id(ax),DCPType:id((function(t,e){return ud({},cC,t,e)}))}),cC=hd($E,{HTTP:nd((function(t,e){return ud({},uC,t,e)}))}),uC=hd($E,{Get:nd(mC),Post:nd(mC)}),dC=hd($E,{Name:nd(ax),Title:nd(ax),Abstract:nd(ax),LegendURL:id(yC),StyleSheetURL:nd(mC),StyleURL:nd(mC)}),gC=hd($E,{Format:nd(ax),OnlineResource:nd(Sw)}),fC=hd($E,{Keyword:td(ax)});function pC(t,e){const i=e[e.length-1],n=ud({},sC,t,e);if(!n)return;let r=ex(t.getAttribute("queryable"));void 0===r&&(r=i.queryable),n.queryable=void 0!==r&&r;let s=ox(t.getAttribute("cascaded"));void 0===s&&(s=i.cascaded),n.cascaded=s;let o=ex(t.getAttribute("opaque"));void 0===o&&(o=i.opaque),n.opaque=void 0!==o&&o;let a=ex(t.getAttribute("noSubsets"));void 0===a&&(a=i.noSubsets),n.noSubsets=void 0!==a&&a;let l=rx(t.getAttribute("fixedWidth"));l||(l=i.fixedWidth),n.fixedWidth=l;let h=rx(t.getAttribute("fixedHeight"));h||(h=i.fixedHeight),n.fixedHeight=h;["Style","CRS","AuthorityURL"].forEach((function(t){if(t in i){const e=n[t]||[];n[t]=e.concat(i[t])}}));return["EX_GeographicBoundingBox","BoundingBox","Dimension","Attribution","MinScaleDenominator","MaxScaleDenominator"].forEach((function(t){if(!(t in n)){const e=i[t];n[t]=e}})),n}function mC(t,e){return ud({},gC,t,e)}function _C(t,e){return ud({},hC,t,e)}function yC(t,e){const i=mC(t,e);if(i){const e=[ox(t.getAttribute("width")),ox(t.getAttribute("height"))];return i.size=e,i}}function xC(t,e){return ud([],fC,t,e)}var vC=class extends vw{constructor(){super(),this.version=void 0}readFromNode(t){this.version=t.getAttribute("version").trim();const e=ud({version:this.version},JE,t,[]);return e||null}};var SC=class extends qy{constructor(t){super(),t=t||{},this.featureNS_="http://mapserver.gis.umn.edu/mapserver",this.gmlFormat_=new mx,this.layers_=t.layers?t.layers:null}getLayers(){return this.layers_}setLayers(t){this.layers_=t}readFeatures_(t,e){t.setAttribute("namespaceURI",this.featureNS_);const i=t.localName;let n=[];if(0===t.childNodes.length)return n;if("msGMLOutput"==i)for(let i=0,r=t.childNodes.length;i<r;i++){const r=t.childNodes[i];if(r.nodeType!==Node.ELEMENT_NODE)continue;const s=r,o=e[0],a="_layer",l=s.localName.replace(a,"");if(this.layers_&&!this.layers_.includes(l))continue;const h=l+"_feature";o.featureType=h,o.featureNS=this.featureNS_;const c={};c[h]=td(this.gmlFormat_.readFeatureElement,this.gmlFormat_);const d=hd([o.featureNS,null],c);s.setAttribute("namespaceURI",this.featureNS_);const g=ud([],d,s,e,this.gmlFormat_);g&&u(n,g)}if("FeatureCollection"==i){const e=ud([],this.gmlFormat_.FEATURE_COLLECTION_PARSERS,t,[{}],this.gmlFormat_);e&&(n=e)}return n}readFeaturesFromNode(t,e){const i={};return e&&Object.assign(i,this.getReadOptions(t,e)),this.readFeatures_(t,[i])}};const wC=[null,"http://www.opengis.net/wmts/1.0"],TC=[null,"http://www.opengis.net/ows/1.1"],EC=hd(wC,{Contents:nd((function(t,e){return ud({},CC,t,e)}))});const CC=hd(wC,{Layer:id((function(t,e){return ud({},bC,t,e)})),TileMatrixSet:id((function(t,e){return ud({},AC,t,e)}))}),bC=hd(wC,{Style:id((function(t,e){const i=ud({},RC,t,e);if(!i)return;const n="true"===t.getAttribute("isDefault");return i.isDefault=n,i})),Format:id(ax),TileMatrixSetLink:id((function(t,e){return ud({},PC,t,e)})),Dimension:id((function(t,e){return ud({},FC,t,e)})),ResourceURL:id((function(t,e){const i=t.getAttribute("format"),n=t.getAttribute("template"),r=t.getAttribute("resourceType"),s={};i&&(s.format=i);n&&(s.template=n);r&&(s.resourceType=r);return s}))},hd(TC,{Title:nd(ax),Abstract:nd(ax),WGS84BoundingBox:nd(NC),Identifier:nd(ax)})),RC=hd(wC,{LegendURL:id((function(t,e){const i={};return i.format=t.getAttribute("format"),i.href=Sw(t),i}))},hd(TC,{Title:nd(ax),Identifier:nd(ax)})),PC=hd(wC,{TileMatrixSet:nd(ax),TileMatrixSetLimits:nd((function(t,e){return ud([],IC,t,e)}))}),IC=hd(wC,{TileMatrixLimits:td((function(t,e){return ud({},LC,t,e)}))}),LC=hd(wC,{TileMatrix:nd(ax),MinTileRow:nd(sx),MaxTileRow:nd(sx),MinTileCol:nd(sx),MaxTileCol:nd(sx)}),FC=hd(wC,{Default:nd(ax),Value:id(ax)},hd(TC,{Identifier:nd(ax)})),MC=hd(TC,{LowerCorner:td(DC),UpperCorner:td(DC)}),AC=hd(wC,{WellKnownScaleSet:nd(ax),TileMatrix:id((function(t,e){return ud({},OC,t,e)}))},hd(TC,{SupportedCRS:nd(ax),Identifier:nd(ax),BoundingBox:nd(NC)})),OC=hd(wC,{TopLeftCorner:nd(DC),ScaleDenominator:nd(nx),TileWidth:nd(sx),TileHeight:nd(sx),MatrixWidth:nd(sx),MatrixHeight:nd(sx)},hd(TC,{Identifier:nd(ax)}));function NC(t,e){const i=ud([],MC,t,e);if(2==i.length)return Wt(i)}function DC(t,e){const i=ax(t).split(/\s+/);if(!i||2!=i.length)return;const n=+i[0],r=+i[1];return isNaN(n)||isNaN(r)?void 0:[n,r]}var GC=class extends vw{constructor(){super(),this.owsParser_=new Gw}readFromNode(t){let e=t.getAttribute("version");e&&(e=e.trim());let i=this.owsParser_.readFromNode(t);return i?(i.version=e,i=ud(i,EC,t,[]),i||null):null}};const kC=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"],jC="enterfullscreen",BC="leavefullscreen";function UC(t){const e=t.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&t.fullscreenEnabled)}function zC(t){return!(!t.webkitIsFullScreen&&!t.fullscreenElement)}function XC(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()}var VC=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.on,this.once,this.un,this.keys_=void 0!==t.keys&&t.keys,this.source_=t.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==t.className?t.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==t.activeClassName?t.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==t.inactiveClassName?t.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const e=void 0!==t.label?t.label:"⤢";this.labelNode_="string"==typeof e?document.createTextNode(e):e;const i=void 0!==t.labelActive?t.labelActive:"×";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const n=t.tipLabel?t.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=n,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(C,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ol-unselectable ol-control`,this.element.appendChild(this.button_)}handleClick_(t){t.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const t=this.getMap();if(!t)return;const e=t.getOwnerDocument();if(UC(e))if(zC(e))!function(t){t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()}(e);else{let i;i=this.source_?"string"==typeof this.source_?e.getElementById(this.source_):this.source_:t.getTargetElement(),this.keys_?function(t){t.webkitRequestFullscreen?t.webkitRequestFullscreen():XC(t)}(i):XC(i)}}handleFullScreenChange_(){const t=this.getMap();if(!t)return;const e=this.isInFullscreen_;this.isInFullscreen_=zC(t.getOwnerDocument()),e!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Yr(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(jC)):(Yr(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(BC)),t.updateSize())}setClassName_(t,e){e?(t.classList.remove(...this.inactiveClassName_),t.classList.add(...this.activeClassName_)):(t.classList.remove(...this.activeClassName_),t.classList.add(...this.inactiveClassName_))}setMap(t){const e=this.getMap();e&&e.removeChangeListener(Lo,this.boundHandleMapTargetChange_),super.setMap(t),this.handleMapTargetChange_(),t&&t.addChangeListener(Lo,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const t=this.documentListeners_;for(let e=0,i=t.length;e<i;++e)k(t[e]);t.length=0;const e=this.getMap();if(e){const i=e.getOwnerDocument();UC(i)?this.element.classList.remove(Ds):this.element.classList.add(Ds);for(let e=0,n=kC.length;e<n;++e)t.push(D(i,kC[e],this.handleFullScreenChange_,this));this.handleFullScreenChange_()}}};const WC="projection",ZC="coordinateFormat";var YC=class extends ra{constructor(t){t=t||{};const e=document.createElement("div");e.className=void 0!==t.className?t.className:"ol-mouse-position",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un,this.addChangeListener(WC,this.handleProjectionChanged_),t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat),t.projection&&this.setProjection(t.projection),this.renderOnMouseOut_=void 0!==t.placeholder,this.placeholder_=this.renderOnMouseOut_?t.placeholder:" ",this.renderedHTML_=e.innerHTML,this.mapProjection_=null,this.transform_=null}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(ZC)}getProjection(){return this.get(WC)}handleMouseMove(t){const e=this.getMap();this.updateHTML_(e.getEventPixel(t))}handleMouseOut(t){this.updateHTML_(null)}setMap(t){if(super.setMap(t),t){const e=t.getViewport();this.listenerKeys.push(D(e,yo,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(D(e,So,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(t){this.set(ZC,t)}setProjection(t){this.set(WC,Vi(t))}updateHTML_(t){let e=this.placeholder_;if(t&&this.mapProjection_){if(!this.transform_){const t=this.getProjection();this.transform_=t?Ji(this.mapProjection_,t):Ui}const i=this.getMap().getCoordinateFromPixelInternal(t);if(i){const t=sn();t&&(this.transform_=Ji(this.mapProjection_,t)),this.transform_(i,i);const n=this.getCoordinateFormat();e=n?n(i):i.toString()}}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=e,this.renderedHTML_=e)}render(t){const e=t.frameState;e?this.mapProjection_!=e.viewState.projection&&(this.mapProjection_=e.viewState.projection,this.transform_=null):this.mapProjection_=null}};const KC=.75,qC=.1;var HC=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===t.collapsed||t.collapsed,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==t.rotateWithView&&t.rotateWithView,this.viewExtent_=void 0;const e=void 0!==t.className?t.className:"ol-overviewmap",i=void 0!==t.tipLabel?t.tipLabel:"Overview map",n=void 0!==t.collapseLabel?t.collapseLabel:"‹";"string"==typeof n?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=n):this.collapseLabel_=n;const r=void 0!==t.label?t.label:"›";"string"==typeof r?(this.label_=document.createElement("span"),this.label_.textContent=r):this.label_=r;const s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,o=document.createElement("button");o.setAttribute("type","button"),o.title=i,o.appendChild(s),o.addEventListener(C,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=t.view;const a=new il({view:t.view,controls:new $,interactions:new $});this.ovmap_=a,t.layers&&t.layers.forEach((function(t){a.addLayer(t)}));const l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new ll({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);const h=e+" "+"ol-unselectable "+Gs+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible"),c=this.element;c.className=h,c.appendChild(this.ovmapDiv_),c.appendChild(o);const u=this,d=this.boxOverlay_,g=this.boxOverlay_.getElement(),f=function(t){const e={clientX:(i=t).clientX,clientY:i.clientY};var i;const n=a.getEventCoordinateInternal(e);d.setPosition(n)},p=function(t){const e=a.getEventCoordinateInternal(t);u.getMap().getView().setCenterInternal(e),window.removeEventListener("mousemove",f),window.removeEventListener("mouseup",p)};g.addEventListener("mousedown",(function(){window.addEventListener("mousemove",f),window.addEventListener("mouseup",p)}))}setMap(t){const e=this.getMap();if(t!==e){if(e){const t=e.getView();t&&this.unbindView_(t),this.ovmap_.setTarget(null)}if(super.setMap(t),t){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(D(t,s,this.handleMapPropertyChange_,this));const e=t.getView();e&&(this.bindView_(e),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(t){if(t.key===Fo){const e=t.oldValue;e&&this.unbindView_(e);const i=this.getMap().getView();this.bindView_(i)}else this.ovmap_.isRendered()||t.key!==Lo&&t.key!==Io||this.ovmap_.updateSize()}bindView_(t){if(!this.view_){const e=new na({projection:t.getProjection()});this.ovmap_.setView(e)}t.addChangeListener(ko.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(t){t.removeChangeListener(ko.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView().calculateExtentInternal(i);if(this.viewExtent_&&re(n,this.viewExtent_))return;this.viewExtent_=n;const r=e.getSize(),s=e.getView().calculateExtentInternal(r),o=e.getPixelFromCoordinateInternal(we(n)),a=e.getPixelFromCoordinateInternal(pe(n)),l=Math.abs(o[0]-a[0]),h=Math.abs(o[1]-a[1]),c=r[0],u=r[1];l<c*qC||h<u*qC||l>c*KC||h>u*KC?this.resetExtent_():Ht(s,n)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),n=t.getView().calculateExtentInternal(i),r=e.getView(),s=Math.log(7.5)/Math.LN2;Pe(n,1/(Math.pow(2,s/2)*qC)),r.fitInternal(xr(n))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView(),r=e.getView(),s=this.rotateWithView_?0:-n.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=n.getCenterInternal(),h=n.getResolution(),c=r.getResolution(),u=i[0]*h/c,d=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=d+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=G(this.ovmap_,To,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(ks),this.collapsed_?Yr(this.collapseLabel_,this.label_):Yr(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}};const $C="units",JC=[1,2,5],QC=25.4/.28;var tb=class extends ra{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+Ns,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener($C,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get($C)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set($C,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r="degrees"==n?"degrees":"m";let s=Wi(i,t.resolution,e,r);const o=this.minWidth_*(this.dpi_||QC)/QC,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||QC)/QC:void 0;let l=o*s,h="";if("degrees"==n){const t=Ne.degrees;l*=t,l<t/60?(h="″",s*=3600):l<t?(h="′",s*=60):h="°"}else"imperial"==n?l<.9144?(h="in",s/=.0254):l<1609.344?(h="ft",s/=.3048):(h="mi",s/=1609.344):"nautical"==n?(s/=1852,h="NM"):"metric"==n?l<.001?(h="μm",s*=1e6):l<1?(h="mm",s*=1e3):l<1e3?h="m":(h="km",s/=1e3):"us"==n?l<.9144?(h="in",s*=39.37):l<1609.344?(h="ft",s/=.30480061):(h="mi",s/=1609.3472):ht(!1,33);let c,u,d,g,f,p,m=3*Math.floor(Math.log(o*s)/Math.log(10));for(;;){d=Math.floor(m/3);const t=Math.pow(10,d);if(c=JC[(m%3+3)%3]*t,u=Math.round(c/s),isNaN(u))return this.element.style.display="none",void(this.renderedVisible_=!1);if(void 0!==a&&u>=a){c=g,u=f,d=p;break}if(u>=o)break;g=c,f=u,p=d,++m}const _=this.scaleBar_?this.createScaleBar(u,c,h):c.toFixed(d<0?-d:0)+" "+h;this.renderedHTML_!=_&&(this.innerElement_.innerHTML=_,this.renderedHTML_=_),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const n=this.getScaleForResolution(),r=n<1?Math.round(1/n).toLocaleString()+" : 1":"1 : "+Math.round(n).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let n=0;n<s;++n){const r=n%2==0?"ol-scale-singlebar-odd":"ol-scale-singlebar-even";a.push(`<div><div class="ol-scale-singlebar ${r}" style="width: ${o}px;"></div>`+this.createMarker("relative")+(n%2==0||2===s?this.createStepText(n,t,!1,e,i):"")+"</div>")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`<div class="ol-scale-text" style="width: ${t}px;">`+r+"</div>":"")+a.join("")}createMarker(t){return`<div class="ol-scale-step-marker" style="position: ${t}; top: ${"absolute"===t?3:-10}px;"></div>`}createStepText(t,e,i,n,r){const s=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+r);return`<div class="ol-scale-step-text" style="margin-left: ${0===t?-3:e/this.scaleBarSteps_*-1}px;text-align: ${0===t?"left":"center"};min-width: ${0===t?0:e/this.scaleBarSteps_*2}px;left: ${i?e+"px":"unset"};">`+s+"</div>"}getScaleForResolution(){return Wi(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||QC)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}};const eb=0,ib=1;var nb=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=eb,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.startX_,this.startY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==t.duration?t.duration:200;const e=void 0!==t.className?t.className:"ol-zoomslider",i=document.createElement("button");i.setAttribute("type","button"),i.className=e+"-thumb "+Ns;const r=this.element;r.className=e+" "+"ol-unselectable "+Gs,r.appendChild(i),r.addEventListener(xo,this.handleDraggerStart_.bind(this),!1),r.addEventListener(yo,this.handleDraggerDrag_.bind(this),!1),r.addEventListener(vo,this.handleDraggerEnd_.bind(this),!1),r.addEventListener(C,this.handleContainerClick_.bind(this),!1),i.addEventListener(C,n,!1)}setMap(t){super.setMap(t),t&&t.render()}initSlider_(){const t=this.element;let e=t.offsetWidth,i=t.offsetHeight;if(0===e&&0===i)return this.sliderInitialized_=!1;const n=getComputedStyle(t);e-=parseFloat(n.paddingRight)+parseFloat(n.paddingLeft),i-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom);const r=t.firstElementChild,s=getComputedStyle(r),o=r.offsetWidth+parseFloat(s.marginRight)+parseFloat(s.marginLeft),a=r.offsetHeight+parseFloat(s.marginTop)+parseFloat(s.marginBottom);return this.thumbSize_=[o,a],e>i?(this.direction_=ib,this.widthLimit_=e-o):(this.direction_=eb,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(i),r=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:r,duration:this.duration_,easing:rt})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(D(i,yo,t,this),D(i,vo,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,n=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(k),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==ib?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===ib?t/this.widthLimit_:e/this.heightLimit_,si(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){return si(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}};var rb=class extends ra{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.extent=t.extent?t.extent:null;const e=void 0!==t.className?t.className:"ol-zoom-extent",i=void 0!==t.label?t.label:"E",n=void 0!==t.tipLabel?t.tipLabel:"Fit to extent",r=document.createElement("button");r.setAttribute("type","button"),r.title=n,r.appendChild("string"==typeof i?document.createTextNode(i):i),r.addEventListener(C,this.handleClick_.bind(this),!1);const s=e+" "+"ol-unselectable "+Gs,o=this.element;o.className=s,o.appendChild(r)}handleClick_(t){t.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){const t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fitInternal(xr(e))}},sb={};return sb.AssertionError=i,sb.Collection=$,sb.Collection.CollectionEvent=H,sb.DataTile=lt,sb.Disposable=o,sb.Feature=dt,sb.Feature.createStyleFunction=ut,sb.Geolocation=Ar,sb.Image=Ur,sb.Image.listenImage=Br,sb.ImageBase=Or,sb.ImageCanvas=zr,sb.ImageTile=$r,sb.Kinetic=Jr,sb.Map=il,sb.MapBrowserEvent=mo,sb.MapBrowserEventHandler=wo,sb.MapEvent=po,sb.Object=Z,sb.Object.ObjectEvent=W,sb.Observable=U,sb.Observable.unByKey=B,sb.Overlay=ll,sb.Tile=at,sb.TileCache=_l,sb.TileQueue=Oo,sb.TileQueue.getTilePriority=No,sb.TileRange=vl,sb.TileRange.createOrUpdate=xl,sb.VectorRenderTile=wl,sb.VectorTile=Tl,sb.View=na,sb.View.createCenterConstraint=Jo,sb.View.createResolutionConstraint=Qo,sb.View.createRotationConstraint=ta,sb.View.isNoopAnimation=ea,sb.array={},sb.array.binarySearch=a,sb.array.equals=d,sb.array.extend=u,sb.array.isSorted=g,sb.array.linearFindNearest=h,sb.array.numberSafeCompareFunction=l,sb.array.remove=function(t,e){const i=t.indexOf(e),n=i>-1;return n&&t.splice(i,1),n},sb.array.reverseSubArray=c,sb.array.stableSort=function(t,e){const i=t.length,n=Array(t.length);let r;for(r=0;r<i;r++)n[r]={index:r,value:t[r]};for(n.sort((function(t,i){return e(t.value,i.value)||t.index-i.index})),r=0;r<t.length;r++)t[r]=n[r].value},sb.asserts={},sb.asserts.assert=ht,sb.centerconstraint={},sb.centerconstraint.createExtent=Bo,sb.centerconstraint.none=Uo,sb.color={},sb.color.asArray=rs,sb.color.asString=es,sb.color.fromString=ns,sb.color.isStringColor=as,sb.color.normalize=ss,sb.color.toString=os,sb.colorlike={},sb.colorlike.asColorLike=El,sb.control={},sb.control.Attribution=sa,sb.control.Control=ra,sb.control.FullScreen=VC,sb.control.MousePosition=YC,sb.control.OverviewMap=HC,sb.control.Rotate=oa,sb.control.ScaleLine=tb,sb.control.Zoom=aa,sb.control.ZoomSlider=nb,sb.control.ZoomToExtent=rb,sb.control.defaults={},sb.control.defaults.defaults=la,sb.coordinate={},sb.coordinate.add=xi,sb.coordinate.closestOnCircle=vi,sb.coordinate.closestOnSegment=Si,sb.coordinate.createStringXY=function(t){return function(e){return Li(e,t)}},sb.coordinate.degreesToStringHDMS=wi,sb.coordinate.distance=Pi,sb.coordinate.equals=Ei,sb.coordinate.format=Ti,sb.coordinate.getWorldsAway=Mi,sb.coordinate.rotate=Ci,sb.coordinate.scale=bi,sb.coordinate.squaredDistance=Ri,sb.coordinate.squaredDistanceToSegment=Ii,sb.coordinate.toStringHDMS=function(t,e){return t?wi("NS",t[1],e)+" "+wi("EW",t[0],e):""},sb.coordinate.toStringXY=Li,sb.coordinate.wrapX=Fi,sb.css={},sb.css.CLASS_COLLAPSED=ks,sb.css.CLASS_CONTROL=Gs,sb.css.CLASS_HIDDEN=As,sb.css.CLASS_SELECTABLE=Os,sb.css.CLASS_UNSELECTABLE=Ns,sb.css.CLASS_UNSUPPORTED=Ds,sb.css.getFontParameters=Us,sb.dom={},sb.dom.createCanvasContext2D=Xr,sb.dom.outerHeight=Zr,sb.dom.outerWidth=Wr,sb.dom.releaseCanvas=Vr,sb.dom.removeChildren=qr,sb.dom.removeNode=Kr,sb.dom.replaceChildren=Hr,sb.dom.replaceNode=Yr,sb.easing={},sb.easing.easeIn=nt,sb.easing.easeOut=rt,sb.easing.inAndOut=st,sb.easing.linear=ot,sb.easing.upAndDown=function(t){return t<.5?st(2*t):1-st(2*(t-.5))},sb.events={},sb.events.Event=r,sb.events.Event.preventDefault=function(t){t.preventDefault()},sb.events.Event.stopPropagation=n,sb.events.Target=S,sb.events.condition={},sb.events.condition.all=ma,sb.events.condition.altKeyOnly=_a,sb.events.condition.altShiftKeysOnly=ya,sb.events.condition.always=Sa,sb.events.condition.click=function(t){return t.type==_o.CLICK},sb.events.condition.doubleClick=function(t){return t.type==_o.DBLCLICK},sb.events.condition.focus=xa,sb.events.condition.focusWithTabindex=va,sb.events.condition.mouseActionButton=wa,sb.events.condition.mouseOnly=Pa,sb.events.condition.never=Ta,sb.events.condition.noModifierKeys=Ca,sb.events.condition.penOnly=function(t){const e=t.originalEvent;return ht(void 0!==e,56),"pen"===e.pointerType},sb.events.condition.platformModifierKeyOnly=function(t){const e=t.originalEvent;return!e.altKey&&(yt?e.metaKey:e.ctrlKey)&&!e.shiftKey},sb.events.condition.pointerMove=function(t){return"pointermove"==t.type},sb.events.condition.primaryAction=Ia,sb.events.condition.shiftKeyOnly=ba,sb.events.condition.singleClick=Ea,sb.events.condition.targetNotEditable=Ra,sb.events.condition.touchOnly=function(t){const e=t.originalEvent;return ht(void 0!==e,56),"touch"===e.pointerType},sb.events.listen=D,sb.events.listenOnce=G,sb.events.unlistenByKey=k,sb.extent={},sb.extent.applyTransform=Le,sb.extent.approximatelyEquals=se,sb.extent.boundingExtent=Wt,sb.extent.buffer=Zt,sb.extent.clone=Yt,sb.extent.closestSquaredDistanceXY=Kt,sb.extent.containsCoordinate=qt,sb.extent.containsExtent=Ht,sb.extent.containsXY=$t,sb.extent.coordinateRelationship=Jt,sb.extent.createEmpty=Qt,sb.extent.createOrUpdate=te,sb.extent.createOrUpdateEmpty=ee,sb.extent.createOrUpdateFromCoordinate=ie,sb.extent.createOrUpdateFromCoordinates=function(t,e){return le(ee(e),t)},sb.extent.createOrUpdateFromFlatCoordinates=ne,sb.extent.createOrUpdateFromRings=function(t,e){return ce(ee(e),t)},sb.extent.equals=re,sb.extent.extend=oe,sb.extent.extendCoordinate=ae,sb.extent.extendCoordinates=le,sb.extent.extendFlatCoordinates=he,sb.extent.extendRings=ce,sb.extent.extendXY=ue,sb.extent.forEachCorner=de,sb.extent.getArea=ge,sb.extent.getBottomLeft=fe,sb.extent.getBottomRight=pe,sb.extent.getCenter=me,sb.extent.getCorner=_e,sb.extent.getEnlargedArea=function(t,e){const i=Math.min(t[0],e[0]),n=Math.min(t[1],e[1]);return(Math.max(t[2],e[2])-i)*(Math.max(t[3],e[3])-n)},sb.extent.getForViewAndSize=ye,sb.extent.getHeight=ve,sb.extent.getIntersection=Se,sb.extent.getIntersectionArea=function(t,e){return ge(Se(t,e))},sb.extent.getMargin=function(t){return Ee(t)+ve(t)},sb.extent.getRotatedViewport=xe,sb.extent.getSize=function(t){return[t[2]-t[0],t[3]-t[1]]},sb.extent.getTopLeft=we,sb.extent.getTopRight=Te,sb.extent.getWidth=Ee,sb.extent.intersects=Ce,sb.extent.intersectsSegment=Ie,sb.extent.isEmpty=be,sb.extent.returnOrUpdate=Re,sb.extent.scaleFromCenter=Pe,sb.extent.wrapAndSliceX=Me,sb.extent.wrapX=Fe,sb.featureloader={},sb.featureloader.loadFeaturesXhr=Rl,sb.featureloader.setWithCredentials=function(t){bl=t},sb.featureloader.xhr=Pl,sb.format={},sb.format.EsriJSON=Ky,sb.format.Feature=i_,sb.format.Feature.transformExtentWithOptions=r_,sb.format.Feature.transformGeometryWithOptions=n_,sb.format.GML=Sx,sb.format.GML2=mx,sb.format.GML3=xx,sb.format.GML32=Tx,sb.format.GMLBase=Qy,sb.format.GMLBase.GMLNS=Hy,sb.format.GPX=nv,sb.format.GeoJSON=ov,sb.format.IGC=gv,sb.format.IIIFInfo=Lc,sb.format.JSONFeature=Uy,sb.format.KML=gw,sb.format.KML.getDefaultFillStyle=function(){return Iv},sb.format.KML.getDefaultImageStyle=function(){return Fv},sb.format.KML.getDefaultStrokeStyle=function(){return Av},sb.format.KML.getDefaultStyle=function(){return Nv},sb.format.KML.getDefaultStyleArray=function(){return Gv},sb.format.KML.getDefaultTextStyle=function(){return Ov},sb.format.KML.readFlatCoordinates=zv,sb.format.MVT=F_,sb.format.OSMXML=xw,sb.format.OWS=Gw,sb.format.Polyline=Yw,sb.format.Polyline.decodeDeltas=jw,sb.format.Polyline.decodeFloats=Uw,sb.format.Polyline.decodeSignedIntegers=Xw,sb.format.Polyline.decodeUnsignedIntegers=Ww,sb.format.Polyline.encodeDeltas=kw,sb.format.Polyline.encodeFloats=Bw,sb.format.Polyline.encodeSignedIntegers=zw,sb.format.Polyline.encodeUnsignedInteger=Zw,sb.format.Polyline.encodeUnsignedIntegers=Vw,sb.format.TextFeature=lv,sb.format.TopoJSON=tT,sb.format.WFS=yE,sb.format.WFS.writeFilter=function(t,e){const i=Yu(_E(e=e||"1.1.0"),"Filter"),n={node:i};return Object.assign(n,{version:e,filter:t}),eE(i,t,[n]),i},sb.format.WKB=ME,sb.format.WKT=HE,sb.format.WMSCapabilities=vC,sb.format.WMSGetFeatureInfo=SC,sb.format.WMTSCapabilities=GC,sb.format.XML=vw,sb.format.XMLFeature=qy,sb.format.filter={},sb.format.filter.And=nT,sb.format.filter.Bbox=rT,sb.format.filter.Comparison=hT,sb.format.filter.ComparisonBinary=uT,sb.format.filter.Contains=oT,sb.format.filter.DWithin=aT,sb.format.filter.Disjoint=lT,sb.format.filter.During=cT,sb.format.filter.EqualTo=dT,sb.format.filter.Filter=eT,sb.format.filter.GreaterThan=gT,sb.format.filter.GreaterThanOrEqualTo=fT,sb.format.filter.Intersects=pT,sb.format.filter.IsBetween=mT,sb.format.filter.IsLike=_T,sb.format.filter.IsNull=yT,sb.format.filter.LessThan=xT,sb.format.filter.LessThanOrEqualTo=vT,sb.format.filter.LogicalNary=iT,sb.format.filter.Not=ST,sb.format.filter.NotEqualTo=wT,sb.format.filter.Or=TT,sb.format.filter.ResourceId=ET,sb.format.filter.Spatial=sT,sb.format.filter.Within=CT,sb.format.filter.and=bT,sb.format.filter.bbox=RT,sb.format.filter.between=function(t,e,i){return new mT(t,e,i)},sb.format.filter.contains=function(t,e,i){return new oT(t,e,i)},sb.format.filter.disjoint=function(t,e,i){return new lT(t,e,i)},sb.format.filter.during=function(t,e,i){return new cT(t,e,i)},sb.format.filter.dwithin=function(t,e,i,n,r){return new aT(t,e,i,n,r)},sb.format.filter.equalTo=function(t,e,i){return new dT(t,e,i)},sb.format.filter.greaterThan=function(t,e){return new gT(t,e)},sb.format.filter.greaterThanOrEqualTo=function(t,e){return new fT(t,e)},sb.format.filter.intersects=function(t,e,i){return new pT(t,e,i)},sb.format.filter.isNull=function(t){return new yT(t)},sb.format.filter.lessThan=function(t,e){return new xT(t,e)},sb.format.filter.lessThanOrEqualTo=function(t,e){return new vT(t,e)},sb.format.filter.like=function(t,e,i,n,r,s){return new _T(t,e,i,n,r,s)},sb.format.filter.not=function(t){return new ST(t)},sb.format.filter.notEqualTo=function(t,e,i){return new wT(t,e,i)},sb.format.filter.or=function(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(TT,e))},sb.format.filter.resourceId=function(t){return new ET(t)},sb.format.filter.within=function(t,e,i){return new CT(t,e,i)},sb.format.xlink={},sb.format.xlink.readHref=Sw,sb.format.xsd={},sb.format.xsd.readBoolean=tx,sb.format.xsd.readBooleanString=ex,sb.format.xsd.readDateTime=ix,sb.format.xsd.readDecimal=nx,sb.format.xsd.readDecimalString=rx,sb.format.xsd.readNonNegativeIntegerString=ox,sb.format.xsd.readPositiveInteger=sx,sb.format.xsd.readString=ax,sb.format.xsd.writeBooleanTextNode=lx,sb.format.xsd.writeCDATASection=hx,sb.format.xsd.writeDateTimeTextNode=cx,sb.format.xsd.writeDecimalTextNode=ux,sb.format.xsd.writeNonNegativeIntegerTextNode=dx,sb.format.xsd.writeStringTextNode=gx,sb.functions={},sb.functions.FALSE=p,sb.functions.TRUE=f,sb.functions.VOID=m,sb.functions.memoizeOne=_,sb.functions.toPromise=y,sb.geom={},sb.geom.Circle=Em,sb.geom.Geometry=xn,sb.geom.GeometryCollection=Rm,sb.geom.LineString=Mm,sb.geom.LinearRing=Kn,sb.geom.MultiLineString=Om,sb.geom.MultiPoint=Dm,sb.geom.MultiPolygon=jm,sb.geom.Point=Hn,sb.geom.Polygon=_r,sb.geom.Polygon.circular=yr,sb.geom.Polygon.fromCircle=vr,sb.geom.Polygon.fromExtent=xr,sb.geom.Polygon.makeRegular=Sr,sb.geom.SimpleGeometry=wn,sb.geom.SimpleGeometry.getStrideForLayout=vn,sb.geom.SimpleGeometry.transformGeom2D=Sn,sb.geom.flat={},sb.geom.flat.area={},sb.geom.flat.area.linearRing=Vn,sb.geom.flat.area.linearRings=Wn,sb.geom.flat.area.linearRingss=Zn,sb.geom.flat.center={},sb.geom.flat.center.linearRingss=Gm,sb.geom.flat.closest={},sb.geom.flat.closest.arrayMaxSquaredDelta=Cn,sb.geom.flat.closest.assignClosestArrayPoint=Pn,sb.geom.flat.closest.assignClosestMultiArrayPoint=In,sb.geom.flat.closest.assignClosestPoint=Rn,sb.geom.flat.closest.maxSquaredDelta=En,sb.geom.flat.closest.multiArrayMaxSquaredDelta=bn,sb.geom.flat.contains={},sb.geom.flat.contains.linearRingContainsExtent=$n,sb.geom.flat.contains.linearRingContainsXY=Jn,sb.geom.flat.contains.linearRingsContainsXY=Qn,sb.geom.flat.contains.linearRingssContainsXY=tr,sb.geom.flat.deflate={},sb.geom.flat.deflate.deflateCoordinate=Ln,sb.geom.flat.deflate.deflateCoordinates=Fn,sb.geom.flat.deflate.deflateCoordinatesArray=Mn,sb.geom.flat.deflate.deflateMultiCoordinatesArray=An,sb.geom.flat.flip={},sb.geom.flat.flip.flipXY=jy,sb.geom.flat.geodesic={},sb.geom.flat.geodesic.greatCircleArc=function(t,e,i,n,r,s){const o=Vi("EPSG:4326"),a=Math.cos(ci(e)),l=Math.sin(ci(e)),h=Math.cos(ci(n)),c=Math.sin(ci(n)),u=Math.cos(ci(i-t)),d=Math.sin(ci(i-t)),g=l*c+a*h*u;return Wm((function(e){if(1<=g)return[i,n];const r=e*Math.acos(g),s=Math.cos(r),o=Math.sin(r),f=d*h,p=a*c-l*h*u,m=Math.atan2(f,p),_=Math.asin(l*s+a*o*Math.cos(m));return[hi(ci(t)+Math.atan2(Math.sin(m)*o*a,s-l*Math.sin(_))),hi(_)]}),Qi(o,r),s)},sb.geom.flat.geodesic.meridian=Zm,sb.geom.flat.geodesic.parallel=Ym,sb.geom.flat.inflate={},sb.geom.flat.inflate.inflateCoordinates=Un,sb.geom.flat.inflate.inflateCoordinatesArray=zn,sb.geom.flat.inflate.inflateMultiCoordinatesArray=Xn,sb.geom.flat.interiorpoint={},sb.geom.flat.interiorpoint.getInteriorPointOfArray=er,sb.geom.flat.interiorpoint.getInteriorPointsOfMultiArray=ir,sb.geom.flat.interpolate={},sb.geom.flat.interpolate.interpolatePoint=Pm,sb.geom.flat.interpolate.lineStringCoordinateAtM=Im,sb.geom.flat.interpolate.lineStringsCoordinateAtM=Lm,sb.geom.flat.intersectsextent={},sb.geom.flat.intersectsextent.intersectsLineString=rr,sb.geom.flat.intersectsextent.intersectsLineStringArray=sr,sb.geom.flat.intersectsextent.intersectsLinearRing=or,sb.geom.flat.intersectsextent.intersectsLinearRingArray=ar,sb.geom.flat.intersectsextent.intersectsLinearRingMultiArray=lr,sb.geom.flat.length={},sb.geom.flat.length.lineStringLength=tm,sb.geom.flat.length.linearRingLength=function(t,e,i,n){let r=tm(t,e,i,n);const s=t[i-n]-t[e],o=t[i-n+1]-t[e+1];return r+=Math.sqrt(s*s+o*o),r},sb.geom.flat.orient={},sb.geom.flat.orient.inflateEnds=pr,sb.geom.flat.orient.linearRingIsClockwise=cr,sb.geom.flat.orient.linearRingsAreOriented=ur,sb.geom.flat.orient.linearRingssAreOriented=dr,sb.geom.flat.orient.orientLinearRings=gr,sb.geom.flat.orient.orientLinearRingsArray=fr,sb.geom.flat.reverse={},sb.geom.flat.reverse.coordinates=hr,sb.geom.flat.segments={},sb.geom.flat.segments.forEach=nr,sb.geom.flat.simplify={},sb.geom.flat.simplify.douglasPeucker=On,sb.geom.flat.simplify.douglasPeuckerArray=Nn,sb.geom.flat.simplify.douglasPeuckerMultiArray=function(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l<h;++l){const h=i[l],c=[];o=Nn(t,e,h,n,r,s,o,c),a.push(c),e=h[h.length-1]}return o},sb.geom.flat.simplify.quantize=kn,sb.geom.flat.simplify.quantizeArray=jn,sb.geom.flat.simplify.quantizeMultiArray=Bn,sb.geom.flat.simplify.radialDistance=Dn,sb.geom.flat.simplify.simplifyLineString=function(t,e,i,n,r,s,o){return o=void 0!==o?o:[],s||(i=Dn(t,e,i,n,r,o,0),t=o,e=0,n=2),o.length=On(t,e,i,n,r,o,0),o},sb.geom.flat.simplify.snap=Gn,sb.geom.flat.straightchunk={},sb.geom.flat.straightchunk.matchingChunk=Kp,sb.geom.flat.textpath={},sb.geom.flat.textpath.drawTextOnPath=Qp,sb.geom.flat.topology={},sb.geom.flat.topology.lineStringIsClosed=function(t,e,i,n){const r=i-n;return t[e]===t[r]&&t[e+1]===t[r+1]&&(i-e)/n>3&&!!Vn(t,e,i,n)},sb.geom.flat.transform={},sb.geom.flat.transform.rotate=pn,sb.geom.flat.transform.scale=mn,sb.geom.flat.transform.transform2D=fn,sb.geom.flat.transform.translate=_n,sb.has={},sb.has.DEVICE_PIXEL_RATIO=xt,sb.has.FIREFOX=ft,sb.has.IMAGE_DECODE=St,sb.has.MAC=yt,sb.has.PASSIVE_EVENT_LISTENERS=wt,sb.has.SAFARI=pt,sb.has.SAFARI_BUG_237906=mt,sb.has.WEBKIT=_t,sb.has.WORKER_OFFSCREEN_CANVAS=vt,sb.interaction={},sb.interaction.DoubleClickZoom=ga,sb.interaction.DragAndDrop=z_,sb.interaction.DragAndDrop.DragAndDropEvent=U_,sb.interaction.DragBox=ka,sb.interaction.DragBox.DragBoxEvent=Ga,sb.interaction.DragPan=La,sb.interaction.DragRotate=Fa,sb.interaction.DragRotateAndZoom=X_,sb.interaction.DragZoom=ja,sb.interaction.Draw=ry,sb.interaction.Draw.DrawEvent=Y_,sb.interaction.Draw.createBox=function(){return function(t,e,i){const n=Wt([t[0],t[t.length-1]].map((function(t){return an(t,i)}))),r=[[fe(n),pe(n),Te(n),we(n),fe(n)]];e?e.setCoordinates(r):e=new _r(r);const s=sn();return s&&e.transform(i,s),e}},sb.interaction.Draw.createRegularPolygon=function(t,e){return function(i,n,r){const s=an(i[0],r),o=an(i[i.length-1],r),a=Math.sqrt(Ri(s,o));n=n||vr(new Em(s),t);let l=e;if(!e&&0!==e){const t=o[0]-s[0],e=o[1]-s[1];l=Math.atan2(e,t)}Sr(n,s,a,l);const h=sn();return h&&n.transform(r,h),n}},sb.interaction.Extent=uy,sb.interaction.Extent.ExtentEvent=oy,sb.interaction.Interaction=da,sb.interaction.Interaction.pan=ca,sb.interaction.Interaction.zoomByDelta=ua,sb.interaction.KeyboardPan=Va,sb.interaction.KeyboardZoom=Wa,sb.interaction.Link=py,sb.interaction.Modify=Cy,sb.interaction.Modify.ModifyEvent=vy,sb.interaction.MouseWheelZoom=Za,sb.interaction.PinchRotate=Ya,sb.interaction.PinchZoom=Ka,sb.interaction.Pointer=pa,sb.interaction.Pointer.centroid=fa,sb.interaction.Select=Ly,sb.interaction.Select.SelectEvent=Ry,sb.interaction.Snap=Ay,sb.interaction.Translate=ky,sb.interaction.Translate.TranslateEvent=Gy,sb.interaction.defaults={},sb.interaction.defaults.defaults=qa,sb.layer={},sb.layer.Base=ws,sb.layer.BaseImage=Hc,sb.layer.BaseTile=su,sb.layer.BaseVector=Ef,sb.layer.Graticule=Hm,sb.layer.Group=fo,sb.layer.Group.GroupEvent=co,sb.layer.Heatmap=e_,sb.layer.Image=iu,sb.layer.Layer=Is,sb.layer.Layer.inView=Ps,sb.layer.MapboxVector=O_,sb.layer.Tile=au,sb.layer.Vector=Vm,sb.layer.VectorImage=N_,sb.layer.VectorTile=M_,sb.layer.WebGLPoints=D_,sb.layer.WebGLTile=j_,sb.loadingstrategy={},sb.loadingstrategy.all=Il,sb.loadingstrategy.bbox=function(t,e){return[t]},sb.loadingstrategy.tile=function(t){return function(e,i,n){const r=t.getZForResolution(un(i,n)),s=t.getTileRangeForExtentAndZ(hn(e,n),r),o=[],a=[r,0,0];for(a[1]=s.minX;a[1]<=s.maxX;++a[1])for(a[2]=s.minY;a[2]<=s.maxY;++a[2])o.push(ln(t.getTileCoordExtent(a),n));return o}},sb.math={},sb.math.ceil=mi,sb.math.clamp=si,sb.math.floor=pi,sb.math.lerp=di,sb.math.modulo=ui,sb.math.round=fi,sb.math.solveLinearSystem=li,sb.math.squaredDistance=ai,sb.math.squaredSegmentDistance=oi,sb.math.toDegrees=hi,sb.math.toFixed=gi,sb.math.toRadians=ci,sb.net={},sb.net.ClientError=Ml,sb.net.ResponseError=Fl,sb.net.getJSON=Al,sb.net.jsonp=Ll,sb.net.overrideXHR=function(t){"undefined"!=typeof XMLHttpRequest&&(Cl=XMLHttpRequest),global.XMLHttpRequest=t},sb.net.resolveUrl=Ol,sb.net.restoreXHR=function(){global.XMLHttpRequest=Cl},sb.obj={},sb.obj.clear=x,sb.obj.isEmpty=v,sb.proj={},sb.proj.Projection=De,sb.proj.Units={},sb.proj.Units.METERS_PER_UNIT=Ne,sb.proj.Units.fromCode=Oe,sb.proj.addCommon=gn,sb.proj.addCoordinateTransforms=Hi,sb.proj.addEquivalentProjections=Zi,sb.proj.addEquivalentTransforms=Yi,sb.proj.addProjection=zi,sb.proj.addProjections=Xi,sb.proj.clearAllProjections=function(){Je(),ii()},sb.proj.clearUserProjection=function(){nn=null},sb.proj.cloneTransform=Bi,sb.proj.createProjection=Ki,sb.proj.createSafeCoordinateTransform=dn,sb.proj.createTransformFromCoordinateTransform=qi,sb.proj.disableCoordinateWarning=ji,sb.proj.epsg3857={},sb.proj.epsg3857.EXTENT=je,sb.proj.epsg3857.HALF_SIZE=ke,sb.proj.epsg3857.MAX_SAFE_Y=Ue,sb.proj.epsg3857.PROJECTIONS=Xe,sb.proj.epsg3857.RADIUS=Ge,sb.proj.epsg3857.WORLD_EXTENT=Be,sb.proj.epsg3857.fromEPSG4326=Ve,sb.proj.epsg3857.toEPSG4326=We,sb.proj.epsg4326={},sb.proj.epsg4326.EXTENT=Ye,sb.proj.epsg4326.METERS_PER_UNIT=Ke,sb.proj.epsg4326.PROJECTIONS=He,sb.proj.epsg4326.RADIUS=Ze,sb.proj.equivalent=$i,sb.proj.fromLonLat=function(t,e){return ji(),tn(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")},sb.proj.fromUserCoordinate=an,sb.proj.fromUserExtent=hn,sb.proj.fromUserResolution=un,sb.proj.get=Vi,sb.proj.getPointResolution=Wi,sb.proj.getTransform=Qi,sb.proj.getTransformFromProjections=Ji,sb.proj.getUserProjection=sn,sb.proj.identityTransform=Ui,sb.proj.proj4={},sb.proj.proj4.register=function(t){const e=Object.keys(t.defs),i=e.length;let n,r;for(n=0;n<i;++n){const i=e[n];if(!Vi(i)){const e=t.defs(i);let n=e.units;n||"longlat"!==e.projName||(n="degrees"),zi(new De({code:i,axisOrientation:e.axis,metersPerUnit:e.to_meter,units:n}))}}for(n=0;n<i;++n){const s=e[n],o=Vi(s);for(r=0;r<i;++r){const i=e[r],n=Vi(i);if(!ri(s,i))if(t.defs[s]===t.defs[i])Zi([o,n]);else{const e=t(s,i);Hi(o,n,dn(o,n,e.forward),dn(n,o,e.inverse))}}}},sb.proj.projections={},sb.proj.projections.add=ti,sb.proj.projections.clear=Je,sb.proj.projections.get=Qe,sb.proj.setUserProjection=rn,sb.proj.toLonLat=function(t,e){const i=tn(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=ui(n+180,360)-180),i},sb.proj.toUserCoordinate=on,sb.proj.toUserExtent=ln,sb.proj.toUserResolution=cn,sb.proj.transform=tn,sb.proj.transformExtent=en,sb.proj.transformWithProjections=function(t,e,i){return Ji(e,i)(t)},sb.proj.transforms={},sb.proj.transforms.add=ni,sb.proj.transforms.clear=ii,sb.proj.transforms.get=ri,sb.proj.transforms.remove=function(t,e){const i=t.getCode(),n=e.getCode(),r=ei[i][n];return delete ei[i][n],v(ei[i])&&delete ei[i],r},sb.proj.useGeographic=function(){rn("EPSG:4326")},sb.render={},sb.render.Box=Ma,sb.render.Event=Ms,sb.render.Feature=Xm,sb.render.Feature.toFeature=function(t,e){const i=t.getId(),n=zm(t),r=t.getProperties(),s=new dt;return void 0!==e&&s.setGeometryName(e),s.setGeometry(n),void 0!==i&&s.setId(i),s.setProperties(r,!0),s},sb.render.Feature.toGeometry=zm,sb.render.VectorContext=Nl,sb.render.canvas={},sb.render.canvas.Builder=Vp,sb.render.canvas.BuilderGroup=Jp,sb.render.canvas.Executor=cm,sb.render.canvas.ExecutorGroup=fm,sb.render.canvas.ExecutorGroup.getPixelIndexArray=gm,sb.render.canvas.ImageBuilder=Wp,sb.render.canvas.Immediate=Dl,sb.render.canvas.Instruction={},sb.render.canvas.Instruction.beginPathInstruction=zp,sb.render.canvas.Instruction.closePathInstruction=Xp,sb.render.canvas.Instruction.fillInstruction=Bp,sb.render.canvas.Instruction.strokeInstruction=Up,sb.render.canvas.LineStringBuilder=Zp,sb.render.canvas.PolygonBuilder=Yp,sb.render.canvas.TextBuilder=Hp,sb.render.canvas.checkedFonts=Js,sb.render.canvas.defaultFillStyle=Xs,sb.render.canvas.defaultFont=zs,sb.render.canvas.defaultLineCap=Vs,sb.render.canvas.defaultLineDash=Ws,sb.render.canvas.defaultLineDashOffset=0,sb.render.canvas.defaultLineJoin=Zs,sb.render.canvas.defaultLineWidth=1,sb.render.canvas.defaultMiterLimit=Ys,sb.render.canvas.defaultPadding=$s,sb.render.canvas.defaultStrokeStyle=Ks,sb.render.canvas.defaultTextAlign=qs,sb.render.canvas.defaultTextBaseline=Hs,sb.render.canvas.drawImageOrLabel=lo,sb.render.canvas.getTextDimensions=ao,sb.render.canvas.hitdetect={},sb.render.canvas.hitdetect.HIT_DETECT_RESOLUTION=pm,sb.render.canvas.hitdetect.createHitDetectionImageData=mm,sb.render.canvas.hitdetect.hitDetect=_m,sb.render.canvas.measureAndCacheTextWidth=oo,sb.render.canvas.measureTextHeight=no,sb.render.canvas.measureTextWidth=so,sb.render.canvas.registerFont=io,sb.render.canvas.rotateAtOffset=function(t,e,i,n){0!==e&&(t.translate(i,n),t.rotate(e),t.translate(-i,-n))},sb.render.canvas.textHeights=eo,sb.render.getRenderPixel=function(t,e){return It(t.inversePixelTransform,e.slice(0))},sb.render.getVectorContext=Xl,sb.render.toContext=function(t,e){const i=t.canvas,n=(e=e||{}).pixelRatio||xt,r=e.size;r&&(i.width=r[0]*n,i.height=r[1]*n,i.style.width=r[0]+"px",i.style.height=r[1]+"px");const s=[0,0,i.width,i.height],o=Ft([1,0,0,1,0,0],n,n);return new Dl(t,n,s,o,0)},sb.render.webgl={},sb.render.webgl.BatchRenderer=hp,sb.render.webgl.LineStringBatchRenderer=up,sb.render.webgl.MixedGeometryBatch=dp,sb.render.webgl.PointBatchRenderer=fp,sb.render.webgl.PolygonBatchRenderer=mp,sb.render.webgl.utils={},sb.render.webgl.utils.colorDecodeId=sp,sb.render.webgl.utils.colorEncodeId=rp,sb.render.webgl.utils.getBlankImageData=function(){const t=document.createElement("canvas").getContext("2d").createImageData(1,1);return t.data[0]=255,t.data[1]=255,t.data[2]=255,t.data[3]=255,t},sb.render.webgl.utils.writeLineSegmentToBuffers=function(t,e,i,n,r,s,o,a,l,h){const c=5+a.length,u=s.length/c,d=[t[e+0],t[e+1]],g=[t[i],t[i+1]],f=It(h,[...d]),p=It(h,[...g]);function m(t,e,i){const n=1e4;return Math.round(1500*e)+Math.round(1500*i)*n+t*n*n}function _(t,e,i){const n=Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])),r=[(e[0]-t[0])/n,(e[1]-t[1])/n],s=[-r[1],r[0]],o=Math.sqrt((i[0]-t[0])*(i[0]-t[0])+(i[1]-t[1])*(i[1]-t[1])),a=[(i[0]-t[0])/o,(i[1]-t[1])/o],l=0===n||0===o?0:Math.acos(si(a[0]*r[0]+a[1]*r[1],-1,1));return a[0]*s[0]+a[1]*s[1]>0?l:2*Math.PI-l}const y=null!==r;let x=0,v=0;if(null!==n){x=_(f,p,It(h,[...[t[n],t[n+1]]]))}if(y){v=_(p,f,It(h,[...[t[r],t[r+1]]]))}s.push(d[0],d[1],g[0],g[1],m(0,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(1,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(2,x,v)),s.push(...a),s.push(d[0],d[1],g[0],g[1],m(3,x,v)),s.push(...a),o.push(u,u+1,u+2,u+1,u+3,u+2)},sb.render.webgl.utils.writePointFeatureToBuffers=function(t,e,i,n,r,s){const o=3+r,a=t[e+0],l=t[e+1],h=ep;h.length=r;for(let i=0;i<h.length;i++)h[i]=t[e+2+i];let c=s?s.vertexPosition:0,u=s?s.indexPosition:0;const d=c/o;return np(i,c,a,l,0),h.length&&i.set(h,c+3),c+=o,np(i,c,a,l,1),h.length&&i.set(h,c+3),c+=o,np(i,c,a,l,2),h.length&&i.set(h,c+3),c+=o,np(i,c,a,l,3),h.length&&i.set(h,c+3),c+=o,n[u++]=d,n[u++]=d+1,n[u++]=d+3,n[u++]=d+1,n[u++]=d+2,n[u++]=d+3,ip.vertexPosition=c,ip.indexPosition=u,ip},sb.render.webgl.utils.writePolygonTrianglesToBuffers=function(t,e,i,n,r){const s=2+r;let o=e;const a=t.slice(o,o+r);o+=r;const l=t[o++];let h=0;const c=new Array(l-1);for(let e=0;e<l;e++)h+=t[o++],e<l-1&&(c[e]=h);const u=t.slice(o,o+2*h),d=Pf.exports(u,c,2);for(let t=0;t<d.length;t++)n.push(d[t]+i.length/s);for(let t=0;t<u.length;t+=2)i.push(u[t],u[t+1],...a);return o+2*h},sb.renderer={},sb.renderer.Composite=ho,sb.renderer.Layer=$c,sb.renderer.Map=Fs,sb.renderer.canvas={},sb.renderer.canvas.ImageLayer=eu,sb.renderer.canvas.Layer=tu,sb.renderer.canvas.Layer.canvasPool=Jc,sb.renderer.canvas.TileLayer=ou,sb.renderer.canvas.VectorImageLayer=xm,sb.renderer.canvas.VectorLayer=ym,sb.renderer.canvas.VectorTileLayer=wm,sb.renderer.vector={},sb.renderer.vector.defaultOrder=kl,sb.renderer.vector.getSquaredTolerance=jl,sb.renderer.vector.getTolerance=Bl,sb.renderer.vector.renderFeature=Ul,sb.renderer.webgl={},sb.renderer.webgl.Layer=qd,sb.renderer.webgl.PointsLayer=ap,sb.renderer.webgl.TileLayer=rg,sb.renderer.webgl.TileLayer.Attributes=$d,sb.renderer.webgl.TileLayer.Uniforms=Hd,sb.renderer.webgl.VectorLayer=bp,sb.renderer.webgl.shaders={},sb.renderer.webgl.shaders.FILL_FRAGMENT_SHADER=vp,sb.renderer.webgl.shaders.FILL_VERTEX_SHADER=xp,sb.renderer.webgl.shaders.POINT_FRAGMENT_SHADER=Ep,sb.renderer.webgl.shaders.POINT_VERTEX_SHADER=Tp,sb.renderer.webgl.shaders.STROKE_FRAGMENT_SHADER=wp,sb.renderer.webgl.shaders.STROKE_VERTEX_SHADER=Sp,sb.renderer.webgl.shaders.packColor=_p,sb.reproj={},sb.reproj.DataTile=rc,sb.reproj.Image=Ac,sb.reproj.Tile=Ql,sb.reproj.Triangulation=Jl,sb.reproj.calculateSourceExtentResolution=ql,sb.reproj.calculateSourceResolution=Kl,sb.reproj.canvasPool=Wl,sb.reproj.common={},sb.reproj.common.ERROR_THRESHOLD=$l,sb.reproj.render=Hl,sb.resolutionconstraint={},sb.resolutionconstraint.createMinMaxResolution=Zo,sb.resolutionconstraint.createSnapToPower=Wo,sb.resolutionconstraint.createSnapToResolutions=Vo,sb.rotationconstraint={},sb.rotationconstraint.createSnapToN=qo,sb.rotationconstraint.createSnapToZero=Ho,sb.rotationconstraint.disable=Yo,sb.rotationconstraint.none=Ko,sb.size={},sb.size.buffer=Ha,sb.size.hasArea=$a,sb.size.scale=Ja,sb.size.toSize=Qa,sb.source={},sb.source.BingMaps=bh,sb.source.BingMaps.quadKey=Ch,sb.source.CartoDB=Ph,sb.source.Cluster=nc,sb.source.DataTile=sc,sb.source.GeoTIFF=xc,sb.source.IIIF=Mc,sb.source.Image=jc,sb.source.Image.ImageSourceEvent=Gc,sb.source.Image.defaultImageLoadFunction=kc,sb.source.ImageArcGISRest=Uc,sb.source.ImageCanvas=zc,sb.source.ImageMapGuide=Xc,sb.source.ImageStatic=Vc,sb.source.ImageWMS=Yc,sb.source.OGCMapTile=Sf,sb.source.OGCVectorTile=wf,sb.source.OSM=qc,sb.source.OSM.ATTRIBUTION=Kc,sb.source.Raster=Su,sb.source.Raster.Processor=gu,sb.source.Raster.RasterSourceEvent=mu,sb.source.Raster.newImageData=cu,sb.source.Source=rh,sb.source.Stamen=Cu,sb.source.Tile=ph,sb.source.Tile.TileSourceEvent=fh,sb.source.TileArcGISRest=bu,sb.source.TileDebug=Ru,sb.source.TileImage=Eh,sb.source.TileJSON=Pu,sb.source.TileWMS=Iu,sb.source.UTFGrid=Fu,sb.source.UTFGrid.CustomTile=Lu,sb.source.UrlTile=wh,sb.source.Vector=ic,sb.source.Vector.VectorSourceEvent=ec,sb.source.VectorTile=Mu,sb.source.VectorTile.defaultLoadFunction=Au,sb.source.WMTS=Gu,sb.source.WMTS.optionsFromCapabilities=function(t,e){const i=t.Contents.Layer.find((function(t){return t.Identifier==e.layer}));if(!i)return null;const n=t.Contents.TileMatrixSet;let r;r=i.TileMatrixSetLink.length>1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=n.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,r=Vi(i),s=Vi(e.projection);return r&&s?$i(r,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,r<0&&(r=0);const s=i.TileMatrixSetLink[r].TileMatrixSet,o=i.TileMatrixSetLink[r].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),r=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),r<0&&(r=0);const l=i.Style[r].Identifier,h={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const n=t.Identifier;let r=t.Default;void 0===r&&(r=t.Value[0]),h[n]=r}));const c=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let u;const d=c.SupportedCRS;if(d&&(u=Vi(d)),"projection"in e){const t=Vi(e.projection);t&&(u&&!$i(t,u)||(u=t))}let g=!1;const f="ne"==u.getAxisOrientation().substr(0,2);let p=c.TileMatrix[0],m={MinTileCol:0,MinTileRow:0,MaxTileCol:p.MatrixWidth-1,MaxTileRow:p.MatrixHeight-1};if(o){m=o[o.length-1];const t=c.TileMatrix.find((t=>t.Identifier===m.TileMatrix||c.Identifier+":"+t.Identifier===m.TileMatrix));t&&(p=t)}const _=28e-5*p.ScaleDenominator/u.getMetersPerUnit(),y=f?[p.TopLeftCorner[1],p.TopLeftCorner[0]]:p.TopLeftCorner,x=p.TileWidth*_,v=p.TileHeight*_;let S=c.BoundingBox;S&&f&&(S=[S[1],S[0],S[3],S[2]]);let w=[y[0]+x*m.MinTileCol,y[1]-v*(1+m.MaxTileRow),y[0]+x*(1+m.MaxTileCol),y[1]-v*m.MinTileRow];if(void 0!==S&&!Ht(S,w)){const t=i.WGS84BoundingBox,e=Vi("EPSG:4326").getExtent();if(w=S,t)g=t[0]===e[0]&&t[2]===e[2];else{const t=en(S,c.SupportedCRS,"EPSG:4326");g=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const T=Du(c,w,o),E=[];let C=e.requestEncoding;if(C=void 0!==C?C:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;t<i;++t)if(e[t].Constraint){const i=e[t].Constraint.find((function(t){return"GetEncoding"==t.name})).AllowedValues.Value;if(""===C&&(C=i[0]),"KVP"!==C)break;i.includes("KVP")&&E.push(e[t].href)}else e[t].href&&(C="KVP",E.push(e[t].href))}return 0===E.length&&(C="REST",i.ResourceURL.forEach((function(t){"tile"===t.resourceType&&(a=t.format,E.push(t.template))}))),{urls:E,layer:e.layer,matrixSet:s,format:a,projection:u,requestEncoding:C,tileGrid:T,style:l,dimensions:h,wrapX:g,crossOrigin:e.crossOrigin}},sb.source.XYZ=Rh,sb.source.Zoomify=Sc,sb.source.Zoomify.CustomTile=vc,sb.source.common={},sb.source.common.DEFAULT_WMS_VERSION="1.3.0",sb.source.ogcTileUtil={},sb.source.ogcTileUtil.getMapTileUrlTemplate=_f,sb.source.ogcTileUtil.getTileSetInfo=vf,sb.source.ogcTileUtil.getVectorTileUrlTemplate=yf,sb.source.sourcesFromTileGrid=function(t,e){const i=new hl(32),n=t.getExtent();return function(r,s){i.expireCache(),n&&(r=Se(n,r));const o=t.getZForResolution(s),a=[];return t.forEachTileCoord(r,o,(t=>{const n=t.toString();if(!i.containsKey(n)){const r=e(t);i.set(n,r)}a.push(i.get(n))})),a}},sb.source.wms={},sb.source.wms.DEFAULT_VERSION=Wc,sb.sphere={},sb.sphere.DEFAULT_RADIUS=Ai,sb.sphere.getArea=function t(e,i){const n=(i=i||{}).radius||Ai,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,d=0;switch(s){case"Point":case"MultiPoint":case"LineString":case"MultiLineString":case"LinearRing":break;case"Polygon":for(o=e.getCoordinates(),d=Math.abs(Di(o[0],n)),l=1,h=o.length;l<h;++l)d-=Math.abs(Di(o[l],n));break;case"MultiPolygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)for(a=o[l],d+=Math.abs(Di(a[0],n)),c=1,u=a.length;c<u;++c)d-=Math.abs(Di(a[c],n));break;case"GeometryCollection":{const n=e.getGeometries();for(l=0,h=n.length;l<h;++l)d+=t(n[l],i);break}default:throw new Error("Unsupported geometry type: "+s)}return d},sb.sphere.getDistance=Oi,sb.sphere.getLength=function t(e,i){const n=(i=i||{}).radius||Ai,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,d=0;switch(s){case"Point":case"MultiPoint":break;case"LineString":case"LinearRing":o=e.getCoordinates(),d=Ni(o,n);break;case"MultiLineString":case"Polygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)d+=Ni(o[l],n);break;case"MultiPolygon":for(o=e.getCoordinates(),l=0,h=o.length;l<h;++l)for(a=o[l],c=0,u=a.length;c<u;++c)d+=Ni(a[c],n);break;case"GeometryCollection":{const n=e.getGeometries();for(l=0,h=n.length;l<h;++l)d+=t(n[l],i);break}default:throw new Error("Unsupported geometry type: "+s)}return d},sb.sphere.offset=Gi,sb.string={},sb.string.compareVersions=yi,sb.string.padNumber=_i,sb.structs={},sb.structs.LRUCache=hl,sb.structs.LinkedList=ff,sb.structs.PriorityQueue=Ao,sb.structs.PriorityQueue.DROP=Mo,sb.structs.RBush=Yh,sb.style={},sb.style.Circle=zg,sb.style.Fill=Vg,sb.style.Icon=Hg,sb.style.IconImage=Kg,sb.style.IconImage.get=Yg,sb.style.IconImageCache=cs,sb.style.IconImageCache.shared=us,sb.style.Image=kg,sb.style.RegularShape=Bg,sb.style.Stroke=Jg,sb.style.Style=of,sb.style.Style.createDefaultStyle=nf,sb.style.Style.createEditingStyle=rf,sb.style.Style.toFunction=tf,sb.style.Text=lf,sb.style.expressions={},sb.style.expressions.Operators=dg,sb.style.expressions.PALETTE_TEXTURE_ARRAY=Fg,sb.style.expressions.arrayToGlsl=mg,sb.style.expressions.colorToGlsl=_g,sb.style.expressions.expressionToGlsl=vg,sb.style.expressions.getStringNumberEquivalent=yg,sb.style.expressions.getValueType=gg,sb.style.expressions.isTypeUnique=fg,sb.style.expressions.numberToGlsl=pg,sb.style.expressions.stringToGlsl=xg,sb.style.expressions.uniformNameForVariable=Lg,sb.style.flat={},sb.style.flat.toStyle=hf,sb.tilecoord={},sb.tilecoord.createOrUpdate=cl,sb.tilecoord.fromKey=fl,sb.tilecoord.getCacheKeyForTileKey=gl,sb.tilecoord.getKey=dl,sb.tilecoord.getKeyZXY=ul,sb.tilecoord.hash=pl,sb.tilecoord.withinExtentAndZ=ml,sb.tilegrid={},sb.tilegrid.TileGrid=oh,sb.tilegrid.WMTS=Nu,sb.tilegrid.WMTS.createFromCapabilitiesMatrixSet=Du,sb.tilegrid.common={},sb.tilegrid.common.DEFAULT_MAX_ZOOM=42,sb.tilegrid.common.DEFAULT_TILE_SIZE=jo,sb.tilegrid.createForExtent=hh,sb.tilegrid.createForProjection=dh,sb.tilegrid.createXYZ=ch,sb.tilegrid.extentFromProjection=gh,sb.tilegrid.getForProjection=ah,sb.tilegrid.wrapX=lh,sb.tileurlfunction={},sb.tileurlfunction.createFromTemplate=mh,sb.tileurlfunction.createFromTemplates=_h,sb.tileurlfunction.createFromTileUrlFunctions=yh,sb.tileurlfunction.expandUrl=vh,sb.tileurlfunction.nullTileUrlFunction=xh,sb.transform={},sb.transform.apply=It,sb.transform.compose=Ot,sb.transform.composeCssTransform=function(t,e,i,n,r,s,o){return kt(Ot([1,0,0,1,0,0],t,e,i,n,r,s,o))},sb.transform.create=Et,sb.transform.determinant=Dt,sb.transform.invert=function(t){return Nt(t,t)},sb.transform.makeInverse=Nt,sb.transform.makeScale=Mt,sb.transform.multiply=bt,sb.transform.reset=Ct,sb.transform.rotate=Lt,sb.transform.scale=Ft,sb.transform.set=Rt,sb.transform.setFromArray=Pt,sb.transform.toString=kt,sb.transform.translate=At,sb.uri={},sb.uri.appendParams=Bc,sb.util={},sb.util.VERSION="latest",sb.util.abstract=z,sb.util.getUid=V,sb.vec={},sb.vec.mat4={},sb.vec.mat4.create=Ed,sb.vec.mat4.fromTransform=Cd,sb.webgl={},sb.webgl.ARRAY_BUFFER=ku,sb.webgl.Buffer=vd,sb.webgl.Buffer.getArrayClassForType=xd,sb.webgl.DYNAMIC_DRAW=Uu,sb.webgl.ELEMENT_ARRAY_BUFFER=ju,sb.webgl.FLOAT=zu,sb.webgl.Helper=Bd,sb.webgl.Helper.computeAttributesStride=kd,sb.webgl.PaletteTexture=Ud,sb.webgl.PostProcessingPass=Td,sb.webgl.RenderTarget=Xd,sb.webgl.STATIC_DRAW=Bu,sb.webgl.STREAM_DRAW=35040,sb.webgl.ShaderBuilder={},sb.webgl.ShaderBuilder.ShaderBuilder=Ng,sb.webgl.ShaderBuilder.parseLiteralStyle=Dg,sb.webgl.TileTexture=Yd,sb.webgl.UNSIGNED_BYTE=5121,sb.webgl.UNSIGNED_INT=5125,sb.webgl.UNSIGNED_SHORT=5123,sb.webgl.getContext=Vu,sb.webgl.getSupportedExtensions=function(){if(!Wu){const t=Vu(document.createElement("canvas"));t&&(Wu=t.getSupportedExtensions())}return Wu},sb.xml={},sb.xml.OBJECT_PROPERTY_NODE_FACTORY=ad,sb.xml.XML_SCHEMA_INSTANCE_URI=Zu,sb.xml.createElementNS=Yu,sb.xml.getAllTextContent=Ku,sb.xml.getAllTextContent_=qu,sb.xml.getAttributeNS=$u,sb.xml.getDocument=_d,sb.xml.getXMLSerializer=md,sb.xml.isDocument=Hu,sb.xml.makeArrayExtender=Qu,sb.xml.makeArrayPusher=td,sb.xml.makeArraySerializer=sd,sb.xml.makeChildAppender=rd,sb.xml.makeObjectPropertyPusher=id,sb.xml.makeObjectPropertySetter=nd,sb.xml.makeReplacer=ed,sb.xml.makeSequence=ld,sb.xml.makeSimpleNodeFactory=od,sb.xml.makeStructureNS=hd,sb.xml.parse=Ju,sb.xml.parseNode=cd,sb.xml.pushParseAndPop=ud,sb.xml.pushSerializeAndPop=gd,sb.xml.registerDocument=function(t){pd=t},sb.xml.registerXMLSerializer=function(t){fd=t},sb.xml.serialize=dd,sb}();
|
|
4
4
|
//# sourceMappingURL=ol.js.map
|