xv-webcomponents 1.22.2 → 1.23.1

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.
Files changed (73) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/maplibre-gl-CCZS3Rg5.js +900 -0
  3. package/dist/cjs/{xv-accordion-v2_48.cjs.entry.js → xv-accordion-v2_49.cjs.entry.js} +655 -66
  4. package/dist/cjs/xv-header-next.cjs.entry.js +1 -1
  5. package/dist/cjs/xv-mega-menu-next.cjs.entry.js +2 -2
  6. package/dist/cjs/xv-webcomponents.cjs.js +1 -1
  7. package/dist/collection/collection-manifest.json +1 -0
  8. package/dist/collection/components/xv-accordion/xv-accordion.js +24 -4
  9. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +11 -5
  10. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +1 -1
  11. package/dist/collection/components/xv-button/xv-button.js +2 -2
  12. package/dist/collection/components/xv-button-group/xv-button-group.js +1 -1
  13. package/dist/collection/components/xv-card/xv-card.js +1 -1
  14. package/dist/collection/components/xv-checkbox/xv-checkbox.js +2 -2
  15. package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +1 -1
  16. package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +2 -2
  17. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +1 -1
  18. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +1 -1
  19. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +2 -2
  20. package/dist/collection/components/xv-data-table/xv-data-table.js +1 -1
  21. package/dist/collection/components/xv-datepicker/xv-datepicker.js +63 -5
  22. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  23. package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
  24. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +1 -1
  25. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  26. package/dist/collection/components/xv-geo-map/xv-geo-map.css +907 -0
  27. package/dist/collection/components/xv-geo-map/xv-geo-map.js +984 -0
  28. package/dist/collection/components/xv-header/xv-header.js +1 -1
  29. package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
  30. package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
  31. package/dist/collection/components/xv-link/xv-link.js +1 -1
  32. package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
  33. package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
  34. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  35. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  36. package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
  37. package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
  38. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  39. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  40. package/dist/collection/components/xv-radio/xv-radio.js +2 -2
  41. package/dist/collection/components/xv-slider/xv-slider.js +1 -1
  42. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  43. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  44. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  45. package/dist/collection/components/xv-table/xv-table.js +1 -1
  46. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  47. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  48. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
  49. package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
  50. package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
  51. package/dist/collection/components/xv-tile/xv-tile.js +2 -2
  52. package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
  53. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
  54. package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/maplibre-gl-CS4Eagm9.js +813 -0
  57. package/dist/esm/maplibre-gl-shared.mjs +6 -0
  58. package/dist/esm/maplibre-gl-worker.mjs +6 -0
  59. package/dist/esm/{xv-accordion-v2_48.entry.js → xv-accordion-v2_49.entry.js} +655 -67
  60. package/dist/esm/xv-header-next.entry.js +1 -1
  61. package/dist/esm/xv-mega-menu-next.entry.js +2 -2
  62. package/dist/esm/xv-webcomponents.js +1 -1
  63. package/dist/types/components/xv-accordion/xv-accordion.d.ts +5 -4
  64. package/dist/types/components/xv-accordion-item/xv-accordion-item.d.ts +3 -0
  65. package/dist/types/components/xv-datepicker/xv-datepicker.d.ts +12 -0
  66. package/dist/types/components/xv-geo-map/xv-geo-map.d.ts +115 -0
  67. package/dist/types/components.d.ts +217 -0
  68. package/dist/xv-webcomponents/{p-511519a7.entry.js → p-77bd6e1f.entry.js} +2 -2
  69. package/dist/xv-webcomponents/{p-38e5f1e1.entry.js → p-93bd2dca.entry.js} +1 -1
  70. package/dist/xv-webcomponents/{p-7e05cb50.entry.js → p-9e3130ff.entry.js} +1 -1
  71. package/dist/xv-webcomponents/p-CS4Eagm9.js +10 -0
  72. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  73. package/package.json +2 -1
@@ -0,0 +1,900 @@
1
+ 'use strict';
2
+
3
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
4
+ /**
5
+ * MapLibre GL JS
6
+ * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v6.2.0/LICENSE.txt
7
+ */
8
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(t(o,`default`,{value:n,enumerable:true}),n));function l(e,t){this.x=e,this.y=t;}l.prototype={clone(){return new l(this.x,this.y)},add(e){return this.clone()._add(e)},sub(e){return this.clone()._sub(e)},multByPoint(e){return this.clone()._multByPoint(e)},divByPoint(e){return this.clone()._divByPoint(e)},mult(e){return this.clone()._mult(e)},div(e){return this.clone()._div(e)},rotate(e){return this.clone()._rotate(e)},rotateAround(e,t){return this.clone()._rotateAround(e,t)},matMult(e){return this.clone()._matMult(e)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(e){return this.x===e.x&&this.y===e.y},dist(e){return Math.sqrt(this.distSqr(e))},distSqr(e){let t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle(){return Math.atan2(this.y,this.x)},angleTo(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith(e){return this.angleWithSep(e.x,e.y)},angleWithSep(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult(e){let t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add(e){return this.x+=e.x,this.y+=e.y,this},_sub(e){return this.x-=e.x,this.y-=e.y,this},_mult(e){return this.x*=e,this.y*=e,this},_div(e){return this.x/=e,this.y/=e,this},_multByPoint(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint(e){return this.x/=e.x,this.y/=e.y,this},_unit(){return this._div(this.mag()),this},_perp(){let e=this.y;return this.y=this.x,this.x=-e,this},_rotate(e){let t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,i=n*this.x+t*this.y;return this.x=r,this.y=i,this},_rotateAround(e,t){let n=Math.cos(e),r=Math.sin(e),i=t.x+n*(this.x-t.x)-r*(this.y-t.y),a=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=i,this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:l},l.convert=function(e){if(e instanceof l)return e;if(Array.isArray(e))return new l(+e[0],+e[1]);if(e.x!==void 0&&e.y!==void 0)return new l(+e.x,+e.y);throw Error(`Expected [x, y] or {x, y} point format`)};function u(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}let d;function f(){return d??=typeof OffscreenCanvas<`u`&&new OffscreenCanvas(1,1).getContext(`2d`)&&typeof createImageBitmap==`function`,d}let p;function m(){if(p==null&&(p=false,f())){let e=new OffscreenCanvas(5,5).getContext(`2d`,{willReadFrequently:true});if(e){for(let t=0;t<25;t++){let n=t*4;e.fillStyle=`rgb(${n},${n+1},${n+2})`,e.fillRect(t%5,Math.floor(t/5),1,1);}let t=e.getImageData(0,0,5,5).data;for(let e=0;e<100;e++)if(e%4!=3&&t[e]!==e){p=true;break}}}return p||false}var h=typeof Float32Array<`u`?Float32Array:Array;function g(){var e=new h(9);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function _(e){var t=e[0],n=e[1],r=e[2],i=e[3],a=e[4],o=e[5],s=e[6],c=e[7],l=e[8];return t*(l*a-o*c)+n*(-l*i+o*s)+r*(c*i-a*s)}function v(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function y(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n+n,s=r+r,c=i+i,l=n*o,u=r*o,d=r*s,f=i*o,p=i*s,m=i*c,h=a*o,g=a*s,_=a*c;return e[0]=1-d-m,e[3]=u-_,e[6]=f+g,e[1]=u+_,e[4]=1-l-m,e[7]=p-h,e[2]=f-g,e[5]=p+h,e[8]=1-l-d,e}function b(){var e=new h(16);return h!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function x(e){var t=new h(16);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[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function S(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function C(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function w(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15],v=n*s-r*o,y=n*c-i*o,b=n*l-a*o,x=r*c-i*s,S=r*l-a*s,C=i*l-a*c,w=u*h-d*m,T=u*g-f*m,E=u*_-p*m,D=d*g-f*h,O=d*_-p*h,k=f*_-p*g,A=v*k-y*O+b*D+x*E-S*T+C*w;return A?(A=1/A,e[0]=(s*k-c*O+l*D)*A,e[1]=(i*O-r*k-a*D)*A,e[2]=(h*C-g*S+_*x)*A,e[3]=(f*S-d*C-p*x)*A,e[4]=(c*E-o*k-l*T)*A,e[5]=(n*k-i*E+a*T)*A,e[6]=(g*b-m*C-_*y)*A,e[7]=(u*C-f*b+p*y)*A,e[8]=(o*O-s*E+l*w)*A,e[9]=(r*E-n*O-a*w)*A,e[10]=(m*S-h*b+_*v)*A,e[11]=(d*b-u*S-p*v)*A,e[12]=(s*T-o*D-c*w)*A,e[13]=(n*D-r*T+i*w)*A,e[14]=(h*y-m*x-g*v)*A,e[15]=(u*x-d*y+f*v)*A,e):null}function T(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11],h=t[12],g=t[13],_=t[14],v=t[15],y=n[0],b=n[1],x=n[2],S=n[3];return e[0]=y*r+b*s+x*d+S*h,e[1]=y*i+b*c+x*f+S*g,e[2]=y*a+b*l+x*p+S*_,e[3]=y*o+b*u+x*m+S*v,y=n[4],b=n[5],x=n[6],S=n[7],e[4]=y*r+b*s+x*d+S*h,e[5]=y*i+b*c+x*f+S*g,e[6]=y*a+b*l+x*p+S*_,e[7]=y*o+b*u+x*m+S*v,y=n[8],b=n[9],x=n[10],S=n[11],e[8]=y*r+b*s+x*d+S*h,e[9]=y*i+b*c+x*f+S*g,e[10]=y*a+b*l+x*p+S*_,e[11]=y*o+b*u+x*m+S*v,y=n[12],b=n[13],x=n[14],S=n[15],e[12]=y*r+b*s+x*d+S*h,e[13]=y*i+b*c+x*f+S*g,e[14]=y*a+b*l+x*p+S*_,e[15]=y*o+b*u+x*m+S*v,e}function E(e,t,n){var r=n[0],i=n[1],a=n[2],o,s,c,l,u,d,f,p,m,h,g,_;return t===e?(e[12]=t[0]*r+t[4]*i+t[8]*a+t[12],e[13]=t[1]*r+t[5]*i+t[9]*a+t[13],e[14]=t[2]*r+t[6]*i+t[10]*a+t[14],e[15]=t[3]*r+t[7]*i+t[11]*a+t[15]):(o=t[0],s=t[1],c=t[2],l=t[3],u=t[4],d=t[5],f=t[6],p=t[7],m=t[8],h=t[9],g=t[10],_=t[11],e[0]=o,e[1]=s,e[2]=c,e[3]=l,e[4]=u,e[5]=d,e[6]=f,e[7]=p,e[8]=m,e[9]=h,e[10]=g,e[11]=_,e[12]=o*r+u*i+m*a+t[12],e[13]=s*r+d*i+h*a+t[13],e[14]=c*r+f*i+g*a+t[14],e[15]=l*r+p*i+_*a+t[15]),e}function D(e,t,n){var r=n[0],i=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function O(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[4],o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+l*r,e[5]=o*i+u*r,e[6]=s*i+d*r,e[7]=c*i+f*r,e[8]=l*i-a*r,e[9]=u*i-o*r,e[10]=d*i-s*r,e[11]=f*i-c*r,e}function k(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-l*r,e[1]=o*i-u*r,e[2]=s*i-d*r,e[3]=c*i-f*r,e[8]=a*r+l*i,e[9]=o*r+u*i,e[10]=s*r+d*i,e[11]=c*r+f*i,e}function A(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[4],u=t[5],d=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+l*r,e[1]=o*i+u*r,e[2]=s*i+d*r,e[3]=c*i+f*r,e[4]=l*i-a*r,e[5]=u*i-o*r,e[6]=d*i-s*r,e[7]=f*i-c*r,e}function ee(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function te(e,t,n,r,i){var a=1/Math.tan(t/2);if(e[0]=a/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){var o=1/(r-i);e[10]=(i+r)*o,e[14]=2*i*r*o;}else e[10]=-1,e[14]=-2*r;return e}var ne=te;function re(e,t,n,r,i,a,o){var s=1/(t-n),c=1/(r-i),l=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+n)*s,e[13]=(i+r)*c,e[14]=(o+a)*l,e[15]=1,e}var ie=re;function ae(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function oe(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],c=e[6],l=e[7],u=e[8],d=e[9],f=e[10],p=e[11],m=e[12],h=e[13],g=e[14],_=e[15],v=t[0],y=t[1],b=t[2],x=t[3],S=t[4],C=t[5],w=t[6],T=t[7],E=t[8],D=t[9],O=t[10],k=t[11],A=t[12],ee=t[13],te=t[14],ne=t[15];return Math.abs(n-v)<=1e-6*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-b)<=1e-6*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(a-x)<=1e-6*Math.max(1,Math.abs(a),Math.abs(x))&&Math.abs(o-S)<=1e-6*Math.max(1,Math.abs(o),Math.abs(S))&&Math.abs(s-C)<=1e-6*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(c-w)<=1e-6*Math.max(1,Math.abs(c),Math.abs(w))&&Math.abs(l-T)<=1e-6*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(u-E)<=1e-6*Math.max(1,Math.abs(u),Math.abs(E))&&Math.abs(d-D)<=1e-6*Math.max(1,Math.abs(d),Math.abs(D))&&Math.abs(f-O)<=1e-6*Math.max(1,Math.abs(f),Math.abs(O))&&Math.abs(p-k)<=1e-6*Math.max(1,Math.abs(p),Math.abs(k))&&Math.abs(m-A)<=1e-6*Math.max(1,Math.abs(m),Math.abs(A))&&Math.abs(h-ee)<=1e-6*Math.max(1,Math.abs(h),Math.abs(ee))&&Math.abs(g-te)<=1e-6*Math.max(1,Math.abs(g),Math.abs(te))&&Math.abs(_-ne)<=1e-6*Math.max(1,Math.abs(_),Math.abs(ne))}function se(){var e=new h(3);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function ce(e){var t=new h(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function le(e){var t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function ue(e,t,n){var r=new h(3);return r[0]=e,r[1]=t,r[2]=n,r}function de(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function fe(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function pe(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function me(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function he(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function ge(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function _e(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function ve(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}function ye(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[3]*r+n[7]*i+n[11]*a+n[15];return o||=1,e[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/o,e[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/o,e[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/o,e}function be(e,t,n){var r=t[0],i=t[1],a=t[2];return e[0]=r*n[0]+i*n[3]+a*n[6],e[1]=r*n[1]+i*n[4]+a*n[7],e[2]=r*n[2]+i*n[5]+a*n[8],e}function xe(e,t,n){var r=n[0],i=n[1],a=n[2],o=n[3],s=t[0],c=t[1],l=t[2],u=i*l-a*c,d=a*s-r*l,f=r*c-i*s;return u+=u,d+=d,f+=f,e[0]=s+o*u+i*f-a*d,e[1]=c+o*d+a*u-r*f,e[2]=l+o*f+r*d-i*u,e}function Se(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function Ce(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function we(e,t,n,r){var i=[],a=[];return i[0]=t[0]-n[0],i[1]=t[1]-n[1],i[2]=t[2]-n[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],e[0]=a[0]+n[0],e[1]=a[1]+n[1],e[2]=a[2]+n[2],e}function Te(e){return e[0]=0,e[1]=0,e[2]=0,e}var Ee=fe,De=le;(function(){var e=se();return function(t,n,r,i,a,o){var s,c;for(n||=3,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();function Oe(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function ke(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}function Ae(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function je(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}function Me(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3];return e[0]=n[0]*r+n[4]*i+n[8]*a+n[12]*o,e[1]=n[1]*r+n[5]*i+n[9]*a+n[13]*o,e[2]=n[2]*r+n[6]*i+n[10]*a+n[14]*o,e[3]=n[3]*r+n[7]*i+n[11]*a+n[15]*o,e}var Ne=ke;(function(){var e=Oe();return function(t,n,r,i,a,o){var s,c;for(n||=4,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}})();function Pe(){var e=new h(4);return h!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Fe(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function Ie(e,t,n,r){var i=t[0],a=t[1],o=t[2],s=t[3],c=n[0],l=n[1],u=n[2],d=n[3],f,p=i*c+a*l+o*u+s*d,m,h,g;return p<0&&(p=-p,c=-c,l=-l,u=-u,d=-d),1-p>1e-6?(f=Math.acos(p),m=Math.sin(f),h=Math.sin((1-r)*f)/m,g=Math.sin(r*f)/m):(h=1-r,g=r),e[0]=h*i+g*c,e[1]=h*a+g*l,e[2]=h*o+g*u,e[3]=h*s+g*d,e}function Le(e,t){var n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else {var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[o*3+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[a*3+o]-t[o*3+a])*r,e[a]=(t[a*3+i]+t[i*3+a])*r,e[o]=(t[o*3+i]+t[i*3+o])*r;}return e}function Re(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`zyx`,a=Math.PI/360;t*=a,r*=a,n*=a;var o=Math.sin(t),s=Math.cos(t),c=Math.sin(n),l=Math.cos(n),u=Math.sin(r),d=Math.cos(r);switch(i){case `xyz`:e[0]=o*l*d+s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d-o*c*u;break;case `xzy`:e[0]=o*l*d-s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d+o*c*u;break;case `yxz`:e[0]=o*l*d+s*c*u,e[1]=s*c*d-o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d+o*c*u;break;case `yzx`:e[0]=o*l*d+s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d-o*c*u;break;case `zxy`:e[0]=o*l*d-s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u+o*c*d,e[3]=s*l*d-o*c*u;break;case `zyx`:e[0]=o*l*d-s*c*u,e[1]=s*c*d+o*l*u,e[2]=s*l*u-o*c*d,e[3]=s*l*d+o*c*u;break;default:throw Error(`Unknown angle order `+i)}return e}var ze=je;((function(){var e=se(),t=ue(1,0,0),n=ue(0,1,0);return function(r,i,a){var o=_e(i,a);return o<-0.999999?(ve(e,t,i),De(e)<1e-6&&ve(e,n,i),ge(e,e),Fe(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(ve(e,i,a),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,ze(r,r))}}))(),function(){var e=Pe(),t=Pe();return function(n,r,i,a,o,s){return Ie(e,r,o,s),Ie(t,i,a,s),Ie(n,e,t,2*s*(1-s)),n}}(),function(){var e=g();return function(t,n,r,i){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],ze(t,Le(t,e))}}();function Be(){var e=new h(2);return h!=Float32Array&&(e[0]=0,e[1]=0),e}function Ve(e){var t=new h(2);return t[0]=e[0],t[1]=e[1],t}function He(e,t){var n=new h(2);return n[0]=e,n[1]=t,n}function Ue(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function We(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Ge(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Ke(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e}function qe(e){var t=e[0],n=e[1];return Math.sqrt(t*t+n*n)}function Je(e){var t=e[0],n=e[1];return t*t+n*n}function Ye(e,t){var n=t[0],r=t[1],i=n*n+r*r;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e}function Xe(e,t){return e[0]*t[0]+e[1]*t[1]}function Ze(e,t,n,r){var i=t[0]-n[0],a=t[1]-n[1],o=Math.sin(r),s=Math.cos(r);return e[0]=i*s-a*o+n[0],e[1]=i*o+a*s+n[1],e}function Qe(e,t){var n=e[0],r=e[1],i=t[0],a=t[1];return Math.abs(Math.atan2(r*i-n*a,n*i+r*a))}function $e(e){return e[0]=0,e[1]=0,e}var et=We,tt=Je;(function(){var e=Be();return function(t,n,r,i,a,o){var s,c;for(n||=2,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}})();const j=8192;function nt(e,t,n){return t*(j/(e.tileSize*2**(n-e.tileID.overscaledZ)))}function it(e){return e instanceof Error?e:Error(typeof e==`string`?e:String(e))}function at(){return new Float64Array(4)}function ot(){return new Float64Array(3)}function st(){return new Float64Array(16)}function ct(){let e=new Float64Array(16);return C(e),e}function lt(){let e=new Float32Array(16);return C(e),e}function ut(e,t,n,r,i=false){if(!n[0]&&!n[1])return [0,0];let a=i?r===`map`?-e.bearingInRadians:0:r===`viewport`?e.bearingInRadians:0;if(a){let e=Math.sin(a),t=Math.cos(a);n=[n[0]*t-n[1]*e,n[0]*e+n[1]*t];}return [i?n[0]:nt(t,n[0],e.zoom),i?n[1]:nt(t,n[1],e.zoom)]}function dt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]}function ft(e,t,n){let r=_([e[0],e[1],e[2],t[0],t[1],t[2],n[0],n[1],n[2]]);if(r===0)return null;let i=ve([],[t[0],t[1],t[2]],[n[0],n[1],n[2]]),a=ve([],[n[0],n[1],n[2]],[e[0],e[1],e[2]]),o=ve([],[e[0],e[1],e[2]],[t[0],t[1],t[2]]),s=pe([],i,-e[3]);return de(s,s,pe([],a,-t[3])),de(s,s,pe([],o,-n[3])),pe(s,s,1/r),s}function pt(e,t,n){let r=e[0]*n[0]+e[1]*n[1]+e[2]*n[2],i=t[0]*n[0]+t[1]*n[1]+t[2]*n[2];return i===0?null:(-r-n[3])/i}function mt(e,t,n,r){let i=Math.sqrt(e*e+t*t),a=Math.sqrt(n*n+r*r);e/=i,t/=i,n/=a,r/=a;let o=e*n+t*r,s=Math.acos(o);return -t*n+e*r>0?s:-s}function ht(e,t){let n=_t(e,360),r=_t(t,360),i=r-n,a=r>n?i-360:i+360;return Math.abs(i)<Math.abs(a)?i:a}function gt(e,t){let n=_t(e,Math.PI*2),r=_t(t,Math.PI*2);return Math.min(Math.abs(n-r),Math.abs(n-r+Math.PI*2),Math.abs(n-r-Math.PI*2))}function _t(e,t){return (e%t+t)%t}function vt(e,t,n,r,i){return yt(r,i,Tt((e-t)/(n-t),0,1))}function yt(e,t,n){return e*(1-n)+t*n}function bt(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return [t,n,r,i]}function xt(e){if(!e.length)return new Set;let t=Math.max(...e.map(e=>e.canonical.z)),n=1/0,r=-1/0,i=1/0,a=-1/0,o=[];for(let s of e){let{x:e,y:c,z:l}=s.canonical,u=2**(t-l),d=e*u,f=c*u;o.push({id:s,x:d,y:f}),d<n&&(n=d),d>r&&(r=d),f<i&&(i=f),f>a&&(a=f);}let s=new Set;for(let e of o)(e.x===n||e.x===r||e.y===i||e.y===a)&&s.add(e.id);return s}function St(e){if(e<=0)return 0;if(e>=1)return 1;let t=e*e,n=t*e;return 4*(e<.5?n:3*(e-t)+n-.75)}function Ct(e,t,n,r){return u(e,t,n,r)}const wt=Ct(.25,.1,.25,1);function Tt(e,t,n){return Math.min(n,Math.max(t,e))}function Et(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function Dt(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Ot(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}let kt=1;function At(){return kt++}function jt(e){return Math.log(e)/Math.LN2%1==0}function Mt(e){return e<=1?1:2**Math.ceil(Math.log(e)/Math.LN2)}function Nt(e){return 2**e}function Pt(e){return Math.log(e)/Math.LN2}function Ft(e,t,n){if(t<=0)return e;let r=1/t;return n===void 0||Math.abs(n)<1e-10?Math.round(e*r)/r:(n>0?Math.ceil(e*r-1e-9):Math.floor(e*r+1e-10))/r}function It(e,t,n){let r={};for(let i in e)r[i]=t.call(this,e[i],i,e);return r}function Lt(e,t,n){let r={};for(let i in e)t.call(this,e[i],i,e)&&(r[i]=e[i]);return r}function Rt(e,t){if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return false;for(let n=0;n<e.length;n++)if(!Rt(e[n],t[n]))return false;return true}if(typeof e==`object`&&e&&t!==null){if(typeof t!=`object`||Object.keys(e).length!==Object.keys(t).length)return false;for(let n in e)if(!Rt(e[n],t[n]))return false;return true}return e===t}function zt(e){return Array.isArray(e)?e.map(zt):typeof e==`object`&&e?It(e,zt):e}const Bt={};function Vt(e){Bt[e]||(typeof console<`u`&&console.warn(e),Bt[e]=true);}function Ht(e,t,n){return (n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function Ut(e,t,n,r){let i=t.y-e.y,a=t.x-e.x,o=r.y-n.y,s=r.x-n.x,c=o*a-s*i;if(c===0)return null;let u=e.y-n.y,d=e.x-n.x,f=(s*u-o*d)/c;return new l(e.x+f*a,e.y+f*i)}function Wt([e,t,n]){return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]}function Gt(e){return typeof WorkerGlobalScope<`u`&&e!==void 0&&e instanceof WorkerGlobalScope}function Kt(e){let t=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,n={};if(e.replace(t,(e,t,r,i)=>{let a=r||i;return n[t]=!a||a.toLowerCase(),``}),n[`max-age`]){let e=parseInt(n[`max-age`],10);isNaN(e)?delete n[`max-age`]:n[`max-age`]=e;}return n}let qt=null;function Jt(e){if(qt==null){let t=e.navigator?e.navigator.userAgent:null;qt=!!e.safari||!!(t&&(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)));}return qt}function Yt(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap}const Xt=async(e,t)=>{if(e.byteLength===0)return createImageBitmap(new ImageData(1,1),t);let n=new Blob([new Uint8Array(e)],{type:`image/png`});try{return createImageBitmap(n,t)}catch(e){throw Error(`Could not load image because of ${it(e).message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}},Zt=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`,Qt=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>{t(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>r.src=Zt);},r.onerror=()=>n(Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));let i=new Blob([new Uint8Array(e)],{type:`image/png`});r.src=e.byteLength?URL.createObjectURL(i):Zt;});function $t(e,t,n,r,i){let a=Math.max(1,0)*4,o=(Math.max(0,n)-n)*r*4+a,s=r*4,c=Math.max(0,t),l=Math.max(0,n),u=Math.min(e.width,t+r),d=Math.min(e.height,n+i);return {rect:{x:c,y:l,width:u-c,height:d-l},layout:[{offset:o,stride:s}]}}async function en(e,t,n,r,i){if(typeof VideoFrame>`u`)throw Error(`VideoFrame not supported`);let a=new VideoFrame(e,{timestamp:0});try{let o=a?.format;if(!o||!(o.startsWith(`BGR`)||o.startsWith(`RGB`)))throw Error(`Unrecognized format ${o}`);let s=o.startsWith(`BGR`),c=new Uint8ClampedArray(r*i*4);if(await a.copyTo(c,$t(e,t,n,r,i)),s)for(let e=0;e<c.length;e+=4){let t=c[e];c[e]=c[e+2],c[e+2]=t;}return c}finally{a.close();}}function on(e,t,n,r){return e.addEventListener(t,n,r),{unsubscribe:()=>{e.removeEventListener(t,n,r);}}}function sn(e){return e*Math.PI/180}function cn(e){return e/Math.PI*180}function ln(e,t){return e.roll==t.roll&&e.pitch==t.pitch&&e.bearing==t.bearing}function un(e){let t=new Float64Array(9);y(t,e);let n=cn(-Math.asin(Tt(t[2],-1,1))),r,i;return Math.hypot(t[5],t[8])<.001?(r=0,i=-cn(Math.atan2(t[3],t[4]))):(r=cn(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),i=cn(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:r,pitch:n+90,bearing:i}}function dn(e,t,n){let r=He(t.x-n.x,t.y-n.y),i=He(e.x-n.x,e.y-n.y),a=r[0]*i[1]-r[1]*i[0];return cn(Math.atan2(a,Xe(r,i)))}function fn(e,t,n){let r=new Float64Array(4);return Re(r,e,t-90,n),r}const pn=85.051129,mn={touchstart:true,touchmove:true,touchmoveWindow:true,touchend:true,touchcancel:true},hn={dblclick:true,click:true,mouseover:true,mouseout:true,mousedown:true,mousemove:true,mousemoveWindow:true,mouseup:true,mouseupWindow:true,contextmenu:true,wheel:true};function gn(e,t){return mn[t]&&`touches`in e}function _n(e,t){if(!hn[t])return false;let n=e,r=(n?.target)?.ownerDocument?.defaultView||window;return n instanceof r.MouseEvent||n instanceof r.WheelEvent}function vn(e){return mn[e]||hn[e]}const yn=`AbortError`;var bn=class extends Error{constructor(e=yn){super(e instanceof Error?e.message:e),this.name=yn,e instanceof Error&&e.stack&&(this.stack=e.stack);}};function xn(e){return e instanceof Error&&e.name===`AbortError`}function Sn(e){if(e.aborted)throw new bn(e.reason)}const Cn={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:``};function wn(e){return Cn.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf(`://`))]}function Tn(e,t){Cn.REGISTERED_PROTOCOLS[e]=t;}function En(e){delete Cn.REGISTERED_PROTOCOLS[e];}const Dn=`global-dispatcher`;var On=class extends Error{constructor(e,t,n,r){super(`AJAXError: ${t} (${e}): ${n}`),this.status=e,this.statusText=t,this.url=n,this.body=r;}};function kn(){if(Gt(self))return self.worker?.referrer;if(window.location.protocol===`blob:`)try{return window.parent.location.href}catch{}return window.location.href}const An=e=>e.startsWith(`file:`)||kn()?.startsWith(`file:`)&&!/^\w+:/.test(e);async function jn(e,t){let n=new Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,cache:e.cache,referrer:kn(),referrerPolicy:e.referrerPolicy,signal:t.signal});e.type===`json`&&!n.headers.has(`Accept`)&&n.headers.set(`Accept`,`application/json`);let r;try{r=await fetch(n);}catch(t){throw xn(t)?t:new On(0,it(t).message,e.url,new Blob)}if(!r.ok){let t=await r.blob();throw new On(r.status,r.statusText,e.url,t)}let i;i=e.type===`arrayBuffer`||e.type===`image`?r.arrayBuffer():e.type===`json`?r.json():r.text();let a=await i;return Sn(t.signal),{data:a,cacheControl:r.headers.get(`Cache-Control`),expires:r.headers.get(`Expires`),etag:r.headers.get(`ETag`)}}function Mn(e,t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(e.method||`GET`,e.url,true),(e.type===`arrayBuffer`||e.type===`image`)&&(i.responseType=`arraybuffer`);for(let t in e.headers)i.setRequestHeader(t,e.headers[t]);e.type===`json`&&(i.responseType=`text`,e.headers?.Accept||i.setRequestHeader(`Accept`,`application/json`)),i.withCredentials=e.credentials===`include`,i.onerror=()=>{r(Error(i.statusText));},i.onload=()=>{if(!t.signal.aborted)if((i.status>=200&&i.status<300||i.status===0)&&i.response!==null){let t=i.response;if(e.type===`json`)try{t=JSON.parse(i.response);}catch(e){r(e);return}n({data:t,cacheControl:i.getResponseHeader(`Cache-Control`),expires:i.getResponseHeader(`Expires`),etag:i.getResponseHeader(`ETag`)});}else {let t=new Blob([i.response],{type:i.getResponseHeader(`Content-Type`)});r(new On(i.status,i.statusText,e.url,t));}},t.signal.addEventListener(`abort`,()=>{i.abort(),r(new bn(t.signal.reason));}),i.send(e.body);})}const Nn=async function(e,t){if(e.url.includes(`://`)&&!/^https?:|^file:/.test(e.url)){let n=wn(e.url);if(n){let r=await n(e,t);return !r.data&&e.type===`arrayBuffer`?Dt(r,{data:new ArrayBuffer(0)}):r}if(Gt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,targetMapId:Dn},t)}if(!An(e.url)){if(fetch&&Request&&AbortController&&Object.hasOwn(Request.prototype,`signal`))return jn(e,t);if(Gt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,mustQueue:true,targetMapId:Dn},t)}return Mn(e,t)},Pn=(e,t)=>Nn(Dt(e,{type:`json`}),t),Fn=(e,t)=>Nn(Dt(e,{type:`arrayBuffer`}),t);function In(e){if(!e||e.startsWith(`data:image/`))return true;if(e.startsWith(`blob:`)&&(e=e.slice(5),e.startsWith(`null`)))return false;if(e.indexOf(`://`)<=0)return true;let t=new URL(e),n=window.location;return t.protocol===n.protocol&&t.host===n.host}const Ln=e=>{let t=window.document.createElement(`video`);return t.muted=true,new Promise(n=>{t.onloadstart=()=>{n(t);};for(let n of e){let e=window.document.createElement(`source`);In(n)||(t.crossOrigin=`Anonymous`),e.src=n,t.appendChild(e);}})};function Rn(e,t,n){n[e]?.includes(t)||(n[e]||=[],n[e].push(t));}function zn(e,t,n){if(n?.[e]){let r=n[e].indexOf(t);r!==-1&&n[e].splice(r,1);}}var Bn=class{constructor(e,t={}){Dt(this,t),this.type=e;}},Vn=class extends Bn{constructor(e,t={}){super(`error`,Dt({error:e},t));}},Hn=class{on(e,t){return this._listeners||={},Rn(e,t,this._listeners),{unsubscribe:()=>{this.off(e,t);}}}off(e,t){return zn(e,t,this._listeners),zn(e,t,this._oneTimeListeners),this}once(e,t){return t?(this._oneTimeListeners||={},Rn(e,t,this._oneTimeListeners),this):new Promise(t=>this.once(e,t))}fire(e,t){typeof e==`string`&&(e=new Bn(e,t||{}));let n=e.type;if(this.listens(n)){e.target=this;let t=this._listeners?.[n]?this._listeners[n].slice():[];for(let n of t)n.call(this,e);let r=this._oneTimeListeners?.[n]?this._oneTimeListeners[n].slice():[];for(let t of r)zn(n,t,this._oneTimeListeners),t.call(this,e);let i=this._eventedParent;i&&(Dt(e,typeof this._eventedParentData==`function`?this._eventedParentData():this._eventedParentData),i.fire(e));}else e instanceof Vn&&console.error(e.error);return this}listens(e){return this._listeners?.[e]?.length>0||this._oneTimeListeners?.[e]?.length>0||this._eventedParent?.listens(e)}setEventedParent(e,t){return this._eventedParent=e,this._eventedParentData=t,this}};const M={$version:8,$root:{version:{required:true,type:`enum`,values:[8]},name:{type:`string`},metadata:{type:`*`},center:{type:`array`,value:`number`,length:2},centerAltitude:{type:`number`},zoom:{type:`number`},bearing:{type:`number`,default:0,period:360,units:`degrees`},pitch:{type:`number`,default:0,units:`degrees`},roll:{type:`number`,default:0,units:`degrees`},state:{type:`state`,default:{}},light:{type:`light`},sky:{type:`sky`},projection:{type:`projection`},terrain:{type:`terrain`},sources:{required:true,type:`sources`},sprite:{type:`sprite`},glyphs:{type:`string`},"font-faces":{type:`fontFaces`},transition:{type:`transition`},layers:{required:true,type:`array`,value:`layer`}},sources:{"*":{type:`source`}},source:[`source_vector`,`source_raster`,`source_raster_dem`,`source_geojson`,`source_video`,`source_image`],source_vector:{type:{required:true,type:`enum`,values:{vector:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},attribution:{type:`string`},promoteId:{type:`promoteId`},volatile:{type:`boolean`,default:false},encoding:{type:`enum`,values:{mvt:{},mlt:{}},default:`mvt`},"*":{type:`*`}},source_raster:{type:{required:true,type:`enum`,values:{raster:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},attribution:{type:`string`},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_raster_dem:{type:{required:true,type:`enum`,values:{"raster-dem":{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},attribution:{type:`string`},encoding:{type:`enum`,values:{terrarium:{},mapbox:{},custom:{}},default:`mapbox`},redFactor:{type:`number`,default:1},blueFactor:{type:`number`,default:1},greenFactor:{type:`number`,default:1},baseShift:{type:`number`,default:0},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_geojson:{type:{required:true,type:`enum`,values:{geojson:{}}},data:{required:true,type:`*`},maxzoom:{type:`number`,default:18},attribution:{type:`string`},buffer:{type:`number`,default:128,maximum:512,minimum:0},filter:{type:`filter`},tolerance:{type:`number`,default:.375},cluster:{type:`boolean`,default:false},clusterRadius:{type:`number`,default:50,minimum:0},clusterMaxZoom:{type:`number`},clusterMinPoints:{type:`number`},clusterProperties:{type:`*`},lineMetrics:{type:`boolean`,default:false},generateId:{type:`boolean`,default:false},promoteId:{type:`promoteId`}},source_video:{type:{required:true,type:`enum`,values:{video:{}}},urls:{required:true,type:`array`,value:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},source_image:{type:{required:true,type:`enum`,values:{image:{}}},url:{required:true,type:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},layer:{id:{type:`string`,required:true},type:{type:`enum`,values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:true},metadata:{type:`*`},source:{type:`string`},"source-layer":{type:`string`},minzoom:{type:`number`,minimum:0,maximum:24},maxzoom:{type:`number`,minimum:0,maximum:24},filter:{type:`filter`},layout:{type:`layout`},paint:{type:`paint`}},layout:[`layout_fill`,`layout_line`,`layout_circle`,`layout_heatmap`,`layout_fill-extrusion`,`layout_symbol`,`layout_raster`,`layout_hillshade`,`layout_color-relief`,`layout_background`],layout_background:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_fill:{"fill-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_circle:{"circle-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_heatmap:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_fill-extrusion":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`},"fill-extrusion-rounded-corner-distance":{type:`number`,default:0,minimum:0,units:`meters`,"property-type":`constant`}},layout_line:{"line-cap":{type:`enum`,values:{butt:{},round:{},square:{}},default:`butt`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-join":{type:`enum`,values:{bevel:{},round:{},miter:{}},default:`miter`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-miter-limit":{type:`number`,default:2,requires:[{"line-join":`miter`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-round-limit":{type:`number`,default:1.05,requires:[{"line-join":`round`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_symbol:{"symbol-placement":{type:`enum`,values:{point:{},line:{},"line-center":{}},default:`point`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-spacing":{type:`number`,default:250,minimum:1,units:`pixels`,requires:[{"symbol-placement":`line`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-avoid-edges":{type:`boolean`,default:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-z-order":{type:`enum`,values:{auto:{},"viewport-y":{},source:{}},default:`auto`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-allow-overlap":{type:`boolean`,default:false,requires:[`icon-image`,{"!":`icon-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-ignore-placement":{type:`boolean`,default:false,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-optional":{type:`boolean`,default:false,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-size":{type:`number`,default:1,minimum:0,units:`factor of the original icon size`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-text-fit":{type:`enum`,values:{none:{},width:{},height:{},both:{}},default:`none`,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-text-fit-padding":{type:`array`,value:`number`,length:4,default:[0,0,0,0],units:`pixels`,requires:[`icon-image`,`text-field`,{"icon-text-fit":[`both`,`width`,`height`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-image":{type:`resolvedImage`,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-padding":{type:`padding`,default:[2],units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-keep-upright":{type:`boolean`,default:false,requires:[`icon-image`,{"icon-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-offset":{type:`array`,value:`number`,length:2,default:[0,0],requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-field":{type:`formatted`,default:``,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-font":{type:`array`,value:`string`,default:[`Open Sans Regular`,`Arial Unicode MS Regular`],requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-size":{type:`number`,default:16,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-width":{type:`number`,default:10,minimum:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-line-height":{type:`number`,default:1.2,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-letter-spacing":{type:`number`,default:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-justify":{type:`enum`,values:{auto:{},left:{},center:{},right:{}},default:`center`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-radial-offset":{type:`number`,units:`ems`,default:0,requires:[`text-field`],"property-type":`data-driven`,expression:{interpolated:true,parameters:[`zoom`,`feature`]}},"text-variable-anchor":{type:`array`,value:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-variable-anchor-offset":{type:`variableAnchorOffsetCollection`,requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`text-field`,{"!":`text-variable-anchor`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-angle":{type:`number`,default:45,units:`degrees`,requires:[`text-field`,{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-writing-mode":{type:`array`,value:`enum`,values:{horizontal:{},vertical:{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-padding":{type:`number`,default:2,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-keep-upright":{type:`boolean`,default:true,requires:[`text-field`,{"text-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-transform":{type:`enum`,values:{none:{},uppercase:{},lowercase:{}},default:`none`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-offset":{type:`array`,value:`number`,units:`ems`,length:2,default:[0,0],requires:[`text-field`,{"!":`text-radial-offset`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-allow-overlap":{type:`boolean`,default:false,requires:[`text-field`,{"!":`text-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-ignore-placement":{type:`boolean`,default:false,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-optional":{type:`boolean`,default:false,requires:[`text-field`,`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_raster:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_hillshade:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_color-relief":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},filter:{type:`boolean`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},filter_operator:{type:`enum`,values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:`enum`,values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:`expression`},stops:{type:`array`,value:`function_stop`},base:{type:`number`,default:1,minimum:0},property:{type:`string`,default:`$zoom`},type:{type:`enum`,values:{identity:{},exponential:{},interval:{},categorical:{}},default:`exponential`},colorSpace:{type:`enum`,values:{rgb:{},lab:{},hcl:{}},default:`rgb`},default:{type:`*`,required:false}},function_stop:{type:`array`,minimum:0,maximum:24,value:[`number`,`color`],length:2},expression:{type:`array`,value:`expression_name`,minimum:1},light:{anchor:{type:`enum`,default:`viewport`,values:{map:{},viewport:{}},"property-type":`data-constant`,transition:false,expression:{interpolated:false,parameters:[`zoom`]}},position:{type:`array`,default:[1.15,210,30],length:3,value:`number`,"property-type":`data-constant`,transition:true,expression:{interpolated:true,parameters:[`zoom`]}},color:{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},intensity:{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},sky:{"sky-color":{type:`color`,"property-type":`data-constant`,default:`#88C6FC`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-ground-blend":{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-fog-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"sky-horizon-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"atmosphere-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},terrain:{source:{type:`string`,required:true},exaggeration:{type:`number`,minimum:0,default:1}},projection:{type:{type:`projectionDefinition`,default:`mercator`,"property-type":`data-constant`,transition:false,expression:{interpolated:true,parameters:[`zoom`]}}},paint:[`paint_fill`,`paint_line`,`paint_circle`,`paint_heatmap`,`paint_fill-extrusion`,`paint_symbol`,`paint_raster`,`paint_hillshade`,`paint_color-relief`,`paint_background`],paint_fill:{"fill-antialias":{type:`boolean`,default:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"fill-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-outline-color":{type:`color`,transition:true,requires:[{"!":`fill-pattern`},{"fill-antialias":true}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`fill-extrusion-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-extrusion-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"fill-extrusion-height":{type:`number`,default:0,minimum:0,units:`meters`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-base":{type:`number`,default:0,minimum:0,units:`meters`,transition:true,requires:[`fill-extrusion-height`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-vertical-gradient":{type:`boolean`,default:true,transition:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_line:{"line-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"line-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`line-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"line-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`line-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"line-width":{type:`number`,default:1,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-gap-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-offset":{type:`number`,default:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-dasharray":{type:`array`,value:`number`,minimum:0,transition:true,units:`line widths`,requires:[{"!":`line-pattern`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-gradient":{type:`color`,transition:false,requires:[{"!":`line-dasharray`},{"!":`line-pattern`},{source:`geojson`,has:{lineMetrics:true}}],expression:{interpolated:true,parameters:[`line-progress`]},"property-type":`color-ramp`}},paint_circle:{"circle-radius":{type:`number`,default:5,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-blur":{type:`number`,default:0,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"circle-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`circle-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-scale":{type:`enum`,values:{map:{},viewport:{}},default:`map`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-alignment":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-stroke-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`}},paint_heatmap:{"heatmap-radius":{type:`number`,default:30,minimum:1,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-weight":{type:`number`,default:1,minimum:0,transition:false,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-intensity":{type:`number`,default:1,minimum:0,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"heatmap-color":{type:`color`,default:[`interpolate`,[`linear`],[`heatmap-density`],0,`rgba(0, 0, 255, 0)`,.1,`royalblue`,.3,`cyan`,.5,`lime`,.7,`yellow`,1,`red`],transition:false,expression:{interpolated:true,parameters:[`heatmap-density`]},"property-type":`color-ramp`},"heatmap-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_symbol:{"icon-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-color":{type:`color`,default:`#000000`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`icon-image`,`icon-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-color":{type:`color`,default:`#000000`,transition:true,overridable:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`text-field`,`text-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_raster:{"raster-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-hue-rotate":{type:`number`,default:0,period:360,transition:true,units:`degrees`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-min":{type:`number`,default:0,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-max":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-saturation":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-contrast":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-resampling":{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-fade-duration":{type:`number`,default:300,minimum:0,transition:false,units:`milliseconds`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_hillshade:{"hillshade-illumination-direction":{type:`numberArray`,default:335,minimum:0,maximum:359,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-altitude":{type:`numberArray`,default:45,minimum:0,maximum:90,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-exaggeration":{type:`number`,default:.5,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-shadow-color":{type:`colorArray`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-highlight-color":{type:`colorArray`,default:`#FFFFFF`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-accent-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-method":{type:`enum`,values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:`standard`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},"paint_color-relief":{"color-relief-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"color-relief-color":{type:`color`,transition:false,expression:{interpolated:true,parameters:[`elevation`]},"property-type":`color-ramp`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_background:{"background-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`background-pattern`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"background-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`cross-faded`},"background-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},transition:{duration:{type:`number`,default:300,minimum:0,units:`milliseconds`},delay:{type:`number`,default:0,minimum:0,units:`milliseconds`}},"property-type":{"data-driven":{type:`property-type`},"cross-faded":{type:`property-type`},"cross-faded-data-driven":{type:`property-type`},"color-ramp":{type:`property-type`},"data-constant":{type:`property-type`},constant:{type:`property-type`}},promoteId:{"*":{type:`string`}},interpolation:{type:`array`,value:`interpolation_name`,minimum:1},interpolation_name:{type:`enum`,values:{linear:{syntax:{overloads:[{parameters:[],"output-type":`interpolation`}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:[`base`],"output-type":`interpolation`}],parameters:[{name:`base`,type:`number literal`}]}},"cubic-bezier":{syntax:{overloads:[{parameters:[`x1`,`y1`,`x2`,`y2`],"output-type":`interpolation`}],parameters:[{name:`x1`,type:`number literal`},{name:`y1`,type:`number literal`},{name:`x2`,type:`number literal`},{name:`y2`,type:`number literal`}]}}}}},Un=[`type`,`source`,`source-layer`,`minzoom`,`maxzoom`,`filter`,`layout`];function Wn(e,t){let n={};for(let t in e)t!==`ref`&&(n[t]=e[t]);return Un.forEach(e=>{e in t&&(n[e]=t[e]);}),n}function Gn(e){e=e.slice();let t=Object.create(null);for(let n=0;n<e.length;n++)t[e[n].id]=e[n];for(let n=0;n<e.length;n++)`ref`in e[n]&&(e[n]=Wn(e[n],t[e[n].ref]));return e}function N(e,t){if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return false;for(let n=0;n<e.length;n++)if(!N(e[n],t[n]))return false;return true}if(typeof e==`object`&&e&&t!==null){if(typeof t!=`object`||Object.keys(e).length!==Object.keys(t).length)return false;for(let n in e)if(!N(e[n],t[n]))return false;return true}return e===t}function Kn(e,t){e.push(t);}function qn(e,t,n){Kn(n,{command:`addSource`,args:[e,t[e]]});}function Jn(e,t,n){Kn(t,{command:`removeSource`,args:[e]}),n[e]=true;}function Yn(e,t,n,r){Jn(e,n,r),qn(e,t,n);}function Xn(e,t,n){let r;for(r in e[n])if(Object.prototype.hasOwnProperty.call(e[n],r)&&r!==`data`&&!N(e[n][r],t[n][r]))return false;for(r in t[n])if(Object.prototype.hasOwnProperty.call(t[n],r)&&r!==`data`&&!N(e[n][r],t[n][r]))return false;return true}function Zn(e,t,n,r){e||={},t||={};let i;for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&(Object.prototype.hasOwnProperty.call(t,i)||Jn(i,n,r));for(i in t)Object.prototype.hasOwnProperty.call(t,i)&&(Object.prototype.hasOwnProperty.call(e,i)?N(e[i],t[i])||(e[i].type===`geojson`&&t[i].type===`geojson`&&Xn(e,t,i)?Kn(n,{command:`setGeoJSONSourceData`,args:[i,t[i].data]}):Yn(i,t,n,r)):qn(i,t,n));}function Qn(e,t,n,r,i,a){e||={},t||={};for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&(N(e[o],t[o])||n.push({command:a,args:[r,o,t[o],i]}));for(let o in t)!Object.prototype.hasOwnProperty.call(t,o)||Object.prototype.hasOwnProperty.call(e,o)||N(e[o],t[o])||n.push({command:a,args:[r,o,t[o],i]});}function $n(e){return e.id}function er(e,t){return e[t.id]=t,e}function tr(e,t,n){e||=[],t||=[];let r=e.map($n),i=t.map($n),a=e.reduce(er,{}),o=t.reduce(er,{}),s=r.slice(),c=Object.create(null),l,u,d,f,p;for(let e=0,t=0;e<r.length;e++)l=r[e],Object.prototype.hasOwnProperty.call(o,l)?t++:(Kn(n,{command:`removeLayer`,args:[l]}),s.splice(s.indexOf(l,t),1));for(let e=0,t=0;e<i.length;e++)l=i[i.length-1-e],s[s.length-1-e]!==l&&(Object.prototype.hasOwnProperty.call(a,l)?(Kn(n,{command:`removeLayer`,args:[l]}),s.splice(s.lastIndexOf(l,s.length-t),1)):t++,f=s[s.length-e],Kn(n,{command:`addLayer`,args:[o[l],f]}),s.splice(s.length-e,0,l),c[l]=true);for(let e=0;e<i.length;e++)if(l=i[e],u=a[l],d=o[l],!(c[l]||N(u,d))){if(!N(u.source,d.source)||!N(u[`source-layer`],d[`source-layer`])||!N(u.type,d.type)){Kn(n,{command:`removeLayer`,args:[l]}),f=s[s.lastIndexOf(l)+1],Kn(n,{command:`addLayer`,args:[d,f]});continue}for(p in Qn(u.layout,d.layout,n,l,null,`setLayoutProperty`),Qn(u.paint,d.paint,n,l,null,`setPaintProperty`),N(u.filter,d.filter)||Kn(n,{command:`setFilter`,args:[l,d.filter]}),(!N(u.minzoom,d.minzoom)||!N(u.maxzoom,d.maxzoom))&&Kn(n,{command:`setLayerZoomRange`,args:[l,d.minzoom,d.maxzoom]}),u)Object.prototype.hasOwnProperty.call(u,p)&&p!==`layout`&&p!==`paint`&&p!==`filter`&&p!==`metadata`&&p!==`minzoom`&&p!==`maxzoom`&&(p.indexOf(`paint.`)===0?Qn(u[p],d[p],n,l,p.slice(6),`setPaintProperty`):N(u[p],d[p])||Kn(n,{command:`setLayerProperty`,args:[l,p,d[p]]}));for(p in d)!Object.prototype.hasOwnProperty.call(d,p)||Object.prototype.hasOwnProperty.call(u,p)||p!==`layout`&&p!==`paint`&&p!==`filter`&&p!==`metadata`&&p!==`minzoom`&&p!==`maxzoom`&&(p.indexOf(`paint.`)===0?Qn(u[p],d[p],n,l,p.slice(6),`setPaintProperty`):N(u[p],d[p])||Kn(n,{command:`setLayerProperty`,args:[l,p,d[p]]}));}}function nr(e,t){if(!e)return [{command:`setStyle`,args:[t]}];let n=[];try{if(!N(e.version,t.version))return [{command:`setStyle`,args:[t]}];N(e.center,t.center)||n.push({command:`setCenter`,args:[t.center]}),N(e.state,t.state)||n.push({command:`setGlobalState`,args:[t.state]}),N(e.centerAltitude,t.centerAltitude)||n.push({command:`setCenterAltitude`,args:[t.centerAltitude]}),N(e.zoom,t.zoom)||n.push({command:`setZoom`,args:[t.zoom]}),N(e.bearing,t.bearing)||n.push({command:`setBearing`,args:[t.bearing]}),N(e.pitch,t.pitch)||n.push({command:`setPitch`,args:[t.pitch]}),N(e.roll,t.roll)||n.push({command:`setRoll`,args:[t.roll]}),N(e.sprite,t.sprite)||n.push({command:`setSprite`,args:[t.sprite]}),N(e.glyphs,t.glyphs)||n.push({command:`setGlyphs`,args:[t.glyphs]}),N(e.transition,t.transition)||n.push({command:`setTransition`,args:[t.transition]}),N(e.light,t.light)||n.push({command:`setLight`,args:[t.light]}),N(e.terrain,t.terrain)||n.push({command:`setTerrain`,args:[t.terrain]}),N(e.sky,t.sky)||n.push({command:`setSky`,args:[t.sky]}),N(e.projection,t.projection)||n.push({command:`setProjection`,args:[t.projection]});let r={},i=[];Zn(e.sources,t.sources,i,r);let a=[];e.layers&&e.layers.forEach(e=>{`source`in e&&r[e.source]?n.push({command:`removeLayer`,args:[e.id]}):a.push(e);}),n=n.concat(i),tr(a,t.layers,n);}catch(e){console.warn(`Unable to compute style diff:`,e),n=[{command:`setStyle`,args:[t]}];}return n}var P=class{constructor(e,t,n,r,i=`error`){this.message=(e?`${e}: `:``)+n,r&&(this.identifier=r),this.severity=i,t!=null&&t.__line__&&(this.line=t.__line__);}},rr=class extends Error{constructor(e,t){super(t),this.message=t,this.key=e;}},ir=class e{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n;}concat(t){return new e(this,t)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return this.bindings[e]?true:this.parent?this.parent.has(e):false}};const ar={kind:`null`},F={kind:`number`},I={kind:`string`},L={kind:`boolean`},or={kind:`color`},sr={kind:`projectionDefinition`},cr={kind:`object`},R={kind:`value`},lr={kind:`error`},ur={kind:`collator`},dr={kind:`formatted`},fr={kind:`padding`},pr={kind:`colorArray`},mr={kind:`numberArray`},hr={kind:`resolvedImage`},gr={kind:`variableAnchorOffsetCollection`};function _r(e,t){return {kind:`array`,itemType:e,N:t}}function z(e){if(e.kind===`array`){let t=z(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}const vr=[ar,F,I,L,or,sr,dr,cr,_r(R),fr,mr,pr,hr,gr];function yr(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!yr(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else if(e.kind===t.kind)return null;else if(e.kind===`value`){for(let e of vr)if(!yr(e,t))return null}return `Expected ${z(e)} but found ${z(t)} instead.`}function br(e,t){return t.some(t=>t.kind===e.kind)}function xr(e,t){return t.some(t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e)}function Sr(e,t){return e.kind===`array`&&t.kind===`array`?e.itemType.kind===t.itemType.kind&&typeof e.N==`number`:e.kind===t.kind}const Cr=.96422,wr=.82521,Tr=4/29,Er$1=6/29,Dr$1=3*Er$1*Er$1,Or$1=Math.PI/180,kr$1=180/Math.PI;function Ar$1(e){return e%=360,e<0&&(e+=360),e}function jr$1([e,t,n,r]){e=Mr$1(e),t=Mr$1(t),n=Mr$1(n);let i,a,o=Nr$1((.2225045*e+.7168786*t+.0606169*n)/1);e===t&&t===n?i=a=o:(i=Nr$1((.4360747*e+.3850649*t+.1430804*n)/Cr),a=Nr$1((.0139322*e+.0971045*t+.7141733*n)/wr));let s=116*o-16;return [s<0?0:s,500*(i-o),200*(o-a),r]}function Mr$1(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Nr$1(e){return e>.008856451679035631?e**(1/3):e/Dr$1+Tr}function Pr$1([e,t,n,r]){let i=(e+16)/116,a=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*Ir$1(i),a=Cr*Ir$1(a),o=wr*Ir$1(o),[Fr$1(3.1338561*a-1.6168667*i-.4906146*o),Fr$1(-0.9787684*a+1.9161415*i+.033454*o),Fr$1(.0719453*a-.2289914*i+1.4052427*o),r]}function Fr$1(e){return e=e<=.00304?12.92*e:1.055*e**(1/2.4)-.055,e<0?0:e>1?1:e}function Ir$1(e){return e>Er$1?e*e*e:Dr$1*(e-Tr)}function Lr$1(e){let[t,n,r,i]=jr$1(e),a=Math.sqrt(n*n+r*r);return [Math.round(a*1e4)?Ar$1(Math.atan2(r,n)*kr$1):NaN,a,t,i]}function Rr$1([e,t,n,r]){return e=isNaN(e)?0:e*Or$1,Pr$1([n,Math.cos(e)*t,Math.sin(e)*t,r])}function zr$1([e,t,n,r]){e=Ar$1(e),t/=100,n/=100;function i(r){let i=(r+e/30)%12,a=t*Math.min(n,1-n);return n-a*Math.max(-1,Math.min(i-3,9-i,1))}return [i(0),i(8),i(4),r]}const Br$1=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function Vr$1(e,t){return Br$1(e,t)?e[t]:void 0}function Hr$1(e){if(e=e.toLowerCase().trim(),e===`transparent`)return [0,0,0,0];let t=Vr$1(qr$1,e);if(t){let[e,n,r]=t;return [e/255,n/255,r/255,1]}if(e.startsWith(`#`)&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){let t=e.length<6?1:2,n=1;return [Ur$1(e.slice(n,n+=t)),Ur$1(e.slice(n,n+=t)),Ur$1(e.slice(n,n+=t)),Ur$1(e.slice(n,n+t)||`ff`)]}if(e.startsWith(`rgb`)){let t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){let[e,n,r,i,a,o,s,c,l,u,d,f]=t,p=[i||` `,s||` `,u].join(``);if(p===` `||p===` /`||p===`,,`||p===`,,,`){let e=[r,o,l].join(``),t=e===`%%%`?100:e===``?255:0;if(t){let e=[Gr$1(+n/t,0,1),Gr$1(+a/t,0,1),Gr$1(+c/t,0,1),d?Wr$1(+d,f):1];if(Kr$1(e))return e}}return}}let n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){let[e,t,r,i,a,o,s,c,l]=n,u=[r||` `,a||` `,s].join(``);if(u===` `||u===` /`||u===`,,`||u===`,,,`){let e=[+t,Gr$1(+i,0,100),Gr$1(+o,0,100),c?Wr$1(+c,l):1];if(Kr$1(e))return zr$1(e)}}}function Ur$1(e){return parseInt(e.padEnd(2,e),16)/255}function Wr$1(e,t){return Gr$1(t?e/100:e,0,1)}function Gr$1(e,t,n){return Math.min(Math.max(t,e),n)}function Kr$1(e){return !e.some(Number.isNaN)}const qr$1={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Jr$1(e,t,n){return e+n*(t-e)}function Yr$1(e,t,n){return e.map((e,r)=>Jr$1(e,t[r],n))}function Xr$1(e){return e===`rgb`||e===`hcl`||e===`lab`}var B=class e{constructor(e,t,n,r=1,i=true){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter(`rgb`,[e,t,n,r]));}static{this.black=new e(0,0,0,1);}static{this.white=new e(1,1,1,1);}static{this.transparent=new e(0,0,0,0);}static{this.red=new e(1,0,0,1);}static parse(t){if(t instanceof e)return t;if(typeof t!=`string`)return;let n=Hr$1(t);if(n)return new e(...n,false)}get rgb(){let{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter(`rgb`,[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter(`hcl`,Lr$1(this.rgb))}get lab(){return this.overwriteGetter(`lab`,jr$1(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){let[e,t,n,r]=this.rgb;return `rgba(${[e,t,n].map(e=>Math.round(e*255)).join(`,`)},${r})`}static interpolate(t,n,r,i=`rgb`){switch(i){case `rgb`:{let[i,a,o,s]=Yr$1(t.rgb,n.rgb,r);return new e(i,a,o,s,false)}case `hcl`:{let[i,a,o,s]=t.hcl,[c,l,u,d]=n.hcl,f,p;if(!isNaN(i)&&!isNaN(c)){let e=c-i;c>i&&e>180?e-=360:c<i&&i-c>180&&(e+=360),f=i+r*e;}else isNaN(i)?isNaN(c)?f=NaN:(f=c,(o===1||o===0)&&(p=l)):(f=i,(u===1||u===0)&&(p=a));let[m,h,g,_]=Rr$1([f,p??Jr$1(a,l,r),Jr$1(o,u,r),Jr$1(s,d,r)]);return new e(m,h,g,_,false)}case `lab`:{let[i,a,o,s]=Pr$1(Yr$1(t.lab,n.lab,r));return new e(i,a,o,s,false)}}}},Zr$1=class Zr{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`});}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};const Qr$1=[`bottom`,`center`,`top`];var $r$1=class $r{constructor(e,t,n,r,i,a){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=a;}},ei$1=class e{constructor(e){this.sections=e;}static fromString(t){return new e([new $r$1(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(t){return t instanceof e?t:e.fromString(t)}toString(){return this.sections.length===0?``:this.sections.map(e=>e.text).join(``)}},ti$1=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(let e of t)if(typeof e!=`number`)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(Yr$1(t.values,n.values,r))}},ni$1=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t]);if(Array.isArray(t)){for(let e of t)if(typeof e!=`number`)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(Yr$1(t.values,n.values,r))}},ri$1=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`string`){let n=B.parse(t);return n?new e([n]):void 0}if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`string`)return;let t=B.parse(e);if(!t)return;n.push(t);}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i=`rgb`){let a=[];if(t.values.length!=n.values.length)throw Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e<t.values.length;e++)a.push(B.interpolate(t.values[e],n.values[e],r,i));return new e(a)}},V=class extends Error{constructor(e,t){super(e),this.name=`RuntimeError`,this.path=t;}toJSON(){return this.message}};const ii$1=new Set([`center`,`left`,`right`,`top`,`bottom`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]);var ai$1=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(!(!Array.isArray(t)||t.length<1||t.length%2!=0)){for(let e=0;e<t.length;e+=2){let n=t[e],r=t[e+1];if(typeof n!=`string`||!ii$1.has(n)||!Array.isArray(r)||r.length!==2||typeof r[0]!=`number`||typeof r[1]!=`number`)return}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i){let a=t.values,o=n.values;if(a.length!==o.length)throw new V(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${n.toString()}`,i);let s=[];for(let e=0;e<a.length;e+=2){if(a[e]!==o[e])throw new V(`Cannot interpolate values containing mismatched anchors. from[${e}]: ${a[e]}, to[${e}]: ${o[e]}`,i);s.push(a[e]);let[t,n]=a[e+1],[c,l]=o[e+1];s.push([Jr$1(t,c,r),Jr$1(n,l,r)]);}return new e(s)}},oi$1=class e{constructor(e){this.name=e.name,this.available=e.available;}toString(){return this.name}static fromString(t){return t?new e({name:t,available:false}):null}},si$1=class e{constructor(e,t,n){this.from=e,this.to=t,this.transition=n;}toString(){return this.from===this.to&&this.transition===1?this.from:JSON.stringify([this.from,this.to,this.transition])}static interpolate(t,n,r){return new e(t,n,r)}static parse(t){if(t instanceof e)return t;if(Array.isArray(t)&&t.length===3&&typeof t[0]==`string`&&typeof t[1]==`string`&&typeof t[2]==`number`)return new e(t[0],t[1],t[2]);if(typeof t==`object`&&typeof t.from==`string`&&typeof t.to==`string`&&typeof t.transition==`number`)return new e(t.from,t.to,t.transition);if(typeof t==`string`)return new e(t,t,1)}};function ci$1(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function li$1(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof si$1||e instanceof B||e instanceof Zr$1||e instanceof ei$1||e instanceof ti$1||e instanceof ni$1||e instanceof ri$1||e instanceof ai$1||e instanceof oi$1)return true;if(Array.isArray(e)){for(let t of e)if(!li$1(t))return false;return true}if(typeof e==`object`){for(let t in e)if(!li$1(e[t]))return false;return true}return false}function ui$1(e){if(e===null)return ar;if(typeof e==`string`)return I;if(typeof e==`boolean`)return L;if(typeof e==`number`)return F;if(e instanceof B)return or;if(e instanceof si$1)return sr;if(e instanceof Zr$1)return ur;if(e instanceof ei$1)return dr;if(e instanceof ti$1)return fr;if(e instanceof ni$1)return mr;if(e instanceof ri$1)return pr;if(e instanceof ai$1)return gr;if(e instanceof oi$1)return hr;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=ui$1(t);if(!n)n=e;else if(n===e)continue;else {n=R;break}}return _r(n||R,t)}return cr}function di$1(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof B||e instanceof si$1||e instanceof ei$1||e instanceof ti$1||e instanceof ni$1||e instanceof ri$1||e instanceof ai$1||e instanceof oi$1?e.toString():JSON.stringify(e)}var fi$1=class e{constructor(e,t){this.type=e,this.value=t;}static parse(t,n){if(t.length!==2)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!li$1(t[1]))return n.error(`invalid value`);let r=t[1],i=ui$1(r),a=n.expectedType;return i.kind===`array`&&i.N===0&&a&&a.kind===`array`&&(typeof a.N!=`number`||a.N===0)&&(i=a),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return true}};const pi$1={string:I,number:F,boolean:L,object:cr};var mi$1=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=1,i,a=t[0];if(a===`array`){let e;if(t.length>2){let i=t[1];if(typeof i!=`string`||!(i in pi$1)||i===`object`)return n.error(`The item type argument of "array" must be one of string, number, boolean`,1);e=pi$1[i],r++;}else e=R;let a;if(t.length>3){if(t[2]!==null&&(typeof t[2]!=`number`||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(`The length argument to "array" must be a positive integer literal`,2);a=t[2],r++;}i=_r(e,a);}else {if(!pi$1[a])throw Error(`Types doesn't contain name = ${a}`);i=pi$1[a];}let o=[];for(;r<t.length;r++){let e=n.parse(t[r],r,R);if(!e)return null;o.push(e);}return new e(i,o,n.key)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!yr(this.type,ui$1(n)))return n;if(t===this.args.length-1)throw new V(`Expected value to be of type ${z(this.type)}, but found ${z(ui$1(n))} instead.`,this.key)}throw Error()}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};const hi$1={"to-boolean":L,"to-color":or,"to-number":F,"to-string":I};var gi$1=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[0];if(!hi$1[r])throw Error(`Can't parse ${r} as it is not part of the known types`);if((r===`to-boolean`||r===`to-string`)&&t.length!==2)return n.error(`Expected one argument.`);let i=hi$1[r],a=[];for(let e=1;e<t.length;e++){let r=n.parse(t[e],e,R);if(!r)return null;a.push(r);}return new e(i,a,n.key)}evaluate(e){switch(this.type.kind){case `boolean`:return !!this.args[0].evaluate(e);case `color`:{let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof B)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:ci$1(t[0],t[1],t[2],t[3]),!n))return new B(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new V(n||`Could not parse color from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `padding`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ti$1.parse(t);if(r)return r}throw new V(`Could not parse padding from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `numberArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ni$1.parse(t);if(r)return r}throw new V(`Could not parse numberArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `colorArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ri$1.parse(t);if(r)return r}throw new V(`Could not parse colorArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `variableAnchorOffsetCollection`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ai$1.parse(t);if(r)return r}throw new V(`Could not parse variableAnchorOffsetCollection from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `number`:{let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new V(`Could not convert ${JSON.stringify(t)} to number.`,this.key)}case `formatted`:return ei$1.fromString(di$1(this.args[0].evaluate(e)));case `resolvedImage`:return oi$1.fromString(di$1(this.args[0].evaluate(e)));case `projectionDefinition`:{let t=this.args[0].evaluate(e);if(si$1.parse(t))return t;throw new V(`Could not parse projectionDefinition from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}default:return di$1(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};const _i$1=[`Unknown`,`Point`,`LineString`,`Polygon`];var vi$1=class vi{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null;}id(){return this.feature&&`id`in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==`number`?_i$1[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&`geometry`in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let t=this._parseColorCache.get(e);return t||(t=B.parse(e),this._parseColorCache.set(e,t)),t}},yi$1=class e{constructor(e,t,n=[],r,i=new ir,a=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(``),this.scope=i,this.errors=a,this.expectedType=r,this._isConstant=t;}parse(e,t,n,r,i={}){return t?this.concat(t,n,r)._parse(e,i):this._parse(e,i)}_parse(e,t){(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`)&&(e=[`literal`,e]);let n=this.key;function r(e,t,r){return r===`assert`?new mi$1(t,[e],n):r===`coerce`?new gi$1(t,[e],n):e}if(Array.isArray(e)){if(e.length===0)return this.error(`Expected an array with at least one element. If you wanted a literal array, use ["literal", []].`);let n=e[0];if(typeof n!=`string`)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[n];if(i){let n=i.parse(e,this);if(!n)return null;if(this.expectedType){let e=this.expectedType,i=n.type;if((e.kind===`string`||e.kind===`number`||e.kind===`boolean`||e.kind===`object`||e.kind===`array`)&&i.kind===`value`)n=r(n,e,t.typeAnnotation||`assert`);else if(e.kind===`projectionDefinition`&&[`string`,`array`,`value`].includes(i.kind)||[`color`,`formatted`,`resolvedImage`].includes(e.kind)&&[`value`,`string`].includes(i.kind)||[`padding`,`numberArray`].includes(e.kind)&&[`value`,`number`,`array`].includes(i.kind)||e.kind===`colorArray`&&[`value`,`string`,`array`].includes(i.kind)||e.kind===`variableAnchorOffsetCollection`&&[`value`,`array`].includes(i.kind))n=r(n,e,t.typeAnnotation||`coerce`);else if(this.checkSubtype(e,i))return null}if(!(n instanceof fi$1)&&n.type.kind!==`resolvedImage`&&this._isConstant(n)){let e=new vi$1;try{n=new fi$1(n.type,n.evaluate(e));}catch(e){return this.error(e.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return e===void 0?this.error(`'undefined' value invalid. Use null instead.`):typeof e==`object`?this.error(`Bare objects invalid. Use ["literal", {...}] instead.`):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){let i=typeof t==`number`?this.path.concat(t):this.path,a=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,a,this.errors)}error(e,...t){let n=`${this.key}${t.map(e=>`[${e}]`).join(``)}`;this.errors.push(new rr(n,e));}checkSubtype(e,t){let n=yr(e,t);return n&&this.error(n),n}},bi$1=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t;}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result);}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);let r=[];for(let e=1;e<t.length-1;e+=2){let i=t[e];if(typeof i!=`string`)return n.error(`Expected string, but found ${typeof i} instead.`,e);if(/[^a-zA-Z0-9_]/.test(i))return n.error(`Variable names must contain only alphanumeric characters or '_'.`,e);let a=n.parse(t[e+1],e+1);if(!a)return null;r.push([i,a]);}let i=n.parse(t[t.length-1],t.length-1,n.expectedType,r);return i?new e(r,i):null}outputDefined(){return this.result.outputDefined()}},xi$1=class e{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t;}static parse(t,n){if(t.length!==2||typeof t[1]!=`string`)return n.error(`'var' expression requires exactly one string literal argument.`);let r=t[1];return n.scope.has(r)?new e(r,n.scope.get(r)):n.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return false}},Si$1=class e{constructor(e,t,n,r){this.type=e,this.index=t,this.input=n,this.key=r;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,F),i=n.parse(t[2],2,_r(n.expectedType||R));if(!r||!i)return null;let a=i.type;return new e(a.itemType,r,i,n.key)}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new V(`Array index out of bounds: ${t} < 0.`,this.key);if(t>=n.length)throw new V(`Array index out of bounds: ${t} > ${n.length-1}.`,this.key);if(t!==Math.floor(t))throw new V(`Array index must be an integer, but found ${t} instead.`,this.key);return n[t]}eachChild(e){e(this.index),e(this.input);}outputDefined(){return false}},Ci$1=class e{constructor(e,t,n){this.needle=e,this.haystack=t,this.key=n,this.type=L;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,R),i=n.parse(t[2],2,R);return !r||!i?null:br(r.type,[L,I,F,ar,R])?new e(r,i,n.key):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${z(r.type)} instead`)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return false;if(!xr(t,[`boolean`,`string`,`number`,`null`]))throw new V(`Expected first argument to be of type boolean, string, number or null, but found ${z(ui$1(t))} instead.`,this.key);if(!xr(n,[`string`,`array`]))throw new V(`Expected second argument to be of type array or string, but found ${z(ui$1(n))} instead.`,this.key);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack);}outputDefined(){return true}},wi$1=class e{constructor(e,t,n,r){this.needle=e,this.haystack=t,this.key=n,this.fromIndex=r,this.type=F;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,R),i=n.parse(t[2],2,R);if(!r||!i)return null;if(!br(r.type,[L,I,F,ar,R]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${z(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,F);return a?new e(r,i,n.key,a):null}return new e(r,i,n.key)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!xr(t,[`boolean`,`string`,`number`,`null`]))throw new V(`Expected first argument to be of type boolean, string, number or null, but found ${z(ui$1(t))} instead.`,this.key);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),xr(n,[`string`])){let e=n.indexOf(t,r);return e===-1?-1:[...n.slice(0,e)].length}if(xr(n,[`array`]))return n.indexOf(t,r);throw new V(`Expected second argument to be of type array or string, but found ${z(ui$1(n))} instead.`,this.key)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex);}outputDefined(){return false}},Ti$1=class e{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a;}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error(`Expected an even number of arguments.`);let r,i;n.expectedType&&n.expectedType.kind!==`value`&&(i=n.expectedType);let a={},o=[];for(let e=2;e<t.length-1;e+=2){let s=t[e],c=t[e+1];Array.isArray(s)||(s=[s]);let l=n.concat(e);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(!r)r=ui$1(e);else if(l.checkSubtype(r,ui$1(e)))return null;if(a[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);a[String(e)]=o.length;}let u=n.parse(c,e,i);if(!u)return null;i||=u.type,o.push(u);}let s=n.parse(t[1],1,R);if(!s)return null;let c=n.parse(t[t.length-1],t.length-1,i);return !c||s.type.kind!==`value`&&n.concat(1).checkSubtype(r,s.type)?null:new e(r,i,s,a,o,c)}evaluate(e){let t=this.input.evaluate(e);return (ui$1(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise);}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}},Ei$1=class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n;}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error(`Expected an odd number of arguments.`);let r;n.expectedType&&n.expectedType.kind!==`value`&&(r=n.expectedType);let i=[];for(let e=1;e<t.length-1;e+=2){let a=n.parse(t[e],e,L);if(!a)return null;let o=n.parse(t[e+1],e+1,r);if(!o)return null;i.push([a,o]),r||=o.type;}let a=n.parse(t[t.length-1],t.length-1,r);if(!a)return null;if(!r)throw Error(`Can't infer output type`);return new e(r,i,a)}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise);}outputDefined(){return this.branches.every(([e,t])=>t.outputDefined())&&this.otherwise.outputDefined()}},Di$1=class e{constructor(e,t,n,r,i){this.type=e,this.input=t,this.beginIndex=n,this.key=r,this.endIndex=i;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,R),i=n.parse(t[2],2,F);if(!r||!i)return null;if(!br(r.type,[_r(R),I,R]))return n.error(`Expected first argument to be of type array or string, but found ${z(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,F);return a?new e(r.type,r,i,n.key,a):null}return new e(r.type,r,i,n.key)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e),r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),xr(t,[`string`]))return [...t].slice(n,r).join(``);if(xr(t,[`array`]))return t.slice(n,r);throw new V(`Expected first argument to be of type array or string, but found ${z(ui$1(t))} instead.`,this.key)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex);}outputDefined(){return false}};function Oi$1(e,t,n){let r=e.length-1,i=0,a=r,o=0,s,c;for(;i<=a;)if(o=Math.floor((i+a)/2),s=e[o],c=e[o+1],s<=t){if(o===r||t<c)return o;i=o+1;}else if(s>t)a=o-1;else throw new V(`Input is not a number.`,n);return 0}var ki$1=class e{constructor(e,t,n,r){this.type=e,this.input=t,this.key=r,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t);}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);let r=n.parse(t[1],1,F);if(!r)return null;let i=[],a=null;n.expectedType&&n.expectedType.kind!==`value`&&(a=n.expectedType);for(let e=1;e<t.length;e+=2){let r=e===1?-1/0:t[e],o=t[e+1],s=e,c=e+1;if(typeof r!=`number`)return n.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(i.length&&i[i.length-1][0]>=r)return n.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=n.parse(o,c,a);if(!l)return null;a||=l.type,i.push([r,l]);}return new e(a,r,i,n.key)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Oi$1(t,r,this.key)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Ai$1(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var ji$1=class e{constructor(e,t,n,r,i,a){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.key=a,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t);}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=Mi$1(t,e.base,n,r);else if(e.name===`linear`)i=Mi$1(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=Ai$1(a[0],a[1],a[2],a[3])(Mi$1(t,1,n,r));}return i}static parse(t,n){let[r,i,a,...o]=t;if(!Array.isArray(i)||i.length===0)return n.error(`Expected an interpolation type expression.`,1);if(i[0]===`linear`)i={name:`linear`};else if(i[0]===`exponential`){let e=i[1];if(typeof e!=`number`)return n.error(`Exponential interpolation requires a numeric base.`,1,1);i={name:`exponential`,base:e};}else if(i[0]===`cubic-bezier`){let e=i.slice(1);if(e.length!==4||e.some(e=>typeof e!=`number`||e<0||e>1))return n.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);i={name:`cubic-bezier`,controlPoints:e};}else return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);if(a=n.parse(a,2,F),!a)return null;let s=[],c=null;(r===`interpolate-hcl`||r===`interpolate-lab`)&&n.expectedType!=pr?c=or:n.expectedType&&n.expectedType.kind!==`value`&&(c=n.expectedType);for(let e=0;e<o.length;e+=2){let t=o[e],r=o[e+1],i=e+3,a=e+4;if(typeof t!=`number`)return n.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(s.length&&s[s.length-1][0]>=t)return n.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=n.parse(r,a,c);if(!l)return null;c||=l.type,s.push([t,l]);}return !Sr(c,F)&&!Sr(c,sr)&&!Sr(c,or)&&!Sr(c,fr)&&!Sr(c,mr)&&!Sr(c,pr)&&!Sr(c,gr)&&!Sr(c,_r(F))?n.error(`Type ${z(c)} is not interpolatable.`):new e(c,r,i,a,s,n.key)}evaluate(t){let n=this.labels,r=this.outputs;if(n.length===1)return r[0].evaluate(t);let i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);let a=n.length;if(i>=n[a-1])return r[a-1].evaluate(t);let o=Oi$1(n,i,this.key),s=n[o],c=n[o+1],l=e.interpolationFactor(this.interpolation,i,s,c),u=r[o].evaluate(t),d=r[o+1].evaluate(t);switch(this.operator){case `interpolate`:switch(this.type.kind){case `number`:return Jr$1(u,d,l);case `color`:return B.interpolate(u,d,l);case `padding`:return ti$1.interpolate(u,d,l);case `colorArray`:return ri$1.interpolate(u,d,l);case `numberArray`:return ni$1.interpolate(u,d,l);case `variableAnchorOffsetCollection`:return ai$1.interpolate(u,d,l,this.key);case `array`:return Yr$1(u,d,l);case `projectionDefinition`:return si$1.interpolate(u,d,l)}case `interpolate-hcl`:switch(this.type.kind){case `color`:return B.interpolate(u,d,l,`hcl`);case `colorArray`:return ri$1.interpolate(u,d,l,`hcl`)}case `interpolate-lab`:switch(this.type.kind){case `color`:return B.interpolate(u,d,l,`lab`);case `colorArray`:return ri$1.interpolate(u,d,l,`lab`)}}}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Mi$1(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}const Ni$1={color:B.interpolate,number:Jr$1,padding:ti$1.interpolate,numberArray:ni$1.interpolate,colorArray:ri$1.interpolate,variableAnchorOffsetCollection:ai$1.interpolate,array:Yr$1};var Pi$1=class e{constructor(e,t){this.type=e,this.args=t;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=null,i=n.expectedType;i&&i.kind!==`value`&&(r=i);let a=[];for(let e of t.slice(1)){let t=n.parse(e,1+a.length,r,void 0,{typeAnnotation:`omit`});if(!t)return null;r||=t.type,a.push(t);}if(!r)throw Error(`No output type`);return i&&a.some(e=>yr(i,e.type))?new e(R,a):new e(r,a)}evaluate(e){let t=null,n=0,r;for(let i of this.args)if(n++,t=i.evaluate(e),t&&t instanceof oi$1&&!t.available&&(r||=t.name,t=null,n===this.args.length&&(t=r)),t!==null)break;return t}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};function Fi$1(e,t){return e===`==`||e===`!=`?t.kind===`boolean`||t.kind===`string`||t.kind===`number`||t.kind===`null`||t.kind===`value`:t.kind===`string`||t.kind===`number`||t.kind===`value`}function Ii$1(e,t,n){return t===n}function Li$1(e,t,n){return t!==n}function Ri$1(e,t,n){return t<n}function zi$1(e,t,n){return t>n}function Bi$1(e,t,n){return t<=n}function Vi$1(e,t,n){return t>=n}function Hi$1(e,t,n,r){return r.compare(t,n)===0}function Ui$1(e,t,n,r){return !Hi$1(e,t,n,r)}function Wi$1(e,t,n,r){return r.compare(t,n)<0}function Gi$1(e,t,n,r){return r.compare(t,n)>0}function Ki$1(e,t,n,r){return r.compare(t,n)<=0}function qi$1(e,t,n,r){return r.compare(t,n)>=0}function Ji$1(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n,r){this.lhs=e,this.rhs=t,this.key=n,this.collator=r,this.type=L,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`;}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,R);if(!a)return null;if(!Fi$1(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${z(a.type)}'.`);let o=t.parse(e[2],2,R);if(!o)return null;if(!Fi$1(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${z(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${z(a.type)}' and '${z(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new mi$1(o.type,[a],t.key):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new mi$1(a.type,[o],t.key)));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,ur),!s)return null}return new i(a,o,t.key,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=ui$1(a),n=ui$1(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new V(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`,this.key)}if(this.collator&&!r&&this.hasUntypedArgument){let e=ui$1(a),n=ui$1(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator);}outputDefined(){return true}}}const Yi$1=Ji$1(`==`,Ii$1,Hi$1),Xi$1=Ji$1(`!=`,Li$1,Ui$1),Zi$1=Ji$1(`<`,Ri$1,Wi$1),Qi$1=Ji$1(`>`,zi$1,Gi$1),$i$1=Ji$1(`<=`,Bi$1,Ki$1),ea$1=Ji$1(`>=`,Vi$1,qi$1);var ta=class e{constructor(e,t,n){this.type=ur,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t;}static parse(t,n){if(t.length!==2)return n.error(`Expected one argument.`);let r=t[1];if(typeof r!=`object`||Array.isArray(r))return n.error(`Collator options argument must be an object.`);let i=n.parse(r[`case-sensitive`]!==void 0&&r[`case-sensitive`],1,L);if(!i)return null;let a=n.parse(r[`diacritic-sensitive`]!==void 0&&r[`diacritic-sensitive`],1,L);if(!a)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,I),!o)?null:new e(i,a,o)}evaluate(e){return new Zr$1(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale);}outputDefined(){return false}},na=class e{constructor(e,t,n,r,i,a){this.type=I,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a;}static parse(t,n){if(t.length!==3)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,F);if(!r)return null;let i=t[2];if(typeof i!=`object`||Array.isArray(i))return n.error(`NumberFormat options argument must be an object.`);let a=null;if(i.locale&&(a=n.parse(i.locale,1,I),!a))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,I),!o))return null;let s=null;if(i.unit&&(s=n.parse(i.unit,1,I),!s))return null;if(o&&s)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let c=null;if(i[`min-fraction-digits`]&&(c=n.parse(i[`min-fraction-digits`],1,F),!c))return null;let l=null;return i[`max-fraction-digits`]&&(l=n.parse(i[`max-fraction-digits`],1,F),!l)?null:new e(r,a,o,s,c,l)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?`currency`:this.unit?`unit`:`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits);}outputDefined(){return false}},ra$1=class e{constructor(e){this.type=dr,this.sections=e;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[1];if(!Array.isArray(r)&&typeof r==`object`)return n.error(`First argument must be an image or text section.`);let i=[],a=false;for(let e=1;e<=t.length-1;++e){let r=t[e];if(a&&typeof r==`object`&&!Array.isArray(r)){a=false;let e=null;if(r[`font-scale`]&&(e=n.parse(r[`font-scale`],1,F),!e))return null;let t=null;if(r[`text-font`]&&(t=n.parse(r[`text-font`],1,_r(I)),!t))return null;let o=null;if(r[`text-color`]&&(o=n.parse(r[`text-color`],1,or),!o))return null;let s=null;if(r[`vertical-align`]){if(typeof r[`vertical-align`]==`string`&&!Qr$1.includes(r[`vertical-align`]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r[`vertical-align`]}' instead.`);if(s=n.parse(r[`vertical-align`],1,I),!s)return null}let c=i[i.length-1];c.scale=e,c.font=t,c.textColor=o,c.verticalAlign=s;}else {let r=n.parse(t[e],1,R);if(!r)return null;let o=r.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return n.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);a=true,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null});}}return new e(i)}evaluate(e){return new ei$1(this.sections.map(t=>{let n=t.content.evaluate(e);return ui$1(n)===hr?new $r$1(``,n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new $r$1(di$1(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign);}outputDefined(){return false}},ia$1=class e{constructor(e){this.type=hr,this.input=e;}static parse(t,n){if(t.length!==2)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,I);return r?new e(r):n.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=oi$1.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input);}outputDefined(){return false}},aa$1=class e{constructor(e,t){this.input=e,this.key=t,this.type=F;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=n.parse(t[1],1);return r?r.type.kind!==`array`&&r.type.kind!==`string`&&r.type.kind!==`value`?n.error(`Expected argument of type string or array, but found ${z(r.type)} instead.`):new e(r,n.key):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`)return [...t].length;if(Array.isArray(t))return t.length;throw new V(`Expected value to be of type string or array, but found ${z(ui$1(t))} instead.`,this.key)}eachChild(e){e(this.input);}outputDefined(){return false}};const oa$1=8192;function sa$1(e,t){let n=la$1(e[0]),r=da$1(e[1]),i=2**t.z;return [Math.round(n*i*oa$1),Math.round(r*i*oa$1)]}function ca$1(e,t){let n=2**t.z,r=(e[0]/oa$1+t.x)/n,i=(e[1]/oa$1+t.y)/n;return [ua$1(r),fa$1(i)]}function la$1(e){return (180+e)/360}function ua$1(e){return e*360-180}function da$1(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function fa$1(e){return 360/Math.PI*Math.atan(Math.exp((180-e*360)*Math.PI/180))-90}function pa$1(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1]);}function ma$1(e,t){return !(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function ha$1(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function ga$1(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i===0&&r*a<=0&&i*o<=0}function _a$1(e,t,n,r){let i=[t[0]-e[0],t[1]-e[1]];return Ca$1([r[0]-n[0],r[1]-n[1]],i)!==0&&!!(wa$1(e,t,n,r)&&wa$1(n,r,e,t))}function va$1(e,t,n){for(let r of n)for(let n=0;n<r.length-1;++n)if(_a$1(e,t,r[n],r[n+1]))return true;return false}function ya$1(e,t,n=false){let r=false;for(let i of t)for(let t=0;t<i.length-1;t++){if(ga$1(e,i[t],i[t+1]))return n;ha$1(e,i[t],i[t+1])&&(r=!r);}return r}function ba$1(e,t){for(let n of t)if(ya$1(e,n))return true;return false}function xa$1(e,t){for(let n of e)if(!ya$1(n,t))return false;for(let n=0;n<e.length-1;++n)if(va$1(e[n],e[n+1],t))return false;return true}function Sa$1(e,t){for(let n of t)if(xa$1(e,n))return true;return false}function Ca$1(e,t){return e[0]*t[1]-e[1]*t[0]}function wa$1(e,t,n,r){let i=e[0]-n[0],a=e[1]-n[1],o=t[0]-n[0],s=t[1]-n[1],c=r[0]-n[0],l=r[1]-n[1],u=i*l-c*a,d=o*l-c*s;return u>0&&d<0||u<0&&d>0}function Ta$1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=sa$1(e[i][r],n);pa$1(t,o),a.push(o);}r.push(a);}return r}function Ea$1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=Ta$1(e[i],t,n);r.push(a);}return r}function Da$1(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=r*.5,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i;}pa$1(t,e);}function Oa$1(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0;}function ka$1(e,t,n,r){let i=2**r.z*oa$1,a=[r.x*oa$1,r.y*oa$1],o=[];for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];Da$1(r,t,n,i),o.push(r);}return o}function Aa$1(e,t,n,r){let i=2**r.z*oa$1,a=[r.x*oa$1,r.y*oa$1],o=[];for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];pa$1(t,n),e.push(n);}o.push(e);}if(t[2]-t[0]<=i/2){Oa$1(t);for(let e of o)for(let r of e)Da$1(r,t,n,i);}return o}function ja$1(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ta$1(t.coordinates,r,i),o=ka$1(e.geometry(),n,r,i);if(!ma$1(n,r))return false;for(let e of o)if(!ya$1(e,a))return false}if(t.type===`MultiPolygon`){let a=Ea$1(t.coordinates,r,i),o=ka$1(e.geometry(),n,r,i);if(!ma$1(n,r))return false;for(let e of o)if(!ba$1(e,a))return false}return true}function Ma$1(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ta$1(t.coordinates,r,i),o=Aa$1(e.geometry(),n,r,i);if(!ma$1(n,r))return false;for(let e of o)if(!xa$1(e,a))return false}if(t.type===`MultiPolygon`){let a=Ea$1(t.coordinates,r,i),o=Aa$1(e.geometry(),n,r,i);if(!ma$1(n,r))return false;for(let e of o)if(!Sa$1(e,a))return false}return true}var Na$1=class e{constructor(e,t){this.type=L,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(li$1(t[1])){let n=t[1];if(n.type===`FeatureCollection`){let t=[];for(let e of n.features){let{type:n,coordinates:r}=e.geometry;n===`Polygon`&&t.push(r),n===`MultiPolygon`&&t.push(...r);}if(t.length)return new e(n,{type:`MultiPolygon`,coordinates:t})}else if(n.type===`Feature`){let t=n.geometry.type;if(t===`Polygon`||t===`MultiPolygon`)return new e(n,n.geometry)}else if(n.type===`Polygon`||n.type===`MultiPolygon`)return new e(n,n)}return n.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return ja$1(e,this.geometries);if(e.geometryType()===`LineString`)return Ma$1(e,this.geometries)}return false}eachChild(){}outputDefined(){return true}},Pa$1=class Pa{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};function Fa$1(e,t,n=0,r=e.length-1,i=La$1){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);Fa$1(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i);}let a=e[t],o=n,s=r;for(Ia$1(e,n,t),i(e[r],a)>0&&Ia$1(e,n,r);o<s;){for(Ia$1(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--;}i(e[n],a)===0?Ia$1(e,n,s):(s++,Ia$1(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1);}}function Ia$1(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}function La$1(e,t){return e<t?-1:+(e>t)}function Ra$1(e,t){if(e.length<=1)return [e];let n=[],r,i;for(let t of e){let e=Ba$1(t);e!==0&&(t.area=Math.abs(e),i===void 0&&(i=e<0),i===e<0?(r&&n.push(r),r=[t]):r.push(t));}if(r&&n.push(r),t>1)for(let e=0;e<n.length;e++)n[e].length<=t||(Fa$1(n[e],t,1,n[e].length-1,za$1),n[e]=n[e].slice(0,t));return n}function za$1(e,t){return t.area-e.area}function Ba$1(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}const Va$1=Math.PI/180;var Ha$1=class Ha{constructor(e){let t=Va$1*6378.137*1e3,n=Math.cos(e*Va$1),r=1/(1-.0066943799901413165*(1-n*n)),i=Math.sqrt(r);this.kx=t*i*n,this.ky=t*i*r*.9933056200098587;}distance(e,t){let n=this.wrap(e[0]-t[0])*this.kx,r=(e[1]-t[1])*this.ky;return Math.sqrt(n*n+r*r)}pointOnLine(e,t){let n=1/0,r,i,a,o;for(let s=0;s<e.length-1;s++){let c=e[s][0],l=e[s][1],u=this.wrap(e[s+1][0]-c)*this.kx,d=(e[s+1][1]-l)*this.ky,f=0;(u!==0||d!==0)&&(f=(this.wrap(t[0]-c)*this.kx*u+(t[1]-l)*this.ky*d)/(u*u+d*d),f>1?(c=e[s+1][0],l=e[s+1][1]):f>0&&(c+=u/this.kx*f,l+=d/this.ky*f)),u=this.wrap(t[0]-c)*this.kx,d=(t[1]-l)*this.ky;let p=u*u+d*d;p<n&&(n=p,r=c,i=l,a=s,o=f);}return {point:[r,i],index:a,t:Math.max(0,Math.min(1,o))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};function Ua$1(e,t){return t[0]-e[0]}function Wa$1(e){return e[1]-e[0]+1}function Ga$1(e,t){return e[1]>=e[0]&&e[1]<t}function Ka$1(e,t){if(e[0]>e[1])return [null,null];let n=Wa$1(e);if(t){if(n===2)return [e,null];let t=Math.floor(n/2);return [[e[0],e[0]+t],[e[0]+t,e[1]]]}if(n===1)return [e,null];let r=Math.floor(n/2)-1;return [[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function qa$1(e,t){if(!Ga$1(t,e.length))return [1/0,1/0,-1/0,-1/0];let n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)pa$1(n,e[r]);return n}function Ja$1(e){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)for(let e of n)pa$1(t,e);return t}function Ya$1(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function Xa$1(e,t,n){if(!Ya$1(e)||!Ya$1(t))return NaN;let r=0,i=0;return e[2]<t[0]&&(r=t[0]-e[2]),e[0]>t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]<t[1]&&(i=t[1]-e[3]),n.distance([0,0],[r,i])}function Za$1(e,t,n){let r=n.pointOnLine(t,e);return n.distance(e,r.point)}function Qa$1(e,t,n,r,i){let a=Math.min(Za$1(e,[n,r],i),Za$1(t,[n,r],i)),o=Math.min(Za$1(n,[e,t],i),Za$1(r,[e,t],i));return Math.min(a,o)}function $a$1(e,t,n,r,i){if(!(Ga$1(t,e.length)&&Ga$1(r,n.length)))return 1/0;let a=1/0;for(let o=t[0];o<t[1];++o){let t=e[o],s=e[o+1];for(let e=r[0];e<r[1];++e){let r=n[e],o=n[e+1];if(_a$1(t,s,r,o))return 0;a=Math.min(a,Qa$1(t,s,r,o,i));}}return a}function eo$1(e,t,n,r,i){if(!(Ga$1(t,e.length)&&Ga$1(r,n.length)))return NaN;let a=1/0;for(let o=t[0];o<=t[1];++o)for(let t=r[0];t<=r[1];++t)if(a=Math.min(a,i.distance(e[o],n[t])),a===0)return a;return a}function to$1(e,t,n){if(ya$1(e,t,true))return 0;let r=1/0;for(let i of t){let t=i[0],a=i[i.length-1];if(t!==a&&(r=Math.min(r,Za$1(e,[a,t],n)),r===0))return r;let o=n.pointOnLine(i,e);if(r=Math.min(r,n.distance(e,o.point)),r===0)return r}return r}function no$1(e,t,n,r){if(!Ga$1(t,e.length))return NaN;for(let r=t[0];r<=t[1];++r)if(ya$1(e[r],n,true))return 0;let i=1/0;for(let a=t[0];a<t[1];++a){let t=e[a],o=e[a+1];for(let e of n)for(let n=0,a=e.length,s=a-1;n<a;s=n++){let a=e[s],c=e[n];if(_a$1(t,o,a,c))return 0;i=Math.min(i,Qa$1(t,o,a,c,r));}}return i}function ro$1(e,t){for(let n of e)for(let e of n)if(ya$1(e,t,true))return true;return false}function io$1(e,t,n,r=1/0){let i=Ja$1(e),a=Ja$1(t);if(r!==1/0&&Xa$1(i,a,n)>=r)return r;if(ma$1(i,a)){if(ro$1(e,t))return 0}else if(ro$1(t,e))return 0;let o=1/0;for(let r of e)for(let e=0,i=r.length,a=i-1;e<i;a=e++){let i=r[a],s=r[e];for(let e of t)for(let t=0,r=e.length,a=r-1;t<r;a=t++){let r=e[a],c=e[t];if(_a$1(i,s,r,c))return 0;o=Math.min(o,Qa$1(i,s,r,c,n));}}return o}function ao$1(e,t,n,r,i,a){if(!a)return;let o=Xa$1(qa$1(r,a),i,n);o<t&&e.push([o,a,[0,0]]);}function oo$1(e,t,n,r,i,a,o){if(!a||!o)return;let s=Xa$1(qa$1(r,a),qa$1(i,o),n);s<t&&e.push([s,a,o]);}function so$1(e,t,n,r,i=1/0){let a=Math.min(r.distance(e[0],n[0][0]),i);if(a===0)return a;let o=new Pa$1([[0,[0,e.length-1],[0,0]]],Ua$1),s=Ja$1(n);for(;o.length>0;){let i=o.pop();if(i[0]>=a)continue;let c=i[1],l=t?50:100;if(Wa$1(c)<=l){if(!Ga$1(c,e.length))return NaN;if(t){let t=no$1(e,c,n,r);if(isNaN(t)||t===0)return t;a=Math.min(a,t);}else for(let t=c[0];t<=c[1];++t){let i=to$1(e[t],n,r);if(a=Math.min(a,i),a===0)return 0}}else {let n=Ka$1(c,t);ao$1(o,a,r,e,s,n[0]),ao$1(o,a,r,e,s,n[1]);}}return a}function co$1(e,t,n,r,i,a=1/0){let o=Math.min(a,i.distance(e[0],n[0]));if(o===0)return o;let s=new Pa$1([[0,[0,e.length-1],[0,n.length-1]]],Ua$1);for(;s.length>0;){let a=s.pop();if(a[0]>=o)continue;let c=a[1],l=a[2],u=t?50:100,d=r?50:100;if(Wa$1(c)<=u&&Wa$1(l)<=d){if(!Ga$1(c,e.length)&&Ga$1(l,n.length))return NaN;let a;if(t&&r)a=$a$1(e,c,n,l,i),o=Math.min(o,a);else if(t&&!r){let t=e.slice(c[0],c[1]+1);for(let e=l[0];e<=l[1];++e)if(a=Za$1(n[e],t,i),o=Math.min(o,a),o===0)return o}else if(!t&&r){let t=n.slice(l[0],l[1]+1);for(let n=c[0];n<=c[1];++n)if(a=Za$1(e[n],t,i),o=Math.min(o,a),o===0)return o}else a=eo$1(e,c,n,l,i),o=Math.min(o,a);}else {let a=Ka$1(c,t),u=Ka$1(l,r);oo$1(s,o,i,e,n,a[0],u[0]),oo$1(s,o,i,e,n,a[0],u[1]),oo$1(s,o,i,e,n,a[1],u[0]),oo$1(s,o,i,e,n,a[1],u[1]);}}return o}function lo$1(e,t){let n=e.geometry(),r=n.flat().map(t=>ca$1([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Ha$1(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,co$1(r,false,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,co$1(r,false,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,so$1(r,false,e.coordinates,i,a));}if(a===0)return a}return a}function uo$1(e,t){let n=e.geometry(),r=n.flat().map(t=>ca$1([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Ha$1(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,co$1(r,true,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,co$1(r,true,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,so$1(r,true,e.coordinates,i,a));}if(a===0)return a}return a}function fo$1(e,t){let n=e.geometry();if(n.length===0||n[0].length===0)return NaN;let r=Ra$1(n,0).map(t=>t.map(t=>t.map(t=>ca$1([t.x,t.y],e.canonical)))),i=new Ha$1(r[0][0][0][1]),a=1/0;for(let e of t)for(let t of r){switch(e.type){case `Point`:a=Math.min(a,so$1([e.coordinates],false,t,i,a));break;case `LineString`:a=Math.min(a,so$1(e.coordinates,true,t,i,a));break;case `Polygon`:a=Math.min(a,io$1(t,e.coordinates,i,a));}if(a===0)return a}return a}function po$1(e){return e.type===`MultiPolygon`?e.coordinates.map(e=>({type:`Polygon`,coordinates:e})):e.type===`MultiLineString`?e.coordinates.map(e=>({type:`LineString`,coordinates:e})):e.type===`MultiPoint`?e.coordinates.map(e=>({type:`Point`,coordinates:e})):[e]}var mo$1=class e{constructor(e,t){this.type=F,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(li$1(t[1])){let n=t[1];if(n.type===`FeatureCollection`)return new e(n,n.features.map(e=>po$1(e.geometry)).flat());if(n.type===`Feature`)return new e(n,po$1(n.geometry));if(`type`in n&&`coordinates`in n)return new e(n,po$1(n))}return n.error(`'distance' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return lo$1(e,this.geometries);if(e.geometryType()===`LineString`)return uo$1(e,this.geometries);if(e.geometryType()===`Polygon`)return fo$1(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return true}},ho$1=class e{constructor(e){this.key=e,this.type=R;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=t[1];return r==null?n.error(`Global state property must be defined.`):typeof r==`string`?new e(r):n.error(`Global state property must be string, but found ${typeof t[1]} instead.`)}evaluate(e){let t=e.globals?.globalState;return !t||Object.keys(t).length===0?null:Vr$1(t,this.key)??null}eachChild(){}outputDefined(){return false}};const go$1={"==":Yi$1,"!=":Xi$1,">":Qi$1,"<":Zi$1,">=":ea$1,"<=":$i$1,array:mi$1,at:Si$1,boolean:mi$1,case:Ei$1,coalesce:Pi$1,collator:ta,format:ra$1,image:ia$1,in:Ci$1,"index-of":wi$1,interpolate:ji$1,"interpolate-hcl":ji$1,"interpolate-lab":ji$1,length:aa$1,let:bi$1,literal:fi$1,match:Ti$1,number:mi$1,"number-format":na,object:mi$1,slice:Di$1,step:ki$1,string:mi$1,"to-boolean":gi$1,"to-color":gi$1,"to-number":gi$1,"to-string":gi$1,var:xi$1,within:Na$1,distance:mo$1,"global-state":ho$1};var _o$1=class e{constructor(e,t,n,r,i){this.name=e,this.type=t,this._evaluate=n,this.args=r,this.key=i;}evaluate(e){return this._evaluate(e,this.args,this.key)}eachChild(e){this.args.forEach(e);}outputDefined(){return false}static parse(t,n){let r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);let a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1),c=null;for(let[i,o]of s){c=new yi$1(n.registry,wo$1,n.path,null,n.scope);let s=[],l=false;for(let e=1;e<t.length;e++){let n=t[e],r=Array.isArray(i)?i[e-1]:i.type,a=c.parse(n,1+s.length,r);if(!a){l=true;break}s.push(a);}if(!l){if(Array.isArray(i)&&i.length!==s.length){c.error(`Expected ${i.length} arguments, but found ${s.length} instead.`);continue}for(let e=0;e<s.length;e++){let t=Array.isArray(i)?i[e]:i.type,n=s[e];c.concat(e+1).checkSubtype(t,n.type);}if(c.errors.length===0)return new e(r,a,o,s,n.key)}}if(s.length===1)n.errors.push(...c.errors);else {let e=(s.length?s:o).map(([e])=>Co$1(e)).join(` | `),r=[];for(let e=1;e<t.length;e++){let i=n.parse(t[e],1+r.length);if(!i)return null;r.push(z(i.type));}n.error(`Expected arguments of type ${e}, but found (${r.join(`, `)}) instead.`);}return null}static register(t,n){e.definitions=n;for(let r in n)t[r]=e;}};function vo$1(e,[t,n,r,i],a){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let o=i?i.evaluate(e):1,s=ci$1(t,n,r,o);if(s)throw new V(s,a);return new B(t/255,n/255,r/255,o,false)}function yo$1(e,t){return e in t&&t[e]!==void 0}function bo$1(e,t){let n=t[e];return n===void 0?null:n}function xo$1(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return true;t[i]>e?r=i-1:n=i+1;}return false}function So$1(e){return {type:e}}_o$1.register(go$1,{error:[lr,[I],(e,[t],n)=>{throw new V(t.evaluate(e),n)}],typeof:[I,[R],(e,[t])=>z(ui$1(t.evaluate(e)))],"to-rgba":[_r(F,4),[or],(e,[t])=>{let[n,r,i,a]=t.evaluate(e).rgb;return [n*255,r*255,i*255,a]}],rgb:[or,[F,F,F],vo$1],rgba:[or,[F,F,F,F],vo$1],has:{type:L,overloads:[[[I],(e,[t])=>yo$1(t.evaluate(e),e.properties())],[[I,cr],(e,[t,n])=>yo$1(t.evaluate(e),n.evaluate(e))]]},get:{type:R,overloads:[[[I],(e,[t])=>bo$1(t.evaluate(e),e.properties())],[[I,cr],(e,[t,n])=>bo$1(t.evaluate(e),n.evaluate(e))]]},"feature-state":[R,[I],(e,[t])=>bo$1(t.evaluate(e),e.featureState||{})],properties:[cr,[],e=>e.properties()],"geometry-type":[I,[],e=>e.geometryType()],id:[R,[],e=>e.id()],zoom:[F,[],e=>e.globals.zoom],"heatmap-density":[F,[],e=>e.globals.heatmapDensity||0],elevation:[F,[],e=>e.globals.elevation||0],"line-progress":[F,[],e=>e.globals.lineProgress||0],accumulated:[R,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[F,So$1(F),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[F,So$1(F),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:F,overloads:[[[F,F],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[F],(e,[t])=>-t.evaluate(e)]]},"/":[F,[F,F],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[F,[F,F],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[F,[],()=>Math.LN2],pi:[F,[],()=>Math.PI],e:[F,[],()=>Math.E],"^":[F,[F,F],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[F,[F],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[F,[F],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[F,[F],(e,[t])=>Math.log(t.evaluate(e))],log2:[F,[F],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[F,[F],(e,[t])=>Math.sin(t.evaluate(e))],cos:[F,[F],(e,[t])=>Math.cos(t.evaluate(e))],tan:[F,[F],(e,[t])=>Math.tan(t.evaluate(e))],asin:[F,[F],(e,[t])=>Math.asin(t.evaluate(e))],acos:[F,[F],(e,[t])=>Math.acos(t.evaluate(e))],atan:[F,[F],(e,[t])=>Math.atan(t.evaluate(e))],min:[F,So$1(F),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[F,So$1(F),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[F,[F],(e,[t])=>Math.abs(t.evaluate(e))],round:[F,[F],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[F,[F],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[F,[F],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[L,[I,R],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[L,[R],(e,[t])=>e.id()===t.value],"filter-type-==":[L,[I],(e,[t])=>e.geometryType()===t.value],"filter-<":[L,[I,R],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[L,[R],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[L,[I,R],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[L,[R],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[L,[I,R],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[L,[R],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[L,[I,R],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[L,[R],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[L,[R],(e,[t])=>{let n=t.value,r=e.properties();return n in r&&r[n]!==void 0}],"filter-has-id":[L,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[L,[_r(I)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[L,[_r(R)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[L,[I,_r(R)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[L,[I,_r(R)],(e,[t,n])=>xo$1(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:L,overloads:[[[L,L],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[So$1(L),(e,t)=>{for(let n of t)if(!n.evaluate(e))return false;return true}]]},any:{type:L,overloads:[[[L,L],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[So$1(L),(e,t)=>{for(let n of t)if(n.evaluate(e))return true;return false}]]},"!":[L,[L],(e,[t])=>!t.evaluate(e)],"is-supported-script":[L,[I],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return !n||n(t.evaluate(e))}],upcase:[I,[I],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[I,[I],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[I,So$1(R),(e,t)=>t.map(t=>di$1(t.evaluate(e))).join(``)],split:[_r(I),[I,I],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[I,[_r(I),I],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[I,[ur],(e,[t])=>t.evaluate(e).resolvedLocale()]});function Co$1(e){return Array.isArray(e)?`(${e.map(z).join(`, `)})`:`(${z(e.type)}...)`}function wo$1(e){if(e instanceof xi$1)return wo$1(e.boundExpression);if(e instanceof _o$1&&e.name===`error`||e instanceof ta||e instanceof Na$1||e instanceof mo$1||e instanceof ho$1)return false;let t=e instanceof gi$1||e instanceof mi$1,n=true;return e.eachChild(e=>{n&&=t?wo$1(e):e instanceof fi$1;}),n?To$1(e)&&Do$1(e,[`zoom`,`heatmap-density`,`elevation`,`line-progress`,`accumulated`,`is-supported-script`]):false}function To$1(e){if(e instanceof _o$1&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof Na$1||e instanceof mo$1)return false;let t=true;return e.eachChild(e=>{t&&!To$1(e)&&(t=false);}),t}function Eo$1(e){if(e instanceof _o$1&&e.name===`feature-state`)return false;let t=true;return e.eachChild(e=>{t&&!Eo$1(e)&&(t=false);}),t}function Do$1(e,t){if(e instanceof _o$1&&t.indexOf(e.name)>=0)return false;let n=true;return e.eachChild(e=>{n&&!Do$1(e,t)&&(n=false);}),n}function Oo$1(e){return {result:`success`,value:e}}function ko$1(e){return {result:`error`,value:e}}function Ao$1(e){return e[`property-type`]===`data-driven`||e[`property-type`]===`cross-faded-data-driven`}function jo$1(e){return !!e.expression&&e.expression.parameters.indexOf(`zoom`)>-1}function Mo$1(e){return !!e.expression&&e.expression.interpolated}function No$1(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function H(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function Po$1(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&ui$1(e)===cr}function Fo$1(e){return e}function Io$1(e){switch(e.type){case `color`:return B.parse;case `padding`:return ti$1.parse;case `numberArray`:return ni$1.parse;case `colorArray`:return ri$1.parse;default:return null}}function Lo$1(e){switch(e){case `exponential`:return Ho$1;case `interval`:return Vo$1;case `categorical`:return Bo$1;case `identity`:return Uo$1;default:throw Error(`Unknown function type "${e}"`)}}function Ro$1(e,t){let n=e.stops&&typeof e.stops[0][0]==`object`,r=n||e.property!==void 0,i=n||!r,a=e.type||(Mo$1(t)?`exponential`:`interval`),o=Io$1(t);if(o&&(e=No$1({},e),e.stops&&(e.stops=e.stops.map(e=>[e[0],o(e[1])])),e.default?e.default=o(e.default):e.default=o(t.default)),e.colorSpace&&!Xr$1(e.colorSpace))throw Error(`Unknown color space: "${e.colorSpace}"`);let s=Lo$1(a),c,l;if(a===`categorical`){c=Object.create(null);for(let t of e.stops)c[t[0]]=t[1];l=typeof e.stops[0][0];}if(n){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]]);}let i=[];for(let e of r)i.push([n[e].zoom,Ro$1(n[e],t)]);let a={name:`linear`};return {kind:`composite`,interpolationType:a,interpolationFactor:ji$1.interpolationFactor.bind(void 0,a),zoomStops:i.map(e=>e[0]),evaluate({zoom:n},r){return Ho$1({stops:i,base:e.base},t,n).evaluate(n,r)}}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return {kind:`camera`,interpolationType:n,interpolationFactor:ji$1.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map(e=>e[0]),evaluate:({zoom:n})=>s(e,t,n,c,l)}}return {kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?zo$1(e.default,t.default):s(e,t,i,c,l)}}}function zo$1(e,t,n){if(e!==void 0)return e;if(t!==void 0)return t;if(n!==void 0)return n}function Bo$1(e,t,n,r,i){return zo$1(typeof n===i?r[n]:void 0,e.default,t.default)}function Vo$1(e,t,n){if(H(n)!==`number`)return zo$1(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Oi$1(e.stops.map(e=>e[0]),n,``);return e.stops[i][1]}function Ho$1(e,t,n){let r=e.base===void 0?1:e.base;if(H(n)!==`number`)return zo$1(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Oi$1(e.stops.map(e=>e[0]),n,``),o=Wo$1(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=Ni$1[t.type]||Fo$1;return typeof s.evaluate==`function`?{evaluate(...t){let n=s.evaluate.apply(void 0,t),r=c.evaluate.apply(void 0,t);if(n!==void 0&&r!==void 0)return l(n,r,o,e.colorSpace)}}:l(s,c,o,e.colorSpace)}function Uo$1(e,t,n){switch(t.type){case `color`:n=B.parse(n);break;case `formatted`:n=ei$1.fromString(n.toString());break;case `resolvedImage`:n=oi$1.fromString(n.toString());break;case `padding`:n=ti$1.parse(n);break;case `colorArray`:n=ri$1.parse(n);break;case `numberArray`:n=ni$1.parse(n);break;default:H(n)!==t.type&&(t.type!==`enum`||!t.values[n])&&(n=void 0);}return zo$1(n,e.default,t.default)}function Wo$1(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}var Go$1=class Go{constructor(e,t,n,r){this.expression=e,this._warningHistory={},this._evaluator=new vi$1,this._defaultValue=n?as$1(n):null,this._enumValues=n&&n.type===`enum`?n.values:null,this._globalState=r,this._rootKey=t;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=os$1(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a){this._globalState&&(e=os$1(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!==e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new V(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(`, `)}, but found ${JSON.stringify(e)} instead.`,``);return e}catch(e){let t=e instanceof V?e.path:``,n=`${t}|${e.message}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(Ko$1(this._rootKey,t,e.message,this._defaultValue))),this._defaultValue}}};function Ko$1(e,t,n,r){return `${e}${t}: ${n}${r==null?``:` Falling back to ${String(r)}.`}`}function qo$1(e){if(!e)throw Error(`rootKey must identify the location of the expression in the style JSON, e.g. "layers[3].paint.line-width".`)}function Jo$1(e){return Array.isArray(e)&&e.length>0&&typeof e[0]==`string`&&e[0]in go$1}function Yo$1(e,t,n,r){qo$1(t);let i=new yi$1(go$1,wo$1,[],n?is$1(n):void 0),a=i.parse(e,void 0,void 0,void 0,n&&n.type===`string`?{typeAnnotation:`coerce`}:void 0);return a?Oo$1(new Go$1(a,t,n,r)):ko$1(i.errors)}var Xo$1=class Xo{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!Eo$1(t.expression),this.globalStateRefs=rs$1(t.expression),this._globalState=n;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=os$1(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=os$1(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}},Zo$1=class Zo{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!Eo$1(t.expression),this.globalStateRefs=rs$1(t.expression),this.interpolationType=r,this._globalState=i;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=os$1(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=os$1(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?ji$1.interpolationFactor(this.interpolationType,e,t,n):0}};function Qo$1(e){return e._styleExpression!==void 0}function $o$1(e,t,n,r){let i=Yo$1(e,t,n,r);if(i.result===`error`)return i;let a=i.value.expression,o=To$1(a);if(!o&&!Ao$1(n))return ko$1([new rr(``,`data expressions not supported`)]);let s=Do$1(a,[`zoom`]);if(!s&&!jo$1(n))return ko$1([new rr(``,`zoom expressions not supported`)]);let c=ns$1(a);if(!c&&!s)return ko$1([new rr(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`)]);if(c instanceof rr)return ko$1([c]);if(c instanceof ji$1&&!Mo$1(n))return ko$1([new rr(``,`"interpolate" expressions cannot be used with this property`)]);if(!c)return Oo$1(o?new Xo$1(`constant`,i.value,r):new Xo$1(`source`,i.value,r));let l=c instanceof ji$1?c.interpolation:void 0;return Oo$1(o?new Zo$1(`camera`,i.value,c.labels,l,r):new Zo$1(`composite`,i.value,c.labels,l,r))}var es$1=class e{constructor(e,t,n){this.isStateDependent=false,this.globalStateRefs=new Set,this._globalState=null,qo$1(t),this._parameters=e,this._specification=n,this._rootKey=t,this._defaultValue=as$1(n),this._warningHistory={};let r=Ro$1(this._parameters,this._specification);this.kind=r.kind,this.interpolationFactor=r.interpolationFactor,this.zoomStops=r.zoomStops,this.interpolationType=r.interpolationType,this._innerEvaluate=r.evaluate;}evaluate(e,t){try{return this._innerEvaluate(e,t)}catch(e){let t=e instanceof Error?e.message:String(e),n=`|${t}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(Ko$1(this._rootKey,``,t,this._defaultValue))),this._defaultValue}}static deserialize(t){return new e(t._parameters,t._rootKey,t._specification)}static serialize(e){return {_parameters:e._parameters,_specification:e._specification,_rootKey:e._rootKey}}};function ts$1(e,t,n,r){if(Po$1(e))return new es$1(e,t,n);if(Jo$1(e)){let i=$o$1(e,t,n,r);if(i.result===`error`)throw Error(i.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return i.value}{let t=e;return n.type===`color`&&typeof e==`string`?t=B.parse(e):n.type===`padding`&&(typeof e==`number`||Array.isArray(e))?t=ti$1.parse(e):n.type===`numberArray`&&(typeof e==`number`||Array.isArray(e))?t=ni$1.parse(e):n.type===`colorArray`&&(typeof e==`string`||Array.isArray(e))?t=ri$1.parse(e):n.type===`variableAnchorOffsetCollection`&&Array.isArray(e)?t=ai$1.parse(e):n.type===`projectionDefinition`&&typeof e==`string`&&(t=si$1.parse(e)),{globalStateRefs:new Set,_globalState:null,kind:`constant`,evaluate:()=>t}}}function ns$1(e){let t=null;if(e instanceof bi$1)t=ns$1(e.result);else if(e instanceof Pi$1){for(let n of e.args)if(t=ns$1(n),t)break}else (e instanceof ki$1||e instanceof ji$1)&&e.input instanceof _o$1&&e.input.name===`zoom`&&(t=e);return t instanceof rr||e.eachChild(e=>{let n=ns$1(e);n instanceof rr?t=n:!t&&n?t=new rr(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`):t&&n&&t!==n&&(t=new rr(``,`Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.`));}),t}function rs$1(e,t=new Set){return e instanceof ho$1&&t.add(e.key),e.eachChild(e=>{rs$1(e,t);}),t}function is$1(e){let t={color:or,string:I,number:F,enum:I,boolean:L,formatted:dr,padding:fr,numberArray:mr,colorArray:pr,projectionDefinition:sr,resolvedImage:hr,variableAnchorOffsetCollection:gr};return e.type===`array`?_r(t[e.value]||R,e.length):t[e.type]}function as$1(e){if(e.type===`color`&&Po$1(e.default))return new B(0,0,0,0);switch(e.type){case `color`:return B.parse(e.default)||null;case `padding`:return ti$1.parse(e.default)||null;case `numberArray`:return ni$1.parse(e.default)||null;case `colorArray`:return ri$1.parse(e.default)||null;case `variableAnchorOffsetCollection`:return ai$1.parse(e.default)||null;case `projectionDefinition`:return si$1.parse(e.default)||null;default:return e.default===void 0?null:e.default}}function os$1(e,t){let{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s}=e??{};return {zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s,globalState:t}}function ss$1(e){let t=false;for(let n of e){let e=cs$1(n);if(e===`expression`)return `expression`;e===`legacy`&&(t=true);}return t?`legacy`:`neutral`}function cs$1(e){if(typeof e==`boolean`)return `neutral`;if(!Array.isArray(e)||e.length===0)return `legacy`;switch(e[0]){case `has`:return e.length<2||e[1]===`$id`||e[1]===`$type`?`legacy`:e.length===2?`neutral`:`expression`;case `in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]))?`expression`:`legacy`;case `!in`:case `!has`:return `legacy`;case `==`:case `!=`:case `>`:case `>=`:case `<`:case `<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2])?`expression`:`legacy`;case `none`:return `legacy`;case `any`:case `all`:return ss$1(e.slice(1));default:return `expression`}}function ls$1(e){return cs$1(e)!==`legacy`}function us$1(e){return e===`$type`?[`geometry-type`]:e===`$id`?[`id`]:[`get`,e]}function ds$1(e){switch(e[0]){case `==`:case `!=`:case `<`:case `<=`:case `>`:case `>=`:return e.length!==3||typeof e[1]!=`string`?null:[e[0],us$1(e[1]),e[2]];case `in`:case `!in`:{if(e.length<2||typeof e[1]!=`string`)return null;let t=[`in`,us$1(e[1]),[`literal`,e.slice(2)]];return e[0]===`!in`?[`!`,t]:t}case `has`:case `!has`:{if(e.length!==2||typeof e[1]!=`string`||e[1]===`$type`||e[1]===`$id`)return null;let t=[`has`,e[1]];return e[0]===`!has`?[`!`,t]:t}default:return null}}function fs$1(e){if((e[0]===`<`||e[0]===`<=`||e[0]===`>`||e[0]===`>=`)&&e[1]===`$type`)return `"$type" cannot be use with operator "${e[0]}"`;let t=ds$1(e);return t?`Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(e)} with ${JSON.stringify(t)}.`:`Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(e)} to expression syntax.`}function ps$1(e,t,n){let r=n[e];return Array.isArray(r)?ls$1(r)?ms$1(r,t.concat(e)):{path:t.concat(e),legacyFilter:r}:null}function ms$1(e,t=[]){if(!Array.isArray(e)||e.length<1)return null;switch(e[0]){case `all`:case `any`:case `none`:for(let n=1;n<e.length;n++){let r=ps$1(n,t,e);if(r)return r}break;case `!`:{let n=ps$1(1,t,e);if(n)return n;break}case `case`:for(let n=1;n<e.length-1;n+=2){let r=ps$1(n,t,e);if(r)return r}}return null}function hs$1(e,t){let n=ms$1(e);if(!n||typeof console>`u`)return;let r=n.path.map(e=>`[${e}]`).join(``);console.warn(`${t}${r}: ${fs$1(n.legacyFilter)}`);}const gs$1={type:`boolean`,default:false,transition:false,"property-type":`data-driven`,expression:{interpolated:false,parameters:[`zoom`,`feature`]}};function _s$1(e,t,n){if(e==null)return {filter:()=>true,needGeometry:false,getGlobalStateRefs:()=>new Set};ls$1(e)?hs$1(e,t):e=bs$1(e);let r=Yo$1(e,t,gs$1,n);if(r.result===`error`)throw Error(r.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return {filter:(e,t,n)=>r.value.evaluate(e,t,{},n),needGeometry:ys$1(e),getGlobalStateRefs:()=>rs$1(r.value.expression)}}function vs$1(e,t){return e<t?-1:+(e>t)}function ys$1(e){if(!Array.isArray(e))return false;if(e[0]===`within`||e[0]===`distance`)return true;for(let t=1;t<e.length;t++)if(ys$1(e[t]))return true;return false}function bs$1(e){if(!e)return true;let t=e[0];return e.length<=1?t!==`any`:t===`==`?xs$1(e[1],e[2],`==`):t===`!=`?Ts$1(xs$1(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?xs$1(e[1],e[2],t):t===`any`?Ss$1(e.slice(1)):t===`all`?[`all`].concat(e.slice(1).map(bs$1)):t===`none`?[`all`].concat(e.slice(1).map(bs$1).map(Ts$1)):t===`in`?Cs$1(e[1],e.slice(2)):t===`!in`?Ts$1(Cs$1(e[1],e.slice(2))):t===`has`?ws$1(e[1]):t!==`!has`||Ts$1(ws$1(e[1]))}function xs$1(e,t,n){switch(e){case `$type`:return [`filter-type-${n}`,t];case `$id`:return [`filter-id-${n}`,t];default:return [`filter-${n}`,e,t]}}function Ss$1(e){return [`any`].concat(e.map(bs$1))}function Cs$1(e,t){if(t.length===0)return false;switch(e){case `$type`:return [`filter-type-in`,[`literal`,t]];case `$id`:return [`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?[`filter-in-large`,e,[`literal`,t.sort(vs$1)]]:[`filter-in-small`,e,[`literal`,t]]}}function ws$1(e){switch(e){case `$type`:return true;case `$id`:return [`filter-has-id`];default:return [`filter-has`,e]}}function Ts$1(e){return [`!`,e]}function ks$1(){let e={},t=M.$version;for(let n in M.$root){let r=M.$root[n];if(r.required){let i=null;i=n===`version`?t:r.type===`array`?[]:{},i!=null&&(e[n]=i);}}return e}function As$1(e){let t=e.key,n=e.value;return n?[new P(t,n,`constants have been deprecated as of v8`)]:[]}function U$1(e){return e instanceof Number||e instanceof String||e instanceof Boolean?e.valueOf():e}function js$1(e){if(Array.isArray(e))return e.map(js$1);if(e instanceof Object&&!(e instanceof Number||e instanceof String||e instanceof Boolean)){let t={};for(let n in e)t[n]=js$1(e[n]);return t}return U$1(e)}function Ms$1(e){let t=e.key,n=e.value,r=e.valueSpec||{},i=e.objectElementValidators||{},a=e.style,o=e.styleSpec,s=e.validateSpec,c=[],l=H(n);if(l!==`object`)return [new P(t,n,`object expected, ${l} found`)];for(let e in n){let l=e.split(`.`)[0],u=Vr$1(r,l)||r[`*`],d;if(Vr$1(i,l))d=i[l];else if(Vr$1(r,l)){if(n[e]===void 0)continue;d=s;}else if(i[`*`])d=i[`*`];else if(r[`*`])d=s;else {c.push(new P(t,n[e],`unknown property "${e}"`));continue}c=c.concat(d({key:(t&&`${t}.`)+e,value:n[e],valueSpec:u,style:a,styleSpec:o,object:n,objectKey:e,validateSpec:s},n));}for(let e in r)i[e]||r[e].required&&r[e].default===void 0&&n[e]===void 0&&c.push(new P(t,n,`missing required property "${e}"`));return c}function Ns$1(e){let t=e.value,n=e.valueSpec,r=e.validateSpec,i=e.style,a=e.styleSpec,o=e.key,s=e.arrayElementValidator||r;if(H(t)!==`array`)return [new P(o,t,`array expected, ${H(t)} found`)];if(n.length&&t.length!==n.length)return [new P(o,t,`array length ${n.length} expected, length ${t.length} found`)];let c={type:n.value,values:n.values};a.$version<7&&(c.function=n.function),H(n.value)===`object`&&(c=n.value);let l=[];for(let n=0;n<t.length;n++)l=l.concat(s({array:t,arrayIndex:n,value:t[n],valueSpec:c,validateSpec:e.validateSpec,style:i,styleSpec:a,key:`${o}[${n}]`}));return l}function Ps$1(e){let t=e.key,n=e.value,r=e.valueSpec,i=H(n);return i===`number`&&n!==n&&(i=`NaN`),i===`number`?`minimum`in r&&n<r.minimum?[new P(t,n,`${n} is less than the minimum value ${r.minimum}`)]:`maximum`in r&&n>r.maximum?[new P(t,n,`${n} is greater than the maximum value ${r.maximum}`)]:[]:[new P(t,n,`number expected, ${i} found`)]}function Fs$1(e){let t=e.valueSpec,n=U$1(e.value.type),r,i={},a,o,s=n!==`categorical`&&e.value.property===void 0,c=!s,l=H(e.value.stops)===`array`&&H(e.value.stops[0])===`array`&&H(e.value.stops[0][0])===`object`,u=Ms$1({key:e.key,value:e.value,valueSpec:e.styleSpec.function,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{stops:d,default:m}});return n===`identity`&&s&&u.push(new P(e.key,e.value,`missing required property "property"`)),n!==`identity`&&!e.value.stops&&u.push(new P(e.key,e.value,`missing required property "stops"`)),n===`exponential`&&e.valueSpec.expression&&!Mo$1(e.valueSpec)&&u.push(new P(e.key,e.value,`exponential functions not supported`)),e.styleSpec.$version>=8&&(c&&!Ao$1(e.valueSpec)?u.push(new P(e.key,e.value,`property functions not supported`)):s&&!jo$1(e.valueSpec)&&u.push(new P(e.key,e.value,`zoom functions not supported`))),(n===`categorical`||l)&&e.value.property===void 0&&u.push(new P(e.key,e.value,`"property" property is required`)),u;function d(e){if(n===`identity`)return [new P(e.key,e.value,`identity function may not have a "stops" property`)];let t=[],r=e.value;return t=t.concat(Ns$1({key:e.key,value:r,valueSpec:e.valueSpec,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,arrayElementValidator:f})),H(r)===`array`&&r.length===0&&t.push(new P(e.key,r,`array must have at least one stop`)),t}function f(e){let n=[],r=e.value,s=e.key;if(H(r)!==`array`)return [new P(s,r,`array expected, ${H(r)} found`)];if(r.length!==2)return [new P(s,r,`array length 2 expected, length ${r.length} found`)];if(l){if(H(r[0])!==`object`)return [new P(s,r,`object expected, ${H(r[0])} found`)];if(r[0].zoom===void 0)return [new P(s,r,`object stop key must have zoom`)];if(r[0].value===void 0)return [new P(s,r,`object stop key must have value`)];if(o&&o>U$1(r[0].zoom))return [new P(s,r[0].zoom,`stop zoom values must appear in ascending order`)];U$1(r[0].zoom)!==o&&(o=U$1(r[0].zoom),a=void 0,i={}),n=n.concat(Ms$1({key:`${s}[0]`,value:r[0],valueSpec:{zoom:{}},validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:Ps$1,value:p}}));}else n=n.concat(p({key:`${s}[0]`,value:r[0]},r));return Jo$1(js$1(r[1]))?n.concat([new P(`${s}[1]`,r[1],`expressions are not allowed in function stops.`)]):n.concat(e.validateSpec({key:`${s}[1]`,value:r[1],valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec}))}function p(e,o){let s=H(e.value),c=U$1(e.value),l=e.value===null?o:e.value;if(!r)r=s;else if(s!==r)return [new P(e.key,l,`${s} stop domain type must match previous stop domain type ${r}`)];if(s!==`number`&&s!==`string`&&s!==`boolean`)return [new P(e.key,l,`stop domain value must be a number, string, or boolean`)];if(s!==`number`&&n!==`categorical`){let r=`number expected, ${s} found`;return Ao$1(t)&&n===void 0&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new P(e.key,l,r)]}return n===`categorical`&&s===`number`&&(!isFinite(c)||Math.floor(c)!==c)?[new P(e.key,l,`integer expected, found ${c}`)]:n!==`categorical`&&s===`number`&&a!==void 0&&c<a?[new P(e.key,l,`stop domain values must appear in ascending order`)]:(a=c,n===`categorical`&&c in i?[new P(e.key,l,`stop domain values must be unique`)]:(i[c]=true,[]))}function m(e){return e.validateSpec({key:e.key,value:e.value,valueSpec:t,validateSpec:e.validateSpec,style:e.style,styleSpec:e.styleSpec})}}function Is$1(e){let t=(e.expressionContext===`property`?$o$1:Yo$1)(js$1(e.value),e.key,e.valueSpec);if(t.result===`error`)return t.value.map(t=>new P(`${e.key}${t.key}`,e.value,t.message));let n=t.value.expression||t.value._styleExpression.expression;if(e.expressionContext===`property`&&e.propertyKey===`text-font`&&!n.outputDefined())return [new P(e.key,e.value,`Invalid data expression for "${e.propertyKey}". Output values must be contained as literals within the expression.`)];if(e.expressionContext===`property`&&e.propertyType===`layout`&&!Eo$1(n))return [new P(e.key,e.value,`"feature-state" data expressions are not supported with layout properties.`)];if(e.expressionContext===`filter`&&!Eo$1(n))return [new P(e.key,e.value,`"feature-state" data expressions are not supported with filters.`)];if(e.expressionContext&&e.expressionContext.indexOf(`cluster`)===0){if(!Do$1(n,[`zoom`,`feature-state`]))return [new P(e.key,e.value,`"zoom" and "feature-state" expressions are not supported with cluster properties.`)];if(e.expressionContext===`cluster-initial`&&!To$1(n))return [new P(e.key,e.value,`Feature data expressions are not supported with initial expression part of cluster properties.`)]}return []}function Ls$1(e){let t=e.value,n=e.key,r=H(t);return r===`boolean`?[]:[new P(n,t,`boolean expected, ${r} found`)]}function Rs$1(e){let t=e.key,n=e.value,r=H(n);return r===`string`?B.parse(String(n))?[]:[new P(t,n,`color expected, "${n}" found`)]:[new P(t,n,`color expected, ${r} found`)]}function zs$1(e){let t=e.key,n=e.value,r=e.valueSpec,i=[];return Array.isArray(r.values)?r.values.indexOf(U$1(n))===-1&&i.push(new P(t,n,`expected one of [${r.values.join(`, `)}], ${JSON.stringify(n)} found`)):Object.keys(r.values).indexOf(U$1(n))===-1&&i.push(new P(t,n,`expected one of [${Object.keys(r.values).join(`, `)}], ${JSON.stringify(n)} found`)),i}function Bs$1(e,t){let n=e;for(let e of t)n=n[e];return n}function Vs$1(e,t){let n=ms$1(t);return n?[new P(`${e.key}${n.path.map(e=>`[${e}]`).join(``)}`,Bs$1(e.value,n.path),fs$1(n.legacyFilter),null,`warning`)]:[]}function Hs$1(e){let t=js$1(e.value);return ls$1(t)?[...Vs$1(e,t),...Is$1(No$1({},e,{expressionContext:`filter`,valueSpec:{value:`boolean`}}))]:Us$1(e)}function Us$1(e){let t=e.value,n=e.key;if(H(t)!==`array`)return [new P(n,t,`array expected, ${H(t)} found`)];let r=e.styleSpec,i,a=[];if(t.length<1)return [new P(n,t,`filter array must have at least 1 element`)];switch(a=a.concat(zs$1({key:`${n}[0]`,value:t[0],valueSpec:r.filter_operator})),U$1(t[0])){case `<`:case `<=`:case `>`:case `>=`:t.length>=2&&U$1(t[1])===`$type`&&a.push(new P(n,t,`"$type" cannot be use with operator "${t[0]}"`));case `==`:case `!=`:t.length!==3&&a.push(new P(n,t,`filter array for operator "${t[0]}" must have 3 elements`));case `in`:case `!in`:t.length>=2&&(i=H(t[1]),i!==`string`&&a.push(new P(`${n}[1]`,t[1],`string expected, ${i} found`)));for(let o=2;o<t.length;o++)i=H(t[o]),U$1(t[1])===`$type`?a=a.concat(zs$1({key:`${n}[${o}]`,value:t[o],valueSpec:r.geometry_type})):i!==`string`&&i!==`number`&&i!==`boolean`&&a.push(new P(`${n}[${o}]`,t[o],`string, number, or boolean expected, ${i} found`));break;case `any`:case `all`:case `none`:for(let r=1;r<t.length;r++)a=a.concat(Us$1({key:`${n}[${r}]`,value:t[r],styleSpec:e.styleSpec}));break;case `has`:case `!has`:i=H(t[1]),t.length===2?i!==`string`&&a.push(new P(`${n}[1]`,t[1],`string expected, ${i} found`)):a.push(new P(n,t,`filter array for "${t[0]}" operator must have 2 elements`));}return a}function Ws$1(e,t){let n=e.key,r=e.validateSpec,i=e.style,a=e.styleSpec,o=e.value,s=e.objectKey,c=a[`${t}_${e.layerType}`];if(!c)return [];let l=s.match(/^(.*)-transition$/);if(t===`paint`&&l&&c[l[1]]&&c[l[1]].transition)return r({key:n,value:o,valueSpec:a.transition,style:i,styleSpec:a});let u=e.valueSpec||c[s];if(!u)return [new P(n,o,`unknown property "${s}"`)];let d;if(H(o)===`string`&&Ao$1(u)&&!u.tokens&&(d=/^{([^}]+)}$/.exec(o)))return [new P(n,o,`"${s}" does not support interpolation syntax\nUse an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(d[1])} }\`.`)];let f=[];return e.layerType===`symbol`&&s===`text-font`&&Po$1(js$1(o))&&U$1(o.type)===`identity`&&f.push(new P(n,o,`"text-font" does not support identity functions`)),f.concat(r({key:e.key,value:o,valueSpec:u,style:i,styleSpec:a,expressionContext:`property`,propertyType:t,propertyKey:s}))}function Gs$1(e){return Ws$1(e,`paint`)}function Ks$1(e){return Ws$1(e,`layout`)}function qs$1(e){let t=[],n=e.value,r=e.key,i=e.style,a=e.styleSpec;if(H(n)!==`object`)return [new P(r,n,`object expected, ${H(n)} found`)];!n.type&&!n.ref&&t.push(new P(r,n,`either "type" or "ref" is required`));let o=U$1(n.type),s=U$1(n.ref);if(n.id){let a=U$1(n.id);for(let o=0;o<e.arrayIndex;o++){let e=i.layers[o];U$1(e.id)===a&&t.push(new P(r,n.id,`duplicate layer id "${n.id}", previously used at line ${e.id.__line__}`));}}if(`ref`in n){[`type`,`source`,`source-layer`,`filter`,`layout`].forEach(e=>{e in n&&t.push(new P(r,n[e],`"${e}" is prohibited for ref layers`));});let e;i.layers.forEach(t=>{U$1(t.id)===s&&(e=t);}),e?e.ref?t.push(new P(r,n.ref,`ref cannot reference another ref layer`)):o=U$1(e.type):t.push(new P(r,n.ref,`ref layer "${s}" not found`));}else if(o!==`background`)if(!n.source)t.push(new P(r,n,`missing required property "source"`));else {let e=i.sources&&i.sources[n.source],a=e&&U$1(e.type);e?a===`vector`&&o===`raster`?t.push(new P(r,n.source,`layer "${n.id}" requires a raster source`)):a!==`raster-dem`&&o===`hillshade`||a!==`raster-dem`&&o===`color-relief`?t.push(new P(r,n.source,`layer "${n.id}" requires a raster-dem source`)):a===`raster`&&o!==`raster`?t.push(new P(r,n.source,`layer "${n.id}" requires a vector source`)):a===`vector`&&!n[`source-layer`]?t.push(new P(r,n,`layer "${n.id}" must specify a "source-layer"`)):a===`raster-dem`&&o!==`hillshade`&&o!==`color-relief`?t.push(new P(r,n.source,`raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.`)):o===`line`&&n.paint&&n.paint[`line-gradient`]&&(a!==`geojson`||!e.lineMetrics)&&t.push(new P(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new P(r,n.source,`source "${n.source}" not found`));}return o===`raster`&&n.paint?.resampling&&n.paint?.[`raster-resampling`]&&t.push(new P(r,n.paint,`layer "${n.id}" redundantly specifies "resampling" and "raster-resampling" paint properties, but only one is allowed. It is advised to use "resampling".`)),t=t.concat(Ms$1({key:r,value:n,valueSpec:a.layer,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(){return []},type(){return e.validateSpec({key:`${r}.type`,value:n.type,valueSpec:a.layer.type,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,object:n,objectKey:`type`})},filter:Hs$1,layout(e){return Ms$1({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(e){return Ks$1(No$1({layerType:o},e))}}})},paint(e){return Ms$1({layer:n,key:e.key,value:e.value,style:e.style,styleSpec:e.styleSpec,validateSpec:e.validateSpec,objectElementValidators:{"*"(e){return Gs$1(No$1({layerType:o},e))}}})}}})),t}function Js$1(e){let t=e.value,n=e.key,r=H(t);return r===`string`?[]:[new P(n,t,`string expected, ${r} found`)]}function Ys$1(e){let t=e.sourceName??``,n=e.value,r=e.styleSpec,i=r.source_raster_dem,a=e.style,o=[],s=H(n);if(n===void 0)return o;if(s!==`object`)return o.push(new P(`source_raster_dem`,n,`object expected, ${s} found`)),o;let c=U$1(n.encoding)===`custom`,l=[`redFactor`,`greenFactor`,`blueFactor`,`baseShift`],u=e.value.encoding?`"${e.value.encoding}"`:`Default`;for(let s in n)!c&&l.includes(s)?o.push(new P(s,n[s],`In "${t}": "${s}" is only valid when "encoding" is set to "custom". ${u} encoding found`)):i[s]?o=o.concat(e.validateSpec({key:s,value:n[s],valueSpec:i[s],validateSpec:e.validateSpec,style:a,styleSpec:r})):o.push(new P(s,n[s],`unknown property "${s}"`));return o}const Xs$1={promoteId:Qs$1};function Zs$1(e){let t=e.value,n=e.key,r=e.styleSpec,i=e.style,a=e.validateSpec;if(!t.type)return [new P(n,t,`"type" is required`)];let o=U$1(t.type),s;switch(o){case `vector`:case `raster`:return s=Ms$1({key:n,value:t,valueSpec:r[`source_${o.replace(`-`,`_`)}`],style:e.style,styleSpec:r,objectElementValidators:Xs$1,validateSpec:a}),s;case `raster-dem`:return s=Ys$1({sourceName:n,value:t,style:e.style,styleSpec:r,validateSpec:a}),s;case `geojson`:if(s=Ms$1({key:n,value:t,valueSpec:r.source_geojson,style:i,styleSpec:r,validateSpec:a,objectElementValidators:Xs$1}),t.cluster)for(let e in t.clusterProperties){let[r,i]=t.clusterProperties[e],o=typeof r==`string`?[r,[`accumulated`],[`get`,e]]:r;s.push(...Is$1({key:`${n}.${e}.map`,value:i,expressionContext:`cluster-map`})),s.push(...Is$1({key:`${n}.${e}.reduce`,value:o,expressionContext:`cluster-reduce`}));}return s;case `video`:return Ms$1({key:n,value:t,valueSpec:r.source_video,style:i,validateSpec:a,styleSpec:r});case `image`:return Ms$1({key:n,value:t,valueSpec:r.source_image,style:i,validateSpec:a,styleSpec:r});case `canvas`:return [new P(n,null,`Please use runtime APIs to add canvas sources, rather than including them in stylesheets.`,`source.canvas`)];default:return zs$1({key:`${n}.type`,value:t.type,valueSpec:{values:[`vector`,`raster`,`raster-dem`,`geojson`,`video`,`image`]}})}}function Qs$1({key:e,value:t}){if(H(t)===`string`)return Js$1({key:e,value:t});{let n=[];for(let r in t)n.push(...Js$1({key:`${e}.${r}`,value:t[r]}));return n}}function $s$1(e){let t=e.value,n=e.styleSpec,r=n.light,i=e.style,a=[],o=H(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new P(`light`,t,`object expected, ${o} found`)]),a;for(let o in t){let s=o.match(/^(.*)-transition$/);a=s&&r[s[1]]&&r[s[1]].transition?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:n.transition,validateSpec:e.validateSpec,style:i,styleSpec:n})):r[o]?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:r[o],validateSpec:e.validateSpec,style:i,styleSpec:n})):a.concat([new P(o,t[o],`unknown property "${o}"`)]);}return a}function ec$1(e){let t=e.value,n=e.styleSpec,r=n.sky,i=e.style,a=H(t);if(t===void 0)return [];if(a!==`object`)return [new P(`sky`,t,`object expected, ${a} found`)];let o=[];for(let a in t)o=r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new P(a,t[a],`unknown property "${a}"`)]);return o}function tc$1(e){let t=e.value,n=e.styleSpec,r=n.terrain,i=e.style,a=[],o=H(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new P(`terrain`,t,`object expected, ${o} found`)]),a;for(let o in t)a=r[o]?a.concat(e.validateSpec({key:o,value:t[o],valueSpec:r[o],validateSpec:e.validateSpec,style:i,styleSpec:n})):a.concat([new P(o,t[o],`unknown property "${o}"`)]);return a}function nc$1(e){return Js$1(e).length===0?[]:Is$1(e)}function rc$1(e){return Js$1(e).length===0?[]:Is$1(e)}function ic$1(e){let t=e.key,n=e.value;if(H(n)===`array`){if(n.length<1||n.length>4)return [new P(t,n,`padding requires 1 to 4 values; ${n.length} values found`)];let r={type:`number`},i=[];for(let a=0;a<n.length;a++)i=i.concat(e.validateSpec({key:`${t}[${a}]`,value:n[a],validateSpec:e.validateSpec,valueSpec:r}));return i}return Ps$1({key:t,value:n,valueSpec:{}})}function ac$1(e){let t=e.key,n=e.value;if(H(n)===`array`){let r={type:`number`};if(n.length<1)return [new P(t,n,`array length at least 1 expected, length 0 found`)];let i=[];for(let a=0;a<n.length;a++)i=i.concat(e.validateSpec({key:`${t}[${a}]`,value:n[a],validateSpec:e.validateSpec,valueSpec:r}));return i}return Ps$1({key:t,value:n,valueSpec:{}})}function oc$1(e){let t=e.key,n=e.value;if(H(n)===`array`){if(n.length<1)return [new P(t,n,`array length at least 1 expected, length 0 found`)];let e=[];for(let r=0;r<n.length;r++)e=e.concat(Rs$1({key:`${t}[${r}]`,value:n[r]}));return e}return Rs$1({key:t,value:n})}function sc$1(e){let t=e.key,n=e.value,r=H(n),i=e.styleSpec;if(r!==`array`||n.length<1||n.length%2!=0)return [new P(t,n,`variableAnchorOffsetCollection requires a non-empty array of even length`)];let a=[];for(let r=0;r<n.length;r+=2)a=a.concat(zs$1({key:`${t}[${r}]`,value:n[r],valueSpec:i.layout_symbol[`text-anchor`]})),a=a.concat(Ns$1({key:`${t}[${r+1}]`,value:n[r+1],valueSpec:{length:2,value:`number`},validateSpec:e.validateSpec,style:e.style,styleSpec:i}));return a}function cc$1(e){let t=[],n=e.value,r=e.key;if(Array.isArray(n)){let i=[],a=[];for(let o in n)n[o].id&&i.includes(n[o].id)&&t.push(new P(r,n,`all the sprites' ids must be unique, but ${n[o].id} is duplicated`)),i.push(n[o].id),n[o].url&&a.includes(n[o].url)&&t.push(new P(r,n,`all the sprites' URLs must be unique, but ${n[o].url} is duplicated`)),a.push(n[o].url),t=t.concat(Ms$1({key:`${r}[${o}]`,value:n[o],valueSpec:{id:{type:`string`,required:true},url:{type:`string`,required:true}},validateSpec:e.validateSpec}));return t}return Js$1({key:r,value:n})}function lc$1(e){let t=e.value,n=e.styleSpec,r=n.projection,i=e.style,a=H(t);if(t===void 0)return [];if(a!==`object`)return [new P(`projection`,t,`object expected, ${a} found`)];let o=[];for(let a in t)o=r[a]?o.concat(e.validateSpec({key:a,value:t[a],valueSpec:r[a],style:i,styleSpec:n})):o.concat([new P(a,t[a],`unknown property "${a}"`)]);return o}function uc$1(e){let t=e.key,n=e.value;n=n instanceof String?n.valueOf():n;let r=H(n);return r===`array`&&!fc$1(n)&&!dc$1(n)?[new P(t,n,`projection expected, invalid array ${JSON.stringify(n)} found`)]:[`array`,`string`].includes(r)?[]:[new P(t,n,`projection expected, invalid type "${r}" found`)]}function dc$1(e){return !![`interpolate`,`step`,`literal`].includes(e[0])}function fc$1(e){return Array.isArray(e)&&e.length===3&&typeof e[0]==`string`&&typeof e[1]==`string`&&typeof e[2]==`number`}function pc$1(e){return !!e&&e.constructor===Object}function mc$1(e){return pc$1(e.value)?[]:[new P(e.key,e.value,`object expected, ${H(e.value)} found`)]}function hc$1(e){let t=e.key,n=e.value,r=e.validateSpec,i=e.styleSpec,a=e.style;if(!pc$1(n))return [new P(t,n,`object expected, ${H(n)} found`)];let o=[];for(let e in n){let s=n[e],c=H(s);if(c===`string`)o.push(...Js$1({key:`${t}.${e}`,value:s}));else if(c===`array`){let n={url:{type:`string`,required:true},"unicode-range":{type:`array`,value:`string`}};for(let[c,l]of s.entries())o.push(...Ms$1({key:`${t}.${e}[${c}]`,value:l,valueSpec:n,styleSpec:i,style:a,validateSpec:r}));}else o.push(new P(`${t}.${e}`,s,`string or array expected, ${c} found`));}return o}const gc$1={"*"(){return []},array:Ns$1,boolean:Ls$1,number:Ps$1,color:Rs$1,constants:As$1,enum:zs$1,filter:Hs$1,function:Fs$1,layer:qs$1,object:Ms$1,source:Zs$1,light:$s$1,sky:ec$1,terrain:tc$1,projection:lc$1,projectionDefinition:uc$1,string:Js$1,formatted:nc$1,resolvedImage:rc$1,padding:ic$1,numberArray:ac$1,colorArray:oc$1,variableAnchorOffsetCollection:sc$1,sprite:cc$1,state:mc$1,fontFaces:hc$1};function _c$1(e){let t=e.value,n=e.valueSpec,r=e.styleSpec;return e.validateSpec=_c$1,n.expression&&Po$1(U$1(t))?Fs$1(e):n.expression&&Jo$1(js$1(t))?Is$1(e):n.type&&gc$1[n.type]?gc$1[n.type](e):Ms$1(No$1({},e,{valueSpec:n.type?r[n.type]:n}))}function vc$1(e){let t=e.value,n=e.key,r=Js$1(e);return r.length?r:(t.indexOf(`{fontstack}`)===-1&&r.push(new P(n,t,`"glyphs" url must include a "{fontstack}" token`)),t.indexOf(`{range}`)===-1&&r.push(new P(n,t,`"glyphs" url must include a "{range}" token`)),r)}function yc$1(e,t=M){let n=[];return n=n.concat(_c$1({key:``,value:e,valueSpec:t.$root,styleSpec:t,style:e,validateSpec:_c$1,objectElementValidators:{glyphs:vc$1,"*"(){return []}}})),e.constants&&(n=n.concat(As$1({key:`constants`,value:e.constants}))),xc$1(n)}yc$1.source=Sc$1(bc$1(Zs$1)),yc$1.sprite=Sc$1(bc$1(cc$1)),yc$1.glyphs=Sc$1(bc$1(vc$1)),yc$1.light=Sc$1(bc$1($s$1)),yc$1.sky=Sc$1(bc$1(ec$1)),yc$1.terrain=Sc$1(bc$1(tc$1)),yc$1.state=Sc$1(bc$1(mc$1)),yc$1.layer=Sc$1(bc$1(qs$1)),yc$1.filter=Sc$1(bc$1(Hs$1)),yc$1.paintProperty=Sc$1(bc$1(Gs$1)),yc$1.layoutProperty=Sc$1(bc$1(Ks$1));function bc$1(e){return function(t){return e(Object.assign({},t,{validateSpec:_c$1}))}}function xc$1(e){return [].concat(e).sort((e,t)=>e.line-t.line)}function Sc$1(e){return function(...t){return xc$1(e.apply(this,t))}}const Cc$1={type:`enum`,"property-type":`data-constant`,expression:{interpolated:false,parameters:[`global-state`]},values:{visible:{},none:{}},transition:false,default:`visible`};var wc$1=class wc{constructor(e,t,n){this._rootKey=t,this._globalState=n,this.setValue(e);}evaluate(){return this._literalValue??this._compiledValue.evaluate({})}setValue(e){if(e==null||e===`visible`||e===`none`){this._literalValue=e===`none`?`none`:`visible`,this._compiledValue=void 0,this._globalStateRefs=new Set;return}let t=Yo$1(e,this._rootKey,Cc$1,this._globalState);if(t.result===`error`)throw this._literalValue=`visible`,this._compiledValue=void 0,Error(t.value.map(e=>`${e.key}: ${e.message}`).join(`, `));this._literalValue=void 0,this._compiledValue=t.value,this._globalStateRefs=rs$1(t.value.expression);}getGlobalStateRefs(){return this._globalStateRefs}};function Tc$1(e,t,n){return new wc$1(e,t,n)}const Ec$1=yc$1,Dc$1=new Set(Object.keys(M).filter(e=>e.startsWith(`source_`)).map(e=>e.slice(7).replaceAll(`_`,`-`)));function Oc$1(e){return Object.entries(e.sources??{}).filter(([,e])=>!Dc$1.has(e.type)).map(([e])=>`sources.${e}`)}function kc$1(e,t){let n=Oc$1(t);return Ac$1(e,Ec$1(t).filter(({message:e})=>!n.some(t=>e.startsWith(`${t}:`)||e.startsWith(`${t}.`))))}function Ac$1(e,t){let n=false;for(let r of t){if(r.severity===`warning`){Vt(r.message);continue}e.fire(new Vn(Error(r.message))),n=true;}return n}function jc$1(e,t,n,r){return r?.validate!==false&&Ac$1(e,t({styleSpec:M,...n}))}var Mc$1=class e{constructor(e,t,n){let r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;let i=new Int32Array(this.arrayBuffer);e=i[0],t=i[1],n=i[2],this.d=t+2*n;for(let e=0;e<this.d*this.d;e++){let t=i[3+e],n=i[3+e+1];r.push(t===n?null:i.subarray(t,n));}let a=i[3+r.length],o=i[3+r.length+1];this.keys=i.subarray(a,o),this.bboxes=i.subarray(o),this.insert=this._insertReadonly;}else {this.d=t+2*n;for(let e=0;e<this.d*this.d;e++)r.push([]);this.keys=[],this.bboxes=[];}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;let i=n/t*e;this.min=-i,this.max=e+i;}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i);}_insertReadonly(){throw Error(`Cannot insert into a GridIndex created from an ArrayBuffer.`)}_insertCell(e,t,n,r,i,a){this.cells[i].push(a);}query(e,t,n,r,i){let a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return [...this.keys];{let a=[];return this._forEachCell(e,t,n,r,this._queryCell,a,{},i),a}}_queryCell(e,t,n,r,i,a,o,s){let c=this.cells[i];if(c!==null){let i=this.keys,l=this.bboxes;for(let u of c)if(o[u]===void 0){let c=u*4;(s?s(l[c+0],l[c+1],l[c+2],l[c+3]):e<=l[c+2]&&t<=l[c+3]&&n>=l[c+0]&&r>=l[c+1])?(o[u]=true,a.push(i[u])):o[u]=false;}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.d*c+f;if(!(s&&!s(this._convertFromCellCoord(f),this._convertFromCellCoord(c),this._convertFromCellCoord(f+1),this._convertFromCellCoord(c+1)))&&i.call(this,e,t,n,r,l,a,o,s))return}}_convertFromCellCoord(e){return (e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let e=this.cells,t=3+this.cells.length+1+1,n=0;for(let e of this.cells)n+=e.length;let r=new Int32Array(t+n+this.keys.length+this.bboxes.length);r[0]=this.extent,r[1]=this.n,r[2]=this.padding;let i=t;for(let t=0;t<e.length;t++){let n=e[t];r[3+t]=i,r.set(n,i),i+=n.length;}return r[3+e.length]=i,r.set(this.keys,i),i+=this.keys.length,r[3+e.length+1]=i,r.set(this.bboxes,i),i+=this.bboxes.length,r.buffer}static serialize(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}}static deserialize(t){return new e(t.buffer)}};const Nc$1={};function W$1(e,t,n={}){if(Nc$1[e])throw Error(`${e} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:e,writeable:false}),Nc$1[e]={klass:t,omit:n.omit||[],shallow:n.shallow||[]};}W$1(`Object`,Object),W$1(`Set`,Set),W$1(`TransferableGridIndex`,Mc$1),W$1(`Color`,B),W$1(`Error`,Error),W$1(`AJAXError`,On),W$1(`ResolvedImage`,oi$1),W$1(`StylePropertyFunction`,es$1),W$1(`StyleExpression`,Go$1,{omit:[`_evaluator`]}),W$1(`ZoomDependentExpression`,Zo$1),W$1(`ZoomConstantExpression`,Xo$1),W$1(`CompoundExpression`,_o$1,{omit:[`_evaluate`]});for(let e in go$1)go$1[e]._classRegistryKey||W$1(`Expression_${e}`,go$1[e]);function Pc$1(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor?.name===`ArrayBuffer`)}function Fc$1(e){let t=e.constructor;return e.$name||t._classRegistryKey}function Ic$1(e){if(typeof e!=`object`||!e)return false;let t=Fc$1(e);return t&&t!==`Object`}function Lc$1(e){return !Ic$1(e)&&(e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp||e instanceof Blob||e instanceof Error||Pc$1(e)||Yt(e)||ArrayBuffer.isView(e)||e instanceof ImageData)}function Rc$1(e,t){if(Lc$1(e))return (Pc$1(e)||Yt(e))&&t&&t.push(e),ArrayBuffer.isView(e)&&t&&t.push(e.buffer),e instanceof ImageData&&t&&t.push(e.data.buffer),e;if(Array.isArray(e)){let n=[];for(let r of e)n.push(Rc$1(r,t));return n}if(typeof e!=`object`)throw Error(`can't serialize object of type ${typeof e}`);let n=Fc$1(e);if(!n)throw Error(`can't serialize object of unregistered class ${e.constructor.name}`);if(!Nc$1[n])throw Error(`${n} is not registered.`);let{klass:r}=Nc$1[n],i=r.serialize?r.serialize(e,t):{};if(!r.serialize){for(let r in e){if(!e.hasOwnProperty(r)||Nc$1[n].omit.includes(r))continue;let a=e[r];a!==void 0&&(i[r]=Nc$1[n].shallow.includes(r)?a:Rc$1(a,t));}e instanceof Error&&(i.message=e.message);}else if(i===t?.[t.length-1])throw Error(`statically serialized object won't survive transfer of $name property`);if(i.$name)throw Error(`$name property is reserved for worker serialization logic.`);return n!==`Object`&&(i.$name=n),i}function zc$1(e){if(Lc$1(e))return e;if(Array.isArray(e))return e.map(zc$1);if(typeof e!=`object`)throw Error(`can't deserialize object of type ${typeof e}`);let t=Fc$1(e)||`Object`;if(!Nc$1[t])throw Error(`can't deserialize unregistered class ${t}`);let{klass:n}=Nc$1[t];if(!n)throw Error(`can't deserialize unregistered class ${t}`);if(n.deserialize)return n.deserialize(e);let r=Object.create(n.prototype);for(let n of Object.keys(e)){if(n===`$name`)continue;let i=e[n];r[n]=Nc$1[t].shallow.includes(n)?i:zc$1(i);}return r}var Bc$1=class Bc{constructor(){this.first=true;}update(e,t){let n=Math.floor(e);return this.first?(this.first=false,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=n,true):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=t):this.lastFloorZoom<n&&(this.lastIntegerZoom=n,this.lastIntegerZoomTime=t),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=n,true))}};function Vc$1(e){return /[\u02EA\u02EB\u1100-\u11FF\u2E80-\u2FDF\u3000-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function Uc$1(e){return /[\u02EA\u02EB\u1100-\u11FF\u1400-\u167F\u18B0-\u18F5\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303F\u3041-\u3096\u309D-\u30FB\u30FD-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFE4\uDFF0-\uDFF6]|[\uD81C-\uD822\uD83D\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD30-\uDEFB]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83C[\uDC00-\uDE00\uDF00-\uDFFF]|\uD83E[\uDD00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function Gc$1(e){return /[\u0900-\u0DFF\u0F00-\u109F\u1780-\u17FF]/gim.test(String.fromCodePoint(e))}function qc$1(e){for(let t of e)if(Uc$1(t.codePointAt(0)))return true;return false}function Yc$1(e){let t=e.map(e=>{try{return RegExp(`\\p{sc=${e}}`,`u`).source}catch{return null}}).filter(e=>e);return new RegExp(t.join(`|`),`u`)}Yc$1([`Arab`,`Dupl`,`Mong`,`Ougr`,`Syrc`]);const el$1=Yc$1(`Adlm.Arab.Armi.Avst.Chrs.Cprt.Egyp.Elym.Gara.Hatr.Hebr.Hung.Khar.Lydi.Mand.Mani.Mend.Merc.Mero.Narb.Nbat.Nkoo.Orkh.Palm.Phli.Phlp.Phnx.Prti.Rohg.Samr.Sarb.Sogo.Syrc.Thaa.Todr.Yezi`.split(`.`));function tl$1(e){return el$1.test(String.fromCodePoint(e))}function nl$1(e,t){return !t&&tl$1(e)?false:!Gc$1(e)}function rl$1(e){for(let t of e)if(tl$1(t.codePointAt(0)))return true;return false}function il$1(e,t){for(let n of e)if(!nl$1(n.codePointAt(0),t))return false;return true}const al$1=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=`unavailable`,this.pluginURL=null,this.loadScriptResolve=()=>{};}setState(e){this.pluginStatus=e.pluginStatus,this.pluginURL=e.pluginURL;}getState(){return {pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(e){if(al$1.isParsed())throw Error(`RTL text plugin already registered.`);this.applyArabicShaping=e.applyArabicShaping,this.processBidirectionalText=e.processBidirectionalText,this.processStyledBidirectionalText=e.processStyledBidirectionalText,this.loadScriptResolve();}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}async syncState(e,t){if(this.isParsed())return this.getState();if(e.pluginStatus!==`loading`)return this.setState(e),e;let n=e.pluginURL,r=new Promise(e=>{this.loadScriptResolve=e;}),i=new Promise(e=>setTimeout(()=>e(),this.TIMEOUT));if(await t(n),await Promise.race([r,i]),this.isParsed()){let e={pluginStatus:`loaded`,pluginURL:n};return this.setState(e),e}throw this.setState({pluginStatus:`error`,pluginURL:``}),Error(`RTL Text Plugin failed to import scripts from ${n}`)}};var G$1=class G{constructor(e,t){this.isSupportedScript=ol$1,this.zoom=e,t?(this.now=t.now||0,this.fadeDuration=t.fadeDuration||0,this.zoomHistory=t.zoomHistory||new Bc$1,this.transition=t.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Bc$1,this.transition={});}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let e=this.zoom,t=e-Math.floor(e),n=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:t+(1-t)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*t}}};function ol$1(e){return il$1(e,al$1.getRTLTextPluginStatus()===`loaded`)}const sl$1=`-transition`;var cl$1=class cl{constructor(e,t,n,r){this.property=e,this.value=t,this.expression=ts$1(t===void 0?e.specification.default:t,n,e.specification,r);}isDataDriven(){return this.expression.kind===`source`||this.expression.kind===`composite`}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}possiblyEvaluate(e,t,n){return this.property.possiblyEvaluate(this,e,t,n)}},ll$1=class ll{constructor(e,t,n){this.property=e,this.value=new cl$1(e,void 0,t,n);}transitioned(e,t){return new dl$1(this.property,this.value,t,Dt({},e.transition,this.transition),e.now)}untransitioned(){return new dl$1(this.property,this.value,null,{},0)}},ul$1=class ul{constructor(e,t,n){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues),this._globalState=n,this._rootKey=t;}_propertyRootKey(e){return `${this._rootKey}.${String(e)}`}hasProperty(e){return e in this._properties.defaultTransitionablePropertyValues}getValue(e){return zt(this._values[e].value.value)}setValue(e,t){Object.hasOwn(this._values,e)||(this._values[e]=new ll$1(this._values[e].property,this._propertyRootKey(e),this._globalState)),this._values[e].value=new cl$1(this._values[e].property,t===null?void 0:zt(t),this._propertyRootKey(e),this._globalState);}getTransition(e){return zt(this._values[e].transition)}setTransition(e,t){Object.hasOwn(this._values,e)||(this._values[e]=new ll$1(this._values[e].property,this._propertyRootKey(e),this._globalState)),this._values[e].transition=zt(t)||void 0;}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n);let r=this.getTransition(t);r!==void 0&&(e[`${t}${sl$1}`]=r);}return e}transitioned(e,t){let n=new fl$1(this._properties);for(let r of Object.keys(this._values))n._values[r]=this._values[r].transitioned(e,t._values[r]);return n}untransitioned(){let e=new fl$1(this._properties);for(let t of Object.keys(this._values))e._values[t]=this._values[t].untransitioned();return e}},dl$1=class dl{constructor(e,t,n,r,i){this.property=e,this.value=t,this.begin=i+r.delay||0,this.end=this.begin+r.duration||0,e.specification.transition&&(r.delay||r.duration)&&(this.prior=n);}possiblyEvaluate(e,t,n){let r=e.now||0,i=this.value.possiblyEvaluate(e,t,n),a=this.prior;if(!a)return i;if(r>this.end||this.value.isDataDriven())return this.prior=null,i;if(r<this.begin)return a.possiblyEvaluate(e,t,n);{let o=(r-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(e,t,n),i,St(o))}}},fl$1=class fl{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues);}possiblyEvaluate(e,t,n){let r=new hl$1(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}hasTransition(){for(let e of Object.keys(this._values))if(this._values[e].prior)return true;return false}},pl$1=class pl{constructor(e,t,n){this._properties=e,this._values=Object.create(e.defaultPropertyValues),this._globalState=n,this._rootKey=t;}_propertyRootKey(e){return `${this._rootKey}.${String(e)}`}hasValue(e){return this._values[e].value!==void 0}hasProperty(e){return e in this._properties.defaultPropertyValues}getValue(e){return zt(this._values[e].value)}setValue(e,t){this._values[e]=new cl$1(this._values[e].property,t===null?void 0:zt(t),this._propertyRootKey(e),this._globalState);}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n);}return e}possiblyEvaluate(e,t,n){let r=new hl$1(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}},ml$1=class ml{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n;}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}},hl$1=class hl{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues);}get(e){return this._values[e]}};function gl$1(e){if(Array.isArray(e))return e.length;let t=e?.values;return Array.isArray(t)?t.length:void 0}function _l$1(e,t){let n=gl$1(e),r=gl$1(t);return n!==void 0&&r!==void 0&&n!==r}var K$1=class K{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t){if(e.isDataDriven())throw Error(`Value should not be data driven`);return e.expression.evaluate(t)}interpolate(e,t,n){if(_l$1(e,t))return Vt(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ni$1[r];return i?i(e,t,n):e}},q$1=class q{constructor(e,t,n){this.specification=e,this.name=t,this.overrides=n;}possiblyEvaluate(e,t,n,r){return e.expression.kind===`constant`||e.expression.kind===`camera`?new ml$1(this,{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)},t):new ml$1(this,e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new ml$1(this,{kind:`constant`,value:void 0},e.parameters);if(_l$1(e.value.value,t.value.value))return Vt(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ni$1[r];if(i){let r=i(e.value.value,t.value.value,n);return new ml$1(this,{kind:`constant`,value:r},e.parameters)}return e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}},vl$1=class vl extends q$1{possiblyEvaluate(e,t,n,r){if(e.value===void 0)return new ml$1(this,{kind:`constant`,value:void 0},t);if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r),a=e.property.specification.type===`resolvedImage`&&typeof i!=`string`?i.name:i,o=this._calculate(a,a,a,t);return new ml$1(this,{kind:`constant`,value:o},t)}if(e.expression.kind===`camera`){let n=this._calculate(e.expression.evaluate({zoom:t.zoom-1}),e.expression.evaluate({zoom:t.zoom}),e.expression.evaluate({zoom:t.zoom+1}),t);return new ml$1(this,{kind:`constant`,value:n},t)}return new ml$1(this,e.expression,t)}evaluate(e,t,n,r,i,a){if(e.kind===`source`){let o=e.evaluate(t,n,r,i,a);return this._calculate(o,o,o,t)}return e.kind===`composite`?this._calculate(e.evaluate({zoom:Math.floor(t.zoom)-1},n,r),e.evaluate({zoom:Math.floor(t.zoom)},n,r),e.evaluate({zoom:Math.floor(t.zoom)+1},n,r),t):e.value}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},yl$1=class yl{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){if(e.value!==void 0){if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r);return this._calculate(i,i,i,t)}return this._calculate(e.expression.evaluate(new G$1(Math.floor(t.zoom-1),t)),e.expression.evaluate(new G$1(Math.floor(t.zoom),t)),e.expression.evaluate(new G$1(Math.floor(t.zoom+1),t)),t)}}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},bl$1=class bl{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){return !!e.expression.evaluate(t,null,{},n,r)}interpolate(){return false}},xl$1=class xl{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let t in e){let n=e[t];n.specification.overridable&&this.overridableProperties.push(t);let r=this.defaultPropertyValues[t]=new cl$1(n,void 0,n.name,void 0),i=this.defaultTransitionablePropertyValues[t]=new ll$1(n,n.name,void 0);this.defaultTransitioningPropertyValues[t]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[t]=r.possiblyEvaluate({});}}};W$1(`DataDrivenProperty`,q$1),W$1(`DataConstantProperty`,K$1),W$1(`CrossFadedDataDrivenProperty`,vl$1),W$1(`CrossFadedProperty`,yl$1),W$1(`ColorRampProperty`,bl$1);const Sl$1=` is a PAINT property not a LAYOUT property. Use get/setPaintProperty instead?`,Cl$1=` is a LAYOUT property not a PAINT property. Use get/setLayoutProperty instead?`;var wl$1=class wl extends Hn{constructor(e,t,n){if(super(),this.id=e.id,this.type=e.type,this._globalState=n,this._featureFilter={filter:()=>true,needGeometry:false,getGlobalStateRefs:()=>new Set},this._visibilityExpression=Tc$1(this.visibility,`layers[${this.id}].layout.visibility`,n),e.type!==`custom`&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!==`background`&&(this.source=e.source,this.sourceLayer=e[`source-layer`],this.filter=e.filter,this._featureFilter=_s$1(e.filter,`layers[${this.id}].filter`,n)),t.layout&&(this._unevaluatedLayout=new pl$1(t.layout,`layers[${this.id}].layout`,n)),t.paint)){this._transitionablePaint=new ul$1(t.paint,`layers[${this.id}].paint`,n);for(let t in e.paint)this.setPaintProperty(t,e.paint[t],{validate:false});for(let t in e.layout)this.setLayoutProperty(t,e.layout[t],{validate:false});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new hl$1(t.paint);}}setFilter(e){this.filter=e,this._featureFilter=_s$1(e,`layers[${this.id}].filter`,this._globalState);}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(e){if(e===`visibility`)return this.visibility;if(this._transitionablePaint?.hasProperty(e))throw Error(e+Sl$1);if(!this._unevaluatedLayout)throw Error(`Cannot get layout property "${e}" on layer type "${this.type}" which has no layout properties.`);return this._unevaluatedLayout.getValue(e)}getLayoutAffectingGlobalStateRefs(){let e=new Set;for(let t of this._visibilityExpression.getGlobalStateRefs())e.add(t);if(this._unevaluatedLayout)for(let t in this._unevaluatedLayout._values){let n=this._unevaluatedLayout._values[t];for(let t of n.getGlobalStateRefs())e.add(t);}for(let t of this._featureFilter.getGlobalStateRefs())e.add(t);return e}getPaintAffectingGlobalStateRefs(){let e=new globalThis.Map;if(this._transitionablePaint)for(let t in this._transitionablePaint._values){let n=this._transitionablePaint._values[t].value;for(let r of n.getGlobalStateRefs()){let i=e.get(r)??[];i.push({name:t,value:n.value}),e.set(r,i);}}return e}getVisibilityAffectingGlobalStateRefs(){return this._visibilityExpression.getGlobalStateRefs()}setLayoutProperty(e,t,n={}){if(e===`visibility`){this.visibility=t,this._visibilityExpression.setValue(t),this.recalculateVisibility();return}if(this._transitionablePaint?.hasProperty(e)){this.fire(new Vn(Error(e+Sl$1)));return}t!=null&&this._validate(Ec$1.layoutProperty,`layers.${this.id}.layout.${e}`,e,t,n)||this._unevaluatedLayout.setValue(e,t);}getPaintProperty(e){if(e.endsWith(`-transition`)){let t=e.slice(0,-11);if(t===`visibility`||this._unevaluatedLayout?.hasProperty(t))throw Error(e+Cl$1);return this._transitionablePaint.getTransition(t)}if(e===`visibility`||this._unevaluatedLayout?.hasProperty(e))throw Error(e+Cl$1);return this._transitionablePaint.getValue(e)}setPaintProperty(e,t,n={}){if(e===`visibility`||this._unevaluatedLayout?.hasProperty(e))return this.fire(new Vn(Error(e+Cl$1))),false;if(t!=null&&this._validate(Ec$1.paintProperty,`layers.${this.id}.paint.${e}`,e,t,n))return false;if(e.endsWith(`-transition`))return this._transitionablePaint.setTransition(e.slice(0,-11),t||void 0),false;{let n=this._transitionablePaint._values[e],r=n.property.specification[`property-type`]===`cross-faded-data-driven`,i=n.value.isDataDriven(),a=n.value;this._transitionablePaint.setValue(e,t),this._handleSpecialPaintPropertyUpdate(e);let o=this._transitionablePaint._values[e].value;return o.isDataDriven()||i||r||this._handleOverridablePaintPropertyUpdate(e,a,o)}}_handleSpecialPaintPropertyUpdate(e){}_handleOverridablePaintPropertyUpdate(e,t,n){return false}isHidden(e=this.minzoom,t=false){return this.minzoom&&e<(t?Math.floor(this.minzoom):this.minzoom)||this.maxzoom&&e>=this.maxzoom?true:this._evaluatedVisibility===`none`}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculateVisibility(){this._evaluatedVisibility=this._visibilityExpression.evaluate();}recalculate(e,t){e.getCrossfadeParameters&&(this._crossfadeParameters=e.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,t)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,t);}serialize(){let e={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout?.serialize(),paint:this._transitionablePaint?.serialize()};return this.visibility&&(e.layout||={},e.layout.visibility=this.visibility),Lt(e,(e,t)=>e!==void 0&&!(t===`layout`&&!Object.keys(e).length)&&!(t===`paint`&&!Object.keys(e).length))}_validate(e,t,n,r,i={}){return jc$1(this,e,{key:t,layerType:this.type,objectKey:n,value:r},i)}is3D(){return false}isTileClipped(){return false}hasOffscreenPass(){return false}resize(){}isStateDependent(){for(let e in this.paint._values){let t=this.paint.get(e);if(!(!(t instanceof ml$1)||!Ao$1(t.property.specification))&&(t.value.kind===`source`||t.value.kind===`composite`)&&t.value.isStateDependent)return true}return false}};let Tl$1;const El$1=()=>Tl$1||=new xl$1({"raster-opacity":new K$1(M.paint_raster[`raster-opacity`],`raster-opacity`),"raster-hue-rotate":new K$1(M.paint_raster[`raster-hue-rotate`],`raster-hue-rotate`),"raster-brightness-min":new K$1(M.paint_raster[`raster-brightness-min`],`raster-brightness-min`),"raster-brightness-max":new K$1(M.paint_raster[`raster-brightness-max`],`raster-brightness-max`),"raster-saturation":new K$1(M.paint_raster[`raster-saturation`],`raster-saturation`),"raster-contrast":new K$1(M.paint_raster[`raster-contrast`],`raster-contrast`),resampling:new K$1(M.paint_raster.resampling,`resampling`),"raster-resampling":new K$1(M.paint_raster[`raster-resampling`],`raster-resampling`),"raster-fade-duration":new K$1(M.paint_raster[`raster-fade-duration`],`raster-fade-duration`)});var Dl$1={get paint(){return El$1()}};const Ol$1=e=>e.type===`raster`;var kl$1=class kl extends wl$1{constructor(e,t){super(e,Dl$1,t);}};const Al$1={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};var jl$1=class jl{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}},J$1=class J{constructor(){this.isTransferred=false,this.capacity=-1,this.resize(0);}static serialize(e,t){return e._trim(),t&&(e.isTransferred=true,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(e){this.reserve(e),this.length=e;}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(this.capacity*5),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t);}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}freeBufferAfterUpload(){this.arrayBuffer=new ArrayBuffer(0),this._refreshViews();}};function Ml$1(e,t=1){let n=0,r=0;return {members:e.map(e=>{let i=Nl$1(e.type),a=n=Pl$1(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}}),size:Pl$1(n,Math.max(r,t)),alignment:t}}function Nl$1(e){return Al$1[e].BYTES_PER_ELEMENT}function Pl$1(e,t){return Math.ceil(e/t)*t}var Fl$1=class Fl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.int16[r+0]=t,this.int16[r+1]=n,e}};Fl$1.prototype.bytesPerElement=4,W$1(`StructArrayLayout2i4`,Fl$1);var Il$1=class Il extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}};Il$1.prototype.bytesPerElement=6,W$1(`StructArrayLayout3i6`,Il$1);var Ll$1=class Ll extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}};Ll$1.prototype.bytesPerElement=8,W$1(`StructArrayLayout4i8`,Ll$1);var Rl$1=class Rl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};Rl$1.prototype.bytesPerElement=12,W$1(`StructArrayLayout2i4i12`,Rl$1);var zl$1=class zl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*4,c=e*8;return this.int16[s+0]=t,this.int16[s+1]=n,this.uint8[c+4]=r,this.uint8[c+5]=i,this.uint8[c+6]=a,this.uint8[c+7]=o,e}};zl$1.prototype.bytesPerElement=8,W$1(`StructArrayLayout2i4ub8`,zl$1);var Bl$1=class Bl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.float32[r+0]=t,this.float32[r+1]=n,e}};Bl$1.prototype.bytesPerElement=8,W$1(`StructArrayLayout2f8`,Bl$1);var Vl$1=class Vl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l){let u=this.length;return this.resize(u+1),this.emplace(u,e,t,n,r,i,a,o,s,c,l)}emplace(e,t,n,r,i,a,o,s,c,l,u){let d=e*10;return this.uint16[d+0]=t,this.uint16[d+1]=n,this.uint16[d+2]=r,this.uint16[d+3]=i,this.uint16[d+4]=a,this.uint16[d+5]=o,this.uint16[d+6]=s,this.uint16[d+7]=c,this.uint16[d+8]=l,this.uint16[d+9]=u,e}};Vl$1.prototype.bytesPerElement=20,W$1(`StructArrayLayout10ui20`,Vl$1);var Hl$1=class Hl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*8;return this.uint16[l+0]=t,this.uint16[l+1]=n,this.uint16[l+2]=r,this.uint16[l+3]=i,this.uint16[l+4]=a,this.uint16[l+5]=o,this.uint16[l+6]=s,this.uint16[l+7]=c,e}};Hl$1.prototype.bytesPerElement=16,W$1(`StructArrayLayout8ui16`,Hl$1);var Ul$1=class Ul extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d){let f=this.length;return this.resize(f+1),this.emplace(f,e,t,n,r,i,a,o,s,c,l,u,d)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e*12;return this.int16[p+0]=t,this.int16[p+1]=n,this.int16[p+2]=r,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=c,this.int16[p+8]=l,this.int16[p+9]=u,this.int16[p+10]=d,this.int16[p+11]=f,e}};Ul$1.prototype.bytesPerElement=24,W$1(`StructArrayLayout4i4ui4i24`,Ul$1);var Wl$1=class Wl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}};Wl$1.prototype.bytesPerElement=12,W$1(`StructArrayLayout3f12`,Wl$1);var Gl$1=class Gl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint32[n+0]=t,e}};Gl$1.prototype.bytesPerElement=4,W$1(`StructArrayLayout1ul4`,Gl$1);var Kl$1=class Kl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c){let l=this.length;return this.resize(l+1),this.emplace(l,e,t,n,r,i,a,o,s,c)}emplace(e,t,n,r,i,a,o,s,c,l){let u=e*10,d=e*5;return this.int16[u+0]=t,this.int16[u+1]=n,this.int16[u+2]=r,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[d+3]=s,this.uint16[u+8]=c,this.uint16[u+9]=l,e}};Kl$1.prototype.bytesPerElement=20,W$1(`StructArrayLayout6i1ul2ui20`,Kl$1);var ql$1=class ql extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};ql$1.prototype.bytesPerElement=12,W$1(`StructArrayLayout2i2i2i12`,ql$1);var Jl$1=class Jl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=e*4,s=e*8;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}};Jl$1.prototype.bytesPerElement=16,W$1(`StructArrayLayout2f1f2i16`,Jl$1);var Yl$1=class Yl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*16,c=e*4,l=e*8;return this.uint8[s+0]=t,this.uint8[s+1]=n,this.float32[c+1]=r,this.float32[c+2]=i,this.int16[l+6]=a,this.int16[l+7]=o,e}};Yl$1.prototype.bytesPerElement=16,W$1(`StructArrayLayout2ub2f2i16`,Yl$1);var Xl$1=class Xl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}};Xl$1.prototype.bytesPerElement=6,W$1(`StructArrayLayout3ui6`,Xl$1);var Zl$1=class Zl extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){let _=this.length;return this.resize(_+1),this.emplace(_,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=e*24,y=e*12,b=e*48;return this.int16[v+0]=t,this.int16[v+1]=n,this.uint16[v+2]=r,this.uint16[v+3]=i,this.uint32[y+2]=a,this.uint32[y+3]=o,this.uint32[y+4]=s,this.uint16[v+10]=c,this.uint16[v+11]=l,this.uint16[v+12]=u,this.float32[y+7]=d,this.float32[y+8]=f,this.uint8[b+36]=p,this.uint8[b+37]=m,this.uint8[b+38]=h,this.uint32[y+10]=g,this.int16[v+22]=_,e}};Zl$1.prototype.bytesPerElement=48,W$1(`StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48`,Zl$1);var Ql$1=class Ql extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D){let O=this.length;return this.resize(O+1),this.emplace(O,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O){let k=e*32,A=e*16;return this.int16[k+0]=t,this.int16[k+1]=n,this.int16[k+2]=r,this.int16[k+3]=i,this.int16[k+4]=a,this.int16[k+5]=o,this.int16[k+6]=s,this.int16[k+7]=c,this.uint16[k+8]=l,this.uint16[k+9]=u,this.uint16[k+10]=d,this.uint16[k+11]=f,this.uint16[k+12]=p,this.uint16[k+13]=m,this.uint16[k+14]=h,this.uint16[k+15]=g,this.uint16[k+16]=_,this.uint16[k+17]=v,this.uint16[k+18]=y,this.uint16[k+19]=b,this.uint16[k+20]=x,this.uint16[k+21]=S,this.uint16[k+22]=C,this.uint32[A+12]=w,this.float32[A+13]=T,this.float32[A+14]=E,this.uint16[k+30]=D,this.uint16[k+31]=O,e}};Ql$1.prototype.bytesPerElement=64,W$1(`StructArrayLayout8i15ui1ul2f2ui64`,Ql$1);var $l$1=class $l extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.float32[n+0]=t,e}};$l$1.prototype.bytesPerElement=4,W$1(`StructArrayLayout1f4`,$l$1);var eu$1=class eu extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*6,a=e*3;return this.uint16[i+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,e}};eu$1.prototype.bytesPerElement=12,W$1(`StructArrayLayout1ui2f12`,eu$1);var tu$1=class tu extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*2,a=e*4;return this.uint32[i+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,e}};tu$1.prototype.bytesPerElement=8,W$1(`StructArrayLayout1ul2ui8`,tu$1);var nu$1=class nu extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}};nu$1.prototype.bytesPerElement=4,W$1(`StructArrayLayout2ui4`,nu$1);var ru$1=class ru extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint16[n+0]=t,e}};ru$1.prototype.bytesPerElement=2,W$1(`StructArrayLayout1ui2`,ru$1);var iu$1=class iu extends J$1{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}};iu$1.prototype.bytesPerElement=16,W$1(`StructArrayLayout4f16`,iu$1);var au$1=class au extends jl$1{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new l(this.anchorPointX,this.anchorPointY)}};au$1.prototype.size=20;var ou$1=class ou extends Kl$1{get(e){return new au$1(this,e)}};W$1(`CollisionBoxArray`,ou$1);var su$1=class su extends jl$1{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}};su$1.prototype.size=48;var cu$1=class cu extends Zl$1{get(e){return new su$1(this,e)}};W$1(`PlacedSymbolArray`,cu$1);var lu$1=class lu extends jl$1{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}};lu$1.prototype.size=64;var uu$1=class uu extends Ql$1{get(e){return new lu$1(this,e)}};W$1(`SymbolInstanceArray`,uu$1);var du$1=class du extends $l$1{getoffsetX(e){return this.float32[e*1+0]}};W$1(`GlyphOffsetArray`,du$1);var fu$1=class fu extends Il$1{getx(e){return this.int16[e*3+0]}gety(e){return this.int16[e*3+1]}gettileUnitDistanceFromAnchor(e){return this.int16[e*3+2]}};W$1(`SymbolLineVertexArray`,fu$1);var pu$1=class pu extends jl$1{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}};pu$1.prototype.size=12;var mu$1=class mu extends eu$1{get(e){return new pu$1(this,e)}};W$1(`TextAnchorOffsetArray`,mu$1);var hu$1=class hu extends jl$1{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}};hu$1.prototype.size=8;var gu$1=class gu extends tu$1{get(e){return new hu$1(this,e)}};W$1(`FeatureIndexArray`,gu$1);var _u$1=class _u extends Fl$1{},vu$1=class vu extends Il$1{},yu$1=class yu extends Ll$1{},bu$1=class bu extends Fl$1{},xu$1=class xu extends Fl$1{},Su$1=class Su extends Rl$1{},Cu$1=class Cu extends zl$1{},wu$1=class wu extends Bl$1{},Tu$1=class Tu extends Vl$1{},Eu$1=class Eu extends Hl$1{},Du$1=class Du extends Ul$1{},Ou$1=class Ou extends Wl$1{},ku$1=class ku extends Gl$1{},Au$1=class Au extends ql$1{},ju$1=class ju extends Jl$1{},Mu$1=class Mu extends Yl$1{},Nu$1=class Nu extends Xl$1{},Pu$1=class Pu extends Xl$1{},Fu$1=class Fu extends nu$1{},Iu$1=class Iu extends ru$1{};const Lu$1=Ml$1([{name:`a_pos`,components:2,type:`Int16`}],4),Ru$1=Lu$1.members;var zu$1=class e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=false,this.segments=e;}prepareSegment(t,n,r,i){let a=this.segments[this.segments.length-1];return t>e.MAX_VERTEX_ARRAY_LENGTH&&Vt(`Max vertices per segment is ${e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!a||a.vertexLength+t>e.MAX_VERTEX_ARRAY_LENGTH||a.sortKey!==i?this.createNewSegment(n,r,i):a}createNewSegment(e,t,n){let r={vertexOffset:e.length,primitiveOffset:t.length,vertexLength:0,primitiveLength:0,vaos:{}};return n!==void 0&&(r.sortKey=n),this._forceNewSegmentOnNextPrepare=false,this.segments.push(r),r}getOrCreateLatestSegment(e,t,n){return this.prepareSegment(0,e,t,n)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=true;}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy();}static simpleSegment(t,n,r,i){return new e([{vertexOffset:t,primitiveOffset:n,vertexLength:r,primitiveLength:i,vaos:{},sortKey:0}])}};zu$1.MAX_VERTEX_ARRAY_LENGTH=2**16-1,W$1(`SegmentVector`,zu$1);function Bu$1(e,t){return e=Tt(Math.floor(e),0,255),t=Tt(Math.floor(t),0,255),256*e+t}const Vu$1=Ml$1([{name:`a_pattern_from`,components:4,type:`Uint16`},{name:`a_pattern_to`,components:4,type:`Uint16`},{name:`a_pixel_ratio_from`,components:1,type:`Uint16`},{name:`a_pixel_ratio_to`,components:1,type:`Uint16`}]),Hu$1=Ml$1([{name:`a_dasharray_from`,components:4,type:`Uint16`},{name:`a_dasharray_to`,components:4,type:`Uint16`}]);var Uu$1=o(((e,t)=>{function n(e,t){for(var n=e.length&3,r=e.length-n,i=t,a,o=3432918353,s=461845907,c,l=0;l<r;)c=e.charCodeAt(l)&255|(e.charCodeAt(++l)&255)<<8|(e.charCodeAt(++l)&255)<<16|(e.charCodeAt(++l)&255)<<24,++l,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)&4294967295,i^=c,i=i<<13|i>>>19,a=(i&65535)*5+(((i>>>16)*5&65535)<<16)&4294967295,i=(a&65535)+27492+(((a>>>16)+58964&65535)<<16);switch(c=0,n){case 3:c^=(e.charCodeAt(l+2)&255)<<16;case 2:c^=(e.charCodeAt(l+1)&255)<<8;case 1:c^=e.charCodeAt(l)&255,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)&4294967295,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)&4294967295,i^=c;}return i^=e.length,i^=i>>>16,i=(i&65535)*2246822507+(((i>>>16)*2246822507&65535)<<16)&4294967295,i^=i>>>13,i=(i&65535)*3266489909+(((i>>>16)*3266489909&65535)<<16)&4294967295,i^=i>>>16,i>>>0}t!==void 0&&(t.exports=n);})),Wu$1=o(((e,t)=>{function n(e,t){for(var n=e.length,r=t^n,i=0,a;n>=4;)a=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),a^=a>>>24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)^a,n-=4,++i;switch(n){case 3:r^=(e.charCodeAt(i+2)&255)<<16;case 2:r^=(e.charCodeAt(i+1)&255)<<8;case 1:r^=e.charCodeAt(i)&255,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16);}return r^=r>>>13,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>15,r>>>0}t.exports=n;})),Gu$1=c(o(((e,t)=>{var n=Uu$1(),r=Wu$1();t.exports=n,t.exports.murmur3=n,t.exports.murmur2=r;}))()),Ku$1=class e{constructor(){this.ids=[],this.positions=[],this.indexed=false;}add(e,t,n,r){this.ids.push(qu$1(e)),this.positions.push(t,n,r);}getPositions(e){if(!this.indexed)throw Error(`Trying to get index, but feature positions are not indexed`);let t=qu$1(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1;}let i=[];for(;this.ids[n]===t;){let e=this.positions[3*n],t=this.positions[3*n+1],r=this.positions[3*n+2];i.push({index:e,start:t,end:r}),n++;}return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return Ju$1(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(t){let n=new e;return n.ids=t.ids,n.positions=t.positions,n.indexed=true,n}};function qu$1(e){let t=+e;return !isNaN(t)&&t<=2**53-1?t:(0, Gu$1.default)(String(e))}function Ju$1(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;Yu$1(e,a,o),Yu$1(t,3*a,3*o),Yu$1(t,3*a+1,3*o+1),Yu$1(t,3*a+2,3*o+2);}o-n<r-o?(Ju$1(e,t,n,o),n=o+1):(Ju$1(e,t,o+1,r),r=o);}}function Yu$1(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}W$1(`FeaturePositionMap`,Ku$1);var Xu$1=class Xu{constructor(e,t){this.gl=e.gl,this.location=t;}},Zu$1=class Zu extends Xu$1{constructor(e,t){super(e,t),this.current=0;}set(e){this.current!==e&&(this.current=e,this.gl.uniform1i(this.location,e));}},Qu$1=class Qu extends Xu$1{constructor(e,t){super(e,t),this.current=0;}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e));}},$u$1=class $u extends Xu$1{constructor(e,t){super(e,t),this.current=[0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1])&&(this.current=e,this.gl.uniform2f(this.location,e[0],e[1]));}},ed$1=class ed extends Xu$1{constructor(e,t){super(e,t),this.current=[0,0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2])&&(this.current=e,this.gl.uniform3f(this.location,e[0],e[1],e[2]));}},td$1=class td extends Xu$1{constructor(e,t){super(e,t),this.current=[0,0,0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2]||e[3]!==this.current[3])&&(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]));}},nd$1=class nd extends Xu$1{constructor(e,t){super(e,t),this.current=B.transparent;}set(e){(e.r!==this.current.r||e.g!==this.current.g||e.b!==this.current.b||e.a!==this.current.a)&&(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a));}},rd$1=class rd extends Xu$1{constructor(e,t){super(e,t),this.current=[];}set(e){if(e!=this.current){this.current=e;let t=new Float32Array(e.length*4);for(let n=0;n<e.length;n++)t[4*n]=e[n].r,t[4*n+1]=e[n].g,t[4*n+2]=e[n].b,t[4*n+3]=e[n].a;this.gl.uniform4fv(this.location,t);}}},id$1=class id extends Xu$1{constructor(e,t){super(e,t),this.current=[];}set(e){if(e!=this.current){this.current=e;let t=new Float32Array(e);this.gl.uniform1fv(this.location,t);}}};const ad$1=new Float32Array(16);var od$1=class od extends Xu$1{constructor(e,t){super(e,t),this.current=ad$1;}set(e){if(e[12]!==this.current[12]||e[0]!==this.current[0]){this.current=e,this.gl.uniformMatrix4fv(this.location,false,e);return}for(let t=1;t<16;t++)if(e[t]!==this.current[t]){this.current=e,this.gl.uniformMatrix4fv(this.location,false,e);break}}};function sd$1(e){return [Bu$1(255*e.r,255*e.g),Bu$1(255*e.b,255*e.a)]}var cd$1=class cd{constructor(e,t,n){this.value=e,this.uniformNames=t.map(e=>`u_${e}`),this.type=n;}setUniform(e,t,n){e.set(n.constantOr(this.value));}getBinding(e,t,n){return this.type===`color`?new nd$1(e,t):new Qu$1(e,t)}},ld$1=class ld{constructor(e,t){this.uniformNames=t.map(e=>`u_${e}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(e,t){this.pixelRatioFrom=t.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=t.tlbr,this.patternTo=e.tlbr;}setConstantDashPositions(e,t){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,t.y,t.height,t.width];}setUniform(e,t,n,r){let i=null;r===`u_pattern_to`?i=this.patternTo:r===`u_pattern_from`?i=this.patternFrom:r===`u_dasharray_to`?i=this.dashTo:r===`u_dasharray_from`?i=this.dashFrom:r===`u_pixel_ratio_to`?i=this.pixelRatioTo:r===`u_pixel_ratio_from`&&(i=this.pixelRatioFrom),i!==null&&e.set(i);}getBinding(e,t,n){return n.startsWith(`u_pattern`)||n.startsWith(`u_dasharray_`)?new td$1(e,t):new Qu$1(e,t)}},ud$1=class ud{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0})),this.paintVertexArray=new r;}populatePaintArray(e,t,n){let r=this.paintVertexArray.length,i=this.expression.evaluate(new G$1(0,n),t,{},n.canonical,[],n.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(r,e,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new G$1(0,i),n,r);this._setPaintValue(e,t,a);}_setPaintValue(e,t,n){if(this.type===`color`){let r=sd$1(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1]);}else {for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}},dd$1=class dd{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map(e=>`u_${e}_t`),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0})),this.paintVertexArray=new a;}populatePaintArray(e,t,n){let r=this.expression.evaluate(new G$1(this.zoom,n),t,{},n.canonical,[],n.formattedSection),i=this.expression.evaluate(new G$1(this.zoom+1,n),t,{},n.canonical,[],n.formattedSection),a=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(a,e,r,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new G$1(this.zoom,i),n,r),o=this.expression.evaluate(new G$1(this.zoom+1,i),n,r);this._setPaintValue(e,t,a,o);}_setPaintValue(e,t,n,r){if(this.type===`color`){let i=sd$1(n),a=sd$1(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1]);}else {for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}setUniform(e,t){let n=this.useIntegerZoom?Math.floor(t.zoom):t.zoom,r=Tt(this.expression.interpolationFactor(n,this.zoom,this.zoom+1),0,1);e.set(r);}getBinding(e,t,n){return new Qu$1(e,t)}},fd$1=class fd{constructor(e,t,n,r,i,a){this.expression=e,this.type=t,this.useIntegerZoom=n,this.zoom=r,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i;}populatePaintArray(e,t,n){let r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(r,e,this.getPositionIds(t),n);}updatePaintArray(e,t,n,r,i){this._setPaintValues(e,t,this.getPositionIds(n),i);}_setPaintValues(e,t,n,r){let i=this.getPositions(r);if(!i||!n)return;let a=i[n.min],o=i[n.mid],s=i[n.max];if(!(!a||!o||!s))for(let n=e;n<t;n++)this.emplace(this.zoomInPaintVertexArray,n,a,o),this.emplace(this.zoomOutPaintVertexArray,n,s,o);}upload(e){if(this.zoomInPaintVertexArray?.arrayBuffer.byteLength&&this.zoomOutPaintVertexArray?.arrayBuffer.byteLength){let t=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,t,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,t,this.expression.isStateDependent);}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy();}},pd$1=class pd extends fd$1{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns?.[this.layerId]}getVertexAttributes(){return Vu$1.members}emplace(e,t,n,r){e.emplace(t,n.tlbr[0],n.tlbr[1],n.tlbr[2],n.tlbr[3],r.tlbr[0],r.tlbr[1],r.tlbr[2],r.tlbr[3],n.pixelRatio,r.pixelRatio);}},md$1=class md extends fd$1{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes?.[this.layerId]}getVertexAttributes(){return Hu$1.members}emplace(e,t,n,r){e.emplace(t,0,n.y,n.height,n.width,0,r.y,r.height,r.width);}},hd$1=class hd{constructor(e,t,n){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof ml$1)||!Ao$1(a.property.specification))continue;let o=_d$1(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=a.property.specification[`property-type`],d=u===`cross-faded`||u===`cross-faded-data-driven`;if(s.kind===`constant`)this.binders[i]=d?new ld$1(s.value,o):new cd$1(s.value,o,c),r.push(`/u_${i}`);else if(s.kind===`source`||d){let n=yd$1(i,c,`source`);this.binders[i]=d?i===`line-dasharray`?new md$1(s,c,l,t,n,e.id):new pd$1(s,c,l,t,n,e.id):new ud$1(s,o,c,n),r.push(`/a_${i}`);}else {let e=yd$1(i,c,`composite`);this.binders[i]=new dd$1(s,o,c,l,t,e),r.push(`/z_${i}`);}}this.cacheKey=r.sort().join(``);}getMaxValue(e){let t=this.binders[e];return t instanceof ud$1||t instanceof dd$1?t.maxValue:0}populatePaintArrays(e,t,n){for(let r in this.binders){let i=this.binders[r];(i instanceof ud$1||i instanceof dd$1||i instanceof fd$1)&&i.populatePaintArray(e,t,n);}}setConstantPatternPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof ld$1&&r.setConstantPatternPositions(e,t);}}setConstantDashPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof ld$1&&r.setConstantDashPositions(e,t);}}updatePaintArrays(e,t,n,r,i){let a=false;for(let o of e){let e=t.getPositions(o.id);for(let t of e){let e=n.feature(t.index);for(let n in this.binders){let s=this.binders[n];(s instanceof ud$1||s instanceof dd$1||s instanceof fd$1)&&s.expression.isStateDependent===true&&(s.expression=r.paint.get(n).value,s.updatePaintArray(t.start,t.end,e,o.state,i),a=true);}}}return a}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof cd$1||n instanceof ld$1)&&e.push(...n.uniformNames.map(e=>`#define HAS_UNIFORM_${e}`));}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof ud$1||n instanceof dd$1)for(let t of n.paintVertexAttributes)e.push(t.name);else if(n instanceof fd$1){let t=n.getVertexAttributes();for(let n of t)e.push(n.name);}}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof cd$1||n instanceof ld$1||n instanceof dd$1)for(let t of n.uniformNames)e.push(t);}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,t){let n=[];for(let r in this.binders){let i=this.binders[r];if(i instanceof cd$1||i instanceof ld$1||i instanceof dd$1){for(let a of i.uniformNames)if(t[a]){let o=i.getBinding(e,t[a],a);n.push({name:a,property:r,binding:o});}}}return n}setUniforms(e,t,n,r){for(let{name:e,property:i,binding:a}of t)this.binders[i].setUniform(a,r,n.get(i),e);}updatePaintBuffers(e){this._buffers=[];for(let t in this.binders){let n=this.binders[t];if(e&&n instanceof fd$1){let t=e.fromScale===2?n.zoomInPaintVertexBuffer:n.zoomOutPaintVertexBuffer;t&&this._buffers.push(t);}else (n instanceof ud$1||n instanceof dd$1)&&n.paintVertexBuffer&&this._buffers.push(n.paintVertexBuffer);}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof ud$1||n instanceof dd$1||n instanceof fd$1)&&n.upload(e);}this.updatePaintBuffers();}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof ud$1||t instanceof dd$1||t instanceof fd$1)&&t.destroy();}}},gd$1=class gd{constructor(e,t,n=()=>true){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new hd$1(r,t,n);this.needsUpload=false,this._featureMap=new Ku$1,this._bufferOffset=0;}populatePaintArrays(e,t,n,r){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=true;}updatePaintArrays(e,t,n,r){for(let i of n)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(e,this._featureMap,t,i,r)||this.needsUpload;}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=false;}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy();}};function _d$1(e,t){return {"text-opacity":[`opacity`],"icon-opacity":[`opacity`],"text-color":[`fill_color`],"icon-color":[`fill_color`],"text-halo-color":[`halo_color`],"icon-halo-color":[`halo_color`],"text-halo-blur":[`halo_blur`],"icon-halo-blur":[`halo_blur`],"text-halo-width":[`halo_width`],"icon-halo-width":[`halo_width`],"line-gap-width":[`gapwidth`],"line-dasharray":[`dasharray_to`,`dasharray_from`],"line-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-extrusion-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`]}[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}function vd$1(e){return {"line-pattern":{source:Tu$1,composite:Tu$1},"fill-pattern":{source:Tu$1,composite:Tu$1},"fill-extrusion-pattern":{source:Tu$1,composite:Tu$1},"line-dasharray":{source:Eu$1,composite:Eu$1}}[e]}function yd$1(e,t,n){let r={color:{source:Bl$1,composite:iu$1},number:{source:$l$1,composite:Bl$1}};return vd$1(e)?.[n]||r[t][n]}W$1(`ConstantBinder`,cd$1),W$1(`CrossFadedConstantBinder`,ld$1),W$1(`SourceExpressionBinder`,ud$1),W$1(`CrossFadedPatternBinder`,pd$1),W$1(`CrossFadedDasharrayBinder`,md$1),W$1(`CompositeExpressionBinder`,dd$1),W$1(`ProgramConfiguration`,hd$1,{omit:[`_buffers`]}),W$1(`ProgramConfigurationSet`,gd$1);const bd$1=2**14-1,xd$1=-16383-1;function Sd$1(e){let t=j/e.extent,n=e.loadGeometry();for(let e of n)for(let n of e){let e=Math.round(n.x*t),r=Math.round(n.y*t);n.x=Tt(e,xd$1,bd$1),n.y=Tt(r,xd$1,bd$1),(e<n.x||e>n.x+1||r<n.y||r>n.y+1)&&Vt(`Geometry exceeds allowed extent, reduce your vector tile buffer size`);}return n}function Cd$1(e,t){return {type:e.type,id:e.id,properties:e.properties,geometry:t?Sd$1(e):[]}}const wd$1=-32768;function Td$1(e,t,n,r,i){e.emplaceBack(wd$1+t*8+r,wd$1+n*8+i);}var Ed$1=class Ed{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new bu$1,this.indexArray=new Pu$1,this.segments=new zu$1,this.programConfigurations=new gd$1(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){let r=this.layers[0],i=[],a=null,o=false,s=r.type===`heatmap`;if(r.type===`circle`){let e=r;a=e.layout.get(`circle-sort-key`),o=!a.isConstant(),s||=e.paint.get(`circle-pitch-alignment`)===`map`;}let c=s?t.subdivisionGranularity.circle:1,l=new G$1(this.zoom),u=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:r,index:s,sourceLayerIndex:c}of e){let e=Cd$1(t,u);if(!this.layers[0]._featureFilter.filter(l,e,n))continue;let d=o?a.evaluate(e,{},n):void 0,f={id:r,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:u?e.geometry:Sd$1(t),patterns:{},sortKey:d};i.push(f);}o&&i.sort((e,t)=>e.sortKey-t.sortKey);for(let r of i){let{geometry:i,index:a,sourceLayerIndex:o}=r,s=e[a].feature;this.addFeature(r,i,a,n,c),t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Ru$1),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(e,t,n,r,i=1){let a;switch(i){case 1:a=[0,7];break;case 3:a=[0,2,5,7];break;case 5:a=[0,1,3,4,6,7];break;case 7:a=[0,1,2,3,4,5,6,7];break;default:throw Error(`Invalid circle bucket granularity: ${i}; valid values are 1, 3, 5, 7.`)}let o=a.length;for(let n of t)for(let t of n){let n=t.x,r=t.y;if(n<0||n>=8192||r<0||r>=8192)continue;let i=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,e.sortKey),s=i.vertexLength;for(let e=0;e<o;e++)for(let t=0;t<o;t++)Td$1(this.layoutVertexArray,n,r,a[t],a[e]);for(let e=0;e<o-1;e++)for(let t=0;t<o-1;t++){let n=s+e*o+t,r=s+(e+1)*o+t;this.indexArray.emplaceBack(n,r+1,n+1),this.indexArray.emplaceBack(n,r,r+1);}i.vertexLength+=o*o,i.primitiveLength+=(o-1)*(o-1)*2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:{},canonical:r});}};W$1(`CircleBucket`,Ed$1,{omit:[`layers`]});function Dd$1(e,t){for(let n of e)if(Ld$1(t,n))return true;for(let n of t)if(Ld$1(e,n))return true;return Md$1(e,t)}function Od$1(e,t,n){return Ld$1(e,t)?true:Pd$1(t,e,n)}function kd$1(e,t){if(e.length===1)return Id$1(t,e[0]);for(let n of t)for(let t of n)if(Ld$1(e,t))return true;for(let n of e)if(Id$1(t,n))return true;for(let n of t)if(Md$1(e,n))return true;return false}function Ad$1(e,t,n){for(let r of t){if(e.length>=3){for(let t of r)if(Ld$1(e,t))return true}if(jd$1(e,r,n))return true}return false}function jd$1(e,t,n){if(e.length>1){if(Md$1(e,t))return true;for(let r of t)if(Pd$1(r,e,n))return true}for(let r of e)if(Pd$1(r,t,n))return true;return false}function Md$1(e,t){if(e.length===0||t.length===0)return false;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],a=t[e+1];if(Nd$1(r,i,n,a))return true}}return false}function Nd$1(e,t,n,r){return Ht(e,n,r)!==Ht(t,n,r)&&Ht(e,t,n)!==Ht(e,t,r)}function Pd$1(e,t,n){let r=n*n;if(t.length===1)return e.distSqr(t[0])<r;for(let n=1;n<t.length;n++){let i=t[n-1],a=t[n];if(Fd$1(e,i,a)<r)return true}return false}function Fd$1(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return i<0?e.distSqr(t):i>1?e.distSqr(n):e.distSqr(n.sub(t)._mult(i)._add(t))}function Id$1(e,t){let n=false,r,i,a;for(let o of e){r=o;for(let e=0,o=r.length-1;e<r.length;o=e++)i=r[e],a=r[o],i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(n=!n);}return n}function Ld$1(e,t){let n=false;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n);}return n}function Rd$1(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return true;let a=[new l(t,n),new l(t,i),new l(r,i),new l(r,n)];if(e.length>2){for(let t of a)if(Ld$1(e,t))return true}for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(zd$1(n,r,a))return true}return false}function zd$1(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return false;let a=Ht(e,t,n[0]);return a!==Ht(e,t,n[1])||a!==Ht(e,t,n[2])||a!==Ht(e,t,n[3])}function Bd$1(e,t,n){let r=t.paint.get(e).value;return r.kind===`constant`?r.value:n.programConfigurations.get(t.id).getMaxValue(e)}function Vd$1(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function Hd$1(e,t,n,r,i){if(!t[0]&&!t[1])return e;let a=l.convert(t)._mult(i);n===`viewport`&&a._rotate(-r);let o=[];for(let t of e)o.push(t.sub(a));return o}function Ud$1(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n],i=t.at(-1);(n===0||i&&!r.equals(i))&&t.push(r);}return t}function Wd$1(e,t){let n=[];for(let r of e){let e=Ud$1(r),i=[];for(let n=0;n<e.length;n++){let r=e[n],a=e[n-1],o=e[n+1],s=n===0?new l(0,0):r.sub(a)._unit()._perp(),c=n===e.length-1?new l(0,0):o.sub(r)._unit()._perp(),u=s._add(c)._unit(),d=u.x*c.x+u.y*c.y;d!==0&&u._mult(1/d),i.push(u._mult(t)._add(r));}n.push(i);}return n}function Gd$1({queryGeometry:e,size:t},n){return Od$1(e,n,t)}function Kd$1({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){return Od$1(e,a,t*(n.projectTileCoordinates(a.x,a.y,r,i).signedDistanceFromCamera/n.cameraToCenterDistance))}function qd$1({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){let o=n.projectTileCoordinates(a.x,a.y,r,i).signedDistanceFromCamera,s=t*(n.cameraToCenterDistance/o);return Od$1(e,Xd$1(a,n,r,i),s)}function Jd$1({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i},a){return Od$1(e,Xd$1(a,n,r,i),t)}function Yd$1({queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i,pitchAlignment:a=`map`,pitchScale:o=`map`},s){let c=a===`map`?o===`map`?Gd$1:Kd$1:o===`map`?qd$1:Jd$1,l={queryGeometry:e,size:t,transform:n,unwrappedTileID:r,getElevation:i};for(let e of s)for(let t of e)if(c(l,t))return true;return false}function Xd$1(e,t,n,r){let i=t.projectTileCoordinates(e.x,e.y,n,r).point;return new l((i.x*.5+.5)*t.width,(-i.y*.5+.5)*t.height)}function Zd$1(e,t,n,r){return e.map(e=>Xd$1(e,t,n,r))}let Qd$1;const $d$1=()=>Qd$1||=new xl$1({"circle-sort-key":new q$1(M.layout_circle[`circle-sort-key`],`circle-sort-key`)});let ef$1;const tf$1=()=>ef$1||=new xl$1({"circle-radius":new q$1(M.paint_circle[`circle-radius`],`circle-radius`),"circle-color":new q$1(M.paint_circle[`circle-color`],`circle-color`),"circle-blur":new q$1(M.paint_circle[`circle-blur`],`circle-blur`),"circle-opacity":new q$1(M.paint_circle[`circle-opacity`],`circle-opacity`),"circle-translate":new K$1(M.paint_circle[`circle-translate`],`circle-translate`),"circle-translate-anchor":new K$1(M.paint_circle[`circle-translate-anchor`],`circle-translate-anchor`),"circle-pitch-scale":new K$1(M.paint_circle[`circle-pitch-scale`],`circle-pitch-scale`),"circle-pitch-alignment":new K$1(M.paint_circle[`circle-pitch-alignment`],`circle-pitch-alignment`),"circle-stroke-width":new q$1(M.paint_circle[`circle-stroke-width`],`circle-stroke-width`),"circle-stroke-color":new q$1(M.paint_circle[`circle-stroke-color`],`circle-stroke-color`),"circle-stroke-opacity":new q$1(M.paint_circle[`circle-stroke-opacity`],`circle-stroke-opacity`)});var nf$1={get paint(){return tf$1()},get layout(){return $d$1()}};const rf$1=e=>e.type===`circle`;var af$1=class af extends wl$1{constructor(e,t){super(e,nf$1,t);}createBucket(e){return new Ed$1(e)}queryRadius(e){let t=e;return Bd$1(`circle-radius`,this,t)+Bd$1(`circle-stroke-width`,this,t)+Vd$1(this.paint.get(`circle-translate`))}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,unwrappedTileID:o,getElevation:s}){let c=Hd$1(e,this.paint.get(`circle-translate`),this.paint.get(`circle-translate-anchor`),-i.bearingInRadians,a),l=this.paint.get(`circle-radius`).evaluate(t,n)+this.paint.get(`circle-stroke-width`).evaluate(t,n),u=this.paint.get(`circle-pitch-scale`),d=this.paint.get(`circle-pitch-alignment`),f,p;return d===`map`?(f=c,p=l*a):(f=Zd$1(c,i,o,s),p=l),Yd$1({queryGeometry:f,size:p,transform:i,unwrappedTileID:o,getElevation:s,pitchAlignment:d,pitchScale:u},r)}},of$1=class of extends Ed$1{};W$1(`HeatmapBucket`,of$1,{omit:[`layers`]});let sf$1;const cf$1=()=>sf$1||=new xl$1({"heatmap-radius":new q$1(M.paint_heatmap[`heatmap-radius`],`heatmap-radius`),"heatmap-weight":new q$1(M.paint_heatmap[`heatmap-weight`],`heatmap-weight`),"heatmap-intensity":new K$1(M.paint_heatmap[`heatmap-intensity`],`heatmap-intensity`),"heatmap-color":new bl$1(M.paint_heatmap[`heatmap-color`],`heatmap-color`),"heatmap-opacity":new K$1(M.paint_heatmap[`heatmap-opacity`],`heatmap-opacity`)});var lf$1={get paint(){return cf$1()}};function uf$1(e,{width:t,height:n},r,i){if(!i)i=new Uint8Array(t*n*r);else if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size. expected: ${i.length} but got: ${t*n*r}`);return e.width=t,e.height=n,e.data=i,e}function df$1(e,{width:t,height:n},r){if(t===e.width&&n===e.height)return;let i=uf$1({},{width:t,height:n},r);ff$1(e,i,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,t),height:Math.min(e.height,n)},r),e.width=t,e.height=n,e.data=i.data;}function ff$1(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;if(o===s)throw Error(`srcData equals dstData, so image is already copied`);for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e];}return t}var pf$1=class e{constructor(e,t){uf$1(this,e,1,t);}resize(e){df$1(this,e,1);}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){ff$1(e,t,n,r,i,1);}},mf$1=class e{constructor(e,t){uf$1(this,e,4,t);}resize(e){df$1(this,e,4);}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e;}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){ff$1(e,t,n,r,i,4);}setPixel(e,t,n){let r=(e*this.width+t)*4;this.data[r+0]=Math.round(n.r*255/n.a),this.data[r+1]=Math.round(n.g*255/n.a),this.data[r+2]=Math.round(n.b*255/n.a),this.data[r+3]=Math.round(n.a*255);}};function hf$1(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n+=4){let r=e[n+3];t[n+0]=Math.round(e[n+0]*r/255),t[n+1]=Math.round(e[n+1]*r/255),t[n+2]=Math.round(e[n+2]*r/255),t[n+3]=r;}return t}W$1(`AlphaImage`,pf$1),W$1(`RGBAImage`,mf$1);function gf$1(e){let t={},n=e.resolution||256,r=e.clips?e.clips.length:1,i=e.image||new mf$1({width:n,height:r});if(!jt(n))throw Error(`width is not a power of 2 - ${n}`);let a=(r,a,o)=>{t[e.evaluationKey]=o;let s=e.expression.evaluate(t);i.setPixel(r/4/n,a/4,s);};if(e.clips)for(let t=0,i=0;t<r;++t,i+=n*4)for(let r=0,o=0;r<n;r++,o+=4){let s=r/(n-1),{start:c,end:l}=e.clips[t],u=c*(1-s)+l*s;a(i,o,u);}else for(let e=0,t=0;e<n;e++,t+=4){let r=e/(n-1);a(0,t,r);}return i}const _f$1=`big-fb`,vf$1=e=>e.type===`heatmap`;var yf$1=class yf extends wl$1{createBucket(e){return new of$1(e)}constructor(e,t){super(e,lf$1,t),this.heatmapFbos=new Map,this._updateColorRamp();}_handleSpecialPaintPropertyUpdate(e){e===`heatmap-color`&&this._updateColorRamp();}_updateColorRamp(){let e=this._transitionablePaint._values[`heatmap-color`].value.expression;this.colorRamp=gf$1({expression:e,evaluationKey:`heatmapDensity`,image:this.colorRamp}),this.colorRampTexture=null;}resize(){this.heatmapFbos.has(`big-fb`)&&this.heatmapFbos.delete(_f$1);}queryRadius(e){return Bd$1(`heatmap-radius`,this,e)}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,unwrappedTileID:o,getElevation:s}){return Yd$1({queryGeometry:e,size:this.paint.get(`heatmap-radius`).evaluate(t,n)*a,transform:i,unwrappedTileID:o,getElevation:s},r)}hasOffscreenPass(){return this.paint.get(`heatmap-opacity`)!==0&&!this.isHidden()}};let bf$1;const xf$1=()=>bf$1||=new xl$1({"hillshade-illumination-direction":new K$1(M.paint_hillshade[`hillshade-illumination-direction`],`hillshade-illumination-direction`),"hillshade-illumination-altitude":new K$1(M.paint_hillshade[`hillshade-illumination-altitude`],`hillshade-illumination-altitude`),"hillshade-illumination-anchor":new K$1(M.paint_hillshade[`hillshade-illumination-anchor`],`hillshade-illumination-anchor`),"hillshade-exaggeration":new K$1(M.paint_hillshade[`hillshade-exaggeration`],`hillshade-exaggeration`),"hillshade-shadow-color":new K$1(M.paint_hillshade[`hillshade-shadow-color`],`hillshade-shadow-color`),"hillshade-highlight-color":new K$1(M.paint_hillshade[`hillshade-highlight-color`],`hillshade-highlight-color`),"hillshade-accent-color":new K$1(M.paint_hillshade[`hillshade-accent-color`],`hillshade-accent-color`),"hillshade-method":new K$1(M.paint_hillshade[`hillshade-method`],`hillshade-method`),resampling:new K$1(M.paint_hillshade.resampling,`resampling`)});var Sf$1={get paint(){return xf$1()}};const Cf$1=e=>e.type===`hillshade`;var wf$1=class wf extends wl$1{constructor(e,t){super(e,Sf$1,t),this.recalculate({zoom:0,zoomHistory:{}},void 0);}getIlluminationProperties(){let e=this.paint.get(`hillshade-illumination-direction`).values,t=this.paint.get(`hillshade-illumination-altitude`).values,n=this.paint.get(`hillshade-highlight-color`).values,r=this.paint.get(`hillshade-shadow-color`).values,i=Math.max(e.length,t.length,n.length,r.length);e=e.concat(Array(i-e.length).fill(e.at(-1))),t=t.concat(Array(i-t.length).fill(t.at(-1))),n=n.concat(Array(i-n.length).fill(n.at(-1))),r=r.concat(Array(i-r.length).fill(r.at(-1)));let a=t.map(sn);return {directionRadians:e.map(sn),altitudeRadians:a,shadowColor:r,highlightColor:n}}hasOffscreenPass(){return this.paint.get(`hillshade-exaggeration`)!==0&&!this.isHidden()}};let Tf$1;const Ef$1=()=>Tf$1||=new xl$1({"color-relief-opacity":new K$1(M[`paint_color-relief`][`color-relief-opacity`],`color-relief-opacity`),"color-relief-color":new bl$1(M[`paint_color-relief`][`color-relief-color`],`color-relief-color`),resampling:new K$1(M[`paint_color-relief`].resampling,`resampling`)});var Df$1={get paint(){return Ef$1()}};function Of$1(e){return `data`in e}var kf$1=class kf{constructor(e,t,n,r){this.context=e,this.format=n,this.texture=e.gl.createTexture(),this._ownedHandle=this.texture,this.update(t,r);}update(e,t,n){let{width:r,height:i}=e,a=(this.size?.[0]!==r||this.size[1]!==i)&&!n,{context:o}=this,{gl:s}=o;this.useMipmap=!!t?.useMipmap,a&&this.size&&this.format===s.RGBA&&(s.deleteTexture(this.texture),this.texture=s.createTexture(),this._ownedHandle=this.texture),s.bindTexture(s.TEXTURE_2D,this.texture),o.pixelStoreUnpackFlipY.set(false),o.pixelStoreUnpack.set(1);let c=this.format===s.RGBA&&t?.premultiply!==false;if(a)if(this.size=[r,i],this.format===s.RGBA&&r>0&&i>0){let t=this.useMipmap?Math.floor(Math.log2(Math.max(r,i)))+1:1;if(s.texStorage2D(s.TEXTURE_2D,t,s.RGBA8,r,i),Of$1(e)){o.pixelStoreUnpackPremultiplyAlpha.set(false);let{data:t}=e;c&&t&&(t=hf$1(t)),t&&s.texSubImage2D(s.TEXTURE_2D,0,0,0,r,i,s.RGBA,s.UNSIGNED_BYTE,t);}else o.pixelStoreUnpackPremultiplyAlpha.set(c),s.texSubImage2D(s.TEXTURE_2D,0,0,0,s.RGBA,s.UNSIGNED_BYTE,e);}else Of$1(e)?(o.pixelStoreUnpackPremultiplyAlpha.set(false),this._uploadRawData(e,c,r,i,s)):(o.pixelStoreUnpackPremultiplyAlpha.set(c),this._uploadDomImage(e,s));else {let{x:t,y:a}=n||{x:0,y:0};Of$1(e)?(o.pixelStoreUnpackPremultiplyAlpha.set(false),this._updateRawData(e,c,t,a,r,i,s)):(o.pixelStoreUnpackPremultiplyAlpha.set(c),this._updateDomImage(e,t,a,s));}this.useMipmap&&s.generateMipmap(s.TEXTURE_2D),o.pixelStoreUnpackFlipY.setDefault(),o.pixelStoreUnpack.setDefault(),o.pixelStoreUnpackPremultiplyAlpha.setDefault();}_uploadDomImage(e,t){t.texImage2D(t.TEXTURE_2D,0,this.format,this.format,t.UNSIGNED_BYTE,e);}_uploadRawData(e,t,n,r,i){let{data:a}=e;t&&a&&(a=hf$1(a)),i.texImage2D(i.TEXTURE_2D,0,this.format,n,r,0,this.format,i.UNSIGNED_BYTE,a);}_updateDomImage(e,t,n,r){r.texSubImage2D(r.TEXTURE_2D,0,t,n,r.RGBA,r.UNSIGNED_BYTE,e);}_updateRawData(e,t,n,r,i,a,o){let{data:s}=e;t&&s&&(s=hf$1(s)),o.texSubImage2D(o.TEXTURE_2D,0,n,r,i,a,o.RGBA,o.UNSIGNED_BYTE,s);}bind(e,t,n){let{context:r}=this,{gl:i}=r;this.texture!==this._ownedHandle&&(this.texture=this._ownedHandle),i.bindTexture(i.TEXTURE_2D,this.texture),n===i.LINEAR_MIPMAP_NEAREST&&!this.useMipmap&&(n=i.LINEAR),e!==this.filter&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,n||e),this.filter=e),t!==this.wrap&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,t),this.wrap=t);}destroy(){let{gl:e}=this.context;e.deleteTexture(this.texture),this.texture=null,this._ownedHandle=null;}},Af$1=class e{static{this.byteViewCache=new WeakMap;}constructor(t,n,r,i=1,a=1,o=1,s=0){if(this.uid=t,n.height!==n.width)throw RangeError(`DEM tiles must be square`);if(r&&![`mapbox`,`terrarium`,`custom`].includes(r)){Vt(`"${r}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);return}this.stride=n.height;let c=this.dim=n.height-2;switch(this.data=new Uint32Array(n.data.buffer),e.byteViewCache.set(this,new Uint8Array(this.data.buffer)),r){case `terrarium`:this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case `custom`:this.redFactor=i,this.greenFactor=a,this.blueFactor=o,this.baseShift=s;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4;}for(let e=0;e<c;e++)this.data[this._idx(-1,e)]=this.data[this._idx(0,e)],this.data[this._idx(c,e)]=this.data[this._idx(c-1,e)],this.data[this._idx(e,-1)]=this.data[this._idx(e,0)],this.data[this._idx(e,c)]=this.data[this._idx(e,c-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(c,-1)]=this.data[this._idx(c-1,0)],this.data[this._idx(-1,c)]=this.data[this._idx(0,c-1)],this.data[this._idx(c,c)]=this.data[this._idx(c-1,c-1)];let l=this._getByteView();this.min=2**53-1,this.max=-9007199254740991;for(let e=0;e<c;e++)for(let t=0;t<c;t++){let n=this._idx(e,t)*4,r=this._unpackAtIndex(l,n);r>this.max&&(this.max=r),r<this.min&&(this.min=r);}}get(e,t){let n=this._getByteView(),r=this._idx(e,t)*4;return this._unpackAtIndex(n,r)}sampleBilinear(e,t){let n=Math.floor(e),r=Math.floor(t);if(n<-1||n>=this.dim||r<-1||r>=this.dim)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);let i=this._getByteView(),a=((r+1)*this.stride+n+1)*4,o=this.stride*4,s=e-n,c=t-r,l=this._unpackAtIndex(i,a),u=this._unpackAtIndex(i,a+4),d=this._unpackAtIndex(i,a+o),f=this._unpackAtIndex(i,a+o+4);return l*(1-s)*(1-c)+u*s*(1-c)+d*(1-s)*c+f*s*c}getUnpackVector(){return [this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,t){if(e<-1||e>=this.dim+1||t<-1||t>=this.dim+1)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);return (t+1)*this.stride+(e+1)}unpack(e,t,n){return e*this.redFactor+t*this.greenFactor+n*this.blueFactor-this.baseShift}pack(e){return jf$1(e,this.getUnpackVector())}getPixels(){return new mf$1({width:this.stride,height:this.stride},this._getByteView())}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case -1:r=i-1;break;case 1:i=r+1;}switch(n){case -1:a=o-1;break;case 1:o=a+1;}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++)this.data[this._idx(n,t)]=e.data[this._idx(n+s,t+c)];}_getByteView(){let t=e.byteViewCache.get(this);return t?.buffer!==this.data.buffer&&(t=new Uint8Array(this.data.buffer),e.byteViewCache.set(this,t)),t}_unpackAtIndex(e,t){return this.unpack(e[t],e[t+1],e[t+2])}};function jf$1(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=Math.min(n,r,i),s=Math.round((e+a)/o);return {r:Math.floor(s*o/n)%256,g:Math.floor(s*o/r)%256,b:Math.floor(s*o/i)%256}}W$1(`DEMData`,Af$1);const Mf$1=e=>e.type===`color-relief`;var Nf$1=class Nf extends wl$1{constructor(e,t){super(e,Df$1,t);}_createColorRamp(e){let t={elevationStops:[],colorStops:[]},n=this._transitionablePaint._values[`color-relief-color`].value.expression;if(n instanceof Xo$1&&n._styleExpression.expression instanceof ji$1){this.colorRampExpression=n;let e=n._styleExpression.expression;t.elevationStops=e.labels,t.colorStops=[];for(let n of t.elevationStops)t.colorStops.push(e.evaluate({globals:{elevation:n}}));}if(t.elevationStops.length<1&&(t.elevationStops=[0],t.colorStops=[B.transparent]),t.elevationStops.length<2&&(t.elevationStops.push(t.elevationStops[0]+1),t.colorStops.push(t.colorStops[0])),t.elevationStops.length<=e)return t;let r={elevationStops:[],colorStops:[]},i=(t.elevationStops.length-1)/(e-1);for(let e=0;e<t.elevationStops.length-.5;e+=i)r.elevationStops.push(t.elevationStops[Math.round(e)]),r.colorStops.push(t.colorStops[Math.round(e)]);return Vt(`Too many colors in specification of ${this.id} color-relief layer, may not render properly. Max possible colors: ${e}, provided: ${t.elevationStops.length}`),r}_colorRampChanged(){return this.colorRampExpression!=this._transitionablePaint._values[`color-relief-color`].value.expression}getColorRampTextures(e,t,n){if(this.colorRampTextures&&!this._colorRampChanged())return this.colorRampTextures;let r=this._createColorRamp(t),i=new mf$1({width:r.colorStops.length,height:1}),a=new mf$1({width:r.colorStops.length,height:1});for(let e=0;e<r.elevationStops.length;e++){let t=jf$1(r.elevationStops[e],n);a.setPixel(0,e,new B(t.r/255,t.g/255,t.b/255,1)),i.setPixel(0,e,r.colorStops[e]);}return this.colorRampTextures={elevationTexture:new kf$1(e,a,e.gl.RGBA),colorTexture:new kf$1(e,i,e.gl.RGBA)},this.colorRampTextures}hasOffscreenPass(){return !this.isHidden()&&!!this.colorRampTextures}};const Pf$1=Ml$1([{name:`a_pos`,components:2,type:`Int16`}],4),Ff$1=Pf$1.members;function If$1(e,t,n){let r=n.patternDependencies,i=false;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=true);let a=t.constantOr(null);a&&(i=true,r[a.to]=true,r[a.from]=true);}return i}function Lf$1(e,t,n,r,i){let{zoom:a}=r,o=i.patternDependencies;for(let r of t){let t=r.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:a-1},n,{},i.availableImages),s=t.evaluate({zoom:a},n,{},i.availableImages),c=t.evaluate({zoom:a+1},n,{},i.availableImages);e=e?.name?e.name:e,s=s?.name?s.name:s,c=c?.name?c.name:c,o[e]=true,o[s]=true,o[c]=true,n.patterns[r.id]={min:e,mid:s,max:c};}}return n}const Rf$1=new Set;let zf$1=false;function Bf$1(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length;Rf$1.size&&Rf$1.clear();let a=Vf$1(e,0,i,n,true),o=[];if(!a||a.next===a.prev)return o;let s=0,c=0,l=0;if(r&&(a=Yf$1(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i);}l=Math.max(t-s,r-c),l=l===0?0:32767/l;}return Uf$1(a,o,s,c,l),o}function Vf$1(e,t,n,r,i){let a=null;if(i===Mp$1(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=kp$1(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=kp$1(i/r|0,e[i],e[i+1],a);return a&&Sp$1(a,a.next)&&(Ap$1(a),a=a.next),a}function Hf$1(e,t=e){let n=t===e,r=e,i;do i=false,r!==r.next&&(Rf$1.size===0||!Rf$1.has(r))&&(Sp$1(r,r.next)||xp$1(r.prev,r,r.next)===0)?((n||r===t)&&(t=r.prev),zf$1=true,Ap$1(r),r=r.prev,i=true):(n||r!==t)&&(r=r.next,i=!n);while(i||r!==t);return t}function Uf$1(e,t,n,r,i){i&&mp$1(e,n,r,i);let a=e,o=false;for(;e.prev!==e.next;){let s=e.prev,c=e.next;if(xp$1(s,e,c)<0&&(i?Gf$1(e,n,r,i):Wf$1(e))){t.push(s.i,e.i,c.i),Ap$1(e),e=c,a=c;continue}if(e=c,e===a){if(zf$1=false,e=Hf$1(e),zf$1){a=e;continue}if(!o){e=Kf$1(e,t),a=e,o=true;continue}qf$1(e,t,n,r,i);break}}}function Wf$1(e){let t=e.prev,n=e,r=e.next,i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&(i!==m.x||s!==m.y)&&yp$1(i,s,a,c,o,l,m.x,m.y)&&xp$1(m.prev,m,m.next)>=0)return false;m=m.next;}return true}function Gf$1(e,t,n,r){let i=e.prev,a=e,o=e.next,s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=_p$1(p,m,t,n,r),v=_p$1(h,g,t,n,r),y=e.prevZ;for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==o&&(s!==y.x||u!==y.y)&&yp$1(s,u,c,d,l,f,y.x,y.y)&&xp$1(y.prev,y,y.next)>=0)return false;y=y.prevZ;}let b=e.nextZ;for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==o&&(s!==b.x||u!==b.y)&&yp$1(s,u,c,d,l,f,b.x,b.y)&&xp$1(b.prev,b,b.next)>=0)return false;b=b.nextZ;}return true}function Kf$1(e,t){let n=e,r=false;do{let i=n.prev,a=n.next.next;Cp$1(i,n,n.next,a,false)&&Ep$1(i,a)&&Ep$1(a,i)&&(t.push(i.i,n.i,a.i),Ap$1(n),Ap$1(n.next),n=e=a,r=true),n=n.next;}while(n!==e);return r?Hf$1(n):n}function qf$1(e,t,n,r,i){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&bp$1(a,e)){let o=Op$1(a,e);a=Hf$1(a,a.next),o=Hf$1(o,o.next),Uf$1(a,t,n,r,i),Uf$1(o,t,n,r,i);return}e=e.next;}a=a.next;}while(a!==e)}let Jf$1=false;function Yf$1(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=Vf$1(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,false);o===o.next&&Rf$1.add(o),i.push(vp$1(o));}i.sort(Xf$1),np$1(e.length/r,t.length),rp$1(n,n),Jf$1=true;for(let e=0;e<i.length;e++)n=Zf$1(i[e],n);return Jf$1=false,Hf$1(n)}function Xf$1(e,t){return e.x-t.x||e.y-t.y||(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x)}function Zf$1(e,t){let n=sp$1(e,t);if(!n)return t;let r=Op$1(n,e),i=r.next;return rp$1(n,i.next),Hf$1(r,r.next),Hf$1(n,n.next)}let Qf$1=new Float64Array,$f$1=0;const ep$1=[],tp$1=[];function np$1(e,t){let n=Math.ceil((e+2*t)/16)+t+2;Qf$1.length<n*4&&(Qf$1=new Float64Array(n*4)),$f$1=0;}function rp$1(e,t){let n=e;do{let e=$f$1++;ep$1[e]=n;let r=1/0,i=1/0,a=-1/0,o=-1/0,s=0;do{let t=n.next;n.z=e,n.x<r&&(r=n.x),n.x>a&&(a=n.x),n.y<i&&(i=n.y),n.y>o&&(o=n.y),t.x<r&&(r=t.x),t.x>a&&(a=t.x),t.y<i&&(i=t.y),t.y>o&&(o=t.y),n=t;}while(++s<16&&n!==t);tp$1[e]=n;let c=e*4;Qf$1[c]=r,Qf$1[c+1]=i,Qf$1[c+2]=a,Qf$1[c+3]=o;}while(n!==t)}function ip$1(e,t){let n=e.z*4;t.x<Qf$1[n]&&(Qf$1[n]=t.x),t.y<Qf$1[n+1]&&(Qf$1[n+1]=t.y),t.x>Qf$1[n+2]&&(Qf$1[n+2]=t.x),t.y>Qf$1[n+3]&&(Qf$1[n+3]=t.y);}function ap$1(e){let t=tp$1[e];for(;t.prev.next!==t;)t=t.next;return tp$1[e]=t,t}function op$1(e){let t=ep$1[e];for(;t.prev.next!==t;)t=t.next;return ep$1[e]=t,t}function sp$1(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(Sp$1(e,n))return n;for(let t=0,s=0;t<$f$1;t++,s+=4){if(i<Qf$1[s+1]||i>Qf$1[s+3]||Qf$1[s]>r||Qf$1[s+2]<=a)continue;let c=ap$1(t);n=op$1(t);do{if(n.prev.next===n){if(Sp$1(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}}n=n.next;}while(n!==c)}if(!o)return null;let s=o.x,c=o.y,l=Math.min(i,c),u=Math.max(i,c),d=1/0;for(let t=0,f=0;t<$f$1;t++,f+=4){if(Qf$1[f+2]<s||Qf$1[f]>r||Qf$1[f+3]<l||Qf$1[f+1]>u)continue;let p=ap$1(t);n=op$1(t);do{if(n.prev.next===n&&r>=n.x&&n.x>=s&&r!==n.x&&yp$1(i<c?r:a,i,s,c,i<c?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);(Ep$1(n,e)||n.y===i&&n.next.y===i&&n.next.x>r)&&(t<d||t===d&&(n.x>o.x||n.x===o.x&&cp$1(o,n)))&&(o=n,d=t);}n=n.next;}while(n!==p)}return o}function cp$1(e,t){return xp$1(e.prev,e,t.prev)<0&&xp$1(t.next,e,e.next)<0}const lp$1=[];let up$1=[],dp$1=new Uint32Array,fp$1=new Uint32Array;const pp$1=new Uint32Array(256);function mp$1(e,t,n,r){let i=e,a=0;do i.z=_p$1(i.x,i.y,t,n,r),lp$1[a++]=i,i=i.next;while(i!==e);hp$1(a);let o=null;for(let e=0;e<a;e++){let t=lp$1[e];t.prevZ=o,o&&(o.nextZ=t),o=t;}o.nextZ=null;}function hp$1(e){if(e<=32){for(let t=1;t<e;t++){let e=lp$1[t],n=e.z,r=t-1;for(;r>=0&&lp$1[r].z>n;)lp$1[r+1]=lp$1[r],r--;lp$1[r+1]=e;}return}dp$1.length<e&&(dp$1=new Uint32Array(e),fp$1=new Uint32Array(e),up$1=Array(e));for(let t=0;t<e;t++)dp$1[t]=lp$1[t].z;gp$1(e,lp$1,dp$1,up$1,fp$1,0),gp$1(e,up$1,fp$1,lp$1,dp$1,8),gp$1(e,lp$1,dp$1,up$1,fp$1,16),gp$1(e,up$1,fp$1,lp$1,dp$1,24);}function gp$1(e,t,n,r,i,a){pp$1.fill(0);for(let t=0;t<e;t++)pp$1[n[t]>>>a&255]++;let o=0;for(let e=0;e<256;e++){let t=pp$1[e];pp$1[e]=o,o+=t;}for(let o=0;o<e;o++){let e=n[o],s=pp$1[e>>>a&255]++;r[s]=t[o],i[s]=e;}}function _p$1(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function vp$1(e){let 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 yp$1(e,t,n,r,i,a,o,s){return (i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function bp$1(e,t){let n=Sp$1(e,t)&&xp$1(e.prev,e,e.next)>0&&xp$1(t.prev,t,t.next)>0;return e.next.i!==t.i&&(n||Ep$1(e,t)&&Ep$1(t,e)&&(xp$1(e.prev,e,t.prev)!==0||xp$1(e,t.prev,t)!==0))&&!Tp$1(e,t)&&(n||Dp$1(e,t))}function xp$1(e,t,n){return (t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Sp$1(e,t){return e.x===t.x&&e.y===t.y}function Cp$1(e,t,n,r,i=true){let a=xp$1(e,t,n),o=xp$1(e,t,r),s=xp$1(n,r,e),c=xp$1(n,r,t);return (a>0&&o<0||a<0&&o>0)&&(s>0&&c<0||s<0&&c>0)?true:i?!!(a===0&&wp$1(e,n,t)||o===0&&wp$1(e,r,t)||s===0&&wp$1(n,e,r)||c===0&&wp$1(n,t,r)):false}function wp$1(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 Tp$1(e,t){let n=Math.min(e.x,t.x),r=Math.max(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.y,t.y),o=e;do{let s=o.next;if(o.x>r&&s.x>r||o.x<n&&s.x<n||o.y>a&&s.y>a||o.y<i&&s.y<i){o=s;continue}if(o.i!==e.i&&s.i!==e.i&&o.i!==t.i&&s.i!==t.i&&Cp$1(o,s,e,t))return true;o=s;}while(o!==e);return false}function Ep$1(e,t){return xp$1(e.prev,e,e.next)<0?xp$1(e,t,e.next)>=0&&xp$1(e,e.prev,t)>=0:xp$1(e,t,e.prev)<0||xp$1(e,e.next,t)<0}function Dp$1(e,t){let n=e,r=false,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{let e=n.next;n.y>a!=e.y>a&&i<(e.x-n.x)*(a-n.y)/(e.y-n.y)+n.x&&(r=!r),n=e;}while(n!==e);return r}function Op$1(e,t){let n=jp$1(e.i,e.x,e.y),r=jp$1(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function kp$1(e,t,n,r){let i=jp$1(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ap$1(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),Jf$1&&ip$1(e.prev,e.next);}function jp$1(e,t,n){return {i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function Mp$1(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var Np$1=class Np{constructor(e,t){if(t>e)throw Error(`Min granularity must not be greater than base granularity.`);this._baseZoomGranularity=e,this._minGranularity=t;}getGranularityForZoomLevel(e){let t=1<<e;return Math.max(Math.floor(this._baseZoomGranularity/t),this._minGranularity,1)}},Pp$1=class e{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle;}static{this.noSubdivision=new e({fill:new Np$1(0,0),line:new Np$1(0,0),tile:new Np$1(0,0),stencil:new Np$1(0,0),circle:1});}};W$1(`SubdivisionGranularityExpression`,Np$1),W$1(`SubdivisionGranularitySetting`,Pp$1);const Fp$1=-32768,Ip$1=32767;var Lp$1=class Lp{constructor(e,t){this._vertexBuffer=[],this._vertexDictionary=new Map,this._used=false,this._granularity=e,this._granularityCellSize=j/e,this._canonical=t;}_getKey(e,t){return e+=32768,t+=32768,e<<16|t<<0}_vertexToIndex(e,t){if(e<-32768||t<-32768||e>32767||t>32767)throw Error(`Vertex coordinates are out of signed 16 bit integer range.`);let n=Math.round(e)|0,r=Math.round(t)|0,i=this._getKey(n,r);if(this._vertexDictionary.has(i))return this._vertexDictionary.get(i);let a=this._vertexBuffer.length/2;return this._vertexDictionary.set(i,a),this._vertexBuffer.push(n,r),a}_subdivideTrianglesScanline(e){if(this._granularity<2)return Vp$1(this._vertexBuffer,e);let t=[],n=e.length;for(let r=0;r<n;r+=3){let n=[e[r+0],e[r+1],e[r+2]],i=[this._vertexBuffer[e[r+0]*2+0],this._vertexBuffer[e[r+0]*2+1],this._vertexBuffer[e[r+1]*2+0],this._vertexBuffer[e[r+1]*2+1],this._vertexBuffer[e[r+2]*2+0],this._vertexBuffer[e[r+2]*2+1]],a=1/0,o=1/0,s=-1/0,c=-1/0;for(let e=0;e<3;e++){let t=i[e*2],n=i[e*2+1];a=Math.min(a,t),s=Math.max(s,t),o=Math.min(o,n),c=Math.max(c,n);}if(a===s||o===c)continue;let l=Math.floor(a/this._granularityCellSize),u=Math.ceil(s/this._granularityCellSize),d=Math.floor(o/this._granularityCellSize),f=Math.ceil(c/this._granularityCellSize);if(l===u&&d===f){t.push(...n);continue}for(let e=d;e<f;e++){let r=this._scanlineGenerateVertexRingForCellRow(e,i,n);Hp$1(this._vertexBuffer,r,t);}}return t}_scanlineGenerateVertexRingForCellRow(e,t,n){let r=e*this._granularityCellSize,i=r+this._granularityCellSize,a=[];for(let e=0;e<3;e++){let o=t[e*2],s=t[e*2+1],c=t[(e+1)*2%6],l=t[((e+1)*2+1)%6],u=t[(e+2)*2%6],d=t[((e+2)*2+1)%6],f=c-o,p=l-s,m=f===0,h=p===0,g=(r-s)/p,_=(i-s)/p,v=Math.min(g,_),y=Math.max(g,_);if(!h&&(v>=1||y<=0)||h&&(s<r||s>i)){l>=r&&l<=i&&a.push(n[(e+1)%3]);continue}if(!h&&v>0){let e=o+f*v,t=s+p*v;a.push(this._vertexToIndex(e,t));}let b=o+f*Math.max(v,0),x=o+f*Math.min(y,1);if(m||this._generateIntraEdgeVertices(a,o,s,c,l,b,x),!h&&y<1){let e=o+f*y,t=s+p*y;a.push(this._vertexToIndex(e,t));}(h||l>=r&&l<=i)&&a.push(n[(e+1)%3]),!h&&(l<=r||l>=i)&&this._generateInterEdgeVertices(a,o,s,c,l,u,d,x,r,i);}return a}_generateIntraEdgeVertices(e,t,n,r,i,a,o){let s=r-t,c=i-n,l=c===0,u=l?Math.min(t,r):Math.min(a,o),d=l?Math.max(t,r):Math.max(a,o),f=Math.floor(u/this._granularityCellSize)+1,p=Math.ceil(d/this._granularityCellSize)-1;if(l?t<r:a<o)for(let r=f;r<=p;r++){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}else for(let r=p;r>=f;r--){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}}_generateInterEdgeVertices(e,t,n,r,i,a,o,s,c,l){let u=i-n,d=a-r,f=o-i,p=(c-i)/f,m=(l-i)/f,h=Math.min(p,m),g=Math.max(p,m),_=r+d*h,v=Math.floor(Math.min(_,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(_,s)/this._granularityCellSize)-1,b=s<_,x=f===0;if(x&&(o===c||o===l))return;if(x||h>=1||g<=0){let e=t-a,r=n-o,i=(c-o)/r,u=(l-o)/r,d=a+e*Math.min(i,u);v=Math.floor(Math.min(d,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(d,s)/this._granularityCellSize)-1,b=s<d;}let S=u>0?l:c;if(b)for(let t=v;t<=y;t++){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}else for(let t=y;t>=v;t--){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}}_generateOutline(e){let t=[];for(let n of e){let e=zp$1(n,this._granularity,true),r=this._pointArrayToIndices(e),i=[];for(let e=1;e<r.length;e++)i.push(r[e-1]),i.push(r[e]);t.push(i);}return t}_handlePoles(e){let t=false,n=false;this._canonical&&(this._canonical.y===0&&(t=true),this._canonical.y===(1<<this._canonical.z)-1&&(n=true)),(t||n)&&this._fillPoles(e,t,n);}_ensureNoPoleVertices(){let e=this._vertexBuffer;for(let t=0;t<e.length;t+=2){let n=e[t+1];n===-32768&&(e[t+1]=-32767),n===32767&&(e[t+1]=32766);}}_generatePoleQuad(e,t,n,r,i,a){r>i==(a===-32768)?(e.push(n),e.push(t),e.push(this._vertexToIndex(r,a)),e.push(this._vertexToIndex(i,a)),e.push(n),e.push(this._vertexToIndex(r,a))):(e.push(t),e.push(n),e.push(this._vertexToIndex(r,a)),e.push(n),e.push(this._vertexToIndex(i,a)),e.push(this._vertexToIndex(r,a)));}_fillPoles(e,t,n){let r=this._vertexBuffer,i=j,a=e.length;for(let o=2;o<a;o+=3){let a=e[o-2],s=e[o-1],c=e[o],l=r[a*2],u=r[a*2+1],d=r[s*2],f=r[s*2+1],p=r[c*2],m=r[c*2+1];t&&(u===0&&f===0&&this._generatePoleQuad(e,a,s,l,d,Fp$1),f===0&&m===0&&this._generatePoleQuad(e,s,c,d,p,Fp$1),m===0&&u===0&&this._generatePoleQuad(e,c,a,p,l,Fp$1)),n&&(u===i&&f===i&&this._generatePoleQuad(e,a,s,l,d,Ip$1),f===i&&m===i&&this._generatePoleQuad(e,s,c,d,p,Ip$1),m===i&&u===i&&this._generatePoleQuad(e,c,a,p,l,Ip$1));}}_initializeVertices(e){for(let t=0;t<e.length;t+=2)this._vertexToIndex(e[t],e[t+1]);}subdividePolygonInternal(e,t){if(this._used)throw Error(`Subdivision: multiple use not allowed.`);this._used=true;let{flattened:n,holeIndices:r}=Bp$1(e);this._initializeVertices(n);let i;try{let e=Bf$1(n,r),t=this._convertIndices(n,e);i=this._subdivideTrianglesScanline(t);}catch(e){console.error(e);}let a=[];return t&&(a=this._generateOutline(e)),this._ensureNoPoleVertices(),this._handlePoles(i),this._granularity>=2&&this._canonical?.z===0&&(i=this._removeTrianglesOutsideTileX(i),a=a.map(e=>this._removeLinesOutsideTileX(e))),{verticesFlattened:this._vertexBuffer,indicesTriangles:i,indicesLineList:a}}_vertexOutsideTileX(e){let t=this._vertexBuffer[e*2];return t<0||t>8192}_removeTrianglesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=3)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||this._vertexOutsideTileX(e[n+2])||t.push(e[n],e[n+1],e[n+2]);return t}_removeLinesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=2)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||t.push(e[n],e[n+1]);return t}_convertIndices(e,t){let n=[];for(let r of t){let t=e[r*2],i=e[r*2+1];n.push(this._vertexToIndex(t,i));}return n}_pointArrayToIndices(e){let t=[];for(let n of e)t.push(this._vertexToIndex(n.x,n.y));return t}};function Rp$1(e,t,n,r=true){return new Lp$1(n,t).subdividePolygonInternal(e,r)}function zp$1(e,t,n=false){if(!e||e.length<1||e.length<2)return [];let r=e[0],i=e[e.length-1],a=n&&(r.x!==i.x||r.y!==i.y);if(t<2)return a?[...e,e[0]]:[...e];let o=Math.floor(j/t),s=[];s.push(new l(e[0].x,e[0].y));let c=e.length,u=a?c:c-1;for(let t=0;t<u;t++){let n=e[t],r=t<c-1?e[t+1]:e[0],i=n.x,a=n.y,u=r.x,d=r.y,f=i!==u,p=a!==d;if(!f&&!p)continue;let m=u-i,h=d-a,g=Math.abs(m),_=Math.abs(h),v=i,y=a;for(;;){let e=m>0?(Math.floor(v/o)+1)*o:(Math.ceil(v/o)-1)*o,t=h>0?(Math.floor(y/o)+1)*o:(Math.ceil(y/o)-1)*o,n=Math.abs(v-e),r=Math.abs(y-t),i=Math.abs(v-u),a=Math.abs(y-d),c=f?n/g:1/0,b=p?r/_:1/0;if((i<=n||!f)&&(a<=r||!p))break;if(c<b&&f||!p){v=e,y+=h*c;let t=new l(v,Math.round(y));(s[s.length-1].x!==t.x||s[s.length-1].y!==t.y)&&s.push(t);}else {v+=m*b,y=t;let e=new l(Math.round(v),y);(s[s.length-1].x!==e.x||s[s.length-1].y!==e.y)&&s.push(e);}}let b=new l(u,d);(s[s.length-1].x!==b.x||s[s.length-1].y!==b.y)&&s.push(b);}return s}function Bp$1(e){let t=[],n=[];for(let r of e)if(r.length!==0){r!==e[0]&&t.push(n.length/2);for(let e of r)n.push(e.x),n.push(e.y);}return {flattened:n,holeIndices:t}}function Vp$1(e,t){let n=[];for(let r=0;r<t.length;r+=3){let i=t[r],a=t[r+1],o=t[r+2],s=e[i*2],c=e[i*2+1],l=e[a*2],u=e[a*2+1],d=e[o*2],f=e[o*2+1],p=l-s,m=u-c,h=d-s;p*(f-c)-m*h>0?(n.push(i),n.push(o),n.push(a)):(n.push(i),n.push(a),n.push(o));}return n}function Hp$1(e,t,n){if(t.length===0)throw Error(`Subdivision vertex ring is empty.`);let r=0,i=e[t[0]*2];for(let n=1;n<t.length;n++){let a=e[t[n]*2];a<i&&(i=a,r=n);}let a=t.length,o=r,s=(o+1)%a;for(;;){let r=o-1>=0?o-1:a-1,i=(s+1)%a,c=e[t[r]*2],l=e[t[r]*2+1],u=e[t[i]*2],d=e[t[i]*2+1],f=e[t[o]*2],p=e[t[o]*2+1],m=e[t[s]*2],h=e[t[s]*2+1],g=false;if(c<u)g=true;else if(c>u)g=false;else {let e=h-p,t=-(m-f),n=p<h?1:-1;((c-f)*e+(l-p)*t)*n>((u-f)*e+(d-p)*t)*n&&(g=true);}if(g){let e=t[r],i=t[o],c=t[s];e!==i&&e!==c&&i!==c&&n.push(c,i,e),o--,o<0&&(o=a-1);}else {let e=t[i],r=t[o],c=t[s];e!==r&&e!==c&&r!==c&&n.push(c,r,e),s++,s>=a&&(s=0);}if(r===i)break}}function Up$1(e,t,n,r,i,a,o,s,c){let l=i.length/2,u=o&&s&&c;if(l<zu$1.MAX_VERTEX_ARRAY_LENGTH){let d=t.prepareSegment(l,n,r),f=d.vertexLength;for(let e=0;e<a.length;e+=3)r.emplaceBack(f+a[e],f+a[e+1],f+a[e+2]);d.vertexLength+=l,d.primitiveLength+=a.length/3;let p,m;u&&(m=o.prepareSegment(l,n,s),p=m.vertexLength,m.vertexLength+=l);for(let t=0;t<i.length;t+=2)e(i[t],i[t+1]);if(u)for(let e of c){for(let t=1;t<e.length;t+=2)s.emplaceBack(p+e[t-1],p+e[t]);m.primitiveLength+=e.length/2;}}else Gp$1(t,n,r,i,a,e),u&&Kp$1(o,n,s,i,c,e),t.forceNewSegmentOnNextPrepare(),o?.forceNewSegmentOnNextPrepare();}function Wp$1(e,t,n,r,i,a,o){if(a){let a=r.count;return n(t[i*2],t[i*2+1]),e[i]=r.count,r.count++,o.vertexLength++,a}return e[i]}function Gp$1(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d=2;d<i.length;d+=3){let f=i[d-2],p=i[d-1],m=i[d],h=o[f]<c,g=o[p]<c,_=o[m]<c,v=+!!h+ +!!g+ +!!_;l.vertexLength+v>zu$1.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,h=true,g=true,_=true,u=0);let y=Wp$1(o,r,a,s,f,h,l),b=Wp$1(o,r,a,s,p,g,l),x=Wp$1(o,r,a,s,m,_,l);n.emplaceBack(u+y-c,u+b-c,u+x-c),l.primitiveLength++;}}function Kp$1(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d of i)for(let i=1;i<d.length;i+=2){let f=d[i-1],p=d[i],m=o[f]<c,h=o[p]<c,g=+!!m+ +!!h;l.vertexLength+g>zu$1.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,m=true,h=true,u=0);let _=Wp$1(o,r,a,s,f,m,l),v=Wp$1(o,r,a,s,p,h,l);n.emplaceBack(u+_-c,u+v-c),l.primitiveLength++;}}var qp$1=class qp{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.patternFeatures=[],this.layoutVertexArray=new xu$1,this.indexArray=new Pu$1,this.indexArray2=new Fu$1,this.programConfigurations=new gd$1(e.layers,e.zoom),this.segments=new zu$1,this.segments2=new zu$1,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=If$1(`fill`,this.layers,t);let r=this.layers[0].layout.get(`fill-sort-key`),i=!r.isConstant(),a=[],o=new G$1(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:c,id:l,index:u,sourceLayerIndex:d}of e){let e=Cd$1(c,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let f=i?r.evaluate(e,{},n,t.availableImages):void 0,p={id:l,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:s?e.geometry:Sd$1(c),patterns:{},sortKey:f};a.push(p);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasDependencies){let e=Lf$1(`fill`,this.layers,r,{zoom:this.zoom},t);this.patternFeatures.push(e);}else this.addFeature(r,i,a,n,{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures(e,t,n){for(let r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,t,n,e.subdivisionGranularity);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Ff$1),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(e,t,n,r,i,a){for(let e of Ra$1(t,500)){let t=Rp$1(e,r,a.fill.getGranularityForZoomLevel(r.z)),n=this.layoutVertexArray;Up$1((e,t)=>{n.emplaceBack(e,t);},this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}};W$1(`FillBucket`,qp$1,{omit:[`layers`,`patternFeatures`]});let Jp$1;const Yp$1=()=>Jp$1||=new xl$1({"fill-sort-key":new q$1(M.layout_fill[`fill-sort-key`],`fill-sort-key`)});let Xp$1;const Zp$1=()=>Xp$1||=new xl$1({"fill-antialias":new K$1(M.paint_fill[`fill-antialias`],`fill-antialias`),"fill-opacity":new q$1(M.paint_fill[`fill-opacity`],`fill-opacity`),"fill-layer-opacity":new K$1(M.paint_fill[`fill-layer-opacity`],`fill-layer-opacity`),"fill-color":new q$1(M.paint_fill[`fill-color`],`fill-color`),"fill-outline-color":new q$1(M.paint_fill[`fill-outline-color`],`fill-outline-color`),"fill-translate":new K$1(M.paint_fill[`fill-translate`],`fill-translate`),"fill-translate-anchor":new K$1(M.paint_fill[`fill-translate-anchor`],`fill-translate-anchor`),"fill-pattern":new vl$1(M.paint_fill[`fill-pattern`],`fill-pattern`)});var Qp$1={get paint(){return Zp$1()},get layout(){return Yp$1()}};const $p$1=e=>e.type===`fill`;var em$1=class em extends wl$1{constructor(e,t){super(e,Qp$1,t);}recalculate(e,t){super.recalculate(e,t);let n=this.paint._values[`fill-outline-color`];n.value.kind===`constant`&&n.value.value===void 0&&(this.paint._values[`fill-outline-color`]=this.paint._values[`fill-color`]);}createBucket(e){return new qp$1(e)}queryRadius(){return Vd$1(this.paint.get(`fill-translate`))}queryIntersectsFeature({queryGeometry:e,geometry:t,transform:n,pixelsToTileUnits:r}){return kd$1(Hd$1(e,this.paint.get(`fill-translate`),this.paint.get(`fill-translate-anchor`),-n.bearingInRadians,r),t)}isTileClipped(){return true}};const tm$1=Ml$1([{name:`a_pos`,components:2,type:`Int16`},{name:`a_normal_ed`,components:4,type:`Int16`}],4),nm$1=Ml$1([{name:`a_centroid`,components:2,type:`Int16`}],4),rm$1=tm$1.members;var im$1=class im{constructor(e,t,n,r,i){for(this.properties=Object.create(null),this.extent=n,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i;e.pos<t;){let t=e.readVarint();if(t===8)this.id=e.readVarint();else if(t===18){let t=e.readVarint()+e.pos;for(;e.pos<t;){let t=r[e.readVarint()],n=i[e.readVarint()];this.properties[t]=n;}}else t===24?this.type=e.readVarint():(t===34&&(this._geometry=e.pos),e.skip(t));}}loadGeometry(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=[],r,i=1,a=0,o=0,s=0;for(;e.pos<t;){if(a<=0){let t=e.readVarint();if(i=t&7,a=t>>3,a===0)continue}if(a--,i===1)o+=e.readSVarint(),s+=e.readSVarint(),r&&n.push(r),r=[new l(o,s)];else if(i===2)o+=e.readSVarint(),s+=e.readSVarint(),r&&r.push(new l(o,s));else if(i===7)r&&r.push(r[0].clone());else throw Error(`unknown command ${i}`)}return r&&n.push(r),n}bbox(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;for(;e.pos<t;){if(r<=0){let t=e.readVarint();if(n=t&7,r=t>>3,r===0)continue}if(r--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),i<o&&(o=i),i>s&&(s=i),a<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command ${n}`)}return [o,c,s,l]}toGeoJSON(e,t,n){let r=this.extent*2**n,i=this.extent*e,a=this.extent*t,o=this.loadGeometry();function s(e){return [(e.x+i)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+a)*2/r)*Math.PI))-90]}function c(e){return e.map(s)}let l;if(this.type===1){let e=[];for(let t of o)e.push(t[0]);let t=c(e);l=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};}else if(this.type===2){let e=o.map(c);l=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};}else if(this.type===3){let e=am$1(o),t=[];for(let n of e)t.push(n.map(c));l=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};}else throw Error(`unknown feature type`);let u={type:`Feature`,geometry:l,properties:this.properties};return this.id!=null&&(u.id=this.id),u}};im$1.types=[`Unknown`,`Point`,`LineString`,`Polygon`];function am$1(e){let t=e.length;if(t<=1)return [e];let n=[],r,i;for(let a=0;a<t;a++){let t=om(e[a]);t!==0&&(i===void 0&&(i=t<0),i===t<0?(r&&n.push(r),r=[e[a]]):r&&r.push(e[a]));}return r&&n.push(r),n}function om(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var sm=class{constructor(e,t){for(this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],t===void 0&&(t=e.length);e.pos<t;){let t=e.readVarint();t===10?this.name=e.readString():t===18?(this._features.push(e.pos),e.skip(t)):t===26?this._keys.push(e.readString()):t===34?this._values.push(cm(e)):t===40?this.extent=e.readVarint():t===120?this.version=e.readVarint():e.skip(t);}this.length=this._features.length;}feature(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let t=this._pbf.readVarint()+this._pbf.pos;return new im$1(this._pbf,t,this.extent,this._keys,this._values)}};function cm(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let n=e.readVarint();t=n===10?e.readString():n===21?e.readFloat():n===25?e.readDouble():n===32?e.readVarint(true):n===40?e.readVarint():n===48?e.readSVarint():n===56?e.readBoolean():(e.skip(n),null);}if(t==null)throw Error(`unknown feature value`);return t}var lm=class{constructor(e,t=e.length){let n=Object.create(null);for(;e.pos<t;){let t=e.readVarint();if(t===26){let t=new sm(e,e.readVarint()+e.pos);t.length&&(n[t.name]=t);}else e.skip(t);}this.layers=n;}};const um=6371008.8;var dm=class e{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new e(Et(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return um*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof e)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new e(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t==`object`&&t)return new e(Number(`lng`in t?t.lng:t.lon),Number(t.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}};const fm=2*Math.PI*um;function pm(e){return fm*Math.cos(e*Math.PI/180)}function mm(e){return (180+e)/360}function hm(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function gm(e,t){return e/pm(t)}function _m(e){return e*360-180}function vm(e){let t=180-e*360;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}function ym(e,t){return e*pm(vm(t))}function bm(e){return 1/Math.cos(e*Math.PI/180)}var xm=class e{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n;}static fromLngLat(t,n=0){let r=dm.convert(t);return new e(mm(r.lng),hm(r.lat),gm(n,r.lat))}toLngLat(){return new dm(_m(this.x),vm(this.y))}toAltitude(){return ym(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/fm*bm(vm(this.y))}};const Sm=89.25;function Cm(e,t,n){let r=1/(1<<n.z);return new xm(e/j*r+n.x*r,t/j*r+n.y*r)}function wm(e,t,n){return Cm(e,t,n).toLngLat()}function Tm(e,t){let n=Tt(t.lat,-85.051129,pn);return new l(mm(t.lng)*e,hm(n)*e)}function Em(e,t){return new xm(t.x/e,t.y/e).toLngLat()}function Dm(e){return e.cameraToCenterDistance*Math.min(Math.tan(sn(90-e.pitch))*.85,Math.tan(sn(Sm-e.pitch)))}function Om(e,t){let n=e.canonical,r=t/Nt(n.z),i=n.x+2**n.z*e.wrap,a=new Float64Array(16);return C(a),E(a,a,[i*r,n.y*r,0]),D(a,a,[r/j,r/j,1]),a}function km(e,t,n,r,i){let a=xm.fromLngLat(e,t),o=i*gm(1,e.lat),{x:s,y:c,z:l}=Am(n,r),u=o*-s,d=o*-c,f=o*-l;return new xm(a.x+u,a.y+d,a.z+f)}function Am(e,t){let n=sn(e),r=sn(t),i=Math.cos(-n),a=Math.sin(n);return {x:a*Math.sin(r),y:-a*Math.cos(r),z:i}}function jm(e,t,n){if(t<=0||!e||e.length===0)return e;let r=Mm(t,n);return e.map(e=>Nm(e,r))}function Mm(e,t){let n=wm(j/2,j/2,t),r=xm.fromLngLat(n).meterInMercatorCoordinateUnits(),i=(1<<t.z)*j;return e*r*i}function Nm(e,t){if(!e||e.length<3)return e;let n=e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y,r=n?e.length-1:e.length;if(r<3)return e;let i=e.map(e=>He(e.x,e.y)),a=[];for(let e=0;e<r;e++){let n=i[(e-1+r)%r],o=i[e],s=i[(e+1)%r];Pm(a,n,o,s,t);}return n&&a.length>0&&a.push(Ve(a[0])),a.map(e=>new l(e[0],e[1]))}function Pm(e,t,n,r,i){let a=et(Be(),t,n),o=et(Be(),r,n),s=qe(a),c=qe(o);if(s<1e-6||c<1e-6){e.push(Ve(n));return}Ge(a,a,1/s),Ge(o,o,1/c);let l=Xe(a,o);if(Math.abs(l)>Math.cos(5*Math.PI/180)){e.push(Ve(n));return}let u=.2,d=Math.min(i,s*u,c*u),f=Ke(Be(),n,a,d),p=Ke(Be(),n,o,d),m=Ue(Be(),a,o);Ye(m,m);let h=Math.sqrt((1+l)/2),g=Ke(Be(),n,m,d/h),_=et(Be(),f,g),v=et(Be(),p,g),y=Qe(_,v),b=Math.sign(_[0]*v[1]-_[1]*v[0]),x=Math.max(2,Math.ceil(y/(Math.PI/6)-1e-6));for(let t=0;t<=x;t++){let n=b*y*(t/x);e.push(Ze(Be(),f,g,n));}}const Fm=2**13;function Im(e,t,n,r,i,a,o,s){e.emplaceBack(t,n,Math.floor(r*Fm)*2+o,i*Fm*2,a*Fm*2,Math.round(s));}var Lm=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new Su$1,this.centroidVertexArray=new _u$1,this.indexArray=new Pu$1,this.programConfigurations=new gd$1(e.layers,e.zoom),this.segments=new zu$1,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.features=[],this.hasDependencies=If$1(`fill-extrusion`,this.layers,t);let r=new G$1(this.zoom),i=this.layers[0],a=i.layout.get(`fill-extrusion-rounded-corner-distance`),o=i._featureFilter.needGeometry;for(let{feature:s,id:c,index:l,sourceLayerIndex:u}of e){let e=Cd$1(s,o);if(!i._featureFilter.filter(r,e,n))continue;let d=o?e.geometry:Sd$1(s),f={id:c,sourceLayerIndex:u,index:l,geometry:a>0?jm(d,a,n):d,properties:s.properties,type:s.type,patterns:{}};this.hasDependencies?this.features.push(Lf$1(`fill-extrusion`,this.layers,f,{zoom:this.zoom},t)):this.addFeature(f,f.geometry,l,n,{},t.subdivisionGranularity),t.featureIndex.insert(s,f.geometry,l,u,this.index,true);}}addFeatures(e,t,n){for(let r of this.features){let{geometry:i}=r;this.addFeature(r,i,r.index,t,n,e.subdivisionGranularity);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,rm$1),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,nm$1.members,true),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(e,t,n,r,i,a){let o=this.layers[0],s=o.layout?o.layout.get(`fill-extrusion-rounded-corner-distance`):0,c=s>0?jm(t,s,r):t;for(let t of Ra$1(c,500)){let n={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(n,r,e,t,a);let o=this.layoutVertexArray.length-i,s=Math.floor(n.x/n.sampleCount),c=Math.floor(n.y/n.sampleCount);for(let e=0;e<o;e++)this.centroidVertexArray.emplaceBack(s,c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}processPolygon(e,t,n,r,i){if(r.length<1||Bm(r[0]))return;for(let t of r)t.length!==0&&Rm(e,t);let a={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},o=i.fill.getGranularityForZoomLevel(t.z),s=im$1.types[n.type]===`Polygon`;for(let e of r){if(e.length===0||Bm(e))continue;let t=zp$1(e,o,s);this._generateSideFaces(t,a);}if(!s)return;let c=Rp$1(r,t,o,false),l=this.layoutVertexArray;Up$1((e,t)=>{Im(l,e,t,0,0,1,1,0);},this.segments,this.layoutVertexArray,this.indexArray,c.verticesFlattened,c.indicesTriangles);}_generateSideFaces(e,t){let n=0;for(let r=1;r<e.length;r++){let i=e[r],a=e[r-1];if(zm(i,a))continue;t.segment.vertexLength+4>zu$1.MAX_VERTEX_ARRAY_LENGTH&&(t.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let o=i.sub(a)._perp()._unit(),s=a.dist(i);n+s>32768&&(n=0),Im(this.layoutVertexArray,i.x,i.y,o.x,o.y,0,0,n),Im(this.layoutVertexArray,i.x,i.y,o.x,o.y,0,1,n),n+=s,Im(this.layoutVertexArray,a.x,a.y,o.x,o.y,0,0,n),Im(this.layoutVertexArray,a.x,a.y,o.x,o.y,0,1,n);let c=t.segment.vertexLength;this.indexArray.emplaceBack(c,c+2,c+1),this.indexArray.emplaceBack(c+1,c+2,c+3),t.segment.vertexLength+=4,t.segment.primitiveLength+=2;}}};function Rm(e,t){for(let n=0;n<t.length;n++){let r=t[n];(n!==t.length-1||t[0].x!==r.x||t[0].y!==r.y)&&(e.x+=r.x,e.y+=r.y,e.sampleCount++);}}W$1(`FillExtrusionBucket`,Lm,{omit:[`layers`,`features`]});function zm(e,t){return e.x===t.x&&(e.x<0||e.x>8192)||e.y===t.y&&(e.y<0||e.y>8192)}function Bm(e){return e.every(e=>e.x<0)||e.every(e=>e.x>8192)||e.every(e=>e.y<0)||e.every(e=>e.y>8192)}let Vm;const Hm=()=>Vm||=new xl$1({"fill-extrusion-rounded-corner-distance":new K$1(M[`layout_fill-extrusion`][`fill-extrusion-rounded-corner-distance`],`fill-extrusion-rounded-corner-distance`)});let Um;const Wm=()=>Um||=new xl$1({"fill-extrusion-opacity":new K$1(M[`paint_fill-extrusion`][`fill-extrusion-opacity`],`fill-extrusion-opacity`),"fill-extrusion-color":new q$1(M[`paint_fill-extrusion`][`fill-extrusion-color`],`fill-extrusion-color`),"fill-extrusion-translate":new K$1(M[`paint_fill-extrusion`][`fill-extrusion-translate`],`fill-extrusion-translate`),"fill-extrusion-translate-anchor":new K$1(M[`paint_fill-extrusion`][`fill-extrusion-translate-anchor`],`fill-extrusion-translate-anchor`),"fill-extrusion-pattern":new vl$1(M[`paint_fill-extrusion`][`fill-extrusion-pattern`],`fill-extrusion-pattern`),"fill-extrusion-height":new q$1(M[`paint_fill-extrusion`][`fill-extrusion-height`],`fill-extrusion-height`),"fill-extrusion-base":new q$1(M[`paint_fill-extrusion`][`fill-extrusion-base`],`fill-extrusion-base`),"fill-extrusion-vertical-gradient":new K$1(M[`paint_fill-extrusion`][`fill-extrusion-vertical-gradient`],`fill-extrusion-vertical-gradient`)});var Gm={get paint(){return Wm()},get layout(){return Hm()}};const Km=e=>e.type===`fill-extrusion`;var qm=class extends wl$1{constructor(e,t){super(e,Gm,t);}createBucket(e){return new Lm(e)}queryRadius(){return Vd$1(this.paint.get(`fill-extrusion-translate`))}is3D(){return true}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a,pixelPosMatrix:o}){let s=Hd$1(e,this.paint.get(`fill-extrusion-translate`),this.paint.get(`fill-extrusion-translate-anchor`),-i.bearingInRadians,a),c=this.paint.get(`fill-extrusion-height`).evaluate(t,n),l=this.paint.get(`fill-extrusion-base`).evaluate(t,n),u=Qm(s,o,0),d=Zm(r,l,c,o),f=d[0],p=d[1];return Xm(f,p,u)}};function Jm(e,t){return e.x*t.x+e.y*t.y}function Ym(e,t){if(e.length===1){let n=0,r=t[n++],i;for(;!i||r.equals(i);)if(i=t[n++],!i)return 1/0;for(;n<t.length;n++){let a=t[n],o=e[0],s=i.sub(r),c=a.sub(r),l=o.sub(r),u=Jm(s,s),d=Jm(s,c),f=Jm(c,c),p=Jm(l,s),m=Jm(l,c),h=u*f-d*d,g=(f*p-d*m)/h,_=(u*m-d*p)/h,v=1-g-_,y=r.z*v+i.z*g+a.z*_;if(isFinite(y))return y}return 1/0}{let e=1/0;for(let n of t)e=Math.min(e,n.z);return e}}function Xm(e,t,n){let r=1/0;kd$1(n,t)&&(r=Ym(n,t[0]));for(let i=0;i<t.length;i++){let a=t[i],o=e[i];for(let e=0;e<a.length-1;e++){let t=a[e],i=a[e+1],s=o[e],c=[t,i,o[e+1],s,t];Dd$1(n,c)&&(r=Math.min(r,Ym(n,c)));}}return r!==1/0&&r}function Zm(e,t,n,r){let i=[],a=[],o=r[8]*t,s=r[9]*t,c=r[10]*t,u=r[11]*t,d=r[8]*n,f=r[9]*n,p=r[10]*n,m=r[11]*n;for(let t of e){let e=[],n=[];for(let i of t){let t=i.x,a=i.y,h=r[0]*t+r[4]*a+r[12],g=r[1]*t+r[5]*a+r[13],_=r[2]*t+r[6]*a+r[14],v=r[3]*t+r[7]*a+r[15],y=h+o,b=g+s,x=_+c,S=v+u,C=h+d,w=g+f,T=_+p,E=v+m,D=new l(y/S,b/S);D.z=x/S,e.push(D);let O=new l(C/E,w/E);O.z=T/E,n.push(O);}i.push(e),a.push(n);}return [i,a]}function Qm(e,t,n){let r=[];for(let i of e){let e=[i.x,i.y,n,1];Me(e,e,t),r.push(new l(e[0]/e[3],e[1]/e[3]));}return r}const ig=`geojsonvt_clip_start`,ag=`geojsonvt_clip_end`;const Sg=Ml$1([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`}],4),Cg=Sg.members;const wg=Ml$1([{name:`a_uv_x`,components:1,type:`Float32`},{name:`a_split_index`,components:1,type:`Float32`}]),Tg=wg.members;const Eg=Math.cos(75/2*(Math.PI/180)),Dg=1/2,Og=2**14/Dg;var kg=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={};for(let e of this.layers)this.gradients[e.id]={};this.layoutVertexArray=new Cu$1,this.layoutVertexArray2=new wu$1,this.indexArray=new Pu$1,this.programConfigurations=new gd$1(e.layers,e.zoom),this.segments=new zu$1,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=If$1(`line`,this.layers,t)||this.hasLineDasharray(this.layers);let r=this.layers[0].layout.get(`line-sort-key`),i=!r.isConstant(),a=[],o=new G$1(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:c,index:l,sourceLayerIndex:u}of e){let e=Cd$1(t,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let d=i?r.evaluate(e,{},n):void 0,f={id:c,properties:t.properties,type:t.type,sourceLayerIndex:u,index:l,geometry:s?e.geometry:Sd$1(t),patterns:{},dashes:{},sortKey:d};a.push(f);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;this.hasDependencies?(If$1(`line`,this.layers,t)?Lf$1(`line`,this.layers,r,{zoom:this.zoom},t):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,r,this.zoom,t),this.patternFeatures.push(r)):this.addFeature(r,i,a,n,{},{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n,dashPositions:r});}addFeatures(e,t,n,r){for(let i of this.patternFeatures)this.addFeature(i,i.geometry,i.index,t,n,r,e.subdivisionGranularity);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,Tg)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Cg),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(e){if(e.properties&&Object.hasOwn(e.properties,`geojsonvt_clip_start`)&&Object.hasOwn(e.properties,`geojsonvt_clip_end`))return {start:+e.properties[ig],end:+e.properties[ag]}}addFeature(e,t,n,r,i,a,o){let s=this.layers[0].layout,c=s.get(`line-join`).evaluate(e,{}),l=s.get(`line-cap`).evaluate(e,{}),u=s.get(`line-miter-limit`).evaluate(e,{}),d=s.get(`line-round-limit`).evaluate(e,{});this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,c,l,u,d,r,o);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,dashPositions:a,canonical:r});}addLine(e,t,n,r,i,a,o,s){this.distance=0,this.scaledDistance=0,this.totalDistance=0;let c=o?s.line.getGranularityForZoomLevel(o.z):1;if(e=zp$1(e,c),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}let l=im$1.types[t.type]===`Polygon`,u=e.length;for(;u>=2&&e[u-1].equals(e[u-2]);)u--;let d=0;for(;d<u-1&&e[d].equals(e[d+1]);)d++;if(u-d<(l?3:2))return;n===`bevel`&&(i=1.05);let f=this.overscaling<=16?15*j/(512*this.overscaling):0,p=this.segments.prepareSegment(u*10,this.layoutVertexArray,this.indexArray),m,h,g,_,v;this.e1=this.e2=-1,l&&(m=e[u-2],v=e[d].sub(m)._unit()._perp());for(let t=d;t<u;t++){if(g=t===u-1?l?e[d+1]:void 0:e[t+1],g&&e[t].equals(g))continue;v&&(_=v),m&&(h=m),m=e[t],v=g?g.sub(m)._unit()._perp():_,_||=v;let o=_.add(v);(o.x!==0||o.y!==0)&&o._unit();let s=_.x*v.x+_.y*v.y,c=o.x*v.x+o.y*v.y,y=c===0?1/0:1/c,b=2*Math.sqrt(2-2*c),x=c<Eg&&h&&g,S=_.x*v.y-_.y*v.x>0;if(x&&t>d){let e=m.dist(h);if(e>2*f){let t=m.sub(m.sub(h)._mult(f/e)._round());this.updateDistance(h,t),this.addCurrentVertex(t,_,0,0,p),h=t;}}let C=h&&g,w=C?n:l?`butt`:r;if(C&&w===`round`&&(y<a?w=`miter`:y<=2&&(w=`fakeround`)),w===`miter`&&y>i&&(w=`bevel`),w===`bevel`&&(y>2&&(w=`flipbevel`),y<i&&(w=`miter`)),h&&this.updateDistance(h,m),w===`miter`)o._mult(y),this.addCurrentVertex(m,o,0,0,p);else if(w===`flipbevel`){if(y>100)o=v.mult(-1);else {let e=y*_.add(v).mag()/_.sub(v).mag();o._perp()._mult(e*(S?-1:1));}this.addCurrentVertex(m,o,0,0,p),this.addCurrentVertex(m,o.mult(-1),0,0,p);}else if(w===`bevel`||w===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(h&&this.addCurrentVertex(m,_,t,n,p),w===`fakeround`){let e=Math.round(b*180/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5,t=1.0904+s*(-3.2452+s*(3.55645-s*1.43519)),r=.848013+s*(-1.06021+s*.215638);n+=n*e*(n-1)*(t*e*e+r);}let r=v.sub(_)._mult(n)._add(_)._unit()._mult(S?-1:1);this.addHalfVertex(m,r.x,r.y,false,S,0,p);}}g&&this.addCurrentVertex(m,v,-t,-n,p);}else if(w===`butt`)this.addCurrentVertex(m,o,0,0,p);else if(w===`square`){let e=h?1:-1;this.addCurrentVertex(m,o,e,e,p);}else w===`round`&&(h&&(this.addCurrentVertex(m,_,0,0,p),this.addCurrentVertex(m,_,1,1,p,true)),g&&(this.addCurrentVertex(m,v,-1,-1,p,true),this.addCurrentVertex(m,v,0,0,p)));if(x&&t<u-1){let e=m.dist(g);if(e>2*f){let t=m.add(g.sub(m)._mult(f/e)._round());this.updateDistance(m,t),this.addCurrentVertex(t,v,0,0,p),m=t;}}}}addCurrentVertex(e,t,n,r,i,a=false){let o=t.x+t.y*n,s=t.y-t.x*n,c=-t.x+t.y*r,l=-t.y-t.x*r;this.addHalfVertex(e,o,s,a,false,n,i),this.addHalfVertex(e,c,l,a,true,-r,i),this.distance>Og/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,t,n,r,i,a));}addHalfVertex({x:e,y:t},n,r,i,a,o,s){let c=(this.lineClips?this.scaledDistance*(Og-1):this.scaledDistance)*Dg;if(this.layoutVertexArray.emplaceBack((e<<1)+ +!!i,(t<<1)+ +!!a,Math.round(63*n)+128,Math.round(63*r)+128,(o===0?0:o<0?-1:1)+1|(c&63)<<2,c>>6),this.lineClips){let e=(this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start);this.layoutVertexArray2.emplaceBack(e,this.lineClipsArray.length);}let l=s.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,l,this.e2),s.primitiveLength++),a?this.e2=l:this.e1=l;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance();}hasLineDasharray(e){for(let t of e){let e=t.paint.get(`line-dasharray`);if(e&&!e.isConstant())return true}return false}addLineDashDependencies(e,t,n,r){for(let i of e){let e=i.paint.get(`line-dasharray`);if(!e||e.value.kind===`constant`)continue;let a=i.layout.get(`line-cap`).evaluate(t,{})===`round`,o={dasharray:e.value.evaluate({zoom:n-1},t,{}),round:a},s={dasharray:e.value.evaluate({zoom:n},t,{}),round:a},c={dasharray:e.value.evaluate({zoom:n+1},t,{}),round:a},l=`${o.dasharray.join(`,`)},${o.round}`,u=`${s.dasharray.join(`,`)},${s.round}`,d=`${c.dasharray.join(`,`)},${c.round}`;r.dashDependencies[l]=o,r.dashDependencies[u]=s,r.dashDependencies[d]=c,t.dashes[i.id]={min:l,mid:u,max:d};}}};W$1(`LineBucket`,kg,{omit:[`layers`,`patternFeatures`]});let Ag;const jg=()=>Ag||=new xl$1({"line-cap":new q$1(M.layout_line[`line-cap`],`line-cap`),"line-join":new q$1(M.layout_line[`line-join`],`line-join`),"line-miter-limit":new q$1(M.layout_line[`line-miter-limit`],`line-miter-limit`),"line-round-limit":new q$1(M.layout_line[`line-round-limit`],`line-round-limit`),"line-sort-key":new q$1(M.layout_line[`line-sort-key`],`line-sort-key`)});let Mg;const Ng=()=>Mg||=new xl$1({"line-opacity":new q$1(M.paint_line[`line-opacity`],`line-opacity`),"line-layer-opacity":new K$1(M.paint_line[`line-layer-opacity`],`line-layer-opacity`),"line-color":new q$1(M.paint_line[`line-color`],`line-color`),"line-translate":new K$1(M.paint_line[`line-translate`],`line-translate`),"line-translate-anchor":new K$1(M.paint_line[`line-translate-anchor`],`line-translate-anchor`),"line-width":new q$1(M.paint_line[`line-width`],`line-width`),"line-gap-width":new q$1(M.paint_line[`line-gap-width`],`line-gap-width`),"line-offset":new q$1(M.paint_line[`line-offset`],`line-offset`),"line-blur":new q$1(M.paint_line[`line-blur`],`line-blur`),"line-dasharray":new vl$1(M.paint_line[`line-dasharray`],`line-dasharray`),"line-pattern":new vl$1(M.paint_line[`line-pattern`],`line-pattern`),"line-gradient":new bl$1(M.paint_line[`line-gradient`],`line-gradient`)});var Pg={get paint(){return Ng()},get layout(){return jg()}},Fg=class extends q$1{possiblyEvaluate(e,t){return t=new G$1(Math.floor(t.zoom),{now:t.now,fadeDuration:t.fadeDuration,zoomHistory:t.zoomHistory,transition:t.transition}),super.possiblyEvaluate(e,t)}evaluate(e,t,n,r){return t=Dt({},t,{zoom:Math.floor(t.zoom)}),super.evaluate(e,t,n,r)}};let Ig;const Lg=e=>e.type===`line`;var Rg=class extends wl$1{constructor(e,t){super(e,Pg,t),this.gradientVersion=0,Ig||(Ig=new Fg(Pg.paint.properties[`line-width`].specification,`line-floorwidth`),Ig.useIntegerZoom=true);}_handleSpecialPaintPropertyUpdate(e){if(e===`line-gradient`){let e=this.gradientExpression();this.stepInterpolant=Qo$1(e)?e._styleExpression.expression instanceof ki$1:false,this.gradientVersion=(this.gradientVersion+1)%(2**53-1);}}gradientExpression(){return this._transitionablePaint._values[`line-gradient`].value.expression}recalculate(e,t){super.recalculate(e,t),this.paint._values[`line-floorwidth`]=Ig.possiblyEvaluate(this._transitioningPaint._values[`line-width`].value,e);}createBucket(e){return new kg(e)}queryRadius(e){let t=e,n=zg(Bd$1(`line-width`,this,t),Bd$1(`line-gap-width`,this,t)),r=Bd$1(`line-offset`,this,t);return n/2+Math.abs(r)+Vd$1(this.paint.get(`line-translate`))}queryIntersectsFeature({queryGeometry:e,feature:t,featureState:n,geometry:r,transform:i,pixelsToTileUnits:a}){let o=Hd$1(e,this.paint.get(`line-translate`),this.paint.get(`line-translate-anchor`),-i.bearingInRadians,a),s=a/2*zg(this.paint.get(`line-width`).evaluate(t,n),this.paint.get(`line-gap-width`).evaluate(t,n)),c=this.paint.get(`line-offset`).evaluate(t,n);return c&&(r=Wd$1(r,c*a)),Ad$1(o,r,s)}isTileClipped(){return true}};function zg(e,t){return t>0?t+2*e:e}const Bg=Ml$1([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_data`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`}],4),Vg=Ml$1([{name:`a_projected_pos`,components:3,type:`Float32`}],4);Ml$1([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);const Hg=Ml$1([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`},{name:`a_box_real`,components:2,type:`Int16`}]);Ml$1([{type:`Int16`,name:`anchorPointX`},{type:`Int16`,name:`anchorPointY`},{type:`Int16`,name:`x1`},{type:`Int16`,name:`y1`},{type:`Int16`,name:`x2`},{type:`Int16`,name:`y2`},{type:`Uint32`,name:`featureIndex`},{type:`Uint16`,name:`sourceLayerIndex`},{type:`Uint16`,name:`bucketIndex`}]);const Ug=Ml$1([{name:`a_pos`,components:2,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4),Wg=Ml$1([{name:`a_pos`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);Ml$1([{name:`triangle`,components:3,type:`Uint16`}]),Ml$1([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Uint16`,name:`glyphStartIndex`},{type:`Uint16`,name:`numGlyphs`},{type:`Uint32`,name:`vertexStartIndex`},{type:`Uint32`,name:`lineStartIndex`},{type:`Uint32`,name:`lineLength`},{type:`Uint16`,name:`segment`},{type:`Uint16`,name:`lowerSize`},{type:`Uint16`,name:`upperSize`},{type:`Float32`,name:`lineOffsetX`},{type:`Float32`,name:`lineOffsetY`},{type:`Uint8`,name:`writingMode`},{type:`Uint8`,name:`placedOrientation`},{type:`Uint8`,name:`hidden`},{type:`Uint32`,name:`crossTileID`},{type:`Int16`,name:`associatedIconIndex`}]),Ml$1([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Int16`,name:`rightJustifiedTextSymbolIndex`},{type:`Int16`,name:`centerJustifiedTextSymbolIndex`},{type:`Int16`,name:`leftJustifiedTextSymbolIndex`},{type:`Int16`,name:`verticalPlacedTextSymbolIndex`},{type:`Int16`,name:`placedIconSymbolIndex`},{type:`Int16`,name:`verticalPlacedIconSymbolIndex`},{type:`Uint16`,name:`key`},{type:`Uint16`,name:`textBoxStartIndex`},{type:`Uint16`,name:`textBoxEndIndex`},{type:`Uint16`,name:`verticalTextBoxStartIndex`},{type:`Uint16`,name:`verticalTextBoxEndIndex`},{type:`Uint16`,name:`iconBoxStartIndex`},{type:`Uint16`,name:`iconBoxEndIndex`},{type:`Uint16`,name:`verticalIconBoxStartIndex`},{type:`Uint16`,name:`verticalIconBoxEndIndex`},{type:`Uint16`,name:`featureIndex`},{type:`Uint16`,name:`numHorizontalGlyphVertices`},{type:`Uint16`,name:`numVerticalGlyphVertices`},{type:`Uint16`,name:`numIconVertices`},{type:`Uint16`,name:`numVerticalIconVertices`},{type:`Uint16`,name:`useRuntimeCollisionCircles`},{type:`Uint32`,name:`crossTileID`},{type:`Float32`,name:`textBoxScale`},{type:`Float32`,name:`collisionCircleDiameter`},{type:`Uint16`,name:`textAnchorOffsetStartIndex`},{type:`Uint16`,name:`textAnchorOffsetEndIndex`}]),Ml$1([{type:`Float32`,name:`offsetX`}]),Ml$1([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`},{type:`Int16`,name:`tileUnitDistanceFromAnchor`}]),Ml$1([{type:`Uint16`,name:`textAnchor`},{type:`Float32`,components:2,name:`textOffset`}]);function Gg(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),al$1.applyArabicShaping&&(e=al$1.applyArabicShaping(e)),e}function Kg(e,t,n){for(let r of e.sections)r.text=Gg(r.text,t,n);return e}function qg(e){let t={},n={},r=[],i=0;function a(t){r.push(e[t]),i++;}function o(e,t,i){let a=n[e];return delete n[e],n[t]=a,r[a].geometry[0].pop(),r[a].geometry[0]=r[a].geometry[0].concat(i[0]),a}function s(e,n,i){let a=t[n];return delete t[n],t[e]=a,r[a].geometry[0].shift(),r[a].geometry[0]=i[0].concat(r[a].geometry[0]),a}function c(e,t,n){let r=n?t[0][t[0].length-1]:t[0][0];return `${e}:${r.x}:${r.y}`}for(let l=0;l<e.length;l++){let u=e[l],d=u.geometry,f=u.text?u.text.toString():null;if(!f){a(l);continue}let p=c(f,d),m=c(f,d,true);if(p in n&&m in t&&n[p]!==t[m]){let e=s(p,m,d),i=o(p,m,r[e].geometry);delete t[p],delete n[m],n[c(f,r[i].geometry,true)]=i,r[e].geometry=null;}else p in n?o(p,m,d):m in t?s(p,m,d):(a(l),t[p]=i-1,n[m]=i-1);}return r.filter(e=>e.geometry)}const Jg={"!":`︕`,"#":`#`,$:`$`,"%":`%`,"&":`&`,"(":`︵`,")":`︶`,"*":`*`,"+":`+`,",":`︐`,"-":`︲`,".":`・`,"/":`/`,":":`︓`,";":`︔`,"<":`︿`,"=":`=`,">":`﹀`,"?":`︖`,"@":`@`,"[":`﹇`,"\\":`\`,"]":`﹈`,"^":`^`,_:`︳`,"`":```,"{":`︷`,"|":`―`,"}":`︸`,"~":`~`,"¢":`¢`,"£":`£`,"¥":`¥`,"¦":`¦`,"¬":`¬`,"¯":` ̄`,"–":`︲`,"—":`︱`,"‘":`﹃`,"’":`﹄`,"“":`﹁`,"”":`﹂`,"…":`︙`,"⋯":`︙`,"‧":`・`,"₩":`₩`,"、":`︑`,"。":`︒`,"〈":`︿`,"〉":`﹀`,"《":`︽`,"》":`︾`,"「":`﹁`,"」":`﹂`,"『":`﹃`,"』":`﹄`,"【":`︻`,"】":`︼`,"〔":`︹`,"〕":`︺`,"〖":`︗`,"〗":`︘`,"!":`︕`,"(":`︵`,")":`︶`,",":`︐`,"-":`︲`,".":`・`,":":`︓`,";":`︔`,"<":`︿`,">":`﹀`,"?":`︖`,"[":`﹇`,"]":`﹈`,"_":`︳`,"{":`︷`,"|":`―`,"}":`︸`,"⦅":`︵`,"⦆":`︶`,"。":`︒`,"「":`﹁`,"」":`﹂`};const i_=4294967296,o_=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`);var s_=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length;}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,true);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,true);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getUint32(this.pos+4,true)*i_;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getInt32(this.pos+4,true)*i_;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,true);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,true);return this.pos+=8,e}readVarint(e){let t=this.buf,n=t[this.pos++];if(n<128)return n;let r=n&127,i;return i=t[this.pos++],r|=(i&127)<<7,i<128||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,l_(r,e,this))}readSVarint(){let e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return !!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&o_?o_.decode(this.buf.subarray(t,e)):w_(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos<n;)e.push(this.readVarint(t));return e}readPackedSVarint(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFloat());return e}readPackedDouble(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}nextField(e=this.length){if(this.pos===this._valueStart&&this.skip(this.type),this.pos>=e)return 0;let t=this.readVarint();return this.type=t&7,this._valueStart=this.pos,t>>>3}skip(e){let t=e&7;if(t===0)for(;this.buf[this.pos++]>127;);else if(t===2)this.pos=this.readVarint()+this.pos;else if(t===5)this.pos+=4;else if(t===1)this.pos+=8;else throw Error(`Unimplemented type: ${t}`)}};function l_(e,t,n){let r=n.buf,i,a;if(a=r[n.pos++],i=(a&112)>>4,a<128||(a=r[n.pos++],i|=(a&127)<<3,a<128)||(a=r[n.pos++],i|=(a&127)<<10,a<128)||(a=r[n.pos++],i|=(a&127)<<17,a<128)||(a=r[n.pos++],i|=(a&127)<<24,a<128)||(a=r[n.pos++],i|=(a&1)<<31,a<128))return u_(e,i,t);throw Error(`Expected varint not more than 10 bytes`)}function u_(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function w_(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function E_(e,t,n){e===1&&n.readMessage(D_,t);}function D_(e,t,n){if(e===3){let{id:e,bitmap:r,width:i,height:a,left:o,top:s,advance:c}=n.readMessage(O_,{});t.push({id:e,bitmap:new pf$1({width:i+6,height:a+6},r),metrics:{width:i,height:a,left:o,top:s,advance:c}});}}function O_(e,t,n){e===1?t.id=n.readVarint():e===2?t.bitmap=n.readBytes():e===3?t.width=n.readVarint():e===4?t.height=n.readVarint():e===5?t.left=n.readSVarint():e===6?t.top=n.readSVarint():e===7&&(t.advance=n.readVarint());}function k_(e){return new s_(e).readFields(E_,[])}function A_(e){let{userImage:t}=e;return t?.render&&t.render()?(e.data.replace(new Uint8Array(t.data.buffer)),true):false}function j_(e){let t=0,n=0;for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort((e,t)=>t.h-e.h);let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();t&&e<r.length&&(r[e]=t);}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return {w:i,h:a,fill:t/(i*a)||0}}var M_=class{constructor(e,{pixelRatio:t,version:n,stretchX:r,stretchY:i,content:a,textFitWidth:o,textFitHeight:s}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=r,this.stretchY=i,this.content=a,this.version=n,this.textFitWidth=o,this.textFitHeight=s;}get tl(){return [this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}},N_=class{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[];let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=j_(i),s=new mf$1({width:a||1,height:o||1});for(let t in e){let r=e[t],i=n[t].paddedRect;mf$1.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data);}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;mf$1.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),mf$1.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),mf$1.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),mf$1.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),mf$1.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l});}this.image=s,this.iconPositions=n,this.patternPositions=r;}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new M_(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r);}}patchUpdatedImages(e,t){e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(let n in e.updatedImages)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t),this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t);}patchUpdatedImage(e,t,n){if(!e||!t||e.version===t.version)return;e.version=t.version;let[r,i]=e.tl;n.update(t.data,void 0,{x:r,y:i});}};W$1(`ImagePosition`,M_),W$1(`ImageAtlas`,N_);var P_=function(e){return e[e.none=0]=`none`,e[e.horizontal=1]=`horizontal`,e[e.vertical=2]=`vertical`,e[e.horizontalOnly=3]=`horizontalOnly`,e}(P_||{});function R_(e){let t=.5,n=.5;switch(e){case `right`:case `top-right`:case `bottom-right`:t=1;break;case `left`:case `top-left`:case `bottom-left`:t=0;}switch(e){case `bottom`:case `bottom-right`:case `bottom-left`:n=1;break;case `top`:case `top-right`:case `top-left`:n=0;}return {horizontalAlign:t,verticalAlign:n}}const Z_=32640;function Q_(e,t){let{expression:n}=t;if(n.kind===`constant`)return {kind:`constant`,layoutSize:n.evaluate(new G$1(e+1))};if(n.kind===`source`)return {kind:`source`};{let{zoomStops:t,interpolationType:r}=n,i=0;for(;i<t.length&&t[i]<=e;)i++;i=Math.max(0,i-1);let a=i;for(;a<t.length&&t[a]<e+1;)a++;a=Math.min(t.length-1,a);let o=t[i],s=t[a];return n.kind===`composite`?{kind:`composite`,minZoom:o,maxZoom:s,interpolationType:r}:{kind:`camera`,minZoom:o,maxZoom:s,minSize:n.evaluate(new G$1(o)),maxSize:n.evaluate(new G$1(s)),interpolationType:r}}}function $_(e,{uSize:t,uSizeT:n},{lowerSize:r,upperSize:i}){return e.kind===`source`?r/128:e.kind===`composite`?Ni$1.number(r/128,i/128,n):t}function ev(e,t){let n=0,r=0;if(e.kind===`constant`)r=e.layoutSize;else if(e.kind!==`source`){let{interpolationType:i,minZoom:a,maxZoom:o}=e,s=i?Tt(ji$1.interpolationFactor(i,t,a,o),0,1):0;e.kind===`camera`?r=Ni$1.number(e.minSize,e.maxSize,s):n=s;}return {uSizeT:n,uSize:r}}function tv(e,t,n){let r=`never`,i=e.get(t);return i?r=i:e.get(n)&&(r=`always`),r}const nv=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function rv(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=s?Math.min(Z_,Math.round(s[0])):0,m=s?Math.min(Z_,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(r*32),Math.round(i*32),a,o,(p<<1)+ +!!c,m,l*16,u*16,d*256,f*256);}function iv(e,t,n){e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n);}function av(e){for(let t of e.sections)if(rl$1(t.text))return true;return false}var ov=class{constructor(e){this.layoutVertexArray=new Du$1,this.indexArray=new Pu$1,this.programConfigurations=e,this.segments=new zu$1,this.dynamicLayoutVertexArray=new Ou$1,this.opacityVertexArray=new ku$1,this.hasVisibleVertices=false,this.placedSymbolArray=new cu$1;}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Bg.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,Vg.members,true),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,nv,true),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy());}};W$1(`SymbolBuffers`,ov);var sv=class{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new zu$1,this.collisionVertexArray=new Mu$1;}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,Hg.members,true);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy());}};W$1(`CollisionBuffers`,sv);var cv=class{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=false,this.hasRTLText=false,this.sortKeyRanges=[],this.collisionCircleArray=[];let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Q_(this.zoom,t[`text-size`]),this.iconSizeData=Q_(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=tv(n,`text-overlap`,`text-allow-overlap`)!==`never`||tv(n,`icon-overlap`,`icon-allow-overlap`)!==`never`||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&!r.isConstant();let a=i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&this.canOverlap,n.get(`symbol-placement`)===`point`&&(this.writingModes=n.get(`text-writing-mode`).map(e=>P_[e])),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id),this.sourceID=e.sourceID;}createArrays(){this.text=new ov(new gd$1(this.layers,this.zoom,e=>e.startsWith(`text`))),this.icon=new ov(new gd$1(this.layers,this.zoom,e=>e.startsWith(`icon`))),this.glyphOffsetArray=new du$1,this.lineVertexArray=new fu$1,this.symbolInstances=new uu$1,this.textAnchorOffsets=new mu$1;}calculateGlyphDependencies(e,t,n,r,i){for(let a of e)if(t[a.codePointAt(0)]=true,(n||r)&&i){let e=Jg[a];e&&(t[e.codePointAt(0)]=true);}}populate(e,t,n){let r=this.layers[0],i=r.layout,a=i.get(`text-font`),o=i.get(`text-field`),s=i.get(`icon-image`),c=(o.value.kind!==`constant`||o.value.value instanceof ei$1&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&(a.value.kind!==`constant`||a.value.value.length>0),l=s.value.kind!==`constant`||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get(`symbol-sort-key`);if(this.features=[],!c&&!l)return;let d=t.iconDependencies,f=t.glyphDependencies,p=t.availableImages,m=new G$1(this.zoom);for(let{feature:t,id:o,index:s,sourceLayerIndex:h}of e){let e=r._featureFilter.needGeometry,g=Cd$1(t,e);if(!r._featureFilter.filter(m,g,n))continue;e||(g.geometry=Sd$1(t));let _;if(c){let e=r.getValueAndResolveTokens(`text-field`,g,n,p),t=ei$1.factory(e);this.hasRTLText||=av(t),(!this.hasRTLText||al$1.getRTLTextPluginStatus()===`unavailable`||this.hasRTLText&&al$1.isParsed())&&(_=Kg(t,r,g));}let v;if(l){let e=r.getValueAndResolveTokens(`icon-image`,g,n,p);v=e instanceof oi$1?e:oi$1.fromString(e);}if(!_&&!v)continue;let y=this.sortFeaturesByKey?u.evaluate(g,{},n):void 0,b={id:o,text:_,icon:v,index:s,sourceLayerIndex:h,geometry:g.geometry,properties:t.properties,type:im$1.types[t.type],sortKey:y};if(this.features.push(b),v&&(d[v.name]=true),_){let e=a.evaluate(g,{},n).join(`,`),t=i.get(`text-rotation-alignment`)!==`viewport`&&i.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes?.includes(2);for(let n of _.sections)if(n.image)d[n.image.name]=true;else {let r=qc$1(_.toString()),i=n.fontStack||e;f[i]||={},this.calculateGlyphDependencies(n.text,f[i],t,this.allowVerticalPlacement,r);}}}i.get(`symbol-placement`)===`line`&&(this.features=qg(this.features)),this.sortFeaturesByKey&&this.features.sort((e,t)=>e.sortKey-t.sortKey);}update(e,t,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}));}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=true;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(e,t){let n=this.lineVertexArray.length;if(e.segment!==void 0){let n=e.dist(t[e.segment+1]),r=e.dist(t[e.segment]),i={};for(let r=e.segment+1;r<t.length;r++)i[r]={x:t[r].x,y:t[r].y,tileUnitDistanceFromAnchor:n},r<t.length-1&&(n+=t[r+1].dist(t[r]));for(let n=e.segment||0;n>=0;n--)i[n]={x:t[n].x,y:t[n].y,tileUnitDistanceFromAnchor:r},n>0&&(r+=t[n-1].dist(t[n]));for(let e=0;e<t.length;e++){let t=i[e];this.lineVertexArray.emplaceBack(t.x,t.y,t.tileUnitDistanceFromAnchor);}}return {lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d){let f=e.indexArray,p=e.layoutVertexArray,m=e.segments.prepareSegment(4*t.length,p,f,this.canOverlap?a.sortKey:void 0),h=this.glyphOffsetArray.length,g=m.vertexLength,_=this.allowVerticalPlacement&&o===2?Math.PI/2:0,v=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:c,br:l,tex:u,pixelOffsetTL:h,pixelOffsetBR:g,minFontScaleX:y,minFontScaleY:b,glyphOffset:x,isSDF:S,sectionIndex:C}=t[r],w=m.vertexLength,T=x[1];rv(p,s.x,s.y,i.x,T+i.y,u.x,u.y,n,S,h.x,h.y,y,b),rv(p,s.x,s.y,o.x,T+o.y,u.x+u.w,u.y,n,S,g.x,h.y,y,b),rv(p,s.x,s.y,c.x,T+c.y,u.x,u.y+u.h,n,S,h.x,g.y,y,b),rv(p,s.x,s.y,l.x,T+l.y,u.x+u.w,u.y+u.h,n,S,g.x,g.y,y,b),iv(e.dynamicLayoutVertexArray,s,_),f.emplaceBack(w,w+2,w+1),f.emplaceBack(w+1,w+2,w+3),m.vertexLength+=4,m.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(x[0]),(r===t.length-1||C!==t[r+1].sectionIndex)&&e.programConfigurations.populatePaintArrays(p.length,a,a.index,{imagePositions:{},canonical:d,formattedSection:v?.[C]});}e.placedSymbolArray.emplaceBack(s.x,s.y,h,this.glyphOffsetArray.length-h,g,c,l,s.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,false,0,u);}_addCollisionDebugVertex(e,t,n,r,i,a){return t.emplaceBack(0,0),e.emplaceBack(n.x,n.y,r,i,Math.round(a.x),Math.round(a.y))}addCollisionDebugVertices(e,t,n,r,i,a,o){let s=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),c=s.vertexLength,u=i.layoutVertexArray,d=i.collisionVertexArray,f=o.anchorX,p=o.anchorY;this._addCollisionDebugVertex(u,d,a,f,p,new l(e,t)),this._addCollisionDebugVertex(u,d,a,f,p,new l(n,t)),this._addCollisionDebugVertex(u,d,a,f,p,new l(n,r)),this._addCollisionDebugVertex(u,d,a,f,p,new l(e,r)),s.vertexLength+=4;let m=i.indexArray;m.emplaceBack(c,c+1),m.emplaceBack(c+1,c+2),m.emplaceBack(c+2,c+3),m.emplaceBack(c+3,c),s.primitiveLength+=4;}addDebugCollisionBoxes(e,t,n,r){for(let i=e;i<t;i++){let e=this.collisionBoxArray.get(i),t=e.x1,a=e.y1,o=e.x2,s=e.y2;this.addCollisionDebugVertices(t,a,o,s,r?this.textCollisionBox:this.iconCollisionBox,e.anchorPoint,n);}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new sv(Au$1,Ug.members,Fu$1),this.iconCollisionBox=new sv(Au$1,Ug.members,Fu$1);for(let e=0;e<this.symbolInstances.length;e++){let t=this.symbolInstances.get(e);this.addDebugCollisionBoxes(t.textBoxStartIndex,t.textBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.verticalTextBoxStartIndex,t.verticalTextBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.iconBoxStartIndex,t.iconBoxEndIndex,t,false),this.addDebugCollisionBoxes(t.verticalIconBoxStartIndex,t.verticalIconBoxEndIndex,t,false);}}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};for(let r=t;r<n;r++){let t=e.get(r);l.textBox={x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,anchorPointX:t.anchorPointX,anchorPointY:t.anchorPointY},l.textFeatureIndex=t.featureIndex;break}for(let t=r;t<i;t++){let n=e.get(t);l.verticalTextBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalTextFeatureIndex=n.featureIndex;break}for(let t=a;t<o;t++){let n=e.get(t);l.iconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.iconFeatureIndex=n.featureIndex;break}for(let t=s;t<c;t++){let n=e.get(t);l.verticalIconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalIconFeatureIndex=n.featureIndex;break}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex));}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+n.numGlyphs*4;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+2,t+1),e.indexArray.emplaceBack(t+1,t+2,t+3);}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(Math.round(t*o.anchorX+n*o.anchorY)|0),i.push(o.featureIndex);}return a.sort((e,t)=>r[e]-r[t]||i[t]-i[e]),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n?.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,symbolInstanceStart:e,symbolInstanceEnd:e+1});}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let n=[t.rightJustifiedTextSymbolIndex,t.centerJustifiedTextSymbolIndex,t.leftJustifiedTextSymbolIndex];for(let e=0;e<n.length;e++){let t=n[e];t>=0&&n.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);}t.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,t.verticalPlacedTextSymbolIndex),t.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.placedIconSymbolIndex),t.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}};W$1(`SymbolBucket`,cv,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]}),cv.MAX_GLYPHS=65535,cv.addDynamicAttributes=iv;function lv(e,t){return t.replace(/{([^{}]+)}/g,(t,n)=>e&&n in e?String(e[n]):``)}let uv;const dv=()=>uv||=new xl$1({"symbol-placement":new K$1(M.layout_symbol[`symbol-placement`],`symbol-placement`),"symbol-spacing":new K$1(M.layout_symbol[`symbol-spacing`],`symbol-spacing`),"symbol-avoid-edges":new K$1(M.layout_symbol[`symbol-avoid-edges`],`symbol-avoid-edges`),"symbol-sort-key":new q$1(M.layout_symbol[`symbol-sort-key`],`symbol-sort-key`),"symbol-z-order":new K$1(M.layout_symbol[`symbol-z-order`],`symbol-z-order`),"icon-allow-overlap":new K$1(M.layout_symbol[`icon-allow-overlap`],`icon-allow-overlap`),"icon-overlap":new K$1(M.layout_symbol[`icon-overlap`],`icon-overlap`),"icon-ignore-placement":new K$1(M.layout_symbol[`icon-ignore-placement`],`icon-ignore-placement`),"icon-optional":new K$1(M.layout_symbol[`icon-optional`],`icon-optional`),"icon-rotation-alignment":new K$1(M.layout_symbol[`icon-rotation-alignment`],`icon-rotation-alignment`),"icon-size":new q$1(M.layout_symbol[`icon-size`],`icon-size`),"icon-text-fit":new K$1(M.layout_symbol[`icon-text-fit`],`icon-text-fit`),"icon-text-fit-padding":new K$1(M.layout_symbol[`icon-text-fit-padding`],`icon-text-fit-padding`),"icon-image":new q$1(M.layout_symbol[`icon-image`],`icon-image`),"icon-rotate":new q$1(M.layout_symbol[`icon-rotate`],`icon-rotate`),"icon-padding":new q$1(M.layout_symbol[`icon-padding`],`icon-padding`),"icon-keep-upright":new K$1(M.layout_symbol[`icon-keep-upright`],`icon-keep-upright`),"icon-offset":new q$1(M.layout_symbol[`icon-offset`],`icon-offset`),"icon-anchor":new q$1(M.layout_symbol[`icon-anchor`],`icon-anchor`),"icon-pitch-alignment":new K$1(M.layout_symbol[`icon-pitch-alignment`],`icon-pitch-alignment`),"text-pitch-alignment":new K$1(M.layout_symbol[`text-pitch-alignment`],`text-pitch-alignment`),"text-rotation-alignment":new K$1(M.layout_symbol[`text-rotation-alignment`],`text-rotation-alignment`),"text-field":new q$1(M.layout_symbol[`text-field`],`text-field`),"text-font":new q$1(M.layout_symbol[`text-font`],`text-font`),"text-size":new q$1(M.layout_symbol[`text-size`],`text-size`),"text-max-width":new q$1(M.layout_symbol[`text-max-width`],`text-max-width`),"text-line-height":new K$1(M.layout_symbol[`text-line-height`],`text-line-height`),"text-letter-spacing":new q$1(M.layout_symbol[`text-letter-spacing`],`text-letter-spacing`),"text-justify":new q$1(M.layout_symbol[`text-justify`],`text-justify`),"text-radial-offset":new q$1(M.layout_symbol[`text-radial-offset`],`text-radial-offset`),"text-variable-anchor":new K$1(M.layout_symbol[`text-variable-anchor`],`text-variable-anchor`),"text-variable-anchor-offset":new q$1(M.layout_symbol[`text-variable-anchor-offset`],`text-variable-anchor-offset`),"text-anchor":new q$1(M.layout_symbol[`text-anchor`],`text-anchor`),"text-max-angle":new K$1(M.layout_symbol[`text-max-angle`],`text-max-angle`),"text-writing-mode":new K$1(M.layout_symbol[`text-writing-mode`],`text-writing-mode`),"text-rotate":new q$1(M.layout_symbol[`text-rotate`],`text-rotate`),"text-padding":new K$1(M.layout_symbol[`text-padding`],`text-padding`),"text-keep-upright":new K$1(M.layout_symbol[`text-keep-upright`],`text-keep-upright`),"text-transform":new q$1(M.layout_symbol[`text-transform`],`text-transform`),"text-offset":new q$1(M.layout_symbol[`text-offset`],`text-offset`),"text-allow-overlap":new K$1(M.layout_symbol[`text-allow-overlap`],`text-allow-overlap`),"text-overlap":new K$1(M.layout_symbol[`text-overlap`],`text-overlap`),"text-ignore-placement":new K$1(M.layout_symbol[`text-ignore-placement`],`text-ignore-placement`),"text-optional":new K$1(M.layout_symbol[`text-optional`],`text-optional`)});let fv;const pv=()=>fv||=new xl$1({"icon-opacity":new q$1(M.paint_symbol[`icon-opacity`],`icon-opacity`),"icon-color":new q$1(M.paint_symbol[`icon-color`],`icon-color`),"icon-halo-color":new q$1(M.paint_symbol[`icon-halo-color`],`icon-halo-color`),"icon-halo-width":new q$1(M.paint_symbol[`icon-halo-width`],`icon-halo-width`),"icon-halo-blur":new q$1(M.paint_symbol[`icon-halo-blur`],`icon-halo-blur`),"icon-translate":new K$1(M.paint_symbol[`icon-translate`],`icon-translate`),"icon-translate-anchor":new K$1(M.paint_symbol[`icon-translate-anchor`],`icon-translate-anchor`),"text-opacity":new q$1(M.paint_symbol[`text-opacity`],`text-opacity`),"text-color":new q$1(M.paint_symbol[`text-color`],`text-color`,{runtimeType:or,getOverride:e=>e.textColor,hasOverride:e=>!!e.textColor}),"text-halo-color":new q$1(M.paint_symbol[`text-halo-color`],`text-halo-color`),"text-halo-width":new q$1(M.paint_symbol[`text-halo-width`],`text-halo-width`),"text-halo-blur":new q$1(M.paint_symbol[`text-halo-blur`],`text-halo-blur`),"text-translate":new K$1(M.paint_symbol[`text-translate`],`text-translate`),"text-translate-anchor":new K$1(M.paint_symbol[`text-translate-anchor`],`text-translate-anchor`)});var mv={get paint(){return pv()},get layout(){return dv()}},hv=class{constructor(e){if(e.property.overrides===void 0)throw Error(`overrides must be provided to instantiate FormatSectionOverride class`);this.type=e.property.overrides?e.property.overrides.runtimeType:ar,this.defaultValue=e;}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t?.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){if(!this.defaultValue.isConstant()){let t=this.defaultValue.value;e(t._styleExpression.expression);}}outputDefined(){return false}serialize(){return null}};W$1(`FormatSectionOverride`,hv,{omit:[`defaultValue`]});const gv=e=>e.type===`symbol`;var _v=class e extends wl$1{constructor(e,t){super(e,mv,t);}recalculate(e,t){if(super.recalculate(e,t),this.layout.get(`icon-rotation-alignment`)===`auto`&&(this.layout.get(`symbol-placement`)===`point`?this.layout._values[`icon-rotation-alignment`]=`viewport`:this.layout._values[`icon-rotation-alignment`]=`map`),this.layout.get(`text-rotation-alignment`)===`auto`&&(this.layout.get(`symbol-placement`)===`point`?this.layout._values[`text-rotation-alignment`]=`viewport`:this.layout._values[`text-rotation-alignment`]=`map`),this.layout.get(`text-pitch-alignment`)===`auto`&&(this.layout._values[`text-pitch-alignment`]=this.layout.get(`text-rotation-alignment`)===`map`?`map`:`viewport`),this.layout.get(`icon-pitch-alignment`)===`auto`&&(this.layout._values[`icon-pitch-alignment`]=this.layout.get(`icon-rotation-alignment`)),this.layout.get(`symbol-placement`)===`point`){let e=this.layout.get(`text-writing-mode`);if(e){let t=[];for(let n of e)t.includes(n)||t.push(n);this.layout._values[`text-writing-mode`]=t;}else this.layout._values[`text-writing-mode`]=[`horizontal`];}this._setPaintOverrides();}getValueAndResolveTokens(e,t,n,r){let i=this.layout.get(e).evaluate(t,{},n,r),a=this._unevaluatedLayout._values[e];return !a.isDataDriven()&&!Jo$1(a.value)&&i?lv(t.properties,i):i}createBucket(e){return new cv(e)}queryRadius(){return 0}queryIntersectsFeature(){throw Error(`Should take a different path in FeatureIndex`)}_setPaintOverrides(){for(let t of mv.paint.overridableProperties){if(!e.hasPaintOverride(this.layout,t))continue;let n=this.paint.get(t),r=new Go$1(new hv(n),`layers[${this.id}].paint.${n.property.name}`,n.property.specification),i=null;i=n.value.kind===`constant`||n.value.kind===`source`?new Xo$1(`source`,r):new Zo$1(`composite`,r,n.value.zoomStops),this.paint._values[t]=new ml$1(n.property,i,n.parameters);}}_handleOverridablePaintPropertyUpdate(t,n,r){return !this.layout||n.isDataDriven()||r.isDataDriven()?false:e.hasPaintOverride(this.layout,t)}static hasPaintOverride(e,t){let n=e.get(`text-field`),r=mv.paint.properties[t],i=false,a=e=>{for(let t of e)if(r.overrides?.hasOverride(t)){i=true;return}};if(n.value.kind===`constant`&&n.value.value instanceof ei$1)a(n.value.value.sections);else if(n.value.kind===`source`||n.value.kind===`composite`){let e=t=>{if(!i)if(t instanceof fi$1&&ui$1(t.value)===dr){let e=t.value;a(e.sections);}else t instanceof ra$1?a(t.sections):t.eachChild(e);},t=n.value;t._styleExpression&&e(t._styleExpression.expression);}return i}};let yv;const bv=()=>yv||=new xl$1({"background-color":new K$1(M.paint_background[`background-color`],`background-color`),"background-pattern":new yl$1(M.paint_background[`background-pattern`],`background-pattern`),"background-opacity":new K$1(M.paint_background[`background-opacity`],`background-opacity`)});var xv={get paint(){return bv()}};const Sv=e=>e.type===`background`;var Cv=class extends wl$1{constructor(e,t){super(e,xv,t);}};function wv(e){let t=[],n=e.id;return n===void 0&&t.push(new P(`layers.${n}`,null,`missing required property "id"`)),e.render===void 0&&t.push(new P(`layers.${n}`,null,`missing required method "render"`)),e.renderingMode&&e.renderingMode!==`2d`&&e.renderingMode!==`3d`&&t.push(new P(`layers.${n}`,null,`property "renderingMode" must be either "2d" or "3d"`)),t}const Tv=e=>e.type===`custom`;var Ev=class extends wl$1{constructor(e,t){super(e,{},t),this.onAdd=e=>{this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl);},this.onRemove=e=>{this.implementation.onRemove&&this.implementation.onRemove(e,e.painter.context.gl);},this.implementation=e;}is3D(){return this.implementation.renderingMode===`3d`}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return false}serialize(){throw Error(`Custom layers cannot be serialized`)}};function Dv(e,t){if(e.type===`custom`)return new Ev(e,t);switch(e.type){case `background`:return new Cv(e,t);case `circle`:return new af$1(e,t);case `color-relief`:return new Nf$1(e,t);case `fill`:return new em$1(e,t);case `fill-extrusion`:return new qm(e,t);case `heatmap`:return new yf$1(e,t);case `hillshade`:return new wf$1(e,t);case `line`:return new Rg(e,t);case `raster`:return new kl$1(e,t);case `symbol`:return new _v(e,t)}}var Ov=class{constructor(e){this._methodToThrottle=e,this._triggered=false,this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=false,this._methodToThrottle();};}trigger(){this._triggered||(this._triggered=true,this._channel?.port1.postMessage(true));}remove(){delete this._channel,this._methodToThrottle=()=>{};}};const kv={once:true};var Av=class{constructor(e,t){this.target=e,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new Ov(()=>this.process()),this.subscription=on(this.target,`message`,e=>this.receive(e),false),this.globalScope=Gt(self)?e:window;}registerMessageHandler(e,t){this.messageHandlers[e]=t;}unregisterMessageHandler(e){delete this.messageHandlers[e];}sendAsync(e,t){return new Promise((n,r)=>{let i=Math.round(Math.random()*0xde0b6b3a7640000).toString(36).substring(0,10),a=t?on(t.signal,`abort`,()=>{a?.unsubscribe(),delete this.resolveRejects[i];let n={id:i,type:`<cancel>`,origin:location.origin,targetMapId:e.targetMapId,sourceMapId:this.mapId};this.target.postMessage(n),r(new bn(t.signal.reason));},kv):null;this.resolveRejects[i]={resolve:e=>{a?.unsubscribe(),n(e);},reject:e=>{a?.unsubscribe(),r(e);}};let o=[],s={...e,id:i,sourceMapId:this.mapId,origin:location.origin,data:Rc$1(e.data,o)};this.target.postMessage(s,{transfer:o});})}receive(e){let t=e.data,n=t.id,r=[`file://`,`resource://android`,`null`],i=[t.origin,location.origin],a=t.origin===location.origin,o=i.some(e=>r.includes(e));if(!(!a&&!o)&&!(t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type===`<cancel>`){delete this.tasks[n];let e=this.abortControllers[n];delete this.abortControllers[n],e&&e.abort();return}if(Gt(self)||t.mustQueue){this.tasks[n]=t,this.taskQueue.push(n),this.invoker.trigger();return}this.processTask(n,t);}}process(){if(this.taskQueue.length===0)return;let e=this.taskQueue.shift(),t=this.tasks[e];delete this.tasks[e],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(e,t);}async processTask(e,t){if(t.type===`<response>`){let n=this.resolveRejects[e];if(delete this.resolveRejects[e],!n)return;t.error?n.reject(it(zc$1(t.error))):n.resolve(zc$1(t.data));return}if(!this.messageHandlers[t.type]){this.completeTask(e,null,null);return}let n=zc$1(t.data),r=new AbortController;this.abortControllers[e]=r;try{let i=await this.messageHandlers[t.type](t.sourceMapId,n,r);this.completeTask(e,null,i);}catch(t){this.completeTask(e,it(t));}}completeTask(e,t,n){let r=[];delete this.abortControllers[e];let i={id:e,type:`<response>`,sourceMapId:this.mapId,origin:location.origin,error:t?Rc$1(t):null,data:Rc$1(n,r)};this.target.postMessage(i,{transfer:r});}remove(){this.invoker.remove(),this.subscription.unsubscribe();}};function jv(e,t,n){return !(e<0||e>25||n<0||n>=2**e||t<0||t>=2**e)}function Mv(e,t){let{x:n,y:r}=xm.fromLngLat(t);return !(e<0||e>25||r<0||r>=1||n<0||n>=1)}var Nv=class{constructor(e,t,n){if(!jv(e,t,n))throw Error(`x=${t}, y=${n}, z=${e} outside of bounds. 0<=x<${2**e}, 0<=y<${2**e} 0<=z<=25 `);this.z=e,this.x=t,this.y=n,this.key=Iv(0,e,e,t,n);}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t,n){let r=Rv(this.x,this.y,this.z),i=Bv(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(n===`tms`?2**this.z-this.y-1:this.y)).replace(/{ratio}/g,t>1?`@2x`:``).replace(/{quadkey}/g,i).replace(/{bbox-epsg-3857}/g,r)}isChildOf(e){let t=this.z-e.z;return t>0&&e.x===this.x>>t&&e.y===this.y>>t}getTilePoint(e){let t=2**this.z;return new l((e.x*t-this.x)*j,(e.y*t-this.y)*j)}toString(){return `${this.z}/${this.x}/${this.y}`}},Pv=class{constructor(e,t){this.wrap=e,this.canonical=t,this.key=Iv(e,t.z,t.z,t.x,t.y);}},Fv=class e{constructor(e,t,n,r,i){if(this.terrainRttPosMatrix32f=null,e<n)throw Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${n}`);this.overscaledZ=e,this.wrap=t,this.canonical=new Nv(n,+r,+i),this.key=Iv(t,e,n,r,i);}clone(){return new e(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(t){if(t>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-t;return t>this.canonical.z?new e(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new e(t,this.wrap,t,this.canonical.x>>n,this.canonical.y>>n)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,t){if(e>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-e;return e>this.canonical.z?Iv(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y):Iv(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return false;if(e.overscaledZ===0)return this.overscaledZ>0;let t=this.canonical.z-e.canonical.z;return t<0?false:e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(t){if(this.overscaledZ>=t)return [new e(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let n=this.canonical.z+1,r=this.canonical.x*2,i=this.canonical.y*2;return [new e(n,this.wrap,n,r,i),new e(n,this.wrap,n,r+1,i),new e(n,this.wrap,n,r,i+1),new e(n,this.wrap,n,r+1,i+1)]}isLessThan(e){return this.wrap<e.wrap?true:this.wrap>e.wrap?false:this.overscaledZ<e.overscaledZ?true:this.overscaledZ>e.overscaledZ?false:this.canonical.x<e.canonical.x?true:this.canonical.x>e.canonical.x?false:this.canonical.y<e.canonical.y}wrapped(){return new e(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new e(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Pv(this.wrap,this.canonical)}toString(){return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new xm(e.x-this.wrap,e.y))}normalizeCoordinates(t,n,r=j){if(t>=0&&t<r&&n>=0&&n<r)return {tileID:this,x:t,y:n};let i=Math.floor(t/r),a=Math.floor(n/r),o=t-i*r,s=n-a*r,c=this.canonical.z,l=1<<c,u=this.canonical.y+a;if(u<0||u>=l)return null;let d=this.canonical.x+i,f=this.wrap;return d<0?(f-=Math.ceil(-d/l),d=(d%l+l)%l):d>=l&&(f+=Math.floor(d/l),d%=l),{tileID:new e(this.overscaledZ,f,c,d,u),x:o,y:s}}};function Iv(e,t,n,r,i){e*=2,e<0&&(e=e*-1-1);let a=1<<n;return (a*a*e+a*i+r).toString(36)+n.toString(36)+t.toString(36)}const Lv=Math.PI*6378137;function Rv(e,t,n){t=2**n-t-1;let r=zv(e*256,t*256,n),i=zv((e+1)*256,(t+1)*256,n);return `${r[0]},${r[1]},${i[0]},${i[1]}`}function zv(e,t,n){let r=2*Lv/256/2**n;return [e*r-Lv,t*r-Lv]}function Bv(e,t,n){let r=``;for(let i=e;i>0;i--){let e=1<<i-1;r+=(t&e?1:0)+(n&e?2:0);}return r}function Vv(e,t){let n=Math.abs(e.wrap*2)-+(e.wrap<0),r=Math.abs(t.wrap*2)-+(t.wrap<0);return e.overscaledZ-t.overscaledZ||r-n||t.canonical.y-e.canonical.y||t.canonical.x-e.canonical.x}W$1(`CanonicalTileID`,Nv),W$1(`OverscaledTileID`,Fv,{omit:[`terrainRttPosMatrix32f`]});var Hv=class e{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0;}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(t){let n=new e;return n.extend(t(new l(this.minX,this.minY))),n.extend(t(new l(this.maxX,this.minY))),n.extend(t(new l(this.minX,this.maxY))),n.extend(t(new l(this.maxX,this.maxY))),n}static fromPoints(t){let n=new e;for(let e of t)n.extend(e);return n}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return !this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return !this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}};const Wv=`_geojsonTileLayer`;var ty=class{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n;}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}},ny=class{constructor(e,t,n,r,i){this.type=`Feature`,this._vectorTileFeature=e,this._x=n,this._y=r,this._z=t;for(let t in e.properties)typeof e.properties[t]!=`string`||!e.properties[t].startsWith(`__$json__:`)||(e.properties[t]=JSON.parse(e.properties[t].slice(10)));this.properties=e.properties,this.id=i;}projectPoint(e,t,n,r){return [(e.x+t)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+n)*2/r)*Math.PI))-90]}projectLine(e,t,n,r){return e.map(e=>this.projectPoint(e,t,n,r))}get geometry(){if(this._geometry)return this._geometry;let e=this._vectorTileFeature,t=e.extent*2**this._z,n=e.extent*this._x,r=e.extent*this._y,i=e.loadGeometry();switch(e.type){case 1:{let e=[];for(let t of i)e.push(t[0]);let a=this.projectLine(e,n,r,t);this._geometry=e.length===1?{type:`Point`,coordinates:a[0]}:{type:`MultiPoint`,coordinates:a};break}case 2:{let e=i.map(e=>this.projectLine(e,n,r,t));this._geometry=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};break}case 3:{let e=am$1(i),a=[];for(let i of e)a.push(i.map(e=>this.projectLine(e,n,r,t)));this._geometry=a.length===1?{type:`Polygon`,coordinates:a[0]}:{type:`MultiPolygon`,coordinates:a};break}default:throw Error(`unknown feature type: ${e.type}`)}return this._geometry}set geometry(e){this._geometry=e;}toJSON(){let e={geometry:this.geometry};for(let t in this)t!==`_geometry`&&t!==`_vectorTileFeature`&&t!==`_x`&&t!==`_y`&&t!==`_z`&&(e[t]=this[t]);return e}},ry=class{constructor(e,t,n){this._name=e,this.dataBuffer=t,typeof n==`number`?this._size=n:(this.nullabilityBuffer=n,this._size=n.size());}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer?.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}},iy=class extends ry{},ay=class extends iy{getValueFromBuffer(e){return this.dataBuffer[e]}},oy=class extends iy{getValueFromBuffer(e){return this.dataBuffer[e]}},sy=class extends ry{constructor(e,t,n,r){super(e,t,r),this.delta=n;}},cy=class extends sy{constructor(e,t,n,r){super(e,Int32Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}},ly=class extends ry{constructor(e,t,n,r){super(e,r?Int32Array.of(t):Uint32Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},uy=class{constructor(e,t,n,r,i=4096){if(this._name=e,this._geometryVector=t,this._idVector=n,this._propertyVectors=r,this._extent=i,e.length===0)throw Error(`Missing layer name`)}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors}getPropertyVector(e){return this.propertyVectorsMap||=new Map(this._propertyVectors.map(e=>[e.name,e])),this.propertyVectorsMap.get(e)}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){let e=[],t=this.geometryVector.getGeometries();for(let n=0;n<this.numFeatures;n++){let r;if(this.idVector){let e=this.idVector.getValue(n);r=this.containsMaxSafeIntegerValues(this.idVector)&&e!==null?Number(e):e;}let i={coordinates:t[n],type:this.geometryVector.geometryType(n)},a={};for(let e of this.propertyVectors){if(!e)continue;let t=e.name,r=e.getValue(n);r!==null&&(a[t]=r);}e.push({id:r,geometry:i,properties:a});}return e}containsMaxSafeIntegerValues(e){return e instanceof ay||e instanceof ly||e instanceof cy||e instanceof oy}};const dy={FEATURE:0},X$1={BOOLEAN:0,INT_8:1,UINT_8:2,INT_32:3,UINT_32:4,INT_64:5,UINT_64:6,FLOAT:7,DOUBLE:8,STRING:9},fy={GEOMETRY:0,STRUCT:1},py={ID:0};var my=class{constructor(e){this.value=e;}get(){return this.value}set(e){this.value=e;}increment(){return this.value++}add(e){this.value+=e;}},Z$1;(function(e){e.NONE=`NONE`,e.DELTA=`DELTA`,e.COMPONENTWISE_DELTA=`COMPONENTWISE_DELTA`,e.RLE=`RLE`,e.MORTON=`MORTON`,e.PDE=`PDE`;})(Z$1||={});var hy;(function(e){e.NONE=`NONE`,e.FAST_PFOR=`FAST_PFOR`,e.VARINT=`VARINT`;})(hy||={});const gy=new Uint32Array(33);gy[0]=0;for(let e=1;e<=32;e++)gy[e]=e===32?4294967295:4294967295>>>32-e;const _y=gy,vy=65536;function yy(e,t){return e-e%t}function by(e){return yy(e+31,32)}function xy(e){if(!Number.isFinite(e)||e<=0)return vy;let t=yy(Math.floor(e),256);return t===0?256:t}function Sy(e){let t=e>>>0;return ((t&255)<<24|(t&65280)<<8|t>>>8&65280|t>>>24&255)>>>0}function Cy(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0;n[i++]=a>>>0&3,n[i++]=a>>>2&3,n[i++]=a>>>4&3,n[i++]=a>>>6&3,n[i++]=a>>>8&3,n[i++]=a>>>10&3,n[i++]=a>>>12&3,n[i++]=a>>>14&3,n[i++]=a>>>16&3,n[i++]=a>>>18&3,n[i++]=a>>>20&3,n[i++]=a>>>22&3,n[i++]=a>>>24&3,n[i++]=a>>>26&3,n[i++]=a>>>28&3,n[i++]=a>>>30&3,n[i++]=o>>>0&3,n[i++]=o>>>2&3,n[i++]=o>>>4&3,n[i++]=o>>>6&3,n[i++]=o>>>8&3,n[i++]=o>>>10&3,n[i++]=o>>>12&3,n[i++]=o>>>14&3,n[i++]=o>>>16&3,n[i++]=o>>>18&3,n[i++]=o>>>20&3,n[i++]=o>>>22&3,n[i++]=o>>>24&3,n[i++]=o>>>26&3,n[i++]=o>>>28&3,n[i]=o>>>30&3;}function wy(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0;n[i++]=a>>>0&7,n[i++]=a>>>3&7,n[i++]=a>>>6&7,n[i++]=a>>>9&7,n[i++]=a>>>12&7,n[i++]=a>>>15&7,n[i++]=a>>>18&7,n[i++]=a>>>21&7,n[i++]=a>>>24&7,n[i++]=a>>>27&7,n[i++]=(a>>>30|(o&1)<<2)&7,n[i++]=o>>>1&7,n[i++]=o>>>4&7,n[i++]=o>>>7&7,n[i++]=o>>>10&7,n[i++]=o>>>13&7,n[i++]=o>>>16&7,n[i++]=o>>>19&7,n[i++]=o>>>22&7,n[i++]=o>>>25&7,n[i++]=o>>>28&7,n[i++]=(o>>>31|(s&3)<<1)&7,n[i++]=s>>>2&7,n[i++]=s>>>5&7,n[i++]=s>>>8&7,n[i++]=s>>>11&7,n[i++]=s>>>14&7,n[i++]=s>>>17&7,n[i++]=s>>>20&7,n[i++]=s>>>23&7,n[i++]=s>>>26&7,n[i]=s>>>29&7;}function Ty(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0;n[i++]=a>>>0&15,n[i++]=a>>>4&15,n[i++]=a>>>8&15,n[i++]=a>>>12&15,n[i++]=a>>>16&15,n[i++]=a>>>20&15,n[i++]=a>>>24&15,n[i++]=a>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15,n[i++]=c>>>0&15,n[i++]=c>>>4&15,n[i++]=c>>>8&15,n[i++]=c>>>12&15,n[i++]=c>>>16&15,n[i++]=c>>>20&15,n[i++]=c>>>24&15,n[i]=c>>>28&15;}function Ey(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0;n[i++]=a>>>0&31,n[i++]=a>>>5&31,n[i++]=a>>>10&31,n[i++]=a>>>15&31,n[i++]=a>>>20&31,n[i++]=a>>>25&31,n[i++]=(a>>>30|(o&7)<<2)&31,n[i++]=o>>>3&31,n[i++]=o>>>8&31,n[i++]=o>>>13&31,n[i++]=o>>>18&31,n[i++]=o>>>23&31,n[i++]=(o>>>28|(s&1)<<4)&31,n[i++]=s>>>1&31,n[i++]=s>>>6&31,n[i++]=s>>>11&31,n[i++]=s>>>16&31,n[i++]=s>>>21&31,n[i++]=s>>>26&31,n[i++]=(s>>>31|(c&15)<<1)&31,n[i++]=c>>>4&31,n[i++]=c>>>9&31,n[i++]=c>>>14&31,n[i++]=c>>>19&31,n[i++]=c>>>24&31,n[i++]=(c>>>29|(l&3)<<3)&31,n[i++]=l>>>2&31,n[i++]=l>>>7&31,n[i++]=l>>>12&31,n[i++]=l>>>17&31,n[i++]=l>>>22&31,n[i]=l>>>27&31;}function Dy(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0;n[i++]=a>>>0&63,n[i++]=a>>>6&63,n[i++]=a>>>12&63,n[i++]=a>>>18&63,n[i++]=a>>>24&63,n[i++]=(a>>>30|(o&15)<<2)&63,n[i++]=o>>>4&63,n[i++]=o>>>10&63,n[i++]=o>>>16&63,n[i++]=o>>>22&63,n[i++]=(o>>>28|(s&3)<<4)&63,n[i++]=s>>>2&63,n[i++]=s>>>8&63,n[i++]=s>>>14&63,n[i++]=s>>>20&63,n[i++]=s>>>26&63,n[i++]=c>>>0&63,n[i++]=c>>>6&63,n[i++]=c>>>12&63,n[i++]=c>>>18&63,n[i++]=c>>>24&63,n[i++]=(c>>>30|(l&15)<<2)&63,n[i++]=l>>>4&63,n[i++]=l>>>10&63,n[i++]=l>>>16&63,n[i++]=l>>>22&63,n[i++]=(l>>>28|(u&3)<<4)&63,n[i++]=u>>>2&63,n[i++]=u>>>8&63,n[i++]=u>>>14&63,n[i++]=u>>>20&63,n[i]=u>>>26&63;}function Oy(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0;n[i++]=a>>>0&127,n[i++]=a>>>7&127,n[i++]=a>>>14&127,n[i++]=a>>>21&127,n[i++]=(a>>>28|(o&7)<<4)&127,n[i++]=o>>>3&127,n[i++]=o>>>10&127,n[i++]=o>>>17&127,n[i++]=o>>>24&127,n[i++]=(o>>>31|(s&63)<<1)&127,n[i++]=s>>>6&127,n[i++]=s>>>13&127,n[i++]=s>>>20&127,n[i++]=(s>>>27|(c&3)<<5)&127,n[i++]=c>>>2&127,n[i++]=c>>>9&127,n[i++]=c>>>16&127,n[i++]=c>>>23&127,n[i++]=(c>>>30|(l&31)<<2)&127,n[i++]=l>>>5&127,n[i++]=l>>>12&127,n[i++]=l>>>19&127,n[i++]=(l>>>26|(u&1)<<6)&127,n[i++]=u>>>1&127,n[i++]=u>>>8&127,n[i++]=u>>>15&127,n[i++]=u>>>22&127,n[i++]=(u>>>29|(d&15)<<3)&127,n[i++]=d>>>4&127,n[i++]=d>>>11&127,n[i++]=d>>>18&127,n[i]=d>>>25&127;}function ky(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0;n[i++]=a>>>0&255,n[i++]=a>>>8&255,n[i++]=a>>>16&255,n[i++]=a>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255,n[i++]=f>>>0&255,n[i++]=f>>>8&255,n[i++]=f>>>16&255,n[i]=f>>>24&255;}function Ay(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0;n[i++]=a>>>0&511,n[i++]=a>>>9&511,n[i++]=a>>>18&511,n[i++]=(a>>>27|(o&15)<<5)&511,n[i++]=o>>>4&511,n[i++]=o>>>13&511,n[i++]=o>>>22&511,n[i++]=(o>>>31|(s&255)<<1)&511,n[i++]=s>>>8&511,n[i++]=s>>>17&511,n[i++]=(s>>>26|(c&7)<<6)&511,n[i++]=c>>>3&511,n[i++]=c>>>12&511,n[i++]=c>>>21&511,n[i++]=(c>>>30|(l&127)<<2)&511,n[i++]=l>>>7&511,n[i++]=l>>>16&511,n[i++]=(l>>>25|(u&3)<<7)&511,n[i++]=u>>>2&511,n[i++]=u>>>11&511,n[i++]=u>>>20&511,n[i++]=(u>>>29|(d&63)<<3)&511,n[i++]=d>>>6&511,n[i++]=d>>>15&511,n[i++]=(d>>>24|(f&1)<<8)&511,n[i++]=f>>>1&511,n[i++]=f>>>10&511,n[i++]=f>>>19&511,n[i++]=(f>>>28|(p&31)<<4)&511,n[i++]=p>>>5&511,n[i++]=p>>>14&511,n[i]=p>>>23&511;}function jy(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0;n[i++]=a>>>0&1023,n[i++]=a>>>10&1023,n[i++]=a>>>20&1023,n[i++]=(a>>>30|(o&255)<<2)&1023,n[i++]=o>>>8&1023,n[i++]=o>>>18&1023,n[i++]=(o>>>28|(s&63)<<4)&1023,n[i++]=s>>>6&1023,n[i++]=s>>>16&1023,n[i++]=(s>>>26|(c&15)<<6)&1023,n[i++]=c>>>4&1023,n[i++]=c>>>14&1023,n[i++]=(c>>>24|(l&3)<<8)&1023,n[i++]=l>>>2&1023,n[i++]=l>>>12&1023,n[i++]=l>>>22&1023,n[i++]=u>>>0&1023,n[i++]=u>>>10&1023,n[i++]=u>>>20&1023,n[i++]=(u>>>30|(d&255)<<2)&1023,n[i++]=d>>>8&1023,n[i++]=d>>>18&1023,n[i++]=(d>>>28|(f&63)<<4)&1023,n[i++]=f>>>6&1023,n[i++]=f>>>16&1023,n[i++]=(f>>>26|(p&15)<<6)&1023,n[i++]=p>>>4&1023,n[i++]=p>>>14&1023,n[i++]=(p>>>24|(m&3)<<8)&1023,n[i++]=m>>>2&1023,n[i++]=m>>>12&1023,n[i]=m>>>22&1023;}function My(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0;n[i++]=a>>>0&2047,n[i++]=a>>>11&2047,n[i++]=(a>>>22|(o&1)<<10)&2047,n[i++]=o>>>1&2047,n[i++]=o>>>12&2047,n[i++]=(o>>>23|(s&3)<<9)&2047,n[i++]=s>>>2&2047,n[i++]=s>>>13&2047,n[i++]=(s>>>24|(c&7)<<8)&2047,n[i++]=c>>>3&2047,n[i++]=c>>>14&2047,n[i++]=(c>>>25|(l&15)<<7)&2047,n[i++]=l>>>4&2047,n[i++]=l>>>15&2047,n[i++]=(l>>>26|(u&31)<<6)&2047,n[i++]=u>>>5&2047,n[i++]=u>>>16&2047,n[i++]=(u>>>27|(d&63)<<5)&2047,n[i++]=d>>>6&2047,n[i++]=d>>>17&2047,n[i++]=(d>>>28|(f&127)<<4)&2047,n[i++]=f>>>7&2047,n[i++]=f>>>18&2047,n[i++]=(f>>>29|(p&255)<<3)&2047,n[i++]=p>>>8&2047,n[i++]=p>>>19&2047,n[i++]=(p>>>30|(m&511)<<2)&2047,n[i++]=m>>>9&2047,n[i++]=m>>>20&2047,n[i++]=(m>>>31|(h&1023)<<1)&2047,n[i++]=h>>>10&2047,n[i]=h>>>21&2047;}function Ny(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0;n[i++]=a>>>0&4095,n[i++]=a>>>12&4095,n[i++]=(a>>>24|(o&15)<<8)&4095,n[i++]=o>>>4&4095,n[i++]=o>>>16&4095,n[i++]=(o>>>28|(s&255)<<4)&4095,n[i++]=s>>>8&4095,n[i++]=s>>>20&4095,n[i++]=c>>>0&4095,n[i++]=c>>>12&4095,n[i++]=(c>>>24|(l&15)<<8)&4095,n[i++]=l>>>4&4095,n[i++]=l>>>16&4095,n[i++]=(l>>>28|(u&255)<<4)&4095,n[i++]=u>>>8&4095,n[i++]=u>>>20&4095,n[i++]=d>>>0&4095,n[i++]=d>>>12&4095,n[i++]=(d>>>24|(f&15)<<8)&4095,n[i++]=f>>>4&4095,n[i++]=f>>>16&4095,n[i++]=(f>>>28|(p&255)<<4)&4095,n[i++]=p>>>8&4095,n[i++]=p>>>20&4095,n[i++]=m>>>0&4095,n[i++]=m>>>12&4095,n[i++]=(m>>>24|(h&15)<<8)&4095,n[i++]=h>>>4&4095,n[i++]=h>>>16&4095,n[i++]=(h>>>28|(g&255)<<4)&4095,n[i++]=g>>>8&4095,n[i]=g>>>20&4095;}function Py(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0,_=e[t+12]>>>0,v=e[t+13]>>>0,y=e[t+14]>>>0,b=e[t+15]>>>0;n[i++]=a>>>0&65535,n[i++]=a>>>16&65535,n[i++]=o>>>0&65535,n[i++]=o>>>16&65535,n[i++]=s>>>0&65535,n[i++]=s>>>16&65535,n[i++]=c>>>0&65535,n[i++]=c>>>16&65535,n[i++]=l>>>0&65535,n[i++]=l>>>16&65535,n[i++]=u>>>0&65535,n[i++]=u>>>16&65535,n[i++]=d>>>0&65535,n[i++]=d>>>16&65535,n[i++]=f>>>0&65535,n[i++]=f>>>16&65535,n[i++]=p>>>0&65535,n[i++]=p>>>16&65535,n[i++]=m>>>0&65535,n[i++]=m>>>16&65535,n[i++]=h>>>0&65535,n[i++]=h>>>16&65535,n[i++]=g>>>0&65535,n[i++]=g>>>16&65535,n[i++]=_>>>0&65535,n[i++]=_>>>16&65535,n[i++]=v>>>0&65535,n[i++]=v>>>16&65535,n[i++]=y>>>0&65535,n[i++]=y>>>16&65535,n[i++]=b>>>0&65535,n[i]=b>>>16&65535;}function Fy(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0;n[i++]=t>>>0&1,n[i++]=t>>>1&1,n[i++]=t>>>2&1,n[i++]=t>>>3&1,n[i++]=t>>>4&1,n[i++]=t>>>5&1,n[i++]=t>>>6&1,n[i++]=t>>>7&1,n[i++]=t>>>8&1,n[i++]=t>>>9&1,n[i++]=t>>>10&1,n[i++]=t>>>11&1,n[i++]=t>>>12&1,n[i++]=t>>>13&1,n[i++]=t>>>14&1,n[i++]=t>>>15&1,n[i++]=t>>>16&1,n[i++]=t>>>17&1,n[i++]=t>>>18&1,n[i++]=t>>>19&1,n[i++]=t>>>20&1,n[i++]=t>>>21&1,n[i++]=t>>>22&1,n[i++]=t>>>23&1,n[i++]=t>>>24&1,n[i++]=t>>>25&1,n[i++]=t>>>26&1,n[i++]=t>>>27&1,n[i++]=t>>>28&1,n[i++]=t>>>29&1,n[i++]=t>>>30&1,n[i++]=t>>>31&1;}}function Iy(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0;n[i++]=t>>>0&3,n[i++]=t>>>2&3,n[i++]=t>>>4&3,n[i++]=t>>>6&3,n[i++]=t>>>8&3,n[i++]=t>>>10&3,n[i++]=t>>>12&3,n[i++]=t>>>14&3,n[i++]=t>>>16&3,n[i++]=t>>>18&3,n[i++]=t>>>20&3,n[i++]=t>>>22&3,n[i++]=t>>>24&3,n[i++]=t>>>26&3,n[i++]=t>>>28&3,n[i++]=t>>>30&3,n[i++]=r>>>0&3,n[i++]=r>>>2&3,n[i++]=r>>>4&3,n[i++]=r>>>6&3,n[i++]=r>>>8&3,n[i++]=r>>>10&3,n[i++]=r>>>12&3,n[i++]=r>>>14&3,n[i++]=r>>>16&3,n[i++]=r>>>18&3,n[i++]=r>>>20&3,n[i++]=r>>>22&3,n[i++]=r>>>24&3,n[i++]=r>>>26&3,n[i++]=r>>>28&3,n[i++]=r>>>30&3;}}function Ly(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0;n[i++]=t>>>0&7,n[i++]=t>>>3&7,n[i++]=t>>>6&7,n[i++]=t>>>9&7,n[i++]=t>>>12&7,n[i++]=t>>>15&7,n[i++]=t>>>18&7,n[i++]=t>>>21&7,n[i++]=t>>>24&7,n[i++]=t>>>27&7,n[i++]=(t>>>30|(r&1)<<2)&7,n[i++]=r>>>1&7,n[i++]=r>>>4&7,n[i++]=r>>>7&7,n[i++]=r>>>10&7,n[i++]=r>>>13&7,n[i++]=r>>>16&7,n[i++]=r>>>19&7,n[i++]=r>>>22&7,n[i++]=r>>>25&7,n[i++]=r>>>28&7,n[i++]=(r>>>31|(o&3)<<1)&7,n[i++]=o>>>2&7,n[i++]=o>>>5&7,n[i++]=o>>>8&7,n[i++]=o>>>11&7,n[i++]=o>>>14&7,n[i++]=o>>>17&7,n[i++]=o>>>20&7,n[i++]=o>>>23&7,n[i++]=o>>>26&7,n[i++]=o>>>29&7;}}function Ry(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0;n[i++]=t>>>0&15,n[i++]=t>>>4&15,n[i++]=t>>>8&15,n[i++]=t>>>12&15,n[i++]=t>>>16&15,n[i++]=t>>>20&15,n[i++]=t>>>24&15,n[i++]=t>>>28&15,n[i++]=r>>>0&15,n[i++]=r>>>4&15,n[i++]=r>>>8&15,n[i++]=r>>>12&15,n[i++]=r>>>16&15,n[i++]=r>>>20&15,n[i++]=r>>>24&15,n[i++]=r>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15;}}function zy(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0;n[i++]=t>>>0&31,n[i++]=t>>>5&31,n[i++]=t>>>10&31,n[i++]=t>>>15&31,n[i++]=t>>>20&31,n[i++]=t>>>25&31,n[i++]=(t>>>30|(r&7)<<2)&31,n[i++]=r>>>3&31,n[i++]=r>>>8&31,n[i++]=r>>>13&31,n[i++]=r>>>18&31,n[i++]=r>>>23&31,n[i++]=(r>>>28|(o&1)<<4)&31,n[i++]=o>>>1&31,n[i++]=o>>>6&31,n[i++]=o>>>11&31,n[i++]=o>>>16&31,n[i++]=o>>>21&31,n[i++]=o>>>26&31,n[i++]=(o>>>31|(s&15)<<1)&31,n[i++]=s>>>4&31,n[i++]=s>>>9&31,n[i++]=s>>>14&31,n[i++]=s>>>19&31,n[i++]=s>>>24&31,n[i++]=(s>>>29|(c&3)<<3)&31,n[i++]=c>>>2&31,n[i++]=c>>>7&31,n[i++]=c>>>12&31,n[i++]=c>>>17&31,n[i++]=c>>>22&31,n[i++]=c>>>27&31;}}function By(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0;n[i++]=t>>>0&63,n[i++]=t>>>6&63,n[i++]=t>>>12&63,n[i++]=t>>>18&63,n[i++]=t>>>24&63,n[i++]=(t>>>30|(r&15)<<2)&63,n[i++]=r>>>4&63,n[i++]=r>>>10&63,n[i++]=r>>>16&63,n[i++]=r>>>22&63,n[i++]=(r>>>28|(o&3)<<4)&63,n[i++]=o>>>2&63,n[i++]=o>>>8&63,n[i++]=o>>>14&63,n[i++]=o>>>20&63,n[i++]=o>>>26&63,n[i++]=s>>>0&63,n[i++]=s>>>6&63,n[i++]=s>>>12&63,n[i++]=s>>>18&63,n[i++]=s>>>24&63,n[i++]=(s>>>30|(c&15)<<2)&63,n[i++]=c>>>4&63,n[i++]=c>>>10&63,n[i++]=c>>>16&63,n[i++]=c>>>22&63,n[i++]=(c>>>28|(l&3)<<4)&63,n[i++]=l>>>2&63,n[i++]=l>>>8&63,n[i++]=l>>>14&63,n[i++]=l>>>20&63,n[i++]=l>>>26&63;}}function Vy(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0;n[i++]=t>>>0&127,n[i++]=t>>>7&127,n[i++]=t>>>14&127,n[i++]=t>>>21&127,n[i++]=(t>>>28|(r&7)<<4)&127,n[i++]=r>>>3&127,n[i++]=r>>>10&127,n[i++]=r>>>17&127,n[i++]=r>>>24&127,n[i++]=(r>>>31|(o&63)<<1)&127,n[i++]=o>>>6&127,n[i++]=o>>>13&127,n[i++]=o>>>20&127,n[i++]=(o>>>27|(s&3)<<5)&127,n[i++]=s>>>2&127,n[i++]=s>>>9&127,n[i++]=s>>>16&127,n[i++]=s>>>23&127,n[i++]=(s>>>30|(c&31)<<2)&127,n[i++]=c>>>5&127,n[i++]=c>>>12&127,n[i++]=c>>>19&127,n[i++]=(c>>>26|(l&1)<<6)&127,n[i++]=l>>>1&127,n[i++]=l>>>8&127,n[i++]=l>>>15&127,n[i++]=l>>>22&127,n[i++]=(l>>>29|(u&15)<<3)&127,n[i++]=u>>>4&127,n[i++]=u>>>11&127,n[i++]=u>>>18&127,n[i++]=u>>>25&127;}}function Hy(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0,d=e[a++]>>>0;n[i++]=t>>>0&255,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=r>>>0&255,n[i++]=r>>>8&255,n[i++]=r>>>16&255,n[i++]=r>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255;}}function Uy(e,t,n,r){let i=r,a=t;for(let t=0;t<128;t++){let t=e[a++]>>>0;n[i++]=t&65535,n[i++]=t>>>16&65535;}}function Wy(e,t,n,r,i){let a=_y[i]>>>0,o=t,s=0,c=e[o]>>>0,l=r;for(let t=0;t<8;t++){for(let t=0;t<32;t++)if(s+i<=32){let r=c>>>s&a;n[l+t]=r|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let r=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=i-r,f=-1>>>32-d>>>0,p=(u|(c&f)<<r)&a;n[l+t]=p|0,s=d;}l+=32,s=0,t<7&&(c=e[o]>>>0);}}const Gy=xy(vy),Ky=3*Gy/256+Gy|0;function qy(){let e=new Uint8Array(Ky);return {dataToBePacked:Array(33),dataPointers:new Int32Array(33),byteContainer:e,byteContainerI32:new Int32Array(e.buffer,e.byteOffset,e.byteLength>>>2),exceptionSizes:new Int32Array(33)}}function Jy(e=16){if(e<0)throw RangeError(`initialEncodedWordCapacity must be >= 0, got ${e}`);let t=Math.max(16,e|0);return {encodedWords:new Uint32Array(t),decoderWorkspace:qy()}}function Yy(e,t){if(t<=e.encodedWords.length)return e.encodedWords;let n=new Uint32Array(Math.max(16,t*2));return e.encodedWords=n,n}function Xy(e,t,n,r){r.byteContainer.length<n&&(r.byteContainer=new Uint8Array(n*2),r.byteContainerI32=void 0);let i=r.byteContainer,a=n>>>2;if(i.byteOffset&3)for(let n=0;n<a;n=n+1|0){let r=e[t+n|0]|0,a=n<<2;i[a]=r&255,i[a+1|0]=r>>>8&255,i[a+2|0]=r>>>16&255,i[a+3|0]=r>>>24&255;}else {let n=r.byteContainerI32;(!n||n.buffer!==i.buffer||n.byteOffset!==i.byteOffset||n.length<a)&&(n=r.byteContainerI32=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>>2)),n.set(e.subarray(t,t+a));}let o=n&3;if(o>0){let n=e[t+a|0]|0,r=a<<2;for(let e=0;e<o;e=e+1|0)i[r+e|0]=n>>>(e<<3)&255;}return i}function Zy(e,t,n){let r=e[t++]|0,i=n.dataToBePacked;for(let a=2;a<=32;a=a+1|0){if(!(r>>>a-1&1))continue;if(t>=e.length)throw Error(`FastPFOR decode: truncated exception stream header (bitWidth=${a}, streamWordIndex=${t}, needWords=1, availableWords=${e.length-t}, encodedWords=${e.length})`);let o=e[t++]>>>0,s=by(o),c=o*a+31>>>5;if(t+c>e.length)throw Error(`FastPFOR decode: truncated exception stream (bitWidth=${a}, size=${o}, streamWordIndex=${t}, needWords=${c}, availableWords=${e.length-t}, encodedWords=${e.length})`);let l=i[a];(!l||l.length<s)&&(l=i[a]=new Uint32Array(s));let u=0;for(;u<o;u=u+32|0)sb(e,t,l,u,a),t=t+a|0;let d=u-o|0;t=t-(d*a>>>5)|0,n.exceptionSizes[a]=o;}return t}function Qy(e,t,n,r,i){switch(i){case 1:Fy(e,t,n,r);break;case 2:Iy(e,t,n,r);break;case 3:Ly(e,t,n,r);break;case 4:Ry(e,t,n,r);break;case 5:zy(e,t,n,r);break;case 6:By(e,t,n,r);break;case 7:Vy(e,t,n,r);break;case 8:Hy(e,t,n,r);break;case 16:Uy(e,t,n,r);break;default:Wy(e,t,n,r,i);}return t+(i<<3)|0}function $y(e,t,n,r){if(n+2>t)throw Error(`FastPFOR decode: byteContainer underflow at block=${r} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${n}, byteSize=${t})`);let i=e[n++],a=e[n++];if(i>32)throw Error(`FastPFOR decode: invalid bitWidth=${i} at block=${r} (expected 0..32). This likely indicates corrupted or truncated input.`);return {bitWidth:i,exceptionCount:a,bytePosIn:n}}function eb(e,t,n,r,i,a){if(n+1>t)throw Error(`FastPFOR decode: exception header underflow at block=${a} (need 1 byte for maxBits, bytePos=${n}, byteSize=${t})`);let o=e[n++];if(o<r||o>32)throw Error(`FastPFOR decode: invalid maxBits=${o} at block=${a} (bitWidth=${r}, expected ${r}..32)`);let s=o-r|0;if(s<1||s>32)throw Error(`FastPFOR decode: invalid exceptionBitWidth=${s} at block=${a} (bitWidth=${r}, maxBits=${o})`);if(n+i>t)throw Error(`FastPFOR decode: exception positions underflow at block=${a} (need=${i}, have=${t-n})`);return {maxBits:o,exceptionBitWidth:s,bytePosIn:n}}function tb(e,t,n,r,i,a,o,s,c){let{maxBits:l,exceptionBitWidth:u,bytePosIn:d}=eb(i,a,o,n,r,c);if(o=d,u===1){let a=1<<n;for(let n=0;n<r;n=n+1|0){let n=i[o++];e[n+t|0]|=a;}return o}let f=s.dataToBePacked[u];if(!f)throw Error(`FastPFOR decode: missing exception stream for exceptionBitWidth=${u} (bitWidth=${n}, maxBits=${l}) at block ${c}`);let p=s.dataPointers,m=p[u]|0,h=s.exceptionSizes[u]|0;if(m+r>h)throw Error(`FastPFOR decode: exception stream overflow for exceptionBitWidth=${u} (ptr=${m}, need ${r}, size=${h}) at block ${c}`);for(let a=0;a<r;a=a+1|0){let r=i[o++],a=f[m++]|0;e[r+t|0]|=a<<n;}return p[u]=m,o}function nb(e,t,n,r,i,a,o,s,c,l){let u=n|0,d=0;for(let t=0;t<o;t=t+1|0){let n=$y(s,c,d,t);d=n.bytePosIn;let r=n.bitWidth,o=n.exceptionCount,f=a+t*256|0;switch(r){case 0:i.fill(0,f,f+256);break;case 32:for(let t=0;t<256;t=t+1|0)i[f+t|0]=e[u+t|0]|0;u=u+256|0;break;default:u=Qy(e,u,i,f,r);}o>0&&(d=tb(i,f,r,o,s,c,d,l,t));}if(u!==r)throw Error(`FastPFOR decode: packed region mismatch (pageStart=${t}, packedStart=${n}, consumedPackedEnd=${u}, expectedPackedEnd=${r}, packedWords=${r-n}, encoded.length=${e.length})`)}function rb(e,t,n,r,i,a){let o=n|0,s=e[o]|0;if(s<=0||o+s>e.length-1)throw Error(`FastPFOR decode: invalid whereMeta=${s} at pageStart=${o} (expected > 0 and pageStart+whereMeta < encoded.length=${e.length})`);let c=o+1|0,l=o+s|0,u=e[l]>>>0,d=u+3>>>2,f=l+1,p=f+d;if(p>=e.length)throw Error(`FastPFOR decode: invalid byteSize=${u} (metaInts=${d}, pageStart=${o}, packedEnd=${l}, byteContainerStart=${f}) causes bitmapPos=${p} out of bounds (encoded.length=${e.length})`);let m=Xy(e,f,u,a),h=u,g=Zy(e,p,a);return a.dataPointers.fill(0),nb(e,o,c,l,t,r|0,i/256|0,m,h,a),g}function ib(e,t,n,r,i,a){let o=r+yy(i,256),s=r,c=n;for(;s!==o;){let n=Math.min(Gy,o-s);c=rb(e,t,c,s,n,a),s=s+n|0;}return c}function ab(e,t,n,r,i,a){if(a===0)return t;let o=0,s=t,c=t+n,l=i,u=i,d=i+a,f=0,p=0;for(;s<c&&u<d;){let t=e[s]>>>o&255;if(o+=8,s+=o>>>5,o&=31,f|=(t&127)<<p,t&128)r[u++]=f|0,f=0,p=0;else if(p+=7,p>28)throw Error(`FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${p}, partial=${f}, decoded=${u-l}/${a}, inPos=${s}, inEnd=${c})`)}if(u!==d)throw Error(`FastPFOR VByte: truncated stream (decoded=${u-l}, expected=${a}, consumedWords=${s-t}/${n}, vbyteStart=${t}, vbyteEnd=${c})`);return s}function ob(e,t,n){let r=0,i=0,a=new Uint32Array(t),o=n??qy();if(e.length>0){let t=e[r]|0;if(r=r+1|0,t&255)throw Error(`FastPFOR decode: invalid alignedLength=${t} (expected multiple of 256)`);if(i+t>a.length)throw Error(`FastPFOR decode: output buffer too small (outPos=${i}, alignedLength=${t}, out.length=${a.length})`);r=ib(e,a,r,i,t,o),i=i+t|0;}let s=e.length-r|0,c=t-i|0;return ab(e,r,s,a,i,c),a}function sb(e,t,n,r,i){switch(i){case 2:Cy(e,t,n,r);return;case 3:wy(e,t,n,r);return;case 4:Ty(e,t,n,r);return;case 5:Ey(e,t,n,r);return;case 6:Dy(e,t,n,r);return;case 7:Oy(e,t,n,r);return;case 8:ky(e,t,n,r);return;case 9:Ay(e,t,n,r);return;case 10:jy(e,t,n,r);return;case 11:My(e,t,n,r);return;case 12:Ny(e,t,n,r);return;case 16:Py(e,t,n,r);return;case 32:for(let i=0;i<32;i=i+1|0)n[r+i|0]=e[t+i|0]|0;return}let a=_y[i]>>>0,o=t,s=0,c=e[o]>>>0;for(let t=0;t<32;t++)if(s+i<=32){let l=c>>>s&a;n[r+t]=l|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let l=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=_y[i-l]>>>0,f=(u|(c&d)<<l)&a;n[r+t]=f|0,s=i-l;}}function cb(e,t,n,r){if(t<0||n<0||t+n>e.length)throw RangeError(`decodeBigEndianInt32sInto: out of bounds (offset=${t}, byteLength=${n}, bytes.length=${e.length})`);let i=Math.floor(n/4),a=n%4!=0,o=a?i+1:i;if(r.length<o)throw RangeError(`decodeBigEndianInt32sInto: out.length=${r.length} < ${o}`);if(i>0){let n=e.byteOffset+t;if(n&3)for(let n=0;n<i;n++){let i=t+n*4;r[n]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]|0;}else {let t=new Uint32Array(e.buffer,n,i);for(let e=0;e<i;e++)r[e]=Sy(t[e])|0;}}if(a){let a=t+i*4,o=n-i*4,s=0;for(let t=0;t<o;t++)s|=e[a+t]<<24-t*8;r[i]=s|0;}return o}function lb(e,t,n){let r=new Uint32Array(n),i=0,a=t.get();for(let t=0;t<r.length;t++){let t=e[a++],n=t&127;if(t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<7,t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<14,t<128){r[i++]=n;continue}if(t=e[a++],n|=(t&127)<<21,t<128){r[i++]=n;continue}t=e[a++],n|=(t&15)<<28,r[i++]=n;}return t.set(a),r}function ub(e,t,n){let r=new BigUint64Array(n);for(let n=0;n<r.length;n++)r[n]=db(e,t);return r}function db(e,t){let n=0n,r=0,i=t.get();for(;i<e.length;){let t=e[i++];if(n|=BigInt(t&127)<<BigInt(r),!(t&128))break;if(r+=7,r>=64)throw Error(`Varint too long`)}return t.set(i),n}function fb(e,t,n){let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=pb(e,t);return r}function pb(e,t){let n,r;return r=e[t.get()],t.increment(),n=r&127,r<128||(r=e[t.get()],t.increment(),n|=(r&127)<<7,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<14,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<21,r<128)?n:(r=e[t.get()],n|=(r&15)<<28,mb(n,e,t))}function mb(e,t,n){let r,i;if(i=t[n.get()],n.increment(),r=(i&112)>>4,i<128||(i=t[n.get()],n.increment(),r|=(i&127)<<3,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<10,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<17,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<24,i<128)||(i=t[n.get()],n.increment(),r|=(i&1)<<31,i<128))return r*4294967296+(e>>>0);throw Error(`Expected varint not more than 10 bytes`)}function hb(e,t,n,r){return gb(e,t,n,r,Jy(n>>>2))}function gb(e,t,n,r,i){let a=r.get();if(n&3)throw Error(`FastPFOR: invalid encodedByteLength=${n} at offset=${a} (encodedBytes.length=${e.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`);let o=n>>>2,s=Yy(i,o);cb(e,a,n,s);let c=ob(s.subarray(0,o),t,i.decoderWorkspace);return r.add(n),c}function Q$1(e){return e>>>1^-(e&1)}function _b(e){return e>>1n^-(e&1n)}function vb(e){return e%2==1?(e+1)/-2:e/2}function yb(e){let t=new Int32Array(e.length);for(let n=0;n<e.length;n++)t[n]=Q$1(e[n]);return t}function bb(e){let t=new BigInt64Array(e.length);for(let n=0;n<e.length;n++)t[n]=_b(e[n]);return t}function Sb(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Uint32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function Cb(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigUint64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function wb(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function Tb(e){let t=new Int32Array(e.length);t[0]=Q$1(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=Q$1(n)+t[r-1],t[r+1]=Q$1(i)+t[r],t[r+2]=Q$1(a)+t[r+1],t[r+3]=Q$1(o)+t[r+2];}for(;r!==e.length;++r)t[r]=Q$1(e[r])+t[r-1];return t}function Eb(e){let t=new BigInt64Array(e.length);t[0]=_b(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=_b(n)+t[r-1],t[r+1]=_b(i)+t[r],t[r+2]=_b(a)+t[r+1],t[r+3]=_b(o)+t[r+2];}for(;r!==t.length;++r)t[r]=_b(e[r])+t[r-1];return t}function Db(e){e[0]=vb(e[0]);let t=e.length/4*4,n=1;if(t>=4)for(;n<t-4;n+=4){let t=e[n],r=e[n+1],i=e[n+2],a=e[n+3];e[n]=vb(t)+e[n-1],e[n+1]=vb(r)+e[n],e[n+2]=vb(i)+e[n+1],e[n+3]=vb(a)+e[n+2];}for(;n!==e.length;++n)e[n]=vb(e[n])+e[n-1];}function Ob(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Int32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=Q$1(o),r.fill(o,i,i+a),i+=a;}return r}function kb(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigInt64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];o=_b(o),r.fill(o,i,i+a),i+=a;}return r}function Ab(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=vb(o),r.fill(o,i,i+a),i+=a;}return r}function jb(e){let t=e.length/4*4,n=1;if(t>=4)for(let r=e[0];n<t-4;n+=4)r=e[n]+=r,r=e[n+1]+=r,r=e[n+2]+=r,r=e[n+3]+=r;for(;n!==e.length;)e[n]+=e[n-1],++n;}function Mb(e){let t=0;for(let n=0;n<e.length;n++)e[n]+=t,t=e[n];}function Nb(e){if(e.length<2)return new Int32Array(e);let t=new Int32Array(e.length);t[0]=Q$1(e[0]),t[1]=Q$1(e[1]);let n=e.length/4*4,r=2;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=Q$1(n)+t[r-2],t[r+1]=Q$1(i)+t[r-1],t[r+2]=Q$1(a)+t[r],t[r+3]=Q$1(o)+t[r+1];}for(;r!==e.length;r+=2)t[r]=Q$1(e[r])+t[r-2],t[r+1]=Q$1(e[r+1])+t[r-1];return t}function Ib(e){let t=new Int32Array(e.length+1);t[0]=0,t[1]=Q$1(e[0]);let n=t[1];for(let r=2;r!==t.length;++r){let i=e[r-1],a=Q$1(i);n+=a,t[r]=t[r-1]+n;}return new Uint32Array(t)}function Lb(e,t,n){let r=new Int32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];s=Q$1(s);for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function Rb(e,t,n){let r=new Uint32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function zb(e,t,n){let r=new Int32Array(n),i=0,a=0;for(let n=0;n<t;n++){let o=e[n],s=e[n+t],c=Q$1(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function Bb(e,t,n){let r=new BigInt64Array(n),i=0,a=0n;for(let n=0;n<t;n++){let o=Number(e[n]),s=e[n+t],c=_b(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function Vb(e){let t=new Uint32Array(e.length);t[0]=Q$1(e[0])>>>0;for(let n=1;n<e.length;n++)t[n]=t[n-1]+Q$1(e[n])>>>0;return t}function Hb(e){let t=new BigUint64Array(e.length);t[0]=BigInt.asUintN(64,_b(e[0]));for(let n=1;n<e.length;n++)t[n]=BigInt.asUintN(64,t[n-1]+_b(e[n]));return t}function Ub(e){if(e.length<2)return new Uint32Array(e);let t=new Uint32Array(e.length);t[0]=Q$1(e[0])>>>0,t[1]=Q$1(e[1])>>>0;for(let n=2;n<e.length;n+=2)t[n]=t[n-2]+Q$1(e[n])>>>0,t[n+1]=t[n-1]+Q$1(e[n+1])>>>0;return t}function Gb(e){return e[1]}function Kb(e){return Q$1(e[1])}function qb(e){if(e.length===2){let t=Q$1(e[1]);return [t,t]}return [Q$1(e[2]),Q$1(e[3])]}function Jb(e){return e[1]}function Yb(e){return _b(e[1])}function Xb(e){if(e.length===2){let t=_b(e[1]);return [t,t]}return [_b(e[2]),_b(e[3])]}var Zb;(function(e){e.PRESENT=`PRESENT`,e.DATA=`DATA`,e.OFFSET=`OFFSET`,e.LENGTH=`LENGTH`;})(Zb||={});var Qb;(function(e){e.NONE=`NONE`,e.SINGLE=`SINGLE`,e.SHARED=`SHARED`,e.VERTEX=`VERTEX`,e.MORTON=`MORTON`,e.FSST=`FSST`;})(Qb||={});var $b;(function(e){e.VERTEX=`VERTEX`,e.INDEX=`INDEX`,e.STRING=`STRING`,e.KEY=`KEY`;})($b||={});var ex;(function(e){e.VAR_BINARY=`VAR_BINARY`,e.GEOMETRIES=`GEOMETRIES`,e.PARTS=`PARTS`,e.RINGS=`RINGS`,e.TRIANGLES=`TRIANGLES`,e.SYMBOL=`SYMBOL`,e.DICTIONARY=`DICTIONARY`;})(ex||={});const tx=[Zb.PRESENT,Zb.DATA,Zb.OFFSET,Zb.LENGTH],nx=[Z$1.NONE,Z$1.DELTA,Z$1.COMPONENTWISE_DELTA,Z$1.RLE,Z$1.MORTON,Z$1.PDE],rx=[hy.NONE,hy.FAST_PFOR,hy.VARINT],ix=[Qb.NONE,Qb.SINGLE,Qb.SHARED,Qb.VERTEX,Qb.MORTON,Qb.FSST],ax=[$b.VERTEX,$b.INDEX,$b.STRING,$b.KEY],ox=[ex.VAR_BINARY,ex.GEOMETRIES,ex.PARTS,ex.RINGS,ex.TRIANGLES,ex.SYMBOL,ex.DICTIONARY];function sx(e,t){let n=ux(e,t);return n.logicalLevelTechnique1===Z$1.MORTON?cx(n,e,t):(Z$1.RLE===n.logicalLevelTechnique1||Z$1.RLE===n.logicalLevelTechnique2)&&hy.NONE!==n.physicalLevelTechnique?lx(n,e,t):n}function cx(e,t,n){let r=lb(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:e.decompressedCount,numBits:r[0],coordinateShift:r[1]}}function lx(e,t,n){let r=lb(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:r[1],runs:r[0],numRleValues:r[1]}}function ux(e,t){let n=e[t.get()],r=tx[n>>4],i={};switch(r){case Zb.DATA:i={dictionaryType:ix[n&15]};break;case Zb.OFFSET:i={offsetType:ax[n&15]};break;case Zb.LENGTH:i={lengthType:ox[n&15]};}t.increment();let a=e[t.get()],o=nx[a>>5],s=nx[a>>2&7],c=rx[a&3];t.increment();let l=lb(e,t,2),u=l[0],d=l[1];return {physicalStreamType:r,logicalStreamType:i,logicalLevelTechnique1:o,logicalLevelTechnique2:s,physicalLevelTechnique:c,numValues:u,byteLength:d,decompressedCount:u}}var $$1;(function(e){e[e.FLAT=0]=`FLAT`,e[e.CONST=1]=`CONST`,e[e.SEQUENCE=2]=`SEQUENCE`,e[e.DICTIONARY=3]=`DICTIONARY`,e[e.FSST_DICTIONARY=4]=`FSST_DICTIONARY`;})($$1||={});var dx=class{constructor(e,t){this.values=e,this._size=t;}get(e){let t=Math.floor(e/8),n=e%8;return (this.values[t]>>n&1)==1}set(e,t){let n=Math.floor(e/8),r=e%8;this.values[n]=this.values[n]|+!!t<<r;}getInt(e){let t=Math.floor(e/8),n=e%8;return this.values[t]>>n&1}size(){return this._size}getBuffer(){return this.values}};function fx(e,t,n){if(!t)return e;let r=t.size(),i=e.constructor,a=new i(r),o=0;for(let i=0;i<r;i++)a[i]=t.get(i)?e[o++]:n;return a}function px(e,t,n){if(!n)return e;let r=n.size(),i=new dx(e,t),a=new dx(new Uint8Array(Math.ceil(r/8)),r),o=0;for(let e=0;e<r;e++){let t=n.get(e)?i.get(o++):false;a.set(e,t);}return a.getBuffer()}function mx(e,t,n,r,i){return Dx(_x(e,t,n),n,r,i)}function hx(e,t,n,r,i){return Ox(_x(e,t,n),n,r,i)}function gx(e,t,n){return Mx(_x(e,t,n),n)}function _x(e,t,n){let r=n.physicalLevelTechnique;switch(r){case hy.FAST_PFOR:return hb(e,n.numValues,n.byteLength,t);case hy.VARINT:return lb(e,t,n.numValues);case hy.NONE:{let r=t.get(),i=n.byteLength;t.add(i);let a=e.subarray(r,t.get());return new Uint32Array(a)}default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function vx(e,t,n){let r=_x(e,t,n);return r.length===1?Q$1(r[0]):Kb(r)}function yx(e,t,n){let r=_x(e,t,n);return r.length===1?n.logicalLevelTechnique1===Z$1.DELTA?Q$1(r[0]):r[0]:Gb(r)}function bx(e,t,n){return qb(_x(e,t,n))}function xx(e,t,n){return Xb(ub(e,t,n.numValues))}function Sx(e,t,n,r){return kx(ub(e,t,n.numValues),n,r)}function Cx(e,t,n,r){return Ax(ub(e,t,n.numValues),n,r)}function wx(e,t,n){return jx(fb(e,t,n.numValues),n,false)}function Tx(e,t,n){let r=ub(e,t,n.numValues);return r.length===1?_b(r[0]):Yb(r)}function Ex(e,t,n){let r=ub(e,t,n.numValues);return r.length===1?n.logicalLevelTechnique1===Z$1.DELTA?_b(r[0]):r[0]:Jb(r)}function Dx(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case Z$1.DELTA:if(t.logicalLevelTechnique2===Z$1.RLE){let n=t;if(!r)return zb(e,n.runs,n.numRleValues);e=Sb(e,n.runs,n.numRleValues),i=Tb(e);}else i=Tb(e);break;case Z$1.RLE:i=Ob(e,t.runs,t.numRleValues);break;case Z$1.MORTON:jb(e),i=new Int32Array(e);break;case Z$1.COMPONENTWISE_DELTA:i=Nb(e);break;case Z$1.NONE:i=yb(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?fx(i,r,0):i}function Ox(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case Z$1.DELTA:if(t.logicalLevelTechnique2===Z$1.RLE){let n=t;i=Vb(Sb(e,n.runs,n.numRleValues));}else i=Vb(e);break;case Z$1.RLE:i=Sb(e,t.runs,t.numRleValues);break;case Z$1.MORTON:jb(e),i=e;break;case Z$1.COMPONENTWISE_DELTA:i=Ub(e);break;case Z$1.NONE:i=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?fx(i,r,0):i}function kx(e,t,n){let r;switch(t.logicalLevelTechnique1){case Z$1.DELTA:if(t.logicalLevelTechnique2===Z$1.RLE){let i=t;if(!n)return Bb(e,i.runs,i.numRleValues);e=Cb(e,i.runs,i.numRleValues),r=Eb(e);}else r=Eb(e);break;case Z$1.RLE:r=kb(e,t.runs,t.numRleValues);break;case Z$1.NONE:r=bb(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?fx(r,n,0n):r}function Ax(e,t,n){let r;switch(t.logicalLevelTechnique1){case Z$1.DELTA:if(t.logicalLevelTechnique2===Z$1.RLE){let n=t;r=Hb(Cb(e,n.runs,n.numRleValues));}else r=Hb(e);break;case Z$1.RLE:r=Cb(e,t.runs,t.numRleValues);break;case Z$1.NONE:r=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?fx(r,n,0n):r}function jx(e,t,n){switch(t.logicalLevelTechnique1){case Z$1.DELTA:if(t.logicalLevelTechnique2===Z$1.RLE){let n=t;e=wb(e,n.runs,n.numRleValues);}return Db(e),e;case Z$1.RLE:return Fx(e,t,n);case Z$1.NONE:return e;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}}function Mx(e,t){if(t.logicalLevelTechnique1===Z$1.DELTA&&t.logicalLevelTechnique2===Z$1.NONE)return Ib(e);if(t.logicalLevelTechnique1===Z$1.RLE&&t.logicalLevelTechnique2===Z$1.NONE){let n=t;return Rb(e,n.runs,n.numRleValues)}if(t.logicalLevelTechnique1===Z$1.NONE&&t.logicalLevelTechnique2===Z$1.NONE){Mb(e);let n=new Uint32Array(t.numValues+1);return n[0]=0,n.set(e,1),n}if(t.logicalLevelTechnique1===Z$1.DELTA&&t.logicalLevelTechnique2===Z$1.RLE){let n=t,r=Lb(e,n.runs,n.numRleValues);return jb(r),new Uint32Array(r)}throw Error(`Only delta encoding is supported for transforming length to offset streams yet.`)}function Nx(e,t,n,r,i=`int32`){let a=e.logicalLevelTechnique1;if(a===Z$1.RLE)return e.runs===1?$$1.CONST:$$1.FLAT;if(a!==Z$1.DELTA||e.logicalLevelTechnique2!==Z$1.RLE)return e.numValues===1?$$1.CONST:$$1.FLAT;let o=t instanceof dx?t.size():t,s=e;if(s.numRleValues!==o)return $$1.FLAT;if(s.runs===1)return $$1.SEQUENCE;if(s.runs!==2)return e.numValues===1?$$1.CONST:$$1.FLAT;let c=r.get();if(e.physicalLevelTechnique===hy.VARINT)return Px(n,r,i)?$$1.SEQUENCE:e.numValues===1?$$1.CONST:$$1.FLAT;let l=r.get(),u=new Int32Array(n.buffer,n.byteOffset+l,4);return r.set(c),u[2]===2&&u[3]===2?$$1.SEQUENCE:e.numValues===1?$$1.CONST:$$1.FLAT}function Px(e,t,n){let r=new my(t.get());if(n===`int64`){let t=ub(e,r,4);return t[2]===2n&&t[3]===2n}let i=lb(e,r,4);return i[2]===2&&i[3]===2}function Fx(e,t,n){return n?Ab(e,t.runs,t.numRleValues):wb(e,t.runs,t.numRleValues)}var Ix=class extends iy{getValueFromBuffer(e){return this.dataBuffer[e]}},Lx=class extends sy{constructor(e,t,n,r){super(e,BigInt64Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}};function Rx(e,t,n){return {x:zx(e,t)-n,y:zx(e>>1,t)-n}}function zx(e,t){let n=0;for(let r=0;r<t;r++)n|=(e&1<<2*r)>>r;return n}var Bx;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`,e[e.MULTIPOINT=3]=`MULTIPOINT`,e[e.MULTILINESTRING=4]=`MULTILINESTRING`,e[e.MULTIPOLYGON=5]=`MULTIPOLYGON`;})(Bx||={});var Vx;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`;})(Vx||={});var Hx;(function(e){e[e.MORTON=0]=`MORTON`,e[e.VEC_2=1]=`VEC_2`,e[e.VEC_3=2]=`VEC_3`;})(Hx||={});function Ux(e){let t=Array(e.numGeometries),n=1,r=1,i=1,a=0,o=0,s=0,c=e.mortonSettings,u=e.topologyVector,d=u.geometryOffsets,f=u.partOffsets,p=u.ringOffsets,m=e.vertexOffsets,h=!m||m.length===0,g=e.containsPolygonGeometry(),_=e.vertexBuffer;for(let u=0;u<e.numGeometries;u++){let v=e.geometryType(u);switch(v){case Bx.POINT:{let u,g;if(h)u=_[o++],g=_[o++];else if(e.vertexBufferType===Hx.MORTON){let e=_[m[s++]],t=Rx(e,c.numBits,c.coordinateShift);u=t.x,g=t.y;}else {let e=m[s++]*2;u=_[e],g=_[e+1];}t[a++]=[[new l(u,g)]],d&&i++,f&&n++,p&&r++;}break;case Bx.MULTIPOINT:{let e=d[i]-d[i-1];i++;let c=Array(e);if(h)for(let t=0;t<e;t++){let e=_[o++],n=_[o++];c[t]=new l(e,n);}else for(let t=0;t<e;t++){let e=m[s++]*2,n=_[e],r=_[e+1];c[t]=new l(n,r);}t[a++]=c.map(e=>[e]),n+=e,r+=e;}break;case Bx.LINESTRING:{let l;g?(l=p[r]-p[r-1],r++):l=f[n]-f[n-1],n++;let u;h?(u=Gx(_,o,l,false),o+=l*2):(u=Wx(e.vertexBufferType,_,m,s,l,false,c),s+=l),t[a++]=[u],d&&i++;}break;case Bx.POLYGON:{let l=f[n]-f[n-1];n++;let u=Array(l-1),g,v=p[r]-p[r-1];if(r++,h){g=Gx(_,o,v,true),o+=v*2;for(let e=0;e<u.length;e++)v=p[r]-p[r-1],r++,u[e]=Gx(_,o,v,true),o+=v*2;}else {g=Wx(e.vertexBufferType,_,m,s,v,true,c),s+=v;for(let t=0;t<u.length;t++)v=p[r]-p[r-1],r++,u[t]=Wx(e.vertexBufferType,_,m,s,v,true,c),s+=v;}t[a++]=[g].concat(u),d&&i++;}break;case Bx.MULTILINESTRING:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i;if(g?(i=p[r]-p[r-1],r++):i=f[n]-f[n-1],n++,h)u[t]=Gx(_,o,i,false),o+=i*2;else {let n=Wx(e.vertexBufferType,_,m,s,i,false,c);u[t]=n,s+=i;}}t[a++]=u;}break;case Bx.MULTIPOLYGON:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i=f[n]-f[n-1];n++;let a,l=Array(i-1),d=p[r]-p[r-1];r++,h?(a=Gx(_,o,d,true),o+=d*2):(a=Wx(e.vertexBufferType,_,m,s,d,true,c),s+=d);for(let t=0;t<l.length;t++){let n=p[r]-p[r-1];r++,h?(l[t]=Gx(_,o,n,true),o+=n*2):(l[t]=Wx(e.vertexBufferType,_,m,s,n,true,c),s+=n);}u[t]=[a].concat(l);}t[a++]=u.flat();}break;default:throw Error(`The specified geometry type (${v}) is currently not supported.`)}}return t}function Wx(e,t,n,r,i,a,o){return e===Hx.MORTON?qx(t,n,r,i,a,o):Kx(t,n,r,i,a)}function Gx(e,t,n,r){let i=Array(r?n+1:n);for(let r=0;r<n*2;r+=2){let n=e[t+r],a=e[t+r+1];i[r/2]=new l(n,a);}return r&&(i[i.length-1]=i[0]),i}function Kx(e,t,n,r,i){let a=Array(i?r+1:r);for(let i=0;i<r*2;i+=2){let r=t[n+i/2]*2,o=e[r],s=e[r+1];a[i/2]=new l(o,s);}return i&&(a[a.length-1]=a[0]),a}function qx(e,t,n,r,i,a){let o=Array(i?r+1:r);for(let i=0;i<r;i++){let r=e[t[n+i]],s=Rx(r,a.numBits,a.coordinateShift);o[i]=new l(s.x,s.y);}return i&&(o[o.length-1]=o[0]),o}var Jx=class{constructor(e,t,n,r,i){this._vertexBufferType=e,this._topologyVector=t,this._vertexOffsets=n,this._vertexBuffer=r,this._mortonSettings=i;}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}getSimpleEncodedVertex(e){let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){let t=this.vertexOffsets[e],n=this.vertexBuffer[t],r=Rx(n,this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return [r.x,r.y]}let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getGeometries(){return Ux(this)}get mortonSettings(){return this._mortonSettings}};function Yx(e,t,n,r,i){return new Zx(e,t,Hx.VEC_2,n,r,i)}function Xx(e,t,n,r,i,a){return new Zx(e,t,Hx.MORTON,n,r,i,a)}var Zx=class extends Jx{constructor(e,t,n,r,i,a,o){super(n,r,i,a,o),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===Bx.POLYGON||this._geometryType===Bx.MULTIPOLYGON}containsSingleGeometryType(){return true}};function Qx(e,t,n,r){return new eS(Hx.VEC_2,e,t,n,r)}function $x(e,t,n,r,i){return new eS(Hx.MORTON,e,t,n,r,i)}var eS=class extends Jx{constructor(e,t,n,r,i,a){super(e,n,r,i,a),this._geometryTypes=t;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===Bx.POLYGON||this.geometryType(e)===Bx.MULTIPOLYGON)return true;return false}containsSingleGeometryType(){return false}},tS=class{constructor(e,t,n,r){this._triangleOffsets=e,this._indexBuffer=t,this._vertexBuffer=n,this._topologyVector=r;}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw Error(`Cannot convert GpuVector to coordinates without topology information`);let e=Array(this.numGeometries),t=this._topologyVector,n=t.partOffsets,r=t.ringOffsets,i=t.geometryOffsets,a=0,o=1,s=1,c=1;for(let t=0;t<this.numGeometries;t++)switch(this.geometryType(t)){case Bx.POLYGON:{let u=n[o]-n[o-1];o++;let d=[];for(let e=0;e<u;e++){let e=r[s]-r[s-1];s++;let t=[];for(let n=0;n<e;n++){let e=this._vertexBuffer[a++],n=this._vertexBuffer[a++];t.push(new l(e,n));}t.length>0&&t.push(t[0]),d.push(t);}e[t]=d,i&&c++;}break;case Bx.MULTIPOLYGON:{let u=i[c]-i[c-1];c++;let d=[];for(let e=0;e<u;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++){let e=r[s]-r[s-1];s++;let t=[];for(let n=0;n<e;n++){let e=this._vertexBuffer[a++],n=this._vertexBuffer[a++];t.push(new l(e,n));}t.length>0&&t.push(t[0]),d.push(t);}}e[t]=d;}}return e}[Symbol.iterator](){return null}};function nS(e,t,n,r,i,a){return new rS(e,t,n,r,i,a)}var rS=class extends tS{constructor(e,t,n,r,i,a){super(n,r,i,a),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return true}};function iS(e,t,n,r,i){return new aS(e,t,n,r,i)}var aS=class extends tS{constructor(e,t,n,r,i){super(t,n,r,i),this._geometryTypes=e;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return false}};function oS(e,t,n,r,i){let a=sx(e,n),o=Nx(a,r,e,n),s,c,l,u;if(o===$$1.CONST){let o=yx(e,n,a),d,f,p,m;for(let r=0;r<t-1;r++){let t=sx(e,n);switch(t.physicalStreamType){case Zb.LENGTH:switch(t.logicalStreamType.lengthType){case ex.GEOMETRIES:d=gx(e,n,t);break;case ex.PARTS:f=gx(e,n,t);break;case ex.RINGS:p=gx(e,n,t);break;case ex.TRIANGLES:m=gx(e,n,t);}break;case Zb.OFFSET:switch(t.logicalStreamType.offsetType){case $b.VERTEX:s=hx(e,n,t);break;case $b.INDEX:u=hx(e,n,t);}break;case Zb.DATA:if(Qb.VERTEX===t.logicalStreamType.dictionaryType)c=mx(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=hx(e,n,t,i);}}}return u?d!==void 0||f!==void 0?nS(r,o,m,u,c,{geometryOffsets:d,partOffsets:f,ringOffsets:p}):nS(r,o,m,u,c):l===void 0?Yx(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c):Xx(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c,l)}let d=hx(e,n,a),f,p,m,h;for(let r=0;r<t-1;r++){let t=sx(e,n);switch(t.physicalStreamType){case Zb.LENGTH:switch(t.logicalStreamType.lengthType){case ex.GEOMETRIES:f=hx(e,n,t);break;case ex.PARTS:p=hx(e,n,t);break;case ex.RINGS:m=hx(e,n,t);break;case ex.TRIANGLES:h=gx(e,n,t);}break;case Zb.OFFSET:switch(t.logicalStreamType.offsetType){case $b.VERTEX:s=hx(e,n,t);break;case $b.INDEX:u=hx(e,n,t);}break;case Zb.DATA:if(Qb.VERTEX===t.logicalStreamType.dictionaryType)c=mx(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=hx(e,n,t,i);}}}let g,_,v;return f?(g=sS(d,f,2),p&&m?(_=cS(d,g,p,false),v=uS(d,g,_,m)):p&&(_=lS(d,g,p))):p&&m?(_=sS(d,p,1),v=cS(d,_,m,true)):p&&(_=sS(d,p,0)),u&&!_?iS(d,h,u,c):u?iS(d,h,u,c,{geometryOffsets:g,partOffsets:_,ringOffsets:v}):l===void 0?Qx(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c):$x(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c,l)}function sS(e,t,n){let r=new Uint32Array(e.length+1),i=0;r[0]=i;let a=0;for(let o=0;o<e.length;o++)i=r[o+1]=i+(e[o]>n?t[a++]:1);return r}function cS(e,t,n,r){let i=new Uint32Array(t[t.length-1]+1),a=0;i[0]=a;let o=1,s=0;for(let c=0;c<e.length;c++){let l=e[c],u=t[c+1]-t[c];if(l===5||l===2||r&&(l===4||l===1))for(let e=0;e<u;e++)a=i[o++]=a+n[s++];else for(let e=0;e<u;e++)i[o++]=++a;}return i}function lS(e,t,n){let r=new Uint32Array(t[t.length-1]+1),i=0;r[0]=i;let a=1,o=0;for(let s=0;s<e.length;s++){let c=e[s],l=t[s+1]-t[s];if(c===4||c===1)for(let e=0;e<l;e++)i=r[a++]=i+n[o++];else for(let e=0;e<l;e++)r[a++]=++i;}return r}function uS(e,t,n,r){let i=new Uint32Array(n[n.length-1]+1),a=0;i[0]=a;let o=1,s=1,c=0;for(let l=0;l<e.length;l++){let u=e[l],d=t[l+1]-t[l];if(u!==0&&u!==3)for(let e=0;e<d;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++)a=i[s++]=a+r[c++];}else for(let e=0;e<d;e++)i[s++]=++a,o++;}return i}var dS=class extends ry{constructor(e,t,n){super(e,t.getBuffer(),n),this.dataVector=t;}getValueFromBuffer(e){return this.dataVector.get(e)}},fS=class extends iy{getValueFromBuffer(e){return this.dataBuffer[e]}},pS=class extends ry{constructor(e,t,n,r){super(e,r?BigInt64Array.of(t):BigUint64Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}};function hS(e,t,n,r,i){let a=gS(e,Math.ceil(t/8),n,r);return i?px(a,t,i):a}function gS(e,t,n,r){let i=new Uint8Array(t),a=0,o=r.get()+n;for(;a<t&&!(r.get()>=o);){let n=e[r.increment()];if(n<=127){let o=n+3,s=e[r.increment()],c=Math.min(a+o,t);i.fill(s,a,c),a=c;}else {let o=256-n;for(let n=0;n<o&&a<t;n++)i[a++]=e[r.increment()];}}return r.set(o),i}function _S(e,t,n,r){let i=t.get(),a=i+n*Float32Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float32Array(o);return t.set(a),r?fx(s,r,0):s}function vS(e,t,n,r){let i=t.get(),a=i+n*Float64Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float64Array(o);return t.set(a),r?fx(s,r,0):s}const yS=new TextDecoder;function bS(e,t,n){return n-t>=12?yS.decode(e.subarray(t,n)):xS(e,t,n)}function xS(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}var SS=class extends ry{constructor(e,t,n,r){super(e,n,r),this.offsetBuffer=t;}},CS=class extends SS{constructor(e,t,n,r){super(e,t,n,r??t.length-1);}getValueFromBuffer(e){let t=this.offsetBuffer[e],n=this.offsetBuffer[e+1];return bS(this.dataBuffer,t,n)}},wS=class extends SS{constructor(e,t,n,r,i){super(e,n,r,i??t.length),this.indexBuffer=t,this.indexBuffer=t;}getValueFromBuffer(e){let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return bS(this.dataBuffer,n,r)}};function TS(e,t,n){let r=[],i=Array(t.length).fill(0);for(let e=1;e<t.length;e++)i[e]=i[e-1]+t[e-1];for(let a=0;a<n.length;a++)if(n[a]===255)r.push(n[++a]);else {let o=t[n[a]],s=i[n[a]];for(let t=0;t<o;t++)r.push(e[s+t]);}return new Uint8Array(r)}var ES=class extends SS{constructor(e,t,n,r,i,a,o){super(e,n,r,o??t.length),this.indexBuffer=t,this.symbolOffsetBuffer=i,this.symbolTableBuffer=a;}getValueFromBuffer(e){this.decodedDictionary??=(this.symbolLengthBuffer??=this.offsetToLengthBuffer(this.symbolOffsetBuffer),TS(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer));let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return bS(this.decodedDictionary,n,r)}offsetToLengthBuffer(e){let t=new Uint32Array(e.length-1),n=e[0];for(let r=1;r<e.length;r++){let i=e[r];t[r-1]=i-n,n=i;}return t}};function DS(e,t,n,r,i){let a=null,o=null,s=null,c=null,l=null,u=i??null,d=null,f=null;for(let e=0;e<r;e++){let e=sx(t,n);switch(e.physicalStreamType){case Zb.PRESENT:{let r=new dx(hS(t,e.numValues,e.byteLength,n),e.numValues);u=i??r;break}case Zb.OFFSET:o=hx(t,n,e,void 0,u);break;case Zb.LENGTH:{let r=gx(t,n,e);ex.DICTIONARY===e.logicalStreamType.lengthType?a=r:ex.SYMBOL===e.logicalStreamType.lengthType?c=r:d=r;break}case Zb.DATA:{let r=t.subarray(n.get(),n.get()+e.byteLength);n.add(e.byteLength);let i=e.logicalStreamType.dictionaryType;Qb.FSST===i?l=r:Qb.SINGLE===i||Qb.SHARED===i?s=r:Qb.NONE===i&&(f=r);break}}}return OS(e,l,o,a,s,c,u)??kS(e,s,o,a,u)??AS(e,d,f,o,u)}function OS(e,t,n,r,i,a,o){return t?new ES(e,n,r,i,a,t,o):null}function kS(e,t,n,r,i){return t?i?new wS(e,n,r,t,i):new wS(e,n,r,t):null}function AS(e,t,n,r,i){if(!t||!n)return null;if(r)return i?new wS(e,r,t,n,i):new wS(e,r,t,n);if(i&&i.size()!==t.length-1){let r=new Uint32Array(i.size()),a=0;for(let e=0;e<i.size();e++)i.get(e)?r[e]=a++:r[e]=0;return new wS(e,r,t,n,i)}return i?new CS(e,t,n,i):new CS(e,t,n)}function jS(e,t,n,r){let i=null,a=null,o=null,s=null,c=false;for(;!c;){let n=sx(e,t);switch(n.physicalStreamType){case Zb.LENGTH:ex.DICTIONARY===n.logicalStreamType.lengthType?i=gx(e,t,n):o=gx(e,t,n);break;case Zb.DATA:Qb.SINGLE===n.logicalStreamType.dictionaryType||Qb.SHARED===n.logicalStreamType.dictionaryType?(a=e.subarray(t.get(),t.get()+n.byteLength),c=true):s=e.subarray(t.get(),t.get()+n.byteLength),t.add(n.byteLength);}}let l=n.complexType.children,u=[],d=0;for(let c of l){let l=lb(e,t,1)[0];if(l===0)continue;let f=c.name?`${n.name}${c.name}`:n.name;if(c.type!==`scalarField`||c.scalarField.physicalType!==X$1.STRING)throw Error(`Currently only scalar string fields are implemented for a struct.`);if(l>1&&!c.nullable||l===1&&c.nullable)throw Error(`The number of streams for the child field ${c.name} does not match its nullability. nullibilty: ${c.nullable}, numStreams: ${l}`);let p;if(c.nullable){let n=sx(e,t);p=new dx(hS(e,n.numValues,n.byteLength,t),n.numValues);}let m=hx(e,t,sx(e,t),void 0,p);u[d++]=s?new ES(f,m,i,a,o,s,p):new wS(f,m,i,a,p);}return u}function MS(e,t,n,r,i,a){return n.type===`scalarType`?NS(r,e,t,i,n.scalarType,n):r===0?null:jS(e,t,n)}function NS(e,t,n,r,i,a){let o=null;if(e===0)return null;if(a.nullable){let e=sx(t,n),r=e.numValues,i=n.get(),a=hS(t,r,e.byteLength,n);n.set(i+e.byteLength),o=new dx(a,e.numValues);}let s=o??r;switch(i.physicalType){case X$1.UINT_32:case X$1.INT_32:return RS(t,n,a,i,s);case X$1.STRING:{let r=a.nullable?e-1:e;return DS(a.name,t,n,r,o)}case X$1.BOOLEAN:return PS(t,n,a,r,s);case X$1.UINT_64:case X$1.INT_64:return LS(t,n,a,s,i);case X$1.FLOAT:return FS(t,n,a,s);case X$1.DOUBLE:return IS(t,n,a,s);default:throw Error(`The specified data type for the field is currently not supported: ${i}`)}}function PS(e,t,n,r,i){let a=sx(e,t),o=a.numValues,s=t.get(),c=zS(i)?i:void 0,l=hS(e,o,a.byteLength,t,c);t.set(s+a.byteLength);let u=new dx(l,o);return new dS(n.name,u,i)}function FS(e,t,n,r){let i=sx(e,t),a=zS(r)?r:void 0,o=_S(e,t,i.numValues,a);return new fS(n.name,o,r)}function IS(e,t,n,r){let i=sx(e,t),a=zS(r)?r:void 0,o=vS(e,t,i.numValues,a);return new oy(n.name,o,r)}function LS(e,t,n,r,i){let a=sx(e,t),o=Nx(a,r,e,t,`int64`),s=i.physicalType===X$1.INT_64;if(o===$$1.FLAT){let i=zS(r)?r:void 0,o=s?Sx(e,t,a,i):Cx(e,t,a,i);return new Ix(n.name,o,r)}if(o===$$1.SEQUENCE){let r=xx(e,t,a);return new Lx(n.name,r[0],r[1],a.numRleValues)}let c=s?Tx(e,t,a):Ex(e,t,a);return new pS(n.name,c,r,s)}function RS(e,t,n,r,i){let a=sx(e,t),o=Nx(a,i,e,t),s=r.physicalType===X$1.INT_32;if(o===$$1.FLAT){let r=zS(i)?i:void 0,o=s?mx(e,t,a,void 0,r):hx(e,t,a,void 0,r);return new ay(n.name,o,i)}if(o===$$1.SEQUENCE){let r=bx(e,t,a);return new cy(n.name,r[0],r[1],a.numRleValues)}let c=s?vx(e,t,a):yx(e,t,a);return new ly(n.name,c,i,s)}function zS(e){return e instanceof dx}function BS(e){switch(e){case 0:case 1:case 2:case 3:{let t={};t.nullable=!!(e&1),t.columnScope=dy.FEATURE;let n={};return n.type=`logicalType`,n.logicalType=py.ID,n.longID=!!(e&2),t.scalarType=n,t.type=`scalarType`,t}case 4:{let e={};e.nullable=false,e.columnScope=dy.FEATURE;let t={};return t.type=`physicalType`,t.physicalType=fy.GEOMETRY,e.type=`complexType`,e.complexType=t,e}case 30:{let e={};e.nullable=false,e.columnScope=dy.FEATURE;let t={};return t.type=`physicalType`,t.physicalType=fy.STRUCT,e.type=`complexType`,e.complexType=t,e}default:return KS(e)}}function VS(e){return e>=10}function HS(e){return e===30}function US(e){if(e.type===`scalarType`){let t=e.scalarType;if(t.type===`physicalType`)switch(t.physicalType){case X$1.BOOLEAN:case X$1.INT_8:case X$1.UINT_8:case X$1.INT_32:case X$1.UINT_32:case X$1.INT_64:case X$1.UINT_64:case X$1.FLOAT:case X$1.DOUBLE:return false;case X$1.STRING:return true;default:return false}if(t.type===`logicalType`)return false}else if(e.type===`complexType`){let t=e.complexType;if(t.type===`physicalType`)switch(t.physicalType){case fy.GEOMETRY:case fy.STRUCT:return true;default:return false}}return console.warn(`Unexpected column type in hasStreamCount`,e),false}function WS(e){return e.type===`scalarType`&&e.scalarType?.type===`logicalType`&&e.scalarType.logicalType===py.ID}function GS(e){return e.type===`complexType`&&e.complexType?.type===`physicalType`&&e.complexType.physicalType===fy.GEOMETRY}function KS(e){let t;switch(e){case 10:case 11:t=X$1.BOOLEAN;break;case 12:case 13:t=X$1.INT_8;break;case 14:case 15:t=X$1.UINT_8;break;case 16:case 17:t=X$1.INT_32;break;case 18:case 19:t=X$1.UINT_32;break;case 20:case 21:t=X$1.INT_64;break;case 22:case 23:t=X$1.UINT_64;break;case 24:case 25:t=X$1.FLOAT;break;case 26:case 27:t=X$1.DOUBLE;break;case 28:case 29:t=X$1.STRING;break;default:return null}let n={};n.nullable=!!(e&1),n.columnScope=dy.FEATURE;let r={};return r.type=`physicalType`,r.physicalType=t,n.type=`scalarType`,n.scalarType=r,n}const qS=new TextDecoder;function JS(e,t){let n=lb(e,t,1)[0];if(n===0)return ``;let r=t.get(),i=r+n,a=e.subarray(r,i);return t.add(n),qS.decode(a)}function YS(e){return {name:e.name,nullable:e.nullable,scalarField:e.scalarType,complexField:e.complexType,type:e.type===`scalarType`?`scalarField`:`complexField`}}function XS(e,t){let n=lb(e,t,1)[0]>>>0;if(n<10||n>30)throw Error(`Unsupported field type code ${n}. Supported: 10-29(scalars), 30(STRUCT)`);let r=BS(n);if(VS(n)&&(r.name=JS(e,t)),HS(n)){let n=lb(e,t,1)[0]>>>0;r.complexType.children=Array(n);for(let i=0;i<n;i++)r.complexType.children[i]=XS(e,t);}return YS(r)}function ZS(e,t){let n=lb(e,t,1)[0]>>>0,r=BS(n);if(!r)throw Error(`Unsupported column type code ${n}. Supported: 0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT)`);if(VS(n)?r.name=JS(e,t):n>=0&&n<=3?r.name=`id`:n===4&&(r.name=`geometry`),HS(n)){let n=lb(e,t,1)[0]>>>0,i=r.complexType;i.children=Array(n);for(let r=0;r<n;r++)i.children[r]=XS(e,t);}return r}function QS(e,t){let n={};n.featureTables=[];let r={};if(r.name=JS(e,t),r.name.length===0)throw Error(`Missing layer name`);let i=lb(e,t,1)[0]>>>0,a=lb(e,t,1)[0]>>>0;r.columns=Array(a);for(let n=0;n<a;n++)r.columns[n]=ZS(e,t);return n.featureTables.push(r),[n,i]}function $S(e,t,n=true){let r=new my(0),i=[];for(;r.get()<e.length;){let a=lb(e,r,1)[0]>>>0,o=r.get()+a;if(o>e.length)throw Error(`Block overruns tile: ${o} > ${e.length}`);if(lb(e,r,1)[0]>>>0!=1){r.set(o);continue}let[s,c]=QS(e,r),l=s.featureTables[0],u=null,d=null,f=[],p=0;for(let i of l.columns){let a=i.name;if(WS(i)){let t=null;if(i.nullable){let n=sx(e,r),i=r.get(),a=hS(e,n.numValues,n.byteLength,r);r.set(i+n.byteLength),t=new dx(a,n.numValues);}let o=sx(e,r);p=t?t.size():o.decompressedCount,u=eC(e,i,r,a,o,t??p,n);}else if(GS(i)){let n=lb(e,r,1)[0];if(p===0){let t=r.get();p=sx(e,r).decompressedCount,r.set(t);}d=oS(e,n,r,p,t);}else {let t=US(i)?lb(e,r,1)[0]:1;if(t===0)continue;let n=MS(e,r,i,t,p);if(n)if(Array.isArray(n))for(let e of n)f.push(e);else f.push(n);}}let m=new uy(l.name,d,u,f,c);i.push(m),r.set(o);}return i}function eC(e,t,n,r,i,a,o=false){let s=t.scalarType;if(s?.type!==`logicalType`||s.logicalType!==py.ID)throw Error(`ID column must be a logical ID scalar type: ${r}`);let c=s.longID?X$1.UINT_64:X$1.UINT_32,l=typeof a==`number`?void 0:a,u=Nx(i,a,e,n,c===X$1.UINT_64?`int64`:`int32`);if(c===X$1.UINT_32)switch(u){case $$1.FLAT:return new ay(r,hx(e,n,i,void 0,l),a);case $$1.SEQUENCE:{let t=bx(e,n,i);return new cy(r,t[0],t[1],i.numRleValues)}case $$1.CONST:return new ly(r,yx(e,n,i),a,false)}switch(u){case $$1.FLAT:return o?new oy(r,wx(e,n,i),a):new Ix(r,Cx(e,n,i,l),a);case $$1.SEQUENCE:{let t=xx(e,n,i);return new Lx(r,t[0],t[1],i.numRleValues)}case $$1.CONST:return new pS(r,Ex(e,n,i),a,false)}throw Error(`Vector type not supported for id column.`)}var tC=class{constructor(e,t){switch(this._featureData=e,this.properties=this._featureData.properties||{},this._featureData.geometry?.type){case Bx.POINT:case Bx.MULTIPOINT:this.type=1;break;case Bx.LINESTRING:case Bx.MULTILINESTRING:this.type=2;break;case Bx.POLYGON:case Bx.MULTIPOLYGON:this.type=3;break;default:this.type=0;}this.extent=t,this.id=Number(this._featureData.id);}loadGeometry(){let e=[];for(let t of this._featureData.geometry.coordinates){let n=[];for(let e of t)n.push(new l(e.x,e.y));e.push(n);}return e}},nC=class{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length;}feature(e){return new tC(this.features[e],this.extent)}},rC=class{constructor(e){this.layers={};let t=$S(new Uint8Array(e));this.layers=t.reduce((e,t)=>({...e,[t.name]:new nC(t)}),{});}},iC=class{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Mc$1(j,16,0),this.grid3D=new Mc$1(j,16,0),this.featureIndexArray=new gu$1,this.promoteId=t;}insert(e,t,n,r,i,a){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i);let s=a?this.grid3D:this.grid;for(let e of t){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)t[0]=Math.min(t[0],n.x),t[1]=Math.min(t[1],n.y),t[2]=Math.max(t[2],n.x),t[3]=Math.max(t[3],n.y);t[0]<8192&&t[1]<8192&&t[2]>=0&&t[3]>=0&&s.insert(o,t[0],t[1],t[2],t[3]);}}loadVTLayers(){if(!this.vtLayers){switch(this.encoding){case `mlt`:this.vtLayers=new rC(this.rawTileData).layers;break;default:this.vtLayers=new lm(new s_(this.rawTileData)).layers;}this.sourceLayerCoder=new ty(this.vtLayers?Object.keys(this.vtLayers).sort():[Wv]);}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params,a=j/e.tileSize/e.scale,o=_s$1(i.filter,`queryRenderedFeatures filter`,i.globalState),s=e.queryGeometry,c=e.queryPadding*a,l=Hv.fromPoints(s),u=this.grid.query(l.minX-c,l.minY-c,l.maxX+c,l.maxY+c),d=Hv.fromPoints(e.cameraQueryGeometry).expandBy(c),f=this.grid3D.query(d.minX,d.minY,d.maxX,d.maxY,(t,n,r,i)=>Rd$1(e.cameraQueryGeometry,t-c,n-c,r+c,i+c));for(let e of f)u.push(e);u.sort(oC);let p={},m;for(let c of u){if(c===m)continue;m=c;let l=this.featureIndexArray.get(c),u=null;this.loadMatchingFeature(p,l.bucketIndex,l.sourceLayerIndex,l.featureIndex,o,i.layers,i.availableImages,t,n,r,(t,n,r)=>(u||=Sd$1(t),n.queryIntersectsFeature({queryGeometry:s,feature:t,featureState:r,geometry:u,zoom:this.z,transform:e.transform,pixelsToTileUnits:a,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation})));}return p}loadMatchingFeature(e,t,n,r,i,a,o,s,c,l,u){let d=this.bucketLayerIDs[t];if(a&&!d.some(e=>a.has(e)))return;let f=this.sourceLayerCoder.decode(n),p=this.vtLayers[f].feature(r);if(i.needGeometry){let e=Cd$1(p,true);if(!i.filter(new G$1(this.tileID.overscaledZ),e,this.tileID.canonical))return}else if(!i.filter(new G$1(this.tileID.overscaledZ),p))return;let m=this.getId(p,f);for(let t of d){if(a&&!a.has(t))continue;let n=s[t];if(!n)continue;let i={};m&&l&&(i=l.getState(n.sourceLayer||`_geojsonTileLayer`,m));let d=Dt({},c[t]);d.paint=aC(d.paint,n.paint,p,i,o),d.layout=aC(d.layout,n.layout,p,i,o);let f=!u||u(p,n,i);if(!f)continue;let h=new ny(p,this.z,this.x,this.y,m);h.layer=d;let g=e[t];g===void 0&&(g=e[t]=[]),g.push({featureIndex:r,feature:h,intersectionZ:f});}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=_s$1(i.filterSpec,`queryRenderedFeatures symbol filter`,i.globalState);for(let i of e)this.loadMatchingFeature(c,n,r,i,l,a,o,s,t);return c}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return true;return false}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];n=e.properties[r],typeof n==`boolean`&&(n=Number(n)),n===void 0&&e.properties?.cluster&&this.promoteId&&(n=Number(e.properties.cluster_id));}return n}};W$1(`FeatureIndex`,iC,{omit:[`rawTileData`,`sourceLayerCoder`]});function aC(e,t,n,r,i){return It(e,(e,a)=>{let o=t instanceof hl$1?t.get(a):null;return o?.evaluate?o.evaluate(n,r,i):o})}function oC(e,t){return t-e}var sC=class{constructor(e,t){this.max=e,this.onRemove=t,this.reset();}reset(){for(let e in this.data)for(let t of this.data[e])t.timeout&&clearTimeout(t.timeout),this.onRemove(t.value);return this.data={},this.order=[],this}add(e,t,n){let r=e.wrapped().key;this.data[r]===void 0&&(this.data[r]=[]);let i={value:t,timeout:void 0};if(n!==void 0&&(i.timeout=setTimeout(()=>{this.remove(e,i);},n)),this.data[r].push(i),this.order.push(r),this.order.length>this.max){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e);}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){let t=this.data[e].shift();return t.timeout&&clearTimeout(t.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),t.value}getByKey(e){let t=this.data[e];return t?t[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,t){if(!this.has(e))return this;let n=e.wrapped().key,r=t===void 0?0:this.data[n].indexOf(t),i=this.data[n][r];return this.data[n].splice(r,1),i.timeout&&clearTimeout(i.timeout),this.data[n].length===0&&delete this.data[n],this.onRemove(i.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e);}return this}filter(e){let t=[];for(let n in this.data)for(let r of this.data[n])e(r.value)||t.push(r);for(let e of t)this.remove(e.value.tileID,e);}};function lC(e,t,n,r,i){let a=[];for(let o of e){let e;for(let s=0;s<o.length-1;s++){let c=o[s],u=o[s+1];c.x<t&&u.x<t||(c.x<t?c=new l(t,c.y+(u.y-c.y)*((t-c.x)/(u.x-c.x)))._round():u.x<t&&(u=new l(t,c.y+(u.y-c.y)*((t-c.x)/(u.x-c.x)))._round()),!(c.y<n&&u.y<n)&&(c.y<n?c=new l(c.x+(u.x-c.x)*((n-c.y)/(u.y-c.y)),n)._round():u.y<n&&(u=new l(c.x+(u.x-c.x)*((n-c.y)/(u.y-c.y)),n)._round()),!(c.x>=r&&u.x>=r)&&(c.x>=r?c=new l(r,c.y+(u.y-c.y)*((r-c.x)/(u.x-c.x)))._round():u.x>=r&&(u=new l(r,c.y+(u.y-c.y)*((r-c.x)/(u.x-c.x)))._round()),!(c.y>=i&&u.y>=i)&&(c.y>=i?c=new l(c.x+(u.x-c.x)*((i-c.y)/(u.y-c.y)),i)._round():u.y>=i&&(u=new l(c.x+(u.x-c.x)*((i-c.y)/(u.y-c.y)),i)._round()),(!e||!c.equals(e[e.length-1]))&&(e=[c],a.push(e)),e.push(u)))));}}return a}var _C=class e extends l{constructor(e,t,n,r){super(e,t),this.angle=n,r!==void 0&&(this.segment=r);}clone(){return new e(this.x,this.y,this.angle,this.segment)}};W$1(`Anchor`,_C);let RC=function(e){return e[e.center=1]=`center`,e[e.left=2]=`left`,e[e.right=3]=`right`,e[e.top=4]=`top`,e[e.bottom=5]=`bottom`,e[e[`top-left`]=6]=`top-left`,e[e[`top-right`]=7]=`top-right`,e[e[`bottom-left`]=8]=`bottom-left`,e[e[`bottom-right`]=9]=`bottom-right`,e}({});function UC(e){switch(e){case `right`:case `top-right`:case `bottom-right`:return `right`;case `left`:case `top-left`:case `bottom-left`:return `left`}return `center`}
9
+
10
+ /**
11
+ * MapLibre GL JS
12
+ * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v6.2.0/LICENSE.txt
13
+ */
14
+ var Er=`6.2.0`;function Dr(){var e=new h(4);return h!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}function Or(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*a-i*r;return o?(o=1/o,e[0]=a*o,e[1]=-r*o,e[2]=-i*o,e[3]=n*o,e):null}function kr(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);return e[0]=r*c+a*s,e[1]=i*c+o*s,e[2]=r*-s+a*c,e[3]=i*-s+o*c,e}let Ar,jr,Mr;const Nr={frame(e,t,n,r){let i=r||window,a=i.requestAnimationFrame(e=>{o(),t(e);}),{unsubscribe:o}=on(e.signal,`abort`,()=>{o(),i.cancelAnimationFrame(a),n(new bn(e.signal.reason));},false);},frameAsync(e,t){return new Promise((n,r)=>{this.frame(e,n,r,t);})},getImageData(e,t=0){return this.getImageCanvasContext(e).getImageData(-t,-t,e.width+2*t,e.height+2*t)},getImageCanvasContext(e){let t=window.document.createElement(`canvas`),n=t.getContext(`2d`,{willReadFrequently:true});if(!n)throw Error(`failed to create canvas 2d context`);return t.width=e.width,t.height=e.height,n.drawImage(e,0,0,e.width,e.height),n},resolveURL(e){return Ar||=document.createElement(`a`),Ar.href=e,Ar.href},get hardwareConcurrency(){return typeof navigator<`u`&&navigator.hardwareConcurrency||4},get prefersReducedMotion(){return Mr===void 0?matchMedia?(jr??=matchMedia(`(prefers-reduced-motion: reduce)`),jr.matches):false:Mr},set prefersReducedMotion(e){Mr=e;}},Pr=new class{constructor(){this._frozenAt=null;}getCurrentTime(){return this._frozenAt===null?performance.now():this._frozenAt}setNow(e){this._frozenAt=e;}restoreNow(){this._frozenAt=null;}isFrozen(){return this._frozenAt!==null}};function U(){return Pr.getCurrentTime()}function Fr(e){Pr.setNow(e);}function Ir(){Pr.restoreNow();}function Lr(){return Pr.isFrozen()}var W=class e{static{this.docStyle=typeof window<`u`&&window.document?.documentElement.style;}static{this.selectProp=!e.docStyle||`userSelect`in e.docStyle?`userSelect`:`webkitUserSelect`;}static create(e,t,n){let r=window.document.createElement(e);return t!==void 0&&(r.className=t),n&&n.appendChild(r),r}static createNS(e,t){return window.document.createElementNS(e,t)}static disableDrag(){e.docStyle&&e.selectProp&&(e.userSelect=e.docStyle[e.selectProp],e.docStyle[e.selectProp]=`none`);}static enableDrag(){e.docStyle&&e.selectProp&&(e.docStyle[e.selectProp]=e.userSelect);}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener(`click`,e.suppressClickInternal,true);}static suppressClick(){window.addEventListener(`click`,e.suppressClickInternal,true),window.setTimeout(()=>{window.removeEventListener(`click`,e.suppressClickInternal,true);},0);}static getScale(e){let t=e.getBoundingClientRect();return {x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}static getPoint(e,t,n){let r=t.boundingClientRect;return new l((n.clientX-r.left)/t.x-e.clientLeft,(n.clientY-r.top)/t.y-e.clientTop)}static mousePos(t,n){let r=e.getScale(t);return e.getPoint(t,r,n)}static touchPos(t,n){let r=[],i=e.getScale(t);for(let a of n)r.push(e.getPoint(t,i,a));return r}static sanitize(t){let n=new DOMParser().parseFromString(t,`text/html`).body||document.createElement(`body`),r=n.querySelectorAll(`script`);for(let e of r)e.remove();return e.clean(n),n.innerHTML}static isPossiblyDangerous(e,t){let n=t.replace(/\s+/g,``).toLowerCase();if([`src`,`href`,`xlink:href`].includes(e)&&(n.includes(`javascript:`)||n.includes(`data:`))||e.startsWith(`on`))return true}static clean(t){let n=t.children;for(let t of n)e.removeAttributes(t),e.clean(t);}static removeAttributes(t){for(let{name:n,value:r}of t.attributes)e.isPossiblyDangerous(n,r)&&t.removeAttribute(n);}};let Rr;((function(e){let t,n,r,i;e.resetRequestQueue=()=>{t=[],n=0,r=0,i={};},e.addThrottleControl=e=>{let t=r++;return i[t]=e,t},e.removeThrottleControl=e=>{delete i[e],l();};let a=()=>{for(let e of Object.keys(i))if(i[e]())return true;return false};e.getImage=(e,n,r=true,i)=>new Promise((a,o)=>{e.headers||={},e.headers.accept=`image/webp,*/*`,Dt(e,{type:`image`});let s={abortController:n,requestParameters:e,supportImageRefresh:r,imageBitmapOptions:i,state:`queued`,onError:e=>{o(e);},onSuccess:e=>{a(e);}};t.push(s),l();});let s=(e,t)=>typeof createImageBitmap==`function`?Xt(e,t):Qt(e),c=async e=>{e.state=`running`;let{requestParameters:t,supportImageRefresh:r,imageBitmapOptions:i,onError:a,onSuccess:o,abortController:c}=e,d=r===false&&!i&&!Gt(self)&&!wn(t.url)&&(!t.headers||Object.keys(t.headers).reduce((e,t)=>e&&t===`accept`,true));n++;let f=d?u(t,c):Nn(t,c);try{let t=await f;delete e.abortController,e.state=`completed`,t.data instanceof HTMLImageElement||Yt(t.data)?o(t):t.data&&o({data:await s(t.data,i),cacheControl:t.cacheControl,expires:t.expires});}catch(t){delete e.abortController,a(it(t));}finally{n--,l();}},l=()=>{let e=a()?Cn.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:Cn.MAX_PARALLEL_IMAGE_REQUESTS;for(let r=n;r<e&&t.length>0;r++){let e=t.shift();if(e.abortController.signal.aborted){r--;continue}c(e);}},u=(e,t)=>new Promise((n,r)=>{let i=new Image,a=e.url,s=e.credentials;s&&s===`include`?i.crossOrigin=`use-credentials`:(s&&s===`same-origin`||!In(a))&&(i.crossOrigin=`anonymous`),t.signal.addEventListener(`abort`,()=>{i.src=``,r(new bn(t.signal.reason));}),i.fetchPriority=`high`,i.onload=()=>{i.onerror=i.onload=null,n({data:i});},i.onerror=()=>{i.onerror=i.onload=null,!t.signal.aborted&&r(Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));},i.src=a;});}))(Rr||={}),Rr.resetRequestQueue();var zr=class{constructor(e){this._transformRequestFn=e??null;}transformRequest(e,t){return this._transformRequestFn&&this._transformRequestFn(e,t)||{url:e}}setTransformRequest(e){this._transformRequestFn=e;}},Br=class extends Bn{},G=class extends Br{},Vr=class extends Br{constructor(e={}){super(`style.load`,e);}},Hr=class extends Br{constructor(e,t={}){super(e,t),this.dataType=`style`;}},K=class extends Br{constructor(e,t={}){super(e,t),this.dataType=`source`;}},Ur=class extends Br{preventDefault(){this._defaultPrevented=true;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,n,r={}){n=n instanceof MouseEvent?n:new MouseEvent(e,n);let i=W.mousePos(t.getCanvas(),n),a=t.unproject(i);super(e,Dt({point:i,lngLat:a,originalEvent:n},r)),this._defaultPrevented=false,this.target=t;}},Wr=class extends Br{preventDefault(){this._defaultPrevented=true;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,n){let r=e===`touchend`?n.changedTouches:n.touches,i=W.touchPos(t.getCanvasContainer(),r),a=i.map(e=>t.unproject(e)),o=i.reduce((e,t,n,r)=>e.add(t.div(r.length)),new l(0,0)),s=t.unproject(o);super(e,{points:i,point:o,lngLats:a,lngLat:s,originalEvent:n}),this._defaultPrevented=false;}},Gr=class extends Br{preventDefault(){this._defaultPrevented=true;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t){super(`wheel`,{originalEvent:t}),this._defaultPrevented=false;}},Kr=class extends Br{},qr=class extends Br{constructor(e={}){super(`terrain`,e);}},Jr=class extends Br{constructor(e={}){super(`projectiontransition`,e);}},Yr=class extends Br{},Xr=class extends Br{constructor(e={}){super(`styleimagemissing`,e);}};function Zr(e){let t=[];if(typeof e==`string`)t.push({id:`default`,url:e});else if(e&&e.length>0){let n=[];for(let{id:r,url:i}of e){let e=`${r}${i}`;n.includes(e)||(n.push(e),t.push({id:r,url:i}));}}return t}function Qr(e,t,n){try{let r=new URL(e);return r.pathname+=`${t}${n}`,r.toString()}catch{throw Error(`Invalid sprite URL "${e}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}async function $r(e,t,n,r){let i=Zr(e),a=n>1?`@2x`:``,o={},s={};for(let{id:e,url:n}of i){let i=await t.transformRequest(Qr(n,a,`.json`),`SpriteJSON`);o[e]=Pn(i,r);let c=await t.transformRequest(Qr(n,a,`.png`),`SpriteImage`);s[e]=Rr.getImage(c,r);}return await Promise.all([...Object.values(o),...Object.values(s)]),ei(o,s)}async function ei(e,t){let n={};for(let r in e){n[r]={};let i=Nr.getImageCanvasContext((await t[r]).data),a=(await e[r]).data;for(let e in a){let{width:t,height:o,x:s,y:c,sdf:l,pixelRatio:u,stretchX:d,stretchY:f,content:p,textFitWidth:m,textFitHeight:h}=a[e],g={width:t,height:o,x:s,y:c,context:i};n[r][e]={data:null,pixelRatio:u,sdf:l,stretchX:d,stretchY:f,content:p,textFitWidth:m,textFitHeight:h,spriteData:g};}}return n}var ti=class extends Hn{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=false,this.requestors=[],this.missingImageResolver=null,this.patterns={},this.atlasImage=new mf$1({width:1,height:1}),this.dirty=true;}destroy(){this.atlasTexture&&=(this.atlasTexture.destroy(),null);for(let e of Object.keys(this.images))this.removeImage(e);this.patterns={},this.atlasImage=new mf$1({width:1,height:1}),this.dirty=true;}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(let{ids:e,promiseResolve:t}of this.requestors)t(this._getImagesForIds(e));this.requestors=[];}}getImage(e){let t=this.images[e];if(t&&!t.data&&t.spriteData){let e=t.spriteData;t.data=new mf$1({width:e.width,height:e.height},e.context.getImageData(e.x,e.y,e.width,e.height).data),t.spriteData=null;}return t}addImage(e,t){if(this.images[e])throw Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,t)&&(this.images[e]=t);}_validate(e,t){let n=true,r=t.data||t.spriteData;return this._validateStretch(t.stretchX,r?.width)||(this.fire(new Vn(Error(`Image "${e}" has invalid "stretchX" value`))),n=false),this._validateStretch(t.stretchY,r?.height)||(this.fire(new Vn(Error(`Image "${e}" has invalid "stretchY" value`))),n=false),this._validateContent(t.content,t)||(this.fire(new Vn(Error(`Image "${e}" has invalid "content" value`))),n=false),n}_validateStretch(e,t){if(!e)return true;let n=0;for(let r of e){if(r[0]<n||r[1]<r[0]||t<r[1])return false;n=r[1];}return true}_validateContent(e,t){if(!e)return true;if(e.length!==4)return false;let n=t.spriteData,r=n?.width||t.data.width,i=n?.height||t.data.height;return e[0]<0||r<e[0]||e[1]<0||i<e[1]||e[2]<0||r<e[2]||e[3]<0||i<e[3]||e[2]<e[0]?false:e[3]>=e[1]}updateImage(e,t,n=true){let r=this.getImage(e);if(n&&(r.data.width!==t.data.width||r.data.height!==t.data.height))throw Error(`size mismatch between old image (${r.data.width}x${r.data.height}) and new image (${t.data.width}x${t.data.height}).`);t.version=r.version+1,this.images[e]=t,this.updatedImages[e]=true;}removeImage(e){let t=this.images[e];delete this.images[e],delete this.patterns[e],t.userImage?.onRemove&&t.userImage.onRemove();}listImages(){return Object.keys(this.images)}setMissingImageResolver(e){this.missingImageResolver=e;}getImages(e){return new Promise((t,n)=>{let r=true;if(!this.isLoaded())for(let t of e)this.images[t]||(r=false);this.isLoaded()||r?t(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:t});})}async _getImagesForIds(e){let t=new Set(e.filter(e=>!this.getImage(e))),n=this.missingImageResolver;n&&await Promise.all(Array.from(t,e=>n(e)));let r={};for(let n of e){let e=this.getImage(n);e&&(t.delete(n),r[n]={data:e.data.clone(),pixelRatio:e.pixelRatio,sdf:e.sdf,version:e.version,stretchX:e.stretchX,stretchY:e.stretchY,content:e.content,textFitWidth:e.textFitWidth,textFitHeight:e.textFitHeight,hasRenderCallback:!!e.userImage?.render});}for(let e of t)this.fire(new Xr({id:e})),Vt(`Image "${e}" could not be loaded. Please make sure you have added the image before it is needed with map.addImage(), resolved it with map.setMissingStyleImageResolver(), or included it in a "sprite" property in your style.`);return r}getPixelSize(){let{width:e,height:t}=this.atlasImage;return {width:e,height:t}}getPattern(e){let t=this.patterns[e],n=this.getImage(e);if(!n)return null;if(t&&t.position.version===n.version)return t.position;if(t)t.position.version=n.version;else {let t={w:n.data.width+2,h:n.data.height+2,x:0,y:0},r=new M_(t,n);this.patterns[e]={bin:t,position:r};}return this._updatePatternAtlas(),this.patterns[e].position}bind(e){let t=e.gl;this.atlasTexture?this.dirty&&=(this.atlasTexture.update(this.atlasImage),false):this.atlasTexture=new kf$1(e,this.atlasImage,t.RGBA),this.atlasTexture.bind(t.LINEAR,t.CLAMP_TO_EDGE);}_updatePatternAtlas(){let e=[];for(let t in this.patterns)e.push(this.patterns[t].bin);let{w:t,h:n}=j_(e),r=this.atlasImage;r.resize({width:t||1,height:n||1});for(let e in this.patterns){let{bin:t}=this.patterns[e],n=t.x+1,i=t.y+1,a=this.getImage(e).data,o=a.width,s=a.height;mf$1.copy(a,r,{x:0,y:0},{x:n,y:i},{width:o,height:s}),mf$1.copy(a,r,{x:0,y:s-1},{x:n,y:i-1},{width:o,height:1}),mf$1.copy(a,r,{x:0,y:0},{x:n,y:i+s},{width:o,height:1}),mf$1.copy(a,r,{x:o-1,y:0},{x:n-1,y:i},{width:1,height:s}),mf$1.copy(a,r,{x:0,y:0},{x:n+o,y:i},{width:1,height:s});}this.dirty=true;}beginFrame(){this.callbackDispatchedThisFrame={};}dispatchRenderCallbacks(e){for(let t of e){if(this.callbackDispatchedThisFrame[t])continue;this.callbackDispatchedThisFrame[t]=true;let e=this.getImage(t);e||Vt(`Image with ID: "${t}" was not found`),A_(e)&&this.updateImage(t,e);}}cloneImages(){let e={};for(let t in this.images){let n=this.images[t];e[t]={...n,data:n.data?n.data.clone():null};}return e}};async function ni(e,t,n,r){let i=t*256,a=i+255,o=await r.transformRequest(n.replace(`{fontstack}`,e).replace(`{range}`,`${i}-${a}`),`Glyphs`),s=await Fn(o,new AbortController);if(!s?.data)throw Error(`Could not load glyph range. range: ${t}, ${i}-${a}`);let c={};for(let e of k_(s.data))c[e.id]=e;return c}const ri=0x56bc75e2d63100000,ii=new Float64Array(256);for(let e=0;e<256;e++){let t=.5-(e/255)**(1/2.2);ii[e]=t*Math.abs(t);}ii[255]=-1e20;var ai=class{constructor({fontSize:e=24,buffer:t=3,radius:n=8,cutoff:r=.25,fontFamily:i=`sans-serif`,fontWeight:a=`normal`,fontStyle:o=`normal`,lang:s=null}={}){this.buffer=t,this.radius=n,this.cutoff=r,this.lang=s;let c=this.size=e+t*4,l=this._createCanvas(c),u=this.ctx=l.getContext(`2d`,{willReadFrequently:true});u.font=`${o} ${a} ${e}px ${i}`,u.textBaseline=`alphabetic`,u.textAlign=`left`,u.fillStyle=`black`,this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c);}_createCanvas(e){if(typeof OffscreenCanvas<`u`)return new OffscreenCanvas(e,e);let t=document.createElement(`canvas`);return t.width=t.height=e,t}draw(e){let{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:r,actualBoundingBoxLeft:i,actualBoundingBoxRight:a}=this.ctx.measureText(e),o=Math.ceil(n),s=Math.floor(-i),c=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(a)-s)),l=Math.max(0,Math.min(this.size-this.buffer,o+Math.ceil(r))),u=c+2*this.buffer,d=l+2*this.buffer,f=Math.max(u*d,0),p=new Uint8ClampedArray(f),m={data:p,width:u,height:d,glyphWidth:c,glyphHeight:l,glyphTop:o,glyphLeft:s,glyphAdvance:t};if(c===0||l===0)return m;let{ctx:h,buffer:g,gridInner:_,gridOuter:v}=this;this.lang&&(h.lang=this.lang),h.clearRect(g,g,c,l),h.fillText(e,g-s,g+o);let y=h.getImageData(g,g,c,l);v.fill(ri,0,f),_.fill(0,0,f);let b=3;for(let e=0;e<l;e++){let t=(e+g)*u+g;for(let e=0;e<c;e++,b+=4,t++){let e=y.data[b];if(e===0)continue;let n=ii[e];v[t]=Math.max(0,n),_[t]=Math.max(0,-n);}}oi(v,0,0,u,d,u,this.f,this.v,this.z);let x=Math.min(g,1);oi(_,g-x,g-x,c+2*x,l+2*x,u,this.f,this.v,this.z);let S=255/this.radius,C=255*(1-this.cutoff);for(let e=0;e<f;e++){let t=Math.sqrt(v[e])-Math.sqrt(_[e]);p[e]=Math.round(C-S*t);}return m}};function oi(e,t,n,r,i,a,o,s,c){for(let l=t;l<t+r;l++)si(e,n*a+l,a,i,o,s,c);for(let l=n;l<n+i;l++)si(e,l*a+t,1,r,o,s,c);}function si(e,t,n,r,i,a,o){a[0]=0,o[0]=-1e20,o[1]=ri,i[0]=e[t];for(let s=1,c=0,l=0;s<r;s++){i[s]=e[t+s*n];let r=s*s;do{let e=a[c];l=(i[s]-i[e]+r-e*e)/(s-e)/2;}while(l<=o[c]&&--c>-1);c++,a[c]=s,o[c]=l,o[c+1]=ri;}for(let s=0,c=0;s<r;s++){for(;o[c+1]<s;)c++;let r=a[c],l=s-r;e[t+s*n]=i[r]+l*l;}}const ci=M.layout_symbol[`text-font`].default.join(`,`);var li=class e{static{this.loadGlyphRange=ni;}static{this.TinySDF=ai;}constructor(e,t,n){this.requestManager=e,this.localIdeographFontFamily=t,this.entries={},this.lang=n;}setURL(e){this.url=e;}async getGlyphs(e){let t=[];for(let n in e)for(let r of e[n])t.push(this._getAndCacheGlyphsPromise(n,r));let n=await Promise.all(t),r={};for(let{stack:e,id:t,glyph:i}of n)r[e]||={},r[e][t]=i&&{id:i.id,bitmap:i.bitmap.clone(),metrics:i.metrics};return r}async _getAndCacheGlyphsPromise(e,t){this.entries[e]??={glyphs:{},requests:{},ranges:{}};let n=this.entries[e],r=n.glyphs[t];return r===void 0?!this.url||this._charUsesLocalIdeographFontFamily(t)?(r=n.glyphs[t]=await this._drawGlyph(n,e,t),{stack:e,id:t,glyph:r}):await this._downloadAndCacheRangePromise(e,t):{stack:e,id:t,glyph:r}}async _downloadAndCacheRangePromise(t,n){let r=this.entries[t],i=Math.floor(n/256);if(r.ranges[i])return {stack:t,id:n,glyph:null};r.requests[i]||=e.loadGlyphRange(t,i,this.url,this.requestManager);try{let e=await r.requests[i];for(let t in e)r.glyphs[+t]=e[+t];return r.ranges[i]=true,{stack:t,id:n,glyph:e[n]||null}}catch(e){let a=r.glyphs[n]=await this._drawGlyph(r,t,n);return this._warnOnMissingGlyphRange(a,i,n,it(e)),{stack:t,id:n,glyph:a}}}_warnOnMissingGlyphRange(e,t,n,r){let i=t*256,a=i+255,o=n.toString(16).padStart(4,`0`).toUpperCase();Vt(`Unable to load glyph range ${t}, ${i}-${a}. Rendering codepoint U+${o} locally instead. ${r}`);}_charUsesLocalIdeographFontFamily(e){return !!this.localIdeographFontFamily&&Vc$1(e)}async _drawGlyph(e,t,n){let r=t===ci&&this.localIdeographFontFamily!==``&&this._charUsesLocalIdeographFontFamily(n),i=r?`ideographTinySDF`:`tinySDF`;e[i]||=this._createTinySDF(r?this.localIdeographFontFamily:t);let a=(await e[i]).draw(String.fromCodePoint(n)),o=/^\p{gc=Cf}+$/u.test(String.fromCodePoint(n));return {id:n,bitmap:new pf$1({width:a.width||60,height:a.height||60},a.data),metrics:{width:o?0:a.glyphWidth/2||24,height:a.glyphHeight/2||24,left:a.glyphLeft/2+.5||0,top:a.glyphTop/2-27.5||-8,advance:o?0:a.glyphAdvance/2||24,isDoubleResolution:true}}}async _createTinySDF(t){let n=t?t.split(`,`):[];n.push(`sans-serif`);let r=n.map(e=>/[-\w]+/.test(e)?e:`'${CSS.escape(e)}'`).join(`,`),i=this._fontWeight(n[0]),a=this._fontStyle(n[0]);if(typeof document<`u`&&document.fonts?.load)try{await document.fonts.load(`${a} ${i||`normal`} 48px ${r}`);}catch(e){Vt(`Failed to load font "${r}": ${it(e).message}`);}return new e.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:r,fontWeight:i,fontStyle:a,lang:this.lang})}_fontStyle(e){return /italic/i.test(e)?`italic`:/oblique/i.test(e)?`oblique`:`normal`}_fontWeight(e){let t={thin:100,hairline:100,"extra light":200,"ultra light":200,light:300,normal:400,regular:400,medium:500,semibold:600,demibold:600,bold:700,"extra bold":800,"ultra bold":800,black:900,heavy:900,"extra black":950,"ultra black":950},n;for(let[r,i]of Object.entries(t))RegExp(`\\b${r}\\b`,`i`).test(e)&&(n=`${i}`);return n}destroy(){for(let e in this.entries){let t=this.entries[e];t.tinySDF=null,t.ideographTinySDF=null,t.glyphs={},t.requests={},t.ranges={};}this.entries={};}};let ui;const di=()=>ui||=new xl$1({anchor:new K$1(M.light.anchor,`anchor`),position:new K$1(M.light.position,`position`),color:new K$1(M.light.color,`color`),intensity:new K$1(M.light.intensity,`intensity`)});var fi=class extends Hn{constructor(e,t){super(),this._transitionable=new ul$1(di(),`light`,t),this.setLight(e),this._transitioning=this._transitionable.untransitioned();}getLight(){return this._transitionable.serialize()}getCartesianPosition(){return Wt(this.properties.get(`position`))}setLight(e,t={}){if(!this._validate(Ec$1.light,e,t))for(let t in e){let n=e[t];t.endsWith(`-transition`)?this._transitionable.setTransition(t.slice(0,-sl$1.length),n):this._transitionable.setValue(t,n);}}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(e,t,n){return jc$1(this,e,{value:t},n)}};let pi;const mi=()=>pi||=new xl$1({"sky-color":new K$1(M.sky[`sky-color`],`sky-color`),"horizon-color":new K$1(M.sky[`horizon-color`],`horizon-color`),"fog-color":new K$1(M.sky[`fog-color`],`fog-color`),"fog-ground-blend":new K$1(M.sky[`fog-ground-blend`],`fog-ground-blend`),"horizon-fog-blend":new K$1(M.sky[`horizon-fog-blend`],`horizon-fog-blend`),"sky-horizon-blend":new K$1(M.sky[`sky-horizon-blend`],`sky-horizon-blend`),"atmosphere-blend":new K$1(M.sky[`atmosphere-blend`],`atmosphere-blend`)});var hi=class extends Hn{constructor(e,t){super(),this._transitionable=new ul$1(mi(),`sky`,t),this.setSky(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new G$1(0));}setSky(e,t={}){if(!this._validate(Ec$1.sky,e,t)){e||={"sky-color":`transparent`,"horizon-color":`transparent`,"fog-color":`transparent`,"fog-ground-blend":1,"atmosphere-blend":0};for(let t in e){let n=e[t];t.endsWith(`-transition`)?this._transitionable.setTransition(t.slice(0,-sl$1.length),n):this._transitionable.setValue(t,n);}}}getSky(){return this._transitionable.serialize()}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(e,t,n={}){return jc$1(this,e,{value:t},n)}calculateFogBlendOpacity(e){return e<60?0:e<70?(e-60)/10:1}},gi=class{constructor(e,t){this.width=e,this.height=t,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={};}getDash(e,t){let n=e.join(`,`)+String(t);return this.dashEntry[n]||=this.addDash(e,t),this.dashEntry[n]}getDashRanges(e,t,n){let r=e.length%2==1,i=[],a=r?-e[e.length-1]*n:0,o=e[0]*n,s=true;i.push({left:a,right:o,isDash:s,zeroLength:e[0]===0});let c=e[0];for(let t=1;t<e.length;t++){s=!s;let r=e[t];a=c*n,c+=r,o=c*n,i.push({left:a,right:o,isDash:s,zeroLength:r===0});}return i}addRoundDash(e,t,n){let r=t/2;for(let t=-n;t<=n;t++){let i=this.nextRow+n+t,a=this.width*i,o=0,s=e[o];for(let i=0;i<this.width;i++){i/s.right>1&&(s=e[++o]);let c=Math.abs(i-s.left),l=Math.abs(i-s.right),u=Math.min(c,l),d,f=t/n*(r+1);if(s.isDash){let e=r-Math.abs(f);d=Math.sqrt(u*u+e*e);}else d=r-Math.sqrt(u*u+f*f);this.data[a+i]=Math.max(0,Math.min(255,d+128));}}}addRegularDash(e){for(let t=e.length-1;t>=0;--t){let n=e[t],r=e[t+1];n.zeroLength?e.splice(t,1):r?.isDash===n.isDash&&(r.left=n.left,e.splice(t,1));}let t=e[0],n=e[e.length-1];t.isDash===n.isDash&&(t.left=n.left-this.width,n.right=t.right+this.width);let r=this.width*this.nextRow,i=0,a=e[i];for(let t=0;t<this.width;t++){t/a.right>1&&(a=e[++i]);let n=Math.abs(t-a.left),o=Math.abs(t-a.right),s=Math.min(n,o),c=a.isDash?s:-s;this.data[r+t]=Math.max(0,Math.min(255,c+128));}}addDash(e,t){let n=t?7:0,r=2*n+1;if(this.nextRow+r>this.height)return Vt(`LineAtlas out of space`),null;let i=0;for(let t of e)i+=t;if(i!==0){let r=this.width/i,a=this.getDashRanges(e,this.width,r);t?this.addRoundDash(a,r,n):this.addRegularDash(a);}let a={y:this.nextRow+n,height:2*n,width:i};return this.nextRow+=r,this.dirty=true,a}bind(e){let t=e.gl;this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=false,t.texSubImage2D(t.TEXTURE_2D,0,0,0,this.width,this.height,t.ALPHA,t.UNSIGNED_BYTE,this.data))):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.REPEAT),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,this.width,this.height,0,t.ALPHA,t.UNSIGNED_BYTE,this.data));}};function _i(e){if(!e)return false;let t=globalThis.location;if(!t)return false;try{return new URL(e,t.href).origin!==t.origin}catch{return false}}function vi(){let e=(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('maplibre-gl-CCZS3Rg5.js', document.baseURI).href));if(!/^https?:/.test(e))return ``;let t=e.endsWith(`-dev.mjs`)?`maplibre-gl-worker-dev.mjs`:`maplibre-gl-worker.mjs`;return new URL(`./${t}`,e).href}function yi(e,t){if(t)try{return new Worker(e,{type:`module`})}catch(e){console.warn(`Module worker not supported, falling back to classic worker`,e);}return new Worker(e)}async function bi(e){let t=await fetch(e);if(!t.ok)throw Error(`Failed to fetch worker script (${t.status}): ${e}`);let n=await t.text(),r=new Blob([n],{type:`text/javascript`});return URL.createObjectURL(r)}function xi(e){let t=new Blob([`import ${JSON.stringify(new URL(e,(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('maplibre-gl-CCZS3Rg5.js', document.baseURI).href))).href)}`],{type:`text/javascript`});return URL.createObjectURL(t)}async function Si(){let e=Cn.WORKER_URL||vi(),t=!e?.endsWith(`.cjs`);if(!_i(e))return yi(e,t);if(t){let n=xi(e);try{return yi(n,t)}finally{URL.revokeObjectURL(n);}}let n=await bi(e);try{return yi(n,t)}finally{URL.revokeObjectURL(n);}}const Ci=`maplibre_preloaded_worker_pool`;var wi=class e{constructor(){this.active={},this.workersPromise=null;}async acquire(t){if(this.active[t]=true,!this.workersPromise){let t=[];for(;t.length<e.workerCount;)t.push(Si());this.workersPromise=Promise.all(t);}return (await this.workersPromise).slice()}release(e){if(delete this.active[e],this.numActive()===0&&this.workersPromise){let e=this.workersPromise;this.workersPromise=null,e.then(e=>{for(let t of e)t.terminate();});}}isPreloaded(){return !!this.active[Ci]}numActive(){return Object.keys(this.active).length}};const Ti=Math.floor(Nr.hardwareConcurrency/2);wi.workerCount=Jt(globalThis)?Math.max(Math.min(Ti,3),1):1;let Ei;function Di(){return Ei||=new wi,Ei}function Oi(){Di().acquire(Ci);}function ki(){let e=Ei;e&&(e.isPreloaded()&&e.numActive()===1?(e.release(Ci),Ei=null):console.warn(`Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()`));}var Ai=class{constructor(e,t){this.workerPool=e,this.actors=[],this.currentActor=0,this.id=t,this.removed=false,this.actorsPromise=this.initActors(t);}async initActors(e){let t=await this.workerPool.acquire(e);if(this.removed)return [];if(this.actors=t.map((t,n)=>{let r=new Av(t,e);return r.name=`Worker ${n}`,r}),!this.actors.length)throw Error(`No actors found`);return this.actors}async broadcast(e,t){let n=await this.actorsPromise;return Promise.all(n.map(n=>n.sendAsync({type:e,data:t})))}async getActor(){let e=await this.actorsPromise;return this.currentActor=(this.currentActor+1)%e.length,e[this.currentActor]}async waitForInitComplete(){this.actors.length===0&&await this.actorsPromise;}getReadyActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(e=true){this.removed=true;for(let e of this.actors)e.remove();this.actors=[],e&&this.workerPool.release(this.id);}async registerMessageHandler(e,t){let n=await this.actorsPromise;for(let r of n)r.registerMessageHandler(e,t);}async unregisterMessageHandler(e){let t=await this.actorsPromise;for(let n of t)n.unregisterMessageHandler(e);}};let ji;function Mi(){return ji||(ji=new Ai(Di(),Dn),ji.registerMessageHandler(`GR`,(e,t,n)=>Nn(t,n))),ji}function Ni(e,t){let n=b();return E(n,n,[1,1,0]),D(n,n,[e.width*.5,e.height*.5,1]),e.calculatePosMatrix?T(n,n,e.calculatePosMatrix(t.toUnwrapped())):n}function Pi(e,t,n){if(e)for(let r of e){let e=t[r];if(e?.source===n&&e.type===`fill-extrusion`)return true}else for(let e in t){let r=t[e];if(r.source===n&&r.type===`fill-extrusion`)return true}return false}function Fi(e,t,n,r,i,a,o){let s=Pi(i?.layers??null,t,e.id),c=a.maxPitchScaleFactor(),l=e.tilesIn(r,c,s);l.sort(Ri);let u=[];for(let r of l)u.push({wrappedTileID:r.tileID.wrapped().key,queryResults:r.tile.queryRenderedFeatures(t,n,e.getState(),r.queryGeometry,r.cameraQueryGeometry,r.scale,i,a,c,Ni(a,r.tileID),o?(e,t)=>o(r.tileID,e,t):void 0)});return Bi(zi(u),e)}function Ii(e,t,n,r,i,a,o){let s={},c=a.queryRenderedSymbols(r),l=[];for(let e of Object.keys(c).map(Number))l.push(o[e]);l.sort(Ri);for(let n of l){let r=n.featureIndex.lookupSymbolFeatures(c[n.bucketInstanceId],t,n.bucketIndex,n.sourceLayerIndex,{filterSpec:i.filter,globalState:i.globalState},i.layers,i.availableImages,e);for(let e in r){s[e]||=[];let t=r[e];t.sort((e,t)=>{let r=n.featureSortOrder;if(r){let n=r.indexOf(e.featureIndex);return r.indexOf(t.featureIndex)-n}return t.featureIndex-e.featureIndex});for(let n of t)s[e].push(n);}}return Vi(s,e,n)}function Li(e,t){let n=e.getRenderableIds().map(t=>e.getTileByID(t)),r=[],i={};for(let e of n){let n=e.tileID.canonical.key;i[n]||(i[n]=true,e.querySourceFeatures(r,t));}return r}function Ri(e,t){let n=e.tileID,r=t.tileID;return n.overscaledZ-r.overscaledZ||n.canonical.y-r.canonical.y||n.wrap-r.wrap||n.canonical.x-r.canonical.x}function zi(e){let t={},n={};for(let{queryResults:r,wrappedTileID:i}of e){n[i]||={};let e=n[i];for(let n in r){let i=r[n];e[n]||={};let a=e[n];t[n]||=[];for(let e of i)a[e.featureIndex]||(a[e.featureIndex]=true,t[n].push(e));}}return t}function Bi(e,t){for(let n in e)for(let r of e[n])Hi(r,t);return e}function Vi(e,t,n){for(let r in e)for(let i of e[r]){let e=n[t[r].source];Hi(i,e);}return e}function Hi(e,t){let n=e.feature,r=t.getFeatureState(n.layer[`source-layer`],n.id);n.source=n.layer.source,n.layer[`source-layer`]&&(n.sourceLayer=n.layer[`source-layer`]),n.state=r;}async function Ui(e,t,n,r){let i=e;if(e.url?i=(await Pn(await t.transformRequest(e.url,`Source`),n)).data:await Nr.frameAsync(n,r),!i)return null;let a=Ot(Dt(i,e),[`tiles`,`minzoom`,`maxzoom`,`attribution`,`bounds`,`scheme`,`tileSize`,`encoding`]);return `vector_layers`in i&&i.vector_layers&&(a.vectorLayerIds=i.vector_layers.map(e=>e.id)),a}var Wi=class e{constructor(e,t){e&&(t?this.setSouthWest(e).setNorthEast(t):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])));}setNorthEast(e){return this._ne=e instanceof dm?new dm(e.lng,e.lat):dm.convert(e),this}setSouthWest(e){return this._sw=e instanceof dm?new dm(e.lng,e.lat):dm.convert(e),this}extend(t){let n=this._sw,r=this._ne,i,a;if(t instanceof dm)i=t,a=t;else if(t instanceof e){if(i=t._sw,a=t._ne,!i||!a)return this}else {if(Array.isArray(t))if(t.length===4||t.every(Array.isArray)){let n=t;return this.extend(e.convert(n))}else {let e=t;return this.extend(dm.convert(e))}return t&&(`lng`in t||`lon`in t)&&`lat`in t?this.extend(dm.convert(t)):this}return !n&&!r?(this._sw=new dm(i.lng,i.lat),this._ne=new dm(a.lng,a.lat)):(n.lng=Math.min(i.lng,n.lng),n.lat=Math.min(i.lat,n.lat),r.lng=Math.max(a.lng,r.lng),r.lat=Math.max(a.lat,r.lat)),this}getCenter(){return new dm((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new dm(this.getWest(),this.getNorth())}getSouthEast(){return new dm(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(e){let{lng:t,lat:n}=dm.convert(e),r=this._sw.lat<=n&&n<=this._ne.lat,i=this._sw.lng<=t&&t<=this._ne.lng;return this._sw.lng>this._ne.lng&&(i=this._sw.lng>=t&&t>=this._ne.lng),r&&i}intersects(t){if(t=e.convert(t),!(t.getNorth()>=this.getSouth()&&t.getSouth()<=this.getNorth()))return false;let n=Math.abs(this.getEast()-this.getWest()),r=Math.abs(t.getEast()-t.getWest());if(n>=360||r>=360)return true;let i=Et(this.getWest(),-180,180),a=Et(this.getEast(),-180,180),o=Et(t.getWest(),-180,180),s=Et(t.getEast(),-180,180),c=i>a,l=o>s;return c&&l?true:c?s>=i||o<=a:l?a>=o||i<=s:o<=a&&s>=i}static convert(t){return t instanceof e||!t?t:new e(t)}static fromLngLat(t,n=0){let r=360*n/40075017,i=r/Math.cos(Math.PI/180*t.lat);return new e(new dm(t.lng-i,t.lat-r),new dm(t.lng+i,t.lat+r))}adjustAntiMeridian(){let t=new dm(this._sw.lng,this._sw.lat),n=new dm(this._ne.lng,this._ne.lat);return t.lng>n.lng?new e(t,new dm(n.lng+360,n.lat)):new e(t,n)}},Gi=class{constructor(e,t,n){this.bounds=Wi.convert(this.validateBounds(e)),this.minzoom=t||0,this.maxzoom=n||24;}validateBounds(e){return !Array.isArray(e)||e.length!==4?[-180,-90,180,90]:[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]}contains(e){let t=2**e.z,n={minX:Math.floor(mm(this.bounds.getWest())*t),minY:Math.floor(hm(this.bounds.getNorth())*t),maxX:Math.ceil(mm(this.bounds.getEast())*t),maxY:Math.ceil(hm(this.bounds.getSouth())*t)};return e.x>=n.minX&&e.x<n.maxX&&e.y>=n.minY&&e.y<n.maxY}},Ki=class extends Hn{constructor(e,t,n,r){if(super(),this.id=e,this.dispatcher=n,this.type=`vector`,this.minzoom=0,this.maxzoom=22,this.scheme=`xyz`,this.tileSize=512,this.reparseOverscaled=true,this.isTileClipped=true,this._loaded=false,Dt(this,Ot(t,[`url`,`scheme`,`tileSize`,`promoteId`,`encoding`])),this._options=Dt({type:`vector`},t),this._collectResourceTiming=t.collectResourceTiming,this.tileSize!==512)throw Error(`vector tile sources must have a tileSize of 512`);this.setEventedParent(r);}async load(e=false){this._loaded=false,this.fire(new K(`dataloading`)),this._tileJSONRequest=new AbortController;try{let t=await Ui(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=true,t&&(Dt(this,t),t.bounds&&(this.tileBounds=new Gi(t.bounds,this.minzoom,this.maxzoom)),this.fire(new K(`data`,{sourceDataType:`metadata`})),this.fire(new K(`data`,{sourceDataType:`content`,sourceDataChanged:e})));}catch(e){this._tileJSONRequest=null,this._loaded=true,xn(e)||this.fire(new Vn(it(e)));}}loaded(){return this._loaded}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load();}setSourceProperty(e){this._tileJSONRequest&&this._tileJSONRequest.abort(),e(),this.load(true);}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e;}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e;}),this}onRemove(){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null);}serialize(){return Dt({},this._options)}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),n={request:await this.map._requestManager.transformRequest(t,`Tile`),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,encoding:this.encoding,overzoomParameters:await this._getOverzoomParameters(e),etag:e.etag};n.request.collectResourceTiming=this._collectResourceTiming,await this.dispatcher.waitForInitComplete();let r=`RT`;if(!e.actor||e.state===`expired`)e.actor=this.dispatcher.getReadyActor(),r=`LT`;else if(e.state===`loading`)return new Promise((t,n)=>{e.reloadPromise={resolve:t,reject:n};});e.abortController=new AbortController;try{let t=await e.actor.sendAsync({type:r,data:n},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,t);let i={};return t?.etagUnmodified&&(i.unmodified=true),i}catch(t){if(delete e.abortController,e.aborted||xn(t))return;if(t&&t.status!==404)throw t;this._afterTileLoadWorkerResponse(e,null);}}async _getOverzoomParameters(e){if(e.tileID.canonical.z<=this.maxzoom||this.map._zoomLevelsToOverscale===void 0)return;let t=e.tileID.scaledTo(this.maxzoom).canonical,n=t.url(this.tiles,this.map.getPixelRatio(),this.scheme);return {maxZoomTileID:t,overzoomRequest:await this.map._requestManager.transformRequest(n,`Tile`)}}_afterTileLoadWorkerResponse(e,t){if(t?.resourceTiming&&(e.resourceTiming=t.resourceTiming),t&&this.map._refreshExpiredTiles&&e.setExpiryData(t),e.etag=t?.etag,e.loadVectorData(t,this.map.painter),e.reloadPromise){let t=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(t.resolve).catch(t.reject);}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&await e.actor.sendAsync({type:`AT`,data:{uid:e.uid,type:this.type,source:this.id}});}async unloadTile(e){e.unloadVectorData(),e.actor&&await e.actor.sendAsync({type:`RMT`,data:{uid:e.uid,type:this.type,source:this.id}});}hasTransition(){return false}},qi=class extends Hn{constructor(e,t,n,r){super(),this.id=e,this.dispatcher=n,this.setEventedParent(r),this.type=`raster`,this.minzoom=0,this.maxzoom=22,this.roundZoom=true,this.scheme=`xyz`,this.tileSize=512,this._loaded=false,this._premultiplyAlpha=true,this._options=Dt({type:`raster`},t),Dt(this,Ot(t,[`url`,`scheme`,`tileSize`]));}async load(e=false){this._loaded=false,this.fire(new K(`dataloading`)),this._tileJSONRequest=new AbortController;try{let t=await Ui(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=true,t&&(Dt(this,t),t.bounds&&(this.tileBounds=new Gi(t.bounds,this.minzoom,this.maxzoom)),this.fire(new K(`data`,{sourceDataType:`metadata`})),this.fire(new K(`data`,{sourceDataType:`content`,sourceDataChanged:e})));}catch(e){this._tileJSONRequest=null,this._loaded=true,xn(e)||this.fire(new Vn(it(e)));}}loaded(){return this._loaded}onAdd(e){this.map=e,this.load();}onRemove(){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null);}setSourceProperty(e){this._tileJSONRequest&&=(this._tileJSONRequest.abort(),null),e(),this.load(true);}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e;}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e;}),this}serialize(){return Dt({},this._options)}setPremultiplyAlpha(e){return this._premultiplyAlpha===e||this.setSourceProperty(()=>{this._premultiplyAlpha=e;}),this}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),n=this._premultiplyAlpha,r=n?void 0:{premultiplyAlpha:`none`},i=await this.map._requestManager.transformRequest(t,`Tile`);e.abortController=new AbortController;try{let t=await Rr.getImage(i,e.abortController,this.map._refreshExpiredTiles,r);if(delete e.abortController,e.aborted){e.state=`unloaded`;return}if(t?.data){this.map._refreshExpiredTiles&&(t.cacheControl||t.expires)&&e.setExpiryData({cacheControl:t.cacheControl,expires:t.expires});let r=this.map.painter.context,i=r.gl,a=t.data;e.texture=this.map.painter.getTileTexture(a.width),e.texture?e.texture.update(a,{useMipmap:true,premultiply:n}):(e.texture=new kf$1(r,a,i.RGBA,{useMipmap:true,premultiply:n}),e.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE,i.LINEAR_MIPMAP_NEAREST)),e.state=`loaded`;}}catch(t){if(delete e.abortController,e.aborted)e.state=`unloaded`;else if(t)throw e.state=`errored`,t}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController);}async unloadTile(e){e.texture&&this.map.painter.saveTileTexture(e.texture);}hasTransition(){return false}},Ji=class extends qi{constructor(e,t,n,r){super(e,t,n,r),this.type=`raster-dem`,this.maxzoom=22,this._options=Dt({type:`raster-dem`},t),this.encoding=t.encoding||`mapbox`,this.redFactor=t.redFactor,this.greenFactor=t.greenFactor,this.blueFactor=t.blueFactor,this.baseShift=t.baseShift;}async loadTile(e){let t=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),n=await this.map._requestManager.transformRequest(t,`Tile`);e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{let t=await Rr.getImage(n,e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted){e.state=`unloaded`;return}if(t?.data){let n=t.data;this.map._refreshExpiredTiles&&(t.cacheControl||t.expires)&&e.setExpiryData({cacheControl:t.cacheControl,expires:t.expires});let r=Yt(n)&&f()?n:await this.readImageNow(n),i={type:this.type,uid:e.uid,source:this.id,rawImageData:r,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(e.actor&&e.state!==`expired`&&e.state!==`reloading`)return;await this.dispatcher.waitForInitComplete(),(!e.actor||e.state===`expired`)&&(e.actor=this.dispatcher.getReadyActor()),e.dem=await e.actor.sendAsync({type:`LDT`,data:i}),e.needsHillshadePrepare=true,e.needsTerrainPrepare=true,e.state=`loaded`;}}catch(t){if(delete e.abortController,e.aborted)e.state=`unloaded`;else if(t)throw e.state=`errored`,t}}async readImageNow(e){if(typeof VideoFrame<`u`&&m()){let t=e.width+2,n=e.height+2;try{return new mf$1({width:t,height:n},await en(e,-1,-1,t,n))}catch{}}return Nr.getImageData(e,1)}_getNeighboringTiles(e){let t=e.canonical,n=2**t.z,r=(t.x-1+n)%n,i=t.x===0?e.wrap-1:e.wrap,a=(t.x+1+n)%n,o=t.x+1===n?e.wrap+1:e.wrap,s={};return s[new Fv(e.overscaledZ,i,t.z,r,t.y).key]={backfilled:false},s[new Fv(e.overscaledZ,o,t.z,a,t.y).key]={backfilled:false},t.y>0&&(s[new Fv(e.overscaledZ,i,t.z,r,t.y-1).key]={backfilled:false},s[new Fv(e.overscaledZ,e.wrap,t.z,t.x,t.y-1).key]={backfilled:false},s[new Fv(e.overscaledZ,o,t.z,a,t.y-1).key]={backfilled:false}),t.y+1<n&&(s[new Fv(e.overscaledZ,i,t.z,r,t.y+1).key]={backfilled:false},s[new Fv(e.overscaledZ,e.wrap,t.z,t.x,t.y+1).key]={backfilled:false},s[new Fv(e.overscaledZ,o,t.z,a,t.y+1).key]={backfilled:false}),s}async unloadTile(e){e.demTexture&&this.map.painter.saveTileTexture(e.demTexture),e.fbo&&(e.fbo.destroy(),delete e.fbo),e.dem&&delete e.dem,delete e.neighboringTiles,e.state=`unloaded`,e.actor&&await e.actor.sendAsync({type:`RDT`,data:{type:this.type,uid:e.uid,source:this.id}});}};function Yi(e,t){return t?e.properties[t]:e.id}function Xi(e,t){let n=new Map;if(e==null||e.type==null)return n;if(e.type===`Feature`){let r=Yi(e,t);return r==null?void 0:(n.set(r,e),n)}if(e.type===`FeatureCollection`){let r=new Set;for(let i of e.features){let e=Yi(i,t);if(e==null||r.has(e))return;r.add(e),n.set(e,i);}return n}}function Zi(e,t,n){let r=[];if(t.removeAll)e.clear();else if(t.remove)for(let n of t.remove){let t=e.get(n);t&&(r.push(t.geometry),e.delete(n));}if(t.add)for(let i of t.add){let t=Yi(i,n);if(t==null)continue;let a=e.get(t);a&&r.push(a.geometry),r.push(i.geometry),e.set(t,i);}if(t.update)for(let n of t.update){let t=e.get(n.id);if(!t)continue;let i=!!n.newGeometry,a=n.removeAllProperties||n.removeProperties?.length>0||n.addOrUpdateProperties?.length>0;if(!i&&!a)continue;r.push(t.geometry);let o={...t};if(e.set(n.id,o),i&&(r.push(n.newGeometry),o.geometry=n.newGeometry),a){if(o.properties=n.removeAllProperties?{}:{...o.properties||{}},n.removeProperties)for(let e of n.removeProperties)delete o.properties[e];if(n.addOrUpdateProperties)for(let{key:e,value:t}of n.addOrUpdateProperties)o.properties[e]=t;}}return r}function Qi(e,t,n){if(!e)return t||{};if(!t)return e||{};let r=ra(e),i=ra(t);$i(r,i);let a={};if((r.removeAll||i.removeAll)&&(a.removeAll=true),a.remove=new Set([...r.remove,...i.remove]),a.add=new Map([...r.add,...i.add]),a.update=new Map([...r.update,...i.update]),a.remove.size&&a.add.size)for(let e of a.add.keys())a.remove.delete(e);let o=ia(a);return o}function $i(e,t){t.removeAll&&(e.add.clear(),e.update.clear(),e.remove.clear(),t.remove.clear());for(let n of t.remove)e.add.delete(n),e.update.delete(n);for(let[n,r]of t.update){let i=e.update.get(n);i&&(t.update.set(n,ea(i,r)),e.update.delete(n));}}function ea(e,t){let n={id:e.id};if(t.removeAllProperties&&(delete e.removeProperties,delete e.addOrUpdateProperties,delete t.removeProperties),t.removeProperties)for(let n of t.removeProperties){let t=e.addOrUpdateProperties.findIndex(e=>e.key===n);t>-1&&e.addOrUpdateProperties.splice(t,1);}return (e.removeAllProperties||t.removeAllProperties)&&(n.removeAllProperties=true),(e.removeProperties||t.removeProperties)&&(n.removeProperties=[...e.removeProperties||[],...t.removeProperties||[]]),(e.addOrUpdateProperties||t.addOrUpdateProperties)&&(n.addOrUpdateProperties=[...e.addOrUpdateProperties||[],...t.addOrUpdateProperties||[]]),(e.newGeometry||t.newGeometry)&&(n.newGeometry=t.newGeometry||e.newGeometry),n}function ra(e){if(!e)return {};let t={};return t.removeAll=e.removeAll,t.remove=new Set(e.remove||[]),t.add=new Map(e.add?.map(e=>[e.id,e])),t.update=new Map(e.update?.map(e=>[e.id,e])),t}function ia(e){let t={};return e.removeAll&&(t.removeAll=e.removeAll),e.remove&&(t.remove=Array.from(e.remove)),e.add&&(t.add=Array.from(e.add.values())),e.update&&(t.update=Array.from(e.update.values())),t}function aa(e){return !e||e.length===0?[]:typeof e[0]==`number`?[e]:e.flatMap(e=>aa(e))}function oa(e){return e.type===`GeometryCollection`?e.geometries.flatMap(e=>oa(e)):aa(e.coordinates)}function sa(e){let t=new Wi,n;switch(e.type){case `FeatureCollection`:n=e.features.flatMap(e=>oa(e.geometry));break;case `Feature`:n=oa(e.geometry);break;default:n=oa(e);}if(n.length===0)return t;for(let e of n){let[n,r]=e;t.extend([n,r]);}return t}function ca({x:e,y:t,z:n},r=0){let i=_m((e-r)/2**n),a=vm((t+1+r)/2**n),o=_m((e+1+r)/2**n),s=vm((t-r)/2**n);return new Wi([i,a],[o,s])}var la=class extends Hn{constructor(e,t,n,r){super(),this.id=e,this.type=`geojson`,this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=true,this.reparseOverscaled=true,this._removed=false,this._isUpdatingWorker=false,this._pendingWorkerUpdate={data:t.data},this.actorPromise=n.getActor(),this.setEventedParent(r),this._data=typeof t.data==`string`?{url:t.data}:{geojson:t.data},this._options=Dt({},t),this._collectResourceTiming=t.collectResourceTiming,t.maxzoom!==void 0&&(this.maxzoom=t.maxzoom),t.type&&(this.type=t.type),t.attribution&&(this.attribution=t.attribution),this.promoteId=t.promoteId,t.clusterMaxZoom!==void 0&&this.maxzoom<=t.clusterMaxZoom&&Vt(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${t.clusterMaxZoom}".`),this.workerOptions=Dt({source:this.id,geojsonVtOptions:{buffer:this._pixelsToTileUnits(t.buffer===void 0?128:t.buffer),tolerance:this._pixelsToTileUnits(t.tolerance===void 0?.375:t.tolerance),extent:j,maxZoom:this.maxzoom,lineMetrics:t.lineMetrics||false,generateId:t.generateId||false,promoteId:typeof t.promoteId==`string`?t.promoteId:void 0,cluster:t.cluster||false,clusterOptions:{maxZoom:this._getClusterMaxZoom(t.clusterMaxZoom),minPoints:Math.max(2,t.clusterMinPoints||2),extent:j,radius:this._pixelsToTileUnits(t.clusterRadius||50),log:false,generateId:t.generateId||false}},clusterProperties:t.clusterProperties,filter:t.filter},t.workerOptions);}_hasPendingWorkerUpdate(){return this._pendingWorkerUpdate.data!==void 0||this._pendingWorkerUpdate.diff!==void 0||this._pendingWorkerUpdate.updateCluster}_pixelsToTileUnits(e){return e*(j/this.tileSize)}_tileUnitsToPixels(e){return e/(j/this.tileSize)}_getClusterMaxZoom(e){let t=e?Math.round(e):this.maxzoom-1;return Number.isInteger(e)||e===void 0||Vt(`Integer expected for option 'clusterMaxZoom': provided value "${e}" rounded to "${t}"`),t}async load(){await this._updateWorkerData();}onAdd(e){this.map=e,this.load();}setData(e){return this._data=typeof e==`string`?{url:e}:{geojson:e},this._pendingWorkerUpdate={data:e},this._updateWorkerData()}updateData(e){return this._pendingWorkerUpdate.diff=Qi(this._pendingWorkerUpdate.diff,e),this._updateWorkerData()}async getData(){return this._data.url&&await this.once(`data`),this._data.geojson?this._data.geojson:{type:`FeatureCollection`,features:Array.from(this._data.updateable.values())}}async getBounds(){return sa(await this.getData())}setClusterOptions(e){return this.workerOptions.geojsonVtOptions.cluster=e.cluster,e.clusterRadius!==void 0&&(this.workerOptions.geojsonVtOptions.clusterOptions.radius=this._pixelsToTileUnits(e.clusterRadius)),e.clusterMaxZoom!==void 0&&(this.workerOptions.geojsonVtOptions.clusterOptions.maxZoom=this._getClusterMaxZoom(e.clusterMaxZoom)),this._pendingWorkerUpdate.updateCluster=true,this._updateWorkerData()}getClusterOptions(){let{cluster:e,clusterOptions:t}=this.workerOptions.geojsonVtOptions;return {cluster:e,clusterMaxZoom:t.maxZoom,clusterRadius:this._tileUnitsToPixels(t.radius)}}async getClusterExpansionZoom(e){return (await this.actorPromise).sendAsync({type:`GCEZ`,data:{type:this.type,clusterId:e,source:this.id}})}async getClusterChildren(e){return (await this.actorPromise).sendAsync({type:`GCC`,data:{type:this.type,clusterId:e,source:this.id}})}async getClusterLeaves(e,t,n){return (await this.actorPromise).sendAsync({type:`GCL`,data:{type:this.type,source:this.id,clusterId:e,limit:t,offset:n}})}async _updateWorkerData(){if(this._isUpdatingWorker)return this._updatePromise;if(!this._hasPendingWorkerUpdate()){Vt(`No pending worker updates for GeoJSONSource ${this.id}.`);return}let{data:e,diff:t,updateCluster:n}=this._pendingWorkerUpdate,r=this._getLoadGeoJSONParameters(e,t,n);e===void 0?t?this._pendingWorkerUpdate.diff=void 0:n&&(this._pendingWorkerUpdate.updateCluster=void 0):this._pendingWorkerUpdate.data=void 0,this._updatePromise=this._dispatchWorkerUpdate(r),await this._updatePromise;}async _getLoadGeoJSONParameters(e,t,n){let r=Dt({type:this.type,source:this.id},this.workerOptions);if(typeof e==`string`)return r.request=await this.map._requestManager.transformRequest(Nr.resolveURL(e),`Source`),r.request.collectResourceTiming=this._collectResourceTiming,r;if(e!==void 0)return r.data=e,r;if(t)return r.dataDiff=t,r;if(n)return r.updateCluster=true,r}async _dispatchWorkerUpdate(e){this._isUpdatingWorker=true,this.fire(new K(`dataloading`));try{let t=await e,n=await(await this.actorPromise).sendAsync({type:`LD`,data:t});if(this._isUpdatingWorker=false,this._removed||n.abandoned){this.fire(new K(`dataabort`));return}n.data&&(this._data={geojson:n.data});let r=this._applyDiffToSource(t.dataDiff),i=this._getShouldReloadTileOptions(r),a={};this._applyResourceTiming(a,n),this.fire(new K(`data`,{...a,sourceDataType:`metadata`})),this.fire(new K(`data`,{...a,sourceDataType:`content`,shouldReloadTileOptions:i}));}catch(e){if(this._isUpdatingWorker=false,this._removed){this.fire(new K(`dataabort`));return}this.fire(new Vn(it(e)));}finally{this._hasPendingWorkerUpdate()&&await this._updateWorkerData();}}_applyResourceTiming(e,t){if(!this._collectResourceTiming)return;let n=t.resourceTiming?.[this.id];if(!n)return;let r=n.slice(0);r?.length&&Dt(e,{resourceTiming:r});}_applyDiffToSource(e){if(!e)return;let t=typeof this.promoteId==`string`?this.promoteId:void 0;if(!this._data.url&&!this._data.updateable){let e=Xi(this._data.geojson,t);if(!e)throw Error(`GeoJSONSource "${this.id}": GeoJSON data is not compatible with updateData`);this._data={updateable:e};}if(!this._data.updateable)return;let n=Zi(this._data.updateable,e,t);if(!(e.removeAll||this._options.cluster))return n}_getShouldReloadTileOptions(e){if(e)return {affectedBounds:e.filter(Boolean).map(e=>sa(e))}}shouldReloadTile(e,{affectedBounds:t}){if(e.state===`loading`)return true;if(e.state===`unloaded`)return false;let{buffer:n,extent:r}=this.workerOptions.geojsonVtOptions,i=ca(e.tileID.canonical,n/r);for(let e of t)if(i.intersects(e))return true;return false}loaded(){return !this._isUpdatingWorker&&!this._hasPendingWorkerUpdate()}async loadTile(e){let t=e.actor?`RT`:`LT`;e.actor=await this.actorPromise;let n={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};e.abortController=new AbortController;try{let r=await(await this.actorPromise).sendAsync({type:t,data:n},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(r,this.map.painter,t===`RT`);}catch(t){if(delete e.abortController,e.aborted||xn(t))return;throw t}}async abortTile(e){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=true;}async unloadTile(e){e.unloadVectorData(),await(await this.actorPromise).sendAsync({type:`RMT`,data:{uid:e.uid,type:this.type,source:this.id}});}onRemove(){this._removed=true,this.actorPromise.then(e=>e.sendAsync({type:`RS`,data:{type:this.type,source:this.id}}));}serialize(){return Dt({},this._options,{type:this.type,data:this._data.updateable?{type:`FeatureCollection`,features:Array.from(this._data.updateable.values())}:this._data.url||this._data.geojson})}hasTransition(){return false}},ua=class extends Hn{constructor(e,t,n,r){super(),this.flippedWindingOrder=false,this.id=e,this.dispatcher=n,this.coordinates=t.coordinates,this.type=`image`,this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=false,this.setEventedParent(r),this.options=t;}async load(e){this._loaded=false,this.fire(new K(`dataloading`)),this.url=this.options.url;let t=await this.map._requestManager.transformRequest(this.url,`Image`);this._request=new AbortController;try{let n=await Rr.getImage(t,this._request);this._request=null,this._loaded=true,n?.data&&(this.image=n.data,e&&(this.coordinates=e),this._finishLoading());}catch(e){this._request=null,this._loaded=true,xn(e)||this.fire(new Vn(it(e)));}}loaded(){return this._loaded}updateImage(e){return this._request&&=(this._request.abort(),null),`image`in e?(this._loaded=true,this.image=e.image,e.coordinates&&(this.coordinates=e.coordinates),this.texture=null,this._finishLoading(),this):e.url?(this.options.url=e.url,this.load(e.coordinates).finally(()=>this.texture=null),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new K(`data`,{sourceDataType:`metadata`})));}onAdd(e){this.map=e,this.load();}onRemove(){this._request&&=(this._request.abort(),null);}setCoordinates(e){this.coordinates=e;let t=e.map(xm.fromLngLat);return this.tileID=da(t),this.terrainTileRanges=this._getOverlappingTileRanges(t),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=t.map(e=>this.tileID.getTilePoint(e)._round()),this.flippedWindingOrder=fa(this.tileCoords),this.fire(new K(`data`,{sourceDataType:`content`})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;let e=this.map.painter.context,t=e.gl;this.texture||(this.texture=new kf$1(e,this.image,t.RGBA),this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE));let n=false;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,n=true);}n&&this.fire(new K(`data`,{sourceDataType:`idle`,sourceId:this.id}));}async loadTile(e){this.tileID?.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state=`errored`;}serialize(){return {type:`image`,url:this.options.url,coordinates:this.coordinates}}hasTransition(){return false}_getOverlappingTileRanges(e){let{minX:t,minY:n,maxX:r,maxY:i}=Hv.fromPoints(e),a={};for(let e=0;e<=25;e++){let o=2**e,s=Math.floor(t*o),c=Math.floor(n*o),l=Math.floor(r*o),u=Math.floor(i*o),d=(s%o+o)%o,f=l%o,p=Math.floor(s/o),m=Math.floor(l/o);a[e]={minWrap:p,maxWrap:m,minTileXWrapped:d,maxTileXWrapped:f,minTileY:c,maxTileY:u};}return a}};function da(e){let t=Hv.fromPoints(e),n=t.width(),r=t.height(),i=Math.max(0,Math.floor(-Math.log(Math.max(n,r))/Math.LN2)),a=2**i;return new Nv(i,Math.floor((t.minX+t.maxX)/2*a),Math.floor((t.minY+t.maxY)/2*a))}function fa(e){let t=e[1].x-e[0].x,n=e[1].y-e[0].y,r=e[2].x-e[0].x;return t*(e[2].y-e[0].y)-n*r<0}var pa=class extends ua{constructor(e,t,n,r){super(e,t,n,r),this._onPlayingHandler=()=>{this.map?.triggerRepaint();},this.roundZoom=true,this.type=`video`,this.options=t;}async load(){this._loaded=false;let e=this.options;this.urls=[];for(let t of e.urls)this.urls.push((await this.map._requestManager.transformRequest(t,`Source`)).url);try{let e=await Ln(this.urls);if(this._loaded=true,!e)return;this.video=e,this.video.loop=true,this.video.addEventListener(`playing`,this._onPlayingHandler),this.map&&this.video.play(),this._finishLoading();}catch(e){this.fire(new Vn(it(e)));}}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(e){if(this.video){let t=this.video.seekable;e<t.start(0)||e>t.end(0)?this.fire(new Vn(new P(`sources.${this.id}`,null,`Playback for this video can be set only between the ${t.start(0)} and ${t.end(0)}-second mark.`))):this.video.currentTime=e;}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}onRemove(){super.onRemove(),this.video&&(this.video.removeEventListener(`playing`,this._onPlayingHandler),this.video.pause());}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let e=this.map.painter.context,t=e.gl;this.texture?this.video.paused||(this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE),t.texSubImage2D(t.TEXTURE_2D,0,0,0,t.RGBA,t.UNSIGNED_BYTE,this.video)):(this.texture=new kf$1(e,this.video,t.RGBA),this.texture.bind(t.LINEAR,t.CLAMP_TO_EDGE));let n=false;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,n=true);}n&&this.fire(new K(`data`,{sourceDataType:`idle`,sourceId:this.id}));}serialize(){return {type:`video`,urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},ma=class extends ua{constructor(e,t,n,r){super(e,t,n,r),t.coordinates?(!Array.isArray(t.coordinates)||t.coordinates.length!==4||t.coordinates.some(e=>!Array.isArray(e)||e.length!==2||e.some(e=>typeof e!=`number`)))&&this.fire(new Vn(new P(`sources.${e}`,null,`"coordinates" property must be an array of 4 longitude/latitude array pairs`))):this.fire(new Vn(new P(`sources.${e}`,null,`missing required property "coordinates"`))),t.animate&&typeof t.animate!=`boolean`&&this.fire(new Vn(new P(`sources.${e}`,null,`optional "animate" property must be a boolean value`))),t.canvas?typeof t.canvas!=`string`&&!(t.canvas instanceof HTMLCanvasElement)&&this.fire(new Vn(new P(`sources.${e}`,null,`"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance`))):this.fire(new Vn(new P(`sources.${e}`,null,`missing required property "canvas"`))),this.options=t,this.animate=t.animate===void 0||t.animate;}async load(){if(this._loaded=true,this.canvas||=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()){this.fire(new Vn(Error(`Canvas dimensions cannot be less than or equal to zero.`)));return}this.play=function(){this._playing=true,this.map.triggerRepaint();},this.pause=function(){this._playing&&=(this.prepare(),false);},this._finishLoading();}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}prepare(){let e=false;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=true),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=true),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let t=this.map.painter.context,n=t.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:true}):(this.texture=new kf$1(t,this.canvas,n.RGBA,{premultiply:true}),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let r=false;for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture,r=true);}r&&this.fire(new K(`data`,{sourceDataType:`idle`,sourceId:this.id}));}serialize(){return {type:`canvas`,animate:this.animate,canvas:this.options.canvas,coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let e of [this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return true;return false}};const ha={},ga=(e,t,n,r)=>{let i=new(_a(t.type))(e,t,n,r);if(i.id!==e)throw Error(`Expected Source id to be ${e} instead of ${i.id}`);return i},_a=e=>{switch(e){case `geojson`:return la;case `image`:return ua;case `raster`:return qi;case `raster-dem`:return Ji;case `vector`:return Ki;case `video`:return pa;case `canvas`:return ma}return ha[e]},va=(e,t)=>{ha[e]=t;},ya=async(e,t)=>{if(_a(e))throw Error(`A source type called "${e}" already exists.`);va(e,t);};function ba(e,t){let n={};if(!t)return n;for(let r of e){let e=r.layerIds.map(e=>t.getLayer(e)).filter(Boolean);if(e.length!==0){r.layers=e,r.stateDependentLayerIds&&(r.stateDependentLayers=r.stateDependentLayerIds.map(t=>e.filter(e=>e.id===t)[0]));for(let t of e)n[t.id]=r;}}return n}const xa=`RTLPluginLoaded`;var Sa=class extends Hn{constructor(...e){super(...e),this.status=`unavailable`,this.url=null,this.dispatcher=Mi();}_syncState(e){return this.status=e,this.dispatcher.broadcast(`SRPS`,{pluginStatus:e,pluginURL:this.url}).catch(e=>{throw this.status=`error`,e})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status=`unavailable`,this.url=null;}async setRTLTextPlugin(e,t=false){if(this.url)throw Error(`setRTLTextPlugin cannot be called multiple times.`);if(this.url=Nr.resolveURL(e),!this.url)throw Error(`requested url ${e} is invalid`);if(this.status===`unavailable`)if(t)this.status=`deferred`,this._syncState(this.status);else return this._requestImport();else if(this.status===`requested`)return this._requestImport()}async _requestImport(){await this._syncState(`loading`),this.status=`loaded`,this.fire(new Bn(xa));}lazyLoad(){this.status===`unavailable`?this.status=`requested`:this.status===`deferred`&&this._requestImport();}};let Ca=null;function wa(){return Ca||=new Sa,Ca}var Ta=class{constructor(e,t){this.timeAdded=0,this.fadeEndTime=0,this.fadeOpacity=1,this.tileID=e,this.uid=At(),this.uses=0,this.tileSize=t,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=false,this.hasRTLText=false,this.dependencies={},this.rttObjects=[],this.rttFingerprint={},this.expiredRequestCount=0,this.state=`loading`,this.featureStateRevision=-1;}isRenderable(e){return this.hasData()&&(!this.fadeEndTime||this.fadeOpacity>0)&&(e||!this.holdingForSymbolFade())}setCrossFadeLogic({fadingRole:e,fadingDirection:t,fadingParentID:n,fadeEndTime:r}){this.resetFadeLogic(),this.fadingRole=e,this.fadingDirection=t,this.fadingParentID=n,this.fadeEndTime=r;}setSelfFadeLogic(e){this.resetFadeLogic(),this.selfFading=true,this.fadeEndTime=e;}resetFadeLogic(){this.fadingRole=null,this.fadingDirection=null,this.fadingParentID=null,this.selfFading=false,this.timeAdded=U(),this.fadeEndTime=0,this.fadeOpacity=1;}wasRequested(){return this.state===`errored`||this.state===`loaded`||this.state===`reloading`}clearTextures(e){this.demTexture&&e.saveTileTexture(this.demTexture),this.demTexture=null;}getRTT(e){return this.rttObjects[e]}acquireRTT(e,t,n){return this.rttObjects[t]=e.acquireRTT(n)}releaseRTT(e){if(this.rttObjects.length!==0){for(let t of this.rttObjects)t&&e.releaseRTT(t);this.rttObjects.length=0;}}loadVectorData(e,t,n){if(e?.etagUnmodified===true){this.state=`loaded`;return}if(this.hasData()&&this.unloadVectorData(),this.state=`loaded`,!e){this.collisionBoxArray=new ou$1;return}e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestEncoding=e.encoding,this.latestFeatureIndex.rawTileData=e.rawTileData,this.latestFeatureIndex.encoding=e.encoding):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData,this.latestFeatureIndex.encoding=this.latestEncoding)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=ba(e.buckets,t?.style),this.hasSymbolBuckets=false;for(let e in this.buckets){let t=this.buckets[e];if(t instanceof cv)if(this.hasSymbolBuckets=true,n)t.justReloaded=true;else break}if(this.hasRTLText=false,this.hasSymbolBuckets)for(let e in this.buckets){let t=this.buckets[e];if(t instanceof cv&&t.hasRTLText){this.hasRTLText=true,wa().lazyLoad();break}}this.queryPadding=0;for(let e in this.buckets){let n=this.buckets[e];this.queryPadding=Math.max(this.queryPadding,t.style.getLayer(e).queryRadius(n));}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),this.dashPositions=e.dashPositions;}unloadVectorData(){for(let e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.imageAtlas=null,this.dashPositions=null,this.latestFeatureIndex=null,this.state=`unloaded`;}getBucket(e){return this.buckets[e.id]}upload(e){for(let t in this.buckets){let n=this.buckets[t];n.uploadPending()&&n.upload(e);}let t=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new kf$1(e,this.imageAtlas.image,t.RGBA),this.imageAtlas.uploaded=true),this.glyphAtlasImage&&=(this.glyphAtlasTexture=new kf$1(e,this.glyphAtlasImage,t.ALPHA),null);}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture);}queryRenderedFeatures(e,t,n,r,i,a,o,s,c,l,u){return this.latestFeatureIndex?.rawTileData?this.latestFeatureIndex.query({queryGeometry:r,cameraQueryGeometry:i,scale:a,tileSize:this.tileSize,pixelPosMatrix:l,transform:s,params:o,queryPadding:this.queryPadding*c,getElevation:u},e,t,n):{}}querySourceFeatures(e,t){let n=this.latestFeatureIndex;if(!n?.rawTileData)return;let i=n.loadVTLayers(),a=t?.sourceLayer?t.sourceLayer:``,o=i._geojsonTileLayer||i[a];if(!o)return;let s=_s$1(t?.filter,`querySourceFeatures[${a}].filter`,t?.globalState),{z:c,x:l,y:u}=this.tileID.canonical,d={z:c,x:l,y:u};for(let t=0;t<o.length;t++){let i=o.feature(t);if(s.needGeometry){let e=Cd$1(i,true);if(!s.filter(new G$1(this.tileID.overscaledZ),e,this.tileID.canonical))continue}else if(!s.filter(new G$1(this.tileID.overscaledZ),i))continue;let f=n.getId(i,a),p=new ny(i,c,l,u,f);p.tile=d,e.push(p);}}hasData(){return this.state===`loaded`||this.state===`reloading`||this.state===`expired`}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(e){let t=this.expirationTime;if(e.cacheControl){let t=Kt(e.cacheControl);t[`max-age`]&&(this.expirationTime=Date.now()+t[`max-age`]*1e3);}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){let e=Date.now(),n=false;if(this.expirationTime>e)n=false;else if(!t)n=true;else if(this.expirationTime<t)n=true;else {let r=this.expirationTime-t;r?this.expirationTime=e+Math.max(r,3e4):n=true;}n?(this.expiredRequestCount++,this.state=`expired`):this.expiredRequestCount=0;}}getExpiryTimeout(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),2**31-1)}setFeatureState(e,t,n){if(!this.latestFeatureIndex?.rawTileData||Object.keys(e).length===0||this.featureStateRevision===n)return;this.featureStateRevision=n;let r=this.latestFeatureIndex.loadVTLayers();for(let n in this.buckets){if(!t.style.hasLayer(n))continue;let i=this.buckets[n],a=i.layers[0].sourceLayer||`_geojsonTileLayer`,o=r[a],s=e[a];if(!o||!s||s.length===0)continue;i.update(s,o,this.imageAtlas?.patternPositions||{},this.dashPositions||{});let c=t?.style?.getLayer(n);c&&(this.queryPadding=Math.max(this.queryPadding,c.queryRadius(i)));}}holdingForSymbolFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return !this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<U()}clearSymbolFadeHold(){this.symbolFadeHoldUntil=void 0;}setSymbolHoldDuration(e){this.symbolFadeHoldUntil=U()+e;}setDependencies(e,t){let n={};for(let e of t)n[e]=true;this.dependencies[e]=n;}hasDependency(e,t){for(let n of e){let e=this.dependencies[n];if(e){for(let n of t)if(e[n])return true}}return false}};function Ea(e){let t=[];for(let n in e)t.push({id:n,state:e[n]});return t}var Da=class{constructor(){this.state={},this.stateChanges={},this.deletedStates={},this.revision=0;}updateState(e,t,n){let r=String(t);if(this.stateChanges[e]||={},this.stateChanges[e][r]||={},Dt(this.stateChanges[e][r],n),this.deletedStates[e]===null){this.deletedStates[e]={};for(let t in this.state[e])if(t===r){this.deletedStates[e][r]={};for(let i in this.state[e][t])n[i]===void 0&&(this.deletedStates[e][r][i]=null);}else this.deletedStates[e][t]=null;}else if(this.deletedStates[e]?.[r]===null){this.deletedStates[e][r]={};for(let t in this.state[e][r])n[t]===void 0&&(this.deletedStates[e][r][t]=null);}else for(let t in n)this.deletedStates[e]?.[r]?.[t]===null&&delete this.deletedStates[e][r][t];}removeFeatureState(e,t,n){if(this.deletedStates[e]===null)return;let r=String(t);if(this.deletedStates[e]||={},n&&t!==void 0)this.deletedStates[e][r]!==null&&(this.deletedStates[e][r]||={},this.deletedStates[e][r][n]=null);else if(t!==void 0)if(this.stateChanges[e]?.[r])for(n in this.deletedStates[e][r]={},this.stateChanges[e][r])this.deletedStates[e][r][n]=null;else this.deletedStates[e][r]=null;else this.deletedStates[e]=null;}getState(e,t){let n=String(t),r=this.state[e]||{},i=this.stateChanges[e]||{},a=Dt({},r[n],i[n]);if(this.deletedStates[e]===null)return {};if(this.deletedStates[e]){let n=this.deletedStates[e][t];if(n===null)return {};for(let e in n)delete a[e];}return a}initializeTileState(e,t){let n={};for(let e in this.state)n[e]=Ea(this.state[e]);e.setFeatureState(n,t,this.revision);}coalesceChanges(e,t){let n={};for(let e in this.stateChanges){this.state[e]||={},n[e]||={};for(let t in this.stateChanges[e])this.state[e][t]||={},Dt(this.state[e][t],this.stateChanges[e][t]),n[e][t]=this.state[e][t];}for(let e in this.deletedStates)if(this.state[e]||={},n[e]||={},this.deletedStates[e]===null)for(let t in this.state[e])this.state[e][t]={},n[e][t]={};else for(let t in this.deletedStates[e]){if(this.deletedStates[e][t]===null)this.state[e][t]={};else for(let n of Object.keys(this.deletedStates[e][t]))delete this.state[e][t][n];n[e][t]=this.state[e][t];}if(this.stateChanges={},this.deletedStates={},Object.keys(n).length===0)return;this.revision++;let r={};for(let e in n)r[e]=Ea(n[e]);e.setFeatureState(r,t,this.revision);}};function Oa(e,t,n){let r=t.intersectsFrustum(e);if(!n||r===0)return r;let i=t.intersectsPlane(n);return i===0?0:r===2&&i===2?2:1}function ka(e,t,n){let r=0,i=(n-t)/10;for(let a=0;a<10;a++){let o=t+(a+.5)/10*(n-t);r+=i*Math.cos(o)**+e;}return r}function Aa(e,n){return function(r,i,a,o,s){let c=2*((e-1)/Pt(Math.cos(sn(Sm-s))/Math.cos(sn(Sm)))-1),l=Math.acos(a/o),u=2*ka(c-1,0,sn(s/2)),d=Math.min(sn(Sm),l+sn(s/2)),f=Math.min(d,l-sn(s/2)),p=ka(c-1,f,d),m=Math.atan(i/a),h=Math.hypot(i,a),g=r;return g+=Pt(o/h/Math.max(.5,Math.cos(sn(s/2)))),g+=c*Pt(Math.cos(m))/2,g-=Pt(Math.max(1,p/u/n))/2,g}}const ja=Aa(9.314,3);function Ma(e,t){let n=(t.roundZoom?Math.round:Math.floor)(e.zoom+Pt(e.tileSize/t.tileSize));return Math.max(0,n)}function Na(e){let t=Sm-e.pitch-e.fov/2,n=Tt((15-t)/15,0,1);return e.elevation+n*500}function Pa(e,t){let n=e.getCameraFrustum(),r=e.getClippingPlane(),i=e.screenPointToMercatorCoordinate(e.getCameraPoint()),a=xm.fromLngLat(e.center,e.elevation);i.z=a.z+Math.cos(e.pitchInRadians)*e.cameraToCenterDistance/e.worldSize;let o=Na(e),s=e.getCoveringTilesDetailsProvider(),c=s.allowVariableZoom(e,t),l=Ma(e,t),u=t.minzoom||0,d=t.maxzoom===void 0?e.maxZoom:t.maxzoom,f=Math.min(Math.max(0,l),d),p=2**f,m=[p*i.x,p*i.y,0],h=[p*a.x,p*a.y,0],g=Math.hypot(a.x-i.x,a.y-i.y),_=Math.abs(a.z-i.z),v=Math.hypot(g,_),y=e=>({zoom:0,x:0,y:0,wrap:e,fullyVisible:false}),b=[],x=[];if(e.renderWorldCopies&&s.allowWorldCopies())for(let e=1;e<=3;e++)b.push(y(-e)),b.push(y(e));for(b.push(y(0));b.length>0;){let p=b.pop(),g=p.x,y=p.y,S=p.fullyVisible,C={x:g,y,z:p.zoom},w=s.getTileBoundingVolume(C,p.wrap,o,t);if(!S){let e=Oa(n,w,r);if(e===0)continue;S=e===2;}let T=s.distanceToTile2d(i.x,i.y,C,w),E=l;c&&(E=(t.calculateTileZoom||ja)(e.zoom+Pt(e.tileSize/t.tileSize),T,_,v,e.fov)),E=(t.roundZoom?Math.round:Math.floor)(E),E=Math.max(0,E);let D=Math.min(E,d);if(p.wrap=s.getWrap(a,C,p.wrap),p.zoom>=D){if(p.zoom<u)continue;let e=f-p.zoom,n=m[0]-.5-(g<<e),r=m[1]-.5-(y<<e),i=t.reparseOverscaled?Math.max(p.zoom,E):p.zoom;x.push({tileID:new Fv(p.zoom===d?i:p.zoom,p.wrap,p.zoom,g,y),distanceSq:tt([h[0]-.5-g,h[1]-.5-y]),tileDistanceToCamera:Math.sqrt(n*n+r*r)});continue}for(let e=0;e<4;e++){let t=(g<<1)+e%2,n=(y<<1)+(e>>1),r=p.zoom+1;b.push({zoom:r,x:t,y:n,wrap:p.wrap,fullyVisible:S});}}return x.sort((e,t)=>e.distanceSq-t.distanceSq).map(e=>e.tileID)}const Fa=Hv.fromPoints([new l(0,0),new l(j,j)]);function Ia(e){return e===`raster`||e===`image`||e===`video`}function La(e,t,n,r,i,a,o){let s=U(),c=xt(t);for(let l of t){let t=e.getTileById(l.key);(t.fadingDirection===0||t.fadeOpacity===0)&&t.resetFadeLogic(),!Ra(e,t,n,s,r,i,o)&&(za(e,t,n,s,a,o)||Va(t,c,s,o)||t.resetFadeLogic());}}function Ra(e,t,n,r,i,a,o){if(!t.hasData())return false;let{tileID:s,fadingRole:c,fadingDirection:l,fadingParentID:u}=t;if(c===0&&l===1&&u)return n[u.key]=u,true;let d=Math.max(s.overscaledZ-i,a);for(let i=s.overscaledZ-1;i>=d;i--){let a=s.scaledTo(i),c=e.getLoadedTile(a);if(c)return t.setCrossFadeLogic({fadingRole:0,fadingDirection:1,fadingParentID:c.tileID,fadeEndTime:r+o}),c.setCrossFadeLogic({fadingRole:1,fadingDirection:0,fadeEndTime:r+o}),n[a.key]=a,true}return false}function za(e,t,n,r,i,a){if(!t.hasData())return false;let o=t.tileID.children(i),s=Ba(e,t,o,n,r,i,a);if(s)return true;for(let c of o)Ba(e,t,c.children(i),n,r,i,a)&&(s=true);return s}function Ba(e,t,n,r,i,a,o){if(n[0].overscaledZ>=a)return false;let s=false;for(let a of n){let n=e.getLoadedTile(a);if(!n)continue;let{fadingRole:c,fadingDirection:l,fadingParentID:u}=n;(c!==0||l!==0||!u)&&(n.setCrossFadeLogic({fadingRole:0,fadingDirection:0,fadingParentID:t.tileID,fadeEndTime:i+o}),t.setCrossFadeLogic({fadingRole:1,fadingDirection:1,fadeEndTime:i+o})),r[a.key]=a,s=true;}return s}function Va(e,t,n,r){let i=e.tileID;if(e.selfFading)return true;if(e.hasData())return false;if(t.has(i)){let t=n+r;return e.setSelfFadeLogic(t),true}return false}function Ha(e,t){if(t<=0)return false;let n=U();for(let t of e.getAllTiles())if(t.fadeEndTime>=n)return true;return false}function Ua(e,t){let n=t.getRenderableIds();for(let r of n){if(!e.neighboringTiles?.[r])continue;let n=t.getTileById(r);e.neighboringTiles[r].backfilled||Wa(e,n),!n.neighboringTiles?.[e.tileID.key]?.backfilled&&Wa(n,e);}}function Wa(e,t){e.needsHillshadePrepare=true,e.needsTerrainPrepare=true;let n=t.tileID.canonical.x-e.tileID.canonical.x,r=t.tileID.canonical.y-e.tileID.canonical.y,i=2**e.tileID.canonical.z,a=t.tileID.key;(n!==0||r!==0)&&(Math.abs(r)>1||(Math.abs(n)>1&&(Math.abs(n+i)===1?n+=i:Math.abs(n-i)===1&&(n-=i)),!(!t.dem||!e.dem)&&(e.dem.backfillBorder(t.dem,n,r),e.neighboringTiles?.[a]&&(e.neighboringTiles[a].backfilled=true))));}var Ga=class{constructor(){this._tiles={};}handleWrapJump(e){let t={};for(let n in this._tiles){let r=this._tiles[n];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),t[r.tileID.key]=r;}this._tiles=t;}setFeatureState(e,t,n){for(let r in this._tiles)this._tiles[r].setFeatureState(e,t,n);}getAllTiles(){return Object.values(this._tiles)}getAllIds(e=false){return e?Object.values(this._tiles).map(e=>e.tileID).sort(Vv).map(e=>e.key):Object.keys(this._tiles)}getTileById(e){return this._tiles[e]}setTile(e,t){this._tiles[e]=t;}deleteTileById(e){delete this._tiles[e];}getLoadedTile(e){let t=this.getTileById(e.key);return t?.hasData()?t:null}isIdRenderable(e,t=false){return this.getTileById(e)?.isRenderable(t)}getRenderableIds(e=0,t){let n=[];for(let e of this.getAllIds())this.isIdRenderable(e,t)&&n.push(this.getTileById(e));return t?n.sort((t,n)=>{let r=t.tileID,i=n.tileID,a=new l(r.canonical.x,r.canonical.y)._rotate(-e),o=new l(i.canonical.x,i.canonical.y)._rotate(-e);return r.overscaledZ-i.overscaledZ||o.y-a.y||o.x-a.x}).map(e=>e.tileID.key):n.map(e=>e.tileID).sort(Vv).map(e=>e.key)}},Ka=class e extends Hn{static{this.maxUnderzooming=10;}static{this.maxOverzooming=3;}constructor(e,t,n){super(),this.id=e,this.dispatcher=n,this.on(`data`,e=>{this._dataHandler(e);}),this.on(`dataloading`,()=>{this._sourceErrored=false;}),this.on(`error`,()=>{this._sourceErrored=this._source.loaded();}),this._source=ga(e,t,n,this),this._inViewTiles=new Ga,this._outOfViewCache=new sC(0,e=>this._unloadTile(e)),this._timers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._rasterFadeDuration=0,this._maxFadingAncestorLevels=5,this._state=new Da,this._didEmitContent=false,this._updated=false;}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source?.onAdd&&this._source.onAdd(e);}onRemove(e){for(let e of this._inViewTiles.getAllTiles())e.unloadVectorData();this.clearTiles(),this._source?.onRemove&&this._source.onRemove(e),this._inViewTiles=new Ga;}loaded(){if(this._sourceErrored)return true;if(!this._sourceLoaded||!this._source.loaded())return false;if((this.used!==void 0||this.usedForTerrain!==void 0)&&!this.used&&!this.usedForTerrain)return true;if(!this._updated)return false;for(let e of this._inViewTiles.getAllTiles())if(e.state!==`loaded`&&e.state!==`errored`)return false;return true}getSource(){return this._source}getState(){return this._state}pause(){this._paused=true;}resume(){if(!this._paused)return;let e=this._shouldReloadOnResume;this._paused=false,this._shouldReloadOnResume=false,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain);}async _loadTile(e,t,n){try{let r=await this._source.loadTile(e);this._tileLoaded(e,t,n,r);}catch(t){e.state=`errored`,t.status===404?this.update(this.transform,this.terrain):this._source.fire(new Vn(it(t),{tile:e}));}}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e);}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new K(`dataabort`,{tile:e,coord:e.tileID}));}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._inViewTiles,this.map?this.map.painter:null);for(let t of this._inViewTiles.getAllTiles())t.upload(e),t.prepare(this.map.style.imageManager);}getIds(){return this._inViewTiles.getAllIds(true)}getRenderableIds(e){return this._inViewTiles.getRenderableIds(this.transform?.bearingInRadians,e)}hasRenderableParent(e){let t=e.overscaledZ-1;if(t>=this._source.minzoom){let n=this.getLoadedTile(e.scaledTo(t));if(n)return this._inViewTiles.isIdRenderable(n.tileID.key)}return false}reload(e,t=void 0){if(this._paused){this._shouldReloadOnResume=true;return}this._outOfViewCache.reset();for(let n of this._inViewTiles.getAllIds()){let r=this._inViewTiles.getTileById(n);t&&!this._source.shouldReloadTile(r,t)||(e?this._reloadTile(n,r.state===`errored`?`loading`:`expired`):r.state!==`errored`&&this._reloadTile(n,`reloading`));}}async _reloadTile(e,t){let n=this._inViewTiles.getTileById(e);n&&(n.state!==`loading`&&(n.state=t),await this._loadTile(n,e,t));}_tileLoaded(e,t,n,r){e.timeAdded=U(),e.selfFading&&(e.fadeEndTime=e.timeAdded+this._rasterFadeDuration),n===`expired`&&(e.refreshedUponExpiration=true),this._setTileReloadTimer(t,e),!r?.unmodified&&(this.getSource().type===`raster-dem`&&e.dem&&Ua(e,this._inViewTiles),e.featureStateRevision=-1,this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new K(`data`,{tile:e,coord:e.tileID})));}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._inViewTiles.getTileById(e)}_retainLoadedChildren(t,n){let r=this._getLoadedDescendents(n),i=new Set;for(let a of n){let n=r[a.key];if(!n?.length){i.add(a);continue}let o=a.overscaledZ+e.maxOverzooming,s=n.filter(e=>e.tileID.overscaledZ<=o);if(!s.length){i.add(a);continue}let c=Math.min(...s.map(e=>e.tileID.overscaledZ)),l=s.filter(e=>e.tileID.overscaledZ===c).map(e=>e.tileID);for(let e of l)t[e.key]=e;this._areDescendentsComplete(l,c,a.overscaledZ)||i.add(a);}return i}_getLoadedDescendents(e){let t={};for(let n of this._inViewTiles.getAllTiles().filter(e=>e.hasData()))for(let r of e)n.tileID.isChildOf(r)&&(t[r.key]||=[],t[r.key].push(n));return t}_areDescendentsComplete(e,t,n){return e.length===1&&e[0].isOverscaled()?e[0].overscaledZ===t:4**(t-n)===e.length}getLoadedTile(e){return this._inViewTiles.getLoadedTile(e)}updateCacheSize(e){let t=(Math.ceil(e.width/this._source.tileSize)+1)*(Math.ceil(e.height/this._source.tileSize)+1),n=this._maxTileCacheZoomLevels===null?Cn.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels,r=Math.floor(t*n),i=typeof this._maxTileCacheSize==`number`?Math.min(this._maxTileCacheSize,r):r;this._outOfViewCache.setMaxSize(i);}handleWrapJump(e){let t=(e-(this._prevLng===void 0?e:this._prevLng))/360,n=Math.round(t);this._prevLng=e,n&&(this._inViewTiles.handleWrapJump(n),this._resetTileReloadTimers());}update(e,t){if(!this._sourceLoaded||this._paused)return;this.transform=e,this.terrain=t,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng);let n;!this.used&&!this.usedForTerrain?n=[]:this._source.tileID?n=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(e=>new Fv(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)):(n=Pa(e,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.type===`vector`&&this.map._zoomLevelsToOverscale!==void 0?Math.max(this._source.maxzoom,e.maxZoom-this.map._zoomLevelsToOverscale):this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:t,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(n=n.filter(e=>this._source.hasTile(e)))),this.usedForTerrain&&(n=this._addTerrainIdealTiles(n));let r=n.length===0&&!this._updated&&this._didEmitContent;this._updated=true,r&&this.fire(new K(`data`,{sourceDataType:`idle`,sourceId:this.id}));let i=Ma(e,this._source),a=this._updateRetainedTiles(n,i),o=Ia(this._source.type);o&&this._rasterFadeDuration>0&&!t&&La(this._inViewTiles,n,a,this._maxFadingAncestorLevels,this._source.minzoom,this._source.maxzoom,this._rasterFadeDuration),o?this._cleanUpRasterTiles(a):this._cleanUpVectorTiles(a);}_cleanUpRasterTiles(e){for(let t of this._inViewTiles.getAllIds())e[t]||this._removeTile(t);}_cleanUpVectorTiles(e){for(let t of this._inViewTiles.getAllIds()){let n=this._inViewTiles.getTileById(t);if(e[t]){n.clearSymbolFadeHold();continue}if(!n.hasSymbolBuckets){this._removeTile(t);continue}n.holdingForSymbolFade()?n.symbolFadeFinished()&&this._removeTile(t):n.setSymbolHoldDuration(this.map._fadeDuration);}}_addTerrainIdealTiles(e){let t=[];for(let n of e)if(n.canonical.z>this._source.minzoom){let e=n.scaledTo(n.canonical.z-1);t.push(e);let r=n.scaledTo(Math.max(this._source.minzoom,Math.min(n.canonical.z,5)));t.push(r);}return e.concat(t)}releaseSymbolFadeTiles(){for(let e of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(e).holdingForSymbolFade()&&this._removeTile(e);}_updateRetainedTiles(t,n){let r=new Set;for(let e of t)this._addTile(e).hasData()||r.add(e);let i=t.reduce((e,t)=>(e[t.key]=t,e),{}),a=this._retainLoadedChildren(i,r),o={},s=Math.max(n-e.maxUnderzooming,this._source.minzoom);for(let e of a){let t=this._inViewTiles.getTileById(e.key),n=t?.wasRequested();for(let r=e.overscaledZ-1;r>=s;--r){let a=e.scaledTo(r);if(o[a.key])break;if(o[a.key]=true,t=this.getTile(a),!t&&n&&(t=this._addTile(a)),t){let e=t.hasData();if((e||!this.map?.cancelPendingTileRequestsWhileZooming||n)&&(i[a.key]=a),n=t.wasRequested(),e)break}}}return i}_addTile(e){let t=this._inViewTiles.getTileById(e.key);if(t)return t;t=this._outOfViewCache.getAndRemove(e),t&&(t.resetFadeLogic(),this._setTileReloadTimer(e.key,t),t.tileID=e,this._state.initializeTileState(t,this.map?this.map.painter:null));let n=t;return t||(t=new Ta(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(t,e.key,t.state)),t.uses++,this._inViewTiles.setTile(e.key,t),n||this._source.fire(new K(`dataloading`,{tile:t,coord:t.tileID})),t}_setTileReloadTimer(e,t){this._clearTileReloadTimer(e);let n=t.getExpiryTimeout();if(n){let t=()=>{this._reloadTile(e,`expired`),delete this._timers[e];};this._timers[e]=setTimeout(t,n);}}_clearTileReloadTimer(e){let t=this._timers[e];t&&(clearTimeout(t),delete this._timers[e]);}_resetTileReloadTimers(){for(let e in this._timers)clearTimeout(this._timers[e]),delete this._timers[e];for(let e of this._inViewTiles.getAllIds()){let t=this._inViewTiles.getTileById(e);this._setTileReloadTimer(e,t);}}refreshTiles(e){for(let t of this._inViewTiles.getAllIds()){let n=this._inViewTiles.getTileById(t);!this._inViewTiles.isIdRenderable(t)&&n.state!=`errored`||e.some(e=>e.equals(n.tileID.canonical))&&this._reloadTile(t,`expired`);}}_removeTile(e){let t=this._inViewTiles.getTileById(e);t&&(t.uses--,this._inViewTiles.deleteTileById(e),this._clearTileReloadTimer(e),!(t.uses>0)&&(t.hasData()&&t.state!==`reloading`?this._outOfViewCache.add(t.tileID,t,t.getExpiryTimeout()):(t.aborted=true,this._abortTile(t),this._unloadTile(t))));}_dataHandler(e){if(e.dataType===`source`){if(e.sourceDataType===`metadata`){this._sourceLoaded=true;return}e.sourceDataType!==`content`||!this._sourceLoaded||this._paused||(this.reload(e.sourceDataChanged,e.shouldReloadTileOptions),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=true);}}clearTiles(){this._shouldReloadOnResume=false,this._paused=false;for(let e of this._inViewTiles.getAllIds())this._removeTile(e);this._outOfViewCache.reset();}tilesIn(e,t,n){let r=[],i=this.transform;if(!i)return r;let a=i.getCoveringTilesDetailsProvider().allowWorldCopies(),o=n?i.getCameraQueryGeometry(e):e,s=e=>i.screenPointToMercatorCoordinate(e,this.terrain),c=this.transformBbox(e,s,!a),l=this.transformBbox(o,s,!a),u=this.getIds(),d=Hv.fromPoints(l);for(let e of u){let n=this._inViewTiles.getTileById(e);if(n.holdingForSymbolFade())continue;let o=a?[n.tileID]:[n.tileID.unwrapTo(-1),n.tileID.unwrapTo(0)],s=2**(i.zoom-n.tileID.overscaledZ),u=t*n.queryPadding*j/n.tileSize/s;for(let e of o){let t=d.map(t=>e.getTilePoint(new xm(t.x,t.y)));if(t.expandBy(u),t.intersects(Fa)){let t=c.map(t=>e.getTilePoint(t)),i=l.map(t=>e.getTilePoint(t));r.push({tile:n,tileID:a?e:e.unwrapTo(0),queryGeometry:t,cameraQueryGeometry:i,scale:s});}}}return r}transformBbox(e,t,n){let r=e.map(t);if(n){let n=Hv.fromPoints(e);n.shrinkBy(Math.min(n.width(),n.height())*.001);let i=n.map(t);Hv.fromPoints(r).covers(i)||(r=r.map(e=>e.x>.5?new xm(e.x-1,e.y,e.z):e));}return r}getVisibleCoordinates(e){let t=this.getRenderableIds(e).map(e=>this._inViewTiles.getTileById(e).tileID);return this.transform&&this.transform.populateCache(t),t}hasTransition(){return this._source.hasTransition()?true:Ia(this._source.type)&&Ha(this._inViewTiles,this._rasterFadeDuration)}setRasterFadeDuration(e){this._rasterFadeDuration=e;}setFeatureState(e,t,n){e||=Wv,this._state.updateState(e,t,n);}removeFeatureState(e,t,n){e||=Wv,this._state.removeFeatureState(e,t,n);}getFeatureState(e,t){return e||=Wv,this._state.getState(e,t)}setDependencies(e,t,n){let r=this._inViewTiles.getTileById(e);r&&r.setDependencies(t,n);}reloadTilesForDependencies(e,t){for(let n of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(n).hasDependency(e,t)&&this._reloadTile(n,`reloading`);this._outOfViewCache.filter(n=>!n.hasDependency(e,t));}areTilesLoaded(){for(let e of this._inViewTiles.getAllTiles())if(e.state!==`loaded`&&e.state!==`errored`)return false;return true}},qa=class{constructor(e,t){this.reset(e,t);}reset(e,t){this.points=e||[],this._distances=[0];for(let e=1;e<this.points.length;e++)this._distances[e]=this._distances[e-1]+this.points[e].dist(this.points[e-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(t||0,this.length*.5),this.paddedLength=this.length-this.padding*2;}lerp(e){if(this.points.length===1)return this.points[0];e=Tt(e,0,1);let t=1,n=this._distances[t],r=e*this.paddedLength+this.padding;for(;n<r&&t<this._distances.length;)n=this._distances[++t];let i=t-1,a=this._distances[i],o=n-a,s=o>0?(r-a)/o:0;return this.points[i].mult(1-s).add(this.points[t].mult(s))}};function Ja(e,t){let n=true;return e===`always`||(e===`never`||t===`never`)&&(n=false),n}var Ya=class{constructor(e,t,n){let r=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(e/n),this.yCellCount=Math.ceil(t/n);for(let e=0;e<this.xCellCount*this.yCellCount;e++)r.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=t,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/t,this.boxUid=0,this.circleUid=0;}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i);}insertCircle(e,t,n,r){this._forEachCell(t-r,n-r,t+r,n+r,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(t),this.circles.push(n),this.circles.push(r);}_insertBoxCell(e,t,n,r,i,a){this.boxCells[i].push(a);}_insertCircleCell(e,t,n,r,i,a){this.circleCells[i].push(a);}_query(e,t,n,r,i,a,o){if(n<0||e>this.width||r<0||t>this.height)return [];let s=[];if(e<=0&&t<=0&&this.width<=n&&this.height<=r){if(i)return [{key:null,x1:e,y1:t,x2:n,y2:r}];for(let e=0;e<this.boxKeys.length;e++)s.push({key:this.boxKeys[e],x1:this.bboxes[e*4],y1:this.bboxes[e*4+1],x2:this.bboxes[e*4+2],y2:this.bboxes[e*4+3]});for(let e=0;e<this.circleKeys.length;e++){let t=this.circles[e*3],n=this.circles[e*3+1],r=this.circles[e*3+2];s.push({key:this.circleKeys[e],x1:t-r,y1:n-r,x2:t+r,y2:n+r});}}else {let c={hitTest:i,overlapMode:a,seenUids:{box:{},circle:{}}};this._forEachCell(e,t,n,r,this._queryCell,s,c,o);}return s}query(e,t,n,r){return this._query(e,t,n,r,false,null)}hitTest(e,t,n,r,i,a){return this._query(e,t,n,r,true,i,a).length>0}hitTestCircle(e,t,n,r,i){let a=e-n,o=e+n,s=t-n,c=t+n;if(o<0||a>this.width||c<0||s>this.height)return false;let l=[],u={hitTest:true,overlapMode:r,circle:{x:e,y:t,radius:n},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,c,this._queryCellCircle,l,u,i),l.length>0}_queryCell(e,t,n,r,i,a,o,s){let{seenUids:c,hitTest:l,overlapMode:u}=o,d=this.boxCells[i],f=1e-6;if(d!==null){let i=this.bboxes;for(let o of d)if(!c.box[o]){c.box[o]=true;let d=o*4,p=this.boxKeys[o];if(e<=i[d+2]+f&&t<=i[d+3]+f&&n>=i[d+0]-f&&r>=i[d+1]-f&&(!s||s(p))&&(!l||!Ja(u,p.overlapMode))&&(a.push({key:p,x1:i[d],y1:i[d+1],x2:i[d+2],y2:i[d+3]}),l))return true}}let p=this.circleCells[i];if(p!==null){let i=this.circles;for(let o of p)if(!c.circle[o]){c.circle[o]=true;let d=o*3,f=this.circleKeys[o];if(this._circleAndRectCollide(i[d],i[d+1],i[d+2],e,t,n,r)&&(!s||s(f))&&(!l||!Ja(u,f.overlapMode))){let e=i[d],t=i[d+1],n=i[d+2];if(a.push({key:f,x1:e-n,y1:t-n,x2:e+n,y2:t+n}),l)return true}}}return false}_queryCellCircle(e,t,n,r,i,a,o,s){let{circle:c,seenUids:l,overlapMode:u}=o,d=this.boxCells[i];if(d!==null){let e=this.bboxes;for(let t of d)if(!l.box[t]){l.box[t]=true;let n=t*4,r=this.boxKeys[t];if(this._circleAndRectCollide(c.x,c.y,c.radius,e[n+0],e[n+1],e[n+2],e[n+3])&&(!s||s(r))&&!Ja(u,r.overlapMode))return a.push(true),true}}let f=this.circleCells[i];if(f!==null){let e=this.circles;for(let t of f)if(!l.circle[t]){l.circle[t]=true;let n=t*3,r=this.circleKeys[t];if(this._circlesCollide(e[n],e[n+1],e[n+2],c.x,c.y,c.radius)&&(!s||s(r))&&!Ja(u,r.overlapMode))return a.push(true),true}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToXCellCoord(e),l=this._convertToYCellCoord(t),u=this._convertToXCellCoord(n),d=this._convertToYCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.xCellCount*c+f;if(i.call(this,e,t,n,r,l,a,o,s))return}}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,t,n,r,i,a){let o=r-e,s=i-t,c=n+a;return c*c>o*o+s*s}_circleAndRectCollide(e,t,n,r,i,a,o){let s=(a-r)/2,c=Math.abs(e-(r+s));if(c>s+n)return false;let l=(o-i)/2,u=Math.abs(t-(i+l));if(u>l+n)return false;if(c<=s||u<=l)return true;let d=c-s,f=u-l;return d*d+f*f<=n*n}};function Xa(e,t){let n=1/(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),r=1/(t[8]*t[8]+t[9]*t[9]+t[10]*t[10]),i=t[0]*n,a=t[4]*n,o=t[8]*r,s=t[1]*n,c=t[5]*n,l=t[9]*r,u=t[2]*n,d=t[6]*n,f=t[10]*r;e[0]=i,e[1]=a,e[2]=o,e[4]=s,e[5]=c,e[6]=l,e[8]=u,e[9]=d,e[10]=f;let p=t[12],m=t[13],h=t[14];return e[12]=-i*p-s*m-u*h,e[13]=-a*p-c*m-d*h,e[14]=-o*p-l*m-f*h,e[3]=0,e[7]=0,e[11]=0,e[15]=1,e}function Za(e,t){return e[0]=1/t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1/t[5],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=0,e[11]=1/t[14],e[12]=0,e[13]=0,e[14]=-1,e[15]=t[10]/t[14],e}function Qa(e,t){let n=1/(t[0]*t[5]-t[1]*t[4]);return e[0]=t[5]*n,e[1]=-t[1]*n,e[2]=0,e[3]=0,e[4]=-t[4]*n,e[5]=t[0]*n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1/t[10],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1/t[15],e}const $a=b();function eo(e,t,n){let r=b();if(!e){let{vecSouth:e,vecEast:n}=no(t),i=Dr();i[0]=n[0],i[1]=n[1],i[2]=e[0],i[3]=e[1],Or(i,i),r[0]=i[0],r[1]=i[1],r[4]=i[2],r[5]=i[3];}return D(r,r,[1/n,1/n,1]),r}function to(e,t,n,r){if(e){let e=b();if(!t){let{vecSouth:t,vecEast:r}=no(n);e[0]=r[0],e[1]=r[1],e[4]=t[0],e[5]=t[1];}return D(e,e,[r,r,1]),e}return n.pixelsToClipSpaceMatrix}function no(e){let t=Math.cos(e.rollInRadians),n=Math.sin(e.rollInRadians),r=Math.cos(e.pitchInRadians),i=Math.cos(e.bearingInRadians),a=Math.sin(e.bearingInRadians),o=Be();o[0]=-i*r*n-a*t,o[1]=-a*r*n+i*t;let s=qe(o);s<1e-9?$e(o):Ge(o,o,1/s);let c=Be();c[0]=i*r*t-a*n,c[1]=a*r*t+i*n;let l=qe(c);return l<1e-9?$e(c):Ge(c,c,1/l),{vecEast:c,vecSouth:o}}function ro(e,t,n,r){let i;r?(i=[e,t,r(e,t),1],Me(i,i,n)):(i=[e,t,0,1],xo(i,i,n));let a=i[3];return {point:new l(i[0]/a,i[1]/a),signedDistanceFromCamera:a,isOccluded:false}}function io(e,t){return .5+e/t*.5}function ao(e,t){return e.x>=-t[0]&&e.x<=t[0]&&e.y>=-t[1]&&e.y<=t[1]}function oo(e,t,n,r,i,a,o,s,c,l$1,u,d,f){let p=n?e.textSizeData:e.iconSizeData,m=ev(p,t.transform.zoom),h=[256/t.width*2+1,256/t.height*2+1],g=n?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;g.clear();let _=e.lineVertexArray,v=n?e.text.placedSymbolArray:e.icon.placedSymbolArray,y=t.transform.width/t.transform.height,b=false;for(let n=0;n<v.length;n++){let x=v.get(n);if(x.hidden||x.writingMode===2&&!b){bo(x.numGlyphs,g);continue}b=false;let S=new l(x.anchorX,x.anchorY),C={getElevation:f,pitchedLabelPlaneMatrix:r,lineVertexArray:_,pitchWithMap:a,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:false},transform:t.transform,tileAnchorPoint:S,unwrappedTileID:c,width:l$1,height:u,translation:d},w=ho(x.anchorX,x.anchorY,C);if(!ao(w.point,h)){bo(x.numGlyphs,g);continue}let T=w.signedDistanceFromCamera,E=io(t.transform.cameraToCenterDistance,T),D=$_(p,m,x),O=a?D*t.transform.getPitchedTextCorrection(x.anchorX,x.anchorY,c)/E:D*E,k=lo({projectionContext:C,pitchedLabelPlaneMatrixInverse:i,symbol:x,fontSize:O,flip:false,keepUpright:o,glyphOffsetArray:e.glyphOffsetArray,dynamicLayoutVertexArray:g,aspectRatio:y,rotateToLine:s});b=k.useVertical,(k.notEnoughRoom||b||k.needsFlipping&&lo({projectionContext:C,pitchedLabelPlaneMatrixInverse:i,symbol:x,fontSize:O,flip:true,keepUpright:o,glyphOffsetArray:e.glyphOffsetArray,dynamicLayoutVertexArray:g,aspectRatio:y,rotateToLine:s}).notEnoughRoom)&&bo(x.numGlyphs,g);}n?e.text.dynamicLayoutVertexBuffer.updateData(g):e.icon.dynamicLayoutVertexBuffer.updateData(g);}function so(e,t,n,r,i,a,o,s){let c=a.glyphStartIndex+a.numGlyphs,l=a.lineStartIndex,u=a.lineStartIndex+a.lineLength,d=t.getoffsetX(a.glyphStartIndex),f=t.getoffsetX(c-1),p=vo(e*d,n,r,i,a.segment,l,u,s,o);if(!p)return null;let m=vo(e*f,n,r,i,a.segment,l,u,s,o);return !m||s.projectionCache.anyProjectionOccluded?null:{first:p,last:m}}function co(e,t,n,r){return e===1&&Math.abs(n.y-t.y)>Math.abs(n.x-t.x)*r?{useVertical:true}:(e===2?t.y<n.y:t.x>n.x)?{needsFlipping:true}:null}function lo(e){let{projectionContext:t,pitchedLabelPlaneMatrixInverse:n,symbol:r,fontSize:i,flip:a,keepUpright:o,glyphOffsetArray:s,dynamicLayoutVertexArray:c,aspectRatio:l$1,rotateToLine:u}=e,d=i/24,f=r.lineOffsetX*d,p=r.lineOffsetY*d,m;if(r.numGlyphs>1){let e=r.glyphStartIndex+r.numGlyphs,i=r.lineStartIndex,c=r.lineStartIndex+r.lineLength,h=so(d,s,f,p,a,r,u,t);if(!h)return {notEnoughRoom:true};let g=mo(h.first.point.x,h.first.point.y,t,n),_=mo(h.last.point.x,h.last.point.y,t,n);if(o&&!a){let e=co(r.writingMode,g,_,l$1);if(e)return e}m=[h.first];for(let n=r.glyphStartIndex+1;n<e-1;n++){let e=vo(d*s.getoffsetX(n),f,p,a,r.segment,i,c,t,u);if(!e)return {notEnoughRoom:true};m.push(e);}m.push(h.last);}else {if(o&&!a){let e=po(t.tileAnchorPoint.x,t.tileAnchorPoint.y,t).point,i=r.lineStartIndex+r.segment+1,a=new l(t.lineVertexArray.getx(i),t.lineVertexArray.gety(i)),o=po(a.x,a.y,t),s=o.signedDistanceFromCamera>0?o.point:uo(t.tileAnchorPoint,a,e,1,t),c=mo(e.x,e.y,t,n),u=mo(s.x,s.y,t,n),d=co(r.writingMode,c,u,l$1);if(d)return d}let e=vo(d*s.getoffsetX(r.glyphStartIndex),f,p,a,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,t,u);if(!e||t.projectionCache.anyProjectionOccluded)return {notEnoughRoom:true};m=[e];}for(let e of m)iv(c,e.point,e.angle);return {}}function uo(e,t,n,r,i){let a=e.add(e.sub(t)._unit()),o=po(a.x,a.y,i).point,s=n.sub(o);return n.add(s._mult(r/s.mag()))}function fo(e,t,n){let r=t.projectionCache;if(r.projections[e])return r.projections[e];let i=new l(t.lineVertexArray.getx(e),t.lineVertexArray.gety(e)),a=po(i.x,i.y,t);if(a.signedDistanceFromCamera>0)return r.projections[e]=a.point,r.anyProjectionOccluded||=a.isOccluded,a.point;let o=e-n.direction,s=n.distanceFromAnchor===0?t.tileAnchorPoint:new l(t.lineVertexArray.getx(o),t.lineVertexArray.gety(o)),c=n.absOffsetX-n.distanceFromAnchor+1;return uo(s,i,n.previousVertex,c,t)}function po(e,t,n){let r=e+n.translation[0],i=t+n.translation[1],a;return n.pitchWithMap?(a=ro(r,i,n.pitchedLabelPlaneMatrix,n.getElevation),a.isOccluded=false):(a=n.transform.projectTileCoordinates(r,i,n.unwrappedTileID,n.getElevation),a.point.x=(a.point.x*.5+.5)*n.width,a.point.y=(-a.point.y*.5+.5)*n.height),a}function mo(e,t,n,r){if(n.pitchWithMap){let i=[e,t,0,1];return Me(i,i,r),n.transform.projectTileCoordinates(i[0]/i[3],i[1]/i[3],n.unwrappedTileID,n.getElevation).point}return {x:e/n.width*2-1,y:1-t/n.height*2}}function ho(e,t,n){return n.transform.projectTileCoordinates(e,t,n.unwrappedTileID,n.getElevation)}function go(e,t,n){return e._unit()._perp()._mult(t*n)}function _o(e,t,n,r,i,a,o,s,c){if(s.projectionCache.offsets[e])return s.projectionCache.offsets[e];let l=n.add(t);if(e+c.direction<r||e+c.direction>=i)return s.projectionCache.offsets[e]=l,l;let u=fo(e+c.direction,s,c),d=go(u.sub(n),o,c.direction),f=n.add(d),p=u.add(d);return s.projectionCache.offsets[e]=Ut(a,l,f,p)||l,s.projectionCache.offsets[e]}function vo(e,t,n,r,i,a,o,s,c){let l=r?e-t:e+t,u=l>0?1:-1,d=0;r&&(u*=-1,d=Math.PI),u<0&&(d+=Math.PI);let f=u>0?a+i:a+i+1,p;s.projectionCache.cachedAnchorPoint?p=s.projectionCache.cachedAnchorPoint:(p=po(s.tileAnchorPoint.x,s.tileAnchorPoint.y,s).point,s.projectionCache.cachedAnchorPoint=p);let m=p,h=p,g,_,v=0,y=0,b=Math.abs(l),x=[],S;for(;v+y<=b;){if(f+=u,f<a||f>=o)return null;v+=y,h=m,_=g;let e={absOffsetX:b,direction:u,distanceFromAnchor:v,previousVertex:h};if(m=fo(f,s,e),n===0)x.push(h),S=m.sub(h);else {let t,r=m.sub(h);t=r.mag()===0?go(fo(f+u,s,e).sub(m),n,u):go(r,n,u),_||=h.add(t),g=_o(f,t,m,a,o,_,n,s,e),x.push(_),S=g.sub(_);}y=S.mag();}let C=(b-v)/y,w=S._mult(C)._add(_||h),T=d+Math.atan2(m.y-h.y,m.x-h.x);return x.push(w),{point:w,angle:c?T:0,path:x}}const yo=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function bo(e,t){for(let n=0;n<e;n++){let e=t.length;t.resize(e+4),t.float32.set(yo,e*3);}}function xo(e,t,n){let r=t[0],i=t[1];return e[0]=n[0]*r+n[4]*i+n[12],e[1]=n[1]*r+n[5]*i+n[13],e[3]=n[3]*r+n[7]*i+n[15],e}function So(e,t){let n=$a;return Qa(n,t.pitchedLabelPlaneMatrix),e.map(e=>{let r=ro(e.x,e.y,n,t.getElevation),i=t.transform.projectTileCoordinates(r.point.x,r.point.y,t.unwrappedTileID,t.getElevation);return i.point.x=(i.point.x*.5+.5)*t.width,i.point.y=(-i.point.y*.5+.5)*t.height,i})}function Co(e){let t=0,n=0,r=0,i=0;for(let a=0;a<e.length;a++)e[a].isOccluded?(r=a+1,i=0):(i++,i>n&&(n=i,t=r));return e.slice(t,t+n)}var wo=class{constructor(e,t=new Ya(e.width+200,e.height+200,25),n=new Ya(e.width+200,e.height+200,25)){this.transform=e,this.grid=t,this.ignoredGrid=n,this.pitchFactor=Math.cos(e.pitch*Math.PI/180)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+100,this.screenBottomBoundary=e.height+100,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.perspectiveRatioCutoff=.6;}placeCollisionBox(e,t,n,r,i,a,o,s,c,l,u,d){let f=e.anchorPointX+s[0],p=e.anchorPointY+s[1],m=this.projectAndGetPerspectiveRatio(f,p,i,l,d),h=n*m.perspectiveRatio,g;if(!a&&!o){let t=m.x+(u?u.x*h:0),n=m.y+(u?u.y*h:0);g={allPointsOccluded:false,box:[t+e.x1*h,n+e.y1*h,t+e.x2*h,n+e.y2*h]};}else g=this._projectCollisionBox(e,h,r,i,a,o,s,m,l,u,d);let[_,v,y,b]=g.box,x=a?g.allPointsOccluded:m.isOccluded,S=x;return S||=m.perspectiveRatio<this.perspectiveRatioCutoff,S||=!this.isInsideGrid(_,v,y,b),S||t!==`always`&&this.grid.hitTest(_,v,y,b,t,c)?{box:[_,v,y,b],placeable:false,offscreen:false,occluded:x}:{box:[_,v,y,b],placeable:true,offscreen:this.isOffscreen(_,v,y,b),occluded:x}}placeCollisionCircles(e,t,n,r,i,a,o,s,c,l$1,u,d,f,p){let m=[],h=new l(t.anchorX,t.anchorY),g=this.getPerspectiveRatio(h.x,h.y,a,p),_=(c?i*this.transform.getPitchedTextCorrection(t.anchorX,t.anchorY,a)/g:i*g)/24,v={projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:false},y=t.lineOffsetX*_,b=t.lineOffsetY*_,x={getElevation:p,pitchedLabelPlaneMatrix:o,lineVertexArray:n,pitchWithMap:c,projectionCache:v,transform:this.transform,tileAnchorPoint:h,unwrappedTileID:a,width:this.transform.width,height:this.transform.height,translation:f},S=so(_,r,y,b,false,t,false,x),C=false,w=false,T=true;if(S){let t=u*.5*g+d,n=new l(-100,-100),r=new l(this.screenRightBoundary,this.screenBottomBoundary),i=new qa,a=S.first,o=S.last,f=[];for(let e=a.path.length-1;e>=1;e--)f.push(a.path[e]);for(let e=1;e<o.path.length;e++)f.push(o.path[e]);let p=t*2.5;if(c){let e=this.projectPathToScreenSpace(f,x);f=e.some(e=>e.signedDistanceFromCamera<=0)?[]:e.map(e=>e.point);}let h=[];if(f.length>0){let e=f[0].clone(),t=f[0].clone();for(let n=1;n<f.length;n++)e.x=Math.min(e.x,f[n].x),e.y=Math.min(e.y,f[n].y),t.x=Math.max(t.x,f[n].x),t.y=Math.max(t.y,f[n].y);h=e.x>=n.x&&t.x<=r.x&&e.y>=n.y&&t.y<=r.y?[f]:t.x<n.x||e.x>r.x||t.y<n.y||e.y>r.y?[]:lC([f],n.x,n.y,r.x,r.y);}for(let n of h){i.reset(n,t*.25);let r=0;r=i.length<=.5*t?1:Math.ceil(i.paddedLength/p)+1;for(let n=0;n<r;n++){let a=n/Math.max(r-1,1),o=i.lerp(a),c=o.x+100,u=o.y+100;m.push(c,u,t,0);let d=c-t,f=u-t,p=c+t,h=u+t;if(T&&=this.isOffscreen(d,f,p,h),w||=this.isInsideGrid(d,f,p,h),e!==`always`&&this.grid.hitTestCircle(c,u,t,e,l$1)&&(C=true,!s))return {circles:[],offscreen:false,collisionDetected:C}}}}return {circles:!s&&C||!w||g<this.perspectiveRatioCutoff?[]:m,offscreen:T,collisionDetected:C}}projectPathToScreenSpace(e,t){return Co(So(e,t))}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return {};let t=[],n=new Hv;for(let r of e){let e=new l(r.x+100,r.y+100);n.extend(e),t.push(e);}let{minX:r,minY:i,maxX:a,maxY:o}=n,s=this.grid.query(r,i,a,o).concat(this.ignoredGrid.query(r,i,a,o)),c={},l$1={};for(let e of s){let n=e.key;if(c[n.bucketInstanceId]===void 0&&(c[n.bucketInstanceId]={}),c[n.bucketInstanceId][n.featureIndex])continue;let r=[new l(e.x1,e.y1),new l(e.x2,e.y1),new l(e.x2,e.y2),new l(e.x1,e.y2)];Dd$1(t,r)&&(c[n.bucketInstanceId][n.featureIndex]=true,l$1[n.bucketInstanceId]===void 0&&(l$1[n.bucketInstanceId]=[]),l$1[n.bucketInstanceId].push(n.featureIndex));}return l$1}insertCollisionBox(e,t,n,r,i,a){let o=n?this.ignoredGrid:this.grid,s={bucketInstanceId:r,featureIndex:i,collisionGroupID:a,overlapMode:t};o.insert(s,e[0],e[1],e[2],e[3]);}insertCollisionCircles(e,t,n,r,i,a){let o=n?this.ignoredGrid:this.grid,s={bucketInstanceId:r,featureIndex:i,collisionGroupID:a,overlapMode:t};for(let t=0;t<e.length;t+=4)o.insertCircle(s,e[t],e[t+1],e[t+2]);}projectAndGetPerspectiveRatio(e,t,n,r,i){if(i){let n;r?(n=[e,t,r(e,t),1],Me(n,n,i)):(n=[e,t,0,1],xo(n,n,i));let a=n[3];return {x:(n[0]/a+1)/2*this.transform.width+100,y:(-n[1]/a+1)/2*this.transform.height+100,perspectiveRatio:.5+.5*(this.transform.cameraToCenterDistance/a),isOccluded:false,signedDistanceFromCamera:a}}{let i=this.transform.projectTileCoordinates(e,t,n,r);return {x:(i.point.x+1)/2*this.transform.width+100,y:(-i.point.y+1)/2*this.transform.height+100,perspectiveRatio:.5+.5*(this.transform.cameraToCenterDistance/i.signedDistanceFromCamera),isOccluded:i.isOccluded,signedDistanceFromCamera:i.signedDistanceFromCamera}}}getPerspectiveRatio(e,t,n,r){let i=this.transform.projectTileCoordinates(e,t,n,r);return .5+.5*(this.transform.cameraToCenterDistance/i.signedDistanceFromCamera)}isOffscreen(e,t,n,r){return n<100||e>=this.screenRightBoundary||r<100||t>this.screenBottomBoundary}isInsideGrid(e,t,n,r){return n>=0&&e<this.gridRightBoundary&&r>=0&&t<this.gridBottomBoundary}getViewportMatrix(){let e=C([]);return E(e,e,[-100,-100,0]),e}_projectCollisionBox(e,t,n,r,i,a,o,s,c,l$1,u){let d=1,f=0,p=0,m=1,h=e.anchorPointX+o[0],g=e.anchorPointY+o[1];if(a&&!i){let e=this.projectAndGetPerspectiveRatio(h+1,g,r,c,u),t=e.x-s.x,n=e.y-s.y,i=Math.atan(n/t)+(t<0?Math.PI:0),a=Math.sin(i),o=Math.cos(i);d=o,f=a,p=-a,m=o;}else if(!a&&i){let e=no(this.transform);d=e.vecEast[0],f=e.vecEast[1],p=e.vecSouth[0],m=e.vecSouth[1];}let _=s.x,v=s.y,y=t;if(i&&(_=h,v=g,y=2**-(this.transform.zoom-n.overscaledZ),y*=this.transform.getPitchedTextCorrection(h,g,r),!l$1)){let e=s.signedDistanceFromCamera/this.transform.cameraToCenterDistance,t=Tt(.5+.5*e,0,4);y*=t;}l$1&&(_+=d*l$1.x*y+p*l$1.y*y,v+=f*l$1.x*y+m*l$1.y*y);let b=e.x1*y,x=e.x2*y,S=(b+x)/2,C=e.y1*y,w=e.y2*y,T=(C+w)/2,E=[{offsetX:b,offsetY:C},{offsetX:S,offsetY:C},{offsetX:x,offsetY:C},{offsetX:x,offsetY:T},{offsetX:x,offsetY:w},{offsetX:S,offsetY:w},{offsetX:b,offsetY:w},{offsetX:b,offsetY:T}],D=[];for(let{offsetX:e,offsetY:t}of E)D.push(new l(_+d*e+p*t,v+f*e+m*t));let O=false;if(i){let e=D.map(e=>this.projectAndGetPerspectiveRatio(e.x,e.y,r,c,u));O=e.some(e=>!e.isOccluded),D=e.map(e=>new l(e.x,e.y));}else O=true;return {box:bt(D),allPointsOccluded:!O}}},To=class{constructor(e,t,n,r){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?t:-t))):r&&n?1:0,this.placed=n;}isHidden(){return this.opacity===0&&!this.placed}},Eo=class{constructor(e,t,n,r,i){this.text=new To(e?e.text:null,t,n,i),this.icon=new To(e?e.icon:null,t,r,i);}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}},Do=class{constructor(e,t,n){this.text=e,this.icon=t,this.skipFade=n;}},Oo=class{constructor(e,t,n,r,i){this.bucketInstanceId=e,this.featureIndex=t,this.sourceLayerIndex=n,this.bucketIndex=r,this.tileID=i;}},ko=class{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={};}get(e){if(this.crossSourceCollisions)return {ID:0,predicate:null};if(!this.collisionGroups[e]){let t=++this.maxGroupID;this.collisionGroups[e]={ID:t,predicate:e=>e.collisionGroupID===t};}return this.collisionGroups[e]}};function Ao(e,t,n,r,i){let{horizontalAlign:a,verticalAlign:o}=R_(e),s=-(a-.5)*t,c=-(o-.5)*n;return new l(s+r[0]*i,c+r[1]*i)}var jo=class{constructor(e,t,n,r,i){this.transform=e.clone(),this.terrain=t,this.collisionIndex=new wo(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=false,this.commitTime=0,this.fadeDuration=n,this.retainedQueryData={},this.collisionGroups=new ko(r),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=i,i&&(i.prevPlacement=void 0),this.placedOrientations={};}_getTerrainElevationFunc(e){let t=this.terrain;return t?(n,r)=>t.getElevation(e,n,r):null}getBucketParts(e,t,n,r){let i=n.getBucket(t),a=n.latestFeatureIndex;if(!i||!a||t.id!==i.layerIds[0])return;let o=n.collisionBoxArray,s=i.layers[0].layout,c=i.layers[0].paint,l=2**(this.transform.zoom-n.tileID.overscaledZ),d=n.tileSize/j,f=n.tileID.toUnwrapped(),p=s.get(`text-rotation-alignment`)===`map`,m=nt(n,1,this.transform.zoom),h=ut(this.collisionIndex.transform,n,c.get(`text-translate`),c.get(`text-translate-anchor`)),g=ut(this.collisionIndex.transform,n,c.get(`icon-translate`),c.get(`icon-translate-anchor`)),_=eo(p,this.transform,m);this.retainedQueryData[i.bucketInstanceId]=new Oo(i.bucketInstanceId,a,i.sourceLayerIndex,i.index,n.tileID);let v={bucket:i,layout:s,translationText:h,translationIcon:g,unwrappedTileID:f,pitchedLabelPlaneMatrix:_,scale:l,textPixelRatio:d,holdingForFade:n.holdingForSymbolFade(),collisionBoxArray:o,partiallyEvaluatedTextSize:ev(i.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(i.sourceID)};if(r)for(let t of i.sortKeyRanges){let{sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i}=t;e.push({sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i,parameters:v});}else e.push({symbolInstanceStart:0,symbolInstanceEnd:i.symbolInstances.length,parameters:v});}attemptAnchorPlacement(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y){let b=RC[e.textAnchor],x=[e.textOffset0,e.textOffset1],S=Ao(b,n,r,x,i),C=this.collisionIndex.placeCollisionBox(t,d,s,c,l,o,a,h,u.predicate,v,S,y);if(!(_&&!this.collisionIndex.placeCollisionBox(_,d,s,c,l,o,a,g,u.predicate,v,S,y).placeable)&&C.placeable){let e;if(this.prevPlacement?.variableOffsets[f.crossTileID]&&this.prevPlacement?.placements[f.crossTileID]?.text&&(e=this.prevPlacement.variableOffsets[f.crossTileID].anchor),f.crossTileID===0)throw Error(`symbolInstance.crossTileID can't be 0`);return this.variableOffsets[f.crossTileID]={textOffset:x,width:n,height:r,anchor:b,textBoxScale:i,prevAnchor:e},this.markUsedJustification(p,b,f,m),p.allowVerticalPlacement&&(this.markUsedOrientation(p,m,f),this.placedOrientations[f.crossTileID]=m),{shift:S,placedGlyphBoxes:C}}}placeLayerBucketPart(e,t,n){let{bucket:r,layout:a,translationText:o,translationIcon:s,unwrappedTileID:c,pitchedLabelPlaneMatrix:l,textPixelRatio:u,holdingForFade:d,collisionBoxArray:f,partiallyEvaluatedTextSize:p,collisionGroup:m}=e.parameters,h=a.get(`text-optional`),g=a.get(`icon-optional`),_=tv(a,`text-overlap`,`text-allow-overlap`),v=_===`always`,y=tv(a,`icon-overlap`,`icon-allow-overlap`),b=y===`always`,x=a.get(`text-rotation-alignment`)===`map`,S=a.get(`text-pitch-alignment`)===`map`,C=a.get(`icon-text-fit`)!==`none`,w=a.get(`symbol-z-order`)===`viewport-y`,T=v&&(b||!r.hasIconData()||g),E=b&&(v||!r.hasTextData()||h);!r.collisionArrays&&f&&r.deserializeCollisionBoxes(f);let D=this.retainedQueryData[r.bucketInstanceId].tileID,O=this._getTerrainElevationFunc(D),k=this.transform.getFastPathSimpleProjectionMatrix(D),ee=(e,i,f)=>{if(t[e.crossTileID])return;if(d){this.placements[e.crossTileID]=new Do(false,false,false);return}let b=false,w=false,ee=true,te=null,A={box:null,placeable:false,offscreen:null,occluded:false},ne={placeable:false},re=null,ie=null,ae=null,oe=0,se=0,ce=0;i.textFeatureIndex?oe=i.textFeatureIndex:e.useRuntimeCollisionCircles&&(oe=e.featureIndex),i.verticalTextFeatureIndex&&(se=i.verticalTextFeatureIndex);let le=i.textBox;if(le){let t=t=>{let n=1;if(r.allowVerticalPlacement&&!t&&this.prevPlacement){let t=this.prevPlacement.placedOrientations[e.crossTileID];t&&(this.placedOrientations[e.crossTileID]=t,n=t,this.markUsedOrientation(r,n,e));}return n},a=(t,n)=>{if(r.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i.verticalTextBox){for(let e of r.writingModes)if(e===2?(A=n(),ne=A):A=t(),A?.placeable)break}else A=t();},l=e.textAnchorOffsetStartIndex,d=e.textAnchorOffsetEndIndex;if(d===l){let n=(t,n)=>{let i=this.collisionIndex.placeCollisionBox(t,_,u,D,c,S,x,o,m.predicate,O,void 0,k);return i?.placeable&&(this.markUsedOrientation(r,n,e),this.placedOrientations[e.crossTileID]=n),i};a(()=>n(le,1),()=>{let t=i.verticalTextBox;return r.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&t?n(t,2):{box:null,offscreen:null}}),t(A?.placeable);}else {let f=RC[this.prevPlacement?.variableOffsets[e.crossTileID]?.anchor],p=(t,i,a)=>{let p=t.x2-t.x1,h=t.y2-t.y1,g=e.textBoxScale,v=C&&y===`never`?i:null,w=null,T=_===`never`?1:2,E=`never`;f&&T++;for(let n=0;n<T;n++){for(let n=l;n<d;n++){let i=r.textAnchorOffsets.get(n);if(f&&i.textAnchor!==f)continue;let l=this.attemptAnchorPlacement(i,t,p,h,g,x,S,u,D,c,m,E,e,r,a,o,s,v,O);if(l&&(w=l.placedGlyphBoxes,w?.placeable))return b=true,te=l.shift,w}f?f=null:E=_;}return n&&!w&&(w={box:this.collisionIndex.placeCollisionBox(le,`always`,u,D,c,S,x,o,m.predicate,O,void 0,k).box,offscreen:false,placeable:false,occluded:false}),w};a(()=>p(le,i.iconBox,1),()=>{let t=i.verticalTextBox,n=A?.placeable;return r.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&t?p(t,i.verticalIconBox,2):{box:null,occluded:true,offscreen:null}}),A&&(b=A.placeable,ee=A.offscreen);let h=t(A?.placeable);if(!b&&this.prevPlacement){let t=this.prevPlacement.variableOffsets[e.crossTileID];t&&(this.variableOffsets[e.crossTileID]=t,this.markUsedJustification(r,t.anchor,e,h));}}}if(re=A,b=re?.placeable,ee=re?.offscreen,e.useRuntimeCollisionCircles&&e.centerJustifiedTextSymbolIndex>=0){let t=r.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),i=$_(r.textSizeData,p,t),s=a.get(`text-padding`),u=e.collisionCircleDiameter;ie=this.collisionIndex.placeCollisionCircles(_,t,r.lineVertexArray,r.glyphOffsetArray,i,c,l,n,S,m.predicate,u,s,o,O),ie.circles.length&&ie.collisionDetected&&!n&&Vt(`Collisions detected, but collision boxes are not shown`),b=v||ie.circles.length>0&&!ie.collisionDetected,ee&&=ie.offscreen;}if(i.iconFeatureIndex&&(ce=i.iconFeatureIndex),i.iconBox){let e=e=>this.collisionIndex.placeCollisionBox(e,y,u,D,c,S,x,s,m.predicate,O,C&&te?te:void 0,k);ne&&ne.placeable&&i.verticalIconBox?(ae=e(i.verticalIconBox),w=ae.placeable):(ae=e(i.iconBox),w=ae.placeable),ee&&=ae.offscreen;}let ue=h||e.numHorizontalGlyphVertices===0&&e.numVerticalGlyphVertices===0,de=g||e.numIconVertices===0;!ue&&!de?w=b=w&&b:de?ue||(w&&=b):b=w&&b;let fe=b&&re.placeable,pe=w&&ae.placeable;if(fe&&(ne&&ne.placeable&&se?this.collisionIndex.insertCollisionBox(re.box,_,a.get(`text-ignore-placement`),r.bucketInstanceId,se,m.ID):this.collisionIndex.insertCollisionBox(re.box,_,a.get(`text-ignore-placement`),r.bucketInstanceId,oe,m.ID)),pe&&this.collisionIndex.insertCollisionBox(ae.box,y,a.get(`icon-ignore-placement`),r.bucketInstanceId,ce,m.ID),ie&&b&&this.collisionIndex.insertCollisionCircles(ie.circles,_,a.get(`text-ignore-placement`),r.bucketInstanceId,oe,m.ID),n&&this.storeCollisionData(r.bucketInstanceId,f,i,re,ae,ie),e.crossTileID===0)throw Error(`symbolInstance.crossTileID can't be 0`);if(r.bucketInstanceId===0)throw Error(`bucket.bucketInstanceId can't be 0`);let me=(b||T)&&!re?.occluded,he=(w||E)&&!ae?.occluded;this.placements[e.crossTileID]=new Do(me,he,ee||r.justReloaded),t[e.crossTileID]=true;};if(w){if(e.symbolInstanceStart!==0)throw Error(`bucket.bucketInstanceId should be 0`);let t=r.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let e=t.length-1;e>=0;--e){let n=t[e];ee(r.symbolInstances.get(n),r.collisionArrays[n],n);}}else for(let t=e.symbolInstanceStart;t<e.symbolInstanceEnd;t++)ee(r.symbolInstances.get(t),r.collisionArrays[t],t);r.justReloaded=false;}storeCollisionData(e,t,n,r,i,a){if(n.textBox||n.iconBox){let a;this.collisionBoxArrays.has(e)?a=this.collisionBoxArrays.get(e):(a=new Map,this.collisionBoxArrays.set(e,a));let o;a.has(t)?o=a.get(t):(o={text:null,icon:null},a.set(t,o)),n.textBox&&(o.text=r.box),n.iconBox&&(o.icon=i.box);}if(a){let t=this.collisionCircleArrays[e];t===void 0&&(t=this.collisionCircleArrays[e]=[]);for(let e=0;e<a.circles.length;e+=4)t.push(a.circles[e+0]-100),t.push(a.circles[e+1]-100),t.push(a.circles[e+2]),t.push(+!!a.collisionDetected);}}markUsedJustification(e,t,n,r){let i={left:n.leftJustifiedTextSymbolIndex,center:n.centerJustifiedTextSymbolIndex,right:n.rightJustifiedTextSymbolIndex},a;a=r===2?n.verticalPlacedTextSymbolIndex:i[UC(t)];let o=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex,n.verticalPlacedTextSymbolIndex];for(let t of o)t>=0&&(a>=0&&t!==a?e.text.placedSymbolArray.get(t).crossTileID=0:e.text.placedSymbolArray.get(t).crossTileID=n.crossTileID);}markUsedOrientation(e,t,n){let r=t===1||t===3?t:0,i=t===2?t:0,a=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];for(let t of a)e.text.placedSymbolArray.get(t).placedOrientation=r;n.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(n.verticalPlacedTextSymbolIndex).placedOrientation=i);}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;let t=this.prevPlacement,n=false;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;let r=t?t.symbolFadeChange(e):1,i=t?t.opacities:{},a=t?t.variableOffsets:{},o=t?t.placedOrientations:{};for(let e in this.placements){let t=this.placements[e],a=i[e];a?(this.opacities[e]=new Eo(a,r,t.text,t.icon),n||=t.text!==a.text.placed,n||=t.icon!==a.icon.placed):(this.opacities[e]=new Eo(null,r,t.text,t.icon,t.skipFade),n||=t.text||t.icon);}for(let e in i){let t=i[e];if(!this.opacities[e]){let i=new Eo(t,r,false,false);i.isHidden()||(this.opacities[e]=i,n||=t.text.placed,n||=t.icon.placed);}}for(let e in a)!this.variableOffsets[e]&&this.opacities[e]&&!this.opacities[e].isHidden()&&(this.variableOffsets[e]=a[e]);for(let e in o)!this.placedOrientations[e]&&this.opacities[e]&&!this.opacities[e].isHidden()&&(this.placedOrientations[e]=o[e]);if(t&&t.lastPlacementChangeTime===void 0)throw Error(`Last placement time for previous placement is not defined`);n?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!=`number`&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e);}updateLayerOpacities(e,t){let n={};for(let r of t){let t=r.getBucket(e);t&&r.latestFeatureIndex&&e.id===t.layerIds[0]&&this.updateBucketOpacities(t,r.tileID,n,r.collisionBoxArray);}}updateBucketOpacities(e,t,n,r){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=false),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=false),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();let i=e.layers[0],a=i.layout,o=new Eo(null,0,false,false,true),s=a.get(`text-allow-overlap`),c=a.get(`icon-allow-overlap`),l$1=i._unevaluatedLayout.hasValue(`text-variable-anchor`)||i._unevaluatedLayout.hasValue(`text-variable-anchor-offset`),u=a.get(`text-rotation-alignment`)===`map`,d=a.get(`text-pitch-alignment`)===`map`,f=a.get(`icon-text-fit`)!==`none`,p=new Eo(null,0,s&&(c||!e.hasIconData()||a.get(`icon-optional`)),c&&(s||!e.hasTextData()||a.get(`text-optional`)),true);!e.collisionArrays&&r&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(r);let m=(e,t,n)=>{for(let r=0;r<t/4;r++)e.opacityVertexArray.emplaceBack(n);e.hasVisibleVertices||=n!==Ro;},h=this.collisionBoxArrays.get(e.bucketInstanceId);for(let t=0;t<e.symbolInstances.length;t++){let r=e.symbolInstances.get(t),{numHorizontalGlyphVertices:i,numVerticalGlyphVertices:a,crossTileID:s}=r,c=n[s],g=this.opacities[s];c?g=o:g||(g=p,this.opacities[s]=g),n[s]=true;let _=i>0||a>0,v=r.numIconVertices>0,y=this.placedOrientations[r.crossTileID],b=y===2,x=y===1||y===3;if(_){let t=Lo(g.text),n=b?Ro:t;m(e.text,i,n);let o=x?Ro:t;m(e.text,a,o);let s=g.text.isHidden(),c=[r.rightJustifiedTextSymbolIndex,r.centerJustifiedTextSymbolIndex,r.leftJustifiedTextSymbolIndex];for(let t of c)t>=0&&(e.text.placedSymbolArray.get(t).hidden=s||b?1:0);r.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(r.verticalPlacedTextSymbolIndex).hidden=s||x?1:0);let l=this.variableOffsets[r.crossTileID];l&&this.markUsedJustification(e,l.anchor,r,y);let u=this.placedOrientations[r.crossTileID];u&&(this.markUsedJustification(e,`left`,r,u),this.markUsedOrientation(e,u,r));}if(v){let t=Lo(g.icon),n=!(f&&r.verticalPlacedIconSymbolIndex&&b);if(r.placedIconSymbolIndex>=0){let i=n?t:Ro;m(e.icon,r.numIconVertices,i),e.icon.placedSymbolArray.get(r.placedIconSymbolIndex).hidden=g.icon.isHidden();}if(r.verticalPlacedIconSymbolIndex>=0){let i=n?Ro:t;m(e.icon,r.numVerticalIconVertices,i),e.icon.placedSymbolArray.get(r.verticalPlacedIconSymbolIndex).hidden=g.icon.isHidden();}}let S=h?.has(t)?h.get(t):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){let n=e.collisionArrays[t];if(n){let t=new l(0,0);if(n.textBox||n.verticalTextBox){let r=true;if(l$1){let e=this.variableOffsets[s];e?(t=Ao(e.anchor,e.width,e.height,e.textOffset,e.textBoxScale),u&&t._rotate(d?-this.transform.bearingInRadians:this.transform.bearingInRadians)):r=false;}if(n.textBox||n.verticalTextBox){let i;n.textBox&&(i=b),n.verticalTextBox&&(i=x),Mo(e.textCollisionBox.collisionVertexArray,g.text.placed,!r||i,S.text,t.x,t.y);}}if(n.iconBox||n.verticalIconBox){let r=!!(!x&&n.verticalIconBox),i;n.iconBox&&(i=r),n.verticalIconBox&&(i=!r),Mo(e.iconCollisionBox.collisionVertexArray,g.icon.placed,i,S.icon,f?t.x:0,f?t.y:0);}}}}if(e.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId]);}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(e,t){let n=this.zoomAtLastRecencyCheck===t?1-this.zoomAdjustment(t):1;return this.zoomAtLastRecencyCheck=t,this.commitTime+this.fadeDuration*n>e}setStale(){this.stale=true;}};function Mo(e,t,n,r,i,a){(!r||r.length===0)&&(r=[0,0,0,0]);let o=r[0]-100,s=r[1]-100,c=r[2]-100,l=r[3]-100;e.emplaceBack(+!!t,+!!n,i||0,a||0,o,s),e.emplaceBack(+!!t,+!!n,i||0,a||0,c,s),e.emplaceBack(+!!t,+!!n,i||0,a||0,c,l),e.emplaceBack(+!!t,+!!n,i||0,a||0,o,l);}const No=2**25,Po=2**24,Fo=2**17,Io=2**16;function Lo(e){if(e.opacity===0&&!e.placed)return 0;if(e.opacity===1&&e.placed)return 4294967295;let t=+!!e.placed,n=Math.floor(e.opacity*127);return n*No+t*Po+n*Fo+t*Io+n*512+t*256+n*2+t}const Ro=0;var zo=class{constructor(e){this._sortAcrossTiles=e.layout.get(`symbol-z-order`)!==`viewport-y`&&!e.layout.get(`symbol-sort-key`).isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[];}continuePlacement(e,t,n,r,i){let a=this._bucketParts;for(;this._currentTileIndex<e.length;){let n=e[this._currentTileIndex];if(t.getBucketParts(a,r,n,this._sortAcrossTiles),this._currentTileIndex++,i())return true}for(this._sortAcrossTiles&&(this._sortAcrossTiles=false,a.sort((e,t)=>e.sortKey-t.sortKey));this._currentPartIndex<a.length;){let e=a[this._currentPartIndex];if(t.placeLayerBucketPart(e,this._seenCrossTileIDs,n),this._currentPartIndex++,i())return true}return false}},Bo=class{constructor(e,t,n,r,i,a,o,s){this.placement=new jo(e,t,a,o,s),this._currentPlacementIndex=n.length-1,this._forceFullPlacement=r,this._showCollisionBoxes=i,this._done=false;}isDone(){return this._done}continuePlacement(e,t,n){let r=U(),i=()=>!this._forceFullPlacement&&U()-r>2;for(;this._currentPlacementIndex>=0;){let r=t[e[this._currentPlacementIndex]],a=this.placement.collisionIndex.transform.zoom;if(gv(r)&&r.layout&&(!r.minzoom||r.minzoom<=a)&&(!r.maxzoom||r.maxzoom>a)){if(this._inProgressLayer||=new zo(r),this._inProgressLayer.continuePlacement(n[r.source],this.placement,this._showCollisionBoxes,r,i))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=true;}commit(e){return this.placement.commit(e),this.placement}};const Vo=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],q=new Uint32Array(96);var Ho=class e{static from(t){if(!t||t.byteLength===void 0||t.buffer)throw Error(`Data must be an instance of ArrayBuffer or SharedArrayBuffer.`);let[n,r]=new Uint8Array(t,0,2);if(n!==219)throw Error(`Data does not appear to be in a KDBush format.`);let i=r>>4;if(i!==1)throw Error(`Got v${i} data when expected v1.`);let a=Vo[r&15];if(!a)throw Error(`Unrecognized array type.`);let[o]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new e(s,o,a,void 0,t)}constructor(e,t=64,n=Float64Array,r=ArrayBuffer,i){if(isNaN(e)||e<0)throw Error(`Unexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;let a=Vo.indexOf(this.ArrayType),o=e*2*this.ArrayType.BYTES_PER_ELEMENT,s=e*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-s%8)%8;if(a<0)throw Error(`Unexpected typed array class: ${n}.`);if(i)this.data=i,this.ids=new this.IndexArrayType(i,8,e),this.coords=new n(i,8+s+c,e*2),this._pos=e*2,this._finished=true;else {let i=this.data=new r(8+o+s+c);this.ids=new this.IndexArrayType(i,8,e),this.coords=new n(i,8+s+c,e*2),this._pos=0,this._finished=false,new Uint8Array(i,0,2).set([219,16+a]),new Uint16Array(i,2,1)[0]=t,new Uint32Array(i,4,1)[0]=e;}}add(e,t){let n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=e,this.coords[this._pos++]=t,n}finish(){let e=this._pos>>1;if(e!==this.numItems)throw Error(`Added ${e} items when expected ${this.numItems}.`);return Uo(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=true,this}range(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;q[0]=0,q[1]=i.length-1,q[2]=0;let s=3,c=[];for(;s>0;){let l=q[--s],u=q[--s],d=q[--s];if(u-d<=o){for(let o=d;o<=u;o++){let s=a[2*o],l=a[2*o+1];s>=e&&s<=n&&l>=t&&l<=r&&c.push(i[o]);}continue}let f=d+u>>1,p=a[2*f],m=a[2*f+1];p>=e&&p<=n&&m>=t&&m<=r&&c.push(i[f]),(l===0?e<=p:t<=m)&&(q[s++]=d,q[s++]=f-1,q[s++]=1-l),(l===0?n>=p:r>=m)&&(q[s++]=f+1,q[s++]=u,q[s++]=1-l);}return c}within(e,t,n){let r=[];return this.withinInto(e,t,n,r),r}withinInto(e,t,n,r){if(!this._finished)throw Error(`Data not yet indexed - call index.finish().`);let{ids:i,coords:a,nodeSize:o}=this;q[0]=0,q[1]=i.length-1,q[2]=0;let s=3,c=0,l=n*n;for(;s>0;){let u=q[--s],d=q[--s],f=q[--s];if(d-f<=o){for(let n=f;n<=d;n++)qo(a[2*n],a[2*n+1],e,t)<=l&&(r[c++]=i[n]);continue}let p=f+d>>1,m=a[2*p],h=a[2*p+1];qo(m,h,e,t)<=l&&(r[c++]=i[p]),(u===0?e-n<=m:t-n<=h)&&(q[s++]=f,q[s++]=p-1,q[s++]=1-u),(u===0?e+n>=m:t+n>=h)&&(q[s++]=p+1,q[s++]=d,q[s++]=1-u);}return c}};function Uo(e,t,n,r,i,a){if(i-r<=n)return;let o=r+i>>1;Wo(e,t,o,r,i,a),Uo(e,t,n,r,o-1,1-a),Uo(e,t,n,o+1,i,1-a);}function Wo(e,t,n,r,i,a){for(;i>r;){if(i-r>600){let o=i-r+1,s=n-r+1,c=Math.log(o),l=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*l*(o-l)/o)*(s-o/2<0?-1:1);Wo(e,t,n,Math.max(r,Math.floor(n-s*l/o+u)),Math.min(i,Math.floor(n+(o-s)*l/o+u)),a);}let o=t[2*n+a],s=r,c=i;for(Go(e,t,r,n),t[2*i+a]>o&&Go(e,t,r,i);s<c;){for(Go(e,t,s,c),s++,c--;t[2*s+a]<o;)s++;for(;t[2*c+a]>o;)c--;}t[2*r+a]===o?Go(e,t,r,c):(c++,Go(e,t,c,i)),c<=n&&(r=c+1),n<=c&&(i=c-1);}}function Go(e,t,n,r){Ko(e,n,r),Ko(t,2*n,2*r),Ko(t,2*n+1,2*r+1);}function Ko(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}function qo(e,t,n,r){let i=e-n,a=t-r;return i*i+a*a}const Jo=512/j/2;var Yo=class{constructor(e,t,n){this.tileID=e,this.bucketInstanceId=n,this._symbolsByKey={};let r=new Map;for(let e=0;e<t.length;e++){let n=t.get(e),i=n.key,a=r.get(i);a?a.push(n):r.set(i,[n]);}for(let[e,t]of r){let n={positions:t.map(e=>({x:Math.floor(e.anchorX*Jo),y:Math.floor(e.anchorY*Jo)})),crossTileIDs:t.map(e=>e.crossTileID)};if(n.positions.length>128){let e=new Ho(n.positions.length,16,Uint16Array);for(let{x:t,y:r}of n.positions)e.add(t,r);e.finish(),delete n.positions,n.index=e;}this._symbolsByKey[e]=n;}}getScaledCoordinates(e,t){let{x:n,y:r,z:i}=this.tileID.canonical,{x:a,y:o,z:s}=t.canonical,c=s-i,l=Jo/2**c,u=(a*j+e.anchorX)*l,d=(o*j+e.anchorY)*l,f=n*j*Jo,p=r*j*Jo;return {x:Math.floor(u-f),y:Math.floor(d-p)}}findMatches(e,t,n){let r=this.tileID.canonical.z<t.canonical.z?1:2**(this.tileID.canonical.z-t.canonical.z);for(let i=0;i<e.length;i++){let a=e.get(i);if(a.crossTileID)continue;let o=this._symbolsByKey[a.key];if(!o)continue;let s=this.getScaledCoordinates(a,t);if(o.index){let e=o.index.range(s.x-r,s.y-r,s.x+r,s.y+r).sort();for(let t of e){let e=o.crossTileIDs[t];if(!n[e]){n[e]=true,a.crossTileID=e;break}}}else if(o.positions)for(let e=0;e<o.positions.length;e++){let t=o.positions[e],i=o.crossTileIDs[e];if(Math.abs(t.x-s.x)<=r&&Math.abs(t.y-s.y)<=r&&!n[i]){n[i]=true,a.crossTileID=i;break}}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map(({crossTileIDs:e})=>e)}},Xo=class{constructor(){this.maxCrossTileID=0;}generate(){return ++this.maxCrossTileID}},Zo=class{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0;}handleWrapJump(e){let t=Math.round((e-this.lng)/360);if(t!==0)for(let e in this.indexes){let n=this.indexes[e],r={};for(let e in n){let i=n[e];i.tileID=i.tileID.unwrapTo(i.tileID.wrap+t),r[i.tileID.key]=i;}this.indexes[e]=r;}this.lng=e;}addBucket(e,t,n){if(this.indexes[e.overscaledZ]?.[e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===t.bucketInstanceId)return false;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key]);}for(let e=0;e<t.symbolInstances.length;e++){let n=t.symbolInstances.get(e);n.crossTileID=0;}this.usedCrossTileIDs[e.overscaledZ]||={};let r=this.usedCrossTileIDs[e.overscaledZ];for(let n in this.indexes){let i=this.indexes[n];if(Number(n)>e.overscaledZ)for(let n in i){let a=i[n];a.tileID.isChildOf(e)&&a.findMatches(t.symbolInstances,e,r);}else {let a=i[e.scaledTo(Number(n)).key];a&&a.findMatches(t.symbolInstances,e,r);}}for(let e=0;e<t.symbolInstances.length;e++){let i=t.symbolInstances.get(e);i.crossTileID||(i.crossTileID=n.generate(),r[i.crossTileID]=true);}return this.indexes[e.overscaledZ]===void 0&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new Yo(e,t.symbolInstances,t.bucketInstanceId),true}removeBucketCrossTileIDs(e,t){for(let n of t.getCrossTileIDsLists())for(let t of n)delete this.usedCrossTileIDs[e][t];}removeStaleBuckets(e){let t=false;for(let n in this.indexes){let r=this.indexes[n];for(let i in r)e[r[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(n,r[i]),delete r[i],t=true);}return t}},Qo=class{constructor(){this.layerIndexes={},this.crossTileIDs=new Xo,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={};}addLayer(e,t,n){let r=this.layerIndexes[e.id];r===void 0&&(r=this.layerIndexes[e.id]=new Zo);let i=false,a={};r.handleWrapJump(n);for(let n of t){let t=n.getBucket(e);e.id===t?.layerIds[0]&&(t.bucketInstanceId||=(this.maxBucketInstanceId+=1,this.maxBucketInstanceId),r.addBucket(n.tileID,t,this.crossTileIDs)&&(i=true),a[t.bucketInstanceId]=true);}return r.removeStaleBuckets(a)&&(i=true),i}pruneUnusedLayers(e){let t={};for(let n of e)t[n]=true;for(let e in this.layerIndexes)t[e]||delete this.layerIndexes[e];}},$o=`#ifdef GL_ES
15
+ precision mediump float;
16
+ #else
17
+ #if !defined(lowp)
18
+ #define lowp
19
+ #endif
20
+ #if !defined(mediump)
21
+ #define mediump
22
+ #endif
23
+ #if !defined(highp)
24
+ #define highp
25
+ #endif
26
+ #endif
27
+ out highp vec4 fragColor;`,es=`#ifdef GL_ES
28
+ precision highp float;
29
+ #else
30
+ #if !defined(lowp)
31
+ #define lowp
32
+ #endif
33
+ #if !defined(mediump)
34
+ #define mediump
35
+ #endif
36
+ #if !defined(highp)
37
+ #define highp
38
+ #endif
39
+ #endif
40
+ vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
41
+ );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
42
+ );}
43
+ #ifdef TERRAIN3D
44
+ uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;
45
+ #endif
46
+ const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
47
+ #ifdef TERRAIN3D
48
+ highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
49
+ #else
50
+ return 1.0;
51
+ #endif
52
+ }float calculate_visibility(vec4 pos) {
53
+ #ifdef TERRAIN3D
54
+ vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
55
+ #else
56
+ return 1.0;
57
+ #endif
58
+ }float ele(vec2 pos) {
59
+ #ifdef TERRAIN3D
60
+ vec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
61
+ #else
62
+ return 0.0;
63
+ #endif
64
+ }float get_elevation(vec2 pos) {
65
+ #ifdef TERRAIN3D
66
+ #ifdef GLOBE
67
+ if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
68
+ #endif
69
+ vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
70
+ #else
71
+ return 0.0;
72
+ #endif
73
+ }const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`,ts=`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
74
+ #ifdef OVERDRAW_INSPECTOR
75
+ fragColor=vec4(1.0);
76
+ #endif
77
+ }`,ns=`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}`,rs=`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
78
+ #ifdef OVERDRAW_INSPECTOR
79
+ fragColor=vec4(1.0);
80
+ #endif
81
+ }`,is=`uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}`,as=`in vec3 v_data;flat in float v_visibility;
82
+ #pragma maplibre: define highp vec4 color
83
+ #pragma maplibre: define mediump float radius
84
+ #pragma maplibre: define lowp float blur
85
+ #pragma maplibre: define lowp float opacity
86
+ #pragma maplibre: define highp vec4 stroke_color
87
+ #pragma maplibre: define mediump float stroke_width
88
+ #pragma maplibre: define lowp float stroke_opacity
89
+ void main() {
90
+ #pragma maplibre: initialize highp vec4 color
91
+ #pragma maplibre: initialize mediump float radius
92
+ #pragma maplibre: initialize lowp float blur
93
+ #pragma maplibre: initialize lowp float opacity
94
+ #pragma maplibre: initialize highp vec4 stroke_color
95
+ #pragma maplibre: initialize mediump float stroke_width
96
+ #pragma maplibre: initialize lowp float stroke_opacity
97
+ vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
98
+ #ifdef OVERDRAW_INSPECTOR
99
+ fragColor=vec4(1.0);
100
+ #endif
101
+ }`,os=`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;layout(location=0) in vec2 a_pos;out vec3 v_data;flat out float v_visibility;
102
+ #pragma maplibre: define highp vec4 color
103
+ #pragma maplibre: define mediump float radius
104
+ #pragma maplibre: define lowp float blur
105
+ #pragma maplibre: define lowp float opacity
106
+ #pragma maplibre: define highp vec4 stroke_color
107
+ #pragma maplibre: define mediump float stroke_width
108
+ #pragma maplibre: define lowp float stroke_opacity
109
+ void main(void) {
110
+ #pragma maplibre: initialize highp vec4 color
111
+ #pragma maplibre: initialize mediump float radius
112
+ #pragma maplibre: initialize lowp float blur
113
+ #pragma maplibre: initialize lowp float opacity
114
+ #pragma maplibre: initialize highp vec4 stroke_color
115
+ #pragma maplibre: initialize mediump float stroke_width
116
+ #pragma maplibre: initialize lowp float stroke_opacity
117
+ vec2 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
118
+ #ifdef GLOBE
119
+ vec3 center_vector=projectToSphere(circle_center);
120
+ #endif
121
+ float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
122
+ #ifdef GLOBE
123
+ vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
124
+ #else
125
+ vec4 projected_center=projectTileWithElevation(circle_center,ele);
126
+ #endif
127
+ corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
128
+ #ifdef GLOBE
129
+ vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
130
+ #else
131
+ gl_Position=projectTileWithElevation(corner_position,ele);
132
+ #endif
133
+ } else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`,ss=`void main() {fragColor=vec4(1.0);}`;const cs={prelude:J($o,es),projectionMercator:J(`
134
+ void clipAntimeridian() {}`,`float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}`),projectionGlobe:J(`uniform bool u_projection_clip_antimeridian;in highp float v_projection_tile_x;void clipAntimeridian() {if (u_projection_clip_antimeridian && (v_projection_tile_x < 0.0 || v_projection_tile_x >=8192.0)) {discard;}}`,`#define GLOBE_RADIUS 6371008.8
135
+ uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;out highp float v_projection_tile_x;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
136
+ );}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float t=exp(PI-(mercator_pos_y*PI*2.0));return (2.0*t)/(t*t+1.0);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;float spherical_x=mercator_pos.x*PI*2.0+PI;float t=exp(PI-(mercator_pos.y*PI*2.0));float t2=t*t;float denom=t2+1.0;float sin_sy=(t2-1.0)/denom;float cos_sy=(2.0*t)/denom;vec3 pos=vec3(sin(spherical_x)*cos_sy,sin_sy,cos(spherical_x)*cos_sy
137
+ );if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:J(ts,ns),backgroundPattern:J(rs,is),circle:J(as,os),clippingMask:J(ss,`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}`),heatmap:J(`uniform highp float u_intensity;in vec2 v_extrude;
138
+ #pragma maplibre: define highp float weight
139
+ #define GAUSS_COEF 0.3989422804014327
140
+ void main() {
141
+ #pragma maplibre: initialize highp float weight
142
+ float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
143
+ #ifdef OVERDRAW_INSPECTOR
144
+ fragColor=vec4(1.0);
145
+ #endif
146
+ }`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;layout(location=0) in vec2 a_pos;out vec2 v_extrude;
147
+ #pragma maplibre: define highp float weight
148
+ #pragma maplibre: define mediump float radius
149
+ const highp float ZERO=1.0/255.0/16.0;
150
+ #define GAUSS_COEF 0.3989422804014327
151
+ void main(void) {
152
+ #pragma maplibre: initialize highp float weight
153
+ #pragma maplibre: initialize mediump float radius
154
+ vec2 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=floor(pos_raw/8.0);
155
+ #ifdef GLOBE
156
+ vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
157
+ #else
158
+ gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
159
+ #endif
160
+ }`),heatmapTexture:J(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
161
+ #ifdef OVERDRAW_INSPECTOR
162
+ fragColor=vec4(0.0);
163
+ #endif
164
+ }`,`uniform mat4 u_matrix;uniform vec2 u_world;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),collisionBox:J(`flat in float v_placed;flat in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}`,`layout(location=0) in vec2 a_anchor_pos;layout(location=1) in vec2 a_placed;layout(location=2) in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;flat out float v_placed;flat out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:J(`flat in float v_radius;in vec2 v_extrude;flat in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}`,`layout(location=0) in vec2 a_pos;layout(location=1) in float a_radius;layout(location=2) in vec2 a_flags;uniform vec2 u_viewport_size;flat out float v_radius;out vec2 v_extrude;flat out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),colorRelief:J(`#ifdef GL_ES
165
+ precision highp float;
166
+ #endif
167
+ uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
168
+ {l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
169
+ #ifdef OVERDRAW_INSPECTOR
170
+ fragColor=vec4(1.0);
171
+ #endif
172
+ }`,`uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),debug:J(`uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}`,`layout(location=0) in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}`),depth:J(ss,`layout(location=0) in vec2 a_pos;void main() {
173
+ #ifdef GLOBE
174
+ gl_Position=projectTileFor3D(a_pos,0.0);
175
+ #else
176
+ gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
177
+ #endif
178
+ }`),fill:J(`#pragma maplibre: define highp vec4 color
179
+ #pragma maplibre: define lowp float opacity
180
+ void main() {
181
+ #pragma maplibre: initialize highp vec4 color
182
+ #pragma maplibre: initialize lowp float opacity
183
+ fragColor=color*opacity;
184
+ #ifdef OVERDRAW_INSPECTOR
185
+ fragColor=vec4(1.0);
186
+ #endif
187
+ }`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;
188
+ #pragma maplibre: define highp vec4 color
189
+ #pragma maplibre: define lowp float opacity
190
+ void main() {
191
+ #pragma maplibre: initialize highp vec4 color
192
+ #pragma maplibre: initialize lowp float opacity
193
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:J(`in vec2 v_pos;
194
+ #ifdef GLOBE
195
+ in float v_depth;
196
+ #endif
197
+ #pragma maplibre: define highp vec4 outline_color
198
+ #pragma maplibre: define lowp float opacity
199
+ void main() {
200
+ #pragma maplibre: initialize highp vec4 outline_color
201
+ #pragma maplibre: initialize lowp float opacity
202
+ float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
203
+ #ifdef GLOBE
204
+ if (v_depth > 1.0) {discard;}
205
+ #endif
206
+ #ifdef OVERDRAW_INSPECTOR
207
+ fragColor=vec4(1.0);
208
+ #endif
209
+ }`,`uniform vec2 u_world;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos;
210
+ #ifdef GLOBE
211
+ out float v_depth;
212
+ #endif
213
+ #pragma maplibre: define highp vec4 outline_color
214
+ #pragma maplibre: define lowp float opacity
215
+ void main() {
216
+ #pragma maplibre: initialize highp vec4 outline_color
217
+ #pragma maplibre: initialize lowp float opacity
218
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;
219
+ #ifdef GLOBE
220
+ v_depth=gl_Position.z/gl_Position.w;
221
+ #endif
222
+ }`),fillOutlinePattern:J(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
223
+ #ifdef GLOBE
224
+ in float v_depth;
225
+ #endif
226
+ #pragma maplibre: define lowp float opacity
227
+ #pragma maplibre: define lowp vec4 pattern_from
228
+ #pragma maplibre: define lowp vec4 pattern_to
229
+ void main() {
230
+ #pragma maplibre: initialize lowp float opacity
231
+ #pragma maplibre: initialize mediump vec4 pattern_from
232
+ #pragma maplibre: initialize mediump vec4 pattern_to
233
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity;
234
+ #ifdef GLOBE
235
+ if (v_depth > 1.0) {discard;}
236
+ #endif
237
+ #ifdef OVERDRAW_INSPECTOR
238
+ fragColor=vec4(1.0);
239
+ #endif
240
+ }`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
241
+ #ifdef GLOBE
242
+ out float v_depth;
243
+ #endif
244
+ #pragma maplibre: define lowp float opacity
245
+ #pragma maplibre: define lowp vec4 pattern_from
246
+ #pragma maplibre: define lowp vec4 pattern_to
247
+ #pragma maplibre: define lowp float pixel_ratio_from
248
+ #pragma maplibre: define lowp float pixel_ratio_to
249
+ void main() {
250
+ #pragma maplibre: initialize lowp float opacity
251
+ #pragma maplibre: initialize mediump vec4 pattern_from
252
+ #pragma maplibre: initialize mediump vec4 pattern_to
253
+ #pragma maplibre: initialize lowp float pixel_ratio_from
254
+ #pragma maplibre: initialize lowp float pixel_ratio_to
255
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;
256
+ #ifdef GLOBE
257
+ v_depth=gl_Position.z/gl_Position.w;
258
+ #endif
259
+ }`),fillPattern:J(`#ifdef GL_ES
260
+ precision highp float;
261
+ #endif
262
+ uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
263
+ #pragma maplibre: define lowp float opacity
264
+ #pragma maplibre: define lowp vec4 pattern_from
265
+ #pragma maplibre: define lowp vec4 pattern_to
266
+ void main() {
267
+ #pragma maplibre: initialize lowp float opacity
268
+ #pragma maplibre: initialize mediump vec4 pattern_from
269
+ #pragma maplibre: initialize mediump vec4 pattern_to
270
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity;
271
+ #ifdef OVERDRAW_INSPECTOR
272
+ fragColor=vec4(1.0);
273
+ #endif
274
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
275
+ #pragma maplibre: define lowp float opacity
276
+ #pragma maplibre: define lowp vec4 pattern_from
277
+ #pragma maplibre: define lowp vec4 pattern_to
278
+ #pragma maplibre: define lowp float pixel_ratio_from
279
+ #pragma maplibre: define lowp float pixel_ratio_to
280
+ void main() {
281
+ #pragma maplibre: initialize lowp float opacity
282
+ #pragma maplibre: initialize mediump vec4 pattern_from
283
+ #pragma maplibre: initialize mediump vec4 pattern_to
284
+ #pragma maplibre: initialize lowp float pixel_ratio_from
285
+ #pragma maplibre: initialize lowp float pixel_ratio_to
286
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:J(`in vec4 v_color;void main() {fragColor=v_color;
287
+ #ifdef OVERDRAW_INSPECTOR
288
+ fragColor=vec4(1.0);
289
+ #endif
290
+ }`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;layout(location=1) in vec4 a_normal_ed;
291
+ #ifdef TERRAIN3D
292
+ layout(location=2) in vec2 a_centroid;
293
+ #endif
294
+ out vec4 v_color;
295
+ #pragma maplibre: define highp float base
296
+ #pragma maplibre: define highp float height
297
+ #pragma maplibre: define highp vec4 color
298
+ void main() {
299
+ #pragma maplibre: initialize highp float base
300
+ #pragma maplibre: initialize highp float height
301
+ #pragma maplibre: initialize highp vec4 color
302
+ vec3 normal=a_normal_ed.xyz;
303
+ #ifdef TERRAIN3D
304
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
305
+ #else
306
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
307
+ #endif
308
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
309
+ #ifdef GLOBE
310
+ vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
311
+ #else
312
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
313
+ #endif
314
+ float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
315
+ #ifdef GLOBE
316
+ mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
317
+ #endif
318
+ directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:J(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
319
+ #pragma maplibre: define lowp float base
320
+ #pragma maplibre: define lowp float height
321
+ #pragma maplibre: define lowp vec4 pattern_from
322
+ #pragma maplibre: define lowp vec4 pattern_to
323
+ #pragma maplibre: define lowp float pixel_ratio_from
324
+ #pragma maplibre: define lowp float pixel_ratio_to
325
+ void main() {
326
+ #pragma maplibre: initialize lowp float base
327
+ #pragma maplibre: initialize lowp float height
328
+ #pragma maplibre: initialize mediump vec4 pattern_from
329
+ #pragma maplibre: initialize mediump vec4 pattern_to
330
+ #pragma maplibre: initialize lowp float pixel_ratio_from
331
+ #pragma maplibre: initialize lowp float pixel_ratio_to
332
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
333
+ #ifdef OVERDRAW_INSPECTOR
334
+ fragColor=vec4(1.0);
335
+ #endif
336
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;layout(location=0) in vec2 a_pos;layout(location=1) in vec4 a_normal_ed;
337
+ #ifdef TERRAIN3D
338
+ layout(location=2) in vec2 a_centroid;
339
+ #endif
340
+ #ifdef GLOBE
341
+ out vec3 v_sphere_pos;
342
+ #endif
343
+ out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
344
+ #pragma maplibre: define lowp float base
345
+ #pragma maplibre: define lowp float height
346
+ #pragma maplibre: define lowp vec4 pattern_from
347
+ #pragma maplibre: define lowp vec4 pattern_to
348
+ #pragma maplibre: define lowp float pixel_ratio_from
349
+ #pragma maplibre: define lowp float pixel_ratio_to
350
+ void main() {
351
+ #pragma maplibre: initialize lowp float base
352
+ #pragma maplibre: initialize lowp float height
353
+ #pragma maplibre: initialize mediump vec4 pattern_from
354
+ #pragma maplibre: initialize mediump vec4 pattern_to
355
+ #pragma maplibre: initialize lowp float pixel_ratio_from
356
+ #pragma maplibre: initialize lowp float pixel_ratio_to
357
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;
358
+ #ifdef TERRAIN3D
359
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
360
+ #else
361
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
362
+ #endif
363
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
364
+ #ifdef GLOBE
365
+ vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
366
+ #else
367
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
368
+ #endif
369
+ vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
370
+ ? a_pos
371
+ : vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:J(`#ifdef GL_ES
372
+ precision highp float;
373
+ #endif
374
+ uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0);
375
+ #ifdef OVERDRAW_INSPECTOR
376
+ fragColor=vec4(1.0);
377
+ #endif
378
+ }`,`uniform mat4 u_matrix;uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;layout(location=1) in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}`),hillshade:J(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
379
+ #define PI 3.141592653589793
380
+ #define STANDARD 0
381
+ #define COMBINED 1
382
+ #define IGOR 2
383
+ #define MULTIDIRECTIONAL 3
384
+ #define BASIC 4
385
+ float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
386
+ {fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
387
+ {fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
388
+ #ifdef OVERDRAW_INSPECTOR
389
+ fragColor=vec4(1.0);
390
+ #endif
391
+ }`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),line:J(`uniform lowp float u_device_pixel_ratio;flat in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
392
+ #ifdef GLOBE
393
+ in float v_depth;
394
+ #endif
395
+ #pragma maplibre: define highp vec4 color
396
+ #pragma maplibre: define lowp float blur
397
+ #pragma maplibre: define lowp float opacity
398
+ void main() {
399
+ #pragma maplibre: initialize highp vec4 color
400
+ #pragma maplibre: initialize lowp float blur
401
+ #pragma maplibre: initialize lowp float opacity
402
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity);
403
+ #ifdef GLOBE
404
+ if (v_depth > 1.0) {discard;}
405
+ #endif
406
+ #ifdef OVERDRAW_INSPECTOR
407
+ fragColor=vec4(1.0);
408
+ #endif
409
+ }`,`
410
+ #define scale 0.015873016
411
+ layout(location=0) in vec2 a_pos_normal;layout(location=1) in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;flat out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
412
+ #ifdef GLOBE
413
+ out float v_depth;
414
+ #endif
415
+ #pragma maplibre: define highp vec4 color
416
+ #pragma maplibre: define lowp float blur
417
+ #pragma maplibre: define lowp float opacity
418
+ #pragma maplibre: define mediump float gapwidth
419
+ #pragma maplibre: define lowp float offset
420
+ #pragma maplibre: define mediump float width
421
+ void main() {
422
+ #pragma maplibre: initialize highp vec4 color
423
+ #pragma maplibre: initialize lowp float blur
424
+ #pragma maplibre: initialize lowp float opacity
425
+ #pragma maplibre: initialize mediump float gapwidth
426
+ #pragma maplibre: initialize lowp float offset
427
+ #pragma maplibre: initialize mediump float width
428
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
429
+ #ifdef GLOBE
430
+ v_depth=gl_Position.z/gl_Position.w;
431
+ #endif
432
+ #ifdef TERRAIN3D
433
+ v_gamma_scale=1.0;
434
+ #else
435
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
436
+ #endif
437
+ v_width2=vec2(outset,inset);}`),lineGradient:J(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;flat in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
438
+ #ifdef GLOBE
439
+ in float v_depth;
440
+ #endif
441
+ #pragma maplibre: define lowp float blur
442
+ #pragma maplibre: define lowp float opacity
443
+ void main() {
444
+ #pragma maplibre: initialize lowp float blur
445
+ #pragma maplibre: initialize lowp float opacity
446
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
447
+ #ifdef GLOBE
448
+ if (v_depth > 1.0) {discard;}
449
+ #endif
450
+ #ifdef OVERDRAW_INSPECTOR
451
+ fragColor=vec4(1.0);
452
+ #endif
453
+ }`,`
454
+ #define scale 0.015873016
455
+ layout(location=0) in vec2 a_pos_normal;layout(location=1) in vec4 a_data;layout(location=2) in float a_uv_x;layout(location=3) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;flat out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
456
+ #ifdef GLOBE
457
+ out float v_depth;
458
+ #endif
459
+ #pragma maplibre: define lowp float blur
460
+ #pragma maplibre: define lowp float opacity
461
+ #pragma maplibre: define mediump float gapwidth
462
+ #pragma maplibre: define lowp float offset
463
+ #pragma maplibre: define mediump float width
464
+ void main() {
465
+ #pragma maplibre: initialize lowp float blur
466
+ #pragma maplibre: initialize lowp float opacity
467
+ #pragma maplibre: initialize mediump float gapwidth
468
+ #pragma maplibre: initialize lowp float offset
469
+ #pragma maplibre: initialize mediump float width
470
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
471
+ #ifdef GLOBE
472
+ v_depth=gl_Position.z/gl_Position.w;
473
+ #endif
474
+ #ifdef TERRAIN3D
475
+ v_gamma_scale=1.0;
476
+ #else
477
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
478
+ #endif
479
+ v_width2=vec2(outset,inset);}`),linePattern:J(`#ifdef GL_ES
480
+ precision highp float;
481
+ #endif
482
+ uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;flat in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;flat in float v_width;
483
+ #ifdef GLOBE
484
+ in float v_depth;
485
+ #endif
486
+ #pragma maplibre: define lowp vec4 pattern_from
487
+ #pragma maplibre: define lowp vec4 pattern_to
488
+ #pragma maplibre: define lowp float pixel_ratio_from
489
+ #pragma maplibre: define lowp float pixel_ratio_to
490
+ #pragma maplibre: define lowp float blur
491
+ #pragma maplibre: define lowp float opacity
492
+ void main() {
493
+ #pragma maplibre: initialize mediump vec4 pattern_from
494
+ #pragma maplibre: initialize mediump vec4 pattern_to
495
+ #pragma maplibre: initialize lowp float pixel_ratio_from
496
+ #pragma maplibre: initialize lowp float pixel_ratio_to
497
+ #pragma maplibre: initialize lowp float blur
498
+ #pragma maplibre: initialize lowp float opacity
499
+ clipAntimeridian();vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
500
+ #ifdef GLOBE
501
+ if (v_depth > 1.0) {discard;}
502
+ #endif
503
+ #ifdef OVERDRAW_INSPECTOR
504
+ fragColor=vec4(1.0);
505
+ #endif
506
+ }`,`
507
+ #define scale 0.015873016
508
+ #define LINE_DISTANCE_SCALE 2.0
509
+ layout(location=0) in vec2 a_pos_normal;layout(location=1) in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;flat out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;flat out float v_width;
510
+ #ifdef GLOBE
511
+ out float v_depth;
512
+ #endif
513
+ #pragma maplibre: define lowp float blur
514
+ #pragma maplibre: define lowp float opacity
515
+ #pragma maplibre: define lowp float offset
516
+ #pragma maplibre: define mediump float gapwidth
517
+ #pragma maplibre: define mediump float width
518
+ #pragma maplibre: define lowp float floorwidth
519
+ #pragma maplibre: define lowp vec4 pattern_from
520
+ #pragma maplibre: define lowp vec4 pattern_to
521
+ #pragma maplibre: define lowp float pixel_ratio_from
522
+ #pragma maplibre: define lowp float pixel_ratio_to
523
+ void main() {
524
+ #pragma maplibre: initialize lowp float blur
525
+ #pragma maplibre: initialize lowp float opacity
526
+ #pragma maplibre: initialize lowp float offset
527
+ #pragma maplibre: initialize mediump float gapwidth
528
+ #pragma maplibre: initialize mediump float width
529
+ #pragma maplibre: initialize lowp float floorwidth
530
+ #pragma maplibre: initialize mediump vec4 pattern_from
531
+ #pragma maplibre: initialize mediump vec4 pattern_to
532
+ #pragma maplibre: initialize lowp float pixel_ratio_from
533
+ #pragma maplibre: initialize lowp float pixel_ratio_to
534
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
535
+ #ifdef GLOBE
536
+ v_depth=gl_Position.z/gl_Position.w;
537
+ #endif
538
+ #ifdef TERRAIN3D
539
+ v_gamma_scale=1.0;
540
+ #else
541
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
542
+ #endif
543
+ v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:J(`uniform lowp float u_device_pixel_ratio;uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;flat in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
544
+ #ifdef GLOBE
545
+ in float v_depth;
546
+ #endif
547
+ #pragma maplibre: define highp vec4 color
548
+ #pragma maplibre: define lowp float blur
549
+ #pragma maplibre: define lowp float opacity
550
+ #pragma maplibre: define mediump float width
551
+ #pragma maplibre: define lowp float floorwidth
552
+ #pragma maplibre: define mediump vec4 dasharray_from
553
+ #pragma maplibre: define mediump vec4 dasharray_to
554
+ void main() {
555
+ #pragma maplibre: initialize highp vec4 color
556
+ #pragma maplibre: initialize lowp float blur
557
+ #pragma maplibre: initialize lowp float opacity
558
+ #pragma maplibre: initialize mediump float width
559
+ #pragma maplibre: initialize lowp float floorwidth
560
+ #pragma maplibre: initialize mediump vec4 dasharray_from
561
+ #pragma maplibre: initialize mediump vec4 dasharray_to
562
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
563
+ #ifdef GLOBE
564
+ if (v_depth > 1.0) {discard;}
565
+ #endif
566
+ #ifdef OVERDRAW_INSPECTOR
567
+ fragColor=vec4(1.0);
568
+ #endif
569
+ }`,`
570
+ #define scale 0.015873016
571
+ #define LINE_DISTANCE_SCALE 2.0
572
+ layout(location=0) in vec2 a_pos_normal;layout(location=1) in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;flat out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
573
+ #ifdef GLOBE
574
+ out float v_depth;
575
+ #endif
576
+ #pragma maplibre: define highp vec4 color
577
+ #pragma maplibre: define lowp float blur
578
+ #pragma maplibre: define lowp float opacity
579
+ #pragma maplibre: define mediump float gapwidth
580
+ #pragma maplibre: define lowp float offset
581
+ #pragma maplibre: define mediump float width
582
+ #pragma maplibre: define lowp float floorwidth
583
+ #pragma maplibre: define mediump vec4 dasharray_from
584
+ #pragma maplibre: define mediump vec4 dasharray_to
585
+ void main() {
586
+ #pragma maplibre: initialize highp vec4 color
587
+ #pragma maplibre: initialize lowp float blur
588
+ #pragma maplibre: initialize lowp float opacity
589
+ #pragma maplibre: initialize mediump float gapwidth
590
+ #pragma maplibre: initialize lowp float offset
591
+ #pragma maplibre: initialize mediump float width
592
+ #pragma maplibre: initialize lowp float floorwidth
593
+ #pragma maplibre: initialize mediump vec4 dasharray_from
594
+ #pragma maplibre: initialize mediump vec4 dasharray_to
595
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
596
+ #ifdef GLOBE
597
+ v_depth=gl_Position.z/gl_Position.w;
598
+ #endif
599
+ #ifdef TERRAIN3D
600
+ v_gamma_scale=1.0;
601
+ #else
602
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
603
+ #endif
604
+ float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:J(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;flat in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
605
+ #ifdef GLOBE
606
+ in float v_depth;
607
+ #endif
608
+ #pragma maplibre: define lowp float blur
609
+ #pragma maplibre: define lowp float opacity
610
+ #pragma maplibre: define mediump float width
611
+ #pragma maplibre: define lowp float floorwidth
612
+ #pragma maplibre: define mediump vec4 dasharray_from
613
+ #pragma maplibre: define mediump vec4 dasharray_to
614
+ void main() {
615
+ #pragma maplibre: initialize lowp float blur
616
+ #pragma maplibre: initialize lowp float opacity
617
+ #pragma maplibre: initialize mediump float width
618
+ #pragma maplibre: initialize lowp float floorwidth
619
+ #pragma maplibre: initialize mediump vec4 dasharray_from
620
+ #pragma maplibre: initialize mediump vec4 dasharray_to
621
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
622
+ #ifdef GLOBE
623
+ if (v_depth > 1.0) {discard;}
624
+ #endif
625
+ #ifdef OVERDRAW_INSPECTOR
626
+ fragColor=vec4(1.0);
627
+ #endif
628
+ }`,`
629
+ #define scale 0.015873016
630
+ #define LINE_DISTANCE_SCALE 2.0
631
+ layout(location=0) in vec2 a_pos_normal;layout(location=1) in vec4 a_data;layout(location=2) in float a_uv_x;layout(location=3) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;flat out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
632
+ #ifdef GLOBE
633
+ out float v_depth;
634
+ #endif
635
+ #pragma maplibre: define lowp float blur
636
+ #pragma maplibre: define lowp float opacity
637
+ #pragma maplibre: define mediump float gapwidth
638
+ #pragma maplibre: define lowp float offset
639
+ #pragma maplibre: define mediump float width
640
+ #pragma maplibre: define lowp float floorwidth
641
+ #pragma maplibre: define mediump vec4 dasharray_from
642
+ #pragma maplibre: define mediump vec4 dasharray_to
643
+ void main() {
644
+ #pragma maplibre: initialize lowp float blur
645
+ #pragma maplibre: initialize lowp float opacity
646
+ #pragma maplibre: initialize mediump float gapwidth
647
+ #pragma maplibre: initialize lowp float offset
648
+ #pragma maplibre: initialize mediump float width
649
+ #pragma maplibre: initialize lowp float floorwidth
650
+ #pragma maplibre: initialize mediump vec4 dasharray_from
651
+ #pragma maplibre: initialize mediump vec4 dasharray_to
652
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
653
+ #ifdef GLOBE
654
+ v_depth=gl_Position.z/gl_Position.w;
655
+ #endif
656
+ #ifdef TERRAIN3D
657
+ v_gamma_scale=1.0;
658
+ #else
659
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
660
+ #endif
661
+ float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),layerOpacity:J(`uniform sampler2D u_image;uniform float u_opacity;in vec2 v_pos;void main() {fragColor=texture(u_image,v_pos)*u_opacity;
662
+ #ifdef OVERDRAW_INSPECTOR
663
+ fragColor=vec4(0.0);
664
+ #endif
665
+ }`,`layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos.x*2.0-1.0,1.0-a_pos.y*2.0,0.0,1.0);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),raster:J(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0);vec4 color1=texture(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
666
+ #ifdef OVERDRAW_INSPECTOR
667
+ fragColor=vec4(1.0);
668
+ #endif
669
+ }`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;layout(location=0) in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5;
670
+ #ifdef GLOBE
671
+ if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;}
672
+ #endif
673
+ v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:J(`uniform sampler2D u_texture;in vec2 v_tex;flat in float v_total_opacity;void main() {fragColor=texture(u_texture,v_tex)*v_total_opacity;
674
+ #ifdef OVERDRAW_INSPECTOR
675
+ fragColor=vec4(1.0);
676
+ #endif
677
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in vec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;out vec2 v_tex;flat out float v_total_opacity;
678
+ #pragma maplibre: define lowp float opacity
679
+ void main() {
680
+ #pragma maplibre: initialize lowp float opacity
681
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_total_opacity=opacity*max(0.0,min(visibility,fade_opacity[0]+fade_change));if (v_total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
682
+ camera_to_anchor_distance/u_camera_to_center_distance :
683
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
684
+ #ifdef GLOBE
685
+ if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
686
+ #endif
687
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;}`),symbolSDF:J(`#define SDF_PX 8.0
688
+ uniform bool u_is_halo;uniform bool u_is_plain;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
689
+ #pragma maplibre: define highp vec4 fill_color
690
+ #pragma maplibre: define highp vec4 halo_color
691
+ #pragma maplibre: define lowp float halo_width
692
+ #pragma maplibre: define lowp float halo_blur
693
+ void main() {
694
+ #pragma maplibre: initialize highp vec4 fill_color
695
+ #pragma maplibre: initialize highp vec4 halo_color
696
+ #pragma maplibre: initialize lowp float halo_width
697
+ #pragma maplibre: initialize lowp float halo_blur
698
+ float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float total_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out_text,color_alpha_out_halo;if (u_is_plain){highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);color_alpha_out_text=total_opacity*alpha*fill_color;}if (u_is_halo) {float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);float inner_edge_halo=inner_edge+gamma_halo*gamma_scale;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(inner_edge_halo-gamma_scaled_halo,inner_edge_halo+gamma_scaled_halo,dist);highp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha_halo= min(smoothstep(halo_edge-gamma_scaled_halo,halo_edge+gamma_scaled_halo,dist),1.0-alpha_halo);color_alpha_out_halo=total_opacity*alpha_halo*halo_color;}if (u_is_plain && u_is_halo) {fragColor=color_alpha_out_text+(1.-color_alpha_out_text.a)*color_alpha_out_halo;} else if (u_is_halo){fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out_text;}
699
+ #ifdef OVERDRAW_INSPECTOR
700
+ fragColor=vec4(1.0);
701
+ #endif
702
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in vec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;out vec2 v_data0;out vec3 v_data1;
703
+ #pragma maplibre: define highp vec4 fill_color
704
+ #pragma maplibre: define highp vec4 halo_color
705
+ #pragma maplibre: define lowp float opacity
706
+ #pragma maplibre: define lowp float halo_width
707
+ #pragma maplibre: define lowp float halo_blur
708
+ void main() {
709
+ #pragma maplibre: initialize highp vec4 fill_color
710
+ #pragma maplibre: initialize highp vec4 halo_color
711
+ #pragma maplibre: initialize lowp float opacity
712
+ #pragma maplibre: initialize lowp float halo_width
713
+ #pragma maplibre: initialize lowp float halo_blur
714
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
715
+ camera_to_anchor_distance/u_camera_to_center_distance :
716
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
717
+ #ifdef GLOBE
718
+ if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
719
+ #endif
720
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,total_opacity);}`),symbolTextAndIcon:J(`#define SDF_PX 8.0
721
+ #define SDF 1.0
722
+ #define ICON 0.0
723
+ uniform bool u_is_halo;uniform bool u_is_text;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;in vec4 v_data0;in vec3 v_data1;flat in float v_is_sdf;
724
+ #pragma maplibre: define highp vec4 fill_color
725
+ #pragma maplibre: define highp vec4 halo_color
726
+ #pragma maplibre: define lowp float halo_width
727
+ #pragma maplibre: define lowp float halo_blur
728
+ void main() {
729
+ #pragma maplibre: initialize highp vec4 fill_color
730
+ #pragma maplibre: initialize highp vec4 halo_color
731
+ #pragma maplibre: initialize lowp float halo_width
732
+ #pragma maplibre: initialize lowp float halo_blur
733
+ float total_opacity=v_data1[2];if (v_is_sdf==ICON) {vec2 tex_icon=v_data0.zw;fragColor=texture(u_texture_icon,tex_icon)*total_opacity;
734
+ #ifdef OVERDRAW_INSPECTOR
735
+ fragColor=vec4(1.0);
736
+ #endif
737
+ return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out,color_alpha_out_halo;if (u_is_text) {highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);color_alpha_out=fill_color*(alpha*total_opacity);}if (u_is_halo) {highp float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);lowp float buff_halo=(6.0-halo_width/fontScale)/SDF_PX;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(buff_halo-gamma_scaled_halo,buff_halo+gamma_scaled_halo,dist);color_alpha_out_halo=halo_color*(alpha_halo*total_opacity);}if (u_is_text && u_is_halo) {fragColor=color_alpha_out+(1.-color_alpha_out.a)*color_alpha_out_halo;} else if (u_is_halo) {fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out;}
738
+ #ifdef OVERDRAW_INSPECTOR
739
+ fragColor=vec4(1.0);
740
+ #endif
741
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in vec4 a_data;layout(location=2) in vec3 a_projected_pos;layout(location=3) in float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;out vec4 v_data0;out vec3 v_data1;flat out float v_is_sdf;
742
+ #pragma maplibre: define highp vec4 fill_color
743
+ #pragma maplibre: define highp vec4 halo_color
744
+ #pragma maplibre: define lowp float opacity
745
+ #pragma maplibre: define lowp float halo_width
746
+ #pragma maplibre: define lowp float halo_blur
747
+ void main() {
748
+ #pragma maplibre: initialize highp vec4 fill_color
749
+ #pragma maplibre: initialize highp vec4 halo_color
750
+ #pragma maplibre: initialize lowp float opacity
751
+ #pragma maplibre: initialize lowp float halo_width
752
+ #pragma maplibre: initialize lowp float halo_blur
753
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
754
+ camera_to_anchor_distance/u_camera_to_center_distance :
755
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
756
+ #ifdef GLOBE
757
+ if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
758
+ #endif
759
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec3(gamma_scale,size,total_opacity);v_is_sdf=is_sdf;}`),terrain:J(`uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && u_fog_ground_blend_opacity > 0.0 && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}`,`layout(location=0) in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}`),terrainDepth:J(`in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}`),terrainCoords:J(`precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}`),atmosphere:J(`#ifdef GL_ES
760
+ precision highp float;
761
+ #endif
762
+ in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
763
+ );color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}`),sky:J(`uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}`,`layout(location=0) in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}`)};function J(e,t){let n=/#pragma maplibre: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/in ([\w]+) ([\w]+)/g),i=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=a?a.concat(i):i,s=r?r.length:0,c={};return e=e.replace(n,(e,t,n,r,i)=>(c[i]=true,t===`define`?`
764
+ #ifndef HAS_UNIFORM_u_${i}
765
+ in ${n} ${r} ${i};
766
+ #else
767
+ uniform ${n} ${r} u_${i};
768
+ #endif
769
+ `:`
770
+ #ifdef HAS_UNIFORM_u_${i}
771
+ ${n} ${r} ${i} = u_${i};
772
+ #endif
773
+ `)),t=t.replace(n,(e,t,n,r,i)=>{let a=r===`float`?`vec2`:`vec4`,o=i.match(/color/)?`color`:a;return c[i]?t===`define`?`
774
+ #ifndef HAS_UNIFORM_u_${i}
775
+ uniform lowp float u_${i}_t;
776
+ layout(location = ${s++}) in ${n} ${a} a_${i};
777
+ out ${n} ${r} ${i};
778
+ #else
779
+ uniform ${n} ${r} u_${i};
780
+ #endif
781
+ `:o===`vec4`?`
782
+ #ifndef HAS_UNIFORM_u_${i}
783
+ ${i} = a_${i};
784
+ #else
785
+ ${n} ${r} ${i} = u_${i};
786
+ #endif
787
+ `:`
788
+ #ifndef HAS_UNIFORM_u_${i}
789
+ ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
790
+ #else
791
+ ${n} ${r} ${i} = u_${i};
792
+ #endif
793
+ `:t===`define`?`
794
+ #ifndef HAS_UNIFORM_u_${i}
795
+ uniform lowp float u_${i}_t;
796
+ layout(location = ${s++}) in ${n} ${a} a_${i};
797
+ #else
798
+ uniform ${n} ${r} u_${i};
799
+ #endif
800
+ `:o===`vec4`?`
801
+ #ifndef HAS_UNIFORM_u_${i}
802
+ ${n} ${r} ${i} = a_${i};
803
+ #else
804
+ ${n} ${r} ${i} = u_${i};
805
+ #endif
806
+ `:`
807
+ #ifndef HAS_UNIFORM_u_${i}
808
+ ${n} ${r} ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
809
+ #else
810
+ ${n} ${r} ${i} = u_${i};
811
+ #endif
812
+ `}),{fragmentSource:e,vertexSource:t,staticAttributes:r,staticUniforms:o}}var ls=class{constructor(e,t,n){this.vertexBuffer=e,this.indexBuffer=t,this.segments=n;}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null;}};const us=Ml$1([{name:`a_pos`,type:`Int16`,components:2}]),ds=`#define PROJECTION_MERCATOR`,fs=`mercator`;var ps=class{constructor(){this._cachedMesh=null;}get name(){return `mercator`}get useSubdivision(){return false}get shaderVariantName(){return fs}get shaderDefine(){return ds}get shaderPreludeCode(){return cs.projectionMercator}get vertexShaderPreludeCode(){return cs.projectionMercator.vertexSource}get subdivisionGranularity(){return Pp$1.noSubdivision}get useGlobeControls(){return false}get transitionState(){return 0}destroy(){}getMeshFromTileID(e,t,n,r,i){if(this._cachedMesh)return this._cachedMesh;let a=new _u$1;a.emplaceBack(0,0),a.emplaceBack(j,0),a.emplaceBack(0,j),a.emplaceBack(j,j);let o=e.createVertexBuffer(a,us.members),s=zu$1.simpleSegment(0,0,4,2),c=new Pu$1;c.emplaceBack(1,0,2),c.emplaceBack(1,2,3);let l=e.createIndexBuffer(c);return this._cachedMesh=new ls(o,l,s),this._cachedMesh}recalculate(){}hasTransition(){return false}},ms=class e{constructor(e=0,t=0,n=0,r=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(n)||n<0||isNaN(r)||r<0)throw Error(`Invalid value for edge-insets, top, bottom, left and right must all be numbers`);this.top=e,this.bottom=t,this.left=n,this.right=r;}interpolate(e,t,n){return t.top!=null&&e.top!=null&&(this.top=Ni$1.number(e.top,t.top,n)),t.bottom!=null&&e.bottom!=null&&(this.bottom=Ni$1.number(e.bottom,t.bottom,n)),t.left!=null&&e.left!=null&&(this.left=Ni$1.number(e.left,t.left,n)),t.right!=null&&e.right!=null&&(this.right=Ni$1.number(e.right,t.right,n)),this}getCenter(e,t){let n=Tt((this.left+e-this.right)/2,0,e),r=Tt((this.top+t-this.bottom)/2,0,t);return new l(n,r)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new e(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}};function hs(e,t){if(!e.renderWorldCopies||e.lngRange)return;let n=t.lng-e.center.lng;t.lng+=n>180?-360:n<-180?360:0;}function gs(e){return Math.max(0,Math.floor(e))}var _s=class{constructor(e,t){this.applyConstrain=(e,t)=>this._constrainOverride===null?this._callbacks.defaultConstrain(e,t):this._constrainOverride(e,t),this._callbacks=e,this._tileSize=512,this._renderWorldCopies=t?.renderWorldCopies===void 0||!!t?.renderWorldCopies,this._minZoom=t?.minZoom||0,this._maxZoom=t?.maxZoom||22,this._minPitch=t?.minPitch===void 0||t?.minPitch===null?0:t?.minPitch,this._maxPitch=t?.maxPitch===void 0||t?.maxPitch===null?60:t?.maxPitch,this._constrainOverride=t?.constrainOverride??null,this.setMaxBounds(),this._width=0,this._height=0,this._center=new dm(0,0),this._elevation=0,this._zoom=0,this._tileZoom=gs(this._zoom),this._scale=Nt(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=true,this._edgeInsets=new ms,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=true;}apply(e,t,n){this._constrainOverride=e.constrainOverride,this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=gs(this._zoom),this._scale=Nt(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new ms(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=!n&&e.autoCalculateNearFarZ,t&&this.constrainInternal(),this._calcMatrices();}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){this._minElevationForCurrentTile=e;}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(e){this._minZoom!==e&&(this._minZoom=e,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom));}get maxZoom(){return this._maxZoom}setMaxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom));}get minPitch(){return this._minPitch}setMinPitch(e){this._minPitch!==e&&(this._minPitch=e,this.setPitch(Math.max(this.pitch,e)));}get maxPitch(){return this._maxPitch}setMaxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.setPitch(Math.min(this.pitch,e)));}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=true:e===null&&(e=false),this._renderWorldCopies=e;}get constrainOverride(){return this._constrainOverride}setConstrainOverride(e){e===void 0&&(e=null),this._constrainOverride!==e&&(this._constrainOverride=e,this.constrainInternal(),this._calcMatrices());}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new l(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){let t=Et(e,-180,180)*Math.PI/180;this._bearingInRadians!==t&&(this._unmodified=false,this._bearingInRadians=t,this._calcMatrices(),this._rotationMatrix=Dr(),kr(this._rotationMatrix,this._rotationMatrix,-this._bearingInRadians));}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){let t=Tt(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==t&&(this._unmodified=false,this._pitchInRadians=t,this._calcMatrices());}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){let t=e/180*Math.PI;this._rollInRadians!==t&&(this._unmodified=false,this._rollInRadians=t,this._calcMatrices());}get fovInRadians(){return this._fovInRadians}get fov(){return cn(this._fovInRadians)}setFov(e){e=Tt(e,.1,150),this.fov!==e&&(this._unmodified=false,this._fovInRadians=sn(e),this._calcMatrices());}get zoom(){return this._zoom}setZoom(e){let t=this.applyConstrain(this._center,e).zoom;this._zoom!==t&&(this._unmodified=false,this._zoom=t,this._tileZoom=Math.max(0,Math.floor(t)),this._scale=Nt(t),this.constrainInternal(),this._calcMatrices());}get center(){return this._center}setCenter(e){(e.lat!==this._center.lat||e.lng!==this._center.lng)&&(this._unmodified=false,this._center=e,this.constrainInternal(),this._calcMatrices());}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this.constrainInternal(),this._calcMatrices());}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=false,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices());}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(e,t){this._autoCalculateNearFarZ=false,this._nearZ=e,this._farZ=t,this._calcMatrices();}clearNearFarZOverride(){this._autoCalculateNearFarZ=true,this._calcMatrices();}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,t,n){this._unmodified=false,this._edgeInsets.interpolate(e,t,n),this.constrainInternal(),this._calcMatrices();}resize(e,t,n=true){this._width=e,this._height=t,n&&this.constrainInternal(),this._calcMatrices();}getMaxBounds(){return this._latRange?.length!==2||this._lngRange?.length!==2?null:new Wi([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]])}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this.constrainInternal()):(this._lngRange=null,this._latRange=[-85.051129,pn]);}getCameraQueryGeometry(e,t){if(t.length===1)return [t[0],e];{let{minX:n,minY:r,maxX:i,maxY:a}=Hv.fromPoints(t).extend(e);return [new l(n,r),new l(i,r),new l(i,a),new l(n,a),new l(n,r)]}}constrainInternal(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=true;let e=this._unmodified,{center:t,zoom:n}=this.applyConstrain(this.center,this.zoom);this.setCenter(t),this.setZoom(n),this._unmodified=e,this._constraining=false;}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=C(new Float64Array(16));D(e,e,[this._width/2,-this._height/2,1]),E(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=C(new Float64Array(16)),D(e,e,[1,-1,1]),E(e,e,[-1,-1,0]),D(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e;let t=this.fovInRadians/2;this._cameraToCenterDistance=.5/Math.tan(t)*this._height;}this._callbacks.calcMatrices();}calculateCenterFromCameraLngLatAlt(e,t,n,r){let i=n===void 0?this.bearing:n,a=r=r===void 0?this.pitch:r,{distanceToCenter:o,clampedElevation:s}=this._distanceToCenterFromAltElevationPitch(t,this.elevation,a),{x:c,y:l}=Am(a,i),u=xm.fromLngLat(e,t),d=ym(1,u.y),f,p,m=0;do{if(m+=1,m>10)break;p=o/d;let e=c*p,t=l*p;f=new xm(u.x+e,u.y+t),d=1/f.meterInMercatorCoordinateUnits();}while(Math.abs(o-p*d)>1e-12);return {center:f.toLngLat(),elevation:s,zoom:Pt(this.height/2/Math.tan(this.fovInRadians/2)/p/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e===0)return;let t=1/this.worldSize,n=gm(1,this.center.lat)*this.worldSize,r=xm.fromLngLat(this.center,this.elevation),i=r.x/t,a=r.y/t,o=r.z/t,s=this.pitch,c=this.bearing,{x:l,y:u,z:d}=Am(s,c),f=this.cameraToCenterDistance,p=i+f*-l,m=a+f*-u,h=o+f*d,{distanceToCenter:g,clampedElevation:_}=this._distanceToCenterFromAltElevationPitch(h/n,e,s),v=g*n,y=p+l*v,b=m+u*v,x=new xm(y*t,b*t,0).toLngLat(),S=gm(1,x.lat),C=Pt(this.height/2/Math.tan(this.fovInRadians/2)/g/S/this.tileSize);this._elevation=_,this._center=x,this.setZoom(C);}_distanceToCenterFromAltElevationPitch(e,n,r){let i=-Math.cos(sn(r)),a=e-n,o,s=n;return i*a>=0||Math.abs(i)<.1?(o=1e4,s=e+o*i):o=-a/i,{distanceToCenter:o,clampedElevation:s}}getCameraPoint(){let e=this.pitchInRadians,t=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new l(t*Math.sin(this.rollInRadians),t*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){let e=gm(1,this.center.lat)*this.worldSize,t=this.cameraToCenterDistance/e;return km(this.center,this.elevation,this.pitch,this.bearing,t).toLngLat()}getMercatorTileCoordinates(e){if(!e)return [0,0,1,1];let t=e.canonical.z>=0?1<<e.canonical.z:2**e.canonical.z;return [e.canonical.x/t,e.canonical.y/t,1/t/j,1/t/j]}},vs=class e{constructor(e,t){this.min=e,this.max=t,this.center=pe([],de([],this.min,this.max),.5);}quadrant(t){let r=[t%2==0,t<2],i=ce(this.min),a=ce(this.max);for(let e=0;e<r.length;e++)i[e]=r[e]?this.min[e]:this.center[e],a[e]=r[e]?this.center[e]:this.max[e];return a[2]=this.max[2],new e(i,a)}distanceX(e){return Math.max(Math.min(this.max[0],e[0]),this.min[0])-e[0]}distanceY(e){return Math.max(Math.min(this.max[1],e[1]),this.min[1])-e[1]}intersectsFrustum(e){let t=true;for(let n of e.planes){let e=this.intersectsPlane(n);if(e===0)return 0;e===1&&(t=false);}return t?2:e.aabb.min[0]>this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]<this.min[0]||e.aabb.max[1]<this.min[1]||e.aabb.max[2]<this.min[2]?0:1}intersectsPlane(e){let t=e[3],n=e[3];for(let r=0;r<3;r++)e[r]>0?(t+=e[r]*this.min[r],n+=e[r]*this.max[r]):(n+=e[r]*this.min[r],t+=e[r]*this.max[r]);return t>=0?2:n<0?0:1}},ys=class{distanceToTile2d(e,t,n,r){let i=r,a=i.distanceX([e,t]),o=i.distanceY([e,t]);return Math.hypot(a,o)}getWrap(e,t,n){return n}getTileBoundingVolume(e,t,n,r){let i=Math.min(0,n),a=Math.max(0,n);if(r?.terrain){let n=new Fv(e.z,t,e.z,e.x,e.y),o=r.terrain.getMinMaxElevation(n);i=o.minElevation??i,a=o.maxElevation??a;}let o=1<<e.z;return new vs([t+e.x/o,e.y/o,i],[t+(e.x+1)/o,(e.y+1)/o,a])}allowVariableZoom(e,t){let n=e.fov*(Math.abs(Math.cos(e.rollInRadians))*e.height+Math.abs(Math.sin(e.rollInRadians))*e.width)/e.height,r=Tt(78.5-n/2,0,60);return !!t.terrain||e.pitch>r}allowWorldCopies(){return true}prepareNextFrame(){}},bs=class e{constructor(e,t,n){this.points=e,this.planes=t,this.aabb=n;}static fromInvProjectionMatrix(t,n=1,r=0,i,a){let o=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]],s=a?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],c=2**r,l=o.map(e=>xs(e,t,n,c));i&&Ss(l,s[0],i,a);let u=s.map(e=>{let t=Ee([],l[e[0]],l[e[1]]),n=Ee([],l[e[2]],l[e[1]]),r=ge([],ve([],t,n)),i=-_e(r,l[e[1]]);return r.concat(i)}),d=[1/0,1/0,1/0],f=[-1/0,-1/0,-1/0];for(let e of l)for(let t=0;t<3;t++)d[t]=Math.min(d[t],e[t]),f[t]=Math.max(f[t],e[t]);return new e(l,u,new vs(d,f))}};function xs(e,t,n,r){let i=Me([],e,t),a=1/i[3]/n*r;return Ne(i,i,[a,a,1/i[3],a])}function Ss(e,t,n,r){let i=r?4:0,a=r?0:4,o=0,s=[],c=[];for(let t=0;t<4;t++){let n=Ee([],e[t+a],e[t+i]),r=le(n);pe(n,n,1/r),s.push(r),c.push(n);}for(let t=0;t<4;t++){let r=pt(e[t+i],c[t],n);o=r!==null&&r>=0?Math.max(o,r):Math.max(o,s[t]);}let l=Cs(e,t),u=ws(n,l);if(u!==null){let e=u/_e(c[0],l);o=Math.min(o,e);}for(let t=0;t<4;t++){let n=Math.min(o,s[t]);e[t+a]=[e[t+i][0]+c[t][0]*n,e[t+i][1]+c[t][1]*n,e[t+i][2]+c[t][2]*n,1];}}function Cs(e,t){let n=Ee([],e[t[0]],e[t[1]]),r=Ee([],e[t[2]],e[t[1]]),i=[0,0,0,0];return ge(i,ve([],n,r)),i[3]=-_e(i,e[t[0]]),i}function ws(e,t){let n=De(e),r=Ae([],e,1/n),i=Ee([],t,pe([],r,_e(t,r))),a=De(i);if(a>0){let e=Math.sqrt(1-r[3]*r[3]),n=pe([],r,-r[3]),o=de([],n,pe([],i,e/a));return dt(t,o)}return null}var Ts=class e{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e);}setMaxZoom(e){this._helper.setMaxZoom(e);}setMinPitch(e){this._helper.setMinPitch(e);}setMaxPitch(e){this._helper.setMaxPitch(e);}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e);}setBearing(e){this._helper.setBearing(e);}setPitch(e){this._helper.setPitch(e);}setRoll(e){this._helper.setRoll(e);}setFov(e){this._helper.setFov(e);}setZoom(e){this._helper.setZoom(e);}setCenter(e){this._helper.setCenter(e);}setElevation(e){this._helper.setElevation(e);}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e);}setPadding(e){this._helper.setPadding(e);}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n);}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t,n=true){this._helper.resize(e,t,n);}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e);}setConstrainOverride(e){this._helper.setConstrainOverride(e);}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t);}clearNearFarZOverride(){this._helper.clearNearFarZOverride();}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(e){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this.defaultConstrain=(e,t)=>{t=Tt(+t,this.minZoom,this.maxZoom);let n={center:new dm(e.lng,e.lat),zoom:t},r=this._helper._lngRange;!this._helper._renderWorldCopies&&r===null&&(r=[-179.9999999999,180-1e-10]);let i=this.tileSize*Nt(n.zoom),a=0,o=i,s=0,c=i,l$1=0,u=0,{x:d,y:f}=this.size;if(this._helper._latRange){let e=this._helper._latRange;a=hm(e[1])*i,o=hm(e[0])*i,o-a<f&&(l$1=f/(o-a));}r&&(s=Et(mm(r[0])*i,0,i),c=Et(mm(r[1])*i,0,i),c<s&&(c+=i),c-s<d&&(u=d/(c-s)));let{x:p,y:m}=Tm(i,e),h,g,_=Math.max(u||0,l$1||0);if(_){let e=new l(u?(c+s)/2:p,l$1?(o+a)/2:m);return n.center=Em(i,e).wrap(),n.zoom+=Pt(_),n}if(this._helper._latRange){let e=f/2;m-e<a&&(g=a+e),m+e>o&&(g=o-e);}if(r){let e=(s+c)/2,t=p;this._helper._renderWorldCopies&&(t=Et(p,e-i/2,e+i/2));let n=d/2;t-n<s&&(h=s+n),t+n>c&&(h=c-n);}if(h!==void 0||g!==void 0){let e=new l(h??p,g??m);n.center=Em(i,e).wrap();}return n},this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=new _s({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._coveringTilesDetailsProvider=new ys;}clone(){let t=new e;return t.apply(this,false),t}apply(e,t,n){this._helper.apply(e,t,n);}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(e){let t=[new Pv(0,e)];if(this._helper._renderWorldCopies){let n=this.screenPointToMercatorCoordinate(new l(0,0)),r=this.screenPointToMercatorCoordinate(new l(this._helper._width,0)),i=this.screenPointToMercatorCoordinate(new l(this._helper._width,this._helper._height)),a=this.screenPointToMercatorCoordinate(new l(0,this._helper._height)),o=Math.floor(Math.min(n.x,r.x,i.x,a.x)),s=Math.floor(Math.max(n.x,r.x,i.x,a.x));for(let n=o-1;n<=s+1;n++)n!==0&&t.push(new Pv(n,e));}return t}getCameraFrustum(){return bs.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){let t=this.screenPointToLocation(this.centerPoint,e),n=e?e.getElevationForLngLatZoom(t,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(n);}setLocationAtPoint(e,t){let n=gm(this.elevation,this.center.lat),r=this.screenPointToMercatorCoordinateAtZ(t,n),i=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,n),a=xm.fromLngLat(e),o=new xm(a.x-(r.x-i.x),a.y-(r.y-i.y));this.setCenter(o?.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap());}locationToScreenPoint(e,t){return t?this.coordinatePoint(xm.fromLngLat(e),t.getElevationForLngLat(e,this),this._pixelMatrix3D):this.coordinatePoint(xm.fromLngLat(e))}screenPointToLocation(e,t){return this.screenPointToMercatorCoordinate(e,t)?.toLngLat()}screenPointToMercatorCoordinate(e,t){if(t){let n=t.pointCoordinate(e);if(n!=null)return n}return this.screenPointToMercatorCoordinateAtZ(e)}screenPointToMercatorCoordinateAtZ(e,t){let n=t||0,r=[e.x,e.y,0,1],i=[e.x,e.y,1,1];Me(r,r,this._pixelMatrixInverse),Me(i,i,this._pixelMatrixInverse);let a=r[3],o=i[3],s=r[0]/a,c=i[0]/o,l=r[1]/a,u=i[1]/o,d=r[2]/a,f=i[2]/o,p=d===f?0:(n-d)/(f-d);return new xm(Ni$1.number(s,c,p)/this.worldSize,Ni$1.number(l,u,p)/this.worldSize,n)}coordinatePoint(e,t=0,n=this._pixelMatrix){let r=[e.x*this.worldSize,e.y*this.worldSize,t,1];return Me(r,r,n),new l(r[0]/r[3],r[1]/r[3])}getBounds(){let e=Math.max(0,this._helper._height/2-Dm(this));return new Wi().extend(this.screenPointToLocation(new l(0,e))).extend(this.screenPointToLocation(new l(this._helper._width,e))).extend(this.screenPointToLocation(new l(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new l(0,this._helper._height)))}isPointOnMapSurface(e,t){return t?t.pointCoordinate(e)!=null:e.y>this.height/2-Dm(this)}calculatePosMatrix(e,t=false,n=false){let r=e.key??Iv(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),i=t?this._alignedPosMatrixCache:this._posMatrixCache;if(i.has(r)){let e=i.get(r);return n?e.f32:e.f64}let a=Om(e,this.worldSize);T(a,t?this._alignedProjMatrix:this._viewProjMatrix,a);let o={f64:a,f32:new Float32Array(a)};return i.set(r,o),n?o.f32:o.f64}calculateFogMatrix(e){let t=e.key,n=this._fogMatrixCacheF32;if(n.has(t))return n.get(t);let r=Om(e,this.worldSize);return T(r,this._fogMatrix,r),n.set(t,new Float32Array(r)),n.get(t)}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}_calculateNearFarZIfNeeded(e,n,r){if(!this._helper.autoCalculateNearFarZ)return;let i=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),a=e-i*this._helper._pixelPerMeter/Math.cos(n),o=i<0?a:e,s=Math.PI/2+this.pitchInRadians,c=sn(this.fov)*(Math.abs(Math.cos(sn(this.roll)))*this.height+Math.abs(Math.sin(sn(this.roll)))*this.width)/this.height*(.5+r.y/this.height),l=Math.sin(c)*o/Math.sin(Tt(Math.PI-s-c,.01,Math.PI-.01)),u=Dm(this),d=Math.atan(u/this._helper.cameraToCenterDistance),f=sn(90-Sm),p=d>f?2*d*(.5+r.y/(u*2)):f,m=Math.sin(p)*o/Math.sin(Tt(Math.PI-s-p,.01,Math.PI-.01)),h=Math.min(l,m);this._helper._farZ=(Math.cos(Math.PI/2-n)*h+o)*1.01,this._helper._nearZ=this._helper._height/50;}_calcMatrices(){if(!this._helper._height)return;let e=this.centerOffset,n=Tm(this.worldSize,this.center),r=n.x,i=n.y;this._helper._pixelPerMeter=gm(1,this.center.lat)*this.worldSize;let o=sn(Math.min(this.pitch,Sm)),s=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(o));this._calculateNearFarZIfNeeded(s,o,e);let c;c=new Float64Array(16),ne(c,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),Za(this._invProjMatrix,c),c[8]=-e.x*2/this._helper._width,c[9]=e.y*2/this._helper._height,this._projectionMatrix=x(c),D(c,c,[1,-1,1]),E(c,c,[0,0,-this._helper.cameraToCenterDistance]),A(c,c,-this.rollInRadians),O(c,c,this.pitchInRadians),A(c,c,-this.bearingInRadians),E(c,c,[-r,-i,0]),this._mercatorMatrix=D([],c,[this.worldSize,this.worldSize,this.worldSize]),D(c,c,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=T(new Float64Array(16),this.clipSpaceToPixelsMatrix,c),E(c,c,[0,0,-this.elevation]),this._viewProjMatrix=c,this._invViewProjMatrix=w([],c);let l=[0,0,-1,1];Me(l,l,this._invViewProjMatrix),this._cameraPosition=[l[0]/l[3],l[1]/l[3],l[2]/l[3]],this._fogMatrix=new Float64Array(16),ne(this._fogMatrix,this.fovInRadians,this.width/this.height,s,this._helper._farZ),this._fogMatrix[8]=-e.x*2/this.width,this._fogMatrix[9]=e.y*2/this.height,D(this._fogMatrix,this._fogMatrix,[1,-1,1]),E(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),A(this._fogMatrix,this._fogMatrix,-this.rollInRadians),O(this._fogMatrix,this._fogMatrix,this.pitchInRadians),A(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),E(this._fogMatrix,this._fogMatrix,[-r,-i,0]),D(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),E(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=T(new Float64Array(16),this.clipSpaceToPixelsMatrix,c);let u=this._helper._width%2/2,d=this._helper._height%2/2,f=Math.cos(this.bearingInRadians),m=Math.sin(-this.bearingInRadians),h=r-Math.round(r)+f*u+m*d,g=i-Math.round(i)+f*d+m*u,_=new Float64Array(c);if(E(_,_,[h>.5?h-1:h,g>.5?g-1:g,0]),this._alignedProjMatrix=_,c=w(new Float64Array(16),this._pixelMatrix),!c)throw Error(`failed to invert matrix`);this._pixelMatrixInverse=c,this._clearMatrixCaches();}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear();}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;let e=this.screenPointToMercatorCoordinate(new l(0,0)),t=[e.x*this.worldSize,e.y*this.worldSize,0,1];return Me(t,t,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){let e=gm(1,this.center.lat)*this.worldSize,t=this._helper.cameraToCenterDistance/e;return km(this.center,this.elevation,this.pitch,this.bearing,t).toLngLat()}lngLatToCameraDepth(e,t){let n=xm.fromLngLat(e),r=[n.x*this.worldSize,n.y*this.worldSize,t,1];return Me(r,r,this._viewProjMatrix),r[2]/r[3]}getProjectionData(e){let{overscaledTileID:t,aligned:n,applyTerrainMatrix:r}=e,i=this._helper.getMercatorTileCoordinates(t),a=t?this.calculatePosMatrix(t,n,true):null,o;return o=t?.terrainRttPosMatrix32f&&r?t.terrainRttPosMatrix32f:a||lt(),{mainMatrix:o,tileMercatorCoords:i,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:o,clipAntimeridian:false}}isLocationOccluded(e){return false}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,t,n){return 1}transformLightDirection(e){return ce(e)}getRayDirectionFromPixel(e){throw Error(`Not implemented.`)}projectTileCoordinates(e,t,n,r){let i=this.calculatePosMatrix(n),a;r?(a=[e,t,r(e,t),1],Me(a,a,i)):(a=[e,t,0,1],xo(a,a,i));let o=a[3];return {point:new l(a[0]/o,a[1]/o),signedDistanceFromCamera:o,isOccluded:false}}populateCache(e){for(let t of e)this.calculatePosMatrix(t);}getProjectionDataForCustomLayer(e=true){let t=new Fv(0,0,0,0,0),n=this.getProjectionData({overscaledTileID:t,applyGlobeMatrix:e}),r=Om(t,this.worldSize);T(r,this._viewProjMatrix,r);let i=[j,j,this.worldSize/this._helper.pixelsPerMeter],o=st();return D(o,r,i),{...n,tileMercatorCoords:[0,0,1,1],fallbackMatrix:o,mainMatrix:o}}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}};function Es(){Vt(`Map cannot fit within canvas with the given bounds, padding, and/or offset.`);}function Ds(e){if(e.useSlerp)if(e.k<1){let t=fn(e.startEulerAngles.roll,e.startEulerAngles.pitch,e.startEulerAngles.bearing),n=fn(e.endEulerAngles.roll,e.endEulerAngles.pitch,e.endEulerAngles.bearing),r=new Float64Array(4);Ie(r,t,n,e.k);let i=un(r);e.tr.setRoll(i.roll),e.tr.setPitch(i.pitch),e.tr.setBearing(i.bearing);}else e.tr.setRoll(e.endEulerAngles.roll),e.tr.setPitch(e.endEulerAngles.pitch),e.tr.setBearing(e.endEulerAngles.bearing);else e.tr.setRoll(Ni$1.number(e.startEulerAngles.roll,e.endEulerAngles.roll,e.k)),e.tr.setPitch(Ni$1.number(e.startEulerAngles.pitch,e.endEulerAngles.pitch,e.k)),e.tr.setBearing(Ni$1.number(e.startEulerAngles.bearing,e.endEulerAngles.bearing,e.k));}function Os(e,n,r,i,a){let o=a.padding,s=Tm(a.worldSize,r.getNorthWest()),c=Tm(a.worldSize,r.getNorthEast()),l$1=Tm(a.worldSize,r.getSouthEast()),u=Tm(a.worldSize,r.getSouthWest()),d=sn(-i),f=s.rotate(d),p=c.rotate(d),m=l$1.rotate(d),h=u.rotate(d),g=new l(Math.max(f.x,p.x,h.x,m.x),Math.max(f.y,p.y,h.y,m.y)),_=new l(Math.min(f.x,p.x,h.x,m.x),Math.min(f.y,p.y,h.y,m.y)),v=g.sub(_),y=a.width-(o.left+o.right+n.left+n.right),b=a.height-(o.top+o.bottom+n.top+n.bottom),x=y/v.x,S=b/v.y;if(S<0||x<0){Es();return}let C=Math.min(Pt(a.scale*Math.min(x,S)),e.maxZoom),w=l.convert(e.offset),T=(n.left-n.right)/2,E=(n.top-n.bottom)/2,D=new l(T,E).rotate(sn(i)),O=w.add(D).mult(a.scale/Nt(C));return {center:Em(a.worldSize,s.add(l$1).div(2).sub(O)),zoom:C,bearing:i}}var ks=class{get useGlobeControls(){return false}handlePanInertia(e,t){let n=e.mag(),r=Math.abs(Dm(t));return {easingOffset:e.mult(Math.min(r*.75/n,1)),easingCenter:t.center}}handleMapControlsRollPitchBearingZoom(e,t){e.bearingDelta&&t.setBearing(t.bearing+e.bearingDelta),e.pitchDelta&&t.setPitch(t.pitch+e.pitchDelta),e.rollDelta&&t.setRoll(t.roll+e.rollDelta),e.zoomDelta&&t.setZoom(t.zoom+e.zoomDelta);}handleMapControlsPan(e,t,n){e.around.distSqr(t.centerPoint)<.01||t.setLocationAtPoint(n,e.around);}cameraForBoxAndBearing(e,t,n,r,i){return Os(e,t,n,r,i)}handleJumpToCenterZoom(e,t){let n=t.zoom===void 0?e.zoom:+t.zoom;e.zoom!==n&&e.setZoom(+t.zoom),t.center!==void 0&&e.setCenter(dm.convert(t.center));}handleEaseTo(e,t){let n=e.zoom,r=e.padding,i={roll:e.roll,pitch:e.pitch,bearing:e.bearing},a={roll:t.roll===void 0?e.roll:t.roll,pitch:t.pitch===void 0?e.pitch:t.pitch,bearing:t.bearing===void 0?e.bearing:t.bearing},o=t.zoom!==void 0,s=!e.isPaddingEqual(t.padding),c=false,l=o?+t.zoom:e.zoom,u=e.centerPoint.add(t.offsetAsPoint),d=e.screenPointToLocation(u),{center:f,zoom:p}=e.applyConstrain(dm.convert(t.center||d),l??n);hs(e,f);let m=Tm(e.worldSize,d),h=Tm(e.worldSize,f).sub(m),g=Nt(p-n);return c=p!==n,{easeFunc:o=>{if(c&&e.setZoom(Ni$1.number(n,p,o)),ln(i,a)||Ds({startEulerAngles:i,endEulerAngles:a,tr:e,k:o,useSlerp:i.roll!=a.roll}),s&&(e.interpolatePadding(r,t.padding,o),u=e.centerPoint.add(t.offsetAsPoint)),t.around)e.setLocationAtPoint(t.around,t.aroundPoint);else {let t=Nt(e.zoom-n),r=(p>n?Math.min(2,g):Math.max(.5,g))**(1-o),i=Em(e.worldSize,m.add(h.mult(o*r)).mult(t));e.setLocationAtPoint(e.renderWorldCopies?i.wrap():i,u);}},isZooming:c,elevationCenter:f}}handleFlyTo(e,t){let n=t.zoom!==void 0,r=e.zoom,i=e.applyConstrain(dm.convert(t.center||t.locationAtOffset),n?+t.zoom:r),a=i.center,o=i.zoom;hs(e,a);let s=e.worldSize,c=Tm(s,t.locationAtOffset),l=Tm(s,a).sub(c),u=l.mag(),d=Nt(o-r),f=t.minZoom===void 0?e.minZoom:+t.minZoom,p=Math.max(f,e.minZoom),m=Math.min(p,r,o),h=e.applyConstrain(a,m).zoom;return {easeFunc:(t,n,i,u)=>{e.setZoom(t===1?o:r+Pt(n));let d=t===1?a:Em(s,c.add(l.mult(i)));e.setLocationAtPoint(e.renderWorldCopies?d.wrap():d,u);},scaleOfZoom:d,targetCenter:a,scaleOfMinZoom:Nt(h-r),pixelPathLength:u}}};let As;const js=()=>As||=new xl$1({type:new K$1(M.projection.type,`type`)}),Ms=j/128;function Ns(e,t){let n=Ps(t,`16bit`),r=_u$1.deserialize({arrayBuffer:n.vertices,length:n.vertices.byteLength/2/2}),i=Pu$1.deserialize({arrayBuffer:n.indices,length:n.indices.byteLength/2/3});return new ls(e.createVertexBuffer(r,us.members),e.createIndexBuffer(i),zu$1.simpleSegment(0,0,r.length,i.length))}function Ps(e,t){let n=e.granularity===void 0?1:Math.max(e.granularity,1),r=n+(e.generateBorders?2:0),i=n+(e.extendToNorthPole||e.generateBorders?1:0)+(e.extendToSouthPole||e.generateBorders?1:0),a=r+1,o=i+1,s=e.generateBorders?-1:0,c=e.generateBorders||e.extendToNorthPole?-1:0,l=n+ +!!e.generateBorders,u=n+(e.generateBorders||e.extendToSouthPole?1:0),d=a*o,f=r*i*6,p=a*o>65536;if(p&&t===`16bit`)throw Error(`Granularity is too large and meshes would not fit inside 16 bit vertex indices.`);let m=p||t===`32bit`,h=new Int16Array(d*2),g=0;for(let t=c;t<=u;t++)for(let r=s;r<=l;r++){let i=r/n*j;r===-1&&(i=-64),r===n+1&&(i=j+Ms);let a=t/n*j;t===-1&&(a=e.extendToNorthPole?Fp$1:-64),t===n+1&&(a=e.extendToSouthPole?Ip$1:j+Ms),h[g++]=i,h[g++]=a;}let _=m?new Uint32Array(f):new Uint16Array(f),v=0;for(let e=0;e<i;e++)for(let t=0;t<r;t++){let n=t+e*a,r=t+1+e*a,i=t+(e+1)*a,o=t+1+(e+1)*a;_[v++]=n,_[v++]=i,_[v++]=r,_[v++]=r,_[v++]=i,_[v++]=o;}return {vertices:h.buffer.slice(0),indices:_.buffer.slice(0),uses32bitIndices:m}}const Fs=new Pp$1({fill:new Np$1(128,2),line:new Np$1(512,0),tile:new Np$1(128,32),stencil:new Np$1(128,1),circle:3});var Is=class{constructor(){this._tileMeshCache={};}get name(){return `vertical-perspective`}get transitionState(){return 1}get useSubdivision(){return true}get shaderVariantName(){return `globe`}get shaderDefine(){return `#define GLOBE`}get shaderPreludeCode(){return cs.projectionGlobe}get vertexShaderPreludeCode(){return cs.projectionMercator.vertexSource}get subdivisionGranularity(){return Fs}get useGlobeControls(){return true}destroy(){}_getMeshKey(e){return `${e.granularity.toString(36)}_${e.generateBorders?`b`:``}${e.extendToNorthPole?`n`:``}${e.extendToSouthPole?`s`:``}`}getMeshFromTileID(e,t,n,r,i){let a=(i===`stencil`?Fs.stencil:Fs.tile).getGranularityForZoomLevel(t.z),o=t.y===0&&r,s=t.y===(1<<t.z)-1&&r;return this._getMesh(e,{granularity:a,generateBorders:n,extendToNorthPole:o,extendToSouthPole:s})}_getMesh(e,t){let n=this._getMeshKey(t);if(n in this._tileMeshCache)return this._tileMeshCache[n];let r=Ns(e,t);return this._tileMeshCache[n]=r,r}recalculate(e){}hasTransition(){return false}},Ls=class extends Hn{constructor(e,t){super(),this._transitionable=new ul$1(js(),`projection`,t),this.setProjection(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new G$1(0)),this._mercatorProjection=new ps,this._verticalPerspectiveProjection=new Is;}get transitionState(){let e=this.properties.get(`type`);if(typeof e==`string`&&e===`mercator`)return 0;if(typeof e==`string`&&e===`vertical-perspective`)return 1;if(e instanceof si$1){if(e.from===e.to)return e.from===`mercator`?0:1;if(e.from===`vertical-perspective`&&e.to===`mercator`)return 1-e.transition;if(e.from===`mercator`&&e.to===`vertical-perspective`)return e.transition}return 1}get useGlobeRendering(){return this.transitionState>0}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return `globe`}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy();}getMeshFromTileID(e,t,n,r,i){return this.currentProjection.getMeshFromTileID(e,t,n,r,i)}setProjection(e){this._transitionable.setValue(`type`,e?.type||`mercator`);}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}};function Rs(e){let t=Ws(e.worldSize,e.center.lat);return 2*Math.PI*t}function zs(e,t,n){let r=Us(t),i=Us(n),a=_e(r,i),o=Math.acos(a),s=Rs(e);return o/(2*Math.PI)*s}function Bs(e,t){return [_t(e*Math.PI*2+Math.PI,Math.PI*2),2*Math.atan(Math.exp(Math.PI-t*Math.PI*2))-Math.PI*.5]}function Vs(e,t){let n=Math.cos(t),r=new Float64Array(3);return r[0]=Math.sin(e)*n,r[1]=Math.sin(t),r[2]=Math.cos(e)*n,r}function Hs(e,t,n,r,i){let a=1/(1<<i),o=e/j*a+n*a,s=t/j*a+r*a,c=_t(o*Math.PI*2+Math.PI,Math.PI*2),l=2*Math.atan(Math.exp(Math.PI-s*Math.PI*2))-Math.PI*.5,u=Math.cos(l),d=new Float64Array(3);return d[0]=Math.sin(c)*u,d[1]=Math.sin(l),d[2]=Math.cos(c)*u,d}function Us(e){return Vs(e.lng*Math.PI/180,e.lat*Math.PI/180)}function Ws(e,t){return e/(2*Math.PI)/Math.cos(t*Math.PI/180)}function Gs(e){let t=Math.asin(e[1])/Math.PI*180,n=Math.sqrt(e[0]*e[0]+e[2]*e[2]);if(n>1e-6){let r=e[0]/n,i=e[2]/n,a=Math.acos(i),o=(r>0?a:-a)/Math.PI*180;return new dm(Et(o,-180,180),t)}return new dm(0,t)}function Ks(e){let t=ot();return t[0]=e[0]*-e[3],t[1]=e[1]*-e[3],t[2]=e[2]*-e[3],{center:t,radius:Math.sqrt(1-e[3]*e[3])}}function qs(e,t,n){let r=ot();Ee(r,n,e);let i=ot();return me(i,e,r,t/De(r)),i}function Js(e){return Math.cos(e*Math.PI/180)}function Ys(e,t){let n=Js(e),r=Js(t);return Pt(r/n)}function Xs(e,t){return 360/Rs({worldSize:e,center:{lat:t}})}function Zs(e,t){let n=e.rotate(t.bearingInRadians),r=t.zoom+Ys(t.center.lat,0),i=yt(1/Js(t.center.lat),1/Js(Math.min(Math.abs(t.center.lat),60)),vt(r,7,3,0,1)),a=Xs(t.worldSize,t.center.lat);return new dm(t.center.lng-n.x*a*i,Tt(t.center.lat+n.y*a,-85.051129,pn))}function Qs(e){let t=.5*e,n=Math.sin(t),r=Math.cos(t);return Math.log(n+r)-Math.log(r-n)}function $s(e,t,n,r){let i=e.lat+n*r;if(Math.abs(n)>1){let a=e.lat+n,o=(Math.sign(a)===Math.sign(e.lat)?Math.abs(e.lat):-Math.abs(e.lat))*Math.PI/180,s=Math.abs(e.lat+n)*Math.PI/180,c=Qs(o+r*(s-o)),l=Qs(o),u=Qs(s),d=(c-l)/(u-l),f=e.lng+t*d;return new dm(f,i)}{let n=e.lng+t*r;return new dm(n,i)}}var ec=class{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=false,this._boundingVolumeFactory=e;}swapBuffers(){if(!this._hadAnyChanges)return;let e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=false;}getTileBoundingVolume(e,t,n,r){let i=`${e.z}_${e.x}_${e.y}_${r?.terrain?`t`:``}_${Math.round(n)}`,a=this._cache.get(i);if(a)return a;let o=this._cachePrevious.get(i);if(o)return this._cache.set(i,o),o;let s=this._boundingVolumeFactory(e,t,n,r);return this._cache.set(i,s),this._hadAnyChanges=true,s}},tc=class e{constructor(e,t,n,r){this.min=n,this.max=r,this.points=e,this.planes=t;}static fromAabb(t,n){let r=[];for(let e=0;e<8;e++)r.push([(e>>0&1)==1?n[0]:t[0],(e>>1&1)==1?n[1]:t[1],(e>>2&1)==1?n[2]:t[2]]);return new e(r,[[-1,0,0,n[0]],[1,0,0,-t[0]],[0,-1,0,n[1]],[0,1,0,-t[1]],[0,0,-1,n[2]],[0,0,1,-t[2]]],t,n)}static fromCenterSizeAngles(t,n,r){let i=Re([],r[0],r[1],r[2]),a=xe([],[n[0],0,0],i),o=xe([],[0,n[1],0],i),s=xe([],[0,0,n[2]],i),c=[...t],l=[...t];for(let e=0;e<8;e++)for(let n=0;n<3;n++){let r=t[n]+a[n]*((e>>0&1)==1?1:-1)+o[n]*((e>>1&1)==1?1:-1)+s[n]*((e>>2&1)==1?1:-1);c[n]=Math.min(c[n],r),l[n]=Math.max(l[n],r);}let u=[];for(let e=0;e<8;e++){let n=[...t];de(n,n,pe([],a,(e>>0&1)==1?1:-1)),de(n,n,pe([],o,(e>>1&1)==1?1:-1)),de(n,n,pe([],s,(e>>2&1)==1?1:-1)),u.push(n);}return new e(u,[[...a,-_e(a,u[0])],[...o,-_e(o,u[0])],[...s,-_e(s,u[0])],[-a[0],-a[1],-a[2],-_e(a,u[7])],[-o[0],-o[1],-o[2],-_e(o,u[7])],[-s[0],-s[1],-s[2],-_e(s,u[7])]],c,l)}intersectsFrustum(e){let t=true,n=this.points.length,r=this.planes.length,i=e.planes.length,a=e.points.length;for(let r=0;r<i;r++){let i=e.planes[r],a=0;for(let e=0;e<n;e++){let t=this.points[e];i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]>=0&&a++;}if(a===0)return 0;a<n&&(t=false);}if(t)return 2;for(let t=0;t<r;t++){let n=this.planes[t],r=0;for(let t=0;t<a;t++){let i=e.points[t];n[0]*i[0]+n[1]*i[1]+n[2]*i[2]+n[3]>=0&&r++;}if(r===0)return 0}return 1}intersectsPlane(e){let t=this.points.length,n=0;for(let r=0;r<t;r++){let t=this.points[r];e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]>=0&&n++;}return n===t?2:n===0?0:1}};function nc(e,t,n){let r=e-t;return r<0?-r:Math.max(0,r-n)}function rc(e,t,n,r,i){let a=e-n,o;return o=a<0?Math.min(-a,1+a-i):a>i?Math.min(Math.max(a-i,0),1-a):0,Math.max(o,nc(t,r,i))}var ic=class{constructor(){this._boundingVolumeCache=new ec(this._computeTileBoundingVolume);}prepareNextFrame(){this._boundingVolumeCache.swapBuffers();}distanceToTile2d(e,t,n,r){let i=1<<n.z,a=1/i,o=n.x/i,s=n.y/i,c=.5,l=2;return l=Math.min(l,rc(e,t,o,s,a)),l=Math.min(l,rc(e,t,o+c,-s-a,a)),l=Math.min(l,rc(e,t,o+c,2-s-a,a)),l}getWrap(e,t,n){let r=1<<t.z,i=1/r,a=t.x/r,o=nc(e.x,a,i),s=nc(e.x,a-1,i),c=nc(e.x,a+1,i),l=Math.min(o,s,c);return l===c?1:l===s?-1:0}allowVariableZoom(e,t){return Ma(e,t)>4}allowWorldCopies(){return false}getTileBoundingVolume(e,t,n,r){return this._boundingVolumeCache.getTileBoundingVolume(e,t,n,r)}_computeTileBoundingVolume(e,t,n,r){let i=Math.min(0,n),a=Math.max(0,n);if(r?.terrain){let n=new Fv(e.z,t,e.z,e.x,e.y),o=r.terrain.getMinMaxElevation(n);i=o.minElevation??i,a=o.maxElevation??a;}if(i/=um,a/=um,i+=1,a+=1,e.z<=0)return tc.fromAabb([-a,-a,-a],[a,a,a]);if(e.z===1)return tc.fromAabb([e.x===0?-a:0,e.y===0?0:-a,-a],[e.x===0?0:a,e.y===0?a:0,a]);{let t=[Hs(0,0,e.x,e.y,e.z),Hs(j,0,e.x,e.y,e.z),Hs(j,j,e.x,e.y,e.z),Hs(0,j,e.x,e.y,e.z)],n=[];for(let e of t)n.push(pe([],e,a));if(a!==i)for(let e of t)n.push(pe([],e,i));e.y===0&&n.push([0,1,0]),e.y===(1<<e.z)-1&&n.push([0,-1,0]);let r=[1,1,1],o=[-1,-1,-1];for(let e of n)for(let t=0;t<3;t++)r[t]=Math.min(r[t],e[t]),o[t]=Math.max(o[t],e[t]);let s=Hs(j/2,j/2,e.x,e.y,e.z),c=ve([],[0,1,0],s);ge(c,c);let l=ve([],s,c);ge(l,l);let u=ve([],t[2],t[1]);ge(u,u);let d=ve([],t[0],t[3]);ge(d,d),n.push(pe([],s,a)),e.y>=(1<<e.z)/2&&n.push(pe([],Hs(j/2,0,e.x,e.y,e.z),a)),e.y<(1<<e.z)/2&&n.push(pe([],Hs(j/2,j,e.x,e.y,e.z),a));let f=ac(s,n),p=ac(l,n),m=[-s[0],-s[1],-s[2],f.max],h=[s[0],s[1],s[2],-f.min],g=[-l[0],-l[1],-l[2],p.max],_=[l[0],l[1],l[2],-p.min],v=[...u,0],y=[...d,0],b=[];return e.y===0?b.push(ft(y,v,m),ft(y,v,h)):b.push(ft(g,v,m),ft(g,v,h),ft(g,y,m),ft(g,y,h)),e.y===(1<<e.z)-1?b.push(ft(y,v,m),ft(y,v,h)):b.push(ft(_,v,m),ft(_,v,h),ft(_,y,m),ft(_,y,h)),new tc(b,[m,h,g,_,v,y],r,o)}}};function ac(e,t){let n=1/0,r=-1/0;for(let i of t){let t=_e(e,i);n=Math.min(n,t),r=Math.max(r,t);}return {min:n,max:r}}var oc=class t{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e);}setMaxZoom(e){this._helper.setMaxZoom(e);}setMinPitch(e){this._helper.setMinPitch(e);}setMaxPitch(e){this._helper.setMaxPitch(e);}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e);}setBearing(e){this._helper.setBearing(e);}setPitch(e){this._helper.setPitch(e);}setRoll(e){this._helper.setRoll(e);}setFov(e){this._helper.setFov(e);}setZoom(e){this._helper.setZoom(e);}setCenter(e){this._helper.setCenter(e);}setElevation(e){this._helper.setElevation(e);}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e);}setPadding(e){this._helper.setPadding(e);}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n);}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t){this._helper.resize(e,t);}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e);}setConstrainOverride(e){this._helper.setConstrainOverride(e);}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t);}clearNearFarZOverride(){this._helper.clearNearFarZOverride();}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(e){this._cachedClippingPlane=at(),this._projectionMatrix=ct(),this._globeViewProjMatrix32f=lt(),this._globeViewProjMatrixF64=ct(),this._globeViewProjMatrixF64Inverted=ct(),this._globeProjMatrixInverted=ct(),this._cameraPosition=ot(),this.defaultConstrain=(e,t)=>{let n=Tt(e.lat,-85.051129,pn),r=Tt(+t,this.minZoom+Ys(0,n),this.maxZoom);return {center:new dm(e.lng,n),zoom:r}},this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=new _s({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._coveringTilesDetailsProvider=new ic;}clone(){let e=new t;return e.apply(this,false),e}apply(e,t){this._helper.apply(e,t);}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixF64}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){let e=ot();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){let{overscaledTileID:t,applyGlobeMatrix:n}=e,r=this._helper.getMercatorTileCoordinates(t);return {mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:r,clippingPlane:this._cachedClippingPlane,projectionTransition:+!!n,fallbackMatrix:this._globeViewProjMatrix32f,clipAntimeridian:t?.canonical.z===0}}_computeClippingPlane(e){let t=this.pitchInRadians,n=this.cameraToCenterDistance/e,r=Math.sin(t)*n,i=Math.cos(t)*n+1,a=1/Math.sqrt(r*r+i*i)*1,o=-r,s=i,c=Math.sqrt(o*o+s*s);o/=c,s/=c;let l=[0,o,s];we(l,l,[0,0,0],-this.bearingInRadians),Se(l,l,[0,0,0],-1*this.center.lat*Math.PI/180),Ce(l,l,[0,0,0],this.center.lng*Math.PI/180);let u=1/le(l);return pe(l,l,u),[...l,-a*u]}isLocationOccluded(e){return !this.isSurfacePointVisible(Us(e))}transformLightDirection(e){let t=this._helper._center.lng*Math.PI/180,n=this._helper._center.lat*Math.PI/180,r=Math.cos(n),i=[Math.sin(t)*r,Math.sin(n),Math.cos(t)*r],a=[i[2],0,-i[0]],o=[0,0,0];ve(o,a,i),ge(a,a),ge(o,o);let s=[a[0]*e[0]+o[0]*e[1]+i[0]*e[2],a[1]*e[0]+o[1]*e[1]+i[1]*e[2],a[2]*e[0]+o[2]*e[1]+i[2]*e[2]],c=[0,0,0];return ge(c,s),c}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(t,n,r){let i=Cm(t,n,r.canonical),a=Bs(i.x,i.y);return this.getCircleRadiusCorrection()/Math.cos(a[1])}projectTileCoordinates(e,t,n,r){let i=n.canonical,a=Hs(e,t,i.x,i.y,i.z),o=1+(r?r(e,t):0)/um,s=[a[0]*o,a[1]*o,a[2]*o,1];Me(s,s,this._globeViewProjMatrixF64);let c=this._cachedClippingPlane,l$1=c[0]*a[0]+c[1]*a[1]+c[2]*a[2]+c[3]<0;return {point:new l(s[0]/s[3],s[1]/s[3]),signedDistanceFromCamera:s[3],isOccluded:l$1}}_calcMatrices(){if(!this._helper._width||!this._helper._height)return;let e=Ws(this.worldSize,this.center.lat),t=st();this._helper.autoCalculateNearFarZ&&(this._helper._nearZ=.5,this._helper._farZ=this.cameraToCenterDistance+e*2),ne(t,this.fovInRadians,this.width/this.height,this._helper._nearZ,this._helper._farZ);let n=this.centerOffset;t[8]=-n.x*2/this._helper._width,t[9]=n.y*2/this._helper._height,this._projectionMatrix=x(t),this._globeProjMatrixInverted=st(),w(this._globeProjMatrixInverted,t),E(t,t,[0,0,-this.cameraToCenterDistance]),A(t,t,this.rollInRadians),O(t,t,-this.pitchInRadians),A(t,t,this.bearingInRadians),E(t,t,[0,0,-e]);let r=ot();r[0]=e,r[1]=e,r[2]=e,O(t,t,this.center.lat*Math.PI/180),k(t,t,-this.center.lng*Math.PI/180),D(t,t,r),this._globeViewProjMatrixF64=t,this._globeViewProjMatrix32f=new Float32Array(t),this._globeViewProjMatrixF64Inverted=st(),w(this._globeViewProjMatrixF64Inverted,t);let i=ot();this._cameraPosition=ot(),this._cameraPosition[2]=this.cameraToCenterDistance/e,we(this._cameraPosition,this._cameraPosition,i,-this.rollInRadians),Se(this._cameraPosition,this._cameraPosition,i,this.pitchInRadians),we(this._cameraPosition,this._cameraPosition,i,-this.bearingInRadians),de(this._cameraPosition,this._cameraPosition,[0,0,1]),Se(this._cameraPosition,this._cameraPosition,i,-this.center.lat*Math.PI/180),Ce(this._cameraPosition,this._cameraPosition,i,this.center.lng*Math.PI/180),this._cachedClippingPlane=this._computeClippingPlane(e);let o=x(this._globeViewProjMatrixF64Inverted);D(o,o,[1,1,-1]),this._cachedFrustum=bs.fromInvProjectionMatrix(o,1,0,this._cachedClippingPlane,true);}calculateFogMatrix(e){Vt(`calculateFogMatrix is not supported on globe projection.`);let t=st();return C(t),t}getVisibleUnwrappedCoordinates(e){return [new Pv(0,e)]}getCameraFrustum(){return this._cachedFrustum}getClippingPlane(){return this._cachedClippingPlane}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){if(e){Vt(`terrain is not fully supported on vertical perspective projection.`);return}this._helper.recalculateZoomAndCenter(0);}maxPitchScaleFactor(){return 1}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,t){if(!this._globeViewProjMatrixF64)return 1;let n=Us(e);pe(n,n,1+t/um);let r=at();return Me(r,[n[0],n[1],n[2],1],this._globeViewProjMatrixF64),r[2]/r[3]}populateCache(e){}getBounds(){let e=this.width*.5,t=this.height*.5,n=[new l(0,0),new l(e,0),new l(this.width,0),new l(this.width,t),new l(this.width,this.height),new l(e,this.height),new l(0,this.height),new l(0,t)],r=[];for(let e of n)r.push(this.unprojectScreenPoint(e));let i=0,a=0,o=0,s=0,c=this.center;for(let e of r){let t=ht(c.lng,e.lng),n=ht(c.lat,e.lat);t<a&&(a=t),t>i&&(i=t),n<s&&(s=n),n>o&&(o=n);}let l$1=[c.lng+a,c.lat+s,c.lng+i,c.lat+o];return this.isSurfacePointOnScreen([0,1,0])&&(l$1[3]=90,l$1[0]=-180,l$1[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(l$1[1]=-90,l$1[0]=-180,l$1[2]=180),new Wi(l$1)}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}setLocationAtPoint(e,t){let n=Us(this.unprojectScreenPoint(t)),r=Us(e),i=ot();Te(i);let a=ot();Ce(a,n,i,-this.center.lng*Math.PI/180),Se(a,a,i,this.center.lat*Math.PI/180);let o=r[0]*r[0]+r[2]*r[2],s=a[0]*a[0];if(o<s)return;let c=Math.sqrt(o-s),u=-c,d=mt(r[0],r[2],a[0],c),f=mt(r[0],r[2],a[0],u),p=ot();Ce(p,r,i,-d);let m=mt(p[1],p[2],a[1],a[2]),h=ot();Ce(h,r,i,-f);let g=mt(h[1],h[2],a[1],a[2]),_=Math.PI*.5,v=m>=-_&&m<=_,y=g>=-_&&g<=_,b,x;if(v&&y){let e=this.center.lng*Math.PI/180,t=this.center.lat*Math.PI/180,n=gt(d,e),r=gt(m,t),i=gt(f,e),a=gt(g,t);n+r<i+a?(b=d,x=m):(b=f,x=g);}else if(v)b=d,x=m;else if(y)b=f,x=g;else return;let S=b/Math.PI*180,C=x/Math.PI*180,w=this.center.lat;this.setCenter(new dm(S,Tt(C,-90,90))),this.setZoom(this.zoom+Ys(w,this.center.lat));}locationToScreenPoint(e,t){let n=Us(e);if(t){let r=t.getElevationForLngLatZoom(e,this._helper._tileZoom);pe(n,n,1+r/um);}return this._projectSurfacePointToScreen(n)}_projectSurfacePointToScreen(e){let t=at();return Me(t,[...e,1],this._globeViewProjMatrixF64),t[0]/=t[3],t[1]/=t[3],new l((t[0]*.5+.5)*this.width,(-t[1]*.5+.5)*this.height)}screenPointToMercatorCoordinate(e,t){if(t){let n=t.pointCoordinate(e);if(n)return n}return xm.fromLngLat(this.unprojectScreenPoint(e))}screenPointToLocation(e,t){return this.screenPointToMercatorCoordinate(e,t)?.toLngLat()}isPointOnMapSurface(e,t){let n=this._cameraPosition,r=this.getRayDirectionFromPixel(e);return !!this.rayPlanetIntersection(n,r)}getRayDirectionFromPixel(e){let t=at();t[0]=e.x/this.width*2-1,t[1]=(e.y/this.height*2-1)*-1,t[2]=1,t[3]=1,Me(t,t,this._globeViewProjMatrixF64Inverted),t[0]/=t[3],t[1]/=t[3],t[2]/=t[3];let n=ot();n[0]=t[0]-this._cameraPosition[0],n[1]=t[1]-this._cameraPosition[1],n[2]=t[2]-this._cameraPosition[2];let r=ot();return ge(r,n),r}isSurfacePointVisible(e){let t=this._cachedClippingPlane;return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]>=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return false;let t=at();return Me(t,[...e,1],this._globeViewProjMatrixF64),t[0]/=t[3],t[1]/=t[3],t[2]/=t[3],t[0]>-1&&t[0]<1&&t[1]>-1&&t[1]<1&&t[2]>-1&&t[2]<1}rayPlanetIntersection(e,t){let n=_e(e,t),r=ot(),i=ot();pe(i,t,n),Ee(r,e,i);let a=1-_e(r,r);if(a<0)return null;let o=_e(e,e)-1,s=-n+(n<0?1:-1)*Math.sqrt(a),c=o/s,l=s;return {tMin:Math.min(c,l),tMax:Math.max(c,l)}}unprojectScreenPoint(e){let t=this._cameraPosition,n=this.getRayDirectionFromPixel(e),r=this.rayPlanetIntersection(t,n);if(r){let e=ot();de(e,t,[n[0]*r.tMin,n[1]*r.tMin,n[2]*r.tMin]);let i=ot();return ge(i,e),Gs(i)}let i=this._cachedClippingPlane,a=i[0]*n[0]+i[1]*n[1]+i[2]*n[2],o=-dt(i,t)/a,s=ot();if(o>0)de(s,t,[n[0]*o,n[1]*o,n[2]*o]);else {let e=ot();de(e,t,[n[0]*2,n[1]*2,n[2]*2]);let r=dt(this._cachedClippingPlane,e);Ee(s,e,[this._cachedClippingPlane[0]*r,this._cachedClippingPlane[1]*r,this._cachedClippingPlane[2]*r]);}let c=Ks(i);return Gs(qs(c.center,c.radius,s))}getProjectionDataForCustomLayer(e=true){let t=this.getProjectionData({overscaledTileID:new Fv(0,0,0,0,0),applyGlobeMatrix:e});return t.tileMercatorCoords=[0,0,1,1],t}getFastPathSimpleProjectionMatrix(e){}},sc=class e{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(e){this._helper.setMinZoom(e);}setMaxZoom(e){this._helper.setMaxZoom(e);}setMinPitch(e){this._helper.setMinPitch(e);}setMaxPitch(e){this._helper.setMaxPitch(e);}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e);}setBearing(e){this._helper.setBearing(e);}setPitch(e){this._helper.setPitch(e);}setRoll(e){this._helper.setRoll(e);}setFov(e){this._helper.setFov(e);}setZoom(e){this._helper.setZoom(e);}setCenter(e){this._helper.setCenter(e);}setElevation(e){this._helper.setElevation(e);}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e);}setPadding(e){this._helper.setPadding(e);}interpolatePadding(e,t,n){this._helper.interpolatePadding(e,t,n);}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,t,n=true){this._helper.resize(e,t,n);}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e);}setConstrainOverride(e){this._helper.setConstrainOverride(e);}overrideNearFarZ(e,t){this._helper.overrideNearFarZ(e,t);}clearNearFarZOverride(){this._helper.clearNearFarZOverride();}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e){this._globeness=e,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame();}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(e){this._globeness=1,this.defaultConstrain=(e,t)=>this.currentTransform.defaultConstrain(e,t),this.applyConstrain=(e,t)=>this._helper.applyConstrain(e,t),this._helper=new _s({calcMatrices:()=>this._calcMatrices(),defaultConstrain:(e,t)=>this.defaultConstrain(e,t)},e),this._globeness=1,this._mercatorTransform=new Ts,this._verticalPerspectiveTransform=new oc;}clone(){let t=new e;return t._globeness=this._globeness,t.apply(this,false),t}apply(e,t){this._helper.apply(e,t),this._mercatorTransform.apply(this,false),this._verticalPerspectiveTransform.apply(this,false);}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(e){let t=this._mercatorTransform.getProjectionData(e),n=this._verticalPerspectiveTransform.getProjectionData(e);return {mainMatrix:this.isGlobeRendering?n.mainMatrix:t.mainMatrix,clippingPlane:n.clippingPlane,tileMercatorCoords:n.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:t.fallbackMatrix,clipAntimeridian:n.clipAntimeridian}}isLocationOccluded(e){return this.currentTransform.isLocationOccluded(e)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return yt(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return yt(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(e,t,n){let r=this._mercatorTransform.getPitchedTextCorrection(e,t,n),i=this._verticalPerspectiveTransform.getPitchedTextCorrection(e,t,n);return yt(r,i,this._globeness)}projectTileCoordinates(e,t,n,r){return this.currentTransform.projectTileCoordinates(e,t,n,r)}_calcMatrices(){!this._helper._width||!this._helper._height||(this._verticalPerspectiveTransform.apply(this,false),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,true,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ);}calculateFogMatrix(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this.currentTransform.recalculateZoomAndCenter(e);}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,t){return this.currentTransform.lngLatToCameraDepth(e,t)}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e);}getBounds(){return this.currentTransform.getBounds()}calculateCenterFromCameraLngLatAlt(e,t,n,r){return this._helper.calculateCenterFromCameraLngLatAlt(e,t,n,r)}setLocationAtPoint(e,t){if(!this.isGlobeRendering){this._mercatorTransform.setLocationAtPoint(e,t),this.apply(this._mercatorTransform,false);return}this._verticalPerspectiveTransform.setLocationAtPoint(e,t),this.apply(this._verticalPerspectiveTransform,false);}locationToScreenPoint(e,t){return this.currentTransform.locationToScreenPoint(e,t)}screenPointToMercatorCoordinate(e,t){return this.currentTransform.screenPointToMercatorCoordinate(e,t)}screenPointToLocation(e,t){return this.currentTransform.screenPointToLocation(e,t)}isPointOnMapSurface(e,t){return this.currentTransform.isPointOnMapSurface(e,t)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getProjectionDataForCustomLayer(e=true){let t=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return t;let n=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return n.fallbackMatrix=t.mainMatrix,n}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}},cc=class e{get useGlobeControls(){return true}handlePanInertia(e,t){let n=Zs(e,t);return Math.abs(n.lng-t.center.lng)>180&&(n.lng=t.center.lng+179.5*Math.sign(n.lng-t.center.lng)),{easingCenter:n,easingOffset:new l(0,0)}}handleMapControlsRollPitchBearingZoom(e,t){let n=e.around,r=t.screenPointToLocation(n);e.bearingDelta&&t.setBearing(t.bearing+e.bearingDelta),e.pitchDelta&&t.setPitch(t.pitch+e.pitchDelta),e.rollDelta&&t.setRoll(t.roll+e.rollDelta);let i=t.zoom;e.zoomDelta&&t.setZoom(t.zoom+e.zoomDelta);let a=t.zoom-i;if(a===0)return;let o=ht(t.center.lng,r.lng),s=o/(Math.abs(o/180)+1),c=ht(t.center.lat,r.lat),l=t.getRayDirectionFromPixel(n),u=t.cameraPosition,d=_e(u,l)*-1,f=ot();de(f,u,[l[0]*d,l[1]*d,l[2]*d]);let p=le(f)-1,m=Math.exp(-Math.max(p-.3,0)*.5),h=Ws(t.worldSize,t.center.lat)/Math.min(t.width,t.height),g=vt(h,.9,.5,1,.25),_=(1-Nt(-a))*Math.min(m,g),v=t.center.lat,y=t.zoom,b=new dm(t.center.lng+s*_,Tt(t.center.lat+c*_,-85.051129,pn));t.setLocationAtPoint(r,n);let x=t.center,S=vt(Math.abs(o),45,85,0,1),C=vt(h,.75,.35,0,1),w=Math.max(S,C)**.25,T=ht(x.lng,b.lng),E=ht(x.lat,b.lat);t.setCenter(new dm(x.lng+T*w,x.lat+E*w).wrap()),t.setZoom(y+Ys(v,t.center.lat));}handleMapControlsPan(e,t,n){if(!e.panDelta)return;let r=t.center.lat,i=t.zoom;t.setCenter(Zs(e.panDelta,t).wrap()),t.setZoom(i+Ys(r,t.center.lat));}cameraForBoxAndBearing(t,n,r,i,a){let o=Os(t,n,r,i,a),s=n.left/a.width*2-1,c=(a.width-n.right)/a.width*2-1,l=n.top/a.height*-2+1,u=(a.height-n.bottom)/a.height*-2+1,d=ht(r.getWest(),r.getEast())<0,f=d?r.getEast():r.getWest(),p=d?r.getWest():r.getEast(),m=Math.max(r.getNorth(),r.getSouth()),h=Math.min(r.getNorth(),r.getSouth()),g=f+ht(f,p)*.5,_=m+ht(m,h)*.5,v=a.clone();v.setCenter(o.center),v.setBearing(o.bearing),v.setPitch(0),v.setRoll(0),v.setZoom(o.zoom);let y=v.modelViewProjectionMatrix,b=[Us(r.getNorthWest()),Us(r.getNorthEast()),Us(r.getSouthWest()),Us(r.getSouthEast()),Us(new dm(p,_)),Us(new dm(f,_)),Us(new dm(g,m)),Us(new dm(g,h))],x=Us(o.center),S=1/0;for(let t of b)s<0&&(S=e.getLesserNonNegativeNonNull(S,e.solveVectorScale(t,x,y,`x`,s))),c>0&&(S=e.getLesserNonNegativeNonNull(S,e.solveVectorScale(t,x,y,`x`,c))),l>0&&(S=e.getLesserNonNegativeNonNull(S,e.solveVectorScale(t,x,y,`y`,l))),u<0&&(S=e.getLesserNonNegativeNonNull(S,e.solveVectorScale(t,x,y,`y`,u)));if(!Number.isFinite(S)||S===0){Es();return}return o.zoom=Math.min(v.zoom+Pt(S),t.maxZoom),o}handleJumpToCenterZoom(e,t){let n=e.center.lat,r=e.applyConstrain(t.center?dm.convert(t.center):e.center,e.zoom).center;e.setCenter(r.wrap());let i=t.zoom===void 0?e.zoom+Ys(n,r.lat):+t.zoom;e.zoom!==i&&e.setZoom(i);}handleEaseTo(e,t){let n=e.zoom,r=e.center,i=e.padding,a={roll:e.roll,pitch:e.pitch,bearing:e.bearing},o={roll:t.roll===void 0?e.roll:t.roll,pitch:t.pitch===void 0?e.pitch:t.pitch,bearing:t.bearing===void 0?e.bearing:t.bearing},s=t.zoom!==void 0,c=!e.isPaddingEqual(t.padding),l$1=false,u=t.center?dm.convert(t.center):r,d=e.applyConstrain(u,n).center;hs(e,d);let f=e.clone();f.setCenter(d),f.setZoom(s?+t.zoom:n+Ys(r.lat,u.lat)),f.setBearing(t.bearing);let p=new l(Tt(e.centerPoint.x+t.offsetAsPoint.x,0,e.width),Tt(e.centerPoint.y+t.offsetAsPoint.y,0,e.height));f.setLocationAtPoint(d,p);let m=(t.offset&&t.offsetAsPoint.mag())>0?f.center:d,h=s?+t.zoom:n+Ys(r.lat,m.lat),g=n+Ys(r.lat,0),_=h+Ys(m.lat,0),v=ht(r.lng,m.lng),y=ht(r.lat,m.lat),b=Nt(_-g);return l$1=h!==n,{easeFunc:n=>{if(ln(a,o)||Ds({startEulerAngles:a,endEulerAngles:o,tr:e,k:n,useSlerp:a.roll!=o.roll}),c&&e.interpolatePadding(i,t.padding,n),t.around)Vt(`Easing around a point is not supported under globe projection.`),e.setLocationAtPoint(t.around,t.aroundPoint);else {let t=n*(_>g?Math.min(2,b):Math.max(.5,b))**(1-n),i=$s(r,v,y,t);e.setCenter(i.wrap());}if(l$1){let t=Ni$1.number(g,_,n)+Ys(0,e.center.lat);e.setZoom(t);}},isZooming:l$1,elevationCenter:m}}handleFlyTo(e,t){let n=t.zoom!==void 0,r=e.center,i=e.zoom,a=e.padding,o=!e.isPaddingEqual(t.padding),s=e.applyConstrain(dm.convert(t.center||t.locationAtOffset),i).center,c=n?+t.zoom:e.zoom+Ys(e.center.lat,s.lat),l$1=e.clone();l$1.setCenter(s),l$1.setZoom(c),l$1.setBearing(t.bearing);let u=new l(Tt(e.centerPoint.x+t.offsetAsPoint.x,0,e.width),Tt(e.centerPoint.y+t.offsetAsPoint.y,0,e.height));l$1.setLocationAtPoint(s,u);let d=l$1.center;hs(e,d);let f=zs(e,r,d),p=i+Ys(r.lat,0),m=c+Ys(d.lat,0),h=Nt(m-p),g=typeof t.minZoom==`number`?+t.minZoom:e.minZoom,_=Math.max(g,e.minZoom)+Ys(d.lat,0),v=Math.min(_,p,m)+Ys(0,d.lat),y=e.applyConstrain(d,v).zoom+Ys(d.lat,0),b=Nt(y-p),x=ht(r.lng,d.lng),S=ht(r.lat,d.lat);return {easeFunc:(n,i,s,l)=>{let u=$s(r,x,S,s);o&&e.interpolatePadding(a,t.padding,n);let f=n===1?d:u;e.setCenter(f.wrap());let m=p+Pt(i);e.setZoom(n===1?c:m+Ys(0,f.lat));},scaleOfZoom:h,targetCenter:d,scaleOfMinZoom:b,pixelPathLength:f}}static solveVectorScale(e,t,n,r,i){let a=i,o=r===`x`?[n[0],n[4],n[8],n[12]]:[n[1],n[5],n[9],n[13]],s=[n[3],n[7],n[11],n[15]],c=e[0]*o[0]+e[1]*o[1]+e[2]*o[2],l=e[0]*s[0]+e[1]*s[1]+e[2]*s[2],u=t[0]*o[0]+t[1]*o[1]+t[2]*o[2],d=t[0]*s[0]+t[1]*s[1]+t[2]*s[2],f=(u+o[3]-a*d-a*s[3])/(u-c-a*d+a*l);return u+a*l===c+a*d||s[3]*(c-u)+o[3]*(d-l)+c*d===u*l?null:f}static getLesserNonNegativeNonNull(e,t){return t!==null&&t>=0&&t<e?t:e}},lc=class{constructor(e){this._globe=e,this._mercatorCameraHelper=new ks,this._verticalPerspectiveCameraHelper=new cc;}get useGlobeControls(){return this._globe.useGlobeRendering}get currentHelper(){return this.useGlobeControls?this._verticalPerspectiveCameraHelper:this._mercatorCameraHelper}handlePanInertia(e,t){return this.currentHelper.handlePanInertia(e,t)}handleMapControlsRollPitchBearingZoom(e,t){this.currentHelper.handleMapControlsRollPitchBearingZoom(e,t);}handleMapControlsPan(e,t,n){this.currentHelper.handleMapControlsPan(e,t,n);}cameraForBoxAndBearing(e,t,n,r,i){return this.currentHelper.cameraForBoxAndBearing(e,t,n,r,i)}handleJumpToCenterZoom(e,t){this.currentHelper.handleJumpToCenterZoom(e,t);}handleEaseTo(e,t){return this.currentHelper.handleEaseTo(e,t)}handleFlyTo(e,t){return this.currentHelper.handleFlyTo(e,t)}};function uc(e,t,n){let r={constrainOverride:t};if(Array.isArray(e)){let t=new Ls({type:e},n);return {projection:t,transform:new sc(r),cameraHelper:new lc(t)}}switch(e){case `mercator`:return {projection:new ps,transform:new Ts(r),cameraHelper:new ks};case `globe`:{let e=new Ls({type:[`interpolate`,[`linear`],[`zoom`],11,`vertical-perspective`,12,`mercator`]},{});return {projection:e,transform:new sc(r),cameraHelper:new lc(e)}}case `vertical-perspective`:return {projection:new Is,transform:new oc(r),cameraHelper:new cc};default:return Vt(`Unknown projection name: ${e}. Falling back to mercator projection.`),{projection:new ps,transform:new Ts(r),cameraHelper:new ks}}}const dc=ks$1();var fc=class extends Hn{constructor(e,t={}){super(),this._rtlPluginLoaded=()=>{for(let e in this.tileManagers){let t=this.tileManagers[e].getSource().type;(t===`vector`||t===`geojson`)&&this.tileManagers[e].reload();}},this.map=e,this.dispatcher=new Ai(Di(),e._getMapId()),this.dispatcher.registerMessageHandler(`GG`,(e,t)=>this.getGlyphs(e,t)),this.dispatcher.registerMessageHandler(`GI`,(e,t)=>this.getImages(e,t)),this.dispatcher.registerMessageHandler(`GDA`,(e,t)=>this.getDashes(e,t)),this.imageManager=new ti,this.imageManager.setEventedParent(this),this.imageManager.setMissingImageResolver(e._missingStyleImageResolver);let n=e._container?.lang||typeof document<`u`&&document.documentElement?.lang||void 0;this.glyphManager=new li(e._requestManager,t.localIdeographFontFamily,n),this.lineAtlas=new gi(256,512),this.crossTileSymbolIndex=new Qo,this._setInitialValues(),this._resetUpdates(),this.dispatcher.broadcast(`SR`,kn()),wa().on(xa,this._rtlPluginLoaded),this.on(`data`,e=>{if(e.dataType!==`source`||e.sourceDataType!==`metadata`)return;let t=this.tileManagers[e.sourceId];if(!t)return;let n=t.getSource();if(n?.vectorLayerIds)for(let e in this._layers){let t=this._layers[e];t.source===n.id&&this._validateLayer(t);}});}_setInitialValues(){this._spritesImagesIds={},this._layers={},this._order=[],this.tileManagers={},this.zoomHistory=new Bc$1,this._availableImages=[],this._imagesListDirty=false,this._globalState={},this._serializedLayers={},this.stylesheet=null,this.light=null,this.sky=null,this.projection&&(this.projection.destroy(),delete this.projection),this._loaded=false,this._changed=false,this._updatedLayers={},this._updatedSources={},this._changedImages={},this._glyphsDidChange=false,this._updatedPaintProps={},this._layerOrderChanged=false,this.crossTileSymbolIndex=new((this.crossTileSymbolIndex?.constructor)||Object),this.pauseablePlacement=void 0,this.placement=void 0,this.z=0;}setGlobalStateProperty(e,t){this._checkLoaded();let n=t===null?this.stylesheet.state?.[e]?.default??null:t;if(Rt(n,this._globalState[e]))return this;this._globalState[e]=n,this._applyGlobalStateChanges([e]);}getGlobalState(){return this._globalState}setGlobalState(e){this._checkLoaded();let t=[];for(let n in e)Rt(this._globalState[n],e[n].default)||(t.push(n),this._globalState[n]=e[n].default);this._applyGlobalStateChanges(t);}_applyGlobalStateChanges(e){if(e.length===0)return;let t=new Set,n={};for(let r of e){n[r]=this._globalState[r];for(let e in this._layers){let n=this._layers[e],i=n.getLayoutAffectingGlobalStateRefs(),a=n.getPaintAffectingGlobalStateRefs(),o=n.getVisibilityAffectingGlobalStateRefs();if(i.has(r)&&t.add(n.source),a.has(r))for(let{name:e,value:t}of a.get(r))this._updatePaintProperty(n,e,t);o?.has(r)&&(n.recalculateVisibility(),this._updateLayer(n));}}this.dispatcher.broadcast(`UGS`,n);for(let e in this.tileManagers)t.has(e)&&(this._reloadSource(e),this._changed=true);}async loadURL(e,t={},n){this.fire(new Hr(`dataloading`)),t.validate=typeof t.validate!=`boolean`||t.validate,this._loadStyleRequest=new AbortController;let r=this._loadStyleRequest;try{let i=await this.map._requestManager.transformRequest(e,`Style`);Sn(r.signal);let a=await Pn(i,r);this._loadStyleRequest===r&&(this._loadStyleRequest=null),this._load(a.data,t,n);}catch(e){this._loadStyleRequest===r&&(this._loadStyleRequest=null),e&&!r.signal.aborted&&this.fire(new Vn(it(e)));}}loadJSON(e,t={},n){this.fire(new Hr(`dataloading`)),this._frameRequest=new AbortController,Nr.frameAsync(this._frameRequest,this.map._ownerWindow).then(()=>{this._frameRequest=null,t.validate=t.validate!==false,this._load(e,t,n);}).catch(()=>{});}loadEmpty(){this.fire(new Hr(`dataloading`)),this._load(dc,{validate:false});}_load(e,t,n){let r=t.transformStyle?t.transformStyle(n,e):e;if(!(t.validate&&kc$1(this,r))){r={...r},this._loaded=true,this.stylesheet=r;for(let e in r.sources)this.addSource(e,r.sources[e],{validate:false});r.sprite?this._loadSprite(r.sprite):this.imageManager.setLoaded(true),this.glyphManager.setURL(r.glyphs),this._createLayers(),this.light=new fi(this.stylesheet.light??{},this._globalState),this._setProjectionInternal(this.stylesheet.projection?.type||`mercator`),this.sky=new hi(this.stylesheet.sky,this._globalState),this.map.setTerrain(this.stylesheet.terrain??null,{validate:false}),this.fire(new Hr(`data`)),this.fire(new Vr);}}_createLayers(){let e=Gn(this.stylesheet.layers);this.setGlobalState(this.stylesheet.state??null),this.dispatcher.broadcast(`SL`,e),this._order=e.map(e=>e.id),this._layers={},this._serializedLayers=null;for(let t of e){let e=Dv(t,this._globalState);if(e.setEventedParent(this,{layer:{id:t.id}}),this._layers[t.id]=e,Ol$1(e)&&this.tileManagers[e.source]){let n=t.paint?.[`raster-fade-duration`]??e.paint.get(`raster-fade-duration`);this.tileManagers[e.source].setRasterFadeDuration(n);}}}_loadSprite(e,t=false,n=void 0){this.imageManager.setLoaded(false);let r=new AbortController;this._spriteRequest=r;let i;$r(e,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(e=>{if(this._spriteRequest=null,e)for(let n in e){this._spritesImagesIds[n]=[];let r=this._spritesImagesIds[n]?this._spritesImagesIds[n].filter(t=>!(t in e)):[];for(let e of r)this.imageManager.removeImage(e),this._changedImages[e]=true;for(let r in e[n]){let i=n==="default"?r:`${n}:${r}`;this._spritesImagesIds[n].push(i),i in this.imageManager.images?this.imageManager.updateImage(i,e[n][r],false):this.imageManager.addImage(i,e[n][r]),t&&(this._changedImages[i]=true);}}}).catch(e=>{this._spriteRequest=null,i=e,r.signal.aborted||this.fire(new Vn(i));}).finally(()=>{this.imageManager.setLoaded(true),this._availableImages=this.imageManager.listImages(),t&&(this._changed=true),this.dispatcher.broadcast(`SI`,this._availableImages),this.fire(new Hr(`data`)),n&&n(i);});}_unloadSprite(){for(let e of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(e),this._changedImages[e]=true;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._imagesListDirty=true,this._changed=true,this.fire(new Hr(`data`));}_validateLayer(e){let t=this.tileManagers[e.source];if(!t)return;let n=e.sourceLayer;if(!n)return;let r=t.getSource();(r.type===`geojson`||r.vectorLayerIds&&!r.vectorLayerIds.includes(n))&&this.fire(new Vn(Error(`Source layer "${n}" does not exist on source "${r.id}" as specified by style layer "${e.id}".`)));}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return false;for(let e in this.tileManagers)if(!this.tileManagers[e].loaded())return false;return this.imageManager.isLoaded()}_serializeByIds(e,t=false){let n=this._serializedAllLayers();if(!e||e.length===0)return Object.values(t?zt(n):n);let r=[];for(let i of e)if(n[i]){let e=t?zt(n[i]):n[i];r.push(e);}return r}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};let t=Object.keys(this._layers);for(let n of t){let t=this._layers[n];t.type!==`custom`&&(e[n]=t.serialize());}return e}hasTransitions(){if(this.light?.hasTransition()||this.sky?.hasTransition()||this.projection?.hasTransition())return true;for(let e in this.tileManagers)if(this.tileManagers[e].hasTransition())return true;for(let e in this._layers)if(this._layers[e].hasTransition())return true;return false}_checkLoaded(){if(!this._loaded)throw Error(`Style is not done loading.`)}update(e){if(!this._loaded)return;let t=this._changed;if(t){this._imagesListDirty&&=(this.dispatcher.broadcast(`SI`,this._availableImages),false);let t=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);(t.length||n.length)&&this._updateWorkerLayers(t,n);for(let e in this._updatedSources){let t=this._updatedSources[e];if(t===`reload`)this._reloadSource(e);else if(t===`clear`)this._clearSource(e);else throw Error(`Invalid action ${t}`)}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let t in this._updatedPaintProps)this._layers[t].updateTransitions(e);this.light.updateTransitions(e),this.sky.updateTransitions(e),this._resetUpdates();}let n={};for(let e in this.tileManagers){let t=this.tileManagers[e];n[e]=t.used,t.used=false;}for(let t of this._order){let n=this._layers[t];n.recalculate(e,this._availableImages),!n.isHidden(e.zoom)&&n.source&&(this.tileManagers[n.source].used=true);}for(let e in n){let t=this.tileManagers[e];!!n[e]!=!!t.used&&t.fire(new K(`data`,{sourceDataType:`visibility`,sourceId:e}));}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,t&&this.fire(new Hr(`data`));}_updateTilesForChangedImages(){let e=Object.keys(this._changedImages);if(e.length){for(let t in this.tileManagers)this.tileManagers[t].reloadTilesForDependencies([`icons`,`patterns`],e);this._changedImages={};}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let e in this.tileManagers)this.tileManagers[e].reloadTilesForDependencies([`glyphs`],[``]);this._glyphsDidChange=false;}}_updateWorkerLayers(e,t){this.dispatcher.broadcast(`UL`,{layers:this._serializeByIds(e,false),removedIds:t});}_resetUpdates(){this._changed=false,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=false;}setState(e,t={}){this._checkLoaded();let n=this.serialize();if(e=t.transformStyle?t.transformStyle(n,e):e,(t.validate??true)&&kc$1(this,e))return false;e=zt(e),e.layers=Gn(e.layers);let r=nr(n,e),i=this._getOperationsToPerform(r);if(i.unimplemented.length>0)throw Error(`Unimplemented: ${i.unimplemented.join(`, `)}.`);if(i.operations.length===0)return false;for(let e of i.operations)e();return this.stylesheet=e,this._serializedLayers=null,this.fire(new Vr({style:this})),true}_getOperationsToPerform(e){let t=[],n=[];for(let r of e)switch(r.command){case `setCenter`:case `setZoom`:case `setBearing`:case `setPitch`:case `setRoll`:continue;case `addLayer`:t.push(()=>this.addLayer.apply(this,r.args));break;case `removeLayer`:t.push(()=>this.removeLayer.apply(this,r.args));break;case `setPaintProperty`:t.push(()=>this.setPaintProperty.apply(this,r.args));break;case `setLayoutProperty`:t.push(()=>this.setLayoutProperty.apply(this,r.args));break;case `setFilter`:t.push(()=>this.setFilter.apply(this,r.args));break;case `addSource`:t.push(()=>this.addSource.apply(this,r.args));break;case `removeSource`:t.push(()=>this.removeSource.apply(this,r.args));break;case `setLayerZoomRange`:t.push(()=>this.setLayerZoomRange.apply(this,r.args));break;case `setLight`:t.push(()=>this.setLight.apply(this,r.args));break;case `setGeoJSONSourceData`:t.push(()=>this.setGeoJSONSourceData.apply(this,r.args));break;case `setGlyphs`:t.push(()=>this.setGlyphs.apply(this,r.args));break;case `setSprite`:t.push(()=>this.setSprite.apply(this,r.args));break;case `setTerrain`:t.push(()=>this.map.setTerrain.apply(this,r.args));break;case `setSky`:t.push(()=>this.setSky.apply(this,r.args));break;case `setProjection`:this.setProjection.apply(this,r.args);break;case `setGlobalState`:t.push(()=>this.setGlobalState.apply(this,r.args));break;case `setTransition`:t.push(()=>{});break;default:n.push(r.command);}return {operations:t,unimplemented:n}}addImage(e,t){if(this.getImage(e)){this.fire(new Vn(Error(`An image named "${e}" already exists.`)));return}this.imageManager.addImage(e,t),this._afterImageUpdated(e);}updateImage(e,t){this.imageManager.updateImage(e,t);}getImage(e){return this.imageManager.getImage(e)}setMissingImageResolver(e){this.imageManager.setMissingImageResolver(e);}removeImage(e){if(!this.getImage(e)){this.fire(new Vn(Error(`An image named "${e}" does not exist.`)));return}this.imageManager.removeImage(e),this._afterImageUpdated(e);}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=true,this._imagesListDirty=true,this._changed=true,this.fire(new Hr(`data`));}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,t,n={}){if(this._checkLoaded(),this.tileManagers[e]!==void 0)throw Error(`Source "${e}" already exists.`);if(!t.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(t).join(`, `)}.`);if(Dc$1.has(t.type)&&this._validate(Ec$1.source,`sources.${e}`,t,null,n))return;this.map?._collectResourceTiming&&(t.collectResourceTiming=true);let r=this.tileManagers[e]=new Ka(e,t,this.dispatcher);r.style=this,r.setEventedParent(this,()=>({isSourceLoaded:r.loaded(),source:r.serialize(),sourceId:e})),r.onAdd(this.map),this._changed=true;}removeSource(e){if(this._checkLoaded(),this.tileManagers[e]===void 0)throw Error(`There is no source with this ID=${e}`);for(let t in this._layers)if(this._layers[t].source===e)return this.fire(new Vn(Error(`Source "${e}" cannot be removed while layer "${t}" is using it.`)));let t=this.tileManagers[e];delete this.tileManagers[e],delete this._updatedSources[e],t.fire(new K(`data`,{sourceDataType:`metadata`,sourceId:e})),t.setEventedParent(null),t.onRemove(this.map),this._changed=true;}setGeoJSONSourceData(e,t){if(this._checkLoaded(),this.tileManagers[e]===void 0)throw Error(`There is no source with this ID=${e}`);let n=this.tileManagers[e].getSource();if(n.type!==`geojson`)throw Error(`geojsonSource.type is ${n.type}, which is !== 'geojson`);n.setData(t),this._changed=true;}getSource(e){return this.tileManagers[e]?.getSource()}addLayer(e,t,n={}){this._checkLoaded();let r=e.id;if(this.getLayer(r)){this.fire(new Vn(Error(`Layer "${r}" already exists on this map.`)));return}let i;if(e.type===`custom`){if(Ac$1(this,wv(e)))return;i=Dv(e,this._globalState);}else {if(`source`in e&&typeof e.source==`object`&&(this.addSource(r,e.source),e=zt(e),e=Dt(e,{source:r})),this._validate(Ec$1.layer,`layers.${r}`,e,{arrayIndex:-1},n))return;i=Dv(e,this._globalState),this._validateLayer(i),i.setEventedParent(this,{layer:{id:r}});}let a=t?this._order.indexOf(t):this._order.length;if(t&&a===-1){this.fire(new Vn(Error(`Cannot add layer "${r}" before non-existing layer "${t}".`)));return}if(this._order.splice(a,0,r),this._layerOrderChanged=true,this._layers[r]=i,this._removedLayers[r]&&i.source&&i.type!==`custom`){let e=this._removedLayers[r];delete this._removedLayers[r],e.type===i.type?(this._updatedSources[i.source]=`reload`,this.tileManagers[i.source].pause()):this._updatedSources[i.source]=`clear`;}this._updateLayer(i),i.onAdd&&i.onAdd(this.map);}moveLayer(e,t){if(this._checkLoaded(),this._changed=true,!this._layers[e]){this.fire(new Vn(Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));return}if(e===t)return;let n=this._order.indexOf(e);this._order.splice(n,1);let r=t?this._order.indexOf(t):this._order.length;if(t&&r===-1){this.fire(new Vn(Error(`Cannot move layer "${e}" before non-existing layer "${t}".`)));return}this._order.splice(r,0,e),this._layerOrderChanged=true;}removeLayer(e){this._checkLoaded();let t=this._layers[e];if(!t){this.fire(new Vn(Error(`Cannot remove non-existing layer "${e}".`)));return}t.setEventedParent(null);let n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=true,this._changed=true,this._removedLayers[e]=t,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],t.onRemove&&t.onRemove(this.map);}getLayer(e){return this._layers[e]}getLayersOrder(){return [...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,t,n){this._checkLoaded();let r=this.getLayer(e);if(!r){this.fire(new Vn(Error(`Cannot set the zoom range of non-existing layer "${e}".`)));return}(r.minzoom!==t||r.maxzoom!==n)&&(t!=null&&(r.minzoom=t),n!=null&&(r.maxzoom=n),this._updateLayer(r));}setFilter(e,t,n={}){this._checkLoaded();let r=this.getLayer(e);if(!r){this.fire(new Vn(Error(`Cannot filter non-existing layer "${e}".`)));return}if(!Rt(r.filter,t)){if(t==null){r.setFilter(void 0),this._updateLayer(r);return}this._validate(Ec$1.filter,`layers.${r.id}.filter`,t,null,n)||(r.setFilter(zt(t)),this._updateLayer(r));}}getFilter(e){return zt(this.getLayer(e).filter)}setLayoutProperty(e,t,n,r={}){this._checkLoaded();let i=this.getLayer(e);if(!i){this.fire(new Vn(Error(`Cannot style non-existing layer "${e}".`)));return}Rt(i.getLayoutProperty(t),n)||(i.setLayoutProperty(t,n,r),this._updateLayer(i));}getLayoutProperty(e,t){let n=this.getLayer(e);if(!n){this.fire(new Vn(Error(`Cannot get style of non-existing layer "${e}".`)));return}return n.getLayoutProperty(t)}setPaintProperty(e,t,n,r={}){this._checkLoaded();let i=this.getLayer(e);if(!i){this.fire(new Vn(Error(`Cannot style non-existing layer "${e}".`)));return}Rt(i.getPaintProperty(t),n)||this._updatePaintProperty(i,t,n,r);}_updatePaintProperty(e,t,n,r={}){e.setPaintProperty(t,n,r)&&this._updateLayer(e),Ol$1(e)&&t===`raster-fade-duration`&&this.tileManagers[e.source].setRasterFadeDuration(n),this._changed=true,this._updatedPaintProps[e.id]=true,this._serializedLayers=null;}getPaintProperty(e,t){return this.getLayer(e).getPaintProperty(t)}setFeatureState(e,t){this._checkLoaded();let n=e.source,r=e.sourceLayer,i=this.tileManagers[n];if(i===void 0){this.fire(new Vn(Error(`The source '${n}' does not exist in the map's style.`)));return}let a=i.getSource().type;if(a===`geojson`&&r){this.fire(new Vn(Error(`GeoJSON sources cannot have a sourceLayer parameter.`)));return}if(a===`vector`&&!r){this.fire(new Vn(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}if(e.id===void 0){this.fire(new Vn(Error(`The feature id parameter must be provided.`)));return}let o=[`__proto__`,`constructor`,`prototype`];if(t&&Object.keys(t).some(e=>o.includes(e))){this.fire(new Vn(Error(`The feature state should not include one of the following keys: ${o}`)));return}i.setFeatureState(r,e.id,t);}removeFeatureState(e,t){this._checkLoaded();let n=e.source,r=this.tileManagers[n];if(r===void 0){this.fire(new Vn(Error(`The source '${n}' does not exist in the map's style.`)));return}let i=r.getSource().type,a=i===`vector`?e.sourceLayer:void 0;if(i===`vector`&&!a){this.fire(new Vn(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}if(t&&typeof e.id!=`string`&&typeof e.id!=`number`){this.fire(new Vn(Error(`A feature id is required to remove its specific state property.`)));return}r.removeFeatureState(a,e.id,t);}getFeatureState(e){this._checkLoaded();let t=e.source,n=e.sourceLayer,r=this.tileManagers[t];if(r===void 0){this.fire(new Vn(Error(`The source '${t}' does not exist in the map's style.`)));return}if(r.getSource().type===`vector`&&!n){this.fire(new Vn(Error(`The sourceLayer parameter must be provided for vector source types.`)));return}return e.id===void 0&&this.fire(new Vn(Error(`The feature id parameter must be provided.`))),r.getFeatureState(n,e.id)}getTransition(){return Dt({duration:300,delay:0},this.stylesheet?.transition)}serialize(){if(!this._loaded)return;let e=It(this.tileManagers,e=>e.serialize()),t=this._serializeByIds(this._order,true),n=this.map.getTerrain()||void 0,r=this.stylesheet;return Lt({version:r.version,name:r.name,metadata:r.metadata,light:r.light,sky:r.sky,center:r.center,zoom:r.zoom,bearing:r.bearing,pitch:r.pitch,sprite:r.sprite,glyphs:r.glyphs,transition:r.transition,projection:r.projection,sources:e,layers:t,terrain:n},e=>e!==void 0)}_updateLayer(e){this._updatedLayers[e.id]=true,e.source&&!this._updatedSources[e.source]&&this.tileManagers[e.source].getSource().type!==`raster`&&(this._updatedSources[e.source]=`reload`,this.tileManagers[e.source].pause()),this._serializedLayers=null,this._changed=true;}_flattenAndSortRenderedFeatures(e){let t=e=>this._layers[e].type===`fill-extrusion`,n={},r=[];for(let i=this._order.length-1;i>=0;i--){let a=this._order[i];if(t(a)){n[a]=i;for(let t of e){let e=t[a];if(e)for(let t of e)r.push(t);}}}r.sort((e,t)=>t.intersectionZ-e.intersectionZ);let i=[];for(let a=this._order.length-1;a>=0;a--){let o=this._order[a];if(t(o))for(let e=r.length-1;e>=0;e--){let t=r[e].feature;if(n[t.layer.id]<a)break;i.push(t),r.pop();}else for(let t of e){let e=t[o];if(e)for(let t of e)i.push(t.feature);}}return i}queryRenderedFeatures(e,t,n){t?.filter&&this._validate(Ec$1.filter,`queryRenderedFeatures.filter`,t.filter,null,t);let r={};if(t?.layers){if(!(Array.isArray(t.layers)||t.layers instanceof Set))return this.fire(new Vn(Error(`parameters.layers must be an Array or a Set of strings`))),[];for(let e of t.layers){let t=this._layers[e];if(!t)return this.fire(new Vn(Error(`The layer '${e}' does not exist in the map's style and cannot be queried for features.`))),[];r[t.source]=true;}}let i=[];t.availableImages=this._availableImages;let a=this._serializedAllLayers(),o=t.layers instanceof Set?t.layers:Array.isArray(t.layers)?new Set(t.layers):null,s={...t,layers:o,globalState:this._globalState};for(let o in this.tileManagers)t.layers&&!r[o]||i.push(Fi(this.tileManagers[o],this._layers,a,e,s,n,this.map.terrain?(e,t,n)=>this.map.terrain.getElevation(e,t,n):void 0));return this.placement&&i.push(Ii(this._layers,a,this.tileManagers,e,s,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(i)}querySourceFeatures(e,t){t?.filter&&this._validate(Ec$1.filter,`querySourceFeatures.filter`,t.filter,null,t);let n=this.tileManagers[e];return n?Li(n,t?{...t,globalState:this._globalState}:{globalState:this._globalState}):[]}getLight(){return this.light.getLight()}setLight(e,t={}){this._checkLoaded();let n=this.light.getLight(),r=false;for(let t in e)if(!Rt(e[t],n[t])){r=true;break}if(!r)return;let i={now:U(),transition:Dt({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,t),this.light.updateTransitions(i);}getProjection(){return this.stylesheet?.projection}setProjection(e){this._checkLoaded();let t=e??{type:`mercator`};if(this.stylesheet.projection=e,this.projection){if(this.projection.name===t.type)return;this.projection.destroy(),delete this.projection;}this._setProjectionInternal(t.type);}getSky(){return this.stylesheet?.sky}setSky(e,t={}){this._checkLoaded();let n=this.getSky(),r=false;if(!e&&!n)return;if(e&&!n)r=true;else if(!e&&n)r=true;else for(let t in e)if(!Rt(e[t],n[t])){r=true;break}if(!r)return;let i={now:U(),transition:Dt({duration:300,delay:0},this.stylesheet.transition)};this.stylesheet.sky=e,this.sky.setSky(e,t),this.sky.updateTransitions(i);}_setProjectionInternal(e){let t=uc(e,this.map._camera?.transform.constrainOverride,this._globalState);this.projection=t.projection,this.map.migrateProjection(t.transform,t.cameraHelper);for(let e in this.tileManagers)this.tileManagers[e].reload();}_validate(e,t,n,r,i={}){return jc$1(this,e,{key:t,style:this.serialize(),value:n,...r},i)}_remove(e=true){this._frameRequest&&=(this._frameRequest.abort(),null),this._loadStyleRequest&&=(this._loadStyleRequest.abort(),null),this._spriteRequest&&=(this._spriteRequest.abort(),null),wa().off(xa,this._rtlPluginLoaded);for(let e in this._layers)this._layers[e].setEventedParent(null);for(let e in this.tileManagers){let t=this.tileManagers[e];t.setEventedParent(null),t.onRemove(this.map);}this.imageManager.setEventedParent(null),this.setEventedParent(null),e&&this.dispatcher.broadcast(`RM`,void 0),this.dispatcher.remove(e);}_clearSource(e){this.tileManagers[e].clearTiles();}_reloadSource(e){this.tileManagers[e].resume(),this.tileManagers[e].reload();}_updateSources(e){for(let t in this.tileManagers)this.tileManagers[t].update(e,this.map.terrain);}_generateCollisionBoxes(){for(let e in this.tileManagers)this._reloadSource(e);}_updatePlacement(e,t,n,r,i=false){let a=false,o=false,s={};for(let t of this._order){let n=this._layers[t];if(n.type!==`symbol`)continue;if(!s[n.source]){let e=this.tileManagers[n.source];s[n.source]=e.getRenderableIds(true).map(t=>e.getTileByID(t)).sort((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1));}let r=this.crossTileSymbolIndex.addLayer(n,s[n.source],e.center.lng);a||=r;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),i||=this._layerOrderChanged||n===0,(i||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(U(),e.zoom))&&(this.pauseablePlacement=new Bo(e,this.map.terrain,this._order,i,t,n,r,this.placement),this._layerOrderChanged=false),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,s),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(U()),o=true),a&&this.pauseablePlacement.placement.setStale()),o||a)for(let e of this._order){let t=this._layers[e];t.type===`symbol`&&this.placement.updateLayerOpacities(t,s[t.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(U())}_releaseSymbolFadeTiles(){for(let e in this.tileManagers)this.tileManagers[e].releaseSymbolFadeTiles();}async getImages(e,t){let n=await this.imageManager.getImages(t.icons);this._updateTilesForChangedImages();let r=this.tileManagers[t.source];return r&&r.setDependencies(t.tileID.key,t.type,t.icons),n}async getGlyphs(e,t){let n=await this.glyphManager.getGlyphs(t.stacks),r=this.tileManagers[t.source];return r&&r.setDependencies(t.tileID.key,t.type,[``]),n}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,t={}){this._checkLoaded(),!(e&&this._validate(Ec$1.glyphs,`glyphs`,e,null,t))&&(this._glyphsDidChange=true,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e));}async getDashes(e,t){let n={};for(let[e,r]of Object.entries(t.dashes))n[e]=this.lineAtlas.getDash(r.dasharray,r.round);return n}addSprite(e,t,n={},r){this._checkLoaded();let i=[{id:e,url:t}],a=[...Zr(this.stylesheet.sprite),...i];this._validate(Ec$1.sprite,`sprite`,a,null,n)||(this.stylesheet.sprite=a,this._loadSprite(i,true,r));}removeSprite(e){this._checkLoaded();let t=Zr(this.stylesheet.sprite);if(!t.find(t=>t.id===e)){this.fire(new Vn(Error(`Sprite "${e}" doesn't exists on this map.`)));return}if(this._spritesImagesIds[e])for(let t of this._spritesImagesIds[e])this.imageManager.removeImage(t),this._changedImages[t]=true;t.splice(t.findIndex(t=>t.id===e),1),this.stylesheet.sprite=t.length>0?t:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._imagesListDirty=true,this._changed=true,this.fire(new Hr(`data`));}getSprite(){return Zr(this.stylesheet.sprite)}setSprite(e,t={},n){this._checkLoaded(),!(e&&this._validate(Ec$1.sprite,`sprite`,e,null,t))&&(this.stylesheet.sprite=e,e?this._loadSprite(e,true,n):(this._unloadSprite(),n&&n(null)));}destroy(){this._frameRequest&&=(this._frameRequest.abort(),null),this._loadStyleRequest&&=(this._loadStyleRequest.abort(),null),this._spriteRequest&&=(this._spriteRequest.abort(),null);for(let e in this.tileManagers){let t=this.tileManagers[e];t.setEventedParent(null),t.onRemove(this.map);}this.tileManagers={},this.imageManager&&(this.imageManager.setEventedParent(null),this.imageManager.destroy(),this._availableImages=[],this._spritesImagesIds={}),this.glyphManager&&this.glyphManager.destroy();for(let e in this._layers){let t=this._layers[e];t.setEventedParent(null),t.onRemove&&t.onRemove(this.map);}this._setInitialValues(),this.setEventedParent(null),this.dispatcher.unregisterMessageHandler(`GG`),this.dispatcher.unregisterMessageHandler(`GI`),this.dispatcher.unregisterMessageHandler(`GDA`),this.dispatcher.remove(true),this._listeners={},this._oneTimeListeners={};}};const pc=Ml$1([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]);var mc=class{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;}bind(e,t,n,r,i,a,o,s,c){this.context=e;let l=this.boundPaintVertexBuffers.length!==r.length;for(let e=0;!l&&e<r.length;e++)this.boundPaintVertexBuffers[e]!==r[e]&&(l=true);!this.vao||this.boundProgram!==t||this.boundLayoutVertexBuffer!==n||l||this.boundIndexBuffer!==i||this.boundVertexOffset!==a||this.boundDynamicVertexBuffer!==o||this.boundDynamicVertexBuffer2!==s||this.boundDynamicVertexBuffer3!==c?this.freshBind(t,n,r,i,a,o,s,c):(e.bindVertexArray.set(this.vao),o&&o.bind(),i?.dynamicDraw&&i.bind(),s&&s.bind(),c&&c.bind());}freshBind(e,t,n,r,i,a,o,s){let c=e.numAttributes,l=this.context,u=l.gl;this.vao&&this.destroy(),this.vao=l.createVertexArray(),l.bindVertexArray.set(this.vao),this.boundProgram=e,this.boundLayoutVertexBuffer=t,this.boundPaintVertexBuffers=n,this.boundIndexBuffer=r,this.boundVertexOffset=i,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=o,this.boundDynamicVertexBuffer3=s,t.enableAttributes(u,e);for(let t of n)t.enableAttributes(u,e);a&&a.enableAttributes(u,e),o&&o.enableAttributes(u,e),s&&s.enableAttributes(u,e),t.bind(),t.setVertexAttribPointers(u,e,i);for(let t of n)t.bind(),t.setVertexAttribPointers(u,e,i);a&&(a.bind(),a.setVertexAttribPointers(u,e,i)),r&&r.bind(),o&&(o.bind(),o.setVertexAttribPointers(u,e,i)),s&&(s.bind(),s.setVertexAttribPointers(u,e,i)),l.currentNumAttributes=c;}destroy(){this.vao&&=(this.context.deleteVertexArray(this.vao),null);}};const hc=(e,t)=>({u_depth:new Zu$1(e,t.u_depth),u_terrain:new Zu$1(e,t.u_terrain),u_terrain_dim:new Qu$1(e,t.u_terrain_dim),u_terrain_matrix:new od$1(e,t.u_terrain_matrix),u_terrain_unpack:new td$1(e,t.u_terrain_unpack),u_terrain_exaggeration:new Qu$1(e,t.u_terrain_exaggeration)}),gc=(e,t)=>({u_texture:new Zu$1(e,t.u_texture),u_ele_delta:new Qu$1(e,t.u_ele_delta),u_fog_matrix:new od$1(e,t.u_fog_matrix),u_fog_color:new nd$1(e,t.u_fog_color),u_fog_ground_blend:new Qu$1(e,t.u_fog_ground_blend),u_fog_ground_blend_opacity:new Qu$1(e,t.u_fog_ground_blend_opacity),u_horizon_color:new nd$1(e,t.u_horizon_color),u_horizon_fog_blend:new Qu$1(e,t.u_horizon_fog_blend),u_is_globe_mode:new Qu$1(e,t.u_is_globe_mode)}),_c=(e,t)=>({u_ele_delta:new Qu$1(e,t.u_ele_delta)}),vc=(e,t)=>({u_texture:new Zu$1(e,t.u_texture),u_terrain_coords_id:new Qu$1(e,t.u_terrain_coords_id),u_ele_delta:new Qu$1(e,t.u_ele_delta)}),yc=(e,t,n,r,i)=>({u_texture:0,u_ele_delta:e,u_fog_matrix:t,u_fog_color:n?n.properties.get(`fog-color`):B.white,u_fog_ground_blend:n?n.properties.get(`fog-ground-blend`):1,u_fog_ground_blend_opacity:i?0:n?n.calculateFogBlendOpacity(r):0,u_horizon_color:n?n.properties.get(`horizon-color`):B.white,u_horizon_fog_blend:n?n.properties.get(`horizon-fog-blend`):1,u_is_globe_mode:+!!i}),bc=e=>({u_ele_delta:e}),xc=(e,t)=>({u_terrain_coords_id:e/255,u_texture:0,u_ele_delta:t}),Sc=(e,t)=>({u_projection_matrix:new od$1(e,t.u_projection_matrix),u_projection_tile_mercator_coords:new td$1(e,t.u_projection_tile_mercator_coords),u_projection_clipping_plane:new td$1(e,t.u_projection_clipping_plane),u_projection_transition:new Qu$1(e,t.u_projection_transition),u_projection_fallback_matrix:new od$1(e,t.u_projection_fallback_matrix),u_projection_clip_antimeridian:new Zu$1(e,t.u_projection_clip_antimeridian)}),Cc=e=>({u_projection_matrix:e.mainMatrix,u_projection_tile_mercator_coords:e.tileMercatorCoords,u_projection_clipping_plane:e.clippingPlane,u_projection_transition:e.projectionTransition,u_projection_fallback_matrix:e.fallbackMatrix,u_projection_clip_antimeridian:+!!e.clipAntimeridian});function wc(e){let t=[];for(let n of e){if(n===null)continue;let e=n.split(` `);t.push(e.pop());}return t}var Tc=class{constructor(e,t,n,r,i,a,o,s,c=[]){let l=e.gl;this.program=l.createProgram();let u=wc(t.staticAttributes),d=n?n.getBinderAttributes():[],f=u.concat(d),p=cs.prelude.staticUniforms?wc(cs.prelude.staticUniforms):[],m=o.staticUniforms?wc(o.staticUniforms):[],h=t.staticUniforms?wc(t.staticUniforms):[],g=n?n.getBinderUniforms():[],_=p.concat(m).concat(h).concat(g),v=[];for(let e of _)v.includes(e)||v.push(e);let y=n?n.defines():[];y.unshift(`#version 300 es`),i&&y.push(`#define OVERDRAW_INSPECTOR;`),a&&y.push(`#define TERRAIN3D;`),s&&y.push(s),c&&y.push(...c);let b=y.concat(cs.prelude.fragmentSource,o.fragmentSource,t.fragmentSource).join(`
813
+ `),x=y.concat(cs.prelude.vertexSource,o.vertexSource,t.vertexSource).join(`
814
+ `),S=l.createShader(l.FRAGMENT_SHADER);if(l.isContextLost()){this.failedToCreate=true;return}if(l.shaderSource(S,b),l.compileShader(S),!l.getShaderParameter(S,l.COMPILE_STATUS))throw Error(`Could not compile fragment shader: ${l.getShaderInfoLog(S)}`);l.attachShader(this.program,S);let C=l.createShader(l.VERTEX_SHADER);if(l.isContextLost()){this.failedToCreate=true;return}if(l.shaderSource(C,x),l.compileShader(C),!l.getShaderParameter(C,l.COMPILE_STATUS))throw Error(`Could not compile vertex shader: ${l.getShaderInfoLog(C)}`);l.attachShader(this.program,C),this.attributes={};let w={};this.numAttributes=f.length;for(let e=0;e<this.numAttributes;e++)f[e]&&(this.attributes[f[e]]=e);l.linkProgram(this.program);for(let e in this.attributes){let t=l.getAttribLocation(this.program,e);t>=0?this.attributes[e]=t:delete this.attributes[e];}if(!l.getProgramParameter(this.program,l.LINK_STATUS))throw Error(`Program failed to link: ${l.getProgramInfoLog(this.program)}`);l.deleteShader(C),l.deleteShader(S);for(let e of v)if(e&&!w[e]){let t=l.getUniformLocation(this.program,e);t&&(w[e]=t);}this.fixedUniforms=r(e,w),this.terrainUniforms=hc(e,w),this.projectionUniforms=Sc(e,w),this.binderUniforms=n?n.getUniforms(e,w):[];}draw(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(n),e.setStencilMode(r),e.setColorMode(i),e.setCullFace(a),s){e.activeTexture.set(y.TEXTURE2),y.bindTexture(y.TEXTURE_2D,s.depthTexture),e.activeTexture.set(y.TEXTURE3),y.bindTexture(y.TEXTURE_2D,s.texture);for(let e in this.terrainUniforms)this.terrainUniforms[e].set(s[e]);}if(c){let e=Cc(c);for(let t in this.projectionUniforms)this.projectionUniforms[t].set(e[t]);}if(o)for(let e in this.fixedUniforms)this.fixedUniforms[e].set(o[e]);h&&h.setUniforms(e,this.binderUniforms,p,{zoom:m});let b=0;switch(t){case y.LINES:b=2;break;case y.TRIANGLES:b=3;break;case y.LINE_STRIP:b=1;}for(let n of f.get())n.vaos||={},n.vaos[l]||=new mc,n.vaos[l].bind(e,this,u,h?h.getPaintVertexBuffers():[],d,n.vertexOffset,g,_,v),y.drawElements(t,n.primitiveLength*b,y.UNSIGNED_SHORT,n.primitiveOffset*b*2);}};function Ec(e,t,n){let r=1/nt(n,1,t.transform.tileZoom),i=2**n.tileID.overscaledZ,a=n.tileSize*2**t.transform.tileZoom/i,o=a*(n.tileID.canonical.x+n.tileID.wrap*i),s=a*n.tileID.canonical.y;return {u_image:0,u_texsize:n.imageAtlasTexture.size,u_scale:[r,e.fromScale,e.toScale],u_fade:e.t,u_pixel_coord_upper:[o>>16,s>>16],u_pixel_coord_lower:[o&65535,s&65535]}}function Dc(e,t,n,r){let i=n.imageManager.getPattern(e.from.toString()),a=n.imageManager.getPattern(e.to.toString()),{width:o,height:s}=n.imageManager.getPixelSize(),c=2**r.tileID.overscaledZ,l=r.tileSize*2**n.transform.tileZoom/c,d=l*(r.tileID.canonical.x+r.tileID.wrap*c),f=l*r.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[o,s],u_mix:t.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:t.fromScale,u_scale_b:t.toScale,u_tile_units_to_pixels:1/nt(r,1,n.transform.tileZoom),u_pixel_coord_upper:[d>>16,f>>16],u_pixel_coord_lower:[d&65535,f&65535]}}const Oc=(e,t)=>({u_lightpos:new ed$1(e,t.u_lightpos),u_lightpos_globe:new ed$1(e,t.u_lightpos_globe),u_lightintensity:new Qu$1(e,t.u_lightintensity),u_lightcolor:new ed$1(e,t.u_lightcolor),u_vertical_gradient:new Qu$1(e,t.u_vertical_gradient),u_opacity:new Qu$1(e,t.u_opacity),u_fill_translate:new $u$1(e,t.u_fill_translate)}),kc=(e,t)=>({u_lightpos:new ed$1(e,t.u_lightpos),u_lightpos_globe:new ed$1(e,t.u_lightpos_globe),u_lightintensity:new Qu$1(e,t.u_lightintensity),u_lightcolor:new ed$1(e,t.u_lightcolor),u_vertical_gradient:new Qu$1(e,t.u_vertical_gradient),u_height_factor:new Qu$1(e,t.u_height_factor),u_opacity:new Qu$1(e,t.u_opacity),u_fill_translate:new $u$1(e,t.u_fill_translate),u_image:new Zu$1(e,t.u_image),u_texsize:new $u$1(e,t.u_texsize),u_pixel_coord_upper:new $u$1(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new $u$1(e,t.u_pixel_coord_lower),u_scale:new ed$1(e,t.u_scale),u_fade:new Qu$1(e,t.u_fade)}),Ac=(e,t,n,r)=>{let i=e.style.light,a=i.getCartesianPosition(),o=g();i.properties.get(`anchor`)===`viewport`&&v(o,e.transform.bearingInRadians),be(a,a,o);let s=e.transform.transformLightDirection(a),c=i.properties.get(`color`);return {u_lightpos:a,u_lightpos_globe:s,u_lightintensity:i.properties.get(`intensity`),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+t,u_opacity:n,u_fill_translate:r}},jc=(e,t,n,r,i,a,o)=>Dt(Ac(e,t,n,r),Ec(a,e,o),{u_height_factor:-(2**i.overscaledZ)/o.tileSize/8}),Mc=(e,t)=>({u_fill_translate:new $u$1(e,t.u_fill_translate)}),Nc=(e,t)=>({u_image:new Zu$1(e,t.u_image),u_texsize:new $u$1(e,t.u_texsize),u_pixel_coord_upper:new $u$1(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new $u$1(e,t.u_pixel_coord_lower),u_scale:new ed$1(e,t.u_scale),u_fade:new Qu$1(e,t.u_fade),u_fill_translate:new $u$1(e,t.u_fill_translate)}),Pc=(e,t)=>({u_world:new $u$1(e,t.u_world),u_fill_translate:new $u$1(e,t.u_fill_translate)}),Fc=(e,t)=>({u_world:new $u$1(e,t.u_world),u_image:new Zu$1(e,t.u_image),u_texsize:new $u$1(e,t.u_texsize),u_pixel_coord_upper:new $u$1(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new $u$1(e,t.u_pixel_coord_lower),u_scale:new ed$1(e,t.u_scale),u_fade:new Qu$1(e,t.u_fade),u_fill_translate:new $u$1(e,t.u_fill_translate)}),Ic=(e,t,n,r)=>Dt(Ec(t,e,n),{u_fill_translate:r}),Lc=e=>({u_fill_translate:e}),Rc=(e,t)=>({u_world:e,u_fill_translate:t}),zc=(e,t,n,r,i)=>Dt(Ic(e,t,n,i),{u_world:r}),Bc=(e,t)=>({u_camera_to_center_distance:new Qu$1(e,t.u_camera_to_center_distance),u_scale_with_map:new Zu$1(e,t.u_scale_with_map),u_pitch_with_map:new Zu$1(e,t.u_pitch_with_map),u_extrude_scale:new $u$1(e,t.u_extrude_scale),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_globe_extrude_scale:new Qu$1(e,t.u_globe_extrude_scale),u_translate:new $u$1(e,t.u_translate)}),Vc=(e,t,n,r,i)=>{let a=e.transform,o,s,c=0;if(n.paint.get(`circle-pitch-alignment`)===`map`){let e=nt(t,1,a.zoom);o=true,s=[e,e],c=e/(j*2**t.tileID.overscaledZ)*2*Math.PI*i;}else o=false,s=a.pixelsToGLUnits;return {u_camera_to_center_distance:a.cameraToCenterDistance,u_scale_with_map:+(n.paint.get(`circle-pitch-scale`)===`map`),u_pitch_with_map:+o,u_device_pixel_ratio:e.pixelRatio,u_extrude_scale:s,u_globe_extrude_scale:c,u_translate:r}},Hc=(e,t)=>({u_pixel_extrude_scale:new $u$1(e,t.u_pixel_extrude_scale)}),Uc=(e,t)=>({u_viewport_size:new $u$1(e,t.u_viewport_size)}),Wc=e=>({u_pixel_extrude_scale:[1/e.width,1/e.height]}),Gc=e=>({u_viewport_size:[e.width,e.height]}),Kc=(e,t)=>({u_color:new nd$1(e,t.u_color),u_overlay:new Zu$1(e,t.u_overlay),u_overlay_scale:new Qu$1(e,t.u_overlay_scale)}),qc=(e,t=1)=>({u_color:e,u_overlay:0,u_overlay_scale:t}),Jc=(e,t)=>({u_extrude_scale:new Qu$1(e,t.u_extrude_scale),u_intensity:new Qu$1(e,t.u_intensity),u_globe_extrude_scale:new Qu$1(e,t.u_globe_extrude_scale)}),Yc=(e,t)=>({u_matrix:new od$1(e,t.u_matrix),u_world:new $u$1(e,t.u_world),u_image:new Zu$1(e,t.u_image),u_color_ramp:new Zu$1(e,t.u_color_ramp),u_opacity:new Qu$1(e,t.u_opacity)}),Xc=(e,t,n,r)=>{let i=nt(e,1,t)/(j*2**e.tileID.overscaledZ)*2*Math.PI*r;return {u_extrude_scale:nt(e,1,t),u_intensity:n,u_globe_extrude_scale:i}},Zc=(e,t,n,r)=>{let i=b();ie(i,0,e.width,e.height,0,0,1);let a=e.context.gl;return {u_matrix:i,u_world:[a.drawingBufferWidth,a.drawingBufferHeight],u_image:n,u_color_ramp:r,u_opacity:t.paint.get(`heatmap-opacity`)}},Qc=(e,t)=>({u_image:new Zu$1(e,t.u_image),u_latrange:new $u$1(e,t.u_latrange),u_exaggeration:new Qu$1(e,t.u_exaggeration),u_altitudes:new id$1(e,t.u_altitudes),u_azimuths:new id$1(e,t.u_azimuths),u_accent:new nd$1(e,t.u_accent),u_method:new Zu$1(e,t.u_method),u_shadows:new rd$1(e,t.u_shadows),u_highlights:new rd$1(e,t.u_highlights)}),$c=(e,t)=>({u_matrix:new od$1(e,t.u_matrix),u_image:new Zu$1(e,t.u_image),u_dimension:new $u$1(e,t.u_dimension),u_zoom:new Qu$1(e,t.u_zoom),u_unpack:new td$1(e,t.u_unpack)}),el=(e,t,n)=>{let r=n.paint.get(`hillshade-accent-color`),i;switch(n.paint.get(`hillshade-method`)){case `basic`:i=4;break;case `combined`:i=1;break;case `igor`:i=2;break;case `multidirectional`:i=3;break;default:i=0;}let a=n.getIlluminationProperties();for(let t=0;t<a.directionRadians.length;t++)n.paint.get(`hillshade-illumination-anchor`)===`viewport`&&(a.directionRadians[t]+=e.transform.bearingInRadians);return {u_image:0,u_latrange:nl(e,t.tileID),u_exaggeration:n.paint.get(`hillshade-exaggeration`),u_altitudes:a.altitudeRadians,u_azimuths:a.directionRadians,u_accent:r,u_method:i,u_highlights:a.highlightColor,u_shadows:a.shadowColor}},tl=(e,t)=>{let n=t.stride,r=b();return ie(r,0,j,-8192,0,0,1),E(r,r,[0,-8192,0]),{u_matrix:r,u_image:1,u_dimension:[n,n],u_zoom:e.overscaledZ,u_unpack:t.getUnpackVector()}};function nl(e,t){let n=2**t.canonical.z,r=t.canonical.y;return [new xm(0,r/n).toLngLat().lat,new xm(0,(r+1)/n).toLngLat().lat]}const rl=(e,t)=>({u_image:new Zu$1(e,t.u_image),u_unpack:new td$1(e,t.u_unpack),u_dimension:new $u$1(e,t.u_dimension),u_elevation_stops:new Zu$1(e,t.u_elevation_stops),u_color_stops:new Zu$1(e,t.u_color_stops),u_color_ramp_size:new Zu$1(e,t.u_color_ramp_size),u_opacity:new Qu$1(e,t.u_opacity)}),il=(e,t,n=0)=>({u_image:0,u_unpack:t.getUnpackVector(),u_dimension:[t.stride,t.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:n,u_opacity:e.paint.get(`color-relief-opacity`)}),al=(e,t)=>({u_translation:new $u$1(e,t.u_translation),u_ratio:new Qu$1(e,t.u_ratio),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_units_to_pixels:new $u$1(e,t.u_units_to_pixels)}),ol=(e,t)=>({u_translation:new $u$1(e,t.u_translation),u_ratio:new Qu$1(e,t.u_ratio),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_units_to_pixels:new $u$1(e,t.u_units_to_pixels),u_image:new Zu$1(e,t.u_image),u_image_height:new Qu$1(e,t.u_image_height)}),sl=(e,t)=>({u_translation:new $u$1(e,t.u_translation),u_texsize:new $u$1(e,t.u_texsize),u_ratio:new Qu$1(e,t.u_ratio),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_image:new Zu$1(e,t.u_image),u_units_to_pixels:new $u$1(e,t.u_units_to_pixels),u_scale:new ed$1(e,t.u_scale),u_fade:new Qu$1(e,t.u_fade)}),cl=(e,t)=>({u_translation:new $u$1(e,t.u_translation),u_ratio:new Qu$1(e,t.u_ratio),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_units_to_pixels:new $u$1(e,t.u_units_to_pixels),u_image:new Zu$1(e,t.u_image),u_mix:new Qu$1(e,t.u_mix),u_tileratio:new Qu$1(e,t.u_tileratio),u_crossfade_from:new Qu$1(e,t.u_crossfade_from),u_crossfade_to:new Qu$1(e,t.u_crossfade_to),u_lineatlas_width:new Qu$1(e,t.u_lineatlas_width),u_lineatlas_height:new Qu$1(e,t.u_lineatlas_height)}),ll=(e,t)=>({u_translation:new $u$1(e,t.u_translation),u_ratio:new Qu$1(e,t.u_ratio),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_units_to_pixels:new $u$1(e,t.u_units_to_pixels),u_image:new Zu$1(e,t.u_image),u_image_height:new Qu$1(e,t.u_image_height),u_tileratio:new Qu$1(e,t.u_tileratio),u_crossfade_from:new Qu$1(e,t.u_crossfade_from),u_crossfade_to:new Qu$1(e,t.u_crossfade_to),u_image_dash:new Zu$1(e,t.u_image_dash),u_mix:new Qu$1(e,t.u_mix),u_lineatlas_width:new Qu$1(e,t.u_lineatlas_width),u_lineatlas_height:new Qu$1(e,t.u_lineatlas_height)}),ul=(e,t,n,r)=>{let i=e.transform;return {u_translation:gl(e,t,n),u_ratio:r/nt(t,1,i.zoom),u_device_pixel_ratio:e.pixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},dl=(e,t,n,r,i)=>Dt(ul(e,t,n,r),{u_image:0,u_image_height:i}),fl=(e,t,n,r,i)=>{let a=e.transform,o=hl(t,a);return {u_translation:gl(e,t,n),u_texsize:t.imageAtlasTexture.size,u_ratio:r/nt(t,1,a.zoom),u_device_pixel_ratio:e.pixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},pl=(e,t,n,r,i)=>{let a=e.transform,o=hl(t,a);return Dt(ul(e,t,n,r),{u_tileratio:o,u_crossfade_from:i.fromScale,u_crossfade_to:i.toScale,u_image:0,u_mix:i.t,u_lineatlas_width:e.lineAtlas.width,u_lineatlas_height:e.lineAtlas.height})},ml=(e,t,n,r,i,a)=>{let o=e.transform,s=hl(t,o);return Dt(ul(e,t,n,r),{u_image:0,u_image_height:a,u_tileratio:s,u_crossfade_from:i.fromScale,u_crossfade_to:i.toScale,u_image_dash:1,u_mix:i.t,u_lineatlas_width:e.lineAtlas.width,u_lineatlas_height:e.lineAtlas.height})};function hl(e,t){return 1/nt(e,1,t.tileZoom)}function gl(e,t,n){return ut(e.transform,t,n.paint.get(`line-translate`),n.paint.get(`line-translate-anchor`))}const _l=(e,t)=>({u_image:new Zu$1(e,t.u_image),u_opacity:new Qu$1(e,t.u_opacity)}),vl=(e,t)=>({u_image:t,u_opacity:e}),yl=(e,t)=>({u_tl_parent:new $u$1(e,t.u_tl_parent),u_scale_parent:new Qu$1(e,t.u_scale_parent),u_buffer_scale:new Qu$1(e,t.u_buffer_scale),u_fade_t:new Qu$1(e,t.u_fade_t),u_opacity:new Qu$1(e,t.u_opacity),u_image0:new Zu$1(e,t.u_image0),u_image1:new Zu$1(e,t.u_image1),u_brightness_low:new Qu$1(e,t.u_brightness_low),u_brightness_high:new Qu$1(e,t.u_brightness_high),u_saturation_factor:new Qu$1(e,t.u_saturation_factor),u_contrast_factor:new Qu$1(e,t.u_contrast_factor),u_spin_weights:new ed$1(e,t.u_spin_weights),u_coords_top:new td$1(e,t.u_coords_top),u_coords_bottom:new td$1(e,t.u_coords_bottom)}),bl=(e,t,n,r,i)=>({u_tl_parent:e,u_scale_parent:t,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*r.paint.get(`raster-opacity`),u_image0:0,u_image1:1,u_brightness_low:r.paint.get(`raster-brightness-min`),u_brightness_high:r.paint.get(`raster-brightness-max`),u_saturation_factor:Cl(r.paint.get(`raster-saturation`)),u_contrast_factor:Sl(r.paint.get(`raster-contrast`)),u_spin_weights:xl(r.paint.get(`raster-hue-rotate`)),u_coords_top:[i[0].x,i[0].y,i[1].x,i[1].y],u_coords_bottom:[i[3].x,i[3].y,i[2].x,i[2].y]});function xl(e){e*=Math.PI/180;let t=Math.sin(e),n=Math.cos(e);return [(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}function Sl(e){return e>0?1/(1-e):1+e}function Cl(e){return e>0?1-1/(1.001-e):-e}const wl=(e,t)=>({u_is_size_zoom_constant:new Zu$1(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Zu$1(e,t.u_is_size_feature_constant),u_size_t:new Qu$1(e,t.u_size_t),u_size:new Qu$1(e,t.u_size),u_camera_to_center_distance:new Qu$1(e,t.u_camera_to_center_distance),u_pitch:new Qu$1(e,t.u_pitch),u_rotate_symbol:new Zu$1(e,t.u_rotate_symbol),u_aspect_ratio:new Qu$1(e,t.u_aspect_ratio),u_fade_change:new Qu$1(e,t.u_fade_change),u_label_plane_matrix:new od$1(e,t.u_label_plane_matrix),u_coord_matrix:new od$1(e,t.u_coord_matrix),u_is_text:new Zu$1(e,t.u_is_text),u_pitch_with_map:new Zu$1(e,t.u_pitch_with_map),u_is_along_line:new Zu$1(e,t.u_is_along_line),u_is_variable_anchor:new Zu$1(e,t.u_is_variable_anchor),u_texsize:new $u$1(e,t.u_texsize),u_texture:new Zu$1(e,t.u_texture),u_translation:new $u$1(e,t.u_translation),u_pitched_scale:new Qu$1(e,t.u_pitched_scale),u_is_offset:new Zu$1(e,t.u_is_offset)}),Tl=(e,t)=>({u_is_size_zoom_constant:new Zu$1(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Zu$1(e,t.u_is_size_feature_constant),u_size_t:new Qu$1(e,t.u_size_t),u_size:new Qu$1(e,t.u_size),u_camera_to_center_distance:new Qu$1(e,t.u_camera_to_center_distance),u_pitch:new Qu$1(e,t.u_pitch),u_rotate_symbol:new Zu$1(e,t.u_rotate_symbol),u_aspect_ratio:new Qu$1(e,t.u_aspect_ratio),u_fade_change:new Qu$1(e,t.u_fade_change),u_label_plane_matrix:new od$1(e,t.u_label_plane_matrix),u_coord_matrix:new od$1(e,t.u_coord_matrix),u_is_text:new Zu$1(e,t.u_is_text),u_pitch_with_map:new Zu$1(e,t.u_pitch_with_map),u_is_along_line:new Zu$1(e,t.u_is_along_line),u_is_variable_anchor:new Zu$1(e,t.u_is_variable_anchor),u_texsize:new $u$1(e,t.u_texsize),u_texture:new Zu$1(e,t.u_texture),u_gamma_scale:new Qu$1(e,t.u_gamma_scale),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_is_halo:new Zu$1(e,t.u_is_halo),u_is_plain:new Zu$1(e,t.u_is_plain),u_translation:new $u$1(e,t.u_translation),u_pitched_scale:new Qu$1(e,t.u_pitched_scale),u_is_offset:new Zu$1(e,t.u_is_offset)}),El=(e,t)=>({u_is_size_zoom_constant:new Zu$1(e,t.u_is_size_zoom_constant),u_is_size_feature_constant:new Zu$1(e,t.u_is_size_feature_constant),u_size_t:new Qu$1(e,t.u_size_t),u_size:new Qu$1(e,t.u_size),u_camera_to_center_distance:new Qu$1(e,t.u_camera_to_center_distance),u_pitch:new Qu$1(e,t.u_pitch),u_rotate_symbol:new Zu$1(e,t.u_rotate_symbol),u_aspect_ratio:new Qu$1(e,t.u_aspect_ratio),u_fade_change:new Qu$1(e,t.u_fade_change),u_label_plane_matrix:new od$1(e,t.u_label_plane_matrix),u_coord_matrix:new od$1(e,t.u_coord_matrix),u_is_text:new Zu$1(e,t.u_is_text),u_pitch_with_map:new Zu$1(e,t.u_pitch_with_map),u_is_along_line:new Zu$1(e,t.u_is_along_line),u_is_variable_anchor:new Zu$1(e,t.u_is_variable_anchor),u_texsize:new $u$1(e,t.u_texsize),u_texsize_icon:new $u$1(e,t.u_texsize_icon),u_texture:new Zu$1(e,t.u_texture),u_texture_icon:new Zu$1(e,t.u_texture_icon),u_gamma_scale:new Qu$1(e,t.u_gamma_scale),u_device_pixel_ratio:new Qu$1(e,t.u_device_pixel_ratio),u_is_halo:new Zu$1(e,t.u_is_halo),u_translation:new $u$1(e,t.u_translation),u_pitched_scale:new Qu$1(e,t.u_pitched_scale),u_is_offset:new Zu$1(e,t.u_is_offset)}),Dl=(e,t,n,r,i,a,o,s,c,l,u,d,f,p)=>{let m=o.transform;return {u_is_size_zoom_constant:+(e===`constant`||e===`source`),u_is_size_feature_constant:+(e===`constant`||e===`camera`),u_size_t:t?t.uSizeT:0,u_size:t?t.uSize:0,u_camera_to_center_distance:m.cameraToCenterDistance,u_pitch:m.pitch/360*2*Math.PI,u_rotate_symbol:+n,u_aspect_ratio:m.width/m.height,u_fade_change:o.options.fadeDuration?o.symbolFadeChange:1,u_label_plane_matrix:s,u_coord_matrix:c,u_is_text:+u,u_pitch_with_map:+r,u_is_along_line:i,u_is_variable_anchor:a,u_texsize:d,u_texture:0,u_translation:l,u_pitched_scale:f,u_is_offset:p}},Ol=(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m)=>{let h=o.transform;return Dt(Dl(e,t,n,r,i,a,o,s,c,l,u,d,p,m),{u_gamma_scale:r?Math.cos(h.pitch*Math.PI/180)*h.cameraToCenterDistance:1,u_device_pixel_ratio:o.pixelRatio,u_is_halo:+!!f,u_is_plain:1})},kl=(e,t,n,r,i,a,o,s,c,l,u,d,f,p)=>Dt(Ol(e,t,n,r,i,a,o,s,c,l,true,u,true,f,p),{u_texsize_icon:d,u_texture_icon:1}),Al=(e,t)=>({u_opacity:new Qu$1(e,t.u_opacity),u_color:new nd$1(e,t.u_color)}),jl=(e,t)=>({u_opacity:new Qu$1(e,t.u_opacity),u_image:new Zu$1(e,t.u_image),u_pattern_tl_a:new $u$1(e,t.u_pattern_tl_a),u_pattern_br_a:new $u$1(e,t.u_pattern_br_a),u_pattern_tl_b:new $u$1(e,t.u_pattern_tl_b),u_pattern_br_b:new $u$1(e,t.u_pattern_br_b),u_texsize:new $u$1(e,t.u_texsize),u_mix:new Qu$1(e,t.u_mix),u_pattern_size_a:new $u$1(e,t.u_pattern_size_a),u_pattern_size_b:new $u$1(e,t.u_pattern_size_b),u_scale_a:new Qu$1(e,t.u_scale_a),u_scale_b:new Qu$1(e,t.u_scale_b),u_pixel_coord_upper:new $u$1(e,t.u_pixel_coord_upper),u_pixel_coord_lower:new $u$1(e,t.u_pixel_coord_lower),u_tile_units_to_pixels:new Qu$1(e,t.u_tile_units_to_pixels)}),Ml=(e,t)=>({u_opacity:e,u_color:t}),Nl=(e,t,n,r,i)=>Dt(Dc(n,i,t,r),{u_opacity:e}),Pl=(e,t)=>({u_sun_pos:new ed$1(e,t.u_sun_pos),u_atmosphere_blend:new Qu$1(e,t.u_atmosphere_blend),u_globe_position:new ed$1(e,t.u_globe_position),u_globe_radius:new Qu$1(e,t.u_globe_radius),u_inv_proj_matrix:new od$1(e,t.u_inv_proj_matrix)}),Fl=(e,t,n,r,i)=>({u_sun_pos:e,u_atmosphere_blend:t,u_globe_position:n,u_globe_radius:r,u_inv_proj_matrix:i}),Il=(e,t)=>({u_sky_color:new nd$1(e,t.u_sky_color),u_horizon_color:new nd$1(e,t.u_horizon_color),u_horizon:new $u$1(e,t.u_horizon),u_horizon_normal:new $u$1(e,t.u_horizon_normal),u_sky_horizon_blend:new Qu$1(e,t.u_sky_horizon_blend),u_sky_blend:new Qu$1(e,t.u_sky_blend)}),Ll=(e,t,n)=>{let r=Math.cos(t.rollInRadians),i=Math.sin(t.rollInRadians),a=Dm(t),o=t.getProjectionData({overscaledTileID:null,applyGlobeMatrix:true,applyTerrainMatrix:true}).projectionTransition;return {u_sky_color:e.properties.get(`sky-color`),u_horizon_color:e.properties.get(`horizon-color`),u_horizon:[(t.width/2-a*i)*n,(t.height/2+a*r)*n],u_horizon_normal:[-i,r],u_sky_horizon_blend:e.properties.get(`sky-horizon-blend`)*t.height/2*n,u_sky_blend:o}},Rl=(e,t)=>{},zl={fillExtrusion:Oc,fillExtrusionPattern:kc,fill:Mc,fillPattern:Nc,fillOutline:Pc,fillOutlinePattern:Fc,circle:Bc,collisionBox:Hc,collisionCircle:Uc,debug:Kc,depth:Rl,clippingMask:Rl,heatmap:Jc,heatmapTexture:Yc,hillshade:Qc,hillshadePrepare:$c,colorRelief:rl,line:al,lineGradient:ol,linePattern:sl,lineSDF:cl,lineGradientSDF:ll,layerOpacity:_l,raster:yl,symbolIcon:wl,symbolSDF:Tl,symbolTextAndIcon:El,background:Al,backgroundPattern:jl,terrain:gc,terrainDepth:_c,terrainCoords:vc,atmosphere:Pl,sky:Il};var Bl=class{constructor(e,t,n){this.context=e;let r=e.gl;this.buffer=r.createBuffer(),this.dynamicDraw=!!n,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||t.freeBufferAfterUpload();}bind(){this.context.bindElementBuffer.set(this.buffer);}updateData(e){let t=this.context.gl;if(!this.dynamicDraw)throw Error(`Attempted to update data while not in dynamic mode.`);this.context.unbindVAO(),this.bind(),t.bufferSubData(t.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer);}destroy(){let e=this.context.gl;this.buffer&&(e.deleteBuffer(this.buffer),delete this.buffer);}};const Vl={Int8:`BYTE`,Uint8:`UNSIGNED_BYTE`,Int16:`SHORT`,Uint16:`UNSIGNED_SHORT`,Int32:`INT`,Uint32:`UNSIGNED_INT`,Float32:`FLOAT`};var Hl=class{constructor(e,t,n,r){this.length=t.length,this.attributes=n,this.itemSize=t.bytesPerElement,this.dynamicDraw=r,this.context=e;let i=e.gl;this.buffer=i.createBuffer(),e.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||t.freeBufferAfterUpload();}bind(){this.context.bindVertexBuffer.set(this.buffer);}updateData(e){if(e.length!==this.length)throw Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);let t=this.context.gl;this.bind(),t.bufferSubData(t.ARRAY_BUFFER,0,e.arrayBuffer);}enableAttributes(e,t){for(let n of this.attributes){let r=t.attributes[n.name];r!==void 0&&e.enableVertexAttribArray(r);}}setVertexAttribPointers(e,t,n){for(let r of this.attributes){let i=t.attributes[r.name];i!==void 0&&e.vertexAttribPointer(i,r.components,e[Vl[r.type]],false,this.itemSize,r.offset+this.itemSize*(n||0));}}destroy(){let e=this.context.gl;this.buffer&&(e.deleteBuffer(this.buffer),delete this.buffer);}},Y=class{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=false;}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default);}},Ul=class extends Y{getDefault(){return B.transparent}set(e){let t=this.current;e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a&&!this.dirty||(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=false);}},Wl=class extends Y{getDefault(){return 1}set(e){e===this.current&&!this.dirty||(this.gl.clearDepth(e),this.current=e,this.dirty=false);}},Gl=class extends Y{getDefault(){return 0}set(e){e===this.current&&!this.dirty||(this.gl.clearStencil(e),this.current=e,this.dirty=false);}},Kl=class extends Y{getDefault(){return [true,true,true,true]}set(e){let t=this.current;e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&!this.dirty||(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=false);}},ql=class extends Y{getDefault(){return true}set(e){e===this.current&&!this.dirty||(this.gl.depthMask(e),this.current=e,this.dirty=false);}},Jl=class extends Y{getDefault(){return 255}set(e){e===this.current&&!this.dirty||(this.gl.stencilMask(e),this.current=e,this.dirty=false);}},Yl=class extends Y{getDefault(){return {func:this.gl.ALWAYS,ref:0,mask:255}}set(e){let t=this.current;e.func===t.func&&e.ref===t.ref&&e.mask===t.mask&&!this.dirty||(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=false);}},Xl=class extends Y{getDefault(){let e=this.gl;return [e.KEEP,e.KEEP,e.KEEP]}set(e){let t=this.current;e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&!this.dirty||(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=false);}},Zl=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),this.current=e,this.dirty=false;}},Ql=class extends Y{getDefault(){return [0,1]}set(e){let t=this.current;e[0]===t[0]&&e[1]===t[1]&&!this.dirty||(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=false);}},$l=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),this.current=e,this.dirty=false;}},eu=class extends Y{getDefault(){return this.gl.LESS}set(e){e===this.current&&!this.dirty||(this.gl.depthFunc(e),this.current=e,this.dirty=false);}},tu=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.BLEND):t.disable(t.BLEND),this.current=e,this.dirty=false;}},nu=class extends Y{getDefault(){let e=this.gl;return [e.ONE,e.ZERO]}set(e){let t=this.current;e[0]===t[0]&&e[1]===t[1]&&!this.dirty||(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=false);}},ru=class extends Y{getDefault(){return B.transparent}set(e){let t=this.current;e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a&&!this.dirty||(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=false);}},iu=class extends Y{getDefault(){return this.gl.FUNC_ADD}set(e){e===this.current&&!this.dirty||(this.gl.blendEquation(e),this.current=e,this.dirty=false);}},au=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),this.current=e,this.dirty=false;}},ou=class extends Y{getDefault(){return this.gl.BACK}set(e){e===this.current&&!this.dirty||(this.gl.cullFace(e),this.current=e,this.dirty=false);}},su=class extends Y{getDefault(){return this.gl.CCW}set(e){e===this.current&&!this.dirty||(this.gl.frontFace(e),this.current=e,this.dirty=false);}},cu=class extends Y{getDefault(){return null}set(e){e===this.current&&!this.dirty||(this.gl.useProgram(e),this.current=e,this.dirty=false);}},lu=class extends Y{getDefault(){return this.gl.TEXTURE0}set(e){e===this.current&&!this.dirty||(this.gl.activeTexture(e),this.current=e,this.dirty=false);}},uu=class extends Y{getDefault(){let e=this.gl;return [0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){let t=this.current;e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&!this.dirty||(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=false);}},du=class extends Y{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,e),this.current=e,this.dirty=false;}},fu=class extends Y{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindRenderbuffer(t.RENDERBUFFER,e),this.current=e,this.dirty=false;}},pu=class extends Y{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindTexture(t.TEXTURE_2D,e),this.current=e,this.dirty=false;}},mu=class extends Y{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,e),this.current=e,this.dirty=false;}},hu=class extends Y{getDefault(){return null}set(e){let t=this.gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=false;}},gu=class extends Y{getDefault(){return null}set(e){e===this.current&&!this.dirty||(this.gl.bindVertexArray(e),this.current=e,this.dirty=false);}},_u=class extends Y{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=false;}},vu=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=false;}},yu=class extends Y{getDefault(){return false}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=false;}},bu=class extends Y{constructor(e,t){super(e),this.context=e,this.parent=t;}getDefault(){return null}},xu=class extends bu{setDirty(){this.dirty=true;}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),this.current=e,this.dirty=false;}},Su=class extends bu{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e),this.current=e,this.dirty=false;}},Cu=class extends bu{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e),this.current=e,this.dirty=false;}},wu=class{constructor(e,t,n,r,i){this.context=e,this.width=t,this.height=n;let a=e.gl,o=this.framebuffer=a.createFramebuffer();if(this.colorAttachment=new xu(e,o),r)this.depthAttachment=i?new Cu(e,o):new Su(e,o);else if(i)throw Error(`Stencil cannot be set without depth`)}destroy(){let e=this.context.gl,t=this.colorAttachment.get();if(t&&e.deleteTexture(t),this.depthAttachment){let t=this.depthAttachment.get();t&&e.deleteRenderbuffer(t);}e.deleteFramebuffer(this.framebuffer);}},X=class{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n;}};X.Replace=[1,0],X.disabled=new X(X.Replace,B.transparent,[false,false,false,false]),X.unblended=new X(X.Replace,B.transparent,[true,true,true,true]),X.alphaBlended=new X([1,771],B.transparent,[true,true,true,true]);var Tu=class{constructor(e){this.gl=e,this.clearColor=new Ul(this),this.clearDepth=new Wl(this),this.clearStencil=new Gl(this),this.colorMask=new Kl(this),this.depthMask=new ql(this),this.stencilMask=new Jl(this),this.stencilFunc=new Yl(this),this.stencilOp=new Xl(this),this.stencilTest=new Zl(this),this.depthRange=new Ql(this),this.depthTest=new $l(this),this.depthFunc=new eu(this),this.blend=new tu(this),this.blendFunc=new nu(this),this.blendColor=new ru(this),this.blendEquation=new iu(this),this.cullFace=new au(this),this.cullFaceSide=new ou(this),this.frontFace=new su(this),this.program=new cu(this),this.activeTexture=new lu(this),this.viewport=new uu(this),this.bindFramebuffer=new du(this),this.bindRenderbuffer=new fu(this),this.bindTexture=new pu(this),this.bindVertexBuffer=new mu(this),this.bindElementBuffer=new hu(this),this.bindVertexArray=new gu(this),this.pixelStoreUnpack=new _u(this),this.pixelStoreUnpackPremultiplyAlpha=new vu(this),this.pixelStoreUnpackFlipY=new yu(this),this.extTextureFilterAnisotropic=e.getExtension(`EXT_texture_filter_anisotropic`),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),e.getExtension(`EXT_color_buffer_half_float`),e.getExtension(`EXT_color_buffer_float`);}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault();}setDirty(){this.clearColor.dirty=true,this.clearDepth.dirty=true,this.clearStencil.dirty=true,this.colorMask.dirty=true,this.depthMask.dirty=true,this.stencilMask.dirty=true,this.stencilFunc.dirty=true,this.stencilOp.dirty=true,this.stencilTest.dirty=true,this.depthRange.dirty=true,this.depthTest.dirty=true,this.depthFunc.dirty=true,this.blend.dirty=true,this.blendFunc.dirty=true,this.blendColor.dirty=true,this.blendEquation.dirty=true,this.cullFace.dirty=true,this.cullFaceSide.dirty=true,this.frontFace.dirty=true,this.program.dirty=true,this.activeTexture.dirty=true,this.viewport.dirty=true,this.bindFramebuffer.dirty=true,this.bindRenderbuffer.dirty=true,this.bindTexture.dirty=true,this.bindVertexBuffer.dirty=true,this.bindElementBuffer.dirty=true,this.bindVertexArray.dirty=true,this.pixelStoreUnpack.dirty=true,this.pixelStoreUnpackPremultiplyAlpha.dirty=true,this.pixelStoreUnpackFlipY.dirty=true;}createIndexBuffer(e,t){return new Bl(this,e,t)}createVertexBuffer(e,t,n){return new Hl(this,e,t,n)}createRenderbuffer(e,t,n){let r=this.gl,i=r.createRenderbuffer();return this.bindRenderbuffer.set(i),r.renderbufferStorage(r.RENDERBUFFER,e,t,n),this.bindRenderbuffer.set(null),i}createFramebuffer(e,t,n,r){return new wu(this,e,t,n,r)}clear({color:e,depth:t,stencil:n}){let r=this.gl,i=0;e&&(i|=r.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([true,true,true,true])),t!==void 0&&(i|=r.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(t),this.depthMask.set(true)),n!==void 0&&(i|=r.STENCIL_BUFFER_BIT,this.clearStencil.set(n),this.stencilMask.set(255)),r.clear(i);}setCullFace(e){e.enable===false?this.cullFace.set(false):(this.cullFace.set(true),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace));}setDepthMode(e){e.func===this.gl.ALWAYS&&!e.mask?this.depthTest.set(false):(this.depthTest.set(true),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range));}setStencilMode(e){e.test.func===this.gl.ALWAYS&&!e.mask?this.stencilTest.set(false):(this.stencilTest.set(true),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask}));}setColorMode(e){Rt(e.blendFunction,X.Replace)?this.blend.set(false):(this.blend.set(true),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask);}createVertexArray(){return this.gl.createVertexArray()}deleteVertexArray(e){this.gl.deleteVertexArray(e);}unbindVAO(){this.bindVertexArray.set(null);}},Z=class{constructor(e,t,n){this.func=e,this.mask=t,this.range=n;}};Z.ReadOnly=false,Z.ReadWrite=true,Z.disabled=new Z(519,Z.ReadOnly,[0,1]);const Eu=7680;var Q=class{constructor(e,t,n,r,i,a){this.test=e,this.ref=t,this.mask=n,this.fail=r,this.depthFail=i,this.pass=a;}};Q.disabled=new Q({func:519,mask:0},0,0,Eu,Eu,Eu);const Du=1029,Ou=2305;var $=class{constructor(e,t,n){this.enable=e,this.mode=t,this.frontFace=n;}};$.disabled=new $(false,Du,Ou),$.backCCW=new $(true,Du,Ou),$.frontCCW=new $(true,1028,Ou);let ku;function Au(e,t,n,r,i){let a=e.context,o=e.transform,s=a.gl,c=e.useProgram(`collisionBox`),l=[],u=0,f=0;for(let d of r){let r=t.getTile(d).getBucket(n);if(!r)continue;let p=i?r.textCollisionBox:r.iconCollisionBox,m=r.collisionCircleArray;m.length>0&&(l.push({circleArray:m,circleOffset:f,coord:d}),u+=m.length/4,f=u),p&&c.draw(a,s.LINES,Z.disabled,Q.disabled,e.colorModeForRenderPass(),$.disabled,Wc(e.transform),e.style.map.terrain?.getTerrainData(d),o.getProjectionData({overscaledTileID:d,applyGlobeMatrix:true,applyTerrainMatrix:true}),n.id,p.layoutVertexBuffer,p.indexBuffer,p.segments,null,e.transform.zoom,null,null,p.collisionVertexBuffer);}if(!i||!l.length)return;let p=e.useProgram(`collisionCircle`),m=new ju$1;m.resize(u*4),m._trim();let h=0;for(let e of l)for(let t=0;t<e.circleArray.length/4;t++){let n=t*4,r=e.circleArray[n+0],i=e.circleArray[n+1],a=e.circleArray[n+2],o=e.circleArray[n+3];m.emplace(h++,r,i,a,o,0),m.emplace(h++,r,i,a,o,1),m.emplace(h++,r,i,a,o,2),m.emplace(h++,r,i,a,o,3);}(!ku||ku.length<u*2)&&(ku=ju(u));let g=a.createIndexBuffer(ku,true),_=a.createVertexBuffer(m,Wg.members,true);for(let t of l){let r=Gc(e.transform);p.draw(a,s.TRIANGLES,Z.disabled,Q.disabled,e.colorModeForRenderPass(),$.disabled,r,e.style.map.terrain?.getTerrainData(t.coord),null,n.id,_,g,zu$1.simpleSegment(0,t.circleOffset*2,t.circleArray.length,t.circleArray.length/2),null,e.transform.zoom,null,null,null);}_.destroy(),g.destroy();}function ju(e){let t=e*2,n=new Nu$1;n.resize(t),n._trim();for(let e=0;e<t;e++){let t=e*6;n.uint16[t+0]=e*4+0,n.uint16[t+1]=e*4+1,n.uint16[t+2]=e*4+2,n.uint16[t+3]=e*4+2,n.uint16[t+4]=e*4+3,n.uint16[t+5]=e*4+0;}return n}const Mu=C(new Float32Array(16));function Nu(e,t,n,r,i,a){if(e.renderPass!==`translucent`)return;let{isRenderingToTexture:o}=a,s=Q.disabled,c=e.colorModeForRenderPass();(n._unevaluatedLayout.hasValue(`text-variable-anchor`)||n._unevaluatedLayout.hasValue(`text-variable-anchor-offset`))&&Fu(r,e,n,t,n.layout.get(`text-rotation-alignment`),n.layout.get(`text-pitch-alignment`),n.paint.get(`text-translate`),n.paint.get(`text-translate-anchor`),i),n.paint.get(`icon-opacity`).constantOr(1)!==0&&zu(e,t,n,r,false,n.paint.get(`icon-translate`),n.paint.get(`icon-translate-anchor`),n.layout.get(`icon-rotation-alignment`),n.layout.get(`icon-pitch-alignment`),n.layout.get(`icon-keep-upright`),s,c,o),n.paint.get(`text-opacity`).constantOr(1)!==0&&zu(e,t,n,r,true,n.paint.get(`text-translate`),n.paint.get(`text-translate-anchor`),n.layout.get(`text-rotation-alignment`),n.layout.get(`text-pitch-alignment`),n.layout.get(`text-keep-upright`),s,c,o),t.map.showCollisionBoxes&&(Au(e,t,n,r,true),Au(e,t,n,r,false));}function Pu(e,t,n,r,i,a){let{horizontalAlign:o,verticalAlign:s}=R_(e),c=-(o-.5)*t,l$1=-(s-.5)*n;return new l((c/i+r[0])*a,(l$1/i+r[1])*a)}function Fu(e,t,n,r,i,a,o,s,c){let l=t.transform,d=t.style.map.terrain,f=i===`map`,p=a===`map`;for(let i of e){let e=r.getTile(i),a=e.getBucket(n);if(!a?.text?.segments.get().length)continue;let m=a.textSizeData,h=ev(m,l.zoom),g=nt(e,1,t.transform.zoom),_=eo(f,t.transform,g),v=n.layout.get(`icon-text-fit`)!==`none`&&a.hasIconData();if(h){let t=2**(l.zoom-e.tileID.overscaledZ),n=d?(e,t)=>d.getElevation(i,e,t):null;Lu(a,f,p,c,l,_,t,h,v,ut(l,e,o,s),i.toUnwrapped(),n);}}}function Iu(e,t,n,r,i,a){let o=t.tileAnchorPoint.add(new l(t.translation[0],t.translation[1]));if(t.pitchWithMap){let e=r.mult(a);n||(e=e.rotate(-i));let s=o.add(e);return ro(s.x,s.y,t.pitchedLabelPlaneMatrix,t.getElevation).point}if(n){let n=po(t.tileAnchorPoint.x+1,t.tileAnchorPoint.y,t).point.sub(e),i=Math.atan(n.y/n.x)+(n.x<0?Math.PI:0);return e.add(r.rotate(i))}return e.add(r)}function Lu(e,t,n,r,i,a,o,s,c,l$1,u,d){let f=e.text.placedSymbolArray,p=e.text.dynamicLayoutVertexArray,m=e.icon.dynamicLayoutVertexArray,h={};p.clear();for(let m=0;m<f.length;m++){let g=f.get(m),_=e.allowVerticalPlacement&&!g.placedOrientation,v=!g.hidden&&g.crossTileID&&!_?r[g.crossTileID]:null;if(!v)bo(g.numGlyphs,p);else {let r=new l(g.anchorX,g.anchorY),f={getElevation:d,width:i.width,height:i.height,pitchedLabelPlaneMatrix:a,pitchWithMap:n,transform:i,tileAnchorPoint:r,translation:l$1,unwrappedTileID:u},m=n?ho(r.x,r.y,f):po(r.x,r.y,f),_=io(i.cameraToCenterDistance,m.signedDistanceFromCamera),y=$_(e.textSizeData,s,g)*_/24;n&&(y*=e.tilePixelRatio/o);let{width:b,height:x,anchor:S,textOffset:C,textBoxScale:w}=v,T=Pu(S,b,x,C,w,y),E=i.getPitchedTextCorrection(r.x+l$1[0],r.y+l$1[1],u),D=Iu(m.point,f,t,T,-i.bearingInRadians,E),O=e.allowVerticalPlacement&&g.placedOrientation===2?Math.PI/2:0;for(let e=0;e<g.numGlyphs;e++)iv(p,D,O);c&&g.associatedIconIndex>=0&&(h[g.associatedIconIndex]={shiftedAnchor:D,angle:O});}}if(c){m.clear();let t=e.icon.placedSymbolArray;for(let e=0;e<t.length;e++){let n=t.get(e);if(n.hidden)bo(n.numGlyphs,m);else {let t=h[e];if(!t)bo(n.numGlyphs,m);else for(let e=0;e<n.numGlyphs;e++)iv(m,t.shiftedAnchor,t.angle);}}e.icon.dynamicLayoutVertexBuffer.updateData(m);}e.text.dynamicLayoutVertexBuffer.updateData(p);}function Ru(e,t,n){return n.iconsInText&&t?`symbolTextAndIcon`:e?`symbolSDF`:`symbolIcon`}function zu(e,t,n,r,i,a,o,s,c,l,d,f,p){let m=e.context,h=m.gl,g=e.transform,_=s===`map`,v=c===`map`,y=s!==`viewport`&&n.layout.get(`symbol-placement`)!==`point`,b$1=_&&!v&&!y,x=!n.layout.get(`symbol-sort-key`).isConstant(),S=false,C=e.getDepthModeForSublayer(0,Z.ReadOnly),w=n._unevaluatedLayout.hasValue(`text-variable-anchor`)||n._unevaluatedLayout.hasValue(`text-variable-anchor-offset`),T=[],E=g.getCircleRadiusCorrection();for(let s of r){let r=t.getTile(s),c=r.getBucket(n);if(!c)continue;let d=i?c.text:c.icon;if(!d?.segments.get().length||!d.hasVisibleVertices)continue;let f=d.programConfigurations.get(n.id),m=i||c.sdfIcons,C=i?c.textSizeData:c.iconSizeData,D=v||g.pitch!==0,O=e.useProgram(Ru(m,i,c),f),ee=ev(C,g.zoom),te=e.style.map.terrain?.getTerrainData(s),A,ne=[0,0],re,ie,ae=null,oe;if(i){if(re=r.glyphAtlasTexture,ie=h.LINEAR,A=r.glyphAtlasTexture.size,c.iconsInText){ne=r.imageAtlasTexture.size,ae=r.imageAtlasTexture;let t=C.kind===`composite`||C.kind===`camera`;oe=D||e.options.rotating||e.options.zooming||t?h.LINEAR:h.NEAREST;}}else {let t=n.layout.get(`icon-size`).constantOr(0)!==1||c.iconsNeedLinear;re=r.imageAtlasTexture,ie=m||e.options.rotating||e.options.zooming||t||D?h.LINEAR:h.NEAREST,A=r.imageAtlasTexture.size;}let se=nt(r,1,e.transform.zoom),ce=eo(_,e.transform,se),le=to(v,_,e.transform,se),ue=ut(g,r,a,o),de=g.getProjectionData({overscaledTileID:s,applyGlobeMatrix:!p,applyTerrainMatrix:true}),fe=w&&c.hasTextData(),pe=n.layout.get(`icon-text-fit`)!==`none`&&fe&&c.hasIconData(),me=n._unevaluatedLayout.hasValue(`icon-offset`);if(y){let t=b();Xa(t,ce);let r=e.style.map.terrain?(t,n)=>e.style.map.terrain.getElevation(s,t,n):null;oo(c,e,i,ce,t,v,l,n.layout.get(`text-rotation-alignment`)===`map`,s.toUnwrapped(),g.width,g.height,ue,r);}let he=i&&w||pe,ge=v?ce:e.transform.clipSpaceToPixelsMatrix,_e=y||he?Mu:ge,ve=m&&n.paint.get(i?`text-halo-width`:`icon-halo-width`).constantOr(1)!==0,ye;ye=m?c.iconsInText?kl(C.kind,ee,b$1,v,y,he,e,_e,le,ue,A,ne,E,me):Ol(C.kind,ee,b$1,v,y,he,e,_e,le,ue,i,A,ve,E,me):Dl(C.kind,ee,b$1,v,y,he,e,_e,le,ue,i,A,E,me);let be={program:O,buffers:d,uniformValues:ye,projectionData:de,atlasTexture:re,atlasTextureIcon:ae,atlasInterpolation:ie,atlasInterpolationIcon:oe,isSDF:m,hasHalo:ve};if(x&&c.canOverlap){S=true;let e=d.segments.get();for(let t of e)T.push({segments:new zu$1([t]),sortKey:t.sortKey,state:be,terrainData:te});}else T.push({segments:d.segments,sortKey:0,state:be,terrainData:te});}S&&T.sort((e,t)=>e.sortKey-t.sortKey);let D=n.paint.get(i?`text-halo-width`:`icon-halo-width`).constantOr(null)??1/0,O=n.layout.get(`text-letter-spacing`).constantOr(0)*24<0||D>1;for(let t of T){let r=t.state;m.activeTexture.set(h.TEXTURE0),r.atlasTexture.bind(r.atlasInterpolation,h.CLAMP_TO_EDGE),r.atlasTextureIcon&&(m.activeTexture.set(h.TEXTURE1),r.atlasTextureIcon&&r.atlasTextureIcon.bind(r.atlasInterpolationIcon,h.CLAMP_TO_EDGE));let i=r.isSDF&&r.hasHalo;if(i){let i=r.uniformValues;i.u_is_halo=1,O&&(i.u_is_plain=0,Bu(r.buffers,t.segments,n,e,r.program,C,d,f,i,r.projectionData,t.terrainData),i.u_is_halo=0,i.u_is_plain=1);}Bu(r.buffers,t.segments,n,e,r.program,C,d,f,r.uniformValues,r.projectionData,t.terrainData),i&&!O&&(r.uniformValues.u_is_halo=0);}}function Bu(e,t,n,r,i,a,o,s,c,l,u){let d=r.context,f=d.gl;i.draw(d,f.TRIANGLES,a,o,s,$.backCCW,c,u,l,n.id,e.layoutVertexBuffer,e.indexBuffer,t,n.paint,r.transform.zoom,e.programConfigurations.get(n.id),e.dynamicLayoutVertexBuffer,e.opacityVertexBuffer);}function Vu(e,t,n,r,i){if(e.renderPass!==`translucent`)return;let{isRenderingToTexture:a}=i,o=n.paint.get(`circle-opacity`),s=n.paint.get(`circle-stroke-width`),c=n.paint.get(`circle-stroke-opacity`),l=!n.layout.get(`circle-sort-key`).isConstant();if(o.constantOr(1)===0&&(s.constantOr(1)===0||c.constantOr(1)===0))return;let u=e.context,d=u.gl,f=e.transform,p=e.getDepthModeForSublayer(0,Z.ReadOnly),m=Q.disabled,h=e.colorModeForRenderPass(),g=[],_=f.getCircleRadiusCorrection();for(let i of r){let r=t.getTile(i),o=r.getBucket(n);if(!o)continue;let s=n.paint.get(`circle-translate`),c=n.paint.get(`circle-translate-anchor`),u=ut(f,r,s,c),d=o.programConfigurations.get(n.id),p=e.useProgram(`circle`,d),m=o.layoutVertexBuffer,h=o.indexBuffer,v=e.style.map.terrain?.getTerrainData(i),y={programConfiguration:d,program:p,layoutVertexBuffer:m,indexBuffer:h,uniformValues:Vc(e,r,n,u,_),terrainData:v,projectionData:f.getProjectionData({overscaledTileID:i,applyGlobeMatrix:!a,applyTerrainMatrix:true})};if(l){let e=o.segments.get();for(let t of e)g.push({segments:new zu$1([t]),sortKey:t.sortKey,state:y});}else g.push({segments:o.segments,sortKey:0,state:y});}l&&g.sort((e,t)=>e.sortKey-t.sortKey);for(let t of g){let{programConfiguration:r,program:i,layoutVertexBuffer:a,indexBuffer:o,uniformValues:s,terrainData:c,projectionData:l}=t.state,f=t.segments;i.draw(u,d.TRIANGLES,p,m,h,$.backCCW,s,c,l,n.id,a,o,f,n.paint,e.transform.zoom,r);}}function Hu(e,t,n,r,i){if(n.paint.get(`heatmap-opacity`)===0)return;let a=e.context,{isRenderingToTexture:o,isRenderingGlobe:s}=i;if(e.style.map.terrain){for(let i of r){let r=t.getTile(i);t.hasRenderableParent(i)||(e.renderPass===`offscreen`?Gu(e,r,n,i,s):e.renderPass===`translucent`&&Ku(e,n,i,o,s));}a.viewport.set([0,0,e.width,e.height]);}else e.renderPass===`offscreen`?Uu(e,t,n,r):e.renderPass===`translucent`&&Wu(e,n);}function Uu(e,t,n,r){let i=e.context,a=i.gl,o=e.transform,s=Q.disabled,c=new X([a.ONE,a.ONE],B.transparent,[true,true,true,true]);qu(i,e,n),i.clear({color:B.transparent});for(let l of r){if(t.hasRenderableParent(l))continue;let r=t.getTile(l),u=r.getBucket(n);if(!u)continue;let d=u.programConfigurations.get(n.id),f=e.useProgram(`heatmap`,d),p=o.getProjectionData({overscaledTileID:l,applyGlobeMatrix:true,applyTerrainMatrix:false}),m=o.getCircleRadiusCorrection();f.draw(i,a.TRIANGLES,Z.disabled,s,c,$.backCCW,Xc(r,o.zoom,n.paint.get(`heatmap-intensity`),m),null,p,n.id,u.layoutVertexBuffer,u.indexBuffer,u.segments,n.paint,o.zoom,d);}i.viewport.set([0,0,e.width,e.height]);}function Wu(e,t){let n=e.context,r=n.gl;n.setColorMode(e.colorModeForRenderPass());let i=t.heatmapFbos.get(_f$1);i&&(n.activeTexture.set(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,i.colorAttachment.get()),n.activeTexture.set(r.TEXTURE1),Yu(n,t).bind(r.LINEAR,r.CLAMP_TO_EDGE),e.useProgram(`heatmapTexture`).draw(n,r.TRIANGLES,Z.disabled,Q.disabled,e.colorModeForRenderPass(),$.disabled,Zc(e,t,0,1),null,null,t.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,t.paint,e.transform.zoom));}function Gu(e,t,n,r,i){let a=e.context,o=a.gl,s=Q.disabled,c=new X([o.ONE,o.ONE],B.transparent,[true,true,true,true]),l=t.getBucket(n);if(!l)return;let u=r.key,d=n.heatmapFbos.get(u);d||(d=Ju(a,t.tileSize,t.tileSize),n.heatmapFbos.set(u,d)),a.bindFramebuffer.set(d.framebuffer),a.viewport.set([0,0,t.tileSize,t.tileSize]),a.clear({color:B.transparent});let f=l.programConfigurations.get(n.id),p=e.useProgram(`heatmap`,f,!i),m=e.transform.getProjectionData({overscaledTileID:t.tileID,applyGlobeMatrix:true,applyTerrainMatrix:true}),h=e.style.map.terrain.getTerrainData(r);p.draw(a,o.TRIANGLES,Z.disabled,s,c,$.disabled,Xc(t,e.transform.zoom,n.paint.get(`heatmap-intensity`),1),h,m,n.id,l.layoutVertexBuffer,l.indexBuffer,l.segments,n.paint,e.transform.zoom,f);}function Ku(e,t,n,r,i){let a=e.context,o=a.gl,s=e.transform;a.setColorMode(e.colorModeForRenderPass());let c=Yu(a,t),l=n.key,u=t.heatmapFbos.get(l);if(!u)return;a.activeTexture.set(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,u.colorAttachment.get()),a.activeTexture.set(o.TEXTURE1),c.bind(o.LINEAR,o.CLAMP_TO_EDGE);let d=s.getProjectionData({overscaledTileID:n,applyTerrainMatrix:i,applyGlobeMatrix:!r});e.useProgram(`heatmapTexture`).draw(a,o.TRIANGLES,Z.disabled,Q.disabled,e.colorModeForRenderPass(),$.disabled,Zc(e,t,0,1),null,d,t.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments,t.paint,s.zoom),u.destroy(),t.heatmapFbos.delete(l);}function qu(e,t,n){let r=e.gl;e.activeTexture.set(r.TEXTURE1),e.viewport.set([0,0,t.width/4,t.height/4]);let i=n.heatmapFbos.get(_f$1);i?(r.bindTexture(r.TEXTURE_2D,i.colorAttachment.get()),e.bindFramebuffer.set(i.framebuffer)):(i=Ju(e,t.width/4,t.height/4),n.heatmapFbos.set(_f$1,i));}function Ju(e,t,n){let r=e.gl,i=r.createTexture();r.bindTexture(r.TEXTURE_2D,i),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texStorage2D(r.TEXTURE_2D,1,r.RGBA16F,t,n);let a=e.createFramebuffer(t,n,false,false);return a.colorAttachment.set(i),a}function Yu(e,t){return t.colorRampTexture||=new kf$1(e,t.colorRamp,e.gl.RGBA),t.colorRampTexture}function Xu(e,t,n,r){let i=e.context,a=i.bindFramebuffer.get(),o=i.viewport.get(),[,,s,c]=o;return Zu(e,s,c),i.viewport.set([0,0,s,c]),i.clear({color:B.transparent,depth:1,stencil:0}),e.currentStencilSource=void 0,e.renderTileClippingMasks(t,n,r),{compositeTarget:a,compositeViewport:o}}function Zu(e,t,n){let r=e.context.gl;if(!e.layerOpacityFbo){let i=e.context.createFramebuffer(t,n,true,true),a=r.createTexture();r.bindTexture(r.TEXTURE_2D,a),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t,n,0,r.RGBA,r.UNSIGNED_BYTE,null),i.colorAttachment.set(a),i.depthAttachment.set(e.context.createRenderbuffer(r.DEPTH_STENCIL,t,n)),e.layerOpacityFbo=i,e.context.bindFramebuffer.set(e.layerOpacityFbo.framebuffer);return}if(e.layerOpacityFbo.width===t&&e.layerOpacityFbo.height===n){e.context.bindFramebuffer.set(e.layerOpacityFbo.framebuffer);return}let i=e.layerOpacityFbo;r.bindTexture(r.TEXTURE_2D,i.colorAttachment.get()),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t,n,0,r.RGBA,r.UNSIGNED_BYTE,null),e.context.bindRenderbuffer.set(i.depthAttachment.get()),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,t,n),e.context.bindRenderbuffer.set(null),i.width=t,i.height=n,e.context.bindFramebuffer.set(i.framebuffer);}function Qu(e,t,n,r){let i=e.context,a=i.gl;i.bindFramebuffer.set(n.compositeTarget),i.viewport.set(n.compositeViewport),i.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.layerOpacityFbo.colorAttachment.get()),e.useProgram(`layerOpacity`).draw(i,a.TRIANGLES,Z.disabled,Q.disabled,e.colorModeForRenderPass(),$.disabled,vl(t,0),null,null,r.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,r.paint,e.transform.zoom),e.currentStencilSource=void 0;}function $u(e,t,n,r,i,a,o,s){let c=256;if(i.stepInterpolant){let r=t.getSource().maxzoom,i=o.canonical.z===r?Math.ceil(1<<e.transform.maxZoom-o.canonical.z):1,s=a.maxLineLength/j*1024*i;c=Tt(Mt(s),256,n.maxTextureSize);}return s.gradient=gf$1({expression:i.gradientExpression(),evaluationKey:`lineProgress`,resolution:c,image:s.gradient||void 0,clips:a.lineClipsArray}),s.texture?s.texture.update(s.gradient):s.texture=new kf$1(n,s.gradient,r.RGBA),s.version=i.gradientVersion,s.texture}function ed(e,t,n,r,i){e.activeTexture.set(t.TEXTURE0),n.imageAtlasTexture.bind(t.LINEAR,t.CLAMP_TO_EDGE),r.updatePaintBuffers(i);}function td(e,t,n,r,i,a){(i||e.lineAtlas.dirty)&&(t.activeTexture.set(n.TEXTURE0),e.lineAtlas.bind(t)),r.updatePaintBuffers(a);}function nd(e,t,n,r,i,a,o){let s=a.gradients[i.id],c=s.texture;i.gradientVersion!==s.version&&(c=$u(e,t,n,r,i,a,o,s)),n.activeTexture.set(r.TEXTURE0),c.bind(i.stepInterpolant?r.NEAREST:r.LINEAR,r.CLAMP_TO_EDGE);}function rd(e,t,n,r,i,a,o,s,c){let l=a.gradients[i.id],u=l.texture;i.gradientVersion!==l.version&&(u=$u(e,t,n,r,i,a,o,l)),n.activeTexture.set(r.TEXTURE0),u.bind(i.stepInterpolant?r.NEAREST:r.LINEAR,r.CLAMP_TO_EDGE),n.activeTexture.set(r.TEXTURE1),e.lineAtlas.bind(n),s.updatePaintBuffers(c);}function id(e,t,n,r,i){if(e.renderPass!==`translucent`)return;let a=n.paint.get(`line-opacity`),o=n.paint.get(`line-width`),s=n.paint.get(`line-layer-opacity`);if(a.constantOr(1)===0||o.constantOr(1)===0||s===0)return;let c=!!e.style.map.terrain;if(s<1){let a=Xu(e,n,r,c);ad(e,t,n,r,i,c),Qu(e,s,a,n);return}ad(e,t,n,r,i,c);}function ad(e,t,n,r,i,a){let{isRenderingToTexture:o}=i,s=e.getDepthModeForSublayer(0,Z.ReadOnly),c=e.colorModeForRenderPass(),l=n.paint.get(`line-dasharray`),u=l.constantOr(1),d=n.paint.get(`line-pattern`),f=d.constantOr(1),p=n.paint.get(`line-gradient`),m=n.getCrossfadeParameters(),h;h=f?`linePattern`:u&&p?`lineGradientSDF`:u?`lineSDF`:p?`lineGradient`:`line`;let g=e.context,_=g.gl,v=e.transform,y=true;for(let i of r){let r=t.getTile(i);if(f&&!r.patternsLoaded())continue;let b=r.getBucket(n);if(!b)continue;let x=b.programConfigurations.get(n.id),S=e.context.program.get(),C=e.useProgram(h,x),w=y||C.program!==S,T=a?e.getTerrainDataForTile(i,o):null,E=d.constantOr(null),D=l?.constantOr(null);if(E&&r.imageAtlas){let e=r.imageAtlas,t=e.patternPositions[E.to.toString()],n=e.patternPositions[E.from.toString()];t&&n&&x.setConstantPatternPositions(t,n);}else if(D){let t=n.layout.get(`line-cap`).constantOr(null)===`round`,r=e.lineAtlas.getDash(D.to,t),i=e.lineAtlas.getDash(D.from,t);x.setConstantDashPositions(r,i);}let O=v.getProjectionData({overscaledTileID:i,applyGlobeMatrix:!o,applyTerrainMatrix:true}),k=v.getPixelScale(),ee;f?(ee=fl(e,r,n,k,m),ed(g,_,r,x,m)):u&&p?(ee=ml(e,r,n,k,m,b.lineClipsArray.length),rd(e,t,g,_,n,b,i,x,m)):u?(ee=pl(e,r,n,k,m),td(e,g,_,x,w,m)):p?(ee=dl(e,r,n,k,b.lineClipsArray.length),nd(e,t,g,_,n,b,i)):ee=ul(e,r,n,k);let te=e.stencilModeForClipping(i);C.draw(g,_.TRIANGLES,s,te,c,$.disabled,ee,T,O,n.id,b.layoutVertexBuffer,b.indexBuffer,b.segments,n.paint,e.transform.zoom,x,b.layoutVertexBuffer2),y=false;}}function od(e,t,n,r,i){if(!n||!r?.imageAtlas)return;let a=r.imageAtlas.patternPositions,o=a[n.to.toString()],s=a[n.from.toString()];if(!o&&s&&(o=s),!s&&o&&(s=o),!o||!s){let e=i.getPaintProperty(t);o=a[e],s=a[e];}o&&s&&e.setConstantPatternPositions(o,s);}function sd(e,t,n,r,i){let a=n.paint.get(`fill-color`),o=n.paint.get(`fill-opacity`),s=n.paint.get(`fill-layer-opacity`);if(o.constantOr(1)===0||s===0)return;if(s<1){if(e.renderPass!==`translucent`)return;let a=Xu(e,n,r,!!e.style.map.terrain);cd(e,t,n,r,i),Qu(e,s,a,n);return}let c=n.paint.get(`fill-pattern`),l=e.opaquePassEnabledForLayer()&&!c.constantOr(1)&&a.constantOr(B.transparent).a===1&&o.constantOr(0)===1;if(l&&e.renderPass===`opaque`){let{isRenderingToTexture:a}=i,o=e.colorModeForRenderPass();ud(e,t,n,r,e.getDepthModeForSublayer(1,Z.ReadWrite),o,false,a);return}if(l&&e.renderPass===`translucent`){ld(e,t,n,r,i);return}e.renderPass===`translucent`&&cd(e,t,n,r,i);}function cd(e,t,n,r,i){let{isRenderingToTexture:a}=i,o=e.colorModeForRenderPass();ud(e,t,n,r,e.getDepthModeForSublayer(1,Z.ReadOnly),o,false,a),ld(e,t,n,r,i);}function ld(e,t,n,r,i){if(!n.paint.get(`fill-antialias`))return;let{isRenderingToTexture:a}=i,o=e.colorModeForRenderPass();ud(e,t,n,r,e.getDepthModeForSublayer(n.getPaintProperty(`fill-outline-color`)?2:0,Z.ReadOnly),o,true,a);}function ud(e,t,n,r,i,a,o,s){let c=e.context.gl,l=`fill-pattern`,u=n.paint.get(l),d=u?.constantOr(1),f=n.getCrossfadeParameters(),p,m,h,g,_,v=e.transform,y=n.paint.get(`fill-translate`),b=n.paint.get(`fill-translate-anchor`);o?(m=d&&!n.getPaintProperty(`fill-outline-color`)?`fillOutlinePattern`:`fillOutline`,p=c.LINES):(m=d?`fillPattern`:`fill`,p=c.TRIANGLES);let x=u.constantOr(null);for(let u of r){let r=t.getTile(u);if(d&&!r.patternsLoaded())continue;let S=r.getBucket(n);if(!S)continue;let C=S.programConfigurations.get(n.id),w=e.useProgram(m,C),T=e.getTerrainDataForTile(u,s);d&&(e.context.activeTexture.set(c.TEXTURE0),r.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),C.updatePaintBuffers(f)),od(C,l,x,r,n);let E=v.getProjectionData({overscaledTileID:u,applyGlobeMatrix:!s,applyTerrainMatrix:true}),D=ut(v,r,y,b);if(!o)g=S.indexBuffer,_=S.segments,h=d?Ic(e,f,r,D):Lc(D);else {g=S.indexBuffer2,_=S.segments2;let t=[c.drawingBufferWidth,c.drawingBufferHeight];h=m===`fillOutlinePattern`&&d?zc(e,f,r,t,D):Rc(t,D);}let O=e.stencilModeForClipping(u);w.draw(e.context,p,i,O,a,$.backCCW,h,T,E,n.id,S.layoutVertexBuffer,g,_,n.paint,e.transform.zoom,C);}}function dd(e,t,n,r,i){let a=n.paint.get(`fill-extrusion-opacity`);if(a===0)return;let{isRenderingToTexture:o}=i;if(e.renderPass===`translucent`){let i=new Z(e.context.gl.LEQUAL,Z.ReadWrite,e.depthRangeFor3D);if(a===1&&!n.paint.get(`fill-extrusion-pattern`).constantOr(1)){let a=e.colorModeForRenderPass();fd(e,t,n,r,i,Q.disabled,a,o);}else fd(e,t,n,r,i,Q.disabled,X.disabled,o),fd(e,t,n,r,i,e.stencilModeFor3D(),e.colorModeForRenderPass(),o);}}function fd(e,t,n,r,i,a,o,s){let c=e.context,l=c.gl,u=`fill-extrusion-pattern`,d=n.paint.get(u),f=d.constantOr(1),p=n.getCrossfadeParameters(),m=n.paint.get(`fill-extrusion-opacity`),h=d.constantOr(null),g=e.transform;for(let d of r){let r=t.getTile(d),_=r.getBucket(n);if(!_)continue;let v=e.style.map.terrain?.getTerrainData(d),y=_.programConfigurations.get(n.id),b=e.useProgram(f?`fillExtrusionPattern`:`fillExtrusion`,y);f&&(e.context.activeTexture.set(l.TEXTURE0),r.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),y.updatePaintBuffers(p));let x=g.getProjectionData({overscaledTileID:d,applyGlobeMatrix:!s,applyTerrainMatrix:true});od(y,u,h,r,n);let S=ut(g,r,n.paint.get(`fill-extrusion-translate`),n.paint.get(`fill-extrusion-translate-anchor`)),C=n.paint.get(`fill-extrusion-vertical-gradient`),w=f?jc(e,C,m,S,d,p,r):Ac(e,C,m,S);b.draw(c,c.gl.TRIANGLES,i,a,o,$.backCCW,w,v,x,n.id,_.layoutVertexBuffer,_.indexBuffer,_.segments,n.paint,e.transform.zoom,y,e.style.map.terrain&&_.centroidVertexBuffer);}}function pd(e,t,n,r,i){if(e.renderPass!==`offscreen`&&e.renderPass!==`translucent`)return;let{isRenderingToTexture:a}=i,o=e.context,s=e.style.projection.useSubdivision,c=e.getDepthModeForSublayer(0,Z.ReadOnly),l=e.colorModeForRenderPass();if(e.renderPass===`offscreen`)hd(e,t,r,n,c,Q.disabled,l),o.viewport.set([0,0,e.width,e.height]);else if(e.renderPass===`translucent`)if(s){let[i,o,s]=e.stencilConfigForOverlapTwoPass(r);md(e,t,n,s,i,c,l,false,a),md(e,t,n,s,o,c,l,true,a);}else {let[i,o]=e.getStencilConfigForOverlapAndUpdateStencilID(r);md(e,t,n,o,i,c,l,false,a);}}function md(e,t,n,r,i,a,o,s,c){let l=e.style.projection,u=e.context,d=e.transform,f=u.gl,p=[`#define NUM_ILLUMINATION_SOURCES ${n.paint.get(`hillshade-highlight-color`).values.length}`],m=e.useProgram(`hillshade`,null,false,p),h=!e.options.moving;for(let p of r){let r=t.getTile(p),g=r.fbo;if(!g)continue;let _=l.getMeshFromTileID(u,p.canonical,s,true,`raster`),v=e.getTerrainDataForTile(p,c);u.activeTexture.set(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,g.colorAttachment.get());let y=d.getProjectionData({overscaledTileID:p,aligned:h,applyGlobeMatrix:!c,applyTerrainMatrix:true});m.draw(u,f.TRIANGLES,a,i[p.overscaledZ],o,$.backCCW,el(e,r,n),v,y,n.id,_.vertexBuffer,_.indexBuffer,_.segments);}}function hd(e,t,n,r,i,a,o){let s=e.context,c=s.gl,l=r.paint.get(`resampling`)===`nearest`?c.NEAREST:c.LINEAR;for(let u of n){let n=t.getTile(u),d=n.dem;if(!d?.data||!n.needsHillshadePrepare)continue;let f=d.dim,p=d.stride,m=d.getPixels();if(s.activeTexture.set(c.TEXTURE1),s.pixelStoreUnpackPremultiplyAlpha.set(false),n.demTexture||=e.getTileTexture(p),n.demTexture){let e=n.demTexture;e.update(m,{premultiply:false}),e.bind(c.NEAREST,c.CLAMP_TO_EDGE);}else n.demTexture=new kf$1(s,m,c.RGBA,{premultiply:false}),n.demTexture.bind(c.NEAREST,c.CLAMP_TO_EDGE);s.activeTexture.set(c.TEXTURE0);let h=n.fbo;if(!h){let e=new kf$1(s,{width:f,height:f,data:null},c.RGBA);e.bind(l,c.CLAMP_TO_EDGE),h=n.fbo=s.createFramebuffer(f,f,true,false),h.colorAttachment.set(e.texture);}s.bindFramebuffer.set(h.framebuffer),s.viewport.set([0,0,f,f]),e.useProgram(`hillshadePrepare`).draw(s,c.TRIANGLES,i,a,o,$.disabled,tl(n.tileID,d),null,null,r.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),n.needsHillshadePrepare=false;}}function gd(e,t,n,r,i){if(e.renderPass!==`translucent`||!r.length)return;let{isRenderingToTexture:a}=i,o=e.style.projection.useSubdivision,s=e.getDepthModeForSublayer(0,Z.ReadOnly),c=e.colorModeForRenderPass();if(o){let[i,o,l]=e.stencilConfigForOverlapTwoPass(r);vd(e,t,n,l,i,s,c,false,a),vd(e,t,n,l,o,s,c,true,a);}else {let[i,o]=e.getStencilConfigForOverlapAndUpdateStencilID(r);vd(e,t,n,o,i,s,c,false,a);}}let _d=0;function vd(e,t,n,r,i,a,o,s,c){let l=e.style.projection,u=e.context,d=e.transform,f=u.gl,p=e.useProgram(`colorRelief`),m=!e.options.moving,h=n.paint.get(`resampling`)===`nearest`?f.NEAREST:f.LINEAR,g=true,_=0;for(let v of r){let r=t.getTile(v),y=r.dem;if(g){_d||=f.getParameter(f.MAX_TEXTURE_SIZE);let e=_d,{elevationTexture:t,colorTexture:r}=n.getColorRampTextures(u,e,y.getUnpackVector());u.activeTexture.set(f.TEXTURE1),t.bind(f.NEAREST,f.CLAMP_TO_EDGE),u.activeTexture.set(f.TEXTURE4),r.bind(f.LINEAR,f.CLAMP_TO_EDGE),g=false,_=t.size[0];}if(!y?.data)continue;let b=y.stride,x=y.getPixels();if(u.activeTexture.set(f.TEXTURE0),u.pixelStoreUnpackPremultiplyAlpha.set(false),r.demTexture||=e.getTileTexture(b),r.demTexture){let e=r.demTexture;e.update(x,{premultiply:false}),e.bind(h,f.CLAMP_TO_EDGE);}else r.demTexture=new kf$1(u,x,f.RGBA,{premultiply:false}),r.demTexture.bind(h,f.CLAMP_TO_EDGE);let S=l.getMeshFromTileID(u,v.canonical,s,true,`raster`),C=e.getTerrainDataForTile(v,c),w=d.getProjectionData({overscaledTileID:v,aligned:m,applyGlobeMatrix:!c,applyTerrainMatrix:true});p.draw(u,f.TRIANGLES,a,i[v.overscaledZ],o,$.backCCW,il(n,r.dem,_),C,w,n.id,S.vertexBuffer,S.indexBuffer,S.segments);}}const yd=[new l(0,0),new l(j,0),new l(j,j),new l(0,j)];function bd(e,t,n,r,i){if(e.renderPass!==`translucent`||n.paint.get(`raster-opacity`)===0||!r.length)return;let{isRenderingToTexture:a}=i,o=t.getSource(),s=e.style.projection.useSubdivision;if(o instanceof ua)xd(e,t,n,r,null,false,false,o.tileCoords,o.flippedWindingOrder,a);else if(s){let[i,o,s]=e.stencilConfigForOverlapTwoPass(r);xd(e,t,n,s,i,false,true,yd,false,a),xd(e,t,n,s,o,true,true,yd,false,a);}else {let[i,o]=e.getStencilConfigForOverlapAndUpdateStencilID(r);xd(e,t,n,o,i,false,true,yd,false,a);}}function xd(e,t,n,r,i,a,o,s,c=false,l=false){let u=r[r.length-1].overscaledZ,d=e.context,f=d.gl,p=e.useProgram(`raster`),m=e.transform,h=e.style.projection,g=e.colorModeForRenderPass(),_=!e.options.moving,v=n.paint.get(`raster-opacity`),y=n.paint.get(`resampling`)===`nearest`||n.paint.get(`raster-resampling`)===`nearest`?f.NEAREST:f.LINEAR,b=n.paint.get(`raster-fade-duration`),x=!!e.style.map.terrain;for(let S of r){let r=e.getDepthModeForSublayer(S.overscaledZ-u,v===1?Z.ReadWrite:Z.ReadOnly,f.LESS),C=t.getTile(S);d.activeTexture.set(f.TEXTURE0),C.texture.bind(y,f.CLAMP_TO_EDGE,f.LINEAR_MIPMAP_NEAREST),d.activeTexture.set(f.TEXTURE1);let{parentTile:w,parentScaleBy:T,parentTopLeft:E,fadeValues:D}=Sd(C,t,b,x);C.fadeOpacity=D.tileOpacity,w?(w.fadeOpacity=D.parentTileOpacity,w.texture.bind(y,f.CLAMP_TO_EDGE,f.LINEAR_MIPMAP_NEAREST)):C.texture.bind(y,f.CLAMP_TO_EDGE,f.LINEAR_MIPMAP_NEAREST),C.texture.useMipmap&&d.extTextureFilterAnisotropic&&e.transform.pitch>e.options.anisotropicFilterPitch&&f.texParameterf(f.TEXTURE_2D,d.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,d.extTextureFilterAnisotropicMax);let O=e.getTerrainDataForTile(S,l),k=m.getProjectionData({overscaledTileID:S,aligned:_,applyGlobeMatrix:!l,applyTerrainMatrix:true}),ee=bl(E,T,D.fadeMix,n,s),te=h.getMeshFromTileID(d,S.canonical,a,o,`raster`),A=i?i[S.overscaledZ]:Q.disabled;p.draw(d,f.TRIANGLES,r,A,g,c?$.frontCCW:$.backCCW,ee,O,k,n.id,te.vertexBuffer,te.indexBuffer,te.segments);}}function Sd(e,t,n,r){let i={parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:{tileOpacity:1,parentTileOpacity:1,fadeMix:{opacity:1,mix:0}}};if(n===0||r)return i;if(e.fadingParentID){let r=t.getLoadedTile(e.fadingParentID);if(!r)return i;let a=2**(r.tileID.overscaledZ-e.tileID.overscaledZ);return {parentTile:r,parentScaleBy:a,parentTopLeft:[e.tileID.canonical.x*a%1,e.tileID.canonical.y*a%1],fadeValues:Cd(e,r,n)}}return e.selfFading?{parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:wd(e,n)}:i}function Cd(e,t,n){let r=U(),i=(r-e.timeAdded)/n,a=(r-t.timeAdded)/n,o=e.fadingDirection===1,s=Tt(i,0,1),c=Tt(1-a,0,1),l=o?s:c;return {tileOpacity:l,parentTileOpacity:o?c:s,fadeMix:{opacity:1,mix:1-l}}}function wd(e,t){let n=(U()-e.timeAdded)/t,r=Tt(n,0,1);return {tileOpacity:r,fadeMix:{opacity:r,mix:0}}}function Td(e,t,n,r,i){let a=n.paint.get(`background-color`),o=n.paint.get(`background-opacity`);if(o===0)return;let{isRenderingToTexture:s}=i,c=e.context,l=c.gl,u=e.style.projection,d=e.transform,f=d.tileSize,p=n.paint.get(`background-pattern`);if(e.isPatternMissing(p))return;let m=!p&&a.a===1&&o===1&&e.opaquePassEnabledForLayer()?`opaque`:`translucent`;if(e.renderPass!==m)return;let h=Q.disabled,g=e.getDepthModeForSublayer(0,m===`opaque`?Z.ReadWrite:Z.ReadOnly),_=e.colorModeForRenderPass(),v=e.useProgram(p?`backgroundPattern`:`background`),y=r||Pa(d,{tileSize:f,terrain:e.style.map.terrain});p&&(c.activeTexture.set(l.TEXTURE0),e.imageManager.bind(e.context));let b=n.getCrossfadeParameters();for(let t of y){let r=d.getProjectionData({overscaledTileID:t,applyGlobeMatrix:!s,applyTerrainMatrix:true}),i=p?Nl(o,e,p,{tileID:t,tileSize:f},b):Ml(o,a),m=e.getTerrainDataForTile(t,s),y=u.getMeshFromTileID(c,t.canonical,false,true,`raster`);v.draw(c,l.TRIANGLES,g,h,_,$.backCCW,i,m,r,n.id,y.vertexBuffer,y.indexBuffer,y.segments);}}const Ed=new B(1,0,0,1),Dd=new B(0,1,0,1),Od=new B(0,0,1,1),kd=new B(1,0,1,1),Ad=new B(0,1,1,1);function jd(e){let t=e.transform.padding;Nd(e,e.transform.height-(t.top||0),3,Ed),Nd(e,t.bottom||0,3,Dd),Pd(e,t.left||0,3,Od),Pd(e,e.transform.width-(t.right||0),3,kd);let n=e.transform.centerPoint;Md(e,n.x,e.transform.height-n.y,Ad);}function Md(e,t,n,r){Fd(e,t-2/2,n-20/2,2,20,r),Fd(e,t-20/2,n-2/2,20,2,r);}function Nd(e,t,n,r){Fd(e,0,t+n/2,e.transform.width,n,r);}function Pd(e,t,n,r){Fd(e,t-n/2,0,n,e.transform.height,r);}function Fd(e,t,n,r,i,a){let o=e.context,s=o.gl;s.enable(s.SCISSOR_TEST),s.scissor(t*e.pixelRatio,n*e.pixelRatio,r*e.pixelRatio,i*e.pixelRatio),o.clear({color:a}),s.disable(s.SCISSOR_TEST);}function Id(e,t,n){for(let r of n)Ld(e,t,r);}function Ld(e,t,n){let r=e.context,i=r.gl,a=e.useProgram(`debug`),o=Z.disabled,s=Q.disabled,c=e.colorModeForRenderPass(),l=`$debug`,u=e.style.map.terrain?.getTerrainData(n);r.activeTexture.set(i.TEXTURE0);let d=t.getTileByID(n.key).latestRawTileData?.byteLength||0,f=Math.floor(d/1024),p=t.getTile(n).tileSize,m=512/Math.min(p,512)*(n.overscaledZ/e.transform.zoom)*.5,h=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(h+=` => ${n.overscaledZ}`),Rd(e,`${h} ${f}kB`);let g=e.transform.getProjectionData({overscaledTileID:n,applyGlobeMatrix:true,applyTerrainMatrix:true});a.draw(r,i.TRIANGLES,o,s,X.alphaBlended,$.disabled,qc(B.transparent,m),null,g,l,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments),a.draw(r,i.LINE_STRIP,o,s,c,$.disabled,qc(B.red),u,g,l,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);}function Rd(e,t){e.initDebugOverlayCanvas();let n=e.debugOverlayCanvas,r=e.context.gl,i=e.debugOverlayCanvas.getContext(`2d`);i.clearRect(0,0,n.width,n.height),i.shadowColor=`white`,i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle=`white`,i.textBaseline=`top`,i.font=`bold 36px Open Sans, sans-serif`,i.fillText(t,5,5),i.strokeText(t,5,5),e.debugOverlayTexture.update(n),e.debugOverlayTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE);}function zd(e,t){let n=null,r=Object.values(e._layers).flatMap(n=>n.source&&!n.isHidden(t)?[e.tileManagers[n.source]]:[]),i=r.filter(e=>e.getSource().type===`vector`),a=r.filter(e=>e.getSource().type!==`vector`),o=e=>{(!n||n.getSource().maxzoom<e.getSource().maxzoom)&&(n=e);};for(let e of i)o(e);if(!n)for(let e of a)o(e);return n}function Bd(e,t,n,r){let{isRenderingGlobe:i}=r,a=e.context,o=n.implementation,s=e.style.projection,c=e.transform,l=c.getProjectionDataForCustomLayer(i),u={farZ:c.farZ,nearZ:c.nearZ,fov:c.fov*Math.PI/180,modelViewProjectionMatrix:c.modelViewProjectionMatrix,projectionMatrix:c.projectionMatrix,shaderData:{variantName:s.shaderVariantName,vertexShaderPrelude:`const float PI = 3.141592653589793;\nuniform mat4 u_projection_matrix;\n${s.shaderPreludeCode.vertexSource}`,define:s.shaderDefine},defaultProjectionData:l,getProjectionData:e=>c.getProjectionData({overscaledTileID:new Fv(e.tileID.canonical.z,e.tileID.wrap??0,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),aligned:e.aligned,applyGlobeMatrix:e.applyGlobeMatrix,applyTerrainMatrix:e.applyTerrainMatrix})},d=o.renderingMode?o.renderingMode:`2d`;if(e.renderPass===`offscreen`){let t=o.prerender;t&&(e.setCustomLayerDefaults(),a.setColorMode(e.colorModeForRenderPass()),t.call(o,a.gl,u),a.setDirty(),e.setBaseState());}else if(e.renderPass===`translucent`){e.setCustomLayerDefaults(),a.setColorMode(e.colorModeForRenderPass()),a.setStencilMode(Q.disabled);let t=d===`3d`?e.getDepthModeFor3D():e.getDepthModeForSublayer(0,Z.ReadOnly);a.setDepthMode(t),o.render(a.gl,u),a.setDirty(),e.setBaseState(),a.bindFramebuffer.set(null);}}function Vd(e,t){let n=e.context,r=n.gl,i=e.transform,a=X.unblended,o=new Z(r.LEQUAL,Z.ReadWrite,[0,1]),s=t.tileManager.getRenderableTiles(),c=e.useProgram(`terrainDepth`);n.bindFramebuffer.set(t.getFramebuffer(`depth`).framebuffer),n.viewport.set([0,0,e.width/devicePixelRatio,e.height/devicePixelRatio]),n.clear({color:B.transparent,depth:1});for(let e of s){let s=t.getTerrainMesh(e.tileID),l=t.getTerrainData(e.tileID),u=i.getProjectionData({overscaledTileID:e.tileID,applyTerrainMatrix:false,applyGlobeMatrix:true}),d=bc(t.getSkirtLength(i.zoom));c.draw(n,r.TRIANGLES,o,Q.disabled,a,$.backCCW,d,l,u,`terrain`,s.vertexBuffer,s.indexBuffer,s.segments);}n.bindFramebuffer.set(null),n.viewport.set([0,0,e.width,e.height]);}function Hd(e,t){let n=e.context,r=n.gl,i=e.transform,a=X.unblended,o=new Z(r.LEQUAL,Z.ReadWrite,[0,1]),s=t.getCoordsTexture(),c=t.tileManager.getRenderableTiles(),l=e.useProgram(`terrainCoords`);n.bindFramebuffer.set(t.getFramebuffer(`coords`).framebuffer),n.viewport.set([0,0,e.width/devicePixelRatio,e.height/devicePixelRatio]),n.clear({color:B.transparent,depth:1}),t.coordsIndex=[];for(let e of c){let c=t.getTerrainMesh(e.tileID),u=t.getTerrainData(e.tileID);n.activeTexture.set(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,s.texture);let d=xc(255-t.coordsIndex.length,t.getSkirtLength(i.zoom)),f=i.getProjectionData({overscaledTileID:e.tileID,applyTerrainMatrix:false,applyGlobeMatrix:true});l.draw(n,r.TRIANGLES,o,Q.disabled,a,$.backCCW,d,u,f,`terrain`,c.vertexBuffer,c.indexBuffer,c.segments),t.coordsIndex.push(e.tileID.key);}n.bindFramebuffer.set(null),n.viewport.set([0,0,e.width,e.height]);}function Ud(e,t,n,r){let{isRenderingGlobe:i}=r,a=e.context,o=a.gl,s=e.transform,c=e.colorModeForRenderPass(),l=e.getDepthModeFor3D(),u=e.useProgram(`terrain`);a.bindFramebuffer.set(null),a.viewport.set([0,0,e.width,e.height]);for(let r of n){let n=t.getTerrainMesh(r.tileID),d=e.renderToTexture.getTexture(r),f=t.getTerrainData(r.tileID);a.activeTexture.set(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,d.texture);let p=t.getSkirtLength(s.zoom),m=s.calculateFogMatrix(r.tileID.toUnwrapped()),h=yc(p,m,e.style.sky,s.pitch,i),g=s.getProjectionData({overscaledTileID:r.tileID,applyTerrainMatrix:false,applyGlobeMatrix:true});u.draw(a,o.TRIANGLES,l,Q.disabled,c,$.backCCW,h,f,g,`terrain`,n.vertexBuffer,n.indexBuffer,n.segments);}}function Wd(e,t){if(!t.mesh){let n=new _u$1;n.emplaceBack(-1,-1),n.emplaceBack(1,-1),n.emplaceBack(1,1),n.emplaceBack(-1,1);let r=new Pu$1;r.emplaceBack(0,1,2),r.emplaceBack(0,2,3),t.mesh=new ls(e.createVertexBuffer(n,us.members),e.createIndexBuffer(r),zu$1.simpleSegment(0,0,n.length,r.length));}return t.mesh}function Gd(e,t){let n=e.context,r=n.gl,i=Ll(t,e.transform,e.pixelRatio),a=new Z(r.LEQUAL,Z.ReadWrite,[0,1]),o=Q.disabled,s=e.colorModeForRenderPass(),c=e.useProgram(`sky`),l=Wd(n,t);c.draw(n,r.TRIANGLES,a,o,s,$.disabled,i,null,void 0,`sky`,l.vertexBuffer,l.indexBuffer,l.segments);}function Kd(e,t){let n=e.getCartesianPosition();he(n,n);let r=C(new Float64Array(16));return e.properties.get(`anchor`)===`map`&&(A(r,r,t.rollInRadians),O(r,r,-t.pitchInRadians),A(r,r,t.bearingInRadians),O(r,r,t.center.lat*Math.PI/180),k(r,r,-t.center.lng*Math.PI/180)),ye(n,n,r),n}function qd(e,t,n){let r=e.context,i=r.gl,a=e.useProgram(`atmosphere`),o=new Z(i.LEQUAL,Z.ReadOnly,[0,1]),s=e.transform,c=Kd(n,e.transform),l=s.getProjectionData({overscaledTileID:null,applyGlobeMatrix:true,applyTerrainMatrix:true}),u=t.properties.get(`atmosphere-blend`)*l.projectionTransition;if(u===0)return;let d=Ws(s.worldSize,s.center.lat),f=s.inverseProjectionMatrix,p=new Float64Array(4);p[3]=1,Me(p,p,s.modelViewProjectionMatrix),p[0]/=p[3],p[1]/=p[3],p[2]/=p[3],p[3]=1,Me(p,p,f),p[0]/=p[3],p[1]/=p[3],p[2]/=p[3],p[3]=1;let m=[p[0],p[1],p[2]],h=Fl(c,u,m,d,f),g=Wd(r,t);a.draw(r,i.TRIANGLES,o,Q.disabled,X.alphaBlended,$.disabled,h,null,null,`atmosphere`,g.vertexBuffer,g.indexBuffer,g.segments);}const Jd={symbol:Nu,circle:Vu,heatmap:Hu,line:id,fill:sd,fillExtrusion:dd,hillshade:pd,colorRelief:gd,raster:bd,background:Td,sky:Gd,atmosphere:qd,custom:Bd,debug:Id,debugPadding:jd,terrainDepth:Vd,terrainCoords:Hd};var Yd=class e{constructor(e,t){this.drawFunctions=Jd,this.context=new Tu(e),this.transform=t,this.layerOpacityFbo=null,this._tileTextures={},this._rttObjectRecyclePool=[],this._rttSharedFbo=null,this.terrainFacilitator={depthDirty:true,coordsDirty:false,matrix:C(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Ka.maxOverzooming+Ka.maxUnderzooming+1,this.depthEpsilon=1/2**16,this.crossTileSymbolIndex=new Qo;}resize(e,t,n){if(this.width=Math.floor(e*n),this.height=Math.floor(t*n),this.pixelRatio=n,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let e of this.style._order)this.style._layers[e].resize();}setup(){let e=this.context,t=new _u$1;t.emplaceBack(0,0),t.emplaceBack(j,0),t.emplaceBack(0,j),t.emplaceBack(j,j),this.tileExtentBuffer=e.createVertexBuffer(t,us.members),this.tileExtentSegments=zu$1.simpleSegment(0,0,4,2);let n=new _u$1;n.emplaceBack(0,0),n.emplaceBack(j,0),n.emplaceBack(0,j),n.emplaceBack(j,j),this.debugBuffer=e.createVertexBuffer(n,us.members),this.debugSegments=zu$1.simpleSegment(0,0,4,5);let r=new yu$1;r.emplaceBack(0,0,0,0),r.emplaceBack(j,0,j,0),r.emplaceBack(0,j,0,j),r.emplaceBack(j,j,j,j),this.rasterBoundsBuffer=e.createVertexBuffer(r,pc.members),this.rasterBoundsSegments=zu$1.simpleSegment(0,0,4,2);let i=new _u$1;i.emplaceBack(0,0),i.emplaceBack(j,0),i.emplaceBack(0,j),i.emplaceBack(j,j),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(i,us.members),this.rasterBoundsSegmentsPosOnly=zu$1.simpleSegment(0,0,4,5);let a=new _u$1;a.emplaceBack(0,0),a.emplaceBack(1,0),a.emplaceBack(0,1),a.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(a,us.members),this.viewportSegments=zu$1.simpleSegment(0,0,4,2);let o=new Iu$1;o.emplaceBack(0),o.emplaceBack(1),o.emplaceBack(3),o.emplaceBack(2),o.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(o);let s=new Pu$1;s.emplaceBack(1,0,2),s.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(s);let c=this.context.gl;this.stencilClearMode=new Q({func:c.ALWAYS,mask:0},0,255,c.ZERO,c.ZERO,c.ZERO),this.tileExtentMesh=new ls(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments);}clearStencil(){let e=this.context,t=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;let n=b();ie(n,0,this.width,this.height,0,0,1),D(n,n,[t.drawingBufferWidth,t.drawingBufferHeight,0]);let r={mainMatrix:n,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:n,clipAntimeridian:false};this.useProgram(`clippingMask`,null,true).draw(e,t.TRIANGLES,Z.disabled,this.stencilClearMode,X.disabled,$.disabled,null,null,r,`$clipping`,this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}renderTileClippingMasks(e,t,n){if(this.currentStencilSource===e.source||!e.isTileClipped()||!t?.length)return;this.currentStencilSource=e.source,this.nextStencilID+t.length>256&&this.clearStencil();let r=this.context;r.setColorMode(X.disabled),r.setDepthMode(Z.disabled);let i={};for(let e of t)i[e.key]=this.nextStencilID++;this.style.projection.useSubdivision&&this._renderTileMasks(i,t,n,true),this._renderTileMasks(i,t,n,false),this._tileClippingMaskIDs=i;}_renderTileMasks(e,t,n,r){let i=this.context,a=i.gl,o=this.style.projection,s=this.transform,c=this.useProgram(`clippingMask`);for(let l of t){let t=e[l.key],u=this.getTerrainDataForTile(l,n),d=o.getMeshFromTileID(this.context,l.canonical,r,true,`stencil`),f=s.getProjectionData({overscaledTileID:l,applyGlobeMatrix:!n,applyTerrainMatrix:true});c.draw(i,a.TRIANGLES,Z.disabled,new Q({func:a.ALWAYS,mask:0},t,255,a.KEEP,a.KEEP,a.REPLACE),X.disabled,n?$.disabled:$.backCCW,null,u,f,`$clipping`,d.vertexBuffer,d.indexBuffer,d.segments);}}getTerrainDataForTile(e,t){return t&&this.style.projection?.name===`mercator`?null:this.style.map.terrain?.getTerrainData(e)||null}_renderTilesDepthBuffer(){let e=this.context,t=e.gl,n=this.style.projection,r=this.transform,i=this.useProgram(`depth`),a=this.getDepthModeFor3D(),o=Pa(r,{tileSize:r.tileSize});for(let s of o){let o=this.style.map.terrain?.getTerrainData(s),c=n.getMeshFromTileID(this.context,s.canonical,true,true,`raster`),l=r.getProjectionData({overscaledTileID:s,applyGlobeMatrix:true,applyTerrainMatrix:true});i.draw(e,t.TRIANGLES,a,Q.disabled,X.disabled,$.backCCW,null,o,l,`$clipping`,c.vertexBuffer,c.indexBuffer,c.segments);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let e=this.nextStencilID++,t=this.context.gl;return new Q({func:t.NOTEQUAL,mask:255},e,255,t.KEEP,t.KEEP,t.REPLACE)}stencilModeForClipping(e){let t=this.context.gl;return new Q({func:t.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,t.KEEP,t.KEEP,t.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){let t=this.context.gl,n=e.sort((e,t)=>t.overscaledZ-e.overscaledZ),r=n[n.length-1].overscaledZ,i=n[0].overscaledZ-r+1;if(i>1){this.currentStencilSource=void 0,this.nextStencilID+i>256&&this.clearStencil();let e={};for(let n=0;n<i;n++)e[n+r]=new Q({func:t.GEQUAL,mask:255},n+this.nextStencilID,255,t.KEEP,t.KEEP,t.REPLACE);return this.nextStencilID+=i,[e,n]}return [{[r]:Q.disabled},n]}stencilConfigForOverlapTwoPass(e){let t=this.context.gl,n=e.sort((e,t)=>t.overscaledZ-e.overscaledZ),r=n[n.length-1].overscaledZ,i=n[0].overscaledZ-r+1;if(this.clearStencil(),i>1){let e={},a={};for(let n=0;n<i;n++)e[n+r]=new Q({func:t.GREATER,mask:255},i+1+n,255,t.KEEP,t.KEEP,t.REPLACE),a[n+r]=new Q({func:t.GREATER,mask:255},1+n,255,t.KEEP,t.KEEP,t.REPLACE);return this.nextStencilID=i*2+1,[e,a,n]}return this.nextStencilID=3,[{[r]:new Q({func:t.GREATER,mask:255},2,255,t.KEEP,t.KEEP,t.REPLACE)},{[r]:new Q({func:t.GREATER,mask:255},1,255,t.KEEP,t.KEEP,t.REPLACE)},n]}colorModeForRenderPass(){let e=this.context.gl;if(this._showOverdrawInspector){let t=1/8;return new X([e.CONSTANT_COLOR,e.ONE],new B(t,t,t,0),[true,true,true,true])}return this.renderPass===`opaque`?X.unblended:X.alphaBlended}getDepthModeForSublayer(e,t,n){if(!this.opaquePassEnabledForLayer())return Z.disabled;let r=1-((1+this.currentLayer)*this.numSublayers+e)*this.depthEpsilon;return new Z(n||this.context.gl.LEQUAL,t,[r,r])}getDepthModeFor3D(){return new Z(this.context.gl.LEQUAL,Z.ReadWrite,this.depthRangeFor3D)}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(e,t){this.style=e,this.options=t,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(U()),this.imageManager.beginFrame();let n=this.style._order,r=this.style.tileManagers,i={},a={},o={},s={isRenderingToTexture:false,isRenderingGlobe:e.projection?.transitionState>0};for(let e in r){let t=r[e];t.used&&t.prepare(this.context),i[e]=t.getVisibleCoordinates(false),a[e]=i[e].slice().reverse(),o[e]=t.getVisibleCoordinates(true).reverse();}this.opaquePassCutoff=1/0;for(let e=0;e<n.length;e++){let t=n[e];if(this.style._layers[t].is3D()){this.opaquePassCutoff=e;break}}this.maybeDrawDepth(false),this.renderToTexture&&(this.renderToTexture.prepareForRender(this.style,this.transform.zoom),this.opaquePassCutoff=0),this.renderPass=`offscreen`;for(let e of n){let t=this.style._layers[e];if(!t.hasOffscreenPass()||t.isHidden(this.transform.zoom))continue;let n=a[t.source];t.type!==`custom`&&!n.length||this.renderLayer(this,r[t.source],t,n,s);}if(this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:t.showOverdrawInspector?B.black:B.transparent,depth:1}),this.clearStencil(),this.style.sky&&this.drawFunctions.sky(this,this.style.sky),this._showOverdrawInspector=t.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass=`opaque`,this.currentLayer=n.length-1;this.currentLayer>=0;this.currentLayer--){let e=this.style._layers[n[this.currentLayer]],t=r[e.source],a=i[e.source];this.renderTileClippingMasks(e,a,false),this.renderLayer(this,t,e,a,s);}this.renderPass=`translucent`;let c=false;for(this.currentLayer=0;this.currentLayer<n.length;this.currentLayer++){let e=this.style._layers[n[this.currentLayer]],t=r[e.source];if(this.renderToTexture?.renderLayer(e,s))continue;!this.opaquePassEnabledForLayer()&&!c&&(c=true,s.isRenderingGlobe&&!this.style.map.terrain&&this._renderTilesDepthBuffer());let l=(e.type===`symbol`?o:a)[e.source];this.renderTileClippingMasks(e,i[e.source],!!this.renderToTexture),this.renderLayer(this,t,e,l,s);}if(s.isRenderingGlobe&&this.drawFunctions.atmosphere(this,this.style.sky,this.style.light),this.options.showTileBoundaries){let e=zd(this.style,this.transform.zoom);e&&this.drawFunctions.debug(this,e,e.getVisibleCoordinates());}this.options.showPadding&&this.drawFunctions.debugPadding(this),this.context.setDefault();}maybeDrawDepth(e){if(!this.style?.map?.terrain)return;let t=this.terrainFacilitator.matrix,n=this.transform.modelViewProjectionMatrix,r=this.terrainFacilitator.depthDirty;r||=e?!ae(t,n):!oe(t,n),r||=this.style.map.terrain.tileManager.anyTilesAfterTime(this.terrainFacilitator.renderTime),r&&(S(t,n),this.terrainFacilitator.renderTime=U(),this.terrainFacilitator.depthDirty=false,this.terrainFacilitator.coordsDirty=true,this.drawFunctions.terrainDepth(this,this.style.map.terrain));}maybeDrawCoords(){!this.style?.map?.terrain||!this.terrainFacilitator.coordsDirty||(this.terrainFacilitator.coordsDirty=false,this.drawFunctions.terrainCoords(this,this.style.map.terrain));}renderLayer(e,t,n,r,i){if(n.isHidden(this.transform.zoom)||n.type!==`background`&&n.type!==`custom`&&!(r||[]).length)return;this.id=n.id;let a=this.drawFunctions;gv(n)?a.symbol(e,t,n,r,this.style.placement.variableOffsets,i):rf$1(n)?a.circle(e,t,n,r,i):vf$1(n)?a.heatmap(e,t,n,r,i):Lg(n)?a.line(e,t,n,r,i):$p$1(n)?a.fill(e,t,n,r,i):Km(n)?a.fillExtrusion(e,t,n,r,i):Cf$1(n)?a.hillshade(e,t,n,r,i):Mf$1(n)?a.colorRelief(e,t,n,r,i):Ol$1(n)?a.raster(e,t,n,r,i):Sv(n)?a.background(e,t,n,r,i):Tv(n)&&a.custom(e,t,n,i);}static{this.MAX_TEXTURE_POOL_SIZE_PER_BUCKET=50;}saveTileTexture(t){let n=this._tileTextures[t.size[0]];n?n.length<e.MAX_TEXTURE_POOL_SIZE_PER_BUCKET?n.push(t):t.destroy():this._tileTextures[t.size[0]]=[t];}getTileTexture(e){let t=this._tileTextures[e];return t&&t.length>0?t.pop():null}acquireRTT(e){let t=this.context.gl,n=this._rttObjectRecyclePool.pop();if(n)return n.size!==e&&(t.bindTexture(t.TEXTURE_2D,n.texture.texture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,e,0,t.RGBA,t.UNSIGNED_BYTE,null),n.texture.size=[e,e],n.size=e),n;let r=new kf$1(this.context,{width:e,height:e,data:null},t.RGBA);return r.bind(t.LINEAR,t.CLAMP_TO_EDGE),this.context.extTextureFilterAnisotropic&&t.texParameterf(t.TEXTURE_2D,this.context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this.context.extTextureFilterAnisotropicMax),{texture:r,size:e}}bindRTT(e){let t=this.context.gl,n=e.size;if(!this._rttSharedFbo){let e=this.context.createFramebuffer(n,n,true,true),r=this.context.createRenderbuffer(t.DEPTH_STENCIL,n,n);e.depthAttachment.set(r),this._rttSharedFbo={fbo:e,depthRenderbuffer:r,size:n};}this._rttSharedFbo.size!==n&&(this.context.bindRenderbuffer.set(this._rttSharedFbo.depthRenderbuffer),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,n,n),this.context.bindRenderbuffer.set(null),this._rttSharedFbo.fbo.width=n,this._rttSharedFbo.fbo.height=n,this._rttSharedFbo.size=n),this._rttSharedFbo.fbo.colorAttachment.set(e.texture.texture),this.context.bindFramebuffer.set(this._rttSharedFbo.fbo.framebuffer);}releaseRTT(e){this._rttObjectRecyclePool.push(e);}isPatternMissing(e){if(!e)return false;if(!e.from||!e.to)return true;let t=this.imageManager.getPattern(e.from.toString()),n=this.imageManager.getPattern(e.to.toString());return !t||!n}useProgram(e,t,n=false,r=[]){this.cache||={};let i=!!this.style.map.terrain,a=this.style.projection,o=n?cs.projectionMercator:a.shaderPreludeCode,s=n?ds:a.shaderDefine,c=`/${n?fs:a.shaderVariantName}`,l=t?t.cacheKey:``,u=this._showOverdrawInspector?`/overdraw`:``,d=i?`/terrain`:``,f=r?`/${r.join(`/`)}`:``,p=e+l+c+u+d+f;return this.cache[p]||=new Tc(this.context,cs[e],t,zl[e],this._showOverdrawInspector,i,o,s,r),this.cache[p]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){let e=this.context.gl;this.context.cullFace.set(false),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD);}initDebugOverlayCanvas(){if(this.debugOverlayCanvas==null){this.debugOverlayCanvas=document.createElement(`canvas`),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;let e=this.context.gl;this.debugOverlayTexture=new kf$1(this.context,this.debugOverlayCanvas,e.RGBA);}}destroy(){if(this._tileTextures){for(let e in this._tileTextures){let t=this._tileTextures[e];if(t)for(let e of t)e.destroy();}this._tileTextures={};}for(let e of this._rttObjectRecyclePool)e.texture.destroy();if(this._rttObjectRecyclePool=[],this._rttSharedFbo){this._rttSharedFbo.fbo.colorAttachment.set(null),this._rttSharedFbo.fbo.depthAttachment.set(null);let e=this.context.gl;e.deleteRenderbuffer(this._rttSharedFbo.depthRenderbuffer),e.deleteFramebuffer(this._rttSharedFbo.fbo.framebuffer),this._rttSharedFbo=null;}if(this.layerOpacityFbo?.destroy(),this.layerOpacityFbo=null,this.tileExtentBuffer&&this.tileExtentBuffer.destroy(),this.debugBuffer&&this.debugBuffer.destroy(),this.rasterBoundsBuffer&&this.rasterBoundsBuffer.destroy(),this.rasterBoundsBufferPosOnly&&this.rasterBoundsBufferPosOnly.destroy(),this.viewportBuffer&&this.viewportBuffer.destroy(),this.tileBorderIndexBuffer&&this.tileBorderIndexBuffer.destroy(),this.quadTriangleIndexBuffer&&this.quadTriangleIndexBuffer.destroy(),this.tileExtentMesh&&this.tileExtentMesh.vertexBuffer?.destroy(),this.tileExtentMesh&&this.tileExtentMesh.indexBuffer?.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.cache){for(let e in this.cache){let t=this.cache[e];t?.program&&this.context.gl.deleteProgram(t.program);}this.cache={};}this.context&&this.context.setDefault();}overLimit(){let{drawingBufferWidth:e,drawingBufferHeight:t}=this.context.gl;return this.width!==e||this.height!==t}},Xd=class extends Error{constructor(e,t){super(`WebGL2 is required to display this map. We are sorry, but it seems that your browser does not support WebGL2, a technology for rendering 3D graphics on the web. Read more on https://wiki.openstreetmap.org/wiki/This_map_requires_WebGL`),this.name=`GPUInitializationError`,this.requestedAttributes=e,this.statusMessage=t?.statusMessage??null;}};function Zd(e,t){let n=false,r=null,i,a=()=>{r=null,n&&=(e(...i),r=setTimeout(a,t),false);};return (...e)=>(n=true,i=e,r||a(),r)}var Qd=class{constructor(e){this._getHashParams=()=>new URLSearchParams(window.location.hash.replace(`#`,``)),this._getCurrentHash=()=>{let e=this._getHashParams();return this._hashName?(e.get(this._hashName)||``).split(`/`):([...e.keys()][0]??``).split(`/`)},this._onHashChange=()=>{let e=this._getCurrentHash();if(!this._isValidHash(e))return false;let t=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(e[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+e[2],+e[1]],zoom:+e[0],bearing:t,pitch:+(e[4]||0)}),true},this._updateHashUnthrottled=()=>{let e=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,e);},this._removeHash=()=>{let e=this._getHashParams();if(this._hashName)e.delete(this._hashName);else {let t=Array.from(e.keys());t.length>0&&e.delete(t[0]);}let t=decodeURIComponent(e.toString()).replace(/=&/g,`&`).replace(/=$/g,``),n=t?`#${t}`:``,r=window.location.href.replace(/(#.+)?$/,n);r=r.replace(`&&`,`&`),window.history.replaceState(window.history.state,null,r);},this._updateHash=Zd(this._updateHashUnthrottled,3e4/100),this._hashName=e&&encodeURIComponent(e);}addTo(e){return this._map=e,addEventListener(`hashchange`,this._onHashChange,false),this._map.on(`moveend`,this._updateHash),this}remove(){return removeEventListener(`hashchange`,this._onHashChange,false),this._map.off(`moveend`,this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(e){let t=this._map.getCenter(),n=Math.round(this._map.getZoom()*100)/100,r=10**Math.ceil((n*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.round(t.lng*r)/r,a=Math.round(t.lat*r)/r,o=this._map.getBearing(),s=this._map.getPitch(),c=``;if(c+=e?`/${i}/${a}/${n}`:`${n}/${a}/${i}`,(o||s)&&(c+=`/${Math.round(o*10)/10}`),s&&(c+=`/${Math.round(s)}`),this._hashName){let e=this._getHashParams();return e.set(this._hashName,c),`#${decodeURIComponent(e.toString()).replace(/=&/g,`&`).replace(/=$/g,``)}`}return `#${c}`}_isValidHash(e){if(e.length<3||e.some(e=>isNaN(+e)))return false;try{new dm(+e[2],+e[1]);}catch{return false}let t=+e[0],n=+(e[3]||0),r=+(e[4]||0);return t>=this._map.getMinZoom()&&t<=this._map.getMaxZoom()&&n>=-180&&n<=180&&r>=this._map.getMinPitch()&&r<=this._map.getMaxPitch()}};const $d={linearity:.3,easing:Ct(0,0,.3,1)},ef=Dt({deceleration:2500,maxSpeed:1400},$d),tf=Dt({deceleration:20,maxSpeed:1400},$d),nf=Dt({deceleration:1e3,maxSpeed:360},$d),rf=Dt({deceleration:1e3,maxSpeed:90},$d),af=Dt({deceleration:1e3,maxSpeed:360},$d);var of=class{constructor(e){this._map=e,this.clear();}clear(){this._inertiaBuffer=[];}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:U(),settings:e});}_drainInertiaBuffer(){let e=this._inertiaBuffer,t=U();for(;e.length>0&&t-e[0].time>160;)e.shift();}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let t={zoom:0,bearing:0,pitch:0,roll:0,pan:new l(0,0),pinchAround:void 0,around:void 0};for(let{settings:e}of this._inertiaBuffer)t.zoom+=e.zoomDelta||0,t.bearing+=e.bearingDelta||0,t.pitch+=e.pitchDelta||0,t.roll+=e.rollDelta||0,e.panDelta&&t.pan._add(e.panDelta),e.around&&(t.around=e.around),e.pinchAround&&(t.pinchAround=e.pinchAround);let n=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,r={};if(t.pan.mag()){let i=cf(t.pan.mag(),n,Dt({},ef,e||{})),a=t.pan.mult(i.amount/t.pan.mag()),o=this._map._camera.cameraHelper.handlePanInertia(a,this._map._camera.transform);r.center=o.easingCenter,r.offset=o.easingOffset,sf(r,i);}if(t.zoom){let e=cf(t.zoom,n,tf);r.zoom=Ft(this._map.getZoom()+e.amount,this._map.getZoomSnap(),e.amount),sf(r,e);}if(t.bearing){let e=cf(t.bearing,n,nf);r.bearing=this._map.getBearing()+Tt(e.amount,-179,179),sf(r,e);}if(t.pitch){let e=cf(t.pitch,n,rf);r.pitch=this._map.getPitch()+e.amount,sf(r,e);}if(t.roll){let e=cf(t.roll,n,af);r.roll=this._map.getRoll()+Tt(e.amount,-179,179),sf(r,e);}if(r.zoom||r.bearing){let e=t.pinchAround===void 0?t.around:t.pinchAround;r.around=e?this._map.unproject(e):this._map.getCenter();}return this.clear(),Dt(r,{noMoveStart:true})}};function sf(e,t){(!e.duration||e.duration<t.duration)&&(e.duration=t.duration,e.easing=t.easing);}function cf(e,t,n){let{maxSpeed:r,linearity:i,deceleration:a}=n,o=Tt(e*i/(t/1e3),-r,r),s=Math.abs(o)/(a*i);return {easing:n.easing,duration:s*1e3,amount:s/2*o}}var lf=class{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance;}reset(){delete this._mousedownPos;}wheel(e){return this._firePreventable(new Gr(this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new Ur(e.type,this._map,e))}mouseup(e){this._map.fire(new Ur(e.type,this._map,e));}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||this._map.fire(new Ur(e.type,this._map,e));}dblclick(e){return this._firePreventable(new Ur(e.type,this._map,e))}mouseover(e){this._map.fire(new Ur(e.type,this._map,e));}mouseout(e){this._map.fire(new Ur(e.type,this._map,e));}touchstart(e){return this._firePreventable(new Wr(e.type,this._map,e))}touchmove(e){this._map.fire(new Wr(e.type,this._map,e));}touchend(e){this._map.fire(new Wr(e.type,this._map,e));}touchcancel(e){this._map.fire(new Wr(e.type,this._map,e));}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return {}}isEnabled(){return true}isActive(){return false}enable(){}disable(){}},uf=class{constructor(e){this._map=e;}reset(){this._delayContextMenu=false,this._ignoreContextMenu=true,delete this._contextMenuEvent;}mousemove(e){this._map.fire(new Ur(e.type,this._map,e));}mousedown(){this._delayContextMenu=true,this._ignoreContextMenu=false;}mouseup(){this._delayContextMenu=false,this._contextMenuEvent&&(this._map.fire(new Ur(`contextmenu`,this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new Ur(e.type,this._map,e)),this._map.listens(`contextmenu`)&&e.preventDefault();}isEnabled(){return true}isActive(){return false}enable(){}disable(){}},df=class{constructor(e,t,n){this._map=e,this._tr=n,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1,t.boxZoom&&typeof t.boxZoom==`object`&&(this._boxZoomEnd=t.boxZoom.boxZoomEnd);}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=true);}disable(){this.isEnabled()&&(this._enabled=false);}mousedown(e,t){this.isEnabled()&&e.shiftKey&&e.button===0&&(W.disableDrag(),this._startPos=this._lastPos=t,this._active=true);}mousemoveWindow(e,t){if(!this._active)return;let n=t;if(this._lastPos.equals(n)||!this._box&&n.dist(this._startPos)<this._clickTolerance)return;let r=this._startPos;this._lastPos=n,this._box||(this._box=W.create(`div`,`maplibregl-boxzoom`,this._container),this._container.classList.add(`maplibregl-crosshair`),this._fireEvent(`boxzoomstart`,e));let i=Math.min(r.x,n.x),a=Math.max(r.x,n.x),o=Math.min(r.y,n.y),s=Math.max(r.y,n.y);this._box.style.transform=`translate(${i}px,${o}px)`,this._box.style.width=`${a-i}px`,this._box.style.height=`${s-o}px`;}mouseupWindow(e,t){if(!this._active||e.button!==0)return;let n=this._startPos,r=t;if(this.reset(),W.suppressClick(),n.x===r.x&&n.y===r.y)this._fireEvent(`boxzoomcancel`,e);else {if(this._map.fire(new Kr(`boxzoomend`,{originalEvent:e})),this._boxZoomEnd){this._boxZoomEnd(this._map,n,r,e);return}return {cameraAnimation:e=>e.fitScreenCoordinates(n,r,this._tr.bearing,{linear:true})}}}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent(`boxzoomcancel`,e));}reset(){this._active=false,this._container.classList.remove(`maplibregl-crosshair`),this._box&&=(this._box.remove(),null),W.enableDrag(),delete this._startPos,delete this._lastPos;}_fireEvent(e,t){return this._map.fire(new Kr(e,{originalEvent:t}))}};function ff(e,t){if(e.length!==t.length)throw Error(`The number of touches and points are not equal - touches ${e.length}, points ${t.length}`);let n={};for(let r=0;r<e.length;r++)n[e[r].identifier]=t[r];return n}function pf(e){let t=new l(0,0);for(let n of e)t._add(n);return t.div(e.length)}var mf=class{constructor(e){this.reset(),this.numTouches=e.numTouches;}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=false;}touchstart(e,t,n){(this.centroid||n.length>this.numTouches)&&(this.aborted=true),!this.aborted&&(this.startTime===void 0&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=pf(t),this.touches=ff(n,t)));}touchmove(e,t,n){if(this.aborted||!this.centroid)return;let r=ff(n,t);for(let e in this.touches){let t=this.touches[e],n=r[e];(!n||n.dist(t)>30)&&(this.aborted=true);}}touchend(e,t,n){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=true),n.length===0){let e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}},hf=class{constructor(e){this.singleTap=new mf(e),this.numTaps=e.numTaps,this.reset();}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();}touchstart(e,t,n){this.singleTap.touchstart(e,t,n);}touchmove(e,t,n){this.singleTap.touchmove(e,t,n);}touchend(e,t,n){let r=this.singleTap.touchend(e,t,n);if(r){let t=e.timeStamp-this.lastTime<500,n=!this.lastTap||this.lastTap.dist(r)<30;if((!t||!n)&&this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=r,this.count===this.numTaps)return this.reset(),r}}},gf=class{constructor(e,t){this._tr=t,this._zoomIn=new hf({numTouches:1,numTaps:2}),this._zoomOut=new hf({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=false,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(e,t,n){this._zoomIn.touchstart(e,t,n),this._zoomOut.touchstart(e,t,n);}touchmove(e,t,n){this._zoomIn.touchmove(e,t,n),this._zoomOut.touchmove(e,t,n);}touchend(e,t,n){let r=this._zoomIn.touchend(e,t,n),i=this._zoomOut.touchend(e,t,n),a=this._tr;if(r)return this._active=true,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:Ft(a.zoom+1,t.getZoomSnap()),around:a.unproject(r)},{originalEvent:e})};if(i)return this._active=true,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:Ft(a.zoom-1,t.getZoomSnap()),around:a.unproject(i)},{originalEvent:e})}}touchcancel(){this.reset();}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}},_f=class{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset();}reset(e){this._active=false,this._moved=false,delete this._lastPoint,this._moveStateManager.endMove(e);}_move(...e){let t=this._moveFunction(...e);if(t.bearingDelta||t.pitchDelta||t.rollDelta||t.around||t.panDelta)return this._active=true,t}dragStart(e,t){!this.isEnabled()||this._lastPoint||this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(t)?t[0]:t,this._activateOnStart&&this._lastPoint&&(this._active=true));}dragMove(e,t){if(!this.isEnabled())return;let n=this._lastPoint;if(!n)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e)){this.reset(e);return}let r=Array.isArray(t)?t[0]:t;if(!(!this._moved&&r.dist(n)<this._clickTolerance))return this._moved=true,this._lastPoint=r,this._move(n,r)}dragEnd(e){!this.isEnabled()||!this._lastPoint||this._moveStateManager.isValidEndEvent(e)&&(this._moved&&W.suppressClick(),this.reset(e));}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}};const vf={0:1,2:2};function yf(e,t){let n=vf[t];return e.buttons===void 0||(e.buttons&n)!==n}var bf=class{constructor(e){this._correctEvent=e.checkCorrectEvent;}startMove(e){this._eventButton=e.button;}endMove(e){delete this._eventButton;}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return !yf(e,this._eventButton)}isValidEndEvent(e){return e.button===this._eventButton}},xf=class{constructor(){this._firstTouch=void 0;}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier;}endMove(e){delete this._firstTouch;}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}},Sf=class{constructor(e=new bf({checkCorrectEvent:()=>true}),t=new xf){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=t;}_executeRelevantHandler(e,t,n){if(e instanceof MouseEvent)return t(e);if(typeof TouchEvent<`u`&&e instanceof TouchEvent)return n(e)}startMove(e){this._executeRelevantHandler(e,e=>{this.mouseMoveStateManager.startMove(e);},e=>{this.oneFingerTouchMoveStateManager.startMove(e);});}endMove(e){this._executeRelevantHandler(e,e=>{this.mouseMoveStateManager.endMove(e);},e=>{this.oneFingerTouchMoveStateManager.endMove(e);});}isValidStartEvent(e){return !!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidStartEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidStartEvent(e))}isValidMoveEvent(e){return !!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidMoveEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(e))}isValidEndEvent(e){return !!this._executeRelevantHandler(e,e=>this.mouseMoveStateManager.isValidEndEvent(e),e=>this.oneFingerTouchMoveStateManager.isValidEndEvent(e))}};const Cf=e=>{e.mousedown=e.dragStart,e.mousemoveWindow=e.dragMove,e.mouseup=e.dragEnd,e.contextmenu=e=>{e.preventDefault();};};function wf({enable:e,clickTolerance:t}){return new _f({clickTolerance:t,move:(e,t)=>({around:t,panDelta:t.sub(e)}),activateOnStart:true,moveStateManager:new bf({checkCorrectEvent:e=>e.button===0&&!e.ctrlKey}),enable:e,assignEvents:Cf})}function Tf({enable:e,clickTolerance:t,aroundCenter:n=true,minPixelCenterThreshold:r=100,rotateSpeed:i=.8},a){return new _f({clickTolerance:t,move:(e,t)=>{let o=a();if(n&&Math.abs(o.y-e.y)>r)return {bearingDelta:dn(new l(e.x,t.y),t,o)};let s=(t.x-e.x)*i;return n&&t.y<o.y&&(s=-s),{bearingDelta:s}},moveStateManager:new bf({checkCorrectEvent:e=>e.button===0&&e.ctrlKey||e.button===2&&!e.ctrlKey}),enable:e,assignEvents:Cf})}function Ef({enable:e,clickTolerance:t,pitchSpeed:n=-0.5}){return new _f({clickTolerance:t,move:(e,t)=>({pitchDelta:(t.y-e.y)*n}),moveStateManager:new bf({checkCorrectEvent:e=>e.button===0&&e.ctrlKey||e.button===2}),enable:e,assignEvents:Cf})}function Df({enable:e,clickTolerance:t,rollDegreesPerPixelMoved:n=.3},r){return new _f({clickTolerance:t,move:(e,t)=>{let i=r(),a=(t.x-e.x)*n;return t.y<i.y&&(a=-a),{rollDelta:a}},moveStateManager:new bf({checkCorrectEvent:e=>e.button===2&&e.ctrlKey}),enable:e,assignEvents:Cf})}var Of=class{constructor(e,t){this._clickTolerance=e.clickTolerance||1,this._map=t,this.reset();}reset(){this._active=false,this._touches={},this._sum=new l(0,0);}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,t,n){return this._calculateTransform(e,t,n)}touchmove(e,t,n){if(this._active){if(this._shouldBePrevented(n.length)){this._map.cooperativeGestures.notifyGestureBlocked(`touch_pan`,e);return}return e.preventDefault(),this._calculateTransform(e,t,n)}}touchend(e,t,n){this._calculateTransform(e,t,n),this._active&&this._shouldBePrevented(n.length)&&this.reset();}touchcancel(){this.reset();}_calculateTransform(e,t,n){n.length>0&&(this._active=true);let r=ff(n,t),i=new l(0,0),a=new l(0,0),o=0;for(let e in r){let t=r[e],n=this._touches[e];n&&(i._add(t),a._add(t.sub(n)),o++,r[e]=t);}if(this._touches=r,this._shouldBePrevented(o)||!a.mag())return;let s=a.div(o);if(this._sum._add(s),!(this._sum.mag()<this._clickTolerance))return {around:i.div(o),panDelta:s}}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}},kf=class{constructor(){this.reset();}reset(){this._active=false,delete this._firstTwoTouches;}touchstart(e,t,n){this._firstTwoTouches||n.length<2||(this._firstTwoTouches=[n[0].identifier,n[1].identifier],this._start([t[0],t[1]]));}touchmove(e,t,n){if(!this._firstTwoTouches)return;e.preventDefault();let[r,i]=this._firstTwoTouches,a=Af(n,t,r),o=Af(n,t,i);if(!a||!o)return;let s=this._aroundCenter?null:a.add(o).div(2);return this._move([a,o],s,e)}touchend(e,t,n){if(!this._firstTwoTouches)return;let[r,i]=this._firstTwoTouches,a=Af(n,t,r),o=Af(n,t,i);a&&o||(this._active&&W.suppressClick(),this.reset());}touchcancel(){this.reset();}enable(e){this._enabled=true,this._aroundCenter=!!e&&e.around===`center`;}disable(){this._enabled=false,this.reset();}isEnabled(){return !!this._enabled}isActive(){return !!this._active}};function Af(e,t,n){for(let r=0;r<e.length;r++)if(e[r].identifier===n)return t[r]}const jf=.1;function Mf(e,t){return Math.log(e/t)/Math.LN2}var Nf=class extends kf{constructor(){super(),this._zoomRate=1,this._zoomThreshold=jf;}setZoomRate(e){this._zoomRate=e??1;}setZoomThreshold(e){this._zoomThreshold=e??jf;}reset(){super.reset(),delete this._distance,delete this._startDistance;}_start(e){this._startDistance=this._distance=e[0].dist(e[1]);}_move(e,t){let n=this._distance;if(this._distance=e[0].dist(e[1]),!(!this._active&&Math.abs(Mf(this._distance,this._startDistance))<this._zoomThreshold))return this._active=true,{zoomDelta:Mf(this._distance,n)*this._zoomRate,pinchAround:t}}};function Pf(e,t){return e.angleWith(t)*180/Math.PI}var Ff=class extends kf{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector;}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1]);}_move(e,t,n){let r=this._vector;if(this._vector=e[0].sub(e[1]),!(!this._active&&this._isBelowThreshold(this._vector)))return this._active=true,{bearingDelta:Pf(this._vector,r),pinchAround:t}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());let t=25/(Math.PI*this._minDiameter)*360,n=Pf(e,this._startVector);return Math.abs(n)<t}};function If(e){return Math.abs(e.y)>Math.abs(e.x)}var Lf=class extends kf{constructor(e){super(),this._currentTouchCount=0,this._map=e;}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints;}touchstart(e,t,n){super.touchstart(e,t,n),this._currentTouchCount=n.length;}_start(e){this._lastPoints=e,If(e[0].sub(e[1]))&&(this._valid=false);}_move(e,t,n){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;let r=e[0].sub(this._lastPoints[0]),i=e[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(r,i,n.timeStamp),this._valid)return this._lastPoints=e,this._active=true,{pitchDelta:(r.y+i.y)/2*-0.5}}gestureBeginsVertically(e,t,n){if(this._valid!==void 0)return this._valid;let r=e.mag()>=2,i=t.mag()>=2;if(!r&&!i)return;if(!r||!i)return this._firstMove===void 0&&(this._firstMove=n),n-this._firstMove<100&&void 0;let a=e.y>0==t.y>0;return If(e)&&If(t)&&a}};const Rf={panStep:100,bearingStep:15,pitchStep:10};var zf=class{constructor(e,t){this._tr=t;let n=Rf;this._panStep=n.panStep,this._bearingStep=n.bearingStep,this._pitchStep=n.pitchStep,this._rotationDisabled=false;}reset(){this._active=false;}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,n=0,r=0,i=0,a=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?r=1:(e.preventDefault(),a=-1);break;case 40:e.shiftKey?r=-1:(e.preventDefault(),a=1);break;default:return}return this._rotationDisabled&&(n=0,r=0),{cameraAnimation:o=>{let s=this._tr;o.easeTo({duration:300,easeId:`keyboardHandler`,easing:Bf,zoom:t?Ft(s.zoom+t*(e.shiftKey?2:1),o.getZoomSnap()):s.zoom,bearing:s.bearing+n*this._bearingStep,pitch:s.pitch+r*this._pitchStep,offset:[-i*this._panStep,-a*this._panStep],center:s.center},{originalEvent:e});}}}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=true;}enableRotation(){this._rotationDisabled=false;}};function Bf(e){return e*(2-e)}const Vf=4.000244140625;var Hf=class{constructor(e,t,n){this._onTimeout=e=>{this._type=`wheel`,this._delta-=this._lastValue,this._active||this._start(e);},this._map=e,this._tr=n,this._triggerRenderFrame=t,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222;}setZoomRate(e){this._defaultZoomRate=e;}setWheelZoomRate(e){this._wheelZoomRate=e;}isEnabled(){return !!this._enabled}isActive(){return !!this._active||this._finishTimeout!==void 0}isZooming(){return !!this._zooming}enable(e){this.isEnabled()||(this._enabled=true,this._aroundCenter=!!e&&e.around===`center`);}disable(){this.isEnabled()&&(this._enabled=false);}_shouldBePrevented(e){return this._map.cooperativeGestures.isEnabled()?!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e)):false}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e)){this._map.cooperativeGestures.notifyGestureBlocked(`wheel_zoom`,e);return}let t=e.deltaMode===WheelEvent.DOM_DELTA_LINE?e.deltaY*40:e.deltaY,n=U(),r=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,t!==0&&t%Vf==0?this._type=`wheel`:t!==0&&Math.abs(t)<4?this._type=`trackpad`:r>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(r*t)<200?`trackpad`:`wheel`,this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&(this._lastWheelEvent=e,this._delta-=t,this._active||this._start(e)),e.preventDefault();}_start(e){if(!this._delta)return;this._needsRerender=false,this._active=true,this.isZooming()||(this._zooming=true),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let t=W.mousePos(this._map.getCanvas(),e),n=this._tr;this._aroundPoint=this._aroundCenter?n.transform.locationToScreenPoint(dm.convert(n.center)):t,this._needsRerender||(this._needsRerender=true,this._triggerRenderFrame());}renderFrame(){if(!this._needsRerender||(this._needsRerender=false,!this.isActive()))return;let e=this._tr.transform;if(typeof this._lastExpectedZoom==`number`){let t=e.zoom-this._lastExpectedZoom;typeof this._startZoom==`number`&&(this._startZoom+=t),typeof this._targetZoom==`number`&&(this._targetZoom+=t);}if(this._delta!==0){let t=this._type===`wheel`&&Math.abs(this._delta)>Vf?this._wheelZoomRate:this._defaultZoomRate,n=2/(1+Math.exp(-Math.abs(this._delta*t)));this._delta<0&&n!==0&&(n=1/n);let r=typeof this._targetZoom==`number`?Nt(this._targetZoom):e.scale,i=e.applyConstrain(e.getCameraLngLat(),Pt(r*n)).zoom,a=this._map.getZoomSnap();if(this._type===`wheel`&&a>0){let t=Ft(e.zoom,a);this._targetZoom=Ft(i,a,i-t);}else this._targetZoom=i;this._type===`wheel`&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}let t=typeof this._targetZoom==`number`?this._targetZoom:e.zoom,n=this._startZoom,r=this._easing,i=false,a;if(this._type===`wheel`&&n&&r){let e=U()-this._lastWheelEventTime,o=Math.min((e+5)/200,1),s=r(o);a=Ni$1.number(n,t,s),o<1?this._needsRerender=true:i=true;}else a=t,i=true;return this._active=true,i&&(this._active=false,this._finishTimeout=setTimeout(()=>{this._zooming=false,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout;},200)),this._lastExpectedZoom=a,{noInertia:true,needsRenderFrame:!i,zoomDelta:a-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let t=wt;if(this._prevEase){let e=this._prevEase,n=(U()-e.start)/e.duration,r=e.easing(n+.01)-e.easing(n),i=.27/Math.sqrt(r*r+1e-4)*.01,a=Math.sqrt(.0729-i*i);t=Ct(i,a,.25,1);}return this._prevEase={start:U(),duration:e,easing:t},t}reset(){this._active=false,this._zooming=false,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);}},Uf=class{constructor(e,t){this._clickZoom=e,this._tapZoom=t;}enable(){this._clickZoom.enable(),this._tapZoom.enable();}disable(){this._clickZoom.disable(),this._tapZoom.disable();}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}},Wf=class{constructor(e,t){this._tr=t,this.reset();}reset(){this._active=false;}dblclick(e,t){return e.preventDefault(),{cameraAnimation:n=>{n.easeTo({duration:300,zoom:Ft(this._tr.zoom+(e.shiftKey?-1:1),n.getZoomSnap()),around:this._tr.unproject(t)},{originalEvent:e});}}}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}},Gf=class{constructor(){this._tap=new hf({numTouches:1,numTaps:1}),this._zoomRate=1,this.reset();}setZoomRate(e){this._zoomRate=e??1;}reset(){this._active=false,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset();}touchstart(e,t,n){if(!this._swipePoint)if(!this._tapTime)this._tap.touchstart(e,t,n);else {let r=t[0],i=e.timeStamp-this._tapTime<500,a=this._tapPoint.dist(r)<30;!i||!a?this.reset():n.length>0&&(this._swipePoint=r,this._swipeTouch=n[0].identifier);}}touchmove(e,t,n){if(!this._tapTime)this._tap.touchmove(e,t,n);else if(this._swipePoint){if(n[0].identifier!==this._swipeTouch)return;let r=t[0],i=r.y-this._swipePoint.y;return this._swipePoint=r,e.preventDefault(),this._active=true,{zoomDelta:i/128*this._zoomRate}}}touchend(e,t,n){if(this._tapTime)this._swipePoint&&n.length===0&&this.reset();else {let r=this._tap.touchend(e,t,n);r&&(this._tapTime=e.timeStamp,this._tapPoint=r);}}touchcancel(){this.reset();}enable(){this._enabled=true;}disable(){this._enabled=false,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}},Kf=class{constructor(e,t,n){this._el=e,this._mousePan=t,this._touchPan=n;}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(`maplibregl-touch-drag-pan`);}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(`maplibregl-touch-drag-pan`);}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}},qf=class{constructor(e,t,n,r){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=t,this._mousePitch=n,this._mouseRoll=r;}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable();}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable();}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}},Jf=class{constructor(e,t,n,r){this._el=e,this._touchZoom=t,this._touchRotate=n,this._tapDragZoom=r,this._rotationDisabled=false,this._enabled=true;}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add(`maplibregl-touch-zoom-rotate`);}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(`maplibregl-touch-zoom-rotate`);}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}setZoomRate(e){this._touchZoom.setZoomRate(e),this._tapDragZoom.setZoomRate(e);}setZoomThreshold(e){this._touchZoom.setZoomThreshold(e);}disableRotation(){this._rotationDisabled=true,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=false,this._touchZoom.isEnabled()&&this._touchRotate.enable();}},Yf=class{constructor(e,t){this._bypassKey=navigator.userAgent.includes(`Mac`)?`metaKey`:`ctrlKey`,this._map=e,this._options=t,this._enabled=false;}isActive(){return false}reset(){}_setupUI(){if(this._container)return;let e=this._map.getCanvasContainer();e.classList.add(`maplibregl-cooperative-gestures`),this._container=W.create(`div`,`maplibregl-cooperative-gesture-screen`,e);let t=this._map._getUIString(`CooperativeGesturesHandler.WindowsHelpText`);this._bypassKey===`metaKey`&&(t=this._map._getUIString(`CooperativeGesturesHandler.MacHelpText`));let n=this._map._getUIString(`CooperativeGesturesHandler.MobileHelpText`),r=document.createElement(`div`);r.className=`maplibregl-desktop-message`,r.textContent=t,this._container.appendChild(r);let i=document.createElement(`div`);i.className=`maplibregl-mobile-message`,i.textContent=n,this._container.appendChild(i),this._container.setAttribute(`aria-hidden`,`true`);}_destroyUI(){this._container&&(this._container.remove(),this._map.getCanvasContainer().classList.remove(`maplibregl-cooperative-gestures`)),delete this._container;}enable(){this._setupUI(),this._enabled=true;}disable(){this._enabled=false,this._destroyUI();}isEnabled(){return this._enabled}isBypassed(e){return e[this._bypassKey]}notifyGestureBlocked(e,t){this._enabled&&(this._map.fire(new Br(`cooperativegestureprevented`,{gestureType:e,originalEvent:t})),this._container.classList.add(`maplibregl-show`),setTimeout(()=>{this._container.classList.remove(`maplibregl-show`);},100));}},Xf=class{constructor(e){this._camera=e;}get transform(){return this._camera._requestedCameraState||this._camera.transform}get center(){return {lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.screenPointToLocation(l.convert(e),this._camera.terrain)}};const Zf=e=>e.zoom||e.drag||e.roll||e.pitch||e.rotate;var Qf=class extends Bn{};function $f(e){return e.panDelta?.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta||e.rollDelta}var ep=class{get _ownerDocument(){return this._el?.ownerDocument||document}get _ownerWindow(){return this._el?.ownerDocument?.defaultView||window}constructor(e,t,n){this.handleWindowEvent=e=>{this.handleEvent(e,`${e.type}Window`);},this.handleEvent=(e,t)=>{if(e.type===`blur`){this.stop(true);return}this._updatingCamera=true;let n=e.type===`renderFrame`?void 0:e,r={needsRenderFrame:false},i={},a={};for(let{handlerName:o,handler:s,allowed:c}of this._handlers){if(!s.isEnabled())continue;let l;if(this._blockedByActive(a,c,o))s.reset();else if(s[t||e.type]){if(_n(e,t||e.type)){let n=W.mousePos(this._map.getCanvas(),e);l=s[t||e.type](e,n);}else if(gn(e,t||e.type)){let n=e.touches,r=this._getMapTouches(n),i=W.touchPos(this._map.getCanvas(),r);l=s[t||e.type](e,i,r);}else vn(t||e.type)||(l=s[t||e.type](e));this.mergeHandlerResult(r,i,l,o,n),l?.needsRenderFrame&&this._triggerRenderFrame();}(l||s.isActive())&&(a[o]=s);}let o={};for(let e in this._previousActiveHandlers)a[e]||(o[e]=n);this._previousActiveHandlers=a,(Object.keys(o).length||$f(r))&&(this._changes.push([r,i,o]),this._triggerRenderFrame()),(Object.keys(a).length||$f(r))&&this._camera.stop(true),this._updatingCamera=false;let{cameraAnimation:s}=r;s&&(this._inertia.clear(),this._fireEvents({},{},true),this._changes=[],s(this._map));},this._map=e,this._camera=t,this._transformProvider=new Xf(this._camera),this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new of(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n);let r=this._el;this._listeners=[[r,`touchstart`,{passive:true}],[r,`touchmove`,{passive:false}],[r,`touchend`,void 0],[r,`touchcancel`,void 0],[r,`mousedown`,void 0],[r,`mousemove`,void 0],[r,`mouseup`,void 0],[this._ownerDocument,`mousemove`,{capture:true}],[this._ownerDocument,`mouseup`,void 0],[r,`mouseover`,void 0],[r,`mouseout`,void 0],[r,`dblclick`,void 0],[r,`click`,void 0],[r,`keydown`,{capture:false}],[r,`keyup`,void 0],[r,`wheel`,{passive:false}],[r,`contextmenu`,void 0],[this._ownerWindow,`blur`,void 0]];for(let[e,t,n]of this._listeners)e.addEventListener(t,e===this._ownerDocument?this.handleWindowEvent:this.handleEvent,n);}destroy(){for(let[e,t,n]of this._listeners)e.removeEventListener(t,e===this._ownerDocument?this.handleWindowEvent:this.handleEvent,n);}_addDefaultHandlers(e){let t=this._map,n=t.getCanvasContainer();this._add(`mapEvent`,new lf(t,e));let r=t.boxZoom=new df(t,e,this._transformProvider);this._add(`boxZoom`,r),e.interactive&&e.boxZoom&&r.enable();let i=t.cooperativeGestures=new Yf(t,e.cooperativeGestures);this._add(`cooperativeGestures`,i),e.cooperativeGestures&&i.enable();let a=new gf(t,this._transformProvider),o=new Wf(t,this._transformProvider);t.doubleClickZoom=new Uf(o,a),this._add(`tapZoom`,a),this._add(`clickZoom`,o),e.interactive&&e.doubleClickZoom&&t.doubleClickZoom.enable();let s=new Gf;this._add(`tapDragZoom`,s);let c=t.touchPitch=new Lf(t);this._add(`touchPitch`,c),e.interactive&&e.touchPitch&&t.touchPitch.enable(e.touchPitch);let l=()=>t.project(t.getCenter()),u=Tf(e,l),d=Ef(e),f=Df(e,l);t.dragRotate=new qf(e,u,d,f),this._add(`mouseRotate`,u,[`mousePitch`]),this._add(`mousePitch`,d,[`mouseRotate`,`mouseRoll`]),this._add(`mouseRoll`,f,[`mousePitch`]),e.interactive&&e.dragRotate&&t.dragRotate.enable();let p=wf(e),m=new Of(e,t);t.dragPan=new Kf(n,p,m),this._add(`mousePan`,p),this._add(`touchPan`,m,[`touchZoom`,`touchRotate`]),e.interactive&&e.dragPan&&t.dragPan.enable(e.dragPan);let h=new Ff,g=new Nf;t.touchZoomRotate=new Jf(n,g,h,s),this._add(`touchRotate`,h,[`touchPan`,`touchZoom`]),this._add(`touchZoom`,g,[`touchPan`,`touchRotate`]),e.interactive&&e.touchZoomRotate&&t.touchZoomRotate.enable(e.touchZoomRotate),this._add(`blockableMapEvent`,new uf(t));let _=t.scrollZoom=new Hf(t,()=>this._triggerRenderFrame(),this._transformProvider);this._add(`scrollZoom`,_,[`mousePan`]),e.interactive&&e.scrollZoom&&t.scrollZoom.enable(e.scrollZoom);let v=t.keyboard=new zf(t,this._transformProvider);this._add(`keyboard`,v),e.interactive&&e.keyboard&&t.keyboard.enable();}_add(e,t,n){this._handlers.push({handlerName:e,handler:t,allowed:n}),this._handlersById[e]=t;}stop(e){if(!this._updatingCamera){for(let{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[];}}isActive(){for(let{handler:e}of this._handlers)if(e.isActive())return true;return false}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return !!Zf(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,t,n){for(let r in e)if(r!==n&&!t?.includes(r))return true;return false}_getMapTouches(e){let t=[];for(let n of e){let e=n.target;this._el.contains(e)&&t.push(n);}return t}mergeHandlerResult(e,t,n,r,i){if(!n)return;Dt(e,n);let a={handlerName:r,originalEvent:n.originalEvent||i};n.zoomDelta!==void 0&&(t.zoom=a),n.panDelta!==void 0&&(t.drag=a),n.rollDelta!==void 0&&(t.roll=a),n.pitchDelta!==void 0&&(t.pitch=a),n.bearingDelta!==void 0&&(t.rotate=a);}_applyChanges(){let e={},t={},n={};for(let[r,i,a]of this._changes)r.panDelta&&(e.panDelta=(e.panDelta||new l(0,0))._add(r.panDelta)),r.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+r.zoomDelta),r.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+r.bearingDelta),r.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+r.pitchDelta),r.rollDelta&&(e.rollDelta=(e.rollDelta||0)+r.rollDelta),r.around!==void 0&&(e.around=r.around),r.pinchAround!==void 0&&(e.pinchAround=r.pinchAround),r.noInertia&&(e.noInertia=r.noInertia),Dt(t,i),Dt(n,a);this._updateMapTransform(e,t,n),this._changes=[];}_updateMapTransform(e,t,n){let r=this._map,i=this._camera.getTransformForUpdate(),a=r.terrain;if(!$f(e)&&!(a&&this._terrainMovement)){this._fireEvents(t,n,true);return}this._camera.stop(true);let{panDelta:o,zoomDelta:s,bearingDelta:c,pitchDelta:l,rollDelta:u,around:d,pinchAround:f}=e;f!==void 0&&(d=f),d||=this._camera.transform.centerPoint,a&&!i.isPointOnMapSurface(d)&&(d=i.centerPoint);let p={panDelta:o,zoomDelta:s,rollDelta:u,pitchDelta:l,bearingDelta:c,around:d};this._camera.cameraHelper.useGlobeControls&&!i.isPointOnMapSurface(d)&&(d=i.centerPoint);let m=d.distSqr(i.centerPoint)<.01?i.center:i.screenPointToLocation(o?d.sub(o):d);this._handleMapControls({terrain:a,tr:i,deltasForHelper:p,preZoomAroundLoc:m,combinedEventsInProgress:t,panDelta:o}),this._camera.applyUpdatedTransform(i),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(t,n,true);}_handleMapControls({terrain:e,tr:t,deltasForHelper:n,preZoomAroundLoc:r,combinedEventsInProgress:i,panDelta:a}){let o=this._camera.cameraHelper;if(o.handleMapControlsRollPitchBearingZoom(n,t),!e){o.handleMapControlsPan(n,t,r);return}if(o.useGlobeControls){!this._terrainMovement&&(i.drag||i.zoom)&&(this._terrainMovement=true,this._camera.elevationFreeze=true),o.handleMapControlsPan(n,t,r);return}if(!this._terrainMovement&&(i.drag||i.zoom)){this._terrainMovement=true,this._camera.elevationFreeze=true,o.handleMapControlsPan(n,t,r);return}if(i.drag&&this._terrainMovement&&a){t.setCenter(t.screenPointToLocation(t.centerPoint.sub(a)));return}o.handleMapControlsPan(n,t,r);}_fireEvents(e,t,n){let r=Zf(this._eventsInProgress),i=Zf(e),a={};for(let t in e){let{originalEvent:n}=e[t];this._eventsInProgress[t]||(a[`${t}start`]=n),this._eventsInProgress[t]=e[t];}!r&&i&&this._fireEvent(`movestart`,i.originalEvent);for(let e in a)this._fireEvent(e,a[e]);i&&this._fireEvent(`move`,i.originalEvent);for(let t in e){let{originalEvent:n}=e[t];this._fireEvent(t,n);}let o={},s;for(let e in this._eventsInProgress){let{handlerName:n,originalEvent:r}=this._eventsInProgress[e];this._handlersById[n].isActive()||(delete this._eventsInProgress[e],s=t[n]||r,o[`${e}end`]=s);}for(let e in o)this._fireEvent(e,o[e]);let c=Zf(this._eventsInProgress),l=(r||i)&&!c;if(l&&this._terrainMovement){this._camera.elevationFreeze=false,this._terrainMovement=false;let e=this._camera.getTransformForUpdate();this._map.getCenterClampedToGround()&&e.recalculateZoomAndCenter(this._map.terrain),this._camera.applyUpdatedTransform(e);}if(n&&l){this._updatingCamera=true;let e=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),t=e=>e!==0&&-this._bearingSnap<e&&e<this._bearingSnap;e&&(e.essential||!Nr.prefersReducedMotion)?(t(e.bearing||this._map.getBearing())&&(e.bearing=0),e.freezeElevation=true,this._map.easeTo(e,{originalEvent:s})):(this._map.fire(new G(`moveend`,{originalEvent:s})),t(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=false;}}_fireEvent(e,t){this._map.fire(new G(e,t?{originalEvent:t}:{}));}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new Qf(`renderFrame`,{timeStamp:e})),this._applyChanges();})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame());}},tp=class extends Hn{constructor(e){super(),this._renderFrameCallback=()=>{let e=Math.min((U()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();},this.transform=new Ts,this.cameraHelper=new ks,e.minZoom!==void 0&&this.transform.setMinZoom(e.minZoom),e.maxZoom!==void 0&&this.transform.setMaxZoom(e.maxZoom),e.minPitch!==void 0&&this.transform.setMinPitch(e.minPitch),e.maxPitch!==void 0&&this.transform.setMaxPitch(e.maxPitch),e.renderWorldCopies!==void 0&&this.transform.setRenderWorldCopies(e.renderWorldCopies),e.transformConstrain!==null&&this.transform.setConstrainOverride(e.transformConstrain),this._moving=false,this._zooming=false,this._bearingSnap=e.bearingSnap,this._zoomSnap=e.zoomSnap,this._requestRenderFrame=e.requestRenderFrame,this._cancelRenderFrame=e.cancelRenderFrame,this.terrain=e.terrain,this._centerClampedToGround=e.centerClampedToGround??true,this.transformCameraUpdate=e.transformCameraUpdate??null,this._stopHandlers=e.stopHandlers??(()=>{}),this.on(`moveend`,()=>{delete this._requestedCameraState;});}migrateProjection(e,t){e.apply(this.transform,true),this.transform=e,this.cameraHelper=t;}getCenter(){return new dm(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,t){return this.jumpTo({elevation:e},t),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e;}panBy(e,t,n){return e=l.convert(e).mult(-1),this.panTo(this.transform.center,Dt({offset:e},t),n)}panTo(e,t,n){return this.easeTo(Dt({center:e},t),n)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(e,t,n){return this.easeTo(Dt({zoom:e},t),n)}zoomIn(e,t){return this.zoomTo(Ft(this.getZoom()+1,this._zoomSnap),e,t),this}zoomOut(e,t){return this.zoomTo(Ft(this.getZoom()-1,this._zoomSnap),e,t),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,t){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new G(`movestart`,t)).fire(new G(`move`,t)).fire(new G(`moveend`,t))),this}getBearing(){return this.transform.bearing}setZoomSnap(e){return this._zoomSnap=e,this}getZoomSnap(){return this._zoomSnap}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(e,t,n){return this.easeTo(Dt({bearing:e},t),n)}resetNorth(e,t){return this.rotateTo(0,Dt({duration:1e3},e),t),this}resetNorthPitch(e,t){return this.easeTo(Dt({bearing:0,pitch:0,roll:0,duration:1e3},e),t),this}snapToNorth(e,t){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,t):this}getPitch(){return this.transform.pitch}setPitch(e,t){return this.jumpTo({pitch:e},t),this}getRoll(){return this.transform.roll}setRoll(e,t){return this.jumpTo({roll:e},t),this}cameraForBounds(e,t){e=Wi.convert(e).adjustAntiMeridian();let n=t?.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),n,t)}_cameraForBoxAndBearing(e,t,n,r){let i={top:0,bottom:0,right:0,left:0};if(r=Dt({padding:i,offset:[0,0],maxZoom:this.transform.maxZoom},r),typeof r.padding==`number`){let e=r.padding;r.padding={top:e,bottom:e,right:e,left:e};}let a=Dt(i,r.padding);r.padding=a;let o=this.transform,s=new Wi(e,t),c=this.cameraHelper.cameraForBoxAndBearing(r,a,s,n,o);return c&&this._zoomSnap&&(c.zoom=Ft(c.zoom,this._zoomSnap,-1)),c}fitBounds(e,t,n){return this._fitInternal(this.cameraForBounds(e,t),t,n)}fitScreenCoordinates(e,t,n,r,i){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(l.convert(e)),this.transform.screenPointToLocation(l.convert(t)),n,r),r,i)}_fitInternal(e,t,n){return e?(t=Dt(e,t),delete t.padding,t.linear?this.easeTo(t,n):this.flyTo(t,n)):this}jumpTo(e,t){this.stop(),`zoom`in e&&this._zoomSnap&&(e.zoom=Ft(e.zoom,this._zoomSnap));let n=this.getTransformForUpdate(),r=false,i=false,a=false,o=n.zoom;this.terrain&&n.setElevation(this.terrain.getElevationForLngLatZoom(e.center?dm.convert(e.center):n.center,e.zoom||n.tileZoom)),this.cameraHelper.handleJumpToCenterZoom(n,e);let s=n.zoom!==o;return `elevation`in e&&n.elevation!==+e.elevation&&n.setElevation(+e.elevation),`bearing`in e&&n.bearing!==+e.bearing&&(r=true,n.setBearing(+e.bearing)),`pitch`in e&&n.pitch!==+e.pitch&&(i=true,n.setPitch(+e.pitch)),`roll`in e&&n.roll!==+e.roll&&(a=true,n.setRoll(+e.roll)),e.padding!=null&&!n.isPaddingEqual(e.padding)&&n.setPadding(e.padding),this.applyUpdatedTransform(n),this.fire(new G(`movestart`,t)).fire(new G(`move`,t)),s&&this.fire(new G(`zoomstart`,t)).fire(new G(`zoom`,t)).fire(new G(`zoomend`,t)),r&&this.fire(new G(`rotatestart`,t)).fire(new G(`rotate`,t)).fire(new G(`rotateend`,t)),i&&this.fire(new G(`pitchstart`,t)).fire(new G(`pitch`,t)).fire(new G(`pitchend`,t)),a&&this.fire(new G(`rollstart`,t)).fire(new G(`roll`,t)).fire(new G(`rollend`,t)),this.fire(new G(`moveend`,t))}calculateCameraOptionsFromTo(e,t,n,r=0){let i=xm.fromLngLat(e,t),a=xm.fromLngLat(n,r),o=a.x-i.x,s=a.y-i.y,c=a.z-i.z,l=Math.hypot(o,s,c);if(l===0)throw Error(`Can't calculate camera options with same From and To`);let u=Math.hypot(o,s),d=Pt(this.transform.cameraToCenterDistance/l/this.transform.tileSize),f=Math.atan2(o,-s)*180/Math.PI,p=Math.acos(u/l)*180/Math.PI;return p=c<0?90-p:90+p,{center:a.toLngLat(),elevation:r,zoom:d,pitch:p,bearing:f}}calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i){let a=this.transform.calculateCenterFromCameraLngLatAlt(e,t,n,r);return {center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:n,pitch:r,roll:i}}easeTo(e,t){this._stop(false,e.easeId),e=Dt({offset:[0,0],duration:500,easing:wt},e),`zoom`in e&&this._zoomSnap&&(e.zoom=Ft(e.zoom,this._zoomSnap)),(e.animate===false||!e.essential&&Nr.prefersReducedMotion)&&(e.duration=0);let n=this.getTransformForUpdate(),r=this.getBearing(),i=n.pitch,a=n.roll,o=`bearing`in e?this._normalizeBearing(e.bearing,r):r,s=`pitch`in e?+e.pitch:i,c=`roll`in e?this._normalizeBearing(e.roll,a):a,l$1=`padding`in e?e.padding:n.padding,u=l.convert(e.offset),d,f;e.around&&(d=dm.convert(e.around),f=n.locationToScreenPoint(d));let p={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},m=this.cameraHelper.handleEaseTo(n,{bearing:o,pitch:s,roll:c,padding:l$1,around:d,aroundPoint:f,offsetAsPoint:u,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating||=r!==o,this._pitching||=s!==i,this._rolling||=c!==a,this._padding=!n.isPaddingEqual(l$1),this._zooming||=m.isZooming,this._easeId=e.easeId,this._prepareEase(t,e.noMoveStart,p),this.terrain&&this._prepareElevation(m.elevationCenter),this._ease(r=>{m.easeFunc(r),this.terrain&&!e.freezeElevation&&this._updateElevation(r),this.applyUpdatedTransform(n),this._fireMoveEvents(t);},n=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(t,n);},e),this}_prepareEase(e,t,n={}){this._moving=true,!t&&!n.moving&&this.fire(new G(`movestart`,e)),this._zooming&&!n.zooming&&this.fire(new G(`zoomstart`,e)),this._rotating&&!n.rotating&&this.fire(new G(`rotatestart`,e)),this._pitching&&!n.pitching&&this.fire(new G(`pitchstart`,e)),this._rolling&&!n.rolling&&this.fire(new G(`rollstart`,e));}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this.elevationFreeze=true;}_updateElevation(e){(this._elevationStart===void 0||this._elevationCenter===void 0)&&this._prepareElevation(this.transform.center),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));let t=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&t!==this._elevationTarget){let n=this._elevationTarget-this._elevationStart,r=(t-(n*e+this._elevationStart))/(1-e);this._elevationStart+=e*(n-r),this._elevationTarget=t;}this.transform.setElevation(Ni$1.number(this._elevationStart,this._elevationTarget,e));}_finalizeElevation(){this.elevationFreeze=false,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain);}getTransformForUpdate(){return !this.transformCameraUpdate&&!this.terrain?this.transform:(this._requestedCameraState||=this.transform.clone(),this._requestedCameraState)}_elevateCameraIfInsideTerrain(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return {};let t=e.getCameraLngLat(),n=e.getCameraAltitude(),r=this.terrain?this.terrain.getElevationForLngLatZoom(t,e.zoom):0;if(n<r){let n=this.calculateCameraOptionsFromTo(t,r,e.center,e.elevation);return {pitch:n.pitch,zoom:n.zoom}}return {}}applyUpdatedTransform(e){let t=[];if(t.push(e=>this._elevateCameraIfInsideTerrain(e)),this.transformCameraUpdate&&t.push(e=>this.transformCameraUpdate(e)),!t.length)return;let n=e.clone();for(let e of t){let t=n.clone(),{center:r,zoom:i,roll:a,pitch:o,bearing:s,elevation:c}=e(t);r&&t.setCenter(r),c!==void 0&&t.setElevation(c),i!==void 0&&t.setZoom(i),a!==void 0&&t.setRoll(a),o!==void 0&&t.setPitch(o),s!==void 0&&t.setBearing(s),n.apply(t,false);}this.transform.apply(n,false);}_fireMoveEvents(e){this.fire(new G(`move`,e)),this._zooming&&this.fire(new G(`zoom`,e)),this._rotating&&this.fire(new G(`rotate`,e)),this._pitching&&this.fire(new G(`pitch`,e)),this._rolling&&this.fire(new G(`roll`,e));}_afterEase(e,t){if(this._easeId&&t&&this._easeId===t)return;delete this._easeId;let n=this._zooming,r=this._rotating,i=this._pitching,a=this._rolling;this._moving=false,this._zooming=false,this._rotating=false,this._pitching=false,this._rolling=false,this._padding=false,n&&this.fire(new G(`zoomend`,e)),r&&this.fire(new G(`rotateend`,e)),i&&this.fire(new G(`pitchend`,e)),a&&this.fire(new G(`rollend`,e)),this.fire(new G(`moveend`,e));}flyTo(e,t){if(!e.essential&&Nr.prefersReducedMotion){let n=Ot(e,[`center`,`zoom`,`bearing`,`pitch`,`roll`,`elevation`,`padding`]);return this.jumpTo(n,t)}this.stop(),e=Dt({offset:[0,0],speed:1.2,curve:1.42,easing:wt},e),`zoom`in e&&this._zoomSnap&&(e.zoom=Ft(e.zoom,this._zoomSnap));let n=this.getTransformForUpdate(),r=n.bearing,i=n.pitch,a=n.roll,o=n.padding,s=`bearing`in e?this._normalizeBearing(e.bearing,r):r,c=`pitch`in e?+e.pitch:i,l$1=`roll`in e?this._normalizeBearing(e.roll,a):a,u=`padding`in e?e.padding:n.padding,d=l.convert(e.offset),f=n.centerPoint.add(d),p=n.screenPointToLocation(f),m=this.cameraHelper.handleFlyTo(n,{bearing:s,pitch:c,roll:l$1,padding:u,locationAtOffset:p,offsetAsPoint:d,center:e.center,minZoom:e.minZoom,zoom:e.zoom}),g=e.curve,_=Math.max(n.width,n.height),v=_/m.scaleOfZoom,y=m.pixelPathLength,b=_/m.scaleOfMinZoom;g=Math.min(g,Math.sqrt(b/y*2));let x=g*g;function S(e){let t=(v*v-_*_+(e?-1:1)*x*x*y*y)/(2*(e?v:_)*x*y);return Math.log(Math.sqrt(t*t+1)-t)}function C(e){return (Math.exp(e)-Math.exp(-e))/2}function w(e){return (Math.exp(e)+Math.exp(-e))/2}function T(e){return C(e)/w(e)}let E=S(false),D=function(e){return w(E)/w(E+g*e)},O=function(e){return _*((w(E)*T(E+g*e)-C(E))/x)/y},k=(S(true)-E)/g;if(Math.abs(y)<2e-6||!isFinite(k)){if(Math.abs(_-v)<1e-6)return this.easeTo(e,t);let n=v<_?-1:1;k=Math.abs(Math.log(v/_))/g,O=()=>0,D=e=>Math.exp(n*g*e);}if(`duration`in e)e.duration=+e.duration;else {let t=`screenSpeed`in e?+e.screenSpeed/g:+e.speed;e.duration=1e3*k/t;}return e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=true,this._rotating=r!==s,this._pitching=c!==i,this._rolling=l$1!==a,this._padding=!n.isPaddingEqual(u),this._prepareEase(t,false),this.terrain&&this._prepareElevation(m.targetCenter),this._ease(p=>{let h=p*k,g=1/D(h),_=O(h);this._rotating&&n.setBearing(Ni$1.number(r,s,p)),this._pitching&&n.setPitch(Ni$1.number(i,c,p)),this._rolling&&n.setRoll(Ni$1.number(a,l$1,p)),this._padding&&(n.interpolatePadding(o,u,p),f=n.centerPoint.add(d)),m.easeFunc(p,g,_,f),this.terrain&&!e.freezeElevation&&this._updateElevation(p),this.applyUpdatedTransform(n),this._fireMoveEvents(t);},()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(t);},e),this}isEasing(){return !!this._easeFrameId}stop(e){return this._stop(e)}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let e=this._onEaseEnd;delete this._onEaseEnd,e.call(this,t);}return e||this._stopHandlers(),this}_ease(e,t,n){n.animate===false||n.duration===0?(e(1),t()):(this._easeStart=U(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=t,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_normalizeBearing(e,t){e=Et(e,-180,180);let n=Math.abs(e-t);return Math.abs(e-360-t)<n&&(e-=360),Math.abs(e+360-t)<n&&(e+=360),e}isMoving(){return this._moving}isZooming(){return this._zooming}isRotating(){return this._rotating}};const np={compact:true,customAttribution:`<a href="https://maplibre.org/" target="_blank">MapLibre</a>`};var rp=class{constructor(e=np){this._toggleAttribution=()=>{this._container.classList.contains(`maplibregl-compact`)&&(this._container.classList.contains(`maplibregl-compact-show`)?(this._container.setAttribute(`open`,``),this._container.classList.remove(`maplibregl-compact-show`)):(this._container.classList.add(`maplibregl-compact-show`),this._container.removeAttribute(`open`)));},this._updateData=e=>{e&&(e.type===`terrain`||e.dataType===`style`||e.dataType===`source`&&(e.sourceDataType===`metadata`||e.sourceDataType===`visibility`))&&this._updateAttributions();},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===false?this._container.setAttribute(`open`,``):!this._container.classList.contains(`maplibregl-compact`)&&!this._container.classList.contains(`maplibregl-attrib-empty`)&&(this._container.setAttribute(`open`,``),this._container.classList.add(`maplibregl-compact`,`maplibregl-compact-show`)):(this._container.setAttribute(`open`,``),this._container.classList.contains(`maplibregl-compact`)&&this._container.classList.remove(`maplibregl-compact`,`maplibregl-compact-show`));},this._updateCompactMinimize=()=>{this._container.classList.contains(`maplibregl-compact`)&&this._container.classList.contains(`maplibregl-compact-show`)&&this._container.classList.remove(`maplibregl-compact-show`);},this.options=e;}getDefaultPosition(){return `bottom-right`}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=W.create(`details`,`maplibregl-ctrl maplibregl-ctrl-attrib`),this._compactButton=W.create(`summary`,`maplibregl-ctrl-attrib-button`,this._container),this._compactButton.addEventListener(`click`,this._toggleAttribution),this._setElementTitle(this._compactButton,`ToggleAttribution`),this._innerContainer=W.create(`div`,`maplibregl-ctrl-attrib-inner`,this._container),this._updateAttributions(),this._updateCompact(),this._map.on(`styledata`,this._updateData),this._map.on(`sourcedata`,this._updateData),this._map.on(`terrain`,this._updateData),this._map.on(`resize`,this._updateCompact),this._map.on(`drag`,this._updateCompactMinimize),this._container}onRemove(){this._container.remove(),this._map.off(`styledata`,this._updateData),this._map.off(`sourcedata`,this._updateData),this._map.off(`terrain`,this._updateData),this._map.off(`resize`,this._updateCompact),this._map.off(`drag`,this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0;}_setElementTitle(e,t){let n=this._map._getUIString(`AttributionControl.${t}`);e.title=n,e.setAttribute(`aria-label`,n);}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(e=>typeof e==`string`?e:``)):typeof this.options.customAttribution==`string`&&e.push(this.options.customAttribution)),this._map.style.stylesheet){let e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id;}let t=this._map.style.tileManagers;for(let n in t){let r=t[n];if(r.used||r.usedForTerrain){let t=r.getSource();t.attribution&&!e.includes(t.attribution)&&e.push(t.attribution);}}e=e.filter(e=>String(e).trim()),e.sort((e,t)=>e.length-t.length),e=e.filter((t,n)=>{for(let r=n+1;r<e.length;r++)if(e[r].includes(t))return false;return true});let n=e.join(` | `);n!==this._attribHTML&&(this._attribHTML=n,e.length?(this._innerContainer.innerHTML=W.sanitize(n),this._container.classList.remove(`maplibregl-attrib-empty`)):this._container.classList.add(`maplibregl-attrib-empty`),this._updateCompact(),this._editLink=null);}},ip=class{constructor(e={}){this._updateCompact=()=>{let e=this._container.children;if(e.length){let t=e[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==false&&t.classList.add(`maplibregl-compact`):t.classList.remove(`maplibregl-compact`);}},this.options=e;}getDefaultPosition(){return `bottom-left`}onAdd(e){this._map=e,this._compact=this.options?.compact,this._container=W.create(`div`,`maplibregl-ctrl`);let t=W.create(`a`,`maplibregl-ctrl-logo`);return t.target=`_blank`,t.rel=`noopener nofollow`,t.href=`https://maplibre.org/`,t.setAttribute(`aria-label`,this._map._getUIString(`LogoControl.Title`)),t.setAttribute(`rel`,`noopener nofollow`),this._container.appendChild(t),this._container.style.display=`block`,this._map.on(`resize`,this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off(`resize`,this._updateCompact),this._map=void 0,this._compact=void 0;}},ap=class{constructor(){this._queue=[],this._id=0,this._cleared=false,this._currentlyRunning=false;}add(e){let t=++this._id;return this._queue.push({callback:e,id:t,cancelled:false}),t}remove(e){let t=this._currentlyRunning,n=t?this._queue.concat(t):this._queue;for(let t of n)if(t.id===e){t.cancelled=true;return}}run(e=0){if(this._currentlyRunning)throw Error(`Attempting to run(), but is already running.`);let t=this._currentlyRunning=this._queue;this._queue=[];for(let n of t)if(!n.cancelled&&(n.callback(e),this._cleared))break;this._cleared=false,this._currentlyRunning=false;}clear(){this._currentlyRunning&&(this._cleared=true),this._queue=[];}};const op=Ml$1([{name:`a_pos3d`,type:`Int16`,components:3}]);var sp=class extends Hn{constructor(e){super(),this._lastTilesetChange=U(),this.tileManager=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=true,e.tileSize=this.tileSize;}destruct(){this.tileManager.usedForTerrain=false,this.tileManager.tileSize=null,this.releaseAllRTT();}getSource(){return this.tileManager._source}update(e,t){this.tileManager.update(e,t),this._renderableTilesKeys=[];let n={};for(let r of Pa(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:false,terrain:t,calculateTileZoom:this.tileManager._source.calculateTileZoom}))n[r.key]=true,this._renderableTilesKeys.push(r.key),this._tiles[r.key]||(r.terrainRttPosMatrix32f=new Float32Array(16),ie(r.terrainRttPosMatrix32f,0,j,j,0,0,1),this._tiles[r.key]=new Ta(r,this.tileSize),this._lastTilesetChange=U());for(let e in this._tiles)n[e]||(this._tiles[e].releaseRTT(this.tileManager.map.painter),delete this._tiles[e]);}releaseRTT(e){for(let t in this._tiles){let n=this._tiles[t];(n.tileID.equals(e)||n.tileID.isChildOf(e)||e.isChildOf(n.tileID))&&n.releaseRTT(this.tileManager.map.painter);}}releaseAllRTT(){for(let e in this._tiles)this._tiles[e].releaseRTT(this.tileManager.map.painter);}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,t){return t?this._getTerrainCoordsForTileRanges(e,t):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){let t={};for(let n of this._renderableTilesKeys){let r=this._tiles[n].tileID,i=e.clone(),o=st();if(r.canonical.equals(e.canonical))ie(o,0,j,j,0,0,1);else if(r.canonical.isChildOf(e.canonical)){let t=r.canonical.z-e.canonical.z,n=r.canonical.x-(r.canonical.x>>t<<t),i=r.canonical.y-(r.canonical.y>>t<<t),a=j>>t;ie(o,0,a,a,0,0,1),E(o,o,[-n*a,-i*a,0]);}else if(e.canonical.isChildOf(r.canonical)){let t=e.canonical.z-r.canonical.z,n=e.canonical.x-(e.canonical.x>>t<<t),i=e.canonical.y-(e.canonical.y>>t<<t),s=j>>t;ie(o,0,j,j,0,0,1),E(o,o,[n*s,i*s,0]),D(o,o,[1/2**t,1/2**t,0]);}else continue;i.terrainRttPosMatrix32f=new Float32Array(o),t[n]=i;}return t}_getTerrainCoordsForTileRanges(e,t){let n={};for(let r of this._renderableTilesKeys){let i=this._tiles[r].tileID;if(!this._isWithinTileRanges(i,t))continue;let a=e.clone(),o=st();if(i.canonical.z===e.canonical.z){let t=e.canonical.x-i.canonical.x+e.wrap*(1<<e.canonical.z),n=e.canonical.y-i.canonical.y;ie(o,0,j,j,0,0,1),E(o,o,[t*j,n*j,0]);}else if(i.canonical.z>e.canonical.z){let t=i.canonical.z-e.canonical.z,n=i.canonical.x-(i.canonical.x>>t<<t)+e.wrap*(1<<i.canonical.z),r=i.canonical.y-(i.canonical.y>>t<<t),a=e.canonical.x-(i.canonical.x>>t),s=e.canonical.y-(i.canonical.y>>t),c=j>>t;ie(o,0,c,c,0,0,1),E(o,o,[-n*c+a*j,-r*c+s*j,0]);}else {let t=e.canonical.z-i.canonical.z,n=e.canonical.x-(e.canonical.x>>t<<t)+e.wrap*(1<<e.canonical.z),r=e.canonical.y-(e.canonical.y>>t<<t),a=(e.canonical.x>>t)-i.canonical.x,s=(e.canonical.y>>t)-i.canonical.y,c=j<<t;ie(o,0,c,c,0,0,1),E(o,o,[n*j+a*c,r*j+s*c,0]);}a.terrainRttPosMatrix32f=new Float32Array(o),n[r]=a;}return n}getSourceTile(e,t){let n=this.tileManager._source,r=e.overscaledZ-this.deltaZoom;if(r>n.maxzoom&&(r=n.maxzoom),r<n.minzoom)return;this._sourceTileCache[e.key]||=e.scaledTo(r).key;let i=this.findTileInCaches(this._sourceTileCache[e.key]);if(!i?.dem&&t)for(;r>=n.minzoom&&!i?.dem;)i=this.findTileInCaches(e.scaledTo(r--).key);return i}findTileInCaches(e){let t=this.tileManager.getTileByID(e);return t||(t=this.tileManager._outOfViewCache.getByKey(e),t)}anyTilesAfterTime(e=U()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,t){let n=t[e.canonical.z];return !!n&&(e.wrap>n.minWrap||e.wrap<n.maxWrap||e.canonical.x>=n.minTileXWrapped&&e.canonical.x<=n.maxTileXWrapped&&e.canonical.y>=n.minTileY&&e.canonical.y<=n.maxTileY)}},cp=class{constructor(e,t,n,r=`auto`){this._meshCache={},this.painter=e,this.tileManager=new sp(t),this.options=n,this.exaggeration=typeof n.exaggeration==`number`?n.exaggeration:1,this._terrainSkirtLength=r,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache=new Map,this._elevationSamplerCache=new Map,this.coordsIndex=[],this._coordsTextureSize=1024;}destroy(){this._fbo&&=(this._fbo.destroy(),null),this._fboCoordsTexture&&=(this._fboCoordsTexture.destroy(),null),this._fboDepthTexture&&=(this._fboDepthTexture.destroy(),null),this._emptyDemTexture&&=(this._emptyDemTexture.destroy(),null),this._emptyDepthTexture&&=(this._emptyDepthTexture.destroy(),null),this._coordsTexture&&=(this._coordsTexture.destroy(),null);for(let e in this._meshCache)this._meshCache[e].destroy();this._meshCache={},this.tileManager.destruct();}getDEMElevation(e,t,n,r=j){let i=e.normalizeCoordinates(t,n,r);if(!i)return 0;let a=this._getElevationSampler(i.tileID);return a?a(i.x,i.y,r):0}getElevationForLngLatZoom(e,t){if(!Mv(t,e.wrap()))return 0;let{tileID:n,mercatorX:r,mercatorY:i}=this._getOverscaledTileIDFromLngLatZoom(e,t);return this.getElevation(n,r%j,i%j,j)}getElevationForLngLat(e,t){let n=Pa(t,{maxzoom:this.tileManager.maxzoom,minzoom:this.tileManager.minzoom,tileSize:512,terrain:this}),r=0;for(let e of n)e.canonical.z>r&&(r=Math.min(e.canonical.z,this.tileManager.maxzoom));return this.getElevationForLngLatZoom(e,r)}getElevation(e,t,n,r=j){return this.getDEMElevation(e,t,n,r)*this.exaggeration}resetElevationCache(){this._elevationSamplerCache.clear();}_getElevationSampler(e){let t=e.key,n=this._elevationSamplerCache.get(t);if(n)return n;let r=this.tileManager.getSourceTile(e,true),i=r?.dem;if(!r||!i)return null;let a=this._getDEMTileMatrix(e,r),o=a[0]*i.dim,s=a[5]*i.dim,c=a[12]*i.dim,l=a[13]*i.dim,u=(e,t,n)=>{let r=n===8192?1:j/n;return i.sampleBilinear(e*r*o+c,t*r*s+l)};return this._elevationSamplerCache.set(t,u),u}_getDEMTileMatrix(e,t){let n=`${t.tileID.key}/${e.key}`,r=this._demMatrixCache.get(n);if(r)return r;let i=this.tileManager.getSource().maxzoom,a=e.canonical.z-t.tileID.canonical.z;e.overscaledZ>e.canonical.z&&(e.canonical.z>=i?a=e.canonical.z-i:Vt(`cannot calculate elevation if elevation maxzoom > source.maxzoom`));let o=e.canonical.x-(e.canonical.x>>a<<a),s=e.canonical.y-(e.canonical.y>>a<<a),c=ee(new Float64Array(16),[1/(j<<a),1/(j<<a),0]);return E(c,c,[o*j,s*j,0]),this._demMatrixCache.set(n,c),c}getTerrainData(e){if(!this._emptyDemTexture){let e=this.painter.context,t=new mf$1({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new kf$1(e,t,e.gl.RGBA,{premultiply:false}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new kf$1(e,new mf$1({width:1,height:1}),e.gl.RGBA,{premultiply:false}),this._emptyDemTexture.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=C([]);}let t=this.tileManager.getSourceTile(e,true);if(t?.dem&&(!t.demTexture||t.needsTerrainPrepare)){let e=this.painter.context;t.demTexture||=this.painter.getTileTexture(t.dem.stride),t.demTexture?t.demTexture.update(t.dem.getPixels(),{premultiply:false}):t.demTexture=new kf$1(e,t.dem.getPixels(),e.gl.RGBA,{premultiply:false}),t.demTexture.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),t.needsTerrainPrepare=false;}let n=t?this._getDEMTileMatrix(e,t):this._emptyDemMatrix;return {u_depth:2,u_terrain:3,u_terrain_dim:t?.dem?.dim||1,u_terrain_matrix:n,u_terrain_unpack:t?.dem?.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(t?.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:t}}getFramebuffer(e){let t=this.painter,n=t.width/devicePixelRatio,r=t.height/devicePixelRatio;return this._fbo&&(this._fbo.width!==n||this._fbo.height!==r)&&(this._fbo.destroy(),this._fboCoordsTexture.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture,delete this._fboCoordsTexture),this._fboCoordsTexture||(this._fboCoordsTexture=new kf$1(t.context,{width:n,height:r,data:null},t.context.gl.RGBA,{premultiply:false}),this._fboCoordsTexture.bind(t.context.gl.NEAREST,t.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new kf$1(t.context,{width:n,height:r,data:null},t.context.gl.RGBA,{premultiply:false}),this._fboDepthTexture.bind(t.context.gl.NEAREST,t.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=t.context.createFramebuffer(n,r,true,false),this._fbo.depthAttachment.set(t.context.createRenderbuffer(t.context.gl.DEPTH_COMPONENT16,n,r))),this._fbo.colorAttachment.set(e===`coords`?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){let e=this.painter.context;if(this._coordsTexture)return this._coordsTexture;let t=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let e=0,n=0;e<this._coordsTextureSize;e++)for(let r=0;r<this._coordsTextureSize;r++,n+=4)t[n+0]=r&255,t[n+1]=e&255,t[n+2]=r>>8<<4|e>>8,t[n+3]=0;let n=new mf$1({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(t.buffer)),r=new kf$1(e,n,e.gl.RGBA,{premultiply:false});return r.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=r,r}pointCoordinate(e){this.painter.maybeDrawDepth(true),this.painter.maybeDrawCoords();let t=new Uint8Array(4),n=this.painter.context,r=n.gl,i=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),a=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),o=Math.round(this.painter.height/devicePixelRatio);n.bindFramebuffer.set(this.getFramebuffer(`coords`).framebuffer),r.readPixels(i,o-a-1,1,1,r.RGBA,r.UNSIGNED_BYTE,t),n.bindFramebuffer.set(null);let s=t[0]+(t[2]>>4<<8),c=t[1]+((t[2]&15)<<8),l=this.coordsIndex[255-t[3]],u=l&&this.tileManager.getTileByID(l);if(!u)return null;let d=this._coordsTextureSize,f=(1<<u.tileID.canonical.z)*d;return new xm((u.tileID.canonical.x*d+s)/f+u.tileID.wrap,(u.tileID.canonical.y*d+c)/f,this.getElevation(u.tileID,s,c,d))}depthAtPoint(e){let t=new Uint8Array(4),n=this.painter.context,r=n.gl;return n.bindFramebuffer.set(this.getFramebuffer(`depth`).framebuffer),r.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,r.RGBA,r.UNSIGNED_BYTE,t),n.bindFramebuffer.set(null),(t[0]/16777216+t[1]/65536+t[2]/256+t[3])/256}getTerrainMesh(e){let t=this.painter.style.projection?.transitionState>0,n=t&&e.canonical.y===0,r=t&&e.canonical.y===(1<<e.canonical.z)-1,i=`m_${n?`n`:``}_${r?`s`:``}`;if(this._meshCache[i])return this._meshCache[i];let a=this.painter.context,o=new vu$1,s=new Pu$1,c=this.meshSize,l=j/c,u=c*c;for(let e=0;e<=c;e++)for(let t=0;t<=c;t++)o.emplaceBack(t*l,e*l,0);for(let e=0;e<u;e+=c+1)for(let t=0;t<c;t++)s.emplaceBack(t+e,c+t+e+1,c+t+e+2),s.emplaceBack(t+e,c+t+e+2,t+e+1);this._terrainSkirtLength!==`none`&&this._buildSkirts(o,s,c,l,n,r);let d=new ls(a.createVertexBuffer(o,op.members),a.createIndexBuffer(s),zu$1.simpleSegment(0,0,o.length,s.length));return this._meshCache[i]=d,d}getSkirtLength(e){return 2*Math.PI*um/2**Math.max(e,0)/5}getMinTileElevationForLngLatZoom(e,t){if(!Mv(t,e.wrap()))return 0;let{tileID:n}=this._getOverscaledTileIDFromLngLatZoom(e,t);return this.getMinMaxElevation(n).minElevation??0}getMinMaxElevation(e){let t=this.tileManager.getSourceTile(e,true),n={minElevation:null,maxElevation:null};return t?.dem&&(n.minElevation=t.dem.min*this.exaggeration,n.maxElevation=t.dem.max*this.exaggeration),n}_getOverscaledTileIDFromLngLatZoom(e,t){let n=xm.fromLngLat(e.wrap()),r=(1<<t)*j,i=n.x*r,a=n.y*r,o=Math.floor(i/j),s=Math.floor(a/j);return {tileID:new Fv(t,0,t,o,s),mercatorX:i,mercatorY:a}}_buildSkirts(e,t,n,r,i,a){let o=e.length,s=o+(n+1),c=(n+1)*n,l=i?Fp$1:0,u=+!i,d=a?Ip$1:j,f=+!a;for(let t=0;t<=n;t++)e.emplaceBack(t*r,l,u);for(let t=0;t<=n;t++)e.emplaceBack(t*r,d,f);for(let e=0;e<n;e++)t.emplaceBack(c+e,s+e,s+e+1),t.emplaceBack(c+e,s+e+1,c+e+1),t.emplaceBack(0+e,o+e+1,o+e),t.emplaceBack(0+e,0+e+1,o+e+1);let p=e.length,m=p+(n+1)*2;for(let t of [0,1])for(let i=0;i<=n;i++)for(let n of [0,1])e.emplaceBack(t*j,i*r,n);for(let e=0;e<n*2;e+=2)t.emplaceBack(p+e,p+e+1,p+e+3),t.emplaceBack(p+e,p+e+3,p+e+2),t.emplaceBack(m+e,m+e+3,m+e+1),t.emplaceBack(m+e,m+e+2,m+e+3);}};const lp={background:true,fill:true,line:true,raster:true,hillshade:true,"color-relief":true};var up=class{constructor(e,t){this.painter=e,this.terrain=t,this.rttSize=t.tileManager.tileSize*t.qualityFactor;}getTexture(e){return e.getRTT(this._stacks.length-1).texture}prepareForRender(e,t){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.tileManager.getRenderableTiles(),this._renderableLayerIds=e._order.filter(n=>!e._layers[n].isHidden(t));let n=new Set;for(let t of this._renderableLayerIds){let r=e._layers[t],i=r.source;i&&lp[r.type]&&n.add(i);}this._coordsAscending={},this._rttFingerprints={};for(let t of n){let n=e.tileManagers[t];if(!n)continue;this._coordsAscending[t]={};let r=this._coordsAscending[t],i=n.getSource(),a=i instanceof ua?i.terrainTileRanges:null;for(let e of n.getVisibleCoordinates()){let t=this.terrain.tileManager.getTerrainCoords(e,a);for(let e in t)r[e]||=[],r[e].push(t[e]);}this._rttFingerprints[t]={};let o=this._rttFingerprints[t],s=n.getState().revision;for(let e in r)o[e]=`${r[e].map(e=>e.key).sort().join()}#${s}`;}for(let e of this._renderableTiles)for(let t in this._rttFingerprints){let n=this._rttFingerprints[t][e.tileID.key];n&&n!==e.rttFingerprint[t]&&e.releaseRTT(this.painter);}}renderLayer(e,t){if(e.isHidden(this.painter.transform.zoom))return false;let n={...t,isRenderingToTexture:true},r=e.type,i=this.painter,a=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(lp[r]&&((!this._prevType||!lp[this._prevType])&&this._stacks.push([]),this._prevType=r,this._stacks[this._stacks.length-1].push(e.id),!a))return true;if(lp[this._prevType]||lp[r]&&a){this._prevType=r;let e=this._stacks.length-1,t=this._stacks[e]||[];for(let r of this._renderableTiles){if(this._rttTiles.push(r),r.getRTT(e))continue;let a=r.acquireRTT(i,e,this.rttSize);i.bindRTT(a),i.context.clear({color:B.transparent,stencil:0}),i.currentStencilSource=void 0;for(let e of t){let t=i.style._layers[e],a=t.source?this._coordsAscending[t.source][r.tileID.key]:[r.tileID];i.context.viewport.set([0,0,this.rttSize,this.rttSize]),i.renderTileClippingMasks(t,a,true),i.renderLayer(i,i.style.tileManagers[t.source],t,a,n),t.source&&(r.rttFingerprint[t.source]=this._rttFingerprints[t.source][r.tileID.key]);}}return Ud(this.painter,this.terrain,this._rttTiles,n),this._rttTiles=[],lp[r]}return false}};const dp={"AttributionControl.ToggleAttribution":`Toggle attribution`,"AttributionControl.MapFeedback":`Map feedback`,"FullscreenControl.Enter":`Enter fullscreen`,"FullscreenControl.Exit":`Exit fullscreen`,"GeolocateControl.FindMyLocation":`Find my location`,"GeolocateControl.LocationNotAvailable":`Location not available`,"LogoControl.Title":`MapLibre logo`,"Map.Title":`Map`,"Marker.Title":`Map marker`,"NavigationControl.ResetBearing":`Drag to rotate map, click to reset north`,"NavigationControl.ZoomIn":`Zoom in`,"NavigationControl.ZoomOut":`Zoom out`,"Popup.Close":`Close popup`,"ScaleControl.Feet":`ft`,"ScaleControl.Meters":`m`,"ScaleControl.Kilometers":`km`,"ScaleControl.Miles":`mi`,"ScaleControl.NauticalMiles":`nm`,"GlobeControl.Enable":`Enable globe`,"GlobeControl.Disable":`Disable globe`,"TerrainControl.Enable":`Enable terrain`,"TerrainControl.Disable":`Disable terrain`,"CooperativeGesturesHandler.WindowsHelpText":`Use Ctrl + scroll to zoom the map`,"CooperativeGesturesHandler.MacHelpText":`Use ⌘ + scroll to zoom the map`,"CooperativeGesturesHandler.MobileHelpText":`Use two fingers to move the map`},fp=Er,pp={hash:false,interactive:true,bearingSnap:7,zoomSnap:0,attributionControl:np,maplibreLogo:false,refreshExpiredTiles:true,canvasContextAttributes:{antialias:false,preserveDrawingBuffer:false,powerPreference:`high-performance`,failIfMajorPerformanceCaveat:false,desynchronized:false,contextType:void 0},scrollZoom:true,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:true,dragRotate:true,dragPan:true,keyboard:true,doubleClickZoom:true,touchZoomRotate:true,touchPitch:true,cooperativeGestures:false,trackResize:true,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:true,maxTileCacheSize:null,maxTileCacheZoomLevels:Cn.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,transformConstrain:null,fadeDuration:300,crossSourceCollisions:true,clickTolerance:3,localIdeographFontFamily:`sans-serif`,pitchWithRotate:true,rollEnabled:false,rotateSpeed:.8,pitchSpeed:-0.5,reduceMotion:void 0,validateStyle:true,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:true,centerClampedToGround:true,terrainSkirtLength:`auto`,zoomLevelsToOverscale:4,anisotropicFilterPitch:20};var mp=class extends Hn{get _ownerWindow(){return this._container?.ownerDocument?.defaultView||window}constructor(e){super(),this._idleTriggered=false,this._crossFadingFactor=1,this._renderTaskQueue=new ap,this._controls=[],this._mapId=At(),this._missingStyleImageResolver=null,this._lostContextStyle={style:null,images:null},this._contextLost=e=>{if(e.preventDefault(),this._frameRequest&&=(this._frameRequest.abort(),null),this.painter.destroy(),this._lostContextStyle=this._getStyleAndImages(),!this.style){this.fire(new Yr(`webglcontextlost`,{originalEvent:e}));return}for(let e of Object.values(this.style._layers))if(e.type===`custom`&&console.warn(`Custom layer with id '${e.id}' cannot be restored after WebGL context loss. You will need to re-add it manually after context restoration.`),e._listeners)for(let[t]of Object.entries(e._listeners))console.warn(`Custom layer with id '${e.id}' had event listeners for event '${t}' which cannot be restored after WebGL context loss. You will need to re-add them manually after context restoration.`);this.style.destroy(),this.style=null,this.fire(new Yr(`webglcontextlost`,{originalEvent:e}));},this._contextRestored=e=>{this._lostContextStyle.style&&this.setStyle(this._lostContextStyle.style,{diff:false}),this._lostContextStyle.images&&this.style&&(this.style.imageManager.images=this._lostContextStyle.images),this._lostContextStyle={style:null,images:null},this._setupPainter(),this.painter&&(this.resize(),this._update(),this._resizeInternal(),this.fire(new Yr(`webglcontextrestored`,{originalEvent:e})));},this._onMapScroll=e=>{if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,false},this._onWindowOnline=()=>{this._update();};let t={...pp,...e,canvasContextAttributes:{...pp.canvasContextAttributes,...e.canvasContextAttributes}};if(t.minZoom!=null&&t.maxZoom!=null&&t.minZoom>t.maxZoom)throw Error(`maxZoom must be greater than or equal to minZoom`);if(t.minPitch!=null&&t.maxPitch!=null&&t.minPitch>t.maxPitch)throw Error(`maxPitch must be greater than or equal to minPitch`);if(t.minPitch!=null&&t.minPitch<0)throw Error(`minPitch must be greater than or equal to 0`);if(t.maxPitch!=null&&t.maxPitch>180)throw Error(`maxPitch must be less than or equal to 180`);if(this._camera=new tp({minZoom:t.minZoom,maxZoom:t.maxZoom,minPitch:t.minPitch,maxPitch:t.maxPitch,bearingSnap:t.bearingSnap,zoomSnap:t.zoomSnap,renderWorldCopies:t.renderWorldCopies,centerClampedToGround:t.centerClampedToGround,terrain:this.terrain,transformConstrain:t.transformConstrain,requestRenderFrame:e=>this._requestRenderFrame(e),cancelRenderFrame:e=>this._cancelRenderFrame(e),transformCameraUpdate:t.transformCameraUpdate,stopHandlers:()=>this._handlers?.stop(false)}),this._camera.setEventedParent(this),this._interactive=t.interactive,this._maxTileCacheSize=t.maxTileCacheSize,this._maxTileCacheZoomLevels=t.maxTileCacheZoomLevels,this._canvasContextAttributes={...t.canvasContextAttributes},this._trackResize=t.trackResize===true,this._terrainSkirtLength=t.terrainSkirtLength,this._refreshExpiredTiles=t.refreshExpiredTiles===true,this._fadeDuration=t.fadeDuration,this._crossSourceCollisions=t.crossSourceCollisions===true,this._collectResourceTiming=t.collectResourceTiming===true,this._locale={...dp,...t.locale},this._clickTolerance=t.clickTolerance,this._overridePixelRatio=t.pixelRatio,this._maxCanvasSize=t.maxCanvasSize,this._zoomLevelsToOverscale=t.zoomLevelsToOverscale,this.cancelPendingTileRequestsWhileZooming=t.cancelPendingTileRequestsWhileZooming===true,this.setAnisotropicFilterPitch(t.anisotropicFilterPitch),t.reduceMotion!==void 0&&(Nr.prefersReducedMotion=t.reduceMotion),this._imageQueueHandle=Rr.addThrottleControl(()=>this.isMoving()),this._requestManager=new zr(t.transformRequest),this._container=this._resolveContainer(t.container),t.maxBounds&&this.setMaxBounds(t.maxBounds),this._setupContainer(),this._setupPainter(),!this.painter)return;this.on(`move`,()=>this._update(false)),this.on(`moveend`,()=>this._update(false)),this.on(`zoom`,()=>this._update(true)),this.on(`terrain`,()=>{this.painter.terrainFacilitator.depthDirty=true,this._update(true);}),this.once(`idle`,()=>this._idleTriggered=true),this._handlers=new ep(this,this._camera,t),typeof window<`u`&&(this._ownerWindow.addEventListener(`online`,this._onWindowOnline,false),this._setupResizeObserver());let n=typeof t.hash==`string`&&t.hash||void 0;this._hash=t.hash?new Qd(n).addTo(this):void 0,this._hash?._onHashChange()||(this.jumpTo({center:t.center,elevation:t.elevation,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch,roll:t.roll}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,Dt({},t.fitBoundsOptions,{duration:0}))));let r=typeof t.style==`string`||t.style?.projection?.type!==`globe`;this.resize(null,r),this._localIdeographFontFamily=t.localIdeographFontFamily,this._validateStyle=t.validateStyle,t.style&&this.setStyle(t.style,{localIdeographFontFamily:t.localIdeographFontFamily}),t.attributionControl&&this.addControl(new rp(typeof t.attributionControl==`boolean`?void 0:t.attributionControl)),t.maplibreLogo&&this.addControl(new ip,t.logoPosition),this.on(`style.load`,()=>{if(r||this._resizeTransform(),this._camera.transform.unmodified){let e=Ot(this.style.stylesheet,[`center`,`zoom`,`bearing`,`pitch`,`roll`]);this.jumpTo(e);}}),this.on(`data`,e=>{this._update(e.dataType===`style`),this.fire(e.dataType===`style`?new Hr(`styledata`,e):new K(`sourcedata`,e));}),this.on(`dataloading`,e=>{this.fire(e.dataType===`style`?new Hr(`styledataloading`,e):new K(`sourcedataloading`,e));}),this.on(`dataabort`,e=>{this.fire(new K(`sourcedataabort`,e));});}_getMapId(){return this._mapId}setGlobalStateProperty(e,t){return this.style.setGlobalStateProperty(e,t),this._update(true)}getGlobalState(){return this.style.getGlobalState()}addControl(e,t){if(t===void 0&&(t=e.getDefaultPosition?e.getDefaultPosition():`top-right`),!e?.onAdd)return this.fire(new Vn(Error(`Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.`)));let n=e.onAdd(this);this._controls.push(e);let r=this._controlPositions[t];return t.includes(`bottom`)?r.insertBefore(n,r.firstChild):r.appendChild(n),this}removeControl(e){if(!e?.onRemove)return this.fire(new Vn(Error(`Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.`)));let t=this._controls.indexOf(e);return t>-1&&this._controls.splice(t,1),e.onRemove(this),this}hasControl(e){return this._controls.includes(e)}coveringTiles(e){return Pa(this._camera.transform,e)}setTransformCameraUpdate(e){this._camera.transformCameraUpdate=e;}getCenter(){return new dm(this._camera.transform.center.lng,this._camera.transform.center.lat)}setCenter(e,t){return this._camera.setCenter(e,t),this}getCenterElevation(){return this._camera.transform.elevation}setCenterElevation(e,t){return this._camera.setCenterElevation(e,t),this}setCenterClampedToGround(e){this._camera.setCenterClampedToGround(e);}panBy(e,t,n){return this._camera.panBy(e,t,n),this}panTo(e,t,n){return this._camera.panTo(e,t,n),this}getZoom(){return this._camera.transform.zoom}setZoom(e,t){return this._camera.setZoom(e,t),this}zoomTo(e,t,n){return this._camera.zoomTo(e,t,n),this}zoomIn(e,t){return this._camera.zoomIn(e,t),this}zoomOut(e,t){return this._camera.zoomOut(e,t),this}getVerticalFieldOfView(){return this._camera.transform.fov}setVerticalFieldOfView(e,t){return this._camera.setVerticalFieldOfView(e,t),this}getBearing(){return this._camera.transform.bearing}setBearing(e,t){return this._camera.setBearing(e,t),this}getZoomSnap(){return this._camera.getZoomSnap()}setZoomSnap(e){return this._camera.setZoomSnap(e),this}getPadding(){return this._camera.transform.padding}setPadding(e,t){return this._camera.setPadding(e,t),this}rotateTo(e,t,n){return this._camera.rotateTo(e,t,n),this}resetNorth(e,t){return this._camera.resetNorth(e,t),this}resetNorthPitch(e,t){return this._camera.resetNorthPitch(e,t),this}snapToNorth(e,t){return this._camera.snapToNorth(e,t),this}getPitch(){return this._camera.transform.pitch}setPitch(e,t){return this._camera.setPitch(e,t),this}getRoll(){return this._camera.transform.roll}setRoll(e,t){return this._camera.setRoll(e,t),this}cameraForBounds(e,t){return this._camera.cameraForBounds(e,t)}fitBounds(e,t,n){return this._camera.fitBounds(e,t,n),this}fitScreenCoordinates(e,t,n,r,i){return this._camera.fitScreenCoordinates(e,t,n,r,i),this}jumpTo(e,t){return this._camera.jumpTo(e,t),this}calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i){return this._camera.calculateCameraOptionsFromCameraLngLatAltRotation(e,t,n,r,i)}easeTo(e,t){return this._camera.easeTo(e,t),this}flyTo(e,t){return this._camera.flyTo(e,t),this}stop(){return this._camera.stop(),this}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLat(dm.convert(e),this._camera.transform):null}getCenterClampedToGround(){return this._camera.getCenterClampedToGround()}calculateCameraOptionsFromTo(e,t,n,r){return r==null&&this.terrain&&(r=this.terrain.getElevationForLngLat(n,this._camera.transform)),this._camera.calculateCameraOptionsFromTo(e,t,n,r)}resize(e,t=true){if(this._lostContextStyle.style!==null)return this;this._resizeInternal(t);let n=!this._camera._moving;return n&&(this.stop(),this.fire(new G(`movestart`,e)).fire(new G(`move`,e))),this.fire(new Br(`resize`,e)),n&&this.fire(new G(`moveend`,e)),this}_resizeInternal(e=true){let[t,n]=this._containerDimensions(),r=this._getClampedPixelRatio(t,n);if(this._resizeCanvas(t,n,r),this.painter.resize(t,n,r),this.painter.overLimit()){let e=this.painter.context.gl;this._maxCanvasSize=[e.drawingBufferWidth,e.drawingBufferHeight];let r=this._getClampedPixelRatio(t,n);this._resizeCanvas(t,n,r),this.painter.resize(t,n,r);}this._resizeTransform(e);}_resizeTransform(e=true){let[t,n]=this._containerDimensions();this._camera.transform.resize(t,n,e),this._camera._requestedCameraState?.resize(t,n,e);}_getClampedPixelRatio(e,t){let{0:n,1:r}=this._maxCanvasSize,i=this.getPixelRatio(),a=e*i,o=t*i,s=a>n?n/a:1,c=o>r?r/o:1;return Math.min(s,c)*i}getPixelRatio(){return this._overridePixelRatio??devicePixelRatio}setPixelRatio(e){this._overridePixelRatio=e,this.resize();}getBounds(){return this._camera.transform.getBounds()}getMaxBounds(){return this._camera.transform.getMaxBounds()}setMaxBounds(e){return this._camera.transform.setMaxBounds(Wi.convert(e)),this._update()}setMinZoom(e){if(e??=-2,e>=-2&&e<=this._camera.transform.maxZoom){let t=this._camera.transform.zoom,n=this._camera.getTransformForUpdate();return n.setMinZoom(e),this._camera.applyUpdatedTransform(n),this._update(),t!==this._camera.transform.zoom&&this.fire(new G(`zoomstart`)).fire(new G(`zoom`)).fire(new G(`zoomend`)).fire(new G(`movestart`)).fire(new G(`move`)).fire(new G(`moveend`)),this}throw Error(`minZoom must be between -2 and the current maxZoom, inclusive`)}getMinZoom(){return this._camera.transform.minZoom}setMaxZoom(e){if(e??=22,e>=this._camera.transform.minZoom){let t=this._camera.transform.zoom,n=this._camera.getTransformForUpdate();return n.setMaxZoom(e),this._camera.applyUpdatedTransform(n),this._update(),t!==this._camera.transform.zoom&&this.fire(new G(`zoomstart`)).fire(new G(`zoom`)).fire(new G(`zoomend`)).fire(new G(`movestart`)).fire(new G(`move`)).fire(new G(`moveend`)),this}throw Error(`maxZoom must be greater than the current minZoom`)}getMaxZoom(){return this._camera.transform.maxZoom}setMinPitch(e){if(e??=0,e<0)throw Error(`minPitch must be greater than or equal to 0`);if(e>=0&&e<=this._camera.transform.maxPitch){let t=this._camera.transform.pitch,n=this._camera.getTransformForUpdate();return n.setMinPitch(e),this._camera.applyUpdatedTransform(n),this._update(),t!==this._camera.transform.pitch&&this.fire(new G(`pitchstart`)).fire(new G(`pitch`)).fire(new G(`pitchend`)).fire(new G(`movestart`)).fire(new G(`move`)).fire(new G(`moveend`)),this}throw Error(`minPitch must be between 0 and the current maxPitch, inclusive`)}getMinPitch(){return this._camera.transform.minPitch}setMaxPitch(e){if(e??=60,e>180)throw Error(`maxPitch must be less than or equal to 180`);if(e>=this._camera.transform.minPitch){let t=this._camera.transform.pitch,n=this._camera.getTransformForUpdate();return n.setMaxPitch(e),this._camera.applyUpdatedTransform(n),this._update(),t!==this._camera.transform.pitch&&this.fire(new G(`pitchstart`)).fire(new G(`pitch`)).fire(new G(`pitchend`)).fire(new G(`movestart`)).fire(new G(`move`)).fire(new G(`moveend`)),this}throw Error(`maxPitch must be greater than the current minPitch`)}getMaxPitch(){return this._camera.transform.maxPitch}getAnisotropicFilterPitch(){return this._anisotropicFilterPitch}setAnisotropicFilterPitch(e){if(e??=20,e>180)throw Error(`anisotropicFilterPitch must be less than or equal to 180`);if(e<0)throw Error(`anisotropicFilterPitch must be greater than or equal to 0`);return this._anisotropicFilterPitch=e,this._update()}getRenderWorldCopies(){return this._camera.transform.renderWorldCopies}setRenderWorldCopies(e){return this._camera.transform.setRenderWorldCopies(e),this._update()}setTransformConstrain(e){return this._camera.transform.setConstrainOverride(e),this._update()}project(e){return this._camera.transform.locationToScreenPoint(dm.convert(e),this.style&&this.terrain)}unproject(e){return this._camera.transform.screenPointToLocation(l.convert(e),this.terrain)}isMoving(){return this._camera.isMoving()||this._handlers?.isMoving()||false}isZooming(){return this._camera.isZooming()||this._handlers?.isZooming()||false}isRotating(){return this._camera.isRotating()||this._handlers?.isRotating()||false}_createDelegatedListener(e,t,n){if(e===`mouseenter`||e===`mouseover`){let r=false;return {layers:t,listener:n,delegates:{mousemove:i=>{let a=t.filter(e=>this.getLayer(e)),o=a.length===0?[]:this.queryRenderedFeatures(i.point,{layers:a});o.length?r||(r=true,n.call(this,new Ur(e,this,i.originalEvent,{features:o}))):r=false;},mouseout:()=>{r=false;}}}}if(e===`mouseleave`||e===`mouseout`){let r=false;return {layers:t,listener:n,delegates:{mousemove:i=>{let a=t.filter(e=>this.getLayer(e));(a.length===0?[]:this.queryRenderedFeatures(i.point,{layers:a})).length?r=true:r&&(r=false,n.call(this,new Ur(e,this,i.originalEvent)));},mouseout:t=>{r&&(r=false,n.call(this,new Ur(e,this,t.originalEvent)));}}}}{let r=e=>{let r=t.filter(e=>this.getLayer(e)),i=r.length===0?[]:this.queryRenderedFeatures(e.point,{layers:r});i.length&&(e.features=i,n.call(this,e),delete e.features);};return {layers:t,listener:n,delegates:{[e]:r}}}}_saveDelegatedListener(e,t){this._delegatedListeners||={},this._delegatedListeners[e]||=[],this._delegatedListeners[e].push(t);}_removeDelegatedListener(e,t,n){if(!this._delegatedListeners?.[e])return;let r=this._delegatedListeners[e];for(let e=0;e<r.length;e++){let i=r[e];if(i.listener===n&&i.layers.length===t.length&&i.layers.every(e=>t.includes(e))){for(let e in i.delegates)this.off(e,i.delegates[e]);r.splice(e,1);return}}}on(e,t,n){if(n===void 0)return super.on(e,t);let r=typeof t==`string`?[t]:t,i=this._createDelegatedListener(e,r,n);this._saveDelegatedListener(e,i);for(let e in i.delegates)this.on(e,i.delegates[e]);return {unsubscribe:()=>{this._removeDelegatedListener(e,r,n);}}}once(e,t,n){if(n===void 0)return super.once(e,t);let r=typeof t==`string`?[t]:t,i=this._createDelegatedListener(e,r,n);for(let t in i.delegates){let a=i.delegates[t];i.delegates[t]=(...t)=>{this._removeDelegatedListener(e,r,n),a(...t);};}this._saveDelegatedListener(e,i);for(let e in i.delegates)this.once(e,i.delegates[e]);return this}off(e,t,n){if(n===void 0)return super.off(e,t);let r=typeof t==`string`?[t]:t;return this._removeDelegatedListener(e,r,n),this}queryRenderedFeatures(e,t){if(!this.style)return [];let n,r=e instanceof l||Array.isArray(e),i=r?e:[[0,0],[this._camera.transform.width,this._camera.transform.height]];if(t||=(r?{}:e)||{},i instanceof l||typeof i[0]==`number`)n=[l.convert(i)];else {let e=l.convert(i[0]),t=l.convert(i[1]);n=[e,new l(t.x,e.y),t,new l(e.x,t.y),e];}return this.style.queryRenderedFeatures(n,t,this._camera.transform)}querySourceFeatures(e,t){return this.style.querySourceFeatures(e,t)}setStyle(e,t){return t=Dt({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},t),t.diff!==false&&t.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&e?(this._diffStyle(e,t),this):(this._localIdeographFontFamily=t.localIdeographFontFamily,this._updateStyle(e,t))}setTransformRequest(e){return this._requestManager.setTransformRequest(e),this}_getUIString(e){let t=this._locale[e];if(t==null)throw Error(`Missing UI string '${e}'`);return t}_updateStyle(e,t){if(this._diffStyleRequest?.abort(),this._diffStyleRequest=null,t.transformStyle&&this.style&&!this.style._loaded){this.style.once(`style.load`,()=>this._updateStyle(e,t));return}let n=this.style&&t.transformStyle?this.style.serialize():void 0;if(this.style&&(this.style.setEventedParent(null),this.style._remove(!e)),e)this.style=new fc(this,t||{});else return this._frameRequest&&=(this._frameRequest.abort(),null),this.style?.projection?.destroy(),delete this.style,this;return this.style.setEventedParent(this,{style:this.style}),typeof e==`string`?this.style.loadURL(e,t,n):this.style.loadJSON(e,t,n),this}_lazyInitEmptyStyle(){this.style||(this.style=new fc(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty());}async _diffStyle(e,t){if(this._diffStyleRequest?.abort(),typeof e==`string`){let n=e;this._diffStyleRequest=new AbortController;let r=this._diffStyleRequest;try{let e=await this._requestManager.transformRequest(n,`Style`);if(r.signal.aborted){this._diffStyleRequest=null;return}let i=await Pn(e,r);this._diffStyleRequest=null,this._updateDiff(i.data,t);}catch(e){this._diffStyleRequest=null,xn(e)||this.fire(new Vn(it(e)));}}else typeof e==`object`&&(this._diffStyleRequest=null,this._updateDiff(e,t));}_updateDiff(e,t){try{this.style.setState(e,t)&&this._update(true);}catch(n){Vt(`Unable to perform style diff: ${it(n).message}. Rebuilding the style from scratch.`),this._updateStyle(e,t);}}getStyle(){if(this.style)return this.style.serialize()}_getStyleAndImages(){return this.style?{style:this.style.serialize(),images:this.style.imageManager.cloneImages()}:{style:null,images:{}}}isStyleLoaded(){if(!this.style){Vt(`There is no style added to the map.`);return}return this.style.loaded()}addSource(e,t){return this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(true)}isSourceLoaded(e){let t=this.style?.tileManagers[e];if(t===void 0){this.fire(new Vn(Error(`There is no tile manager with ID '${e}'`)));return}return t.loaded()}setTerrain(e,t={}){if(this.style._checkLoaded(),e&&jc$1(this,Ec$1.terrain,{value:e},t))return this;if(this._terrainDataCallback&&this.style.off(`data`,this._terrainDataCallback),!e)this.terrain&&this.terrain.destroy(),this.terrain=null,this.painter.renderToTexture=null,this._camera.terrain=null,this._camera.transform.setMinElevationForCurrentTile(0),this.getCenterClampedToGround()&&this._camera.transform.setElevation(0);else {let t=this.style.tileManagers[e.source];if(!t)throw Error(`cannot load terrain, because there exists no source with ID: ${e.source}`);this.terrain===null&&t.reload();for(let t in this.style._layers){let n=this.style._layers[t];n.type===`hillshade`&&n.source===e.source&&Vt(`You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.`),n.type===`color-relief`&&n.source===e.source&&Vt(`You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.`);}this.terrain&&this.terrain.destroy(),this.terrain=new cp(this.painter,t,e,this._terrainSkirtLength),this.painter.renderToTexture=new up(this.painter,this.terrain),this._camera.terrain=this.terrain,this._camera.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom)),this._camera.transform.setElevation(this.terrain.getElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom)),this._terrainDataCallback=t=>this._handleTerrainDataEvent(t,e.source),this.style.on(`data`,this._terrainDataCallback);}return this.fire(new qr({terrain:e})),this}_handleTerrainDataEvent(e,t){if(e.dataType===`style`){this.terrain.tileManager.releaseAllRTT();return}let n=e.sourceId===t;if(n&&this.terrain.resetElevationCache(),n&&e.tile&&!this._camera.elevationFreeze&&(this._camera.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom)),this.getCenterClampedToGround()&&this._camera.transform.setElevation(this.terrain.getElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom))),e.tile){if(e.source?.type===`image`){this.terrain.tileManager.releaseAllRTT();return}this.terrain.tileManager.releaseRTT(e.tile.tileID);}}getTerrain(){return this.terrain?.options??null}areTilesLoaded(){let e=this.style?.tileManagers;for(let t of Object.values(e))if(!t.areTilesLoaded())return false;return true}removeSource(e){return this.style.removeSource(e),this._update(true)}getSource(e){return this.style?.getSource(e)}setSourceTileLodParams(e,t,n){if(n){let r=this.getSource(n);if(!r)throw Error(`There is no source with ID "${n}", cannot set LOD parameters`);r.calculateTileZoom=Aa(Math.max(1,e),Math.max(1,t));}else for(let n in this.style.tileManagers)this.style.tileManagers[n].getSource().calculateTileZoom=Aa(Math.max(1,e),Math.max(1,t));return this._update(true),this}refreshTiles(e,t){let n=this.style.tileManagers[e];if(!n)throw Error(`There is no tile manager with ID "${e}", cannot refresh tile`);t===void 0?n.reload(true):n.refreshTiles(t.map(e=>new Nv(e.z,e.x,e.y)));}addImage(e,t,n={}){this._lazyInitEmptyStyle();let r=this._createStyleImage(t,n);return r?(this.style.addImage(e,r),r.userImage?.onAdd&&r.userImage.onAdd(this,e),this):this}setMissingStyleImageResolver(e){return this._missingStyleImageResolver=e,this.style?.setMissingImageResolver(e),this}_createStyleImage(e,t={}){let{pixelRatio:n=1,sdf:r=false,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}=t;if(e instanceof HTMLImageElement||Yt(e)){let{width:t,height:l,data:u}=Nr.getImageData(e);return {data:new mf$1({width:t,height:l},u),pixelRatio:n,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c,sdf:r,version:0}}if(e.width===void 0||e.height===void 0)return this.fire(new Vn(Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))),null;{let{width:t,height:l,data:u}=e,d=e;return {data:new mf$1({width:t,height:l},new Uint8Array(u)),pixelRatio:n,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c,sdf:r,version:0,userImage:d}}}updateImage(e,t){let n=this.style.getImage(e);if(!n)return this.fire(new Vn(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));let{width:r,height:i,data:a}=t instanceof HTMLImageElement||Yt(t)?Nr.getImageData(t):t;if(r===void 0||i===void 0)return this.fire(new Vn(Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(r!==n.data.width||i!==n.data.height)return this.fire(new Vn(Error(`The width and height of the updated image must be that same as the previous version of the image`)));let o=!(t instanceof HTMLImageElement||Yt(t));return n.data.replace(a,o),this.style.updateImage(e,n),this}getImage(e){return this.style.getImage(e)}hasImage(e){return e?!!this.style.getImage(e):(this.fire(new Vn(Error(`Missing required image id`))),false)}removeImage(e){this.style.removeImage(e);}async loadImage(e){return Rr.getImage(await this._requestManager.transformRequest(e,`Image`),new AbortController)}listImages(){return this.style?.listImages()??[]}addLayer(e,t){return this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(true)}moveLayer(e,t){return this.style.moveLayer(e,t),this._update(true)}removeLayer(e){return this.style.removeLayer(e),this._update(true)}getLayer(e){return this.style?.getLayer(e)}getLayersOrder(){return this.style?.getLayersOrder()??[]}setLayerZoomRange(e,t,n){return this.style.setLayerZoomRange(e,t,n),this._update(true)}setFilter(e,t,n={}){return this.style?.setFilter(e,t,n),this._update(true)}getFilter(e){return this.style.getFilter(e)}setPaintProperty(e,t,n,r={}){return this.style?.setPaintProperty(e,t,n,r),this._update(true)}getPaintProperty(e,t){return this.style.getPaintProperty(e,t)}setLayoutProperty(e,t,n,r={}){return this.style.setLayoutProperty(e,t,n,r),this._update(true)}getLayoutProperty(e,t){return this.style.getLayoutProperty(e,t)}setGlyphs(e,t={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(e,t),this._update(true)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(e,t,n={}){return this._lazyInitEmptyStyle(),this.style.addSprite(e,t,n,e=>{e||this._update(true);}),this}removeSprite(e){return this._lazyInitEmptyStyle(),this.style.removeSprite(e),this._update(true)}getSprite(){return this.style.getSprite()}setSprite(e,t={}){return this._lazyInitEmptyStyle(),this.style.setSprite(e,t,e=>{e||this._update(true);}),this}setLight(e,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(e,t),this._update(true)}getLight(){return this.style.getLight()}setSky(e,t={}){return this._lazyInitEmptyStyle(),this.style.setSky(e,t),this._update(true)}getSky(){return this.style.getSky()}setFeatureState(e,t){return this.style.setFeatureState(e,t),this._update()}removeFeatureState(e,t){return this.style.removeFeatureState(e,t),this._update()}getFeatureState(e){return this.style.getFeatureState(e)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let e=0,t=0;return this._container&&(e=this._container.clientWidth||400,t=this._container.clientHeight||300),[e,t]}_setupResizeObserver(){let e=false,t=Zd(e=>{this._trackResize&&!this._removed&&(this.resize(e),this.redraw());},50),n=this._ownerWindow.ResizeObserver??ResizeObserver;this._resizeObserver=new n(n=>{if(!e){e=true;return}t(n);}),this._resizeObserver.observe(this._container);}_resolveContainer(e){if(typeof e==`string`){let t=document.getElementById(e);if(!t)throw Error(`Container '${e}' not found.`);return t}if(e instanceof HTMLElement||e&&typeof e==`object`&&e.nodeType===1)return e;throw Error(`Invalid type: 'container' must be a String or HTMLElement.`)}_setupContainer(){let e=this._container;e.classList.add(`maplibregl-map`);let t=this._canvasContainer=W.create(`div`,`maplibregl-canvas-container`,e);this._interactive&&t.classList.add(`maplibregl-interactive`),this._canvas=W.create(`canvas`,`maplibregl-canvas`,t),this._canvas.addEventListener(`webglcontextlost`,this._contextLost,false),this._canvas.addEventListener(`webglcontextrestored`,this._contextRestored,false),this._canvas.setAttribute(`tabindex`,this._interactive?`0`:`-1`),this._canvas.setAttribute(`aria-label`,this._getUIString(`Map.Title`)),this._canvas.setAttribute(`role`,`region`);let n=this._containerDimensions(),r=this._getClampedPixelRatio(n[0],n[1]);this._resizeCanvas(n[0],n[1],r);let i=this._controlContainer=W.create(`div`,`maplibregl-control-container`,e),a=this._controlPositions={};for(let e of [`top-left`,`top-right`,`bottom-left`,`bottom-right`])a[e]=W.create(`div`,`maplibregl-ctrl-${e} `,i);this._container.addEventListener(`scroll`,this._onMapScroll,false);}_resizeCanvas(e,t,n){this._canvas.width=Math.floor(n*e),this._canvas.height=Math.floor(n*t),this._canvas.style.width=`${e}px`,this._canvas.style.height=`${t}px`;}_setupPainter(){let e={...this._canvasContextAttributes,alpha:true,depth:true,stencil:true,premultipliedAlpha:true},t=null;this._canvas.addEventListener(`webglcontextcreationerror`,e=>{t=e;},{once:true});let n=this._canvas.getContext(`webgl2`,e);if(!n){this.fire(new Vn(new Xd(e,t)));return}this.painter=new Yd(n,this._camera.transform);}migrateProjection(e,t){this._camera.migrateProjection(e,t),this.painter.transform=e,this.fire(new Jr({newProjection:this.style.projection.name}));}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(e){return this.style?._loaded?(this._styleDirty||=e,this._sourcesDirty=true,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e);}_render(e){let t=this._idleTriggered?this._fadeDuration:0,n=this.style.projection?.transitionState>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),this._removed)return;let i=false;if(this.style&&this._styleDirty){this._styleDirty=false;let e=this._camera.transform.zoom,n=U();this.style.zoomHistory.update(e,n);let a=new G$1(e,{now:n,fadeDuration:t,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),o=a.crossFadingFactor();(o!==1||o!==this._crossFadingFactor)&&(i=true,this._crossFadingFactor=o),this.style.update(a);}let a=this.style.projection?.transitionState>0!==n;this._camera.transform.setTransitionState(this.style.projection?.transitionState),this.style&&(this._sourcesDirty||a)&&(this._sourcesDirty=false,this.style._updateSources(this._camera.transform)),this.terrain?(this.terrain.tileManager.update(this._camera.transform,this.terrain),this.terrain.resetElevationCache(),this._camera.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom)),!this._camera.elevationFreeze&&this.getCenterClampedToGround()&&this._camera.transform.setElevation(this.terrain.getElevationForLngLatZoom(this._camera.transform.center,this._camera.transform.tileZoom))):(this._camera.transform.setMinElevationForCurrentTile(0),this.getCenterClampedToGround()&&this._camera.transform.setElevation(0)),this._placementDirty=this.style?._updatePlacement(this._camera.transform,this.showCollisionBoxes,t,this._crossSourceCollisions,a),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:t,showPadding:this.showPadding,anisotropicFilterPitch:this.getAnisotropicFilterPitch()}),this.fire(new Br(`render`)),this.loaded()&&!this._loaded&&(this._loaded=true,this.fire(new Br(`load`))),this.style&&(this.style.hasTransitions()||i)&&(this._styleDirty=true),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let o=this._sourcesDirty||this._styleDirty||this._placementDirty;return o||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new Br(`idle`)),this._loaded&&!this._fullyLoaded&&!o&&(this._fullyLoaded=true),this}redraw(){return this.style&&(this._frameRequest&&=(this._frameRequest.abort(),null),this._render(0)),this}remove(){this._hash&&this._hash.remove();for(let e of this._controls)e.onRemove(this);this._controls=[],this._frameRequest&&=(this._frameRequest.abort(),null),this._renderTaskQueue.clear(),this._diffStyleRequest?.abort(),this.painter.destroy(),this._handlers.destroy(),this.setStyle(null),typeof window<`u`&&this._ownerWindow.removeEventListener(`online`,this._onWindowOnline,false),Rr.removeThrottleControl(this._imageQueueHandle),this._resizeObserver?.disconnect();let e=this.painter.context.gl.getExtension(`WEBGL_lose_context`);e?.loseContext&&e.loseContext(),this._canvas.removeEventListener(`webglcontextrestored`,this._contextRestored,false),this._canvas.removeEventListener(`webglcontextlost`,this._contextLost,false),this._canvasContainer.remove(),this._controlContainer.remove(),this._container.removeEventListener(`scroll`,this._onMapScroll,false),this._container.classList.remove(`maplibregl-map`),this._removed=true,this.fire(new Br(`remove`));}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,Nr.frame(this._frameRequest,e=>{this._frameRequest=null;try{this._render(e);}catch(e){if(!xn(e))throw e}},()=>{},this._ownerWindow));}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._update());}get showPadding(){return !!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,e?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._update());}get repaint(){return !!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(e){this._vertices=e,this._update();}get version(){return fp}getCameraTargetElevation(){return this._camera.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(e){return this._lazyInitEmptyStyle(),this.style.setProjection(e),this._update(true)}};const hp={showCompass:true,showZoom:true,visualizePitch:false,visualizeRoll:true};var gp=class{constructor(e){this._updateZoomButtons=()=>{let e=this._map.getZoom(),t=e===this._map.getMaxZoom(),n=e===this._map.getMinZoom();this._zoomInButton.disabled=t,this._zoomOutButton.disabled=n,this._zoomInButton.setAttribute(`aria-disabled`,t.toString()),this._zoomOutButton.setAttribute(`aria-disabled`,n.toString());},this._rotateCompassArrow=()=>{let e=this._map.getPitch(),n=this._map.getRoll(),r=this._map.getBearing(),i=1/Math.cos(sn(e))**.5;if(this.options.visualizePitch&&this.options.visualizeRoll){this._compassIcon.style.transform=`scale(${i}) rotateZ(${-n}deg) rotateX(${e}deg) rotateZ(${-r}deg)`;return}if(this.options.visualizePitch){this._compassIcon.style.transform=`scale(${i}) rotateX(${e}deg) rotateZ(${-r}deg)`;return}if(this.options.visualizeRoll){this._compassIcon.style.transform=`rotate(${-r-n}deg)`;return}this._compassIcon.style.transform=`rotate(${-r}deg)`;},this._setButtonTitle=(e,t)=>{let n=this._map._getUIString(`NavigationControl.${t}`);e.title=n,e.setAttribute(`aria-label`,n);},this.options=Dt({},hp,e),this._container=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._container.addEventListener(`contextmenu`,e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton(`maplibregl-ctrl-zoom-in`,e=>this._map.zoomIn({},{originalEvent:e})),W.create(`span`,`maplibregl-ctrl-icon`,this._zoomInButton).setAttribute(`aria-hidden`,`true`),this._zoomOutButton=this._createButton(`maplibregl-ctrl-zoom-out`,e=>this._map.zoomOut({},{originalEvent:e})),W.create(`span`,`maplibregl-ctrl-icon`,this._zoomOutButton).setAttribute(`aria-hidden`,`true`)),this.options.showCompass&&(this._compass=this._createButton(`maplibregl-ctrl-compass`,e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e});}),this._compassIcon=W.create(`span`,`maplibregl-ctrl-icon`,this._compass),this._compassIcon.setAttribute(`aria-hidden`,`true`));}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,`ZoomIn`),this._setButtonTitle(this._zoomOutButton,`ZoomOut`),this._map.on(`zoom`,this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,`ResetBearing`),this.options.visualizePitch&&this._map.on(`pitch`,this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on(`roll`,this._rotateCompassArrow),this._map.on(`rotate`,this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new _p(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){this._container.remove(),this.options.showZoom&&this._map.off(`zoom`,this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(`pitch`,this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off(`roll`,this._rotateCompassArrow),this._map.off(`rotate`,this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map;}_createButton(e,t){let n=W.create(`button`,e,this._container);return n.type=`button`,n.addEventListener(`click`,t),n}},_p=class{constructor(e,t,n=false){this.mousedown=e=>{this.startMove(e,W.mousePos(this.element,e)),window.addEventListener(`mousemove`,this.mousemove),window.addEventListener(`mouseup`,this.mouseup);},this.mousemove=e=>{this.move(e,W.mousePos(this.element,e));},this.mouseup=e=>{this._rotatePitchHandler.dragEnd(e),this.offTemp();},this.touchstart=e=>{e.targetTouches.length===1?(this._startPos=this._lastPos=W.touchPos(this.element,e.targetTouches)[0],this.startMove(e,this._startPos),window.addEventListener(`touchmove`,this.touchmove,{passive:false}),window.addEventListener(`touchend`,this.touchend)):this.reset();},this.touchmove=e=>{e.targetTouches.length===1?(this._lastPos=W.touchPos(this.element,e.targetTouches)[0],this.move(e,this._lastPos)):this.reset();},this.touchend=e=>{e.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp();},this.reset=()=>{this._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp();},this._clickTolerance=10,this.element=t;let r=new Sf;this._rotatePitchHandler=new _f({clickTolerance:3,move:(e,r)=>{let i=t.getBoundingClientRect(),a=new l((i.bottom-i.top)/2,(i.right-i.left)/2);return {bearingDelta:dn(new l(e.x,r.y),r,a),pitchDelta:n?(r.y-e.y)*-0.5:void 0}},moveStateManager:r,enable:true,assignEvents:()=>{}}),this.map=e,t.addEventListener(`mousedown`,this.mousedown),t.addEventListener(`touchstart`,this.touchstart,{passive:false}),t.addEventListener(`touchcancel`,this.reset);}startMove(e,t){this._rotatePitchHandler.dragStart(e,t),W.disableDrag();}move(e,t){let n=this.map,{bearingDelta:r,pitchDelta:i}=this._rotatePitchHandler.dragMove(e,t)||{};r&&n.setBearing(n.getBearing()+r),i&&n.setPitch(n.getPitch()+i);}off(){let e=this.element;e.removeEventListener(`mousedown`,this.mousedown),e.removeEventListener(`touchstart`,this.touchstart),window.removeEventListener(`touchmove`,this.touchmove),window.removeEventListener(`touchend`,this.touchend),e.removeEventListener(`touchcancel`,this.reset),this.offTemp();}offTemp(){W.enableDrag(),window.removeEventListener(`mousemove`,this.mousemove),window.removeEventListener(`mouseup`,this.mouseup),window.removeEventListener(`touchmove`,this.touchmove),window.removeEventListener(`touchend`,this.touchend);}};let vp;async function yp(e=false){if(vp!==void 0&&!e)return vp;if(window.navigator.permissions===void 0)return vp=!!window.navigator.geolocation,vp;try{vp=(await window.navigator.permissions.query({name:`geolocation`})).state!==`denied`;}catch{vp=!!window.navigator.geolocation;}return vp}function bp(e,t,n,r=false){if(r||!n.getCoveringTilesDetailsProvider().allowWorldCopies())return e?.wrap();let i=new dm(e.lng,e.lat);if(e=new dm(e.lng,e.lat),t){let r=new dm(e.lng-360,e.lat),i=new dm(e.lng+360,e.lat),a=n.locationToScreenPoint(e).distSqr(t);n.locationToScreenPoint(r).distSqr(t)<a?e=r:n.locationToScreenPoint(i).distSqr(t)<a&&(e=i);}for(;Math.abs(e.lng-n.center.lng)>180;){let t=n.locationToScreenPoint(e);if(t.x>=0&&t.y>=0&&t.x<=n.width&&t.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360;}return e.lng!==i.lng&&n.isPointOnMapSurface(n.locationToScreenPoint(e))?e:i}const xp={center:`translate(-50%,-50%)`,top:`translate(-50%,0)`,"top-left":`translate(0,0)`,"top-right":`translate(-100%,0)`,bottom:`translate(-50%,-100%)`,"bottom-left":`translate(0,-100%)`,"bottom-right":`translate(-100%,-100%)`,left:`translate(0,-50%)`,right:`translate(-100%,-50%)`};function Sp(e,t,n){let r=e.classList;for(let e in xp)r.remove(`maplibregl-${n}-anchor-${e}`);r.add(`maplibregl-${n}-anchor-${t}`);}var Cp=class extends Bn{},wp=class extends Bn{},Tp=class extends Hn{constructor(e){if(super(),this._onClick=e=>{this.fire(new wp(`click`,{originalEvent:e}));},this._onKeyPress=e=>{(e.code===`Space`||e.code===`Enter`)&&this.togglePopup();},this._onMapClick=e=>{let t=e.originalEvent.target,n=this._element;this._popup&&(t===n||n.contains(t))&&this.togglePopup();},this._update=e=>{if(!this._map)return;let t=this._map.loaded()&&!this._map.isMoving();(e?.type===`terrain`||e?.type===`render`&&!t)&&this._map.once(`render`,this._update),this._lngLat=bp(this._lngLat,this._flatPos,this._map._camera.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map._camera.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let n=``;this._rotationAlignment===`viewport`||this._rotationAlignment===`auto`?n=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===`map`&&(n=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let r=``;this._pitchAlignment===`viewport`||this._pitchAlignment===`auto`?r=`rotateX(0deg)`:this._pitchAlignment===`map`&&(r=`rotateX(${this._map.getPitch()}deg)`),!this._subpixelPositioning&&(!e||e.type===`moveend`)&&(this._pos=this._pos.round()),this._element.style.transform=`${xp[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${r} ${n}`,Nr.frameAsync(new AbortController,this._map._ownerWindow).then(()=>{this._updateOpacity(e?.type===`moveend`);}).catch(()=>{});},this._onMove=e=>{if(!this._isDragging){let t=this._clickTolerance||this._map._clickTolerance;this._isDragging=e.point.dist(this._pointerdownPos)>=t;}this._isDragging&&(this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=`none`,this._state===`pending`&&(this._state=`active`,this.fire(new Cp(`dragstart`))),this.fire(new Cp(`drag`)));},this._onUp=()=>{this._element.style.pointerEvents=`auto`,this._positionDelta=null,this._pointerdownPos=null,this._isDragging=false,this._map.off(`mousemove`,this._onMove),this._map.off(`touchmove`,this._onMove),this._state===`active`&&this.fire(new Cp(`dragend`)),this._state=`inactive`;},this._addDragHandler=e=>{this._element.contains(e.originalEvent.target)&&(e.preventDefault(),this._positionDelta=e.point.sub(this._pos).add(this._offset),this._pointerdownPos=e.point,this._state=`pending`,this._map.on(`mousemove`,this._onMove),this._map.on(`touchmove`,this._onMove),this._map.once(`mouseup`,this._onUp),this._map.once(`touchend`,this._onUp));},this._anchor=e?.anchor||`center`,this._color=e?.color||`#3FB1CE`,this._scale=e?.scale||1,this._draggable=e?.draggable||false,this._clickTolerance=e?.clickTolerance||0,this._subpixelPositioning=e?.subpixelPositioning||false,this._isDragging=false,this._roleManaged=false,this._state=`inactive`,this._rotation=e?.rotation||0,this._rotationAlignment=e?.rotationAlignment||`auto`,this._pitchAlignment=e?.pitchAlignment&&e.pitchAlignment!==`auto`?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e?.opacity,e?.opacityWhenCovered),e?.element)this._element=e.element,this._offset=l.convert(e?.offset||[0,0]);else {this._defaultMarker=true,this._element=W.create(`div`);let t=W.createNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttributeNS(null,`display`,`block`),t.setAttributeNS(null,`height`,`41px`),t.setAttributeNS(null,`width`,`27px`),t.setAttributeNS(null,`viewBox`,`0 0 27 41`);let n=W.createNS(`http://www.w3.org/2000/svg`,`g`);n.setAttributeNS(null,`stroke`,`none`),n.setAttributeNS(null,`stroke-width`,`1`),n.setAttributeNS(null,`fill`,`none`),n.setAttributeNS(null,`fill-rule`,`evenodd`);let r=W.createNS(`http://www.w3.org/2000/svg`,`g`);r.setAttributeNS(null,`fill-rule`,`nonzero`);let i=W.createNS(`http://www.w3.org/2000/svg`,`g`);i.setAttributeNS(null,`transform`,`translate(3.0, 29.0)`),i.setAttributeNS(null,`fill`,`#000000`);for(let e of [{rx:`10.5`,ry:`5.25002273`},{rx:`10.5`,ry:`5.25002273`},{rx:`9.5`,ry:`4.77275007`},{rx:`8.5`,ry:`4.29549936`},{rx:`7.5`,ry:`3.81822308`},{rx:`6.5`,ry:`3.34094679`},{rx:`5.5`,ry:`2.86367051`},{rx:`4.5`,ry:`2.38636864`}]){let t=W.createNS(`http://www.w3.org/2000/svg`,`ellipse`);t.setAttributeNS(null,`opacity`,`0.04`),t.setAttributeNS(null,`cx`,`10.5`),t.setAttributeNS(null,`cy`,`5.80029008`),t.setAttributeNS(null,`rx`,e.rx),t.setAttributeNS(null,`ry`,e.ry),i.appendChild(t);}let a=W.createNS(`http://www.w3.org/2000/svg`,`g`);a.setAttributeNS(null,`fill`,this._color);let o=W.createNS(`http://www.w3.org/2000/svg`,`path`);o.setAttributeNS(null,`d`,`M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z`),a.appendChild(o);let s=W.createNS(`http://www.w3.org/2000/svg`,`g`);s.setAttributeNS(null,`opacity`,`0.25`),s.setAttributeNS(null,`fill`,`#000000`);let c=W.createNS(`http://www.w3.org/2000/svg`,`path`);c.setAttributeNS(null,`d`,`M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z`),s.appendChild(c);let l$1=W.createNS(`http://www.w3.org/2000/svg`,`g`);l$1.setAttributeNS(null,`transform`,`translate(6.0, 7.0)`),l$1.setAttributeNS(null,`fill`,`#FFFFFF`);let u=W.createNS(`http://www.w3.org/2000/svg`,`g`);u.setAttributeNS(null,`transform`,`translate(8.0, 8.0)`);let d=W.createNS(`http://www.w3.org/2000/svg`,`circle`);d.setAttributeNS(null,`fill`,`#000000`),d.setAttributeNS(null,`opacity`,`0.25`),d.setAttributeNS(null,`cx`,`5.5`),d.setAttributeNS(null,`cy`,`5.5`),d.setAttributeNS(null,`r`,`5.4999962`);let f=W.createNS(`http://www.w3.org/2000/svg`,`circle`);f.setAttributeNS(null,`fill`,`#FFFFFF`),f.setAttributeNS(null,`cx`,`5.5`),f.setAttributeNS(null,`cy`,`5.5`),f.setAttributeNS(null,`r`,`5.4999962`),u.appendChild(d),u.appendChild(f),r.appendChild(i),r.appendChild(a),r.appendChild(s),r.appendChild(l$1),r.appendChild(u),t.appendChild(r),t.setAttributeNS(null,`height`,`${41*this._scale}px`),t.setAttributeNS(null,`width`,`${27*this._scale}px`),this._element.appendChild(t),this._offset=l.convert(e?.offset||[0,-14]);}if(this._element.classList.add(`maplibregl-marker`),this._element.addEventListener(`dragstart`,e=>{e.preventDefault();}),this._element.addEventListener(`mousedown`,e=>{e.preventDefault();}),Sp(this._element,this._anchor,`marker`),e?.className)for(let t of e.className.split(` `))this._element.classList.add(t);this._popup=null;}addTo(e){return this.remove(),this._map=e,this._defaultMarker&&!this._element.hasAttribute(`aria-label`)&&this._element.setAttribute(`aria-label`,e._getUIString(`Marker.Title`)),this._updateAccessibilityRole(),e.getCanvasContainer().appendChild(this._element),e.on(`move`,this._update),e.on(`moveend`,this._update),e.on(`terrain`,this._update),e.on(`projectiontransition`,this._update),this._element.addEventListener(`click`,this._onClick),this.setDraggable(this._draggable),this._update(),this._map.on(`click`,this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off(`click`,this._onMapClick),this._map.off(`move`,this._update),this._map.off(`moveend`,this._update),this._map.off(`terrain`,this._update),this._map.off(`projectiontransition`,this._update),this._map.off(`mousedown`,this._addDragHandler),this._map.off(`touchstart`,this._addDragHandler),this._map.off(`mouseup`,this._onUp),this._map.off(`touchend`,this._onUp),this._map.off(`mousemove`,this._onMove),this._map.off(`touchmove`,this._onMove),delete this._map),this._element.removeEventListener(`click`,this._onClick),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=dm.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(`keypress`,this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(`tabindex`)),e){if(!(`offset`in e.options)){let t=13.5/Math.SQRT2;e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[t,(24.6+t)*-1],"bottom-right":[-t,(24.6+t)*-1],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset;}this._popup=e,this._originalTabIndex=this._element.getAttribute(`tabindex`),this._originalTabIndex||this._element.setAttribute(`tabindex`,`0`),this._element.addEventListener(`keypress`,this._onKeyPress);}return this._updateAccessibilityRole(),this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){let e=this._popup;if(this._element.style.opacity===this._opacityWhenCovered)return this;if(e)e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map));else return this;return this}_updateOpacity(e=false){let t=this._map?.terrain,n=this._map._camera.transform.isLocationOccluded(this._lngLat);if(!t||n){let e=n?this._opacityWhenCovered:this._opacity;this._element.style.opacity!==e&&(this._element.style.opacity=e,this._element.classList.toggle(`maplibregl-marker-covered`,n));return}if(e)this._opacityTimeout=null;else {if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null;},100);}let r=this._map,i=r.terrain.depthAtPoint(this._pos),a=r.terrain.getElevationForLngLat(this._lngLat,r._camera.transform),o=r._camera.transform.lngLatToCameraDepth(this._lngLat,a),s=.006;if(o-i<s){this._element.style.opacity=this._opacity,this._element.classList.remove(`maplibregl-marker-covered`);return}let c=-this._offset.y/r._camera.transform.pixelsPerMeter,l$1=Math.sin(r.getPitch()*Math.PI/180)*c,u=r.terrain.depthAtPoint(new l(this._pos.x,this._pos.y-this._offset.y)),d=r._camera.transform.lngLatToCameraDepth(this._lngLat,a+l$1)-u>s;this._popup?.isOpen()&&d&&this._popup.remove(),this._element.style.opacity=d?this._opacityWhenCovered:this._opacity,this._element.classList.toggle(`maplibregl-marker-covered`,d);}getOffset(){return this._offset}setOffset(e){return this._offset=l.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e);}removeClassName(e){this._element.classList.remove(e);}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._element.classList.toggle(`maplibregl-marker-draggable`,this._draggable),this._map&&(e?(this._map.on(`mousedown`,this._addDragHandler),this._map.on(`touchstart`,this._addDragHandler)):(this._map.off(`mousedown`,this._addDragHandler),this._map.off(`touchstart`,this._addDragHandler))),this._updateAccessibilityRole(),this}isDraggable(){return this._draggable}_updateAccessibilityRole(){if(!this._defaultMarker||this._element.hasAttribute(`role`)&&!this._roleManaged)return;let e=this._draggable||this._popup?`button`:`img`;this._element.setAttribute(`role`,e),this._roleManaged=true;}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||`auto`,this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!==`auto`?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,t){return (this._opacity===void 0||e===void 0&&t===void 0)&&(this._opacity=`1`,this._opacityWhenCovered=`0.2`),e!==void 0&&(this._opacity=String(e)),t!==void 0&&(this._opacityWhenCovered=String(t)),this._map&&this._updateOpacity(true),this}};const Ep={positionOptions:{enableHighAccuracy:false,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:false,showAccuracyCircle:true,showUserLocation:true};let Dp=0,Op=false;var kp=class extends Bn{},Ap=class extends Bn{},jp=class extends Bn{},Mp=class extends Hn{constructor(e){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e)){this._setErrorState(),this.fire(new Ap(`outofmaxbounds`,e)),this._updateMarker(),this._finish();return}if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case `WAITING_ACTIVE`:case `ACTIVE_LOCK`:case `ACTIVE_ERROR`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case `BACKGROUND`:case `BACKGROUND_ERROR`:this._watchState=`BACKGROUND`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background`);break;default:throw Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!==`OFF`&&this._updateMarker(e),(!this.options.trackUserLocation||this._watchState===`ACTIVE_LOCK`)&&this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove(`maplibregl-user-location-dot-stale`),this.fire(new Ap(`geolocate`,e)),this._finish();}},this._updateCamera=e=>{let t=new dm(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,r=this._map.getBearing(),i=Dt({bearing:r},this.options.fitBoundsOptions),a=Wi.fromLngLat(t,n);this._map.fitBounds(a,i,{geolocateSource:true});},this._updateMarker=e=>{if(e){let t=new dm(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(t).addTo(this._map),this._userLocationDotMarker.setLngLat(t).addTo(this._map),this._accuracy=e.coords.accuracy,this._updateCircleRadiusIfNeeded();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();},this._onUpdate=()=>{this._updateCircleRadiusIfNeeded();},this._onError=e=>{if(this._map){if(e.code===1){this._watchState=`OFF`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.disabled=true;let e=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e),this._geolocationWatchID!==void 0&&this._clearWatch();}else if(e.code===3&&Op)return;else this._setErrorState();this._watchState!==`OFF`&&this.options.showUserLocation&&this._dotElement.classList.add(`maplibregl-user-location-dot-stale`),this.fire(new jp(`error`,e)),this._finish();}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},this._onMoveStart=e=>{if(!this._map)return;let t=e?.[0]instanceof ResizeObserverEntry;!e.geolocateSource&&this._watchState===`ACTIVE_LOCK`&&!t&&!this._map.isZooming()&&(this._watchState=`BACKGROUND`,this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this.fire(new kp(`trackuserlocationend`)),this.fire(new kp(`userlocationlostfocus`)));},this._setupUI=()=>{this._map&&(this._container.addEventListener(`contextmenu`,e=>{e.preventDefault();}),this._geolocateButton=W.create(`button`,`maplibregl-ctrl-geolocate`,this._container),W.create(`span`,`maplibregl-ctrl-icon`,this._geolocateButton).setAttribute(`aria-hidden`,`true`),this._geolocateButton.type=`button`,this._geolocateButton.disabled=true);},this._finishSetupUI=e=>{if(this._map){if(e===false){Vt(`Geolocation support is not available so the GeolocateControl will be disabled.`);let e=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.disabled=true,this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e);}else {let e=this._map._getUIString(`GeolocateControl.FindMyLocation`);this._geolocateButton.disabled=false,this._geolocateButton.title=e,this._geolocateButton.setAttribute(`aria-label`,e);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(`aria-pressed`,`false`),this._watchState=`OFF`),this.options.showUserLocation&&(this._dotElement=W.create(`div`,`maplibregl-user-location-dot`),this._userLocationDotMarker=new Tp({element:this._dotElement}),this._circleElement=W.create(`div`,`maplibregl-user-location-accuracy-circle`),this._accuracyCircleMarker=new Tp({element:this._circleElement,pitchAlignment:`map`}),this.options.trackUserLocation&&(this._watchState=`OFF`),this._map.on(`zoom`,this._onUpdate),this._map.on(`move`,this._onUpdate),this._map.on(`rotate`,this._onUpdate),this._map.on(`pitch`,this._onUpdate)),this._geolocateButton.addEventListener(`click`,()=>this.trigger()),this._setup=true,this.options.trackUserLocation&&this._map.on(`movestart`,this._onMoveStart);}},this.options=Dt({},Ep,e);}onAdd(e){return this._map=e,this._container=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._setupUI(),yp().then(e=>this._finishSetupUI(e)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off(`movestart`,this._onMoveStart),this._map.off(`zoom`,this._onUpdate),this._map.off(`move`,this._onUpdate),this._map.off(`rotate`,this._onUpdate),this._map.off(`pitch`,this._onUpdate),this._map=void 0,Dp=0,Op=false;}_isOutOfMapMaxBounds(e){let t=this._map.getMaxBounds(),n=e.coords;return t&&(n.longitude<t.getWest()||n.longitude>t.getEast()||n.latitude<t.getSouth()||n.latitude>t.getNorth())}_setErrorState(){switch(this._watchState){case `WAITING_ACTIVE`:this._watchState=`ACTIVE_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active-error`);break;case `ACTIVE_LOCK`:this._watchState=`ACTIVE_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`);break;case `BACKGROUND`:this._watchState=`BACKGROUND_ERROR`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`);break;case `ACTIVE_ERROR`:case `BACKGROUND_ERROR`:break;case `OFF`:case void 0:break;default:throw Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadiusIfNeeded(){let e=this._userLocationDotMarker.getLngLat();if(!this.options.showUserLocation||!this.options.showAccuracyCircle||!this._accuracy||!e)return;let t=this._map.project(e),n=this._map.unproject([t.x+100,t.y]),r=e.distanceTo(n)/100,i=2*this._accuracy/r;this._circleElement.style.width=`${i.toFixed(2)}px`,this._circleElement.style.height=`${i.toFixed(2)}px`;}trigger(){if(!this._setup)return Vt(`Geolocate control triggered before added to a map`),false;if(this.options.trackUserLocation){switch(this._watchState){case `OFF`:this._watchState=`WAITING_ACTIVE`,this.fire(new kp(`trackuserlocationstart`));break;case `WAITING_ACTIVE`:case `ACTIVE_LOCK`:case `ACTIVE_ERROR`:case `BACKGROUND_ERROR`:Dp--,Op=false,this._watchState=`OFF`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background-error`),this.fire(new kp(`trackuserlocationend`));break;case `BACKGROUND`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-background`),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new kp(`trackuserlocationstart`)),this.fire(new kp(`userlocationfocus`));break;default:throw Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case `WAITING_ACTIVE`:this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case `ACTIVE_LOCK`:this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-active`);break;case `OFF`:break;default:throw Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState===`OFF`&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){this._geolocateButton.classList.add(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`true`),Dp++;let e;Dp>1?(e={maximumAge:6e5,timeout:0},Op=true):(e=this.options.positionOptions,Op=false),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e);}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return true}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(`maplibregl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`false`),this.options.showUserLocation&&this._updateMarker(null);}};const Np={maxWidth:100,unit:`metric`};var Pp=class{constructor(e){this._onMove=()=>{Fp(this._map,this._container,this.options);},this.setUnit=e=>{this.options.unit=e,Fp(this._map,this._container,this.options);},this.options={...Np,...e};}getDefaultPosition(){return `bottom-left`}onAdd(e){return this._map=e,this._container=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-scale`,e.getContainer()),this._map.on(`move`,this._onMove),this._onMove(),this._container}onRemove(){this._container.remove(),this._map.off(`move`,this._onMove),this._map=void 0;}};function Fp(e,t,n){let r=n?.maxWidth||100,i=e._container.clientHeight/2,a=e._container.clientWidth/2,o=e.unproject([a-r/2,i]),s=e.unproject([a+r/2,i]),c=Math.round(e.project(s).x-e.project(o).x),l=Math.min(r,c,e._container.clientWidth),u=o.distanceTo(s);if(n?.unit===`imperial`){let n=3.2808*u;n>5280?Ip(t,l,n/5280,e._getUIString(`ScaleControl.Miles`)):Ip(t,l,n,e._getUIString(`ScaleControl.Feet`));}else n?.unit===`nautical`?Ip(t,l,u/1852,e._getUIString(`ScaleControl.NauticalMiles`)):u>=1e3?Ip(t,l,u/1e3,e._getUIString(`ScaleControl.Kilometers`)):Ip(t,l,u,e._getUIString(`ScaleControl.Meters`));}function Ip(e,t,n,r){let i=Rp(n),a=i/n;e.style.width=`${t*a}px`,e.innerHTML=`${i}&nbsp;${r}`;}function Lp(e){let t=10**Math.ceil(-Math.log(e)/Math.LN10);return Math.round(e*t)/t}function Rp(e){let t=10**(`${Math.floor(e)}`.length-1),n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:Lp(n),t*n}var zp=class extends Bn{},Bp=class extends Hn{constructor(e={}){super(),this._onFullscreenChange=()=>{let e=window.document.fullscreenElement||window.document.webkitFullscreenElement;for(;e?.shadowRoot?.fullscreenElement;)e=e.shadowRoot.fullscreenElement;e===this._container!==this._fullscreen&&this._handleFullscreenChange();},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen();},this._fullscreen=false,this._pseudo=e.pseudo??false,e?.container&&(e.container instanceof HTMLElement?this._container=e.container:Vt(`Full screen control 'container' must be a DOM element.`)),`onfullscreenchange`in document?this._fullscreenchange=`fullscreenchange`:`onmozfullscreenchange`in document?this._fullscreenchange=`mozfullscreenchange`:`onwebkitfullscreenchange`in document?this._fullscreenchange=`webkitfullscreenchange`:`onmsfullscreenchange`in document&&(this._fullscreenchange=`MSFullscreenChange`);}onAdd(e){return this._map=e,this._container||=this._map.getContainer(),this._controlContainer=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._setupUI(),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange);}_setupUI(){let e=this._fullscreenButton=W.create(`button`,`maplibregl-ctrl-fullscreen`,this._controlContainer);W.create(`span`,`maplibregl-ctrl-icon`,e).setAttribute(`aria-hidden`,`true`),e.type=`button`,this._updateTitle(),this._fullscreenButton.addEventListener(`click`,this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange);}_updateTitle(){let e=this._getTitle();this._fullscreenButton.setAttribute(`aria-label`,e),this._fullscreenButton.title=e;}_getTitle(){return this._map._getUIString(this._isFullscreen()?`FullscreenControl.Exit`:`FullscreenControl.Enter`)}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(`maplibregl-ctrl-shrink`),this._fullscreenButton.classList.toggle(`maplibregl-ctrl-fullscreen`),this._updateTitle(),this._fullscreen?(this.fire(new zp(`fullscreenstart`)),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new zp(`fullscreenend`)),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable());}_exitFullscreen(){this._pseudo?this._togglePseudoFullScreen():window.document.exitFullscreen?window.document.exitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen();}_requestFullscreen(){this._pseudo?this._togglePseudoFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen();}_togglePseudoFullScreen(){this._container.classList.toggle(`maplibregl-pseudo-fullscreen`),this._handleFullscreenChange(),this._map.resize();}},Vp=class{constructor(e){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon();},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(`maplibregl-ctrl-terrain`),this._terrainButton.classList.remove(`maplibregl-ctrl-terrain-enabled`),this._map.terrain?(this._terrainButton.classList.add(`maplibregl-ctrl-terrain-enabled`),this._terrainButton.title=this._map._getUIString(`TerrainControl.Disable`)):(this._terrainButton.classList.add(`maplibregl-ctrl-terrain`),this._terrainButton.title=this._map._getUIString(`TerrainControl.Enable`));},this.options=e;}onAdd(e){return this._map=e,this._container=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._terrainButton=W.create(`button`,`maplibregl-ctrl-terrain`,this._container),W.create(`span`,`maplibregl-ctrl-icon`,this._terrainButton).setAttribute(`aria-hidden`,`true`),this._terrainButton.type=`button`,this._terrainButton.addEventListener(`click`,this._toggleTerrain),this._updateTerrainIcon(),this._map.on(`terrain`,this._updateTerrainIcon),this._container}onRemove(){this._container.remove(),this._map.off(`terrain`,this._updateTerrainIcon),this._map=void 0;}},Hp=class{constructor(){this._toggleProjection=()=>{let e=this._map.getProjection()?.type;e===`mercator`||!e?this._map.setProjection({type:`globe`}):this._map.setProjection({type:`mercator`}),this._updateGlobeIcon();},this._updateGlobeIcon=()=>{this._globeButton.classList.remove(`maplibregl-ctrl-globe`),this._globeButton.classList.remove(`maplibregl-ctrl-globe-enabled`),this._map.getProjection()?.type===`globe`?(this._globeButton.classList.add(`maplibregl-ctrl-globe-enabled`),this._globeButton.title=this._map._getUIString(`GlobeControl.Disable`)):(this._globeButton.classList.add(`maplibregl-ctrl-globe`),this._globeButton.title=this._map._getUIString(`GlobeControl.Enable`));};}onAdd(e){return this._map=e,this._container=W.create(`div`,`maplibregl-ctrl maplibregl-ctrl-group`),this._globeButton=W.create(`button`,`maplibregl-ctrl-globe`,this._container),W.create(`span`,`maplibregl-ctrl-icon`,this._globeButton).setAttribute(`aria-hidden`,`true`),this._globeButton.type=`button`,this._globeButton.addEventListener(`click`,this._toggleProjection),this._updateGlobeIcon(),this._map.on(`styledata`,this._updateGlobeIcon),this._map.on(`projectiontransition`,this._updateGlobeIcon),this._container}onRemove(){this._container.remove(),this._map.off(`styledata`,this._updateGlobeIcon),this._map.off(`projectiontransition`,this._updateGlobeIcon),this._globeButton.removeEventListener(`click`,this._toggleProjection),this._map=void 0;}};const Up={closeButton:true,closeOnClick:true,focusAfterOpen:true,className:``,maxWidth:`240px`,subpixelPositioning:false,locationOccludedOpacity:void 0,padding:void 0},Wp=[`a[href]`,`[tabindex]:not([tabindex='-1'])`,`[contenteditable]:not([contenteditable='false'])`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`].join(`, `);var Gp=class extends Bn{},Kp=class extends Hn{constructor(e){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._map._camera.transform.isLocationOccluded(this.getLngLat())?this._container.style.opacity=`${this.options.locationOccludedOpacity}`:this._container.style.opacity=``);},this.remove=()=>(this._content&&this._content.remove(),this._container&&(this._container.remove(),delete this._container),this._map&&(this._map.off(`move`,this._update),this._map.off(`move`,this._onClose),this._map.off(`click`,this._onClose),this._map.off(`remove`,this.remove),this._map.off(`terrain`,this._update),this._map.off(`projectiontransition`,this._update),this._map.off(`mousemove`,this._update),this._map.off(`mouseup`,this._update),this._map.off(`drag`,this._update),this._map._canvasContainer.classList.remove(`maplibregl-track-pointer`),delete this._map,this.fire(new Gp(`close`))),this),this._update=e=>{let t=this._lngLat||this._trackPointer;if(!this._map||!t||!this._content)return;if(!this._container){if(this._container=W.create(`div`,`maplibregl-popup`,this._map.getContainer()),this._tip=W.create(`div`,`maplibregl-popup-tip`,this._container),this._container.appendChild(this._content),this.options.className)for(let e of this.options.className.split(` `))this._container.classList.add(e);this._closeButton&&this._closeButton.setAttribute(`aria-label`,this._map._getUIString(`Popup.Close`)),this._trackPointer&&this._container.classList.add(`maplibregl-popup-track-pointer`);}this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=bp(this._lngLat,this._flatPos,this._map._camera.transform,this._trackPointer);let n;if(e&&`point`in e&&e.point&&(n=e.point),this._trackPointer&&!n)return;let r=this._flatPos=this._pos=this._trackPointer&&n?n:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&n?n:this._map._camera.transform.locationToScreenPoint(this._lngLat));let i=this.options.anchor,a=qp(this.options.offset);if(!i){let e=this._container.offsetWidth,t=this._container.offsetHeight,n=Jp(this.options.padding),o;o=r.y+a.bottom.y<t+n.top?[`top`]:r.y>this._map._camera.transform.height-t-n.bottom?[`bottom`]:[],r.x<e/2+n.left?o.push(`left`):r.x>this._map._camera.transform.width-e/2-n.right&&o.push(`right`),i=o.length===0?`bottom`:o.join(`-`);}let o=r.add(a[i]);this.options.subpixelPositioning||(o=o.round()),this._container.style.transform=`${xp[i]} translate(${o.x}px,${o.y}px)`,Sp(this._container,i,`popup`),this._updateOpacity();},this._onClose=()=>{this.remove();},this.options=Dt(Object.create(Up),e);}addTo(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on(`click`,this._onClose),this.options.closeOnMove&&this._map.on(`move`,this._onClose),this._map.on(`remove`,this.remove),this._map.on(`terrain`,this._update),this._map.on(`projectiontransition`,this._update),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(`mousemove`,this._update),this._map.on(`mouseup`,this._update),this._container&&this._container.classList.add(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.add(`maplibregl-track-pointer`)):this._map.on(`move`,this._update),this.fire(new Gp(`open`)),this}isOpen(){return !!this._map}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=dm.convert(e),this._pos=null,this._flatPos=null,this._trackPointer=false,this._update(),this._map&&(this._map.on(`move`,this._update),this._map.off(`mousemove`,this._update),this._container&&this._container.classList.remove(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.remove(`maplibregl-track-pointer`)),this}trackPointer(){return this._trackPointer=true,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off(`move`,this._update),this._map.on(`mousemove`,this._update),this._map.on(`drag`,this._update),this._container&&this._container.classList.add(`maplibregl-popup-track-pointer`),this._map._canvasContainer.classList.add(`maplibregl-track-pointer`)),this}getElement(){return this._container}setText(e){return this.setDOMContent(document.createTextNode(e))}setHTML(e){let t=document.createDocumentFragment(),n=document.createElement(`body`),r;for(n.innerHTML=e;r=n.firstChild,r;)t.appendChild(r);return this.setDOMContent(t)}getMaxWidth(){return this._container?.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=W.create(`div`,`maplibregl-popup-content`,this._container);return this._content.appendChild(e),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(e){return this._container&&this._container.classList.add(e),this}removeClassName(e){return this._container&&this._container.classList.remove(e),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){if(this._container)return this._container.classList.toggle(e)}setSubpixelPositioning(e){this.options.subpixelPositioning=e;}setPadding(e){this.options.padding=e,this._update();}_createCloseButton(){this.options.closeButton&&(this._closeButton=W.create(`button`,`maplibregl-popup-close-button`,this._content),this._closeButton.type=`button`,this._closeButton.innerHTML=`&#215;`,this._closeButton.addEventListener(`click`,this._onClose));}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let e=this._container.querySelector(Wp);e&&e.focus();}};function qp(e){if(!e)return qp(new l(0,0));if(typeof e==`number`){let t=Math.round(Math.abs(e)/Math.SQRT2);return {center:new l(0,0),top:new l(0,e),"top-left":new l(t,t),"top-right":new l(-t,t),bottom:new l(0,-e),"bottom-left":new l(t,-t),"bottom-right":new l(-t,-t),left:new l(e,0),right:new l(-e,0)}}if(e instanceof l||Array.isArray(e)){let t=l.convert(e);return {center:t,top:t,"top-left":t,"top-right":t,bottom:t,"bottom-left":t,"bottom-right":t,left:t,right:t}}return {center:l.convert(e.center||[0,0]),top:l.convert(e.top||[0,0]),"top-left":l.convert(e[`top-left`]||[0,0]),"top-right":l.convert(e[`top-right`]||[0,0]),bottom:l.convert(e.bottom||[0,0]),"bottom-left":l.convert(e[`bottom-left`]||[0,0]),"bottom-right":l.convert(e[`bottom-right`]||[0,0]),left:l.convert(e.left||[0,0]),right:l.convert(e.right||[0,0])}}function Jp(e){return e?{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}:{top:0,right:0,bottom:0,left:0}}const Yp=Er;function Xp(e,t){return wa().setRTLTextPlugin(e,t)}function Zp(){return wa().getRTLTextPluginStatus()}function Qp(){return Yp}function $p(){return wi.workerCount}function em(e){wi.workerCount=e;}function tm(){return Cn.MAX_PARALLEL_IMAGE_REQUESTS}function nm(e){Cn.MAX_PARALLEL_IMAGE_REQUESTS=e;}function rm(){return Cn.WORKER_URL}function im(e){Cn.WORKER_URL=e;}async function am(e){await Mi().broadcast(`IS`,e);}
815
+
816
+ exports.AJAXError = On;
817
+ exports.AttributionControl = rp;
818
+ exports.BoxZoomHandler = df;
819
+ exports.CanvasSource = ma;
820
+ exports.CooperativeGesturesHandler = Yf;
821
+ exports.DoubleClickZoomHandler = Uf;
822
+ exports.DragPanHandler = Kf;
823
+ exports.DragRotateHandler = qf;
824
+ exports.EXTENT = j;
825
+ exports.EdgeInsets = ms;
826
+ exports.ErrorEvent = Vn;
827
+ exports.Event = Bn;
828
+ exports.Evented = Hn;
829
+ exports.FullscreenControl = Bp;
830
+ exports.FullscreenEvent = zp;
831
+ exports.GPUInitializationError = Xd;
832
+ exports.GeoJSONSource = la;
833
+ exports.GeolocateControl = Mp;
834
+ exports.GeolocateErrorEvent = jp;
835
+ exports.GeolocateEvent = kp;
836
+ exports.GeolocatePositionEvent = Ap;
837
+ exports.GlobeControl = Hp;
838
+ exports.Hash = Qd;
839
+ exports.ImageSource = ua;
840
+ exports.KeyboardHandler = zf;
841
+ exports.LngLat = dm;
842
+ exports.LngLatBounds = Wi;
843
+ exports.LogoControl = ip;
844
+ exports.Map = mp;
845
+ exports.MapBoxZoomEvent = Kr;
846
+ exports.MapContextEvent = Yr;
847
+ exports.MapLibreEvent = Br;
848
+ exports.MapLibreMap = mp;
849
+ exports.MapMouseEvent = Ur;
850
+ exports.MapMovementEvent = G;
851
+ exports.MapProjectionEvent = Jr;
852
+ exports.MapSourceDataEvent = K;
853
+ exports.MapStyleDataEvent = Hr;
854
+ exports.MapStyleImageMissingEvent = Xr;
855
+ exports.MapStyleLoadEvent = Vr;
856
+ exports.MapTerrainEvent = qr;
857
+ exports.MapTouchEvent = Wr;
858
+ exports.MapWheelEvent = Gr;
859
+ exports.Marker = Tp;
860
+ exports.MarkerClickEvent = wp;
861
+ exports.MarkerDragEvent = Cp;
862
+ exports.MercatorCoordinate = xm;
863
+ exports.NavigationControl = gp;
864
+ exports.Point = l;
865
+ exports.Popup = Kp;
866
+ exports.PopupEvent = Gp;
867
+ exports.RasterDEMTileSource = Ji;
868
+ exports.RasterTileSource = qi;
869
+ exports.ScaleControl = Pp;
870
+ exports.ScrollZoomHandler = Hf;
871
+ exports.Style = fc;
872
+ exports.TerrainControl = Vp;
873
+ exports.TwoFingersTouchPitchHandler = Lf;
874
+ exports.TwoFingersTouchRotateHandler = Ff;
875
+ exports.TwoFingersTouchZoomHandler = Nf;
876
+ exports.TwoFingersTouchZoomRotateHandler = Jf;
877
+ exports.VectorTileSource = Ki;
878
+ exports.VideoSource = pa;
879
+ exports.addProtocol = Tn;
880
+ exports.addSourceType = ya;
881
+ exports.clearPrewarmedResources = ki;
882
+ exports.config = Cn;
883
+ exports.createTileMesh = Ps;
884
+ exports.getGlobalDispatcher = Mi;
885
+ exports.getMaxParallelImageRequests = tm;
886
+ exports.getRTLTextPluginStatus = Zp;
887
+ exports.getVersion = Qp;
888
+ exports.getWorkerCount = $p;
889
+ exports.getWorkerUrl = rm;
890
+ exports.importScriptInWorkers = am;
891
+ exports.isTimeFrozen = Lr;
892
+ exports.now = U;
893
+ exports.prewarm = Oi;
894
+ exports.removeProtocol = En;
895
+ exports.restoreNow = Ir;
896
+ exports.setMaxParallelImageRequests = nm;
897
+ exports.setNow = Fr;
898
+ exports.setRTLTextPlugin = Xp;
899
+ exports.setWorkerCount = em;
900
+ exports.setWorkerUrl = im;